From: Dimon Zhao <[email protected]>
Implement the vlan_offload_set device operation to allow
enabling or disabling VLAN offloads through the API.
rte_eth_dev_set_vlan_offload() calls the driver to update the hardware
configuration. Because this driver performs VLAN stripping entirely in
software, only a dummy implementation is needed to avoid returning an
error.
Validation of unsupported or invalid flags is already handled in ethdev.
Fixes: 9d7757dce874 ("net/nbl: simulate VLAN offload")
Signed-off-by: Dimon Zhao <[email protected]>
Reviewed-by: Stephen Hemminger <[email protected]>
---
v2 - reworded the commit message and added a comment
(want ok from original submitter)
drivers/net/nbl/nbl_dev/nbl_dev.c | 9 +++++++++
drivers/net/nbl/nbl_dev/nbl_dev.h | 1 +
drivers/net/nbl/nbl_ethdev.c | 1 +
3 files changed, 11 insertions(+)
diff --git a/drivers/net/nbl/nbl_dev/nbl_dev.c
b/drivers/net/nbl/nbl_dev/nbl_dev.c
index 58eb1c6231..e926c06456 100644
--- a/drivers/net/nbl/nbl_dev/nbl_dev.c
+++ b/drivers/net/nbl/nbl_dev/nbl_dev.c
@@ -758,6 +758,15 @@ int nbl_promiscuous_disable(struct rte_eth_dev *eth_dev)
return 0;
}
+int nbl_vlan_offload_set(__rte_unused struct rte_eth_dev *dev, __rte_unused
int mask)
+{
+ /*
+ * No hardware or state change needed since
+ * receive does VLAN in software based on rxmode.offload
+ */
+ return 0;
+}
+
static int nbl_dev_setup_chan_queue(struct nbl_adapter *adapter)
{
struct nbl_dev_mgt *dev_mgt = NBL_ADAPTER_TO_DEV_MGT(adapter);
diff --git a/drivers/net/nbl/nbl_dev/nbl_dev.h
b/drivers/net/nbl/nbl_dev/nbl_dev.h
index c8a5a4670b..21d87a372d 100644
--- a/drivers/net/nbl/nbl_dev/nbl_dev.h
+++ b/drivers/net/nbl/nbl_dev/nbl_dev.h
@@ -95,5 +95,6 @@ int nbl_xstats_reset(struct rte_eth_dev *eth_dev);
int nbl_mtu_set(struct rte_eth_dev *eth_dev, uint16_t mtu);
int nbl_promiscuous_enable(struct rte_eth_dev *eth_dev);
int nbl_promiscuous_disable(struct rte_eth_dev *eth_dev);
+int nbl_vlan_offload_set(__rte_unused struct rte_eth_dev *dev, __rte_unused
int mask);
#endif
diff --git a/drivers/net/nbl/nbl_ethdev.c b/drivers/net/nbl/nbl_ethdev.c
index a3b963e9cc..d269ea8058 100644
--- a/drivers/net/nbl/nbl_ethdev.c
+++ b/drivers/net/nbl/nbl_ethdev.c
@@ -45,6 +45,7 @@ const struct eth_dev_ops nbl_eth_dev_ops = {
.mtu_set = nbl_mtu_set,
.promiscuous_enable = nbl_promiscuous_enable,
.promiscuous_disable = nbl_promiscuous_disable,
+ .vlan_offload_set = nbl_vlan_offload_set,
};
static int nbl_eth_dev_init(struct rte_eth_dev *eth_dev)
--
2.51.0