diff options
author | Richard Scheffenegger <rscheff@FreeBSD.org> | 2022-11-09 09:54:34 +0000 |
---|---|---|
committer | Richard Scheffenegger <rscheff@FreeBSD.org> | 2022-11-09 10:19:19 +0000 |
commit | 0b00b801493aa1d4996b0891ea58fbef343f85df (patch) | |
tree | 71529972ef010923d4e66366993400667cd29570 /sys/netinet/libalias | |
parent | 0b1adc42a15caea0cffbc962ca6f9e3e7b576834 (diff) | |
download | src-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.c | 2 | ||||
-rw-r--r-- | sys/netinet/libalias/alias_irc.c | 2 | ||||
-rw-r--r-- | sys/netinet/libalias/alias_proxy.c | 2 | ||||
-rw-r--r-- | sys/netinet/libalias/alias_skinny.c | 6 | ||||
-rw-r--r-- | sys/netinet/libalias/alias_smedia.c | 4 |
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 |