numam-dpdk/drivers/net
Viacheslav Ovsiienko 30a86157f6 net/mlx5: support PF representor
On BlueField platform we have the new entity - PF representor.
This one represents the PCI PF attached to external host on the
side of ARM. The traffic sent by the external host to the NIC
via PF will be seem by ARM on this PF representor.

This patch refactors port recognizing capability on the base of
physical port name. We have two groups of name formats. Legacy
name formats are supported by kernels before ver 5.0 (being
more precise - before the patch [1]) or before Mellanox OFED 4.6,
and new naming formats added by the patch [1].

Legacy naming formats are supported:

  - missing physical port name (no sysfs/netlink key) at all,
    master is assumed

  - decimal digits (for example "12"), representor is assumed,
    the value is the index of attached VF

New naming formats are supported:

  - "p" followed by decimal digits, for example "p2", master
    is assumed

  - "pf" followed by PF index concatenated with "vf" followed by
    VF index, for example "pf0vf1", representor is assumed.
    If index of VF is "-1" it is a special case  of host PF
    representor, this representor must be indexed in devargs
    as 65535, for example representor=[0-3,65535] will
    allow representors for VF0, VF1, VF2, VF3 and for host PF.

    Note: do not specify representor=[0-65535], it causes devargs
    processing error, because number of ports (rte_eth_dev) is
    limited.

Applications should distinguish representors and master devices
exclusively by device flag RTE_ETH_DEV_REPRESENTOR and do not
rely on switch port_id (mlx5 PMD deduces ones from representor_id)
values returned by dev_infos_get() API.

[1] https://www.spinics.net/lists/netdev/msg547007.html
    Linux-tree: c12ecc23 (Or Gerlitz 2018-04-25 17:32 +0300)
    "net/mlx5e: Move to use common phys port names for vport representors"

Signed-off-by: Viacheslav Ovsiienko <viacheslavo@mellanox.com>
Acked-by: Shahaf Shuler <shahafs@mellanox.com>
2019-04-19 14:51:55 +02:00
..
af_packet build: increase readability via shortcut variables 2019-04-17 18:09:52 +02:00
af_xdp net/af_xdp: fix typos in Rx function 2019-04-19 14:51:54 +02:00
ark replace snprintf with strlcpy 2019-04-04 22:46:05 +02:00
atlantic net/atlantic: bump internal driver version 2019-04-19 14:51:54 +02:00
avp build: increase readability via shortcut variables 2019-04-17 18:09:52 +02:00
axgbe build: increase readability via shortcut variables 2019-04-17 18:09:52 +02:00
bnx2x net/bnx2x: fix optic module verification 2019-04-19 14:51:54 +02:00
bnxt net/bnxt: fix big endian build 2019-04-12 11:02:02 +02:00
bonding replace snprintf with strlcpy without adding extra include 2019-04-04 22:45:54 +02:00
cxgbe net/cxgbe: fix missing checksum flags and packet type 2019-03-21 20:45:59 +01:00
dpaa build: increase readability via shortcut variables 2019-04-17 18:09:52 +02:00
dpaa2 ethdev: deprecate legacy filter API 2019-04-19 14:51:54 +02:00
e1000 replace snprintf with strlcpy 2019-04-04 22:46:05 +02:00
ena net/ena: fix checksum feature flag 2019-04-12 11:02:02 +02:00
enetc net/enetc: fix crash at high speed traffic 2019-04-19 14:51:54 +02:00
enic ethdev: deprecate legacy filter API 2019-04-19 14:51:54 +02:00
failsafe net/failsafe: fix source port id in Rx packets 2019-04-19 14:51:55 +02:00
fm10k net/fm10k: fix VLAN strip offload flag 2019-03-29 17:25:32 +01:00
i40e ethdev: deprecate legacy filter API 2019-04-19 14:51:54 +02:00
iavf net/iavf: fix queue interrupt for ice 2019-04-19 14:51:54 +02:00
ice net/ice: fix promiscuous mode 2019-04-19 14:51:54 +02:00
ifc net/ifc: fix used ring update 2019-04-19 14:51:54 +02:00
ipn3ke net/ipn3ke: support flow API 2019-04-19 14:51:54 +02:00
ixgbe net/ixgbevf: remove MTU setting limitation 2019-04-05 17:45:22 +02:00
kni replace snprintf with strlcpy 2019-04-04 22:46:05 +02:00
liquidio replace snprintf with strlcpy 2019-04-04 22:46:05 +02:00
mlx4 net/mlx4: fix memory region cleanup 2019-04-19 14:51:55 +02:00
mlx5 net/mlx5: support PF representor 2019-04-19 14:51:55 +02:00
mvneta replace snprintf with strlcpy 2019-04-04 22:46:05 +02:00
mvpp2 replace snprintf with strlcpy 2019-04-04 22:46:05 +02:00
netvsc net/netvsc: remove useless condition 2019-03-29 17:25:32 +01:00
nfb net/nfb: add new netcope driver 2019-04-12 17:01:13 +02:00
nfp build: increase readability via shortcut variables 2019-04-17 18:09:52 +02:00
null ethdev: remove release function for secondary process 2018-10-26 22:14:05 +02:00
octeontx net/octeontx: fix vdev name 2019-03-20 18:15:42 +01:00
pcap replace snprintf with strlcpy without adding extra include 2019-04-04 22:45:54 +02:00
qede replace snprintf with strlcpy 2019-04-04 22:46:05 +02:00
ring replace snprintf with strlcpy without adding extra include 2019-04-04 22:45:54 +02:00
sfc ethdev: deprecate legacy filter API 2019-04-19 14:51:54 +02:00
softnic build: increase readability via shortcut variables 2019-04-17 18:09:52 +02:00
szedata2 ethdev: free all common data when releasing port 2018-10-26 22:14:05 +02:00
tap build: increase readability via shortcut variables 2019-04-17 18:09:52 +02:00
thunderx net/thunderx: fix Tx desc corruption in scatter-gather mode 2018-11-14 00:35:53 +01:00
vdev_netvsc build: increase readability via shortcut variables 2019-04-17 18:09:52 +02:00
vhost net/vhost: fix double free of MAC address 2018-12-21 16:22:41 +01:00
virtio net/virtio: fix dangling pointer on failure 2019-04-19 14:51:54 +02:00
vmxnet3 drivers/net: fix several Tx prepare functions 2018-12-13 17:53:50 +00:00
Makefile net/ipn3ke: add new driver 2019-04-19 14:51:54 +02:00
meson.build net/ipn3ke: add new driver 2019-04-19 14:51:54 +02:00