rdma_create_user_ah(9)
πΈ rdma_create_user_ah(9) πΈ
okay so bestie, welcome to the Kernel API Manual section for rdma_create_user_ah β like, yes, this is the kernel docs, and yes, we're gonna make it cute. sit down, grab a strawberry drink π, let's go.
β¨ NAME β¨
rdma_create_user_ah β makes an address handle for the address vector you hand it π
and, lowkey the slay part, it resolves the destination MAC address for a ah attribute that's of RoCE type. no cap.
β¨ SYNOPSIS β¨
struct ib_ah * rdma_create_user_ah (struct ib_pd *pd , struct
rdma_ah_attr *ah_attr , struct ib_udata *udata );
β¨ ARGUMENTS β¨
pdβ the protection domain that's associated with the address handle π«Ά like, this AH belongs to this PD, that's the vibe.ah_attrβ the attributes of the address vector β¨ the actual "where are we going" info.udataβ pointer to the user's input/output buffer info that the provider driver needs π it's giving "provider driver supply drop."
β¨ DESCRIPTION β¨
so it returns 0 on success, and it returns the appropriate error code when there's an error π that's the whole summary, bestie.
the address handle itself is used to reference a local or a global destination in all UD QP post sends π₯ like every single one, it's main character energy for UD send paths.
β¨ SEE ALSO β¨
okay this list is long and honestly iconic, so let's give it the respect it deserves π β the kernel file ./include/rdma/ib_verbs.h plus:
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), 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)
likeβ¦ she read every adjacent page in ib_verbs.h, and honestly? obsessed. π¦
π also real quick: everything above is exactly what the page says, no extra lore, no invented behaviour. if you need the actual rules, go read the references, bestie, i'm just the vibe translator. π§
and that's the page, periodt. π this one lives under ./include/rdma, from the October 2026 drop of the Kernel API Manual β mwah, go forth and create those address handles π
π
π¦ 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