ib_post_send_mad(9)
π ib_post_send_mad β it's giving "send queue era" (that's ib_post_send_mad(9) bestie! β¨)
Okay so like, this page lives in the Kernel API Manual, and it's all about posting MAD(s) to the send queue of the QP that belongs to the registered client. Obsessed. Let's get into it π
πΈ NAME πΈ
ib_post_send_mad β posts MAD(s) to the send queue of the QP associated with the registered client. That's the whole vibe, no cap π
β¨ SYNOPSIS β¨
int ib_post_send_mad (struct ib_mad_send_buf *send_buf , struct ib_mad_send_buf **bad_send_buf );
π«Ά ARGUMENTS π«Ά
send_bufβ this one specifies the info you need to actually send the MAD(s). Like, everything required to yeet it out there π€bad_send_bufβ this specifies the MAD on which an error was encountered π and here's the tea: this parameter is optional if you're only posting a single MAD. One MAD? You can skip it. Multiple? Yeah, you're gonna want it, bestie π
π¦ DESCRIPTION π¦
So like the first thing you need to know: sent MADs are not guaranteed to complete in the order that they were posted. Not me expecting order π it's chaos out here, fr fr.
If the MAD requires RMPP, then here's the situation β the data buffer should contain a single copy of the common MAD, RMPP, and class specific headers, followed by the class defined data. Got it? Good, because it gets more specific:
- If the class defined data would not divide evenly into RMPP segments, then space must be allocated at the end of the referenced buffer for any required padding. Lowkey important, don't skip it π
- To indicate the amount of class defined data being transferred, the
paylen_newwinfield in the RMPP header should be set to the size of the class specific header plus the amount of class defined data being transferred. - And the
paylen_newwinfield should be specified in network-byte order. Periodt. π₯
Real talk: those buffer allocation and byte-order bits are not optional garnish, okay? Miss one and your MAD is giving nothing but problems π§
π SEE ALSO π
Kernel file ./include/rdma/ib_mad.h, plus this whole iconic lineup:
ib_get_cpi_resp_time(9)ib_get_cpi_capmask2(9)ib_set_cpi_capmask2(9)opa_get_cpi_capmask2(9)ib_response_mad(9)ib_get_rmpp_resptime(9)ib_get_rmpp_flags(9)ib_set_rmpp_resptime(9)ib_set_rmpp_flags(9)ib_register_mad_agent(9)ib_unregister_mad_agent(9)ib_free_recv_mad(9)ib_modify_mad(9)ib_cancel_mad(9)ib_create_send_mad(9)ib_is_mad_class_rmpp(9)ib_get_mad_data_offset(9)ib_get_rmpp_segment(9)ib_free_send_mad(9)ib_mad_kernel_rmpp_agent(9)
π Sign-off π
This whole thing came to you from ./include/rdma, dated October 2026, and it's the ib_post_send_mad(9) page β go forth and post those MADs responsibly, main character π«Άβ¨
π¦ 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