mlx5dv_query_port(3) mlx5dv_query_port(3) NAME mlx5dv_query_port - Query non standard attributes of IB device port. SYNOPSIS #include int mlx5dv_query_port(struct ibv_context *context, uint32_t port_num, struct mlx5dv_port *info); 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. 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. 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. RETURN VALUE returns 0 on success, or the value of errno on failure (which indicates the failure reason). 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 mlx5dv_query_port(3)