/kernel/linux/linux-5.10/net/netfilter/ |
H A D | nf_conntrack_seqadj.c | 82 struct tcp_sack_block_wire *sack; in nf_ct_sack_block_adjust() local 85 sack = (void *)skb->data + sackoff; in nf_ct_sack_block_adjust() 86 if (after(ntohl(sack->start_seq) - seq->offset_before, in nf_ct_sack_block_adjust() 88 new_start_seq = htonl(ntohl(sack->start_seq) - in nf_ct_sack_block_adjust() 91 new_start_seq = htonl(ntohl(sack->start_seq) - in nf_ct_sack_block_adjust() 94 if (after(ntohl(sack->end_seq) - seq->offset_before, in nf_ct_sack_block_adjust() 96 new_end_seq = htonl(ntohl(sack->end_seq) - in nf_ct_sack_block_adjust() 99 new_end_seq = htonl(ntohl(sack->end_seq) - in nf_ct_sack_block_adjust() 103 ntohl(sack->start_seq), ntohl(new_start_seq), in nf_ct_sack_block_adjust() 104 ntohl(sack in nf_ct_sack_block_adjust() [all...] |
H A D | nf_conntrack_proto_tcp.c | 303 td_maxend = max(sack + max(win,1)) seen in reply packets 304 td_maxwin = max(max(win, 1)) + (sack - ack) seen in sent packets 311 III. Upper bound for valid (s)ack: sack <= receiver.td_end 312 IV. Lower bound for valid (s)ack: sack >= receiver.td_end - MAXACKWINDOW 314 where sack is the highest right edge of sack block found in the packet 399 const struct tcphdr *tcph, __u32 *sack) in tcp_sack() 450 if (after(tmp, *sack)) in tcp_sack() 451 *sack = tmp; in tcp_sack() 474 __u32 seq, ack, sack, en in tcp_in_window() local 398 tcp_sack(const struct sk_buff *skb, unsigned int dataoff, const struct tcphdr *tcph, __u32 *sack) tcp_sack() argument [all...] |
/kernel/linux/linux-6.6/net/netfilter/ |
H A D | nf_conntrack_seqadj.c | 82 struct tcp_sack_block_wire *sack; in nf_ct_sack_block_adjust() local 85 sack = (void *)skb->data + sackoff; in nf_ct_sack_block_adjust() 86 if (after(ntohl(sack->start_seq) - seq->offset_before, in nf_ct_sack_block_adjust() 88 new_start_seq = htonl(ntohl(sack->start_seq) - in nf_ct_sack_block_adjust() 91 new_start_seq = htonl(ntohl(sack->start_seq) - in nf_ct_sack_block_adjust() 94 if (after(ntohl(sack->end_seq) - seq->offset_before, in nf_ct_sack_block_adjust() 96 new_end_seq = htonl(ntohl(sack->end_seq) - in nf_ct_sack_block_adjust() 99 new_end_seq = htonl(ntohl(sack->end_seq) - in nf_ct_sack_block_adjust() 103 ntohl(sack->start_seq), ntohl(new_start_seq), in nf_ct_sack_block_adjust() 104 ntohl(sack in nf_ct_sack_block_adjust() [all...] |
H A D | nf_conntrack_proto_tcp.c | 295 td_maxend = max(sack + max(win,1)) seen in reply packets 296 td_maxwin = max(max(win, 1)) + (sack - ack) seen in sent packets 303 III. Upper bound for valid (s)ack: sack <= receiver.td_end 304 IV. Lower bound for valid (s)ack: sack >= receiver.td_end - MAXACKWINDOW 306 where sack is the highest right edge of sack block found in the packet 392 const struct tcphdr *tcph, __u32 *sack) in tcp_sack() 444 if (after(tmp, *sack)) in tcp_sack() 445 *sack = tmp; in tcp_sack() 518 __u32 seq, ack, sack, en in tcp_in_window() local 391 tcp_sack(const struct sk_buff *skb, unsigned int dataoff, const struct tcphdr *tcph, __u32 *sack) tcp_sack() argument [all...] |
/kernel/linux/linux-5.10/net/sctp/ |
H A D | outqueue.c | 42 static int sctp_acked(struct sctp_sackhdr *sack, __u32 tsn); 47 struct sctp_sackhdr *sack, 580 * triggered during sack processing and the queue in sctp_retransmit() 1203 struct sctp_sackhdr *sack) in sctp_sack_update_unack_data() 1211 frags = sack->variable; in sctp_sack_update_unack_data() 1212 for (i = 0; i < ntohs(sack->num_gap_ack_blocks); i++) { in sctp_sack_update_unack_data() 1228 struct sctp_sackhdr *sack = chunk->subh.sack_hdr; in sctp_outq_sack() local 1232 union sctp_sack_variable *frags = sack->variable; in sctp_outq_sack() 1251 sack_ctsn = ntohl(sack->cum_tsn_ack); in sctp_outq_sack() 1252 gap_ack_blocks = ntohs(sack in sctp_outq_sack() 1202 sctp_sack_update_unack_data(struct sctp_association *assoc, struct sctp_sackhdr *sack) sctp_sack_update_unack_data() argument 1409 sctp_check_transmitted(struct sctp_outq *q, struct list_head *transmitted_queue, struct sctp_transport *transport, union sctp_addr *saddr, struct sctp_sackhdr *sack, __u32 *highest_new_tsn_in_sack) sctp_check_transmitted() argument 1747 sctp_acked(struct sctp_sackhdr *sack, __u32 tsn) sctp_acked() argument [all...] |
H A D | output.c | 271 struct sctp_chunk *sack; in sctp_packet_bundle_sack() local 278 sack = sctp_make_sack(asoc); in sctp_packet_bundle_sack() 279 if (sack) { in sctp_packet_bundle_sack() 280 retval = __sctp_packet_append_chunk(pkt, sack); in sctp_packet_bundle_sack() 282 sctp_chunk_free(sack); in sctp_packet_bundle_sack()
|
H A D | sm_make_chunk.c | 761 struct sctp_sackhdr sack; in sctp_make_sack() local 775 sack.cum_tsn_ack = htonl(ctsn); in sctp_make_sack() 776 sack.a_rwnd = htonl(asoc->a_rwnd); in sctp_make_sack() 777 sack.num_gap_ack_blocks = htons(num_gabs); in sctp_make_sack() 778 sack.num_dup_tsns = htons(num_dup_tsns); in sctp_make_sack() 780 len = sizeof(sack) in sctp_make_sack() 822 sctp_addto_chunk(retval, sizeof(sack), &sack); in sctp_make_sack() 835 /* Once we have a sack generated, check to see what our sack in sctp_make_sack() [all...] |
H A D | associola.c | 209 * sack to acknowledge the data chunk. Subsequent in sctp_association_init() 1464 struct sctp_chunk *sack; in sctp_assoc_rwnd_increase() local 1505 sack = sctp_make_sack(asoc); in sctp_assoc_rwnd_increase() 1506 if (!sack) in sctp_assoc_rwnd_increase() 1511 sctp_outq_tail(&asoc->outqueue, sack, GFP_ATOMIC); in sctp_assoc_rwnd_increase()
|
H A D | sm_sideeffect.c | 143 struct sctp_chunk *sack; in sctp_gen_sack() local 206 sack = sctp_make_sack(asoc); in sctp_gen_sack() 207 if (!sack) { in sctp_gen_sack() 215 sctp_add_cmd_sf(commands, SCTP_CMD_REPLY, SCTP_CHUNK(sack)); in sctp_gen_sack()
|
H A D | sm_statefuns.c | 3168 * toward sack generation. Note that we need to SACK every in sctp_sf_eat_data_6_2() 6193 struct sctp_sackhdr *sack; in sctp_sm_pull_sack() local 6201 sack = (struct sctp_sackhdr *) chunk->skb->data; in sctp_sm_pull_sack() 6203 num_blocks = ntohs(sack->num_gap_ack_blocks); in sctp_sm_pull_sack() 6204 num_dup_tsns = ntohs(sack->num_dup_tsns); in sctp_sm_pull_sack() 6212 return sack; in sctp_sm_pull_sack()
|
/kernel/linux/linux-6.6/net/sctp/ |
H A D | outqueue.c | 42 static int sctp_acked(struct sctp_sackhdr *sack, __u32 tsn); 47 struct sctp_sackhdr *sack, 583 * triggered during sack processing and the queue in sctp_retransmit() 1226 struct sctp_sackhdr *sack) in sctp_sack_update_unack_data() 1234 frags = (union sctp_sack_variable *)(sack + 1); in sctp_sack_update_unack_data() 1235 for (i = 0; i < ntohs(sack->num_gap_ack_blocks); i++) { in sctp_sack_update_unack_data() 1251 struct sctp_sackhdr *sack = chunk->subh.sack_hdr; in sctp_outq_sack() local 1273 sack_ctsn = ntohl(sack->cum_tsn_ack); in sctp_outq_sack() 1274 gap_ack_blocks = ntohs(sack->num_gap_ack_blocks); in sctp_outq_sack() 1313 /* Get the highest TSN in the sack in sctp_outq_sack() 1225 sctp_sack_update_unack_data(struct sctp_association *assoc, struct sctp_sackhdr *sack) sctp_sack_update_unack_data() argument 1435 sctp_check_transmitted(struct sctp_outq *q, struct list_head *transmitted_queue, struct sctp_transport *transport, union sctp_addr *saddr, struct sctp_sackhdr *sack, __u32 *highest_new_tsn_in_sack) sctp_check_transmitted() argument 1773 sctp_acked(struct sctp_sackhdr *sack, __u32 tsn) sctp_acked() argument [all...] |
H A D | output.c | 297 struct sctp_chunk *sack; in sctp_packet_bundle_sack() local 304 sack = sctp_make_sack(asoc); in sctp_packet_bundle_sack() 305 if (sack) { in sctp_packet_bundle_sack() 306 retval = __sctp_packet_append_chunk(pkt, sack); in sctp_packet_bundle_sack() 308 sctp_chunk_free(sack); in sctp_packet_bundle_sack()
|
H A D | sm_make_chunk.c | 761 struct sctp_sackhdr sack; in sctp_make_sack() local 775 sack.cum_tsn_ack = htonl(ctsn); in sctp_make_sack() 776 sack.a_rwnd = htonl(asoc->a_rwnd); in sctp_make_sack() 777 sack.num_gap_ack_blocks = htons(num_gabs); in sctp_make_sack() 778 sack.num_dup_tsns = htons(num_dup_tsns); in sctp_make_sack() 780 len = sizeof(sack) in sctp_make_sack() 822 sctp_addto_chunk(retval, sizeof(sack), &sack); in sctp_make_sack() 835 /* Once we have a sack generated, check to see what our sack in sctp_make_sack() [all...] |
H A D | associola.c | 212 * sack to acknowledge the data chunk. Subsequent in sctp_association_init() 1472 struct sctp_chunk *sack; in sctp_assoc_rwnd_increase() local 1513 sack = sctp_make_sack(asoc); in sctp_assoc_rwnd_increase() 1514 if (!sack) in sctp_assoc_rwnd_increase() 1519 sctp_outq_tail(&asoc->outqueue, sack, GFP_ATOMIC); in sctp_assoc_rwnd_increase()
|
H A D | sm_sideeffect.c | 143 struct sctp_chunk *sack; in sctp_gen_sack() local 206 sack = sctp_make_sack(asoc); in sctp_gen_sack() 207 if (!sack) { in sctp_gen_sack() 215 sctp_add_cmd_sf(commands, SCTP_CMD_REPLY, SCTP_CHUNK(sack)); in sctp_gen_sack()
|
/kernel/linux/linux-6.6/net/rxrpc/ |
H A D | input.c | 374 unsigned int sack = call->ackr_sack_base; in rxrpc_input_data_one() local 427 trace_rxrpc_sack(call, seq, sack, rxrpc_sack_none); in rxrpc_input_data_one() 430 trace_rxrpc_sack(call, seq, sack, rxrpc_sack_advance); in rxrpc_input_data_one() 431 sack = (sack + 1) % RXRPC_SACK_SIZE; in rxrpc_input_data_one() 450 call->ackr_sack_table[sack] = 0; in rxrpc_input_data_one() 451 trace_rxrpc_sack(call, seq, sack, rxrpc_sack_fill); in rxrpc_input_data_one() 452 sack = (sack + 1) % RXRPC_SACK_SIZE; in rxrpc_input_data_one() 461 call->ackr_sack_base = sack; in rxrpc_input_data_one() [all...] |
H A D | output.c | 87 unsigned int qsize, sack, wrap, to; in rxrpc_fill_out_ack() local 100 sack = call->ackr_sack_base % RXRPC_SACK_SIZE; in rxrpc_fill_out_ack() 105 wrap = RXRPC_SACK_SIZE - sack; in rxrpc_fill_out_ack() 108 if (sack + txb->ack.nAcks <= RXRPC_SACK_SIZE) { in rxrpc_fill_out_ack() 109 memcpy(txb->acks, call->ackr_sack_table + sack, txb->ack.nAcks); in rxrpc_fill_out_ack() 111 memcpy(txb->acks, call->ackr_sack_table + sack, wrap); in rxrpc_fill_out_ack()
|
/kernel/linux/linux-6.6/tools/testing/selftests/netfilter/ |
H A D | nft_synproxy.sh | 93 meta iif veth0 meta l4proto tcp ct state untracked,invalid synproxy mss 1460 sack-perm timestamp
|
/kernel/linux/linux-5.10/drivers/net/ethernet/chelsio/cxgb/ |
H A D | cpl5_cmd.h | 184 u8 sack:1; member 188 u8 sack:1; member
|
/kernel/linux/linux-6.6/drivers/net/ethernet/chelsio/cxgb/ |
H A D | cpl5_cmd.h | 175 u8 sack:1; member 179 u8 sack:1; member
|
/kernel/linux/linux-6.6/include/trace/events/ |
H A D | rxrpc.h | 93 EM(rxrpc_eproto_ackr_sack_overflow, "ackr-sack-over") \ 94 EM(rxrpc_eproto_ackr_short_sack, "ackr-short-sack") \ 1948 unsigned int sack, enum rxrpc_sack_trace what), 1950 TP_ARGS(call, seq, sack, what), 1955 __field(unsigned int, sack) 1962 __entry->sack = sack; 1970 __entry->sack)
|
/kernel/linux/linux-5.10/drivers/net/ethernet/chelsio/cxgb3/ |
H A D | t3_cpl.h | 215 __u8 sack:1; member 219 __u8 sack:1; member
|
/kernel/linux/linux-6.6/drivers/net/ethernet/chelsio/cxgb3/ |
H A D | t3_cpl.h | 215 __u8 sack:1; member 219 __u8 sack:1; member
|
/kernel/linux/linux-6.6/net/ipv4/ |
H A D | tcp_input.c | 1399 /* New sack for not retransmitted frame, in tcp_sacktag_one() 1998 /* Clear the head of the cache sack blocks so we can skip it next time */ in tcp_sacktag_write_queue() 2855 if (tp->frto) { /* F-RTO RFC5682 sec 3.1 (sack enhanced version). */ in tcp_process_loss() 3258 struct tcp_sacktag_state *sack, bool ece_ack) in tcp_clean_rtx_queue() 3325 tcp_rate_skb_delivered(sk, skb, sack->rate); in tcp_clean_rtx_queue() 3373 sack->rate->prior_delivered + 1 == tp->delivered && in tcp_clean_rtx_queue() 3382 if (sack->first_sackt) { in tcp_clean_rtx_queue() 3383 sack_rtt_us = tcp_stamp_us_delta(tp->tcp_mstamp, sack->first_sackt); in tcp_clean_rtx_queue() 3384 ca_rtt_us = tcp_stamp_us_delta(tp->tcp_mstamp, sack->last_sackt); in tcp_clean_rtx_queue() 3387 ca_rtt_us, sack in tcp_clean_rtx_queue() 3256 tcp_clean_rtx_queue(struct sock *sk, const struct sk_buff *ack_skb, u32 prior_fack, u32 prior_snd_una, struct tcp_sacktag_state *sack, bool ece_ack) tcp_clean_rtx_queue() argument [all...] |
/kernel/linux/linux-5.10/net/ipv4/ |
H A D | tcp_input.c | 1380 /* New sack for not retransmitted frame, in tcp_sacktag_one() 1979 /* Clear the head of the cache sack blocks so we can skip it next time */ in tcp_sacktag_write_queue() 2822 if (tp->frto) { /* F-RTO RFC5682 sec 3.1 (sack enhanced version). */ in tcp_process_loss() 3225 struct tcp_sacktag_state *sack, bool ece_ack) in tcp_clean_rtx_queue() 3294 tcp_rate_skb_delivered(sk, skb, sack->rate); in tcp_clean_rtx_queue() 3342 sack->rate->prior_delivered + 1 == tp->delivered && in tcp_clean_rtx_queue() 3351 if (sack->first_sackt) { in tcp_clean_rtx_queue() 3352 sack_rtt_us = tcp_stamp_us_delta(tp->tcp_mstamp, sack->first_sackt); in tcp_clean_rtx_queue() 3353 ca_rtt_us = tcp_stamp_us_delta(tp->tcp_mstamp, sack->last_sackt); in tcp_clean_rtx_queue() 3356 ca_rtt_us, sack in tcp_clean_rtx_queue() 3223 tcp_clean_rtx_queue(struct sock *sk, u32 prior_fack, u32 prior_snd_una, struct tcp_sacktag_state *sack, bool ece_ack) tcp_clean_rtx_queue() argument [all...] |