Linux RDMA and InfiniBand development
 help / color / mirror / Atom feed
* Question about AETH_NAK_PSN_SEQ_ERROR
@ 2022-05-14 13:35 Chengguang Xu
  2022-05-14 14:20 ` Chengguang Xu
  0 siblings, 1 reply; 4+ messages in thread
From: Chengguang Xu @ 2022-05-14 13:35 UTC (permalink / raw)
  To: linux-rdma@vger.kernel.org

Hello Folks,


There is a logic(below code) in check_ack() in rxe_comp.c,  the case 
(AETH_NAK_PSN_SEQ_ERROR)
indicates sending side received a nak ack which means opposite side had 
an psn seq error(expected psn < received psn).
I don't fully understand the comment(/* a nak implicitly acks all 
packets with psns before */) here,
could someone give me a hint for this?

Also, set qp->comp.psn as pkt->psn will skip some psns(from qp->comp.psn 
to pkt->psn) in the retry, is it correct?

Many thanks in advance!
Chengguang

-------------------------

   case AETH_NAK:
             switch (syn) {
             case AETH_NAK_PSN_SEQ_ERROR:
                 /* a nak implicitly acks all packets with psns
                  * before
                  */
                 if (psn_compare(pkt->psn, qp->comp.psn) > 0) {
                     rxe_counter_inc(rxe,
                             RXE_CNT_RCV_SEQ_ERR);
                     qp->comp.psn = pkt->psn;
                     if (qp->req.wait_psn) {
                         qp->req.wait_psn = 0;
                         rxe_run_task(&qp->req.task, 0);
                     }
                 }
                 return COMPST_ERROR_RETRY;





^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2022-05-17  5:13 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-05-14 13:35 Question about AETH_NAK_PSN_SEQ_ERROR Chengguang Xu
2022-05-14 14:20 ` Chengguang Xu
2022-05-14 16:22   ` Bob Pearson
2022-05-17  5:12     ` Chengguang Xu

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox