aboutsummaryrefslogtreecommitdiff
path: root/sys/netinet/libalias
diff options
context:
space:
mode:
authorRichard Scheffenegger <rscheff@FreeBSD.org>2022-11-09 09:54:34 +0000
committerRichard Scheffenegger <rscheff@FreeBSD.org>2022-11-09 10:19:19 +0000
commit0b00b801493aa1d4996b0891ea58fbef343f85df (patch)
tree71529972ef010923d4e66366993400667cd29570 /sys/netinet/libalias
parent0b1adc42a15caea0cffbc962ca6f9e3e7b576834 (diff)
downloadsrc-0b00b801493aa1d4996b0891ea58fbef343f85df.tar.gz
src-0b00b801493aa1d4996b0891ea58fbef343f85df.zip
ipfw: Have NAT steal the TH_RES1 bit, instead of the TH_AE bit
The NAT module use of the tcphdr.th_x2 field now collides with the use of this TCP header flag as AccECN (AE) bit. Use the topmost bit instead to allow negotiation of AccECN across a NAT device. Event: IETF 115 Hackathon Reviewed By: #transport, tuexen MFC after: 3 days Sponsored by: NetApp, Inc. Differential Revision: https://reviews.freebsd.org/D37300
Diffstat (limited to 'sys/netinet/libalias')
-rw-r--r--sys/netinet/libalias/alias_ftp.c2
-rw-r--r--sys/netinet/libalias/alias_irc.c2
-rw-r--r--sys/netinet/libalias/alias_proxy.c2
-rw-r--r--sys/netinet/libalias/alias_skinny.c6
-rw-r--r--sys/netinet/libalias/alias_smedia.c4
5 files changed, 8 insertions, 8 deletions
diff --git a/sys/netinet/libalias/alias_ftp.c b/sys/netinet/libalias/alias_ftp.c
index 962194ec0a68..b2fcfbf2396b 100644
--- a/sys/netinet/libalias/alias_ftp.c
+++ b/sys/netinet/libalias/alias_ftp.c
@@ -754,7 +754,7 @@ NewFtpMessage(struct libalias *la, struct ip *pip,
/* Compute TCP checksum for revised packet */
tc->th_sum = 0;
#ifdef _KERNEL
- tc->th_x2 = 1;
+ tc->th_x2 = (TH_RES1 >> 8);
#else
tc->th_sum = TcpChecksum(pip);
#endif
diff --git a/sys/netinet/libalias/alias_irc.c b/sys/netinet/libalias/alias_irc.c
index 32e831742048..524b70b0632c 100644
--- a/sys/netinet/libalias/alias_irc.c
+++ b/sys/netinet/libalias/alias_irc.c
@@ -458,7 +458,7 @@ AliasHandleIrcOut(struct libalias *la,
/* Compute TCP checksum for revised packet */
tc->th_sum = 0;
#ifdef _KERNEL
- tc->th_x2 = 1;
+ tc->th_x2 = (TH_RES1 >> 8);
#else
tc->th_sum = TcpChecksum(pip);
#endif
diff --git a/sys/netinet/libalias/alias_proxy.c b/sys/netinet/libalias/alias_proxy.c
index 9b75b22a74b3..7efab1fdc8db 100644
--- a/sys/netinet/libalias/alias_proxy.c
+++ b/sys/netinet/libalias/alias_proxy.c
@@ -368,7 +368,7 @@ ProxyEncodeTcpStream(struct alias_link *lnk,
tc->th_sum = 0;
#ifdef _KERNEL
- tc->th_x2 = 1;
+ tc->th_x2 = (TH_RES1 >> 8);
#else
tc->th_sum = TcpChecksum(pip);
#endif
diff --git a/sys/netinet/libalias/alias_skinny.c b/sys/netinet/libalias/alias_skinny.c
index 8c933ba74b4a..70b3a29ddb40 100644
--- a/sys/netinet/libalias/alias_skinny.c
+++ b/sys/netinet/libalias/alias_skinny.c
@@ -216,7 +216,7 @@ alias_skinny_reg_msg(struct RegisterMessage *reg_msg, struct ip *pip,
tc->th_sum = 0;
#ifdef _KERNEL
- tc->th_x2 = 1;
+ tc->th_x2 = (TH_RES1 >> 8);
#else
tc->th_sum = TcpChecksum(pip);
#endif
@@ -259,7 +259,7 @@ alias_skinny_port_msg(struct IpPortMessage *port_msg, struct ip *pip,
tc->th_sum = 0;
#ifdef _KERNEL
- tc->th_x2 = 1;
+ tc->th_x2 = (TH_RES1 >> 8);
#else
tc->th_sum = TcpChecksum(pip);
#endif
@@ -289,7 +289,7 @@ alias_skinny_opnrcvch_ack(struct libalias *la, struct OpenReceiveChannelAck *opn
tc->th_sum = 0;
#ifdef _KERNEL
- tc->th_x2 = 1;
+ tc->th_x2 = (TH_RES1 >> 8);
#else
tc->th_sum = TcpChecksum(pip);
#endif
diff --git a/sys/netinet/libalias/alias_smedia.c b/sys/netinet/libalias/alias_smedia.c
index 9b5a9d673ecf..c09c8e0c6d77 100644
--- a/sys/netinet/libalias/alias_smedia.c
+++ b/sys/netinet/libalias/alias_smedia.c
@@ -404,7 +404,7 @@ alias_rtsp_out(struct libalias *la, struct ip *pip,
tc->th_sum = 0;
#ifdef _KERNEL
- tc->th_x2 = 1;
+ tc->th_x2 = (TH_RES1 >> 8);
#else
tc->th_sum = TcpChecksum(pip);
#endif
@@ -451,7 +451,7 @@ alias_pna_out(struct libalias *la, struct ip *pip,
/* Compute TCP checksum for revised packet */
tc->th_sum = 0;
#ifdef _KERNEL
- tc->th_x2 = 1;
+ tc->th_x2 = (TH_RES1 >> 8);
#else
tc->th_sum = TcpChecksum(pip);
#endif