Re: [PATCH] fm10k: fix an error message when adding default VLAN
From: He, Shaopeng <hidden>
Date: 2015-07-02 06:34:35
Hi Thomas,
-----Original Message----- From: Thomas Monjalon [mailto:thomas.monjalon@6wind.com] Sent: Wednesday, July 01, 2015 9:12 PM To: He, Shaopeng Cc: dev@dpdk.org Subject: Re: [dpdk-dev] [PATCH] fm10k: fix an error message when adding default VLAN 2015-06-26 10:37, Shaopeng He:quoted
The default MAC address is directly copied to Device Ethernet Link address array in the device initialize phase, whichDo you mean "device start phase" instead?
Thanks for taking time to review this patch. The default MAC address is read from hardware and copied to dev->data->mac_addrs in eth_fm10k_dev_init, but the fm10k_MAC_filter_set previously was called in fm10k_dev_start, which caused this issue.
quoted
bypasses fm10k MAC address number check mechanism, and will cause an error message when adding default VLAN. Fix it byWhat is the error message? Is it only an error message or a behaviour error?
The error message is "MAC address number not match", it is only an error message, because fm10k_dev_start will eventually be called when default_vid was ready, and MAC/VLAN table will be updated correctly. default_vid is necessary for fm10k to function correctly.
quoted
moving default MAC address registration to device initialize phase.Yes it is moved from start to init.
fm10k_MAC_filter_set is moved from eth_fm10k_dev_init to eth_fm10k_dev_init, aligned with the place where the default MAC address is actually read and copied.
quoted
--- a/drivers/net/fm10k/fm10k_ethdev.c +++ b/drivers/net/fm10k/fm10k_ethdev.c@@ -791,14 +791,10 @@ fm10k_dev_start(struct rte_eth_dev *dev) } } - if (hw->mac.default_vid && hw->mac.default_vid <=ETHER_MAX_VLAN_ID) {quoted
- /* Update default vlan */ + /* Update default vlan */ + if (hw->mac.default_vid && hw->mac.default_vid <=ETHER_MAX_VLAN_ID)quoted
fm10k_vlan_filter_set(dev, hw->mac.default_vid, true); - /* Add default mac/vlan filter to PF/Switch manager */ - fm10k_MAC_filter_set(dev, hw->mac.addr, true); - } - return 0; }@@ -2144,6 +2140,8 @@ eth_fm10k_dev_init(struct rte_eth_dev *dev) fm10k_mbx_unlock(hw); + /* Add default mac address */ + fm10k_MAC_filter_set(dev, hw->mac.addr, true); return 0; }