| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
This makes slots an internal concept of HPTS.
Reviewed by: tuexen
Sponsored by: Netflix, Inc.
|
|
|
|
|
|
|
|
| |
To improve consistency of the code, don't use slots and ticks,
just use slots.
Reviewed by: tuexen
Sponsored by: Netflix, Inc.
|
|
|
|
|
| |
Reviewed by: tuexen
Sponsored by: Netflix, Inc.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
With the latest changes, this variable and parameter for
tcp_dropwithreset() is not needed anymore.
It also makes it harder to introduce the usage of multiple counters
for TCP again, which might open side channel attacks.
No funtional changes intended.
Reviewed by: rrs
MFC after: 1 week
Sponsored by: Netflix, Inc.
Differential Revision: https://reviews.freebsd.org/D51872
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Also rate limit the sending of RST segments in the following cases:
* when receiving data on a closed socket.
* when a socket can not be created at the end of the handshake and
the sysctl-variable net.inet.tcp.syncache.rst_on_sock_fail is 1.
* when an ACK segment is received in SYN SENT state and it does not
acknowledge the SYN segment.
After this change, there is no need anymore to provide a rstreason
to tcp_dropwithreset(), since it is always BANDLIM_TCP_RST.
This will be a follow-up commit, since it will change the code in a
couple of places, but will not change the functionality.
Reviewed by: rrs, Nick Banks, Peter Lei
MFC after: 1 week
Sponsored by: Netflix, Inc.
Differential Revision: https://reviews.freebsd.org/D51815
|
|
|
|
|
|
|
|
|
| |
No functional change intended.
Reviewed by: Nick Banks
MFC after: 1 week
Sponsored by: Netflix, Inc.
Differential Revision: https://reviews.freebsd.org/D51734
|
|
|
|
|
|
|
|
|
|
| |
Don't use ticks in variable names or constant when they don't have
a relation to ticks. Use slots or usecs.
No functional change intended.
Reviewed by: tuexen
MFC after: 1 week
Sponsored by: Netflix, Inc.
|
|
|
|
|
|
|
|
|
|
| |
tcp_tv_to_usectick(), tcp_tv_to_mssectick(), and tcp_tv_to_lusectick()
are not related to ticks. Therefore remove the trailing 'tick'.
No functional change intended.
Reviewed by: tuexen
MFC after: 1 week
Sponsored by: Netflix, Inc.
|
|
|
|
|
|
| |
Reviewed by: cc, tuexen, Peter Lei
Sponsored by: Netflix, Inc.
Differential Revision: https://reviews.freebsd.org/D51437
|
|
|
|
|
|
|
|
|
| |
Remove code that can't be enabled in FreeBSD anyway.
Reviewed by: glebius, rrs
MFC after: 1 week
Sponsored by: Netflix, Inc.
Differential Revision: https://reviews.freebsd.org/D51423
|
|
|
|
|
|
|
|
|
|
|
| |
Use the correct variable in the correct way. The app limited period
is cleared when gp_seq is greater than or equal to
cleared_app_ack_seq.
Reviewed by: rrs, tuexen, Nick Banks
MFC after: 1 week
Sponsored by: Netflix, Inc.
Differential Revision: https://reviews.freebsd.org/D51441
|
|
|
|
|
|
|
|
|
|
| |
Using two counters does not provide any benefit, but it provides an
externally observable signal whether there is a listening port.
Reviewed by: Nick Banks, Peter Lei
MFC after: 1 week
Sponsored by: Netflix, Inc.
Differential Revision: https://reviews.freebsd.org/D51440
|
|
|
|
|
|
| |
Reviewed by: tuexen
MFC after: 1 week
Sponsored by: Netflix, Inc.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
rc_app_limited_cnt is an internal counter on the rack structure
that tracks the number of sendmap entries that have the
RACK_APP_LIMITED flag set. These entries gate goodput measurements.
The counter is reported in a number of blackbox logging events.
When a sendmap entry which has the RACK_APP_LIMITED flag set is
cloned, the counter was not being maintained properly.
While here, cleanup the counter check when a sendmap entry with
the flag set is freed which previously hid this issue.
Reviewed by: tuexen
MFC after: 1 week
Sponsored by: Netflix, Inc.
|
|
|
|
|
|
|
|
| |
No functional changes intended.
Reviewed by: tuexen
MFC after: 1 week
Sponsored by: Netflix, Inc.
|
|
|
|
|
|
| |
Reviewed by: tuexen
MFC after: 1 week
Sponsored by: Netflix, Inc.
|
|
|
|
|
|
| |
Reviewed by: tuexen
MFC after: 1 week
Sponsored by: Netflix, Inc.
|
|
|
|
|
|
| |
Reviewed by: tuexen
MFC after: 1 week
Sponsored by: Netflix, Inc.
|
|
|
|
|
|
| |
There is an initialization warning where error may not be set when logging
extended BBlogs. Lets fix this so error is init'd to zero so we won't have
a warning.
|
|
|
|
|
| |
Reviewed by: tuexen
Differential Revision: https://reviews.freebsd.org/D50891
|
|
|
|
|
|
|
|
| |
cause a surprise extra packet i.e. the burst limit being overstepped and another one where
the burst limit is under stepped. This patch fixes those errors.
Reported by: tuexen
Reviewed by: tuexen
Differential Revision: <https://reviews.freebsd.org/D50858>
|
|
|
|
|
|
|
|
|
|
|
| |
Clear the black box logging containing union rather than the u_bbr
structure for clarity and consistency. Currently u_bbr, u_raw, and
u64_raw are the same size.
No functional change intended.
Reviewed by: tuexen
MFC after: 3 days
Sponsored by: Netflix, Inc.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
beta and beta_ecn were stored using a variable of type struct newreno
in struct rack_control. Later, struct newreno was extended and now
contains several more fields.
This results in a memory inefficiency and also in copying around
uninitialized memory.
This patch fixes this by storing beta and beta_ecn individually in
struct rack_control.
Please note that the newreno_flags field was only stored and never
used. Therefore, this is not stored anymore in struct rack_control.
No functional change intended.
CID: 1523796
Reviewed by: rrs
MFC after: 1 week
Sponsored by: Netflix, Inc.
Differential Revision: https://reviews.freebsd.org/D49578
|
|
|
|
|
|
|
|
| |
No functional change intended.
Reviewed by: tuexen
MFC after: 1 week
Sponsored by: Netflix, Inc.
|
|
|
|
|
|
| |
Reviewed by: tuexen
MFC after: 1 week
Sponsored by: Netflix, Inc.
|
|
|
|
|
|
|
|
|
|
| |
No functional change intended.
Reviewed by: Peter Lei, rrs (earlier version)
CID: 1523802
MFC after: 1 week
Sponsored by: Netflix, Inc.
Differential Revision: https://reviews.freebsd.org/D48341
|
|
|
|
|
|
|
|
|
|
|
| |
reduce is uninitialized, if the code path for logging is reached via
goto old_method;.
Reviewed by: rrs, Peter Lei
CID: 1557359
MFC after: 1 week
Sponsored by: Netflix, Inc.
Differential Revision: https://reviews.freebsd.org/D48346
|
|
|
|
|
|
|
|
|
|
|
|
| |
Bring back the code, which was accidentally removed. While there,
indent a comment correctly.
Reviewed by: rrs
CID: 1540026
Fixes: e18b97bd63a8 ("Update to bring the rack stack with all its fixes in.")
MFC after: 1 week
Sponsored by: Netflix, Inc.
Differential Revision: https://reviews.freebsd.org/D48340
|
|
|
|
|
|
|
|
|
|
| |
No functional change intended.
Reviewed by: rrs
CID: 1523808
MFC after: 1 week
Sponsored by: Netflix, Inc.
Differential Revision: https://reviews.freebsd.org/D48338
|
|
|
|
|
|
|
|
|
|
|
| |
bw is unsigned and not zero. So it cannot be smaller than 1.
No functional change intended.
Reviewed by: rrs, cc
CID: 1523791
MFC after: 1 week
Sponsored by: Netflix, Inc.
Differential Revision: https://reviews.freebsd.org/D48323
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Do not jump to a place in the code, which requires several variables
to be set (segsize, minseg, idle, len, sb_offset), which is not true.
To avoid using these variables, start the HPTS timer explicitly.
This fix only applies to the client side using TCP fast open.
Approved by: rrs
CID: 1523766
CID: 1523770
CID: 1523786
CID: 1523801
CID: 1523809
MFC after: 1 week
Sponsored by: Netflix, Inc.
Differential Revision: https://reviews.freebsd.org/D48322
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
minslot is initialized to 0 and never changed. It is not clear to me
under which condition minslot should be set to which value.
Therefore, remove it and the code checking that it is not zero.
No functional change intended.
Reviewed by: rrs
CID: 1523812
MFC after: 1 week
Sponsored by: Netflix, Inc.
Differential Revision: https://reviews.freebsd.org/D48321
|
|
|
|
|
|
|
|
|
|
|
|
| |
rc_bbr_substate is a 3-bit unsigned int, so it can't be larger than
or equal to 8. The wrap around already happens.
No functional change intended.
Reviewed by: rrs
CID: 1523795
MFC after: 1 week
Sponsored by: Netflix, Inc.
Differential Revision: https://reviews.freebsd.org/D48320
|
|
|
|
|
|
|
|
|
|
|
|
| |
There is no need to check partially for bbr->r_ctl.crte being NULL,
since this can't be true in this path.
No functional change intended.
Reviewed by: rrs
CID: 1523810
MFC after: 1 week
Sponsored by: Netflix, Inc.
Differential Revision: https://reviews.freebsd.org/D48312
|
|
|
|
|
|
|
|
|
|
| |
No functional change intended.
Reviewed by: rrs
CID: 1523797
MFC after: 1 week
Sponsored by: Netflix, Inc.
Differential Revision: https://reviews.freebsd.org/D48301
|
|
|
|
|
|
|
|
|
|
| |
Use 64-bit arithmetic.
Reviewed by: rrs
CID: 1523806
MFC after: 1 week
Sponsored by: Netflix, Inc.
Differential Revision: https://reviews.freebsd.org/D48302
|
|
|
|
|
|
|
|
|
|
|
| |
rsm cannot be NULL, when calling bbr_update_bbr_info().
So no need to check partially for it. No functional change intended.
Reviewed by: rrs
CID: 1523803
MFC after: 1 week
Sponsored by: Netflix, Inc.
Differential Revision: https://reviews.freebsd.org/D48293
|
|
|
|
|
|
|
|
|
|
| |
No functional change intended.
Reviewed by: rrs
CID: 1523768
MFC after: 1 week
Sponsored by: Netflix, Inc.
Differential Revision: https://reviews.freebsd.org/D48292
|
|
|
|
|
|
|
|
|
|
| |
It is already known that rsm != NULL, so no need to check for it.
Reviewed by: rrs
CID: 1523815
MFC after: 1 week
Sponsored by: Netflix, Inc.
Differential Revision: https://reviews.freebsd.org/D48282
|
|
|
|
|
|
|
|
| |
Reviewed by: rrs
CID: 1523789
MFC after: 1 week
Sponsored by: Netflix, Inc.
Differential Revision: https://reviews.freebsd.org/D48281
|
|
|
|
|
|
|
|
| |
Reviewed by: rrs
CID: 1540027
MFC after: 1 week
Sponsored by: Netflix, Inc.
Differential Revision: https://reviews.freebsd.org/D48277
|
|
|
|
|
|
|
|
|
|
| |
USEC_2_TICKS() returns at least 1.
Reviewed by: rrs
CID: 1523775
MFC after: 1 week
Sponsored by: Netflix, Inc.
Differential Revision: https://reviews.freebsd.org/D4827
|
|
|
|
|
|
|
|
| |
Reviewed by: rrs
CID: 1523793
MFC after: 1 week
Sponsored by: Netflix, Inc.
Differential Revision: https://reviews.freebsd.org/D48274
|
|
|
|
|
|
|
|
|
|
| |
Indicate that the missing of the break is intentionally.
Reviewed by: rrs
CID: 1523782
MFC after: 1 week
Sponsored by: Netflix, Inc.
Differential Revision: https://reviews.freebsd.org/D48273
|
|
|
|
|
|
|
|
|
|
|
|
| |
Actually implement the IPPROTO_TCP-level socket option
TCP_BBR_USEDEL_RATE.
Reviewed by: rrs
CID: 1523813
CID: 1523814
MFC after: 1 week
Sponsored by: Netflix, Inc.
Differential Revision: https://reviews.freebsd.org/D48261
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When storing the old beta values in rack_swap_beta_values(),
ensure that the newreno_flags field is initialized appropriately
instead of using an uninitialized value.
Since the stored newreno_flags aren't actually used, this fix
should not have any functional change.
Reviewed by: rrs
CID: 1523796
MFC after: 1 week
Sponsored by: Netflix, Inc.
Differential Revision: https://reviews.freebsd.org/D48260
|
|
|
|
|
|
|
|
|
|
|
|
| |
Instead of dealing with ifp == NULL, which should never happen,
assume that this is not true. Use KASSERT to make this clear.
No functional change intended.
Reviewed by: glebius, rrs
CID: 1523767
MFC after: 1 week
Sponsored by: Netflix, Inc.
Differential Revision: https://reviews.freebsd.org/D48258
|
|
|
|
|
|
|
|
|
|
|
| |
Do not return an uninitialized value from ctf_do_queued_segments()
in case no packets are actually processed (all are skipped).
Reviewed by: rrs
CID: 1523774
MFC after: 1 week
Sponsored by: Netflix, Inc.
Differential Revision: https://reviews.freebsd.org/D48217
|
|
|
|
|
|
|
|
|
|
| |
No functional change intended.
Reviewed by: rrs
CID: 1523811
MFC after: 1 week
Sponsored by: Netflix, Inc.
Differential Revision: https://reviews.freebsd.org/D48216
|