git: 81bddae7a4dc - stable/14 - dwc: add transmit checksum offload for IPv6
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Wed, 21 Jan 2026 14:29:47 UTC
The branch stable/14 has been updated by tuexen:
URL: https://cgit.FreeBSD.org/src/commit/?id=81bddae7a4dcea29998ed417ad55421ad401c579
commit 81bddae7a4dcea29998ed417ad55421ad401c579
Author: Michael Tuexen <tuexen@FreeBSD.org>
AuthorDate: 2026-01-17 20:01:54 +0000
Commit: Michael Tuexen <tuexen@FreeBSD.org>
CommitDate: 2026-01-21 14:27:48 +0000
dwc: add transmit checksum offload for IPv6
This patch adds support for transmit checksum offload for TCP/IPv6
and UDP/IPv6.
Reviewed by: Timo Völker
Differential Revision: https://reviews.freebsd.org/D54754
(cherry picked from commit aca67c37a5215448828a2974a2ff44e75e9159bc)
---
sys/dev/dwc/if_dwc.c | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/sys/dev/dwc/if_dwc.c b/sys/dev/dwc/if_dwc.c
index 3bf49081e2da..6d9b3b192c06 100644
--- a/sys/dev/dwc/if_dwc.c
+++ b/sys/dev/dwc/if_dwc.c
@@ -1260,6 +1260,12 @@ dwc_ioctl(if_t ifp, u_long cmd, caddr_t data)
if_sethwassistbits(ifp, CSUM_IP | CSUM_DELAY_DATA, 0);
else
if_sethwassistbits(ifp, 0, CSUM_IP | CSUM_DELAY_DATA);
+ if (mask & IFCAP_TXCSUM_IPV6)
+ if_togglecapenable(ifp, IFCAP_TXCSUM_IPV6);
+ if ((if_getcapenable(ifp) & IFCAP_TXCSUM_IPV6) != 0)
+ if_sethwassistbits(ifp, CSUM_DELAY_DATA_IPV6, 0);
+ else
+ if_sethwassistbits(ifp, 0, CSUM_DELAY_DATA_IPV6);
if (if_getdrvflags(ifp) & IFF_DRV_RUNNING) {
DWC_LOCK(sc);
@@ -1728,8 +1734,8 @@ dwc_attach(device_t dev)
if_setinitfn(ifp, dwc_init);
if_setsendqlen(ifp, TX_MAP_COUNT - 1);
if_setsendqready(sc->ifp);
- if_sethwassist(sc->ifp, CSUM_IP | CSUM_DELAY_DATA);
- if_setcapabilities(sc->ifp, IFCAP_VLAN_MTU | IFCAP_HWCSUM);
+ if_sethwassist(sc->ifp, CSUM_IP | CSUM_DELAY_DATA | CSUM_DELAY_DATA_IPV6);
+ if_setcapabilities(sc->ifp, IFCAP_VLAN_MTU | IFCAP_HWCSUM | IFCAP_TXCSUM_IPV6);
if_setcapenable(sc->ifp, if_getcapabilities(sc->ifp));
/* Attach the mii driver. */