Go to file
Robin Zhang 3f604ddf33 net/i40e: fix lack of MAC type when set MAC address
Currently, there is no way for a VF driver to specify that it wants to
change its device/primary unicast MAC address. This makes it
difficult/impossible for the PF driver to track the VF's device/primary
unicast MAC address, which is used for VM/VF reboot and displaying on
the host. Fix this by using 2 bits of a pad byte in the
virtchnl_ether_addr structure so the VF can specify what type of MAC
it's adding/deleting.

Below are the values that should be used by all VF drivers going
forward.

VIRTCHNL_ETHER_ADDR_LEGACY(0):
- The type should only ever be 0 for legacy AVF drivers (i.e.
  drivers that don't support the new type bits). The PF drivers
  will track VF's device/primary unicast MAC using with best
  effort.

VIRTCHNL_ETHER_ADDR_PRIMARY(1):
- This type should only be used when the VF is changing their
  device/primary unicast MAC. It should be used for both delete
  and add cases related to the device/primary unicast MAC.

VIRTCHNL_ETHER_ADDR_EXTRA(2):
- This type should be used when the VF is adding and/or deleting
  MAC addresses that are not the device/primary unicast MAC. For
  example, extra unicast addresses and multicast addresses
  assuming the PF supports "extra" addresses at all.

If a PF is parsing the type field of the virtchnl_ether_addr, then it
should use the VIRTCHNL_ETHER_ADDR_TYPE_MASK to mask the first two bits
of the type field since 0, 1, and 2 are the only valid values.

For i40evf PMD, when set default MAC address, use type
VIRTCHNL_ETHER_ADDR_PRIMARY as this case is changing device/primary
unicast MAC. For other cases, such as adding or deleting extra unicast
addresses and multicast addresses, use type VIRTCHNL_ETHER_ADDR_EXTRA.

Fixes: 6d13ea8e8e ("net: add rte prefix to ether structures")
Fixes: caccf8b318 ("ethdev: return diagnostic when setting MAC address")
Cc: stable@dpdk.org

Signed-off-by: Robin Zhang <robinx.zhang@intel.com>
Tested-by: Yan Xia <yanx.xia@intel.com>
2021-04-16 12:27:26 +02:00
.ci build: update minimum required Meson version 2021-04-16 18:51:51 +02:00
.github/workflows ci: bump ABI reference version 2021-04-16 14:09:03 +02:00
app app/testpmd: fix bitmap of link speeds when force speed 2021-04-14 13:54:44 +02:00
buildtools buildtools: fix all drivers disabled on Windows 2021-04-17 12:49:23 +02:00
config config/arm: fix implementer and its SoCs 2021-04-15 22:34:37 +02:00
devtools cryptodev: support multiple cipher data-units 2021-04-16 12:43:33 +02:00
doc net/ice: support flow priority for DCF switch filter 2021-04-16 12:22:00 +02:00
drivers net/i40e: fix lack of MAC type when set MAC address 2021-04-16 12:27:26 +02:00
examples examples/l2fwd-crypto: remove key size validation 2021-04-16 12:43:33 +02:00
kernel build: support KNI cross-compilation 2021-03-15 23:43:40 +01:00
lib ethdev: update flow item GTP QFI definition 2021-04-14 14:17:41 +02:00
license license: fix typos 2021-04-13 13:56:52 +02:00
usertools usertools: show hugepages requested/set on failure 2021-03-25 18:07:47 +01:00
.editorconfig devtools: add EditorConfig file 2020-02-22 21:05:22 +01:00
.gitattributes
.gitignore regex/mlx5: introduce driver for BlueField 2 2020-07-21 19:04:05 +02:00
.travis.yml ci: bump ABI reference version 2021-04-16 14:09:03 +02:00
ABI_VERSION version: 21.05-rc0 2021-02-15 11:08:19 +01:00
MAINTAINERS pflock: add phase-fair reader writer locks 2021-04-14 21:59:47 +02:00
Makefile build: create dummy Makefile 2020-09-07 23:51:57 +02:00
meson_options.txt config/arm: add platform config option 2021-04-15 22:34:37 +02:00
meson.build build: update minimum required Meson version 2021-04-16 18:51:51 +02:00
README
VERSION version: 21.05-rc0 2021-02-15 11:08:19 +01:00

DPDK is a set of libraries and drivers for fast packet processing.
It supports many processor architectures and both FreeBSD and Linux.

The DPDK uses the Open Source BSD-3-Clause license for the core libraries
and drivers. The kernel components are GPL-2.0 licensed.

Please check the doc directory for release notes,
API documentation, and sample application information.

For questions and usage discussions, subscribe to: users@dpdk.org
Report bugs and issues to the development mailing list: dev@dpdk.org