[PATCH v2 1/4] common/sfc_efx/base: discover NIC partitioning mode
Andrew Rybchenko
andrew.rybchenko at oktetlabs.ru
Thu Jun 22 11:48:20 CEST 2023
On 6/22/23 06:47, Denis Pryazhennikov wrote:
> From: Sandilya Bhagi <sbhagi at solarflare.com>
>
> NIC Partitioning mode in SFC devices means multiple PFs
> per network port. When NIC Partitioning is configured,
> apart from the privileged adapter(s) the other
> unprivileged adapter(s) will share the same physical port.
> Determining NIC Partitioning mode is required to take
> necessary action(s) for unprivileged adapter to work seamlessly.
> BNIC Partitioning is determined using heuristic approach.
> If the physical ports are shared between PFs then either
> NIC Partitioning or SR-IOV is in use.
>
> Signed-off-by: Sandilya Bhagi <sbhagi at solarflare.com>
> Signed-off-by: Denis Pryazhennikov <denis.pryazhennikov at arknetworks.am>
> Reviewed-by: Andy Moreton <amoreton at xilinx.com>
Overall LGMT with few style notes:
Acked-by: Andrew Rybchenko <andrew.rybchenko at oktetlabs.ru>
[snip]
> +#define CAP_PFS_TO_PORTS(_n) \
> + (MC_CMD_GET_CAPABILITIES_V2_OUT_PFS_TO_PORTS_ASSIGNMENT_ ## _n)
> +
> + encp->enc_port_usage = EFX_PORT_USAGE_UNKNOWN;
> +
> + if (req.emr_out_length_used >= MC_CMD_GET_CAPABILITIES_V2_OUT_LEN) {
> + /* PFs to ports assignment */
> + uint8_t pfs_to_ports[CAP_PFS_TO_PORTS(NUM)];
> +
> + EFX_STATIC_ASSERT((CAP_PFS_TO_PORTS(NUM) * CAP_PFS_TO_PORTS(LEN)) ==
> + EFX_ARRAY_SIZE(pfs_to_ports));
As far as I remember libefx style, it should be 4 spaces indent above
relative to mail line.
> +
> + memcpy(pfs_to_ports, MCDI_OUT(req, efx_byte_t, CAP_PFS_TO_PORTS(OFST)),
> + EFX_ARRAY_SIZE(pfs_to_ports));
same here, 4 spaces indent
> +
> + rc = ef10_nic_get_physical_port_usage(enp, pfs_to_ports,
> + EFX_ARRAY_SIZE(pfs_to_ports),
> + &encp->enc_port_usage);
same here, 4 spaces indent
> + if (rc != 0) {
> + /* PF to port mapping lookup failed */
> + encp->enc_port_usage = EFX_PORT_USAGE_UNKNOWN;
> + }
> + }
> +#undef CAP_PFS_TO_PORTS
> +
> /*
> * Check if firmware reports the VI window mode.
> * Medford2 has a variable VI window size (8K, 16K or 64K).
[snip]
More information about the dev
mailing list