[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 35/40] igb: Filter with the second VLAN tag for extended VLAN
From: |
Akihiko Odaki |
Subject: |
[PATCH 35/40] igb: Filter with the second VLAN tag for extended VLAN |
Date: |
Fri, 14 Apr 2023 20:37:32 +0900 |
Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
---
hw/net/igb_core.c | 14 +++++++++++---
1 file changed, 11 insertions(+), 3 deletions(-)
diff --git a/hw/net/igb_core.c b/hw/net/igb_core.c
index 6e8de9d878..70acc86834 100644
--- a/hw/net/igb_core.c
+++ b/hw/net/igb_core.c
@@ -1017,9 +1017,17 @@ static uint16_t igb_receive_assign(IGBCore *core, const
L2Header *l2_header,
return queues;
}
- if (e1000x_is_vlan_packet(ehdr, core->mac[VET] & 0xffff) &&
- !e1000x_rx_vlan_filter(core->mac, PKT_GET_VLAN_HDR(ehdr))) {
- return queues;
+ if (core->mac[CTRL_EXT] & BIT(26)) {
+ if (be16_to_cpu(ehdr->h_proto) == core->mac[VET] >> 16 &&
+ be16_to_cpu(l2_header->vlan[0].h_proto) == (core->mac[VET] &
0xffff) &&
+ !e1000x_rx_vlan_filter(core->mac, l2_header->vlan + 1)) {
+ return queues;
+ }
+ } else {
+ if (be16_to_cpu(ehdr->h_proto) == (core->mac[VET] & 0xffff) &&
+ !e1000x_rx_vlan_filter(core->mac, l2_header->vlan)) {
+ return queues;
+ }
}
if (core->mac[MRQC] & 1) {
--
2.40.0
- Re: [PATCH 38/40] vmxnet3: Do not depend on PC, (continued)
- [PATCH 37/40] igb: Implement Tx timestamp, Akihiko Odaki, 2023/04/14
- [PATCH 33/40] igb: Implement Tx SCTP CSO, Akihiko Odaki, 2023/04/14
- [PATCH 39/40] MAINTAINERS: Add a reviewer for network packet abstractions, Akihiko Odaki, 2023/04/14
- [PATCH 34/40] igb: Strip the second VLAN tag for extended VLAN, Akihiko Odaki, 2023/04/14
- [PATCH 40/40] docs/system/devices/igb: Note igb is tested for DPDK, Akihiko Odaki, 2023/04/14
- [PATCH 36/40] igb: Implement Rx PTP2 timestamp, Akihiko Odaki, 2023/04/14
- [PATCH 32/40] igb: Implement Rx SCTP CSO, Akihiko Odaki, 2023/04/14
- [PATCH 35/40] igb: Filter with the second VLAN tag for extended VLAN,
Akihiko Odaki <=