rc_rcv_error(9)
πΈ rc_rcv_error β process an incoming duplicate or error RC packet πΈ
okay so bestie, we're deep in the kernel today. the manual name is rc_rcv_error(9) and yeah, she's a section 9 girlie β kernel API, no cap. this is the function that handles the messy packets nobody else wants to deal with π
β¨ SYNOPSIS β¨
int rc_rcv_error (struct ib_other_headers *ohdr , void *data , struct
rvt_qp *qp , u32 opcode , u32 psn , int diff , struct hfi1_ctxtdata *rcd
);
she returns an int, she takes seven args, and she does not do small talk π«Ά
π ARGUMENTS π
ohdrβ the other headers for this packet. like, the headers that aren't THE header, yk? the other ones πdataβ the packet data. the main character payload, lowkey β¨qpβ the QP for this packet. that's the queue pair this whole situation belongs to πopcodeβ the opcode for this packet. literally what kind of packet we're dealing with π₯psnβ the packet sequence number for this packet. the receipts, fr fr π§Ύdiffβ the difference between the PSN and the expected PSN. someone's out of sync and we're measuring exactly how much πrcdβ the receive context. the whole vibe she's operating in π
π DESCRIPTION π
so this one gets called from hfi1_rc_rcv to process an unexpected incoming RC packet for the given QP. unexpected!! the audacity!! π
heads up bestie: this runs at interrupt level. no sleeping, no vibing, no long conversations. in and out, periodt β‘
the return value is giving binary decisions:
- return
1if no more processing is needed β we're done here, bye bestie π - otherwise return
0to schedule a response to be sent β like, we gotta reply, so we're handing that off π¬
that's it. that's the whole flow. simple but iconic π
π¦ SEE ALSO π¦
kernel file ./drivers/infiniband/hw/hfi1/rc.c, and the whole friend group:
make_rc_ack(9)hfi1_make_rc_req(9)update_num_rd_atomic(9)reset_psn(9)hfi1_rc_verbs_aborted(9)update_qp_retry_state(9)rc_rcv_resp(9)hfi1_rc_rcv(9)
πΈ okay that's the page!! this one lives in ./drivers/infiniband/hw/hfi1, the date on it is October 2026, and the header/footer both say rc_rcv_error(9) β so if you cite her, cite her properly. mwah πβ¨
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms