Skip to content

Commit

Permalink
Merge remote-tracking branch 'upstream/master'
Browse files Browse the repository at this point in the history
  • Loading branch information
actions-user committed Sep 1, 2024
2 parents 4a5edc0 + 10ae8a5 commit 218f827
Show file tree
Hide file tree
Showing 33 changed files with 83 additions and 320 deletions.
3 changes: 3 additions & 0 deletions openwrt/23-config-musl-r5s
Original file line number Diff line number Diff line change
Expand Up @@ -32,3 +32,6 @@ CONFIG_PACKAGE_rtl8851be-firmware=m
CONFIG_PACKAGE_rtl8852ae-firmware=m
CONFIG_PACKAGE_rtl8852be-firmware=m
CONFIG_PACKAGE_rtl8852ce-firmware=m

### MT76 firmware
CONFIG_PACKAGE_mt7925-firmware=m
3 changes: 3 additions & 0 deletions openwrt/23-config-musl-x86
Original file line number Diff line number Diff line change
Expand Up @@ -72,3 +72,6 @@ CONFIG_PACKAGE_rtl8851be-firmware=m
CONFIG_PACKAGE_rtl8852ae-firmware=m
CONFIG_PACKAGE_rtl8852be-firmware=m
CONFIG_PACKAGE_rtl8852ce-firmware=m

### MT76 firmware
CONFIG_PACKAGE_mt7925-firmware=m
Original file line number Diff line number Diff line change
Expand Up @@ -237,7 +237,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
#if IS_ENABLED(CONFIG_FCOE)
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -11618,6 +11618,60 @@ static struct pernet_operations __net_in
@@ -11626,6 +11626,60 @@ static struct pernet_operations __net_in
.exit_batch = default_device_exit_batch,
};

Expand Down Expand Up @@ -298,7 +298,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
/*
* Initialize the DEV module. At boot time this walks the device list and
* unhooks any devices that fail to initialise (normally hardware not
@@ -11667,6 +11721,8 @@ static int __init net_dev_init(void)
@@ -11675,6 +11729,8 @@ static int __init net_dev_init(void)

BUG_ON(!dev_boot_phase);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>

--- a/net/ipv4/tcp_input.c
+++ b/net/ipv4/tcp_input.c
@@ -3841,6 +3841,7 @@ static int tcp_ack(struct sock *sk, cons
@@ -3874,6 +3874,7 @@ static int tcp_ack(struct sock *sk, cons

prior_fack = tcp_is_sack(tp) ? tcp_highest_sack_seq(tp) : tp->snd_una;
rs.prior_in_flight = tcp_packets_in_flight(tp);
Expand All @@ -42,7 +42,7 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>
* is in window.
--- a/net/ipv4/tcp_timer.c
+++ b/net/ipv4/tcp_timer.c
@@ -653,6 +653,7 @@ void tcp_write_timer_handler(struct sock
@@ -664,6 +664,7 @@ void tcp_write_timer_handler(struct sock
return;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>

--- a/include/net/tcp.h
+++ b/include/net/tcp.h
@@ -821,6 +821,11 @@ static inline u32 tcp_stamp_us_delta(u64
@@ -822,6 +822,11 @@ static inline u32 tcp_stamp_us_delta(u64
return max_t(s64, t1 - t0, 0);
}

Expand All @@ -37,7 +37,7 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>
static inline u32 tcp_skb_timestamp(const struct sk_buff *skb)
{
return tcp_ns_to_ts(skb->skb_mstamp_ns);
@@ -896,9 +901,9 @@ struct tcp_skb_cb {
@@ -897,9 +902,9 @@ struct tcp_skb_cb {
/* pkts S/ACKed so far upon tx of skb, incl retrans: */
__u32 delivered;
/* start of send pipeline phase */
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>

