#
46532860 |
| 22-Oct-2024 |
Dariusz Sosnowski <dsosnowski@nvidia.com> |
net/mlx5: optimize MAC address and VLAN filter handling
This patch:
- Changes MAC address adding/removing handling, so that only required control rules are added/removed. As a result, rte_eth_d
net/mlx5: optimize MAC address and VLAN filter handling
This patch:
- Changes MAC address adding/removing handling, so that only required control rules are added/removed. As a result, rte_eth_dev_mac_addr_add() or rte_eth_dev_mac_addr_remove() calls are faster for mlx5 PMD. - Changes VLAN filtering handling, so that only required control flow rules are added/removed. As a result, rte_eth_dev_vlan_filter() call is faster for mlx5 PMD.
Signed-off-by: Dariusz Sosnowski <dsosnowski@nvidia.com> Acked-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
show more ...
|
#
11c73de9 |
| 31-Oct-2023 |
Dariusz Sosnowski <dsosnowski@nvidia.com> |
net/mlx5: probe multi-port E-Switch device
This patch adds support for probing ports of a Multiport E-Switch device to mlx5 PMD.
Multiport E-Switch is a configuration of NVIDIA ConnectX/BlueField H
net/mlx5: probe multi-port E-Switch device
This patch adds support for probing ports of a Multiport E-Switch device to mlx5 PMD.
Multiport E-Switch is a configuration of NVIDIA ConnectX/BlueField HCAs where all connected entities (i.e. physical ports, VFs and SFs) share the same switch domain. In this mode, applications are allowed to create transfer flow rules which explicitly match on the physical port on which traffic arrives and/or on VFs and SFs, regardless of the root PF. On top of that, forwarding to any of these entities is allowed. Notably, applications are allowed to explicitly forward traffic to any of the physical ports of the HCA.
This patch implements the following procedure for probing ports of the device configured as Multiport E-Switch:
1. EAL calls mlx5 PMD to probe certain PCI device (with address BDF). 2. mlx5 PMD iterates over all existing IB devices: 2.1. Check if IB device has a PCI address which matches BDF. 2.2. Check if IB device is configured as Multiport E-Switch device, using devlink interface. 2.3. Iterate over all IB ports of this device to find a netdev with matching PCI address. If any is found, IB device is chosen to instantiate DPDK ports from it. 3. Iterate over all IB ports of the selected IB device, to choose which ports to instantiate: 3.1. Choose IB ports which match the selected representor ports (selected through representor devarg). Instantiate DPDK ports based on those. 3.2. If IB port represented an uplink port and this port corresponds to the probed PCI device, instantiated DPDK port is selected as a switch master port.
Bulk of this work was done in mlx5_os_pci_probe_pf().
To properly enable support for Multiport E-Switch, this patch also changes the following:
- Probing of representors of type RTE_ETH_REPRESENTOR_PF is allowed, but if and only if Multiport E-Switch is enabled. - Uplink ports have a representor type NONE and have representor ID equal to UINT16_MAX. rte_eth_dev_representor_info struct returned for uplink ports have their index stored in `pf` field. - flow_hw_set_port_info() used by HWS steering layer sets `is_wire` field to true if a port is an uplink port, if Multiport E-Switch is enabled. - Changing MAC address of a port marked as representor is done directly through its corresponding netdev if it is a Multiport E-Switch uplink.
Signed-off-by: Dariusz Sosnowski <dsosnowski@nvidia.com> Signed-off-by: Bing Zhao <bingz@nvidia.com> Acked-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
show more ...
|
#
eb1dcc01 |
| 07-Mar-2023 |
Thomas Monjalon <thomas@monjalon.net> |
doc: fix naming of NVIDIA devices
The networking NVIDIA devices may be named as the following, using 0 and Ax as fake suffixes: - ConnectX-0 - ConnectX-0 Ax - BlueField-0
Casing and missing hyph
doc: fix naming of NVIDIA devices
The networking NVIDIA devices may be named as the following, using 0 and Ax as fake suffixes: - ConnectX-0 - ConnectX-0 Ax - BlueField-0
Casing and missing hyphens are fixed to avoid future wrong copy/paste.
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
show more ...
|
#
919488fb |
| 21-Jul-2021 |
Xueming Li <xuemingl@nvidia.com> |
net/mlx5: support Sub-Function
Introduce SF support. Similar to VF, SF on auxiliary bus is a portion of hardware PF, no representor or bonding parameters for SF.
Devargs to support SF: -a auxiliary
net/mlx5: support Sub-Function
Introduce SF support. Similar to VF, SF on auxiliary bus is a portion of hardware PF, no representor or bonding parameters for SF.
Devargs to support SF: -a auxiliary:mlx5_core.sf.8,dv_flow_en=1
New global syntax to support SF: -a bus=auxiliary,name=mlx5_core.sf.8/class=eth/driver=mlx5,dv_flow_en=1
Signed-off-by: Xueming Li <xuemingl@nvidia.com> Acked-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
show more ...
|
#
89813a52 |
| 10-Apr-2021 |
Dmitry Kozlyuk <dmitry.kozliuk@gmail.com> |
net: provide IP-related API on any OS
Users of <rte_ip.h> relied on it to provide IP-related defines, like IPPROTO_* constants, but still had to include POSIX headers for inet_pton() and other stand
net: provide IP-related API on any OS
Users of <rte_ip.h> relied on it to provide IP-related defines, like IPPROTO_* constants, but still had to include POSIX headers for inet_pton() and other standard IP-related facilities.
Extend <rte_ip.h> so that it is a single header to gain access to IP-related facilities on any OS. Use it to replace POSIX includes in components enabled on Windows. Move missing constants from Windows networking shim to OS shim header and include it where needed.
Remove Windows networking shim that is no longer needed.
Signed-off-by: Dmitry Kozlyuk <dmitry.kozliuk@gmail.com> Acked-by: Olivier Matz <olivier.matz@6wind.com> Acked-by: Ranjit Menon <ranjit.menon@intel.com>
show more ...
|
#
1ce7d26d |
| 28-Mar-2021 |
Xueming Li <xuemingl@nvidia.com> |
net/mlx5: fix setting VF default MAC through representor
With kernel bonding, there was an error when setting VF MAC address through representor. The Netlink API requires ifindex of owner PF, not bo
net/mlx5: fix setting VF default MAC through representor
With kernel bonding, there was an error when setting VF MAC address through representor. The Netlink API requires ifindex of owner PF, not bonding device ifindex.
Uses owner PF ifindex to modify VF default MAC in case of bonding device.
Fixes: c21e5facf7d2 ("net/mlx5: use bond index for netdev operations") Cc: stable@dpdk.org
Signed-off-by: Xueming Li <xuemingl@nvidia.com> Acked-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
show more ...
|
#
f926cce3 |
| 28-Mar-2021 |
Xueming Li <xuemingl@nvidia.com> |
net/mlx5: refactor bonding representor probing
To probe representor on 2nd PF of kernel bonding device, had to specify PF1 BDF in devarg: <PF1_BDF>,representor=0 When closing bonding device, all r
net/mlx5: refactor bonding representor probing
To probe representor on 2nd PF of kernel bonding device, had to specify PF1 BDF in devarg: <PF1_BDF>,representor=0 When closing bonding device, all representors had to be closed together and this implies all representors have to use primary PF of bonding device. So after probing representor port on 2nd PF, when locating new probed device using device argument, the filter used 2nd PF as PCI address and failed to locate new device.
Conflict happened by using current representor devargs: - Use PCI BDF to specify representor owner PF - Use PCI BDF to locate probed representor device. - PMD uses primary PCI BDF as PCI device.
To resolve such conflicts, new representor syntax is introduced here: <primary BDF>,representor=pfXvfY All representors must use primary PF as owner PCI device, PMD internally locate owner PCI address by checking representor "pfX" part. To EAL, all representors are registered to primary PCI device, the 2nd PF is hidden to EAL, thus all search should be consistent.
Same to VF representor, HPF (host PF on BlueField) uses same syntax to probe, example: representor=pf1vf[0-3,-1]
This patch also adds pf index into kernel bonding representor port name: <BDF>_<ib_name>_representor_pf<X>vf<Y>
Signed-off-by: Xueming Li <xuemingl@nvidia.com> Acked-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
show more ...
|
#
df96fd0d |
| 29-Jan-2021 |
Bruce Richardson <bruce.richardson@intel.com> |
ethdev: make driver-only headers private
The rte_ethdev_driver.h, rte_ethdev_vdev.h and rte_ethdev_pci.h files are for drivers only and should be a private to DPDK and not installed.
Signed-off-by:
ethdev: make driver-only headers private
The rte_ethdev_driver.h, rte_ethdev_vdev.h and rte_ethdev_pci.h files are for drivers only and should be a private to DPDK and not installed.
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com> Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com> Acked-by: Thomas Monjalon <thomas@monjalon.net> Acked-by: Steven Webster <steven.webster@windriver.com>
show more ...
|
#
f2e8b455 |
| 25-Aug-2020 |
Ophir Munk <ophirmu@mellanox.com> |
net/mlx5: remove unused includes
Remove unused Linux included files:
<sys/ioctl.h>, <arpa/inet.h> from file net/mlx5/mlx5_mac.c <sys/mman.h> from file net/mlx5/mlx5.c
Fixes: 771fa900b73a ("mlx5: i
net/mlx5: remove unused includes
Remove unused Linux included files:
<sys/ioctl.h>, <arpa/inet.h> from file net/mlx5/mlx5_mac.c <sys/mman.h> from file net/mlx5/mlx5.c
Fixes: 771fa900b73a ("mlx5: introduce new driver for Mellanox ConnectX-4 adapters") Cc: stable@dpdk.org
Signed-off-by: Ophir Munk <ophirmu@mellanox.com> Acked-by: Matan Azrad <matan@mellanox.com>
show more ...
|
#
753dd702 |
| 22-Jul-2020 |
Raslan Darawsheh <rasland@mellanox.com> |
net/mlx5: fix VF MAC address set over BlueField
When trying to set MAC address of an ethernet device and if it was a representor, PMD sets the MAC over the corresponding VF instead.
For the case of
net/mlx5: fix VF MAC address set over BlueField
When trying to set MAC address of an ethernet device and if it was a representor, PMD sets the MAC over the corresponding VF instead.
For the case of HPF (Host PF representor on BlueField), PMD shouldn't attempt to set it, since it doesn't have any corresponding VF and fails.
This will fix the issue by setting the MAC on the dev directly.
Fixes: 0d1d73170820 ("net/mlx5: set VF MAC address from host") Cc: stable@dpdk.org
Signed-off-by: Raslan Darawsheh <rasland@mellanox.com> Acked-by: Viacheslav Ovsiienko <viacheslavo@mellanox.com>
show more ...
|
#
9d60f545 |
| 19-Jul-2020 |
Ophir Munk <ophirmu@mellanox.com> |
common/mlx5: remove inclusion of Verbs header files
Several source files include Verbs header files as in (1). These source files will not compile under non-Linux operating systems. This commit remo
common/mlx5: remove inclusion of Verbs header files
Several source files include Verbs header files as in (1). These source files will not compile under non-Linux operating systems. This commit removes this inclusion in two cases:
Case 1: There is no usage of ibv_* or mlx5dv_* symbols in the source file so the inclusion in (1) can be safely removed.
Case 2: Verbs symbols are used. Please note the inclusion in (1) already appears in file linux/mlx5_glue.h (which represents the interface to the rdma-core library). Therefore, replace (1) in the source file with (2). Under non-Linux operating systems - file mlx5_glue.h will not include (1).
(1) #include <infiniband/verbs.h> #include <infiniband/mlx5dv.h>
(2) #include <mlx5_glue.h>
Signed-off-by: Ophir Munk <ophirmu@mellanox.com> Acked-by: Matan Azrad <matan@mellanox.com>
show more ...
|
#
ab27cdd9 |
| 19-Jul-2020 |
Ophir Munk <ophirmu@mellanox.com> |
net/mlx5: refactor Linux MAC operations
Move OS specific MAC operations add, remove, modify VF into file linux/mlx5_os.c. Remove unused function mlx5_get_mac().
Signed-off-by: Ophir Munk <ophirmu@m
net/mlx5: refactor Linux MAC operations
Move OS specific MAC operations add, remove, modify VF into file linux/mlx5_os.c. Remove unused function mlx5_get_mac().
Signed-off-by: Ophir Munk <ophirmu@mellanox.com> Acked-by: Matan Azrad <matan@mellanox.com>
show more ...
|
#
8e46d4e1 |
| 30-Jan-2020 |
Alexander Kozyrev <akozyrev@mellanox.com> |
common/mlx5: improve assert control
Use the MLX5_ASSERT macros instead of the standard assert clause. Depends on the RTE_LIBRTE_MLX5_DEBUG configuration option to define it. If RTE_LIBRTE_MLX5_DEBUG
common/mlx5: improve assert control
Use the MLX5_ASSERT macros instead of the standard assert clause. Depends on the RTE_LIBRTE_MLX5_DEBUG configuration option to define it. If RTE_LIBRTE_MLX5_DEBUG is enabled MLX5_ASSERT is equal to RTE_VERIFY to bypass the global CONFIG_RTE_ENABLE_ASSERT option. If RTE_LIBRTE_MLX5_DEBUG is disabled, the global CONFIG_RTE_ENABLE_ASSERT can still make this assert active by calling RTE_VERIFY inside RTE_ASSERT.
Signed-off-by: Alexander Kozyrev <akozyrev@mellanox.com> Acked-by: Viacheslav Ovsiienko <viacheslavo@mellanox.com>
show more ...
|
#
f22442cb |
| 29-Jan-2020 |
Matan Azrad <matan@mellanox.com> |
net/mlx5: reduce Netlink commands dependencies
As an arrangment for Netlink command moving to the common library, reduce the net/mlx5 dependencies.
Replace ethdev class command parameters.
Improve
net/mlx5: reduce Netlink commands dependencies
As an arrangment for Netlink command moving to the common library, reduce the net/mlx5 dependencies.
Replace ethdev class command parameters.
Improve Netlink sequence number mechanism to be controlled by the mlx5 Netlink mechanism.
Move mlx5_nl_check_switch_info to mlx5_nl.c since it is the only one which uses it.
Signed-off-by: Matan Azrad <matan@mellanox.com> Acked-by: Viacheslav Ovsiienko <viacheslavo@mellanox.com>
show more ...
|
#
7b4f1e6b |
| 29-Jan-2020 |
Matan Azrad <matan@mellanox.com> |
common/mlx5: introduce common library
A new Mellanox vdpa PMD will be added to support vdpa operations by Mellanox adapters.
This vdpa PMD design includes mlx5_glue and mlx5_devx operations and lar
common/mlx5: introduce common library
A new Mellanox vdpa PMD will be added to support vdpa operations by Mellanox adapters.
This vdpa PMD design includes mlx5_glue and mlx5_devx operations and large parts of them are shared with the net/mlx5 PMD.
Create a new common library in drivers/common for mlx5 PMDs. Move mlx5_glue, mlx5_devx_cmds and their dependencies to the new mlx5 common library in drivers/common.
The files mlx5_devx_cmds.c, mlx5_devx_cmds.h, mlx5_glue.c, mlx5_glue.h and mlx5_prm.h are moved as is from drivers/net/mlx5 to drivers/common/mlx5.
Share the log mechanism macros. Separate also the log mechanism to allow different log level control to the common library.
Build files and version files are adjusted accordingly. Include lines are adjusted accordingly.
Signed-off-by: Matan Azrad <matan@mellanox.com> Acked-by: Viacheslav Ovsiienko <viacheslavo@mellanox.com>
show more ...
|
#
0d1d7317 |
| 11-Nov-2019 |
Raslan Darawsheh <rasland@mellanox.com> |
net/mlx5: set VF MAC address from host
Allow to configure the default MAC address of a VF via its representor port in the host.
An API was proposed to specify explicitly the VF as a target: https:/
net/mlx5: set VF MAC address from host
Allow to configure the default MAC address of a VF via its representor port in the host.
An API was proposed to specify explicitly the VF as a target: https://patches.dpdk.org/patch/62176/
It has been rejected by the technical board in order to keep compatibility with behavior in Intel PMDs. http://mails.dpdk.org/archives/dev/2019-November/150588.html
Signed-off-by: Thomas Monjalon <thomas@monjalon.net> Signed-off-by: Raslan Darawsheh <rasland@mellanox.com> Acked-by: Viacheslav Ovsiienko <viacheslavo@mellanox.com>
show more ...
|
#
35b2d13f |
| 21-May-2019 |
Olivier Matz <olivier.matz@6wind.com> |
net: add rte prefix to ether defines
Add 'RTE_' prefix to defines: - rename ETHER_ADDR_LEN as RTE_ETHER_ADDR_LEN. - rename ETHER_TYPE_LEN as RTE_ETHER_TYPE_LEN. - rename ETHER_CRC_LEN as RTE_ETHER_C
net: add rte prefix to ether defines
Add 'RTE_' prefix to defines: - rename ETHER_ADDR_LEN as RTE_ETHER_ADDR_LEN. - rename ETHER_TYPE_LEN as RTE_ETHER_TYPE_LEN. - rename ETHER_CRC_LEN as RTE_ETHER_CRC_LEN. - rename ETHER_HDR_LEN as RTE_ETHER_HDR_LEN. - rename ETHER_MIN_LEN as RTE_ETHER_MIN_LEN. - rename ETHER_MAX_LEN as RTE_ETHER_MAX_LEN. - rename ETHER_MTU as RTE_ETHER_MTU. - rename ETHER_MAX_VLAN_FRAME_LEN as RTE_ETHER_MAX_VLAN_FRAME_LEN. - rename ETHER_MAX_VLAN_ID as RTE_ETHER_MAX_VLAN_ID. - rename ETHER_MAX_JUMBO_FRAME_LEN as RTE_ETHER_MAX_JUMBO_FRAME_LEN. - rename ETHER_MIN_MTU as RTE_ETHER_MIN_MTU. - rename ETHER_LOCAL_ADMIN_ADDR as RTE_ETHER_LOCAL_ADMIN_ADDR. - rename ETHER_GROUP_ADDR as RTE_ETHER_GROUP_ADDR. - rename ETHER_TYPE_IPv4 as RTE_ETHER_TYPE_IPv4. - rename ETHER_TYPE_IPv6 as RTE_ETHER_TYPE_IPv6. - rename ETHER_TYPE_ARP as RTE_ETHER_TYPE_ARP. - rename ETHER_TYPE_VLAN as RTE_ETHER_TYPE_VLAN. - rename ETHER_TYPE_RARP as RTE_ETHER_TYPE_RARP. - rename ETHER_TYPE_QINQ as RTE_ETHER_TYPE_QINQ. - rename ETHER_TYPE_ETAG as RTE_ETHER_TYPE_ETAG. - rename ETHER_TYPE_1588 as RTE_ETHER_TYPE_1588. - rename ETHER_TYPE_SLOW as RTE_ETHER_TYPE_SLOW. - rename ETHER_TYPE_TEB as RTE_ETHER_TYPE_TEB. - rename ETHER_TYPE_LLDP as RTE_ETHER_TYPE_LLDP. - rename ETHER_TYPE_MPLS as RTE_ETHER_TYPE_MPLS. - rename ETHER_TYPE_MPLSM as RTE_ETHER_TYPE_MPLSM. - rename ETHER_VXLAN_HLEN as RTE_ETHER_VXLAN_HLEN. - rename ETHER_ADDR_FMT_SIZE as RTE_ETHER_ADDR_FMT_SIZE. - rename VXLAN_GPE_TYPE_IPV4 as RTE_VXLAN_GPE_TYPE_IPV4. - rename VXLAN_GPE_TYPE_IPV6 as RTE_VXLAN_GPE_TYPE_IPV6. - rename VXLAN_GPE_TYPE_ETH as RTE_VXLAN_GPE_TYPE_ETH. - rename VXLAN_GPE_TYPE_NSH as RTE_VXLAN_GPE_TYPE_NSH. - rename VXLAN_GPE_TYPE_MPLS as RTE_VXLAN_GPE_TYPE_MPLS. - rename VXLAN_GPE_TYPE_GBP as RTE_VXLAN_GPE_TYPE_GBP. - rename VXLAN_GPE_TYPE_VBNG as RTE_VXLAN_GPE_TYPE_VBNG. - rename ETHER_VXLAN_GPE_HLEN as RTE_ETHER_VXLAN_GPE_HLEN.
Do not update the command line library to avoid adding a dependency to librte_net.
Signed-off-by: Olivier Matz <olivier.matz@6wind.com> Reviewed-by: Stephen Hemminger <stephen@networkplumber.org> Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com> Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
show more ...
|
#
538da7a1 |
| 21-May-2019 |
Olivier Matz <olivier.matz@6wind.com> |
net: add rte prefix to ether functions
Add 'rte_' prefix to functions: - rename is_same_ether_addr() as rte_is_same_ether_addr(). - rename is_zero_ether_addr() as rte_is_zero_ether_addr(). - rename
net: add rte prefix to ether functions
Add 'rte_' prefix to functions: - rename is_same_ether_addr() as rte_is_same_ether_addr(). - rename is_zero_ether_addr() as rte_is_zero_ether_addr(). - rename is_unicast_ether_addr() as rte_is_unicast_ether_addr(). - rename is_multicast_ether_addr() as rte_is_multicast_ether_addr(). - rename is_broadcast_ether_addr() as rte_is_broadcast_ether_addr(). - rename is_universal_ether_addr() as rte_is_universal_ether_addr(). - rename is_local_admin_ether_addr() as rte_is_local_admin_ether_addr(). - rename is_valid_assigned_ether_addr() as rte_is_valid_assigned_ether_addr(). - rename eth_random_addr() as rte_eth_random_addr(). - rename ether_addr_copy() as rte_ether_addr_copy(). - rename ether_format_addr() as rte_ether_format_addr().
Signed-off-by: Olivier Matz <olivier.matz@6wind.com> Reviewed-by: Stephen Hemminger <stephen@networkplumber.org> Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com> Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
show more ...
|
#
6d13ea8e |
| 21-May-2019 |
Olivier Matz <olivier.matz@6wind.com> |
net: add rte prefix to ether structures
Add 'rte_' prefix to structures: - rename struct ether_addr as struct rte_ether_addr. - rename struct ether_hdr as struct rte_ether_hdr. - rename struct vlan_
net: add rte prefix to ether structures
Add 'rte_' prefix to structures: - rename struct ether_addr as struct rte_ether_addr. - rename struct ether_hdr as struct rte_ether_hdr. - rename struct vlan_hdr as struct rte_vlan_hdr. - rename struct vxlan_hdr as struct rte_vxlan_hdr. - rename struct vxlan_gpe_hdr as struct rte_vxlan_gpe_hdr.
Do not update the command line library to avoid adding a dependency to librte_net.
Signed-off-by: Olivier Matz <olivier.matz@6wind.com> Reviewed-by: Stephen Hemminger <stephen@networkplumber.org> Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com> Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
show more ...
|
#
dbeba4cf |
| 21-Feb-2019 |
Thomas Monjalon <thomas@monjalon.net> |
net/mlx: prefix private structure
The private structure stored in rte_eth_dev->data->dev_private was named "struct priv". In order to ease code browsing, the structure is renamed "struct mlx[45]_pri
net/mlx: prefix private structure
The private structure stored in rte_eth_dev->data->dev_private was named "struct priv". In order to ease code browsing, the structure is renamed "struct mlx[45]_priv".
Cc: stable@dpdk.org
Signed-off-by: Thomas Monjalon <thomas@monjalon.net> Acked-by: Yongseok Koh <yskoh@mellanox.com>
show more ...
|
#
7dd7be29 |
| 08-Oct-2018 |
Shahaf Shuler <shahafs@mellanox.com> |
net/mlx5: always use representor ifindex for ioctl
In the current code, on some cases the representor ethdev is using the PF interface to query some link status information or pause parameters.
It
net/mlx5: always use representor ifindex for ioctl
In the current code, on some cases the representor ethdev is using the PF interface to query some link status information or pause parameters.
It was done because in previous kernel versions there was no support from the kernel for the representor info.
Using the PF i/f for such ioctl is error prone and not always working because: * On some cases there is no PF at all, only representors (e.g Bluefield with host representors) * Query the up/down status from representor and link status from PF is in-consist * PF link is down doesn't necessarily means representor is down. * setting different pause configuration for the PF and the representors will result on undefined behaviour
Making the code cleaner and more robust by using only the representor i/f for the ioctl. whatever the kernel will provide on this query will be used. No need to do W.A. for kernel missing functionality.
Note: 1. Setting pause parameters will obviously won't work on representors 2. Old kernel will not report all the possible representor info
Fixes: 2b7302638898 ("net/mlx5: probe all port representors") Cc: stable@dpdk.org
Signed-off-by: Shahaf Shuler <shahafs@mellanox.com>
show more ...
|
#
2b730263 |
| 10-Jul-2018 |
Adrien Mazarguil <adrien.mazarguil@6wind.com> |
net/mlx5: probe all port representors
Probe existing port representors in addition to their master device and associate them automatically.
To avoid collision between Ethernet devices, they are nam
net/mlx5: probe all port representors
Probe existing port representors in addition to their master device and associate them automatically.
To avoid collision between Ethernet devices, they are named as follows:
- "{DBDF}" for master/switch devices. - "{DBDF}_representor_{rep}" with "rep" starting from 0 for port representors.
(Patch based on prior work from Yuanhan Liu)
Signed-off-by: Adrien Mazarguil <adrien.mazarguil@6wind.com> Signed-off-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com> Reviewed-by: Xueming Li <xuemingl@mellanox.com>
show more ...
|
#
e0586a8d |
| 23-Apr-2018 |
Nélio Laranjeiro <nelio.laranjeiro@6wind.com> |
net/mlx5: implement multicast add list devop
Signed-off-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com>
|
#
18c01b98 |
| 23-Apr-2018 |
Nélio Laranjeiro <nelio.laranjeiro@6wind.com> |
net/mlx5: split MAC address add/remove code
Move some code in DPDK callbacks to add/remove MAC addresses to internal function. This modification will be necessary to handle implement the devop set_
net/mlx5: split MAC address add/remove code
Move some code in DPDK callbacks to add/remove MAC addresses to internal function. This modification will be necessary to handle implement the devop set_mc_addr_list.
Signed-off-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com>
show more ...
|
#
fa80b3c9 |
| 23-Apr-2018 |
Nélio Laranjeiro <nelio.laranjeiro@6wind.com> |
net/mlx5: add more checks on MAC addresses
Verify MAC address before further process.
Signed-off-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com>
|