net: add LRO feature Needed for lots of things, so let's just add it in. is TSO the same as LRO? I did not think so but ... Andrew? Signed-off-by: Ron Minnich <rminnich@gmail.com>
diff --git a/kern/drivers/net/bxe/bxe.c b/kern/drivers/net/bxe/bxe.c index 57b3e63..cae14cb 100644 --- a/kern/drivers/net/bxe/bxe.c +++ b/kern/drivers/net/bxe/bxe.c
@@ -10577,8 +10577,7 @@ * This flag is relevant for E1x only. * E2 doesn't have a TPA configuration in a function level. */ -#warning "no getcapenable" -// flags |= (if_getcapenable(sc->ifp) & IFCAP_LRO) ? FUNC_FLG_TPA : 0; + flags |= (sc->ifp->feat & NETF_LRO) ? FUNC_FLG_TPA : 0; func_init.func_flgs = flags; func_init.pf_id = SC_FUNC(sc);
diff --git a/kern/include/ip.h b/kern/include/ip.h index d090fb1..fc359f5 100644 --- a/kern/include/ip.h +++ b/kern/include/ip.h
@@ -933,6 +933,7 @@ #define NETF_BASE_SHIFT (NS_SHIFT_MAX + 1) #define NETF_PADMIN_SHIFT (NETF_BASE_SHIFT + 0) #define NETF_SG_SHIFT (NETF_BASE_SHIFT + 1) +#define NETF_LRO_SHIFT (NETF_BASE_SHIFT + 2) enum { NETF_IPCK = (1 << NS_IPCK_SHIFT), /* xmit ip checksum */ NETF_UDPCK = (1 << NS_UDPCK_SHIFT), /* xmit udp checksum */ @@ -940,6 +941,7 @@ NETF_PADMIN = (1 << NETF_PADMIN_SHIFT), /* device pads to mintu */ NETF_SG = (1 << NETF_SG_SHIFT), /* device can do scatter/gather */ NETF_TSO = (1 << NS_TSO_SHIFT), /* device can do TSO */ + NETF_LRO = (1 << NETF_LRO_SHIFT), /* device can do LRO */ }; /* * a network interface
diff --git a/kern/src/net/netif.c b/kern/src/net/netif.c index c445b5d..90f7ce0 100644 --- a/kern/src/net/netif.c +++ b/kern/src/net/netif.c
@@ -287,6 +287,8 @@ j += snprintf(p + j, READSTR - j, "sg "); if (nif->feat & NETF_TSO) j += snprintf(p + j, READSTR - j, "tso "); + if (nif->feat & NETF_LRO) + j += snprintf(p + j, READSTR - j, "lro "); snprintf(p + j, READSTR - j, "\n"); n = readstr(offset, a, n, p); kfree(p);