29 lines
1.3 KiB
Diff
29 lines
1.3 KiB
Diff
diff --git a/src/include/dpdk_version.h b/src/include/dpdk_version.h
|
|
index df3adb5..bf03d98 100644
|
|
--- a/src/include/dpdk_version.h
|
|
+++ b/src/include/dpdk_version.h
|
|
@@ -56,6 +56,7 @@
|
|
#define RTE_ETH_RX_OFFLOAD_UDP_CKSUM DEV_RX_OFFLOAD_UDP_CKSUM
|
|
#define RTE_ETH_RX_OFFLOAD_IPV4_CKSUM DEV_RX_OFFLOAD_IPV4_CKSUM
|
|
#define RTE_ETH_RX_OFFLOAD_VLAN_STRIP DEV_RX_OFFLOAD_VLAN_STRIP
|
|
+#define RTE_ETH_RX_OFFLOAD_VLAN_FILTER DEV_RX_OFFLOAD_VLAN_FILTER
|
|
|
|
#define RTE_ETH_TX_OFFLOAD_IPV4_CKSUM DEV_TX_OFFLOAD_IPV4_CKSUM
|
|
#define RTE_ETH_TX_OFFLOAD_VLAN_INSERT DEV_TX_OFFLOAD_VLAN_INSERT
|
|
diff --git a/src/netif/ethernet.c b/src/netif/ethernet.c
|
|
index 0d8652b..d0d68b3 100644
|
|
--- a/src/netif/ethernet.c
|
|
+++ b/src/netif/ethernet.c
|
|
@@ -122,6 +122,11 @@ ethernet_input(struct pbuf *p, struct netif *netif)
|
|
MIB2_STATS_NETIF_INC(netif, ifinerrors);
|
|
goto free_and_return;
|
|
}
|
|
+#if GAZELLE_ENABLE
|
|
+ if (netif->vlan_enable && !(netif->txol_flags & RTE_ETH_RX_OFFLOAD_VLAN_FILTER) && VLAN_ID(vlan) != netif->vlan_tci) {
|
|
+ goto free_and_return;
|
|
+ }
|
|
+#endif
|
|
#if defined(LWIP_HOOK_VLAN_CHECK) || defined(ETHARP_VLAN_CHECK) || defined(ETHARP_VLAN_CHECK_FN) /* if not, allow all VLANs */
|
|
#ifdef LWIP_HOOK_VLAN_CHECK
|
|
if (!LWIP_HOOK_VLAN_CHECK(netif, ethhdr, vlan)) {
|