rc_rcv_error(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

🌸 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 1 if no more processing is needed β€” we're done here, bye bestie πŸ‘‹
  • otherwise return 0 to 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:


🌸 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