git: ea68079ffd84 - main - Suport Q-in-Q for mvneta.

From: Wojciech Macek <wma_at_FreeBSD.org>
Date: Fri, 03 Dec 2021 10:07:22 UTC
The branch main has been updated by wma:

URL: https://cgit.FreeBSD.org/src/commit/?id=ea68079ffd84504848faf5cdf2ebed27d7ba590f

commit ea68079ffd84504848faf5cdf2ebed27d7ba590f
Author:     Arnaud Ysmal <arnaud.ysmal@stormshield.eu>
AuthorDate: 2021-10-19 08:07:47 +0000
Commit:     Wojciech Macek <wma@FreeBSD.org>
CommitDate: 2021-12-03 10:06:58 +0000

    Suport Q-in-Q for mvneta.
---
 sys/dev/neta/if_mvneta.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/sys/dev/neta/if_mvneta.c b/sys/dev/neta/if_mvneta.c
index 1ddd95cced78..c94e91b16013 100644
--- a/sys/dev/neta/if_mvneta.c
+++ b/sys/dev/neta/if_mvneta.c
@@ -2792,6 +2792,7 @@ mvneta_tx_set_csumflag(struct ifnet *ifp,
     struct mvneta_tx_desc *t, struct mbuf *m)
 {
 	struct ether_header *eh;
+	struct ether_vlan_header *evh;
 	int csum_flags;
 	uint32_t iphl, ipoff;
 	struct ip *ip;
@@ -2806,6 +2807,9 @@ mvneta_tx_set_csumflag(struct ifnet *ifp,
 		break;
 	case ETHERTYPE_VLAN:
 		ipoff = ETHER_HDR_LEN + ETHER_VLAN_ENCAP_LEN;
+		evh = mtod(m, struct ether_vlan_header *);
+		if (ntohs(evh->evl_proto) == ETHERTYPE_VLAN)
+			ipoff += ETHER_VLAN_ENCAP_LEN;
 		break;
 	default:
 		csum_flags = 0;