aboutsummaryrefslogtreecommitdiffstats
path: root/net/sctp/outqueue.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/sctp/outqueue.c')
-rw-r--r--net/sctp/outqueue.c30
1 files changed, 15 insertions, 15 deletions
diff --git a/net/sctp/outqueue.c b/net/sctp/outqueue.c
index fba567a7cb64..5c2ddd10db06 100644
--- a/net/sctp/outqueue.c
+++ b/net/sctp/outqueue.c
@@ -376,7 +376,7 @@ static void sctp_insert_list(struct list_head *head, struct list_head *new)
376 } 376 }
377 } 377 }
378 if (!done) 378 if (!done)
379 list_add_tail(new, head); 379 list_add_tail(new, head);
380} 380}
381 381
382/* Mark all the eligible packets on a transport for retransmission. */ 382/* Mark all the eligible packets on a transport for retransmission. */
@@ -578,7 +578,7 @@ static int sctp_outq_flush_rtx(struct sctp_outq *q, struct sctp_packet *pkt,
578 break; 578 break;
579 579
580 case SCTP_XMIT_RWND_FULL: 580 case SCTP_XMIT_RWND_FULL:
581 /* Send this packet. */ 581 /* Send this packet. */
582 if ((error = sctp_packet_transmit(pkt)) == 0) 582 if ((error = sctp_packet_transmit(pkt)) == 0)
583 *start_timer = 1; 583 *start_timer = 1;
584 584
@@ -590,7 +590,7 @@ static int sctp_outq_flush_rtx(struct sctp_outq *q, struct sctp_packet *pkt,
590 break; 590 break;
591 591
592 case SCTP_XMIT_NAGLE_DELAY: 592 case SCTP_XMIT_NAGLE_DELAY:
593 /* Send this packet. */ 593 /* Send this packet. */
594 if ((error = sctp_packet_transmit(pkt)) == 0) 594 if ((error = sctp_packet_transmit(pkt)) == 0)
595 *start_timer = 1; 595 *start_timer = 1;
596 596
@@ -605,7 +605,7 @@ static int sctp_outq_flush_rtx(struct sctp_outq *q, struct sctp_packet *pkt,
605 */ 605 */
606 list_add_tail(lchunk, &transport->transmitted); 606 list_add_tail(lchunk, &transport->transmitted);
607 607
608 /* Mark the chunk as ineligible for fast retransmit 608 /* Mark the chunk as ineligible for fast retransmit
609 * after it is retransmitted. 609 * after it is retransmitted.
610 */ 610 */
611 if (chunk->fast_retransmit > 0) 611 if (chunk->fast_retransmit > 0)
@@ -703,11 +703,11 @@ int sctp_outq_flush(struct sctp_outq *q, int rtx_timeout)
703 * inactive. 703 * inactive.
704 * 704 *
705 * 3.3.6 Heartbeat Acknowledgement: 705 * 3.3.6 Heartbeat Acknowledgement:
706 * ... 706 * ...
707 * A HEARTBEAT ACK is always sent to the source IP 707 * A HEARTBEAT ACK is always sent to the source IP
708 * address of the IP datagram containing the 708 * address of the IP datagram containing the
709 * HEARTBEAT chunk to which this ack is responding. 709 * HEARTBEAT chunk to which this ack is responding.
710 * ... 710 * ...
711 */ 711 */
712 if (chunk->chunk_hdr->type != SCTP_CID_HEARTBEAT && 712 if (chunk->chunk_hdr->type != SCTP_CID_HEARTBEAT &&
713 chunk->chunk_hdr->type != SCTP_CID_HEARTBEAT_ACK) 713 chunk->chunk_hdr->type != SCTP_CID_HEARTBEAT_ACK)
@@ -914,7 +914,7 @@ int sctp_outq_flush(struct sctp_outq *q, int rtx_timeout)
914 BUG(); 914 BUG();
915 } 915 }
916 916
917 /* BUG: We assume that the sctp_packet_transmit() 917 /* BUG: We assume that the sctp_packet_transmit()
918 * call below will succeed all the time and add the 918 * call below will succeed all the time and add the
919 * chunk to the transmitted list and restart the 919 * chunk to the transmitted list and restart the
920 * timers. 920 * timers.
@@ -1266,7 +1266,7 @@ static void sctp_check_transmitted(struct sctp_outq *q,
1266 * first instance of the packet or a later 1266 * first instance of the packet or a later
1267 * instance). 1267 * instance).
1268 */ 1268 */
1269 if (!tchunk->tsn_gap_acked && 1269 if (!tchunk->tsn_gap_acked &&
1270 !tchunk->resent && 1270 !tchunk->resent &&
1271 tchunk->rtt_in_progress) { 1271 tchunk->rtt_in_progress) {
1272 tchunk->rtt_in_progress = 0; 1272 tchunk->rtt_in_progress = 0;
@@ -1275,7 +1275,7 @@ static void sctp_check_transmitted(struct sctp_outq *q,
1275 rtt); 1275 rtt);
1276 } 1276 }
1277 } 1277 }
1278 if (TSN_lte(tsn, sack_ctsn)) { 1278 if (TSN_lte(tsn, sack_ctsn)) {
1279 /* RFC 2960 6.3.2 Retransmission Timer Rules 1279 /* RFC 2960 6.3.2 Retransmission Timer Rules
1280 * 1280 *
1281 * R3) Whenever a SACK is received 1281 * R3) Whenever a SACK is received
@@ -1590,7 +1590,7 @@ static void sctp_mark_missing(struct sctp_outq *q,
1590 SCTP_DEBUG_PRINTK("%s: transport: %p, cwnd: %d, " 1590 SCTP_DEBUG_PRINTK("%s: transport: %p, cwnd: %d, "
1591 "ssthresh: %d, flight_size: %d, pba: %d\n", 1591 "ssthresh: %d, flight_size: %d, pba: %d\n",
1592 __FUNCTION__, transport, transport->cwnd, 1592 __FUNCTION__, transport, transport->cwnd,
1593 transport->ssthresh, transport->flight_size, 1593 transport->ssthresh, transport->flight_size,
1594 transport->partial_bytes_acked); 1594 transport->partial_bytes_acked);
1595 } 1595 }
1596} 1596}
@@ -1603,7 +1603,7 @@ static int sctp_acked(struct sctp_sackhdr *sack, __u32 tsn)
1603 __u16 gap; 1603 __u16 gap;
1604 __u32 ctsn = ntohl(sack->cum_tsn_ack); 1604 __u32 ctsn = ntohl(sack->cum_tsn_ack);
1605 1605
1606 if (TSN_lte(tsn, ctsn)) 1606 if (TSN_lte(tsn, ctsn))
1607 goto pass; 1607 goto pass;
1608 1608
1609 /* 3.3.4 Selective Acknowledgement (SACK) (3): 1609 /* 3.3.4 Selective Acknowledgement (SACK) (3):
@@ -1657,7 +1657,7 @@ static void sctp_generate_fwdtsn(struct sctp_outq *q, __u32 ctsn)
1657 1657
1658 /* PR-SCTP C1) Let SackCumAck be the Cumulative TSN ACK carried in the 1658 /* PR-SCTP C1) Let SackCumAck be the Cumulative TSN ACK carried in the
1659 * received SACK. 1659 * received SACK.
1660 * 1660 *
1661 * If (Advanced.Peer.Ack.Point < SackCumAck), then update 1661 * If (Advanced.Peer.Ack.Point < SackCumAck), then update
1662 * Advanced.Peer.Ack.Point to be equal to SackCumAck. 1662 * Advanced.Peer.Ack.Point to be equal to SackCumAck.
1663 */ 1663 */
@@ -1671,7 +1671,7 @@ static void sctp_generate_fwdtsn(struct sctp_outq *q, __u32 ctsn)
1671 * 1671 *
1672 * Assuming that a SACK arrived with the Cumulative TSN ACK 102 1672 * Assuming that a SACK arrived with the Cumulative TSN ACK 102
1673 * and the Advanced.Peer.Ack.Point is updated to this value: 1673 * and the Advanced.Peer.Ack.Point is updated to this value:
1674 * 1674 *
1675 * out-queue at the end of ==> out-queue after Adv.Ack.Point 1675 * out-queue at the end of ==> out-queue after Adv.Ack.Point
1676 * normal SACK processing local advancement 1676 * normal SACK processing local advancement
1677 * ... ... 1677 * ... ...
@@ -1692,7 +1692,7 @@ static void sctp_generate_fwdtsn(struct sctp_outq *q, __u32 ctsn)
1692 1692
1693 /* Remove any chunks in the abandoned queue that are acked by 1693 /* Remove any chunks in the abandoned queue that are acked by
1694 * the ctsn. 1694 * the ctsn.
1695 */ 1695 */
1696 if (TSN_lte(tsn, ctsn)) { 1696 if (TSN_lte(tsn, ctsn)) {
1697 list_del_init(lchunk); 1697 list_del_init(lchunk);
1698 if (!chunk->tsn_gap_acked) { 1698 if (!chunk->tsn_gap_acked) {
@@ -1743,7 +1743,7 @@ static void sctp_generate_fwdtsn(struct sctp_outq *q, __u32 ctsn)
1743 */ 1743 */
1744 if (asoc->adv_peer_ack_point > ctsn) 1744 if (asoc->adv_peer_ack_point > ctsn)
1745 ftsn_chunk = sctp_make_fwdtsn(asoc, asoc->adv_peer_ack_point, 1745 ftsn_chunk = sctp_make_fwdtsn(asoc, asoc->adv_peer_ack_point,
1746 nskips, &ftsn_skip_arr[0]); 1746 nskips, &ftsn_skip_arr[0]);
1747 1747
1748 if (ftsn_chunk) { 1748 if (ftsn_chunk) {
1749 list_add_tail(&ftsn_chunk->list, &q->control_chunk_list); 1749 list_add_tail(&ftsn_chunk->list, &q->control_chunk_list);