AsconfWithZeroChunkLen.seq - ASCONF chunk is received with chunk length set to zero
To check if ASCONF chunk is received with chunk length set to zero then the receiver MUST send ABORT with the error cause set to the error code 'Protocol Violation'.
./AsconfWithZeroChunkLen.seq [-tooloption ...] -pkt ./AsconfWithZeroChunkLen.def -tooloption : v6eval tool option See Also: ../common/STD_PKT_COMMON.def ../common/SCTP_COMMON.def
Association is established between endpoint A and B. Arrange ASCONF in endpoint A such that ASCONF chunk with chunk length set to zero is sent to endpoint B.
Endpoint A Endpoint B ULP (ESTABLISHED) (ESTABLISHED)
ASCONF ----------------> (with chunk length set to zero) <----------------- ABORT (Protocol Violation)
TEST DESCRIPTION:
1. Send ASCONF chunk from endpoint A to B with chunk length set to zero. 2. Check A: ABORT with error code 'Protocol Violation' should be received at endpoint A.
None
RFC 5061
4.1.1. Address Configuration Change Chunk (ASCONF)
This chunk is used to communicate to the remote endpoint one of the configuration change requests that MUST be acknowledged. The information carried in the ASCONF Chunk uses the form of a Type- Length-Value (TLV), as described in "3.2.1 Optional/Variable-length Parameter Format" in [I-D.ietf-tsvwg-2960bis] for all variable parameters. This chunk MUST be sent in an authenticated way by using the mechanism defined in [I-D.ietf-tsvwg-sctp-auth]. If this chunk is received unauthenticated it MUST be silently discarded as described in [I-D.ietf-tsvwg-sctp-auth].
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type = 0xC1 | Chunk Flags | Chunk Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Sequence Number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Address Parameter | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ASCONF Parameter #1 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ \ \ / .... / \ \ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ASCONF Parameter #N | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Sequence Number : 32 bits (unsigned integer)
This value represents a Sequence Number for the ASCONF Chunk. The valid range of Sequence Number is from 0 to 4294967295 (2**32 - 1). Sequence Numbers wrap back to 0 after reaching 4294967295.
Address Parameter : 8 or 20 bytes (depending on the address type)
This field contains an address parameter, either IPv6 or IPv4, from [I-D.ietf-tsvwg-2960bis]. The address is an address of the sender of the ASCONF Chunk, the address MUST be considered part of the association by the peer endpoint (the receiver of the ASCONF Chunk). This field may be used by the receiver of the ASCONF to help in finding the association. If the address 0.0.0.0 or ::0 is provided the receiver MAY lookup the association by other information provided in the packet. This parameter MUST be present in every ASCONF message, i.e. it is a mandatory TLV parameter.
Note: the host name address MUST NOT be sent and MUST be ignored if received in any ASCONF message.
It should be noted that the ASCONF Chunk format requires the receiver to report to the sender if it does not understand the ASCONF Chunk. This is accomplished by setting the upper bits in the chunk type as described in [I-D.ietf-tsvwg-2960bis]. section 3.2. Note that the upper two bits in the ASCONF Chunk are set to one. As defined in [I-D.ietf-tsvwg-2960bis] section 3.2, when setting these upper bits in this manner the receiver that does not understand this chunk MUST skip the chunk and continue processing, and report in an Operation Error Chunk using the 'Unrecognized Chunk Type' cause of error. This will NOT abort the association but indicates to the sender that it MUST not send any further ASCONF chunks.
ASCONF Parameter: TLV format
Each Address configuration change is represented by a TLV parameter as defined in Section 4.2. One or more requests may be present in an ASCONF Chunk.