ib_post_send(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

✨ ib_post_send(9) ✨

okay so bestie, welcome to the ib_post_send manual page!! πŸ’– this is a real one from the Kernel API Manual and honestly? it's giving "niche but iconic" energy. we're talking InfiniBand verbs, send queues, and one very specific lil function that posts work requests. no cap, let's get into it. 🫢


🌸 NAME 🌸

ib_post_send β€” posts a whole list of work requests to the send queue of the QP you specify. literally that's the whole job. πŸ’…


πŸŽ€ SYNOPSIS πŸŽ€

int ib_post_send (struct ib_qp *qp , const struct ib_send_wr *send_wr ,
       const struct ib_send_wr **bad_send_wr );

πŸ’œ ARGUMENTS πŸ’œ

  • qp β€” the QP (queue pair, iykyk) where you're posting the work request. this is your main character. πŸ‘‘
  • send_wr β€” a list of work requests to post on the send queue. yes, a list, not just one. she's efficient. ✨
  • bad_send_wr β€” on an immediate failure, this parameter will reference the work request that failed to be posted on the QP. so if things go sideways, this points right at the culprit. πŸ’€

πŸ”₯ DESCRIPTION πŸ”₯

okay so here's the tea. πŸ“ IBA Vol. 1 section 11.4.1.1 specifies that if an immediate error is returned, the QP state shall not be affected. like, the QP keeps its state, she's unbothered, that's the spec. πŸ’…

but β€” and this is the important part, bestie β€” ib_post_send will return an immediate error after queueing any earlier work requests in the list. so it queues whatever it already got through, then bails with the error. that's the lowkey twist. don't forget it. 🧚


🌈 SEE ALSO 🌈

okay this list is genuinely enormous, like it ate and left no crumbs. πŸ‘‘ here's every single reference, exactly as written:

Kernel file ./include/rdma/ib_verbs.h struct rdma_stat_desc(9), struct
rdma_hw_stats(9), ib_rate_to_mult(9), ib_rate_to_mbps(9),
ib_port_attr_to_speed_info(9), enum ib_mr_type(9), struct
ib_mr_status(9), mult_to_ib_rate(9), struct ib_udata(9), struct
rdma_netdev(9), struct ib_device_ops(9), ib_get_client_data(9),
ib_modify_qp_is_ok(9), rdma_cap_ib_switch(9), rdma_start_port(9),
rdma_for_each_port(9), rdma_end_port(9), rdma_cap_ib_mad(9),
rdma_cap_opa_mad(9), rdma_cap_ib_smi(9), rdma_cap_ib_cm(9),
rdma_cap_iw_cm(9), rdma_cap_ib_sa(9), rdma_cap_ib_mcast(9),
rdma_cap_af_ib(9), rdma_cap_eth_ah(9), rdma_cap_opa_ah(9),
rdma_max_mad_size(9), rdma_cap_roce_gid_table(9),
rdma_core_cap_opa_port(9), rdma_mtu_enum_to_int(9),
rdma_mtu_from_attr(9), ib_alloc_pd(9), ib_dealloc_pd(9),
rdma_create_ah(9), rdma_create_user_ah(9), ib_get_gids_from_rdma_hdr(9),
ib_get_rdma_header_version(9), ib_init_ah_attr_from_wc(9),
ib_create_ah_from_wc(9), rdma_modify_ah(9), rdma_query_ah(9),
rdma_destroy_ah_user(9), rdma_destroy_ah(9), ib_modify_srq(9),
ib_query_srq(9), ib_destroy_srq_user(9), ib_destroy_srq(9),
ib_post_srq_recv(9), ib_create_qp(9), ib_modify_qp_with_udata(9),
ib_modify_qp(9), ib_query_qp(9), ib_destroy_qp(9), ib_open_qp(9),
ib_close_qp(9), ib_post_recv(9), ib_alloc_cq_any(9),
rdma_set_cq_moderation(9), ib_destroy_cq_user(9), ib_destroy_cq(9),
ib_poll_cq(9), ib_req_notify_cq(9), ib_virt_dma_to_ptr(9),
ib_virt_dma_to_page(9), ib_dma_mapping_error(9), ib_dma_map_single(9),
ib_dma_unmap_single(9), ib_dma_map_page(9), ib_dma_unmap_page(9),
ib_dma_map_bvec(9), ib_dma_unmap_bvec(9), ib_dma_map_sgtable_attrs(9),
ib_dma_map_sg(9), ib_dma_unmap_sg(9), ib_dma_max_seg_size(9),
ib_dma_sync_single_for_cpu(9), ib_dma_sync_single_for_device(9),
ib_dereg_mr_user(9), ib_dereg_mr(9), ib_update_fast_reg_key(9),
ib_inc_rkey(9), ib_attach_mcast(9), ib_detach_mcast(9),
ib_check_mr_status(9), ib_device_try_get(9), rdma_ah_find_type(9),
ib_lid_cpu16(9), ib_lid_be16(9), rdma_roce_rescan_device(9),
rdma_device_to_ibdev(9), ibdev_to_node(9), rdma_device_to_drv_device(9),
rdma_flow_label_to_udp_sport(9), rdma_calc_flow_label(9),
rdma_get_udp_sport(9)

like I said. a lot. πŸ’€


ngl, ./include/rdma is where this whole page lives, and it's dated October 2026 β€” so mark your calendars, bestie. πŸ—“οΈπŸ’–

that's a wrap on ib_post_send(9)! now go forth and post those work requests responsibly. slay. πŸ’…βœ¨πŸ¦‹πŸŒΈ

πŸ“¦ where this page comes from