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