--- a/include/net/tcp.h
+++ b/include/net/tcp.h
@@ -904,6 +904,10 @@ struct tcp_skb_cb {
@@ -905,6 +905,10 @@ struct tcp_skb_cb {
u32 first_tx_mstamp;
/* when we reached the "delivered" count */
u32 delivered_mstamp;
Expand All @@ -38,15 +38,15 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>
} tx; /* only used for outgoing skbs */
union {
struct inet_skb_parm h4;
@@ -1051,6 +1055,7 @@ struct rate_sample {
@@ -1052,6 +1056,7 @@ struct rate_sample {
u64 prior_mstamp; /* starting timestamp for interval */
u32 prior_delivered; /* tp->delivered at "prior_mstamp" */
u32 prior_delivered_ce;/* tp->delivered_ce at "prior_mstamp" */
+ u32 tx_in_flight; /* packets in flight at starting timestamp */
s32 delivered; /* number of packets delivered over interval */
s32 delivered_ce; /* number of packets delivered w/ CE marks*/
long interval_us; /* time for tp->delivered to incr "delivered" */
@@ -1173,6 +1178,7 @@ static inline void tcp_ca_event(struct s
@@ -1174,6 +1179,7 @@ static inline void tcp_ca_event(struct s
void tcp_set_ca_state(struct sock *sk, const u8 ca_state);

/* From tcp_rate.c */
Expand All @@ -56,7 +56,7 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>
struct rate_sample *rs);
--- a/net/ipv4/tcp_output.c
+++ b/net/ipv4/tcp_output.c
@@ -2701,6 +2701,7 @@ static bool tcp_write_xmit(struct sock *
@@ -2703,6 +2703,7 @@ static bool tcp_write_xmit(struct sock *
skb_set_delivery_time(skb, tp->tcp_wstamp_ns, true);
list_move_tail(&skb->tcp_tsorted_anchor, &tp->tsorted_sent_queue);
tcp_init_tso_segs(skb, mss_now);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,15 +19,15 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>

--- a/include/net/tcp.h
+++ b/include/net/tcp.h
@@ -908,6 +908,7 @@ struct tcp_skb_cb {
@@ -909,6 +909,7 @@ struct tcp_skb_cb {
#define TCPCB_IN_FLIGHT_MAX ((1U << TCPCB_IN_FLIGHT_BITS) - 1)
u32 in_flight:20, /* packets in flight at transmit */
unused2:12;
+ u32 lost; /* packets lost so far upon tx of skb */
} tx; /* only used for outgoing skbs */
union {
struct inet_skb_parm h4;
@@ -1053,11 +1054,13 @@ struct ack_sample {
@@ -1054,11 +1055,13 @@ struct ack_sample {
*/
struct rate_sample {
u64 prior_mstamp; /* starting timestamp for interval */
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>

--- a/include/net/tcp.h
+++ b/include/net/tcp.h
@@ -1072,6 +1072,7 @@ struct rate_sample {
@@ -1073,6 +1073,7 @@ struct rate_sample {
bool is_app_limited; /* is sample from packet with bubble in pipe? */
bool is_retrans; /* is sample from retransmission? */
bool is_ack_delayed; /* is this (likely) a delayed ACK? */
Expand All @@ -28,7 +28,7 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>
struct tcp_congestion_ops {
--- a/net/ipv4/tcp_input.c
+++ b/net/ipv4/tcp_input.c
@@ -3940,6 +3940,7 @@ static int tcp_ack(struct sock *sk, cons
@@ -3973,6 +3973,7 @@ static int tcp_ack(struct sock *sk, cons
delivered = tcp_newly_delivered(sk, delivered, flag);
lost = tp->lost - lost; /* freshly marked lost */
rs.is_ack_delayed = !!(flag & FLAG_ACK_MAYBE_DELAYED);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>

--- a/include/net/tcp.h
+++ b/include/net/tcp.h
@@ -1099,6 +1099,9 @@ struct tcp_congestion_ops {
@@ -1100,6 +1100,9 @@ struct tcp_congestion_ops {
/* override sysctl_tcp_min_tso_segs */
u32 (*min_tso_segs)(struct sock *sk);

Expand All @@ -42,7 +42,7 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>
*/
--- a/net/ipv4/tcp_input.c
+++ b/net/ipv4/tcp_input.c
@@ -1096,7 +1096,12 @@ static void tcp_verify_retransmit_hint(s
@@ -1103,7 +1103,12 @@ static void tcp_verify_retransmit_hint(s
*/
static void tcp_notify_skb_loss_event(struct tcp_sock *tp, const struct sk_buff *skb)
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>

--- a/net/ipv4/tcp_input.c
+++ b/net/ipv4/tcp_input.c
@@ -1482,6 +1482,17 @@ static bool tcp_shifted_skb(struct sock
@@ -1489,6 +1489,17 @@ static bool tcp_shifted_skb(struct sock
WARN_ON_ONCE(tcp_skb_pcount(skb) < pcount);
tcp_skb_pcount_add(skb, -pcount);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>

--- a/include/net/tcp.h
+++ b/include/net/tcp.h
@@ -1198,6 +1198,21 @@ static inline bool tcp_skb_sent_after(u6
@@ -1199,6 +1199,21 @@ static inline bool tcp_skb_sent_after(u6
return t1 > t2 || (t1 == t2 && after(seq1, seq2));
}

Expand All @@ -55,7 +55,7 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>
* between different flows.
--- a/net/ipv4/tcp_output.c
+++ b/net/ipv4/tcp_output.c
@@ -1546,7 +1546,7 @@ int tcp_fragment(struct sock *sk, enum t
@@ -1548,7 +1548,7 @@ int tcp_fragment(struct sock *sk, enum t
{
struct tcp_sock *tp = tcp_sk(sk);
struct sk_buff *buff;
Expand All @@ -64,7 +64,7 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>
long limit;
int nlen;
u8 flags;
@@ -1621,6 +1621,30 @@ int tcp_fragment(struct sock *sk, enum t
@@ -1623,6 +1623,30 @@ int tcp_fragment(struct sock *sk, enum t

if (diff)
tcp_adjust_pcount(sk, skb, diff);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>

--- a/include/net/tcp.h
+++ b/include/net/tcp.h
@@ -1034,7 +1034,11 @@ enum tcp_ca_ack_event_flags {
@@ -1035,7 +1035,11 @@ enum tcp_ca_ack_event_flags {
#define TCP_CONG_NON_RESTRICTED 0x1
/* Requires ECN/ECT set on all packets */
#define TCP_CONG_NEEDS_ECN 0x2
Expand All @@ -36,7 +36,7 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>

union tcp_cc_info;

@@ -1166,6 +1170,14 @@ static inline char *tcp_ca_get_name_by_k
@@ -1167,6 +1171,14 @@ static inline char *tcp_ca_get_name_by_k
}
#endif

Expand All @@ -53,7 +53,7 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>
const struct inet_connection_sock *icsk = inet_csk(sk);
--- a/net/ipv4/tcp_input.c
+++ b/net/ipv4/tcp_input.c
@@ -371,7 +371,7 @@ static void __tcp_ecn_check_ce(struct so
@@ -376,7 +376,7 @@ static void __tcp_ecn_check_ce(struct so
tcp_enter_quickack_mode(sk, 2);
break;
case INET_ECN_CE:
Expand All @@ -62,7 +62,7 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>
tcp_ca_event(sk, CA_EVENT_ECN_IS_CE);

if (!(tp->ecn_flags & TCP_ECN_DEMAND_CWR)) {
@@ -382,7 +382,7 @@ static void __tcp_ecn_check_ce(struct so
@@ -387,7 +387,7 @@ static void __tcp_ecn_check_ce(struct so
tp->ecn_flags |= TCP_ECN_SEEN;
break;
default:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>

--- a/include/net/tcp.h
+++ b/include/net/tcp.h
@@ -1100,8 +1100,8 @@ struct tcp_congestion_ops {
@@ -1101,8 +1101,8 @@ struct tcp_congestion_ops {
/* hook for packet ack accounting (optional) */
void (*pkts_acked)(struct sock *sk, const struct ack_sample *sample);

Expand Down Expand Up @@ -97,7 +97,7 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>
};
--- a/net/ipv4/tcp_output.c
+++ b/net/ipv4/tcp_output.c
@@ -2020,13 +2020,12 @@ static u32 tcp_tso_autosize(const struct
@@ -2022,13 +2022,12 @@ static u32 tcp_tso_autosize(const struct
static u32 tcp_tso_segs(struct sock *sk, unsigned int mss_now)
{
const struct tcp_congestion_ops *ca_ops = inet_csk(sk)->icsk_ca_ops;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>
u8 chrono_type:2, /* current chronograph type */
--- a/net/ipv4/tcp.c
+++ b/net/ipv4/tcp.c
@@ -3092,6 +3092,7 @@ int tcp_disconnect(struct sock *sk, int
@@ -3099,6 +3099,7 @@ int tcp_disconnect(struct sock *sk, int
tp->rx_opt.dsack = 0;
tp->rx_opt.num_sacks = 0;
tp->rcv_ooopack = 0;
Expand All @@ -53,7 +53,7 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>
if (tcp_ca_needs_ecn(sk))
--- a/net/ipv4/tcp_input.c
+++ b/net/ipv4/tcp_input.c
@@ -5578,13 +5578,14 @@ static void __tcp_ack_snd_check(struct s
@@ -5621,13 +5621,14 @@ static void __tcp_ack_snd_check(struct s

/* More than one full frame received... */
if (((tp->rcv_nxt - tp->rcv_wup) > inet_csk(sk)->icsk_ack.rcv_mss &&
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>
u8 chrono_type:2, /* current chronograph type */
--- a/net/ipv4/tcp_output.c
+++ b/net/ipv4/tcp_output.c
@@ -2938,6 +2938,7 @@ void tcp_send_loss_probe(struct sock *sk
@@ -2940,6 +2940,7 @@ void tcp_send_loss_probe(struct sock *sk
if (WARN_ON(!skb || !tcp_skb_pcount(skb)))
goto rearm_timer;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>

--- a/include/net/tcp.h
+++ b/include/net/tcp.h
@@ -1012,6 +1012,7 @@ enum tcp_ca_event {
@@ -1013,6 +1013,7 @@ enum tcp_ca_event {
CA_EVENT_LOSS, /* loss timeout */
CA_EVENT_ECN_NO_CE, /* ECT set, but not CE marked */
CA_EVENT_ECN_IS_CE, /* received CE marked IP packet */
Expand All @@ -35,7 +35,7 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>
/* Information about inbound ACK, passed to cong_ops->in_ack_event() */
--- a/net/ipv4/tcp_input.c
+++ b/net/ipv4/tcp_input.c
@@ -3739,6 +3739,7 @@ static void tcp_process_tlp_ack(struct s
@@ -3772,6 +3772,7 @@ static void tcp_process_tlp_ack(struct s
/* ACK advances: there was a loss, so reduce cwnd. Reset
* tlp_high_seq in tcp_init_cwnd_reduction()
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>

--- a/include/net/tcp.h
+++ b/include/net/tcp.h
@@ -1076,6 +1076,7 @@ struct rate_sample {
@@ -1077,6 +1077,7 @@ struct rate_sample {
u32 last_end_seq; /* end_seq of most recently ACKed packet */
bool is_app_limited; /* is sample from packet with bubble in pipe? */
bool is_retrans; /* is sample from retransmission? */
Expand All @@ -31,7 +31,7 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>
};
--- a/net/ipv4/tcp_input.c
+++ b/net/ipv4/tcp_input.c
@@ -3722,7 +3722,8 @@ static void tcp_replace_ts_recent(struct
@@ -3755,7 +3755,8 @@ static void tcp_replace_ts_recent(struct
/* This routine deals with acks during a TLP episode and ends an episode by
* resetting tlp_high_seq. Ref: TLP algorithm in draft-ietf-tcpm-rack
*/
Expand All @@ -41,7 +41,7 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>
{
struct tcp_sock *tp = tcp_sk(sk);

@@ -3750,6 +3751,11 @@ static void tcp_process_tlp_ack(struct s
@@ -3783,6 +3784,11 @@ static void tcp_process_tlp_ack(struct s
FLAG_NOT_DUP | FLAG_DATA_SACKED))) {
/* Pure dupack: original and TLP probe arrived; no loss */
tp->tlp_high_seq = 0;
Expand All @@ -53,7 +53,7 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>
}
}

@@ -3933,7 +3939,7 @@ static int tcp_ack(struct sock *sk, cons
@@ -3966,7 +3972,7 @@ static int tcp_ack(struct sock *sk, cons
tcp_rack_update_reo_wnd(sk, &rs);

if (tp->tlp_high_seq)
Expand All @@ -62,7 +62,7 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>

if (tcp_ack_is_dubious(sk, flag)) {
if (!(flag & (FLAG_SND_UNA_ADVANCED |
@@ -3977,7 +3983,7 @@ no_queue:
@@ -4010,7 +4016,7 @@ no_queue:
tcp_ack_probe(sk);

if (tp->tlp_high_seq)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>

enum tcp_tw_status {
TCP_TW_SUCCESS = 0,
@@ -725,6 +726,15 @@ static inline void tcp_fast_path_check(s
@@ -726,6 +727,15 @@ static inline void tcp_fast_path_check(s

u32 tcp_delack_max(const struct sock *sk);

Expand Down Expand Up @@ -74,7 +74,7 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>
__u8 proto;
--- a/net/ipv4/tcp_minisocks.c
+++ b/net/ipv4/tcp_minisocks.c
@@ -435,6 +435,8 @@ void tcp_ca_openreq_child(struct sock *s
@@ -434,6 +434,8 @@ void tcp_ca_openreq_child(struct sock *s
u32 ca_key = dst_metric(dst, RTAX_CC_ALGO);
bool ca_got_dst = false;

Expand All @@ -85,7 +85,7 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>

--- a/net/ipv4/tcp_output.c
+++ b/net/ipv4/tcp_output.c
@@ -332,10 +332,9 @@ static void tcp_ecn_send_syn(struct sock
@@ -334,10 +334,9 @@ static void tcp_ecn_send_syn(struct sock
bool bpf_needs_ecn = tcp_bpf_ca_needs_ecn(sk);
bool use_ecn = READ_ONCE(sock_net(sk)->ipv4.sysctl_tcp_ecn) == 1 ||
tcp_ca_needs_ecn(sk) || bpf_needs_ecn;
Expand All @@ -97,7 +97,7 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>
if (dst && dst_feature(dst, RTAX_FEATURE_ECN))
use_ecn = true;
}
@@ -347,6 +346,9 @@ static void tcp_ecn_send_syn(struct sock
@@ -349,6 +348,9 @@ static void tcp_ecn_send_syn(struct sock
tp->ecn_flags = TCP_ECN_OK;
if (tcp_ca_needs_ecn(sk) || bpf_needs_ecn)
INET_ECN_xmit(sk);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -153,7 +153,7 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>
#define ICSK_TIME_RETRANS 1 /* Retransmit timer */
--- a/include/net/tcp.h
+++ b/include/net/tcp.h
@@ -2268,7 +2268,7 @@ struct tcp_plb_state {
@@ -2269,7 +2269,7 @@ struct tcp_plb_state {
u8 consec_cong_rounds:5, /* consecutive congested rounds */
unused:3;
u32 pause_until; /* jiffies32 when PLB can resume rerouting */
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>
/* BBR marks the current round trip as a loss round. */
--- a/net/ipv4/tcp_output.c
+++ b/net/ipv4/tcp_output.c
@@ -386,7 +386,8 @@ static void tcp_ecn_send(struct sock *sk
@@ -388,7 +388,8 @@ static void tcp_ecn_send(struct sock *sk
th->cwr = 1;
skb_shinfo(skb)->gso_type |= SKB_GSO_TCP_ECN;
}
Expand Down
Loading

0 comments on commit 218f827

Please sign in to comment.