#
327520 |
|
03-Jan-2018 |
smh |
MFC r322812:
Avoid TCP log messages which are false positives.
Sponsored by: Multiplay
|
#
318438 |
|
18-May-2017 |
smh |
Revert the partial MFC of r313045 which broke dtrace
This removes the mbuf to ipinfo_t translator and switches tcp_autorcvbuf to use the older mtod macro.
This was originally merged to stable/10 as part of r317375.
Reported by: markj Reviewed by: markj, hiren Sponsored by: Multiplay Differential Revision: https://reviews.freebsd.org/D10769
|
#
317375 |
|
24-Apr-2017 |
smh |
Partial MFC r316676 and the required r313045
MFC r316676:
Use estimated RTT for receive buffer auto resizing instead of timestamps. This is a partial MFC as stable/10 doesn't include the TCP stack modularisation.
MFC r313045:
Add an mbuf to ipinfo_t translator to finish cleanup of mbuf passing to TCP probes. This is a partial MFC (missing debug__output & debug__drop changes) due to the massive amount of additional dtrace changes that would be required for a full MFC.
Relnotes: Yes Sponsored by: Multiplay
|
#
309108 |
|
24-Nov-2016 |
jch |
MFC r286227, r286443:
r286227:
Decompose TCP INP_INFO lock to increase short-lived TCP connections scalability:
- The existing TCP INP_INFO lock continues to protect the global inpcb list stability during full list traversal (e.g. tcp_pcblist()).
- A new INP_LIST lock protects inpcb list actual modifications (inp allocation and free) and inpcb global counters.
It allows to use TCP INP_INFO_RLOCK lock in critical paths (e.g. tcp_input()) and INP_INFO_WLOCK only in occasional operations that walk all connections.
PR: 183659 Differential Revision: https://reviews.freebsd.org/D2599 Reviewed by: jhb, adrian Tested by: adrian, nitroboost-gmail.com Sponsored by: Verisign, Inc.
r286443:
Fix a kernel assertion issue introduced with r286227: Avoid too strict INP_INFO_RLOCK_ASSERT checks due to tcp_notify() being called from in6_pcbnotify().
Reported by: Larry Rosenman <ler@lerctr.org> Submitted by: markj, jch
|
#
307906 |
|
25-Oct-2016 |
jch |
MFC r307551:
Fix a double-free when an inp transitions to INP_TIMEWAIT state after having been dropped.
This change enforces in_pcbdrop() logic in tcp_input():
"in_pcbdrop() is used by TCP to mark an inpcb as unused and avoid future packet delivery or event notification when a socket remains open but TCP has closed."
PR: 203175 Reported by: Palle Girgensohn, Slawa Olhovchenkov Tested by: Slawa Olhovchenkov Reviewed by: Slawa Olhovchenkov Approved by: gnn, Slawa Olhovchenkov Differential Revision: https://reviews.freebsd.org/D8211 Sponsored by: Verisign, inc
|
#
303371 |
|
27-Jul-2016 |
jch |
MFC r271119, r272081:
r271119:
In tcp_input(), don't acquire the pcbinfo global write lock for SYN packets targeting a listening socket. Permit to reduce TCP input processing starvation in context of high SYN load (e.g. short-lived TCP connections or SYN flood).
Submitted by: Julien Charbon <jcharbon@verisign.com> Reviewed by: adrian, hiren, jhb, Mike Bentkofsky
r272081:
Catch up with r271119.
|
#
302032 |
|
20-Jun-2016 |
truckman |
MFC r300240
Change net.inet.tcp.ecn.enable sysctl mib from a binary off/on control to a three way setting. 0 - Totally disable ECN. (no change) 1 - Enable ECN if incoming connections request it. Outgoing connections will request ECN. (no change from present != 0 setting) 2 - Enable ECN if incoming connections request it. Outgoing conections will not request ECN.
Change the default value of net.inet.tcp.ecn.enable from 0 to 2.
Linux version 2.4.20 and newer, Solaris, and Mac OS X 10.5 and newer have similar capabilities. The actual values above match Linux, and the default matches the current Linux default.
Reviewed by: eadler Relnotes: yes Differential Revision: https://reviews.freebsd.org/D6386
|
#
299146 |
|
05-May-2016 |
jtl |
MFC r298408: Prevent underflows in tp->snd_wnd if the remote side ACKs more than tp->snd_wnd. This can happen, for example, when the remote side responds to a window probe by ACKing the one byte it contains.
|
#
293710 |
|
11-Jan-2016 |
hiren |
MFC: r292003 Improve tcp duplicate ack processing when SACK is present.
|
#
293709 |
|
11-Jan-2016 |
hiren |
MFC: r290122 Calculate the correct amount of bytes that are in-flight for a connection as suggested by RFC 6675.
MFC: r292046 r290122 added 4 bytes and removed 8 in struct sackhint. Add a pad entry of 4 bytes to restore the size.
|
#
292823 |
|
28-Dec-2015 |
pkelsey |
MFC r292706:
Implementation of server-side TCP Fast Open (TFO) [RFC7413].
TFO is disabled by default in the kernel build. See the top comment in sys/netinet/tcp_fastopen.c for implementation particulars.
Differential Revision: https://reviews.freebsd.org/D4350 Sponsored by: Verisign, Inc.
|
#
289288 |
|
14-Oct-2015 |
hiren |
MFC r288914 Add a comment specifying how we implement rfc3042.
|
#
285762 |
|
21-Jul-2015 |
pkelsey |
MFC r285567:
Check TCP timestamp option flag so that the automatic receive buffer scaling code does not use an uninitialized timestamp echo reply value from the stack when timestamps are not enabled.
Approved by: re (gjb)
|
#
284603 |
|
19-Jun-2015 |
hiren |
MFC r266420 (by adrian)
Ensure that the flowid hashtype is assigned to the inp if the flowid is also assigned.
Spotted by: gallatin Tested by: gallatin
|
#
281955 |
|
24-Apr-2015 |
hiren |
MFC r275358 r275483 r276982 - Removing M_FLOWID by hps@
r275358: Start process of removing the use of the deprecated "M_FLOWID" flag from the FreeBSD network code. The flag is still kept around in the "sys/mbuf.h" header file, but does no longer have any users. Instead the "m_pkthdr.rsstype" field in the mbuf structure is now used to decide the meaning of the "m_pkthdr.flowid" field. To modify the "m_pkthdr.rsstype" field please use the existing "M_HASHTYPE_XXX" macros as defined in the "sys/mbuf.h" header file.
This patch introduces new behaviour in the transmit direction. Previously network drivers checked if "M_FLOWID" was set in "m_flags" before using the "m_pkthdr.flowid" field. This check has now now been replaced by checking if "M_HASHTYPE_GET(m)" is different from "M_HASHTYPE_NONE". In the future more hashtypes will be added, for example hashtypes for hardware dedicated flows.
"M_HASHTYPE_OPAQUE" indicates that the "m_pkthdr.flowid" value is valid and has no particular type. This change removes the need for an "if" statement in TCP transmit code checking for the presence of a valid flowid value. The "if" statement mentioned above is now a direct variable assignment which is then later checked by the respective network drivers like before.
r275483: Remove M_FLOWID from SCTP code.
r276982: Remove no longer used "M_FLOWID" flag from mbuf.h and update the netisr manpage.
Note: The FreeBSD version has been bumped.
Reviewed by: hps, tuexen Sponsored by: Limelight Networks
|
#
274043 |
|
03-Nov-2014 |
hselasky |
MFC r271946 and r272595: Improve transmit sending offload, TSO, algorithm in general. This change allows all HCAs from Mellanox Technologies to function properly when TSO is enabled. See r271946 and r272595 for more details about this commit.
Sponsored by: Mellanox Technologies
|
#
271667 |
|
16-Sep-2014 |
delphij |
Fix Denial of Service in TCP packet processing.
Security: FreeBSD-SA-14:19.tcp Approved by: re (implicit, security advisory)
|
#
270056 |
|
16-Aug-2014 |
bz |
MFC r266620:
Remove the prototpye for the static inline function tcp_signature_verify_input(). The function is defined before first use already.
|
#
270052 |
|
16-Aug-2014 |
bz |
MFC r266597:
Remove the prototypes for things that are no longer file local but were moved to the header file.
Was suppoed to be MFCed with: r266596 Pointy hat to: bz
|
#
270051 |
|
16-Aug-2014 |
bz |
MFC r266596:
Move the tcp_fields_to_host() and tcp_fields_to_net() (inline) functions to the tcp_var.h header file in order to avoid further duplication with upcoming commits.
Reviewed by: np
|
#
260817 |
|
17-Jan-2014 |
avg |
MFC r258622: dtrace sdt: remove the ugly sname parameter of SDT_PROBE_DEFINE
|
#
260815 |
|
17-Jan-2014 |
avg |
MFC r258605: Convert over the TCP probes to use mtod()
MFC slacker: adrian
|
#
260434 |
|
08-Jan-2014 |
peter |
Revert MFC of r258821 - it was already handled by MFC of r239672.
Pointy hat to: peter
|
#
260417 |
|
07-Jan-2014 |
peter |
MFC r258821 - fix tcp simultaneous close
PR: kern/99188
|
#
260201 |
|
02-Jan-2014 |
pluknet |
MFC r259906: Draft-ietf-tcpm-initcwnd-05 became RFC6928.
|
#
257367 |
|
29-Oct-2013 |
andre |
MFC r256920:
The TCP delayed ACK logic isn't aware of LRO passing up large aggregated segments thinking it received only one segment. This causes it to enable the delay the ACK for 100ms to wait for another segment which may never come because all the data was received already.
Doing delayed ACK for LRO segments is bogus for two reasons: a) it pushes us further away from acking every other packet; b) it introduces additional delay in responding to the sender. The latter is especially bad because it is in the nature of LRO to aggregated all segments of a burst with no more coming until an ACK is sent back.
Change the delayed ACK logic to detect LRO segments by being larger than the MSS for this connection and issuing an immediate ACK for them to keep the ACK clock ticking without interruption.
Reported by: julian, cperciva Tested by: cperciva Reviewed by: lstewart
Approved by: re (glebius)
|
#
285762 |
|
21-Jul-2015 |
pkelsey |
MFC r285567:
Check TCP timestamp option flag so that the automatic receive buffer scaling code does not use an uninitialized timestamp echo reply value from the stack when timestamps are not enabled.
Approved by: re (gjb)
|
#
284603 |
|
19-Jun-2015 |
hiren |
MFC r266420 (by adrian)
Ensure that the flowid hashtype is assigned to the inp if the flowid is also assigned.
Spotted by: gallatin Tested by: gallatin
|
#
281955 |
|
24-Apr-2015 |
hiren |
MFC r275358 r275483 r276982 - Removing M_FLOWID by hps@
r275358: Start process of removing the use of the deprecated "M_FLOWID" flag from the FreeBSD network code. The flag is still kept around in the "sys/mbuf.h" header file, but does no longer have any users. Instead the "m_pkthdr.rsstype" field in the mbuf structure is now used to decide the meaning of the "m_pkthdr.flowid" field. To modify the "m_pkthdr.rsstype" field please use the existing "M_HASHTYPE_XXX" macros as defined in the "sys/mbuf.h" header file.
This patch introduces new behaviour in the transmit direction. Previously network drivers checked if "M_FLOWID" was set in "m_flags" before using the "m_pkthdr.flowid" field. This check has now now been replaced by checking if "M_HASHTYPE_GET(m)" is different from "M_HASHTYPE_NONE". In the future more hashtypes will be added, for example hashtypes for hardware dedicated flows.
"M_HASHTYPE_OPAQUE" indicates that the "m_pkthdr.flowid" value is valid and has no particular type. This change removes the need for an "if" statement in TCP transmit code checking for the presence of a valid flowid value. The "if" statement mentioned above is now a direct variable assignment which is then later checked by the respective network drivers like before.
r275483: Remove M_FLOWID from SCTP code.
r276982: Remove no longer used "M_FLOWID" flag from mbuf.h and update the netisr manpage.
Note: The FreeBSD version has been bumped.
Reviewed by: hps, tuexen Sponsored by: Limelight Networks
|
#
274043 |
|
03-Nov-2014 |
hselasky |
MFC r271946 and r272595: Improve transmit sending offload, TSO, algorithm in general. This change allows all HCAs from Mellanox Technologies to function properly when TSO is enabled. See r271946 and r272595 for more details about this commit.
Sponsored by: Mellanox Technologies
|
#
271667 |
|
16-Sep-2014 |
delphij |
Fix Denial of Service in TCP packet processing.
Security: FreeBSD-SA-14:19.tcp Approved by: re (implicit, security advisory)
|
#
270056 |
|
16-Aug-2014 |
bz |
MFC r266620:
Remove the prototpye for the static inline function tcp_signature_verify_input(). The function is defined before first use already.
|
#
270052 |
|
16-Aug-2014 |
bz |
MFC r266597:
Remove the prototypes for things that are no longer file local but were moved to the header file.
Was suppoed to be MFCed with: r266596 Pointy hat to: bz
|
#
270051 |
|
16-Aug-2014 |
bz |
MFC r266596:
Move the tcp_fields_to_host() and tcp_fields_to_net() (inline) functions to the tcp_var.h header file in order to avoid further duplication with upcoming commits.
Reviewed by: np
|
#
260817 |
|
17-Jan-2014 |
avg |
MFC r258622: dtrace sdt: remove the ugly sname parameter of SDT_PROBE_DEFINE
|
#
260815 |
|
17-Jan-2014 |
avg |
MFC r258605: Convert over the TCP probes to use mtod()
MFC slacker: adrian
|
#
260434 |
|
08-Jan-2014 |
peter |
Revert MFC of r258821 - it was already handled by MFC of r239672.
Pointy hat to: peter
|
#
260417 |
|
07-Jan-2014 |
peter |
MFC r258821 - fix tcp simultaneous close
PR: kern/99188
|
#
260201 |
|
02-Jan-2014 |
pluknet |
MFC r259906: Draft-ietf-tcpm-initcwnd-05 became RFC6928.
|
#
257367 |
|
29-Oct-2013 |
andre |
MFC r256920:
The TCP delayed ACK logic isn't aware of LRO passing up large aggregated segments thinking it received only one segment. This causes it to enable the delay the ACK for 100ms to wait for another segment which may never come because all the data was received already.
Doing delayed ACK for LRO segments is bogus for two reasons: a) it pushes us further away from acking every other packet; b) it introduces additional delay in responding to the sender. The latter is especially bad because it is in the nature of LRO to aggregated all segments of a burst with no more coming until an ACK is sent back.
Change the delayed ACK logic to detect LRO segments by being larger than the MSS for this connection and issuing an immediate ACK for them to keep the ACK clock ticking without interruption.
Reported by: julian, cperciva Tested by: cperciva Reviewed by: lstewart
Approved by: re (glebius)
|