logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

mlx5dv_query_port - Query non standard attributes of IB device port.

Arguments

context RDMA device context to work on. port_num Port number to query. ## info Stores the returned attributes from the kernel. struct mlx5dv_port { uint64_t flags; uint16_t vport; uint16_t vport_vhca_id; uint16_t esw_owner_vhca_id; uint16_t rsvd0; uint64_t vport_steering_icm_rx; uint64_t vport_steering_icm_tx; struct mlx5dv_reg reg_c0; }; flags Bit field of attributes, on successful query flags stores the valid filled attributes. MLX5DV_QUERY_PORT_VPORT: The vport number of that port. MLX5DV_QUERY_PORT_VPORT_VHCA_ID: The VHCA ID of vport_num. MLX5DV_QUERY_PORT_ESW_OWNER_VHCA_ID: The E-Switch owner of vport_num. MLX5DV_QUERY_PORT_VPORT_STEERING_ICM_RX: The ICM RX address when directing traffic. MLX5DV_QUERY_PORT_VPORT_STEERING_ICM_TX: The ICM TX address when directing traffic. MLX5DV_QUERY_PORT_VPORT_REG_C0: Register C0 value used to identify egress of vport_num. vport The VPORT number of that port. vport_vhca_id The VHCA ID of vport_num. rsvd0 A reserved field. Not to be used. esw_owner_vhca_id The E-Switch owner of vport_num. vport_steering_ica_rx The ICM RX address when directing traffic. vport_steering_icm_tx The ICM TX address when directing traffic. ## reg_c0 Register C0 value used to identify traffic of vport_num. struct mlx5dv_reg { uint32_t value; uint32_t mask; }; value The value that should be used as match. mask The mask that should be used when matching.

Description

Query port info which can be used for some device commands over the DEVX interface and when directly accessing the hardware resources. A function that lets a user query hardware and configuration attributes associated with the port.

Example

for (i = 1; i <= ports; i++) { ret = mlx5dv_query_port(context, i, &port_info); if (ret) { printf("Error querying port %d\n", i); break; } printf("Port: %d:\n", i); if (port_info.flags & MLX5DV_QUERY_PORT_VPORT) printf("\tvport_num: 0x%x\n", port_info.vport_num); if (port_info.flags & MLX5DV_QUERY_PORT_VPORT_REG_C0) printf("\treg_c0: val: 0x%x mask: 0x%x\n", port_info.reg_c0.value, port_info.reg_c0.mask); } Mark Bloch mbloch@nvidia.commlx5dv_query_port(3)

Name

mlx5dv_query_port - Query non standard attributes of IB device port.

Return Value

returns 0 on success, or the value of errno on failure (which indicates the failure reason).

Synopsis

#include <infiniband/mlx5dv.h> int mlx5dv_query_port(struct ibv_context *context, uint32_t port_num, struct mlx5dv_port *info);

Usage

A user should provide the port number to query. On successful query flags will store a subset of the requested attributes which are supported/relevant for that port.

See Also