rdma_cap_ib_mad(9)
π rdma_cap_ib_mad β bestie's guide to MAD support checking
Okay so this is a Linux kernel API manual page (rdma_cap_ib_mad(9), in case you were wondering) and honestly? It's a tiny little function with a big job. Let's get into it π«Ά
β¨ NAME β¨
rdma_cap_ib_mad β checks whether a port on a device supports InfiniBand Management Datagrams. yes, that's the whole vibe check π
πΈ SYNOPSIS πΈ
bool rdma_cap_ib_mad (const struct ib_device *device , u32 port_num );
That's it. Two args, one bool back. Clean. Iconic. No notes π
π ARGUMENTS π
deviceβ the device you're checking, bestie. Pass it in, that's the whole deal.port_numβ which port number on that device you wanna check.
π DESCRIPTION π
So here's the tea β β Management Datagrams (MAD for short, and no, not the "mad" like angry, it's just the acronym lol) are a required part of the InfiniBand specification, and they're supported on all InfiniBand devices. Literally all of them. No cap.
A slightly extended version of MAD is also supported on OPA interfaces. So like, OPA gets the deluxe version, iykyk π
β RETURN β
Returns true if the port supports sending/receiving of MAD packets π¦
(And, by the nature of a bool β you can lowkey infer the other case from that. It's giving "yes or no, no essay required".)
π SEE ALSO π
Buckle up bestie, this list is LONG but we're gonna get through it together, fr fr. Every single one, in order, because that's how we do it π
Kernel file ./include/rdma/ib_verbs.h and then:
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_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_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).
Phew. That's the whole squad ππ₯
Ngl, this function is basically one big "does this port do MAD?" check. Two args, one bool, zero drama. We love a low-maintenance icon π
And that's a wrap, bestie! This lil gem comes from ./include/rdma and it's dated October 2026 β so yeah, mark your calendars and stan responsibly β¨π§π
π¦ 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