/linux-4.1.27/net/sctp/ |
H A D | associola.c | 173 asoc->rwnd = SCTP_DEFAULT_MINWINDOW; sctp_association_init() 175 asoc->rwnd = sk->sk_rcvbuf/2; sctp_association_init() 177 asoc->a_rwnd = asoc->rwnd; sctp_association_init() 180 asoc->peer.rwnd = SCTP_DEFAULT_MAXWINDOW; sctp_association_init() 1098 asoc->peer.rwnd = new->peer.rwnd; sctp_assoc_update() 1427 if ((asoc->rwnd > asoc->a_rwnd) && sctp_peer_needs_update() 1428 ((asoc->rwnd - asoc->a_rwnd) >= max_t(__u32, sctp_peer_needs_update() 1439 /* Increase asoc's rwnd by len and send any window update SACK if needed. */ sctp_assoc_rwnd_increase() 1449 asoc->rwnd += (len - asoc->rwnd_over); sctp_assoc_rwnd_increase() 1453 asoc->rwnd += len; sctp_assoc_rwnd_increase() 1457 * once our rwnd had reached the accumulated pressure sctp_assoc_rwnd_increase() 1461 if (asoc->rwnd_press && asoc->rwnd >= asoc->rwnd_press) { sctp_assoc_rwnd_increase() 1463 asoc->rwnd += change; sctp_assoc_rwnd_increase() 1467 pr_debug("%s: asoc:%p rwnd increased by %d to (%u, %u) - %u\n", sctp_assoc_rwnd_increase() 1468 __func__, asoc, len, asoc->rwnd, asoc->rwnd_over, sctp_assoc_rwnd_increase() 1471 /* Send a window update SACK if the rwnd has increased by at least the sctp_assoc_rwnd_increase() 1477 asoc->a_rwnd = asoc->rwnd; sctp_assoc_rwnd_increase() 1479 pr_debug("%s: sending window update SACK- asoc:%p rwnd:%u " sctp_assoc_rwnd_increase() 1480 "a_rwnd:%u\n", __func__, asoc, asoc->rwnd, sctp_assoc_rwnd_increase() 1498 /* Decrease asoc's rwnd by len. */ sctp_assoc_rwnd_decrease() 1504 if (unlikely(!asoc->rwnd || asoc->rwnd_over)) sctp_assoc_rwnd_decrease() 1505 pr_debug("%s: association:%p has asoc->rwnd:%u, " sctp_assoc_rwnd_decrease() 1507 asoc->rwnd, asoc->rwnd_over); sctp_assoc_rwnd_decrease() 1515 * a 0 rwnd if rwnd would still be positive. Store the sctp_assoc_rwnd_decrease() 1522 if (asoc->rwnd >= len) { sctp_assoc_rwnd_decrease() 1523 asoc->rwnd -= len; sctp_assoc_rwnd_decrease() 1525 asoc->rwnd_press += asoc->rwnd; sctp_assoc_rwnd_decrease() 1526 asoc->rwnd = 0; sctp_assoc_rwnd_decrease() 1529 asoc->rwnd_over = len - asoc->rwnd; sctp_assoc_rwnd_decrease() 1530 asoc->rwnd = 0; sctp_assoc_rwnd_decrease() 1533 pr_debug("%s: asoc:%p rwnd decreased by %d to (%u, %u, %u)\n", sctp_assoc_rwnd_decrease() 1534 __func__, asoc, len, asoc->rwnd, asoc->rwnd_over, sctp_assoc_rwnd_decrease()
|
H A D | output.c | 248 asoc->a_rwnd = asoc->rwnd; sctp_packet_bundle_sack() 638 size_t datasize, rwnd, inflight, flight_size; sctp_packet_can_append_data() local 646 * any destination transport address if its peer's rwnd indicates sctp_packet_can_append_data() 647 * that the peer has no buffer space (i.e. rwnd is 0, see Section sctp_packet_can_append_data() 648 * 6.2.1). However, regardless of the value of rwnd (including if it sctp_packet_can_append_data() 651 * allows the sender to probe for a change in rwnd that the sender sctp_packet_can_append_data() 656 rwnd = asoc->peer.rwnd; sctp_packet_can_append_data() 662 if (datasize > rwnd && inflight > 0) sctp_packet_can_append_data() 727 u32 rwnd = asoc->peer.rwnd; sctp_packet_append_data() local 735 /* Update our view of the receiver's rwnd. */ sctp_packet_append_data() 736 if (datasize < rwnd) sctp_packet_append_data() 737 rwnd -= datasize; sctp_packet_append_data() 739 rwnd = 0; sctp_packet_append_data() 741 asoc->peer.rwnd = rwnd; sctp_packet_append_data()
|
H A D | probe.c | 160 asoc->pathmtu, asoc->peer.rwnd, asoc->unack_data); jsctp_sf_eat_sack()
|
H A D | outqueue.c | 402 q->asoc->peer.rwnd += sctp_data_size(chunk); sctp_retransmit_mark() 420 * chunks to the rwnd. sctp_retransmit_mark() 422 q->asoc->peer.rwnd += sctp_data_size(chunk); sctp_retransmit_mark() 1248 /* ii) Set rwnd equal to the newly received a_rwnd minus the 1261 asoc->peer.rwnd = sack_a_rwnd; 1535 if (!q->asoc->peer.rwnd && sctp_check_transmitted()
|
H A D | ulpevent.c | 961 /* Set the owner and charge rwnd for bytes received. */ sctp_ulpevent_receive_data() 969 * fragment of the real event. However, we still need to do rwnd sctp_ulpevent_receive_data() 1036 * to the owner, updating the rwnd in case of a DATA event and freeing the
|
H A D | sm_statefuns.c | 1336 new_asoc->rwnd = asoc->rwnd; sctp_tietags_populate() 3135 * ii) Set rwnd equal to the newly received a_rwnd minus the number 5419 * We are here likely because the receiver had its rwnd sctp_sf_do_6_3_3_rtx() 6168 if ((datalen >= asoc->rwnd) && (!asoc->ulpq.pd_mode)) { sctp_eat_data() 6176 /* Spill over rwnd a little bit. Note: While allowed, this spill over sctp_eat_data() 6181 if ((!chunk->data_accepted) && (!asoc->rwnd || asoc->rwnd_over || sctp_eat_data() 6182 (datalen > asoc->rwnd + asoc->frag_point))) { sctp_eat_data() 6195 pr_debug("%s: discard tsn:%u len:%zu, rwnd:%d\n", sctp_eat_data() 6196 __func__, tsn, datalen, asoc->rwnd); sctp_eat_data() 6298 * chunk needs the updated rwnd. sctp_eat_data()
|
H A D | sm_sideeffect.c | 218 asoc->a_rwnd = asoc->rwnd; sctp_gen_sack() 1636 sackh.a_rwnd = asoc->peer.rwnd + sctp_cmd_interpreter()
|
H A D | socket.c | 2143 * rwnd by that amount. If all the data in the skb is read, sctp_recvmsg() 2144 * rwnd is updated when the event is freed. sctp_recvmsg() 2164 * rwnd. sctp_recvmsg() 3300 * invoked to help free up rwnd space for the peer. Setting this to a 3323 * it to be, also initial rwnd is based on rcvbuf/2. sctp_setsockopt_partial_delivery_point() 4259 status.sstat_rwnd = asoc->peer.rwnd; sctp_getsockopt_sctp_status() 4286 pr_debug("%s: len:%d, state:%d, rwnd:%d, assoc_id:%d\n", sctp_getsockopt_sctp_status() 5287 assocparams.sasoc_peer_rwnd = asoc->peer.rwnd; sctp_getsockopt_associnfo()
|
H A D | sm_make_chunk.c | 249 init.a_rwnd = htonl(asoc->rwnd); sctp_make_init() 408 initack.a_rwnd = htonl(asoc->rwnd); sctp_make_init_ack() 2400 /* Peer Rwnd : Current calculated value of the peer's rwnd. */ 2401 asoc->peer.rwnd = asoc->peer.i.a_rwnd;
|
H A D | ulpqueue.c | 1033 /* Partial deliver the first message as there is pressure on rwnd. */ sctp_ulpq_partial_delivery()
|
H A D | protocol.c | 1242 /* Set the default rwnd update threshold */ sctp_defaults_init()
|
/linux-4.1.27/include/net/netns/ |
H A D | sctp.h | 126 /* Threshold for rwnd update SACKS. Receive buffer shifted this many
|
/linux-4.1.27/include/net/sctp/ |
H A D | constants.h | 288 #define SCTP_DEFAULT_MINWINDOW 1500 /* default minimum rwnd size */ 289 #define SCTP_DEFAULT_MAXWINDOW 65535 /* default rwnd size */
|
H A D | structs.h | 1383 /* rwnd 1385 * Peer Rwnd : Current calculated value of the peer's rwnd. 1387 __u32 rwnd; member in struct:sctp_association::__anon12818 1658 __u32 rwnd; member in struct:sctp_association 1660 /* This is the last advertised value of rwnd over a SACK chunk. */ 1663 /* Number of bytes by which the rwnd has slopped. The rwnd is allowed 1668 /* Keeps treack of rwnd pressure. This happens when we have
|