NAME

  InitStreamMismatch.seq - INIT chunk is received with mismatch in the Outbound Stream and Inbound Stream parameters


PURPOSE

  To check that if INIT chunk is received with mismatch in the Outbound Stream
  and Inbound Stream parameters then the endpoint should settle with minimum of
  the two parameters.


SYNOPSIS

  ./InitStreamMismatch.seq [-tooloption ...] -pkt ./InitStreamMismatch.def
    -tooloption : v6eval tool option
  See Also: ../common/STD_PKT_COMMON.def
            ../common/SCTP_COMMON.def


PRE-TEST CONDITION

  Association is not established between endpoint A and B. Also let the OS
  of B is Z. Arrange data in endpoint A such that INIT message is sent from
  endpoint A with MIS Y<Z.


TEST PROCEDURE

  Endpoint A                           Endpoint B                ULP
  (ESTABLISHED)                        (ESTABLISHED)
  INIT          ----------------->
  (OS = X, MIS = Y)
                <-----------------      INIT-ACK
                                        (OS = Z, MIS = X, Z > Y)
  COOKIE-ECHO   ----------------->
                <-----------------      COOKIE-ACK
  TEST DESCRIPTION:
  1. Attempt to initiate an association from endpoint A to B. Send INIT 
     message with Maximal Inbound stream parameter less than the Outbound 
     Stream of B. 
     Record the message sequence using a signal emulator.
  2. Check A: Either the association is aborted or INIT-ACK is received 
     with Outbound stream parameter equal to the MIS received in INIT. 
  3. Check B: Range of OS Stream id in endpoint B and MIS stream id in 
     endpoint A is 0 to Y-1.
  4. Check C: Was the message sequence as above.


NOTE

  Association may be aborted in this case.


REFERENCE

  RFC 4960
  5.1.1.  Handle Stream Parameters
    In the INIT and INIT ACK chunks, the sender of the chunk MUST
    indicate the number of outbound streams (OSs) it wishes to have in
    the association, as well as the maximum inbound streams (MISs) it
    will accept from the other endpoint.
    After receiving the stream configuration information from the other
    side, each endpoint MUST perform the following check: If the peer's
    MIS is less than the endpoint's OS, meaning that the peer is
    incapable of supporting all the outbound streams the endpoint wants
    to configure, the endpoint MUST use MIS outbound streams and MAY
    report any shortage to the upper layer.  The upper layer can then
    choose to abort the association if the resource shortage is
    unacceptable.
    After the association is initialized, the valid outbound stream
    identifier range for either endpoint shall be 0 to min(local OS,
    remote MIS)-1.