Uploaded image for project: 'vpp'
  1. vpp
  2. VPP-720

Ensure TCP stack exhibits same behaviour as Linux TCP stack

XMLWordPrintable

    • Icon: Task Task
    • Resolution: Done
    • Icon: Highest Highest
    • 18.07
    • None
    • None

      Users of existing Linux TCP stack desire that any alternate stack exhibit the same behaviours.

      This is determined by using an independent TCP test tool (Internetworking Labs IWL - Maxwell test suite).

      Each test that the Linux kernel passes will be documented here, and a task created to ensure the VPP host-stack is compliant with the passed tests.

        1.
        Create list of Maxwell Pro tests that Linux kernel passes Sub-task Closed Dave Barach
        2.
        TCP.close : Test changes FIN/ACK segments into SYN/ACK segments Sub-task Closed Florin Coras
        3.
        TCP.close : Ignore data in RST segments Sub-task Closed Florin Coras
        4.
        TCP.connected : Remove (clear) any PUSH bits from TCP packets Sub-task Closed Florin Coras
        5.
        TCP.connected : Split TCP segments into 8 byte segments, send in reverse order Sub-task Closed Florin Coras
        6.
        TCP.connected : Split TCP segments into 8 byte segments, set push, and send in reverse order Sub-task Closed Florin Coras
        7.
        TCP.connected : Split TCP segments into 8 byte segments, clear push, and send in reverse order Sub-task Closed Florin Coras
        8.
        TCP.connected : Change the window size to 1 Sub-task Closed Florin Coras
        9.
        TCP.connected : Change the window size to 3 Sub-task Closed Florin Coras
        10.
        TCP.connected : Change the window size fo 0xff Sub-task Closed Florin Coras
        11.
        TCP.connected : Change the window size to 0x7fff Sub-task Closed Florin Coras
        12.
        TCP.connected : Change the window size to 0x8000 Sub-task Closed Florin Coras
        13.
        TCP.connected : Change the window size to 0x8001 Sub-task Closed Florin Coras
        14.
        TCP.connected : Change the window size to 0xffff Sub-task Closed Florin Coras
        15.
        TCP.connected : Segment 2 bytes. Order: N... 3 2 1. Overlap: None Sub-task Closed Florin Coras
        16.
        TCP.connected : Segment 512 bytes. Order 2134. Overlap: None Sub-task Closed Florin Coras
        17.
        TCP.connected : Segment 3 bytes. Order 1 2 3 ... N. Overlap: 1 byte Sub-task Closed Florin Coras
        18.
        TCP.connected : Segment 512 bytes. Order : 1 2 3 ... N. Overlap: All but 1 byte Sub-task Closed Florin Coras
        19.
        TCP.connected : Segment 6 segments. Order: complex. Overlap: complex Sub-task Closed Florin Coras
        20.
        TCP.connected : Segment 4 segments. Order: Complex. Overlap: Complex Sub-task Closed Florin Coras
        21.
        TCP.connected : Segment: 3 bytes. Order: N... 3 2 1. Overlap: 1 byte Sub-task Closed Florin Coras
        22.
        TCP.connected : Segment: 512 bytes. Order: N... 3 2 1. Overlap: All but 1 byte. Sub-task Closed Florin Coras
        23.
        TCP.connected : Segment: 6 segments. Order: Complex reversed. Overlap: Complex Sub-task Closed Florin Coras
        24.
        TCP.connected : Segment: 4 segments. Order: Complex reversed. Overlap: Complex Sub-task Closed Florin Coras
        25.
        TCP.connected : Verify Karn's algorithm Sub-task Closed Florin Coras
        26.
        TCP.connected : Verify exponential backoff Sub-task Closed Florin Coras
        27.
        TCP.connected : Should use delayed ACKs. Sub-task Closed Florin Coras
        28.
        TCP.connected : ACKs must not be delayed more than 0.5s Sub-task Closed Florin Coras
        29.
        TCP.options : Create 40 bytes of options by appending EOL options Sub-task Closed Florin Coras
        30.
        TCP.options : Create 40 bytes of options by appending NOP options Sub-task Closed Florin Coras
        31.
        TCP.options : Create 40 bytes of options by prepending NOP options Sub-task Closed Florin Coras
        32.
        TCP.options : Prepend an unkown option with with valid length to options in all segments Sub-task Closed Florin Coras
        33.
        TCP.options : Prepend and append unkown options of valid length to all segments Sub-task Closed Florin Coras
        34.
        TCP.options : Prepend one NOP to force options to odd-numbered byte boundaries Sub-task Closed Florin Coras
        35.
        TCP.options : Append unkown option with a length of 0 to all segments Sub-task Closed Florin Coras
        36.
        TCP.options : Append non-zero fill (value 6) between EOL and end of TCP header Sub-task Closed Florin Coras
        37.
        TCP.options : Append unkown options until header overflows by at least 1 byte Sub-task Closed Florin Coras
        38.
        TCP.options : Append unkown option of length 40 to all segments in which it fits Sub-task Closed Florin Coras
        39.
        TCP.options : Add MSS option of 768 to all non-SYN segments Sub-task Closed Florin Coras
        40.
        TCP.options : Add WSOPT option with a shift value of 8 to all non-SYN segments Sub-task Closed Florin Coras
        41.
        TCP.options : Replace the value of MSS option with the value 1461 Sub-task Closed Florin Coras
        42.
        TCP.options : Replace the value of MSS option with the value 1501 Sub-task Closed Florin Coras
        43.
        TCP.options : Replace the value of MSS option with the value 8000 Sub-task Closed Florin Coras
        44.
        TCP.options : Split SYN/ACK segment to SYN and ACK segments. ACK gets no options Sub-task Closed Florin Coras
        45.
        TCP.options : Split SYN/ACK segment to SYN and ACK segments. ACK gets MSS option Sub-task Closed Florin Coras
        46.
        TCP.options : Split SYN/ACK segment to SYN and ACK segments. ACK gets TSOPT options Sub-task Closed Florin Coras
        47.
        TCP.options : Split SYN/ACK segment to SYN and ACK segments. ACK gets WSOPT. MSS options Sub-task Closed Florin Coras
        48.
        TCP.options : Split SYN/ACK segment to SYN and ACK segments. ACK gets SACK option Sub-task Closed Florin Coras
        49.
        TCP.options : Split SYN/ACK segment to SYN and ACK segments. ACK gets SACK option. MSS options Sub-task Closed Florin Coras
        50.
        TCP.options : Split SYN/ACK segment to SYN and ACK segments. ACK gets SACK option, WSOPT options Sub-task Closed Florin Coras
        51.
        TCP.options : Split SYN/ACK segment to SYN and ACK segments. ACK gets SACK option, WSOPT, MSS options Sub-task Closed Florin Coras
        52.
        TCP.options : Split SYN/ACK segment to SYN and ACK segments. ACK gets TSOPT options Sub-task Closed Florin Coras
        53.
        TCP.options : Split SYN/ACK segment to SYN and ACK segments. ACK gets TSOPT, MSS options Sub-task Closed Florin Coras
        54.
        TCP.options : Split SYN/ACK segment to SYN and ACK segments. ACK gets TSOPT, WSOPT options Sub-task Closed Florin Coras
        55.
        TCP.options : Split SYN/ACK segment to SYN and ACK segments. ACK gets TSOPT, WSOPT, MSS options Sub-task Closed Florin Coras
        56.
        TCP.options : Split SYN/ACK segment to SYN and ACK segments. ACK gets TSOPT, SACK options Sub-task Closed Florin Coras
        57.
        TCP.options : Split SYN/ACK segment to SYN and ACK segments. ACK gets TSOPT, SACK, MSS options Sub-task Closed Florin Coras
        58.
        TCP.options : Split SYN/ACK segment to SYN and ACK segments. ACK gets TSOPT, SACK, WSOPT options Sub-task Closed Florin Coras
        59.
        TCP.options : Split SYN/ACK segment to SYN and ACK segments. ACK gets all options Sub-task Closed Florin Coras
        60.
        TCP.options : Split SYN/ACK segment to ACK and SYN segments. ACK gets no options Sub-task Closed Florin Coras
        61.
        TCP.options : Split SYN/ACK segment to ACK and SYN segments. ACK gets MSS options Sub-task Closed Florin Coras
        62.
        TCP.options : Split SYN/ACK segment to ACK and SYN segments. ACK gets WSOPT options Sub-task Closed Florin Coras
        63.
        TCP.options : Split SYN/ACK segment to ACK and SYN segments. ACK gets WSOPT, MSS options Sub-task Closed Florin Coras
        64.
        TCP.options : Split SYN/ACK segment to ACK and SYN segments. ACK gets SACK options Sub-task Closed Florin Coras
        65.
        TCP.options : Split SYN/ACK segment to ACK and SYN segments. ACK gets SACK, MSS options Sub-task Closed Florin Coras
        66.
        TCP.options : Split SYN/ACK segment to ACK and SYN segments. ACK gets SACK, WSOPT options Sub-task Closed Florin Coras
        67.
        TCP.options : Split SYN/ACK segment to ACK and SYN segments. ACK gets SACK, WSOPT, MSS options Sub-task Closed Florin Coras
        68.
        TCP.options : Split SYN/ACK segment to ACK and SYN segments. ACK gets TSOPT options Sub-task Closed Florin Coras
        69.
        TCP.options : Split SYN/ACK segment to ACK and SYN segments. ACK gets TSOPT, MSS options Sub-task Closed Florin Coras
        70.
        TCP.options : Split SYN/ACK segment to ACK and SYN segments. ACK gets TSOPT, WSOPT options Sub-task Closed Florin Coras
        71.
        TCP.options : Split SYN/ACK segment to ACK and SYN segments. ACK gets TSOPT, WSOPT, MSS options Sub-task Closed Florin Coras
        72.
        TCP.options : Split SYN/ACK segment to ACK and SYN segments. ACK gets TSOPT, SACK options Sub-task Closed Florin Coras
        73.
        TCP.options : Split SYN/ACK segment to ACK and SYN segments. ACK gets TSOPT, SACK, MSS options Sub-task Closed Florin Coras
        74.
        TCP.options : Split SYN/ACK segment to ACK and SYN segments. ACK gets TSOPT, SACK, WSOPT options Sub-task Closed Florin Coras
        75.
        TCP.options : Split SYN/ACK segment to ACK and SYN segments. ACK gets all options Sub-task Closed Florin Coras
        76.
        TCP.options : Verify non-default MSS option always included Sub-task Closed Florin Coras
        77.
        TCP.options : Verify use of default TCP MSS value Sub-task Closed Florin Coras
        78.
        TCP.options : Append an unkown IPv4 option with length of 4 Sub-task Closed Florin Coras
        79.
        TCP.setup : Coerce initial sequence number to 0x00000000 Sub-task Closed Florin Coras
        80.
        TCP.setup : Coerce initial sequence number to 0x7FFFFFFF Sub-task Closed Florin Coras
        81.
        TCP.setup : Coerce initial sequence number to 0x80000000 Sub-task Closed Florin Coras
        82.
        TCP.setup : Coerce initial sequence number to 0x80000001 Sub-task Closed Florin Coras
        83.
        TCP.setup : Coerce initial sequence number to 0xFFFFFFFE Sub-task Closed Florin Coras
        84.
        TCP.setup : Coerce initial sequence number to 0xFFFFFFFF Sub-task Closed Florin Coras
        85.
        TCP.setup : Coerce initial sequence number to 0x00000000. Add data to SYN segment Sub-task Closed Florin Coras
        86.
        TCP.setup : Coerce initial sequence number to 0x7FFFFFFF. Add data to SYN segment Sub-task Closed Florin Coras
        87.
        TCP.setup : Coerce initial sequence number to 0x80000000. Add data to SYN segment Sub-task Closed Florin Coras
        88.
        TCP.setup : Coerce initial sequence number to 0x80000001. Add data to SYN segment Sub-task Closed Florin Coras
        89.
        TCP.setup : Coerce initial sequence number to 0xFFFFFFFE. Add data to SYN segment Sub-task Closed Florin Coras
        90.
        TCP.setup : Coerce initial sequence number to 0xFFFFFFFF. Add data to SYN segment Sub-task Closed Florin Coras
        91.
        TCP.setup : Remove last 7 bytes from Destination Unreachable ICMP message Sub-task Closed Florin Coras
        92.
        TCP.setup : Set source address in the appended IP header to the localhost address Sub-task Closed Florin Coras
        93.
        TCP.setup : Set the source address in the appended IP header to the broadcast address Sub-task Closed Florin Coras
        94.
        TCP.setup : Set the header length in the appended IP header to zero Sub-task Closed Florin Coras
        95.
        TCP.setup : Set the header length in the appended IP header to one Sub-task Closed Florin Coras
        96.
        TCP.setup : Set the header length in the appended IP header to 4 Sub-task Closed Florin Coras
        97.
        TCP.setup : Validate support for simultaneous listen and connection attempts Sub-task Closed Florin Coras
        98.
        TCP.setup : Verify Jacobson Slow Start algorithm Sub-task Closed Florin Coras
        99.
        TCP.setup : Verify SYN RTO computed same as for data segments Sub-task Closed Florin Coras
        100.
        TCP.setup : Should use recommended initial values and bounds for connection defaults Sub-task Closed Florin Coras
        101.
        TCP.setup : ICMPv4 Source Quench must not trigger slow start Sub-task Closed Florin Coras
        102.
        TCP.setup : Verify SYN-RCVD state remembers last state; passive open Sub-task Closed Florin Coras
        103.
        TCP.checksum : Adjust payload so checksm is -0 and set checksum field to -0 Sub-task Closed Florin Coras
        104.
        TCP.checksum : Adjust payload so checksum is -0 and set checksum field to +0 Sub-task Closed Florin Coras
        105.
        TCP.checksum : Adjust payload so checksum is +1 and set checksum field to +0 Sub-task Closed Florin Coras
        106.
        TCP.checksum : Set checksum field so it contains -1 Sub-task Closed Florin Coras
        107.
        TCP.checksum : Invert the checksum field bit values Sub-task Closed Florin Coras

            florin.coras Florin Coras
            alagalah Keith Burns
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: