Page MenuHomeFreeBSD

D37903.id114642.diff
No OneTemporary

D37903.id114642.diff

diff --git a/sys/arm/conf/NOTES b/sys/arm/conf/NOTES
--- a/sys/arm/conf/NOTES
+++ b/sys/arm/conf/NOTES
@@ -80,3 +80,6 @@
makeoptions MODULES_EXTRA+="dtb/omap4"
makeoptions MODULES_EXTRA+="dtb/rpi"
makeoptions MODULES_EXTRA+="dtb/zynq"
+
+# RACK and BBR TCP kernel modules
+makeoptions WITH_EXTRA_TCP_STACKS=1
diff --git a/sys/arm64/conf/NOTES b/sys/arm64/conf/NOTES
--- a/sys/arm64/conf/NOTES
+++ b/sys/arm64/conf/NOTES
@@ -253,3 +253,6 @@
device iichid # HID-over-I2C support
options IICHID_DEBUG # Enable HID-over-I2C debug messages
options IICHID_SAMPLING # Workaround missing GPIO INTR support
+
+# RACK and BBR TCP kernel modules
+makeoptions WITH_EXTRA_TCP_STACKS=1
diff --git a/sys/netinet/tcp_stacks/rack.c b/sys/netinet/tcp_stacks/rack.c
--- a/sys/netinet/tcp_stacks/rack.c
+++ b/sys/netinet/tcp_stacks/rack.c
@@ -32,6 +32,7 @@
#include "opt_ipsec.h"
#include "opt_ratelimit.h"
#include "opt_kern_tls.h"
+#if defined(INET) || defined(INET6)
#include <sys/param.h>
#include <sys/arb.h>
#include <sys/module.h>
@@ -12347,6 +12348,7 @@
ip6, rack->r_ctl.fsb.th);
} else
#endif /* INET6 */
+#ifdef INET
{
rack->r_ctl.fsb.tcp_ip_hdr_len = sizeof(struct tcpiphdr);
ip = (struct ip *)rack->r_ctl.fsb.tcp_ip_hdr;
@@ -12366,6 +12368,7 @@
tp->t_port,
ip, rack->r_ctl.fsb.th);
}
+#endif
rack->r_fsb_inited = 1;
}
@@ -15611,7 +15614,7 @@
struct tcpopt to;
u_char opt[TCP_MAXOLEN];
uint32_t hdrlen, optlen;
- int32_t slot, segsiz, max_val, tso = 0, error, ulen = 0;
+ int32_t slot, segsiz, max_val, tso = 0, error = 0, ulen = 0;
uint16_t flags;
uint32_t if_hw_tsomaxsegcount = 0, startseq;
uint32_t if_hw_tsomaxsegsize;
@@ -15935,8 +15938,6 @@
&inp->inp_route6,
0, NULL, NULL, inp);
}
-#endif
-#if defined(INET) && defined(INET6)
else
#endif
#ifdef INET
@@ -16102,7 +16103,9 @@
* the max-burst). We have how much to send and all the info we
* need to just send.
*/
+#ifdef INET
struct ip *ip = NULL;
+#endif
struct udphdr *udp = NULL;
struct tcphdr *th = NULL;
struct mbuf *m, *s_mb;
@@ -16133,8 +16136,10 @@
} else
#endif /* INET6 */
{
+#ifdef INET
ip = (struct ip *)rack->r_ctl.fsb.tcp_ip_hdr;
hdrlen = sizeof(struct tcpiphdr);
+#endif
}
if (tp->t_port && (V_tcp_udp_tunneling_port == 0)) {
m = NULL;
@@ -16281,8 +16286,10 @@
else
#endif
{
+#ifdef INET
ip->ip_tos &= ~IPTOS_ECN_MASK;
ip->ip_tos |= ect;
+#endif
}
}
tcp_set_flags(th, flags);
@@ -18346,7 +18353,9 @@
ip6 = (struct ip6_hdr *)rack->r_ctl.fsb.tcp_ip_hdr;
else
#endif /* INET6 */
+#ifdef INET
ip = (struct ip *)rack->r_ctl.fsb.tcp_ip_hdr;
+#endif
th = rack->r_ctl.fsb.th;
udp = rack->r_ctl.fsb.udp;
if (udp) {
@@ -18375,6 +18384,7 @@
} else
#endif /* INET6 */
{
+#ifdef INET
ip = mtod(m, struct ip *);
if (tp->t_port) {
udp = (struct udphdr *)((caddr_t)ip + sizeof(struct ip));
@@ -18386,6 +18396,7 @@
} else
th = (struct tcphdr *)(ip + 1);
tcpip_fillheaders(inp, tp->t_port, ip, th);
+#endif
}
}
/*
@@ -18419,8 +18430,10 @@
else
#endif
{
+#ifdef INET
ip->ip_tos &= ~IPTOS_ECN_MASK;
ip->ip_tos |= ect;
+#endif
}
}
/*
@@ -18514,7 +18527,9 @@
ip6 = mtod(m, struct ip6_hdr *);
else
#endif /* INET6 */
+#ifdef INET
ip = mtod(m, struct ip *);
+#endif
th = (struct tcphdr *)(cpto + ((uint8_t *)rack->r_ctl.fsb.th - rack->r_ctl.fsb.tcp_ip_hdr));
/* If we have a udp header lets set it into the mbuf as well */
if (udp)
@@ -20834,3 +20849,5 @@
MODULE_VERSION(MODNAME, 1);
DECLARE_MODULE(MODNAME, tcp_rack, SI_SUB_PROTO_DOMAIN, SI_ORDER_ANY);
MODULE_DEPEND(MODNAME, tcphpts, 1, 1, 1);
+
+#endif /* #if !defined(INET) && !defined(INET6) */
diff --git a/sys/powerpc/conf/NOTES b/sys/powerpc/conf/NOTES
--- a/sys/powerpc/conf/NOTES
+++ b/sys/powerpc/conf/NOTES
@@ -93,3 +93,10 @@
nooption PPC_DEBUG
nooption PPC_PROBE_CHIPSET # uses inb/outb
+
+
+#####################################################################
+# NETWORKING OPTIONS
+
+# RACK and BBR TCP kernel modules
+makeoptions WITH_EXTRA_TCP_STACKS=1
diff --git a/sys/riscv/conf/NOTES b/sys/riscv/conf/NOTES
--- a/sys/riscv/conf/NOTES
+++ b/sys/riscv/conf/NOTES
@@ -19,6 +19,8 @@
options FPE # Floating-point extension support
options RACCT_DEFAULT_TO_DISABLED # Set kern.racct.enable=0 by default
+makeoptions WITH_EXTRA_TCP_STACKS=1 # RACK and BBR TCP kernel modules
+
# RISC-V SBI console
device rcons
diff --git a/sys/x86/conf/NOTES b/sys/x86/conf/NOTES
--- a/sys/x86/conf/NOTES
+++ b/sys/x86/conf/NOTES
@@ -12,6 +12,13 @@
# a.out binaries.
options COMPAT_43
+
+#####################################################################
+# NETWORKING OPTIONS
+
+# RACK and BBR TCP kernel modules
+makeoptions WITH_EXTRA_TCP_STACKS=1
+
#####################################################################
# HARDWARE DEVICE CONFIGURATION

File Metadata

Mime Type
text/plain
Expires
Wed, Nov 20, 8:31 AM (21 h, 55 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
14734043
Default Alt Text
D37903.id114642.diff (4 KB)

Event Timeline