rdma_create_ah(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

🌸 rdma_create_ah(9) β€” aka the Kernel API Manual page you're gonna slay πŸ’…

okay so bestie, buckle in, because this is rdma_create_ah from the Kernel API Manual and it's honestly kind of a big deal in the RDMA world. It's giving "small function, huge responsibilities" energy. Let's get into it 🫢


✨ NAME ✨

rdma_create_ah β€” Creates an address handle for the given address vector. yes that's the whole vibe. it makes an AH. iconic behavior honestly πŸ’–


✨ SYNOPSIS ✨

struct ib_ah * rdma_create_ah (struct ib_pd *pd , struct rdma_ah_attr
*ah_attr , u32 flags );

look at her. three args, returns a struct ib_ah *. no notes. πŸ”₯


✨ ARGUMENTS ✨

  • pd β€” the protection domain that's associated with the address handle. like, the AH's home base, its emotional support PD 🏠
  • ah_attr β€” the attributes of the address vector. all the deets about where this thing is pointing ✨
  • flags β€” the create address handle flags. see enum rdma_create_ah_flags for what you can actually pass in here, iykyk πŸ’…

✨ DESCRIPTION ✨

so what does an address handle even do? bestie, the address handle is used to reference a local or global destination in all UD QP post sends. every single one. it's the main character of UD sends, no cap πŸ‘‘


✨ SEE ALSO ✨

Kernel file ./include/rdma/ib_verbs.h β€” that's where the good stuff lives, go look πŸ¦‹

and here's the whole extended friend group, every single one of them, no cap:

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_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_send(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)

that's a lot of friends and honestly? obsessed. read them all, bestie, don't skip, they're all part of the lore πŸ“š


okay that's the whole page!! πŸŽ€ this beauty comes to you from ./include/rdma and it's dated October 2026 β€” so like, future classic, periodt. go make some address handles, you got this πŸ’œπŸ§š

πŸ“¦ where this page comes from