Current ethdev always stores the MAC address even it fails to be added.
Other function may regard the failed MAC address valid and lead to
some errors. So There is a need to check if the addr is added
successfully or not and discard it if it fails.

In 3rd patch, add a command "add_more_mac_addr port_id base_mac_addr count"
to add more than one MAC address one time.
This command can simplify the test for the first patch.
Normally a MAC address may fails to be added only after many MAC
addresses have been added.
Without this command, a tester may only trigger failed MAC address
by running many times of testpmd command 'mac_addr add' .

This patch set has got acknowledgements from
Nelio Laranjeiro <nelio.laranje...@6wind.com>  for mlx changes
Yuanhan Liu <yuanhan....@linux.intel.com>  for virtio changes
Wenzhuo Lu <wenzhuo...@intel.com> for igb, e1000 and ixgbe changes

---
Changes
v7:
  1. remove "Cc: sta...@dpdk.org" in patch 1/3
  2. add "Acked by: Wenzhuo.Lu <wenzhuo...@intel.com>" in patch 1/3

v6:
  1. rebase master branch to v17.05-rc3
  2. not touch e1000 base driver code
  3. fix some minor defects

v5:
  1. rebase master branch
  2. add support to drivers/net/ark
  3. fix some minor defects

v4:
  1. rebase master branch
  2. follow code style

v3:
  1. Change return value for some specific NIC according to feedbacks
     from the community;
  2. Add ABI change in release note;
  3. Add more detailed commit message.

v2:
  fix warnings and erros from check-git-log.sh and checkpatch.pl


Wei Dai (3):
  ethdev: fix adding invalid MAC addr
  doc: change type of return value of adding MAC addr
  app/testpmd: add a command to add many MAC addrs

 app/test-pmd/cmdline.c                 | 55 ++++++++++++++++++++++++++++++++++
 doc/guides/rel_notes/release_17_05.rst |  7 +++++
 drivers/net/ark/ark_ethdev.c           | 15 ++++++----
 drivers/net/bnx2x/bnx2x_ethdev.c       |  7 +++--
 drivers/net/bnxt/bnxt_ethdev.c         | 16 +++++-----
 drivers/net/e1000/em_ethdev.c          |  8 ++---
 drivers/net/e1000/igb_ethdev.c         |  9 +++---
 drivers/net/enic/enic.h                |  2 +-
 drivers/net/enic/enic_ethdev.c         |  4 +--
 drivers/net/enic/enic_main.c           |  9 +++---
 drivers/net/fm10k/fm10k_ethdev.c       |  3 +-
 drivers/net/i40e/i40e_ethdev.c         | 17 ++++++-----
 drivers/net/i40e/i40e_ethdev_vf.c      | 14 ++++-----
 drivers/net/ixgbe/ixgbe_ethdev.c       | 33 ++++++++++++--------
 drivers/net/mlx4/mlx4.c                | 16 ++++++----
 drivers/net/mlx5/mlx5.h                |  4 +--
 drivers/net/mlx5/mlx5_mac.c            | 16 ++++++----
 drivers/net/qede/qede_ethdev.c         |  6 ++--
 drivers/net/ring/rte_eth_ring.c        |  3 +-
 drivers/net/virtio/virtio_ethdev.c     | 13 ++++----
 lib/librte_ether/rte_ethdev.c          | 15 ++++++----
 lib/librte_ether/rte_ethdev.h          |  2 +-
 22 files changed, 184 insertions(+), 90 deletions(-)

-- 
2.7.4

Reply via email to