Re: Suboptimal handling of packets containing FORWARD-TSN and DATA chunks

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Yeah that could be the reason.

If you look for example at the test script
https://github.com/nplab/PR_SCTP_Testsuite/blob/master/forward-tsn/receiver-side-implementation/packet-loss/ordered/ordered-packet-loss-5.pkt

there are two bundled SACK-Chunks sent by the linux kernel. this is
not invalid behaviour but it is inefficien (line 78)t:
+0.0 > sctp: SACK[flgs=0, cum_tsn=2, a_rwnd=..., gaps=[2:2, 4:4], dups=[]];
                    SACK[flgs=0, cum_tsn=4, a_rwnd=..., gaps=[2:2], dups=[]]

The second SACK-Chunk has a higher cum_tsn and it would be more
efficient to only send one SACK-Chunk in these cases. The FreeBSD
implementation only sends the following SACK-Chunk in this case:
+0.0 > sctp: SACK[flgs=0, cum_tsn=4, a_rwnd=..., gaps=[2:2], dups=[]]

2017-01-17 20:07 GMT+01:00 Xin Long <lucien.xin@xxxxxxxxx>:
> On Tue, Jan 17, 2017 at 9:08 PM, Julian Cordes <julian.cordes@xxxxxxxxx> wrote:
>> WWhenever receiving packets containing FORWARD-TSN chunks bundled with a
>> DATA-Chunk the linux kernel sends currently two SACK-Chunks.
>> This is suboptimal, because after processing both received chunks, it
>> could send one SACK-Chunk.
>>
>>  Testscripts available at:
>>  - https://github.com/nplab/PR_SCTP_Testsuite/blob/master/forward-tsn/receiver-side-implementation/packet-loss/ordered/ordered-packet-loss-5.pkt
>>  - https://github.com/nplab/PR_SCTP_Testsuite/blob/master/forward-tsn/receiver-side-implementation/packet-loss/ordered/ordered-packet-loss-12.pkt
>>  - https://github.com/nplab/PR_SCTP_Testsuite/blob/master/forward-tsn/receiver-side-implementation/packet-loss/ordered/ordered-packet-loss-13.pkt
>>  - https://github.com/nplab/PR_SCTP_Testsuite/blob/master/forward-tsn/receiver-side-implementation/packet-loss/unordered/unordered-packet-loss-2.pkt
>>  - https://github.com/nplab/PR_SCTP_Testsuite/blob/master/forward-tsn/receiver-side-implementation/packet-loss/unordered/unordered-packet-loss-5.pkt
>>  - https://github.com/nplab/PR_SCTP_Testsuite/blob/master/forward-tsn/receiver-side-implementation/packet-loss/unordered/unordered-packet-loss-12.pkt
>>
> you test script may triggered this:
>
>         /* From 12.2 Parameters necessary per association (i.e. the TCB):
>          *
>          * Ack State : This flag indicates if the next received packet
>          *           : is to be responded to with a SACK. ...
>          *           : When DATA chunks are out of order, SACK's
>          *           : are not delayed (see Section 6).
>          *
>          * [This is actually not mentioned in Section 6, but we
>          * implement it here anyway. --piggy]
>          */
>         if (max_tsn_seen != ctsn)
>                 asoc->peer.sack_needed = 1;
>
> if max_tsn_seen(the highest TSN we've seen) != ctsn(Cumulative TSN ACK Point),
> the sack will send immediately. :)
--
To unsubscribe from this list: send the line "unsubscribe linux-sctp" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux Networking Development]     [Linux OMAP]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux