57 lines
1.9 KiB
Diff
57 lines
1.9 KiB
Diff
diff -Nur lwip-82/src/include/dpdk_version.h lwip-offload/src/include/dpdk_version.h
|
|
--- lwip-82/src/include/dpdk_version.h 2023-11-28 14:17:02.432481010 +0800
|
|
+++ lwip-offload/src/include/dpdk_version.h 2023-11-28 14:34:21.208481010 +0800
|
|
@@ -48,6 +48,7 @@
|
|
#define RTE_MBUF_F_TX_TCP_CKSUM PKT_TX_TCP_CKSUM
|
|
#define RTE_MBUF_F_TX_TCP_SEG PKT_TX_TCP_SEG
|
|
#define RTE_MBUF_F_TX_UDP_CKSUM PKT_TX_UDP_CKSUM
|
|
+#define RTE_MBUF_F_TX_VLAN PKT_TX_VLAN_PKT
|
|
|
|
#endif /* DPDK_VERSION_1911 */
|
|
|
|
diff -Nur lwip-82/src/include/lwip/pbuf.h lwip-offload/src/include/lwip/pbuf.h
|
|
--- lwip-82/src/include/lwip/pbuf.h 2023-11-28 14:17:02.408481010 +0800
|
|
+++ lwip-offload/src/include/lwip/pbuf.h 2023-11-28 14:41:31.580481010 +0800
|
|
@@ -240,6 +240,7 @@
|
|
struct pbuf *last;
|
|
pthread_spinlock_t pbuf_lock;
|
|
struct tcp_pcb *pcb;
|
|
+ u16_t vlan_tci;
|
|
#if GAZELLE_UDP_ENABLE
|
|
ip_addr_t addr;
|
|
u16_t port;
|
|
diff -Nur lwip-82/src/netif/ethernet.c lwip-offload/src/netif/ethernet.c
|
|
--- lwip-82/src/netif/ethernet.c 2023-11-28 14:17:02.440481010 +0800
|
|
+++ lwip-offload/src/netif/ethernet.c 2023-11-28 16:35:36.536481010 +0800
|
|
@@ -289,7 +289,12 @@
|
|
}
|
|
#else
|
|
if (netif->vlan_enable) {
|
|
- vlan_prio_vid = netif->vlan_tci;
|
|
+ if (netif->txol_flags & DEV_TX_OFFLOAD_VLAN_INSERT) {
|
|
+ p->ol_flags |= RTE_MBUF_F_TX_VLAN;
|
|
+ p->vlan_tci = netif->vlan_tci;
|
|
+ } else {
|
|
+ vlan_prio_vid = netif->vlan_tci;
|
|
+ }
|
|
}
|
|
#endif /* GAZELLE_ENABLE */
|
|
#endif
|
|
@@ -327,11 +332,11 @@
|
|
("ethernet_output: sending packet %p\n", (void *)p));
|
|
|
|
#if CHECKSUM_GEN_IP_HW || CHECKSUM_GEN_TCP_HW
|
|
-#if LWIP_VLAN_PCP
|
|
- ethh_cksum_set(p, sizeof(*ethhdr)+SIZEOF_VLAN_HDR);
|
|
-#else
|
|
- ethh_cksum_set(p, sizeof(*ethhdr));
|
|
-#endif
|
|
+ if (netif->vlan_enable && !(netif->txol_flags & DEV_TX_OFFLOAD_VLAN_INSERT)) {
|
|
+ ethh_cksum_set(p, sizeof(*ethhdr) + SIZEOF_VLAN_HDR);
|
|
+ } else {
|
|
+ ethh_cksum_set(p, sizeof(*ethhdr));
|
|
+ }
|
|
#endif
|
|
|
|
/* send the packet */
|