SackWithBadTag.seq - SACK chunk is received with invalid Verification Tag
To check that if SACK chunk is received with invalid Verification Tag, the endpoint should silently discard the packet.
./SackWithBadTag.seq [-tooloption ...] -pkt ./SackWithBadTag.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 data in endpoint A such that SACK chunk with invalid Verification Tag is sent to endpoint B.
Endpoint A Endpoint B ULP (ESTABLISHED) (ESTABLISHED)
<------------------ DATA
SACK ------------------> Silently discard (with invalid Verification Tag) <------------------ DATA (retransmit)
SACK ------------------>
TEST DESCRIPTION:
1. Send DATA from endpoint B to endpoint A. Send SACK message (in response to DATA) with verification tag value different from received in DATA. Record the message sequence using a signal emulator. 2. Check A: SACK message is silently discarded. 3. Check B: Was the message sequence as above.
None
RFC 4960
8.5. Verification Tag
The Verification Tag rules defined in this section apply when sending or receiving SCTP packets that do not contain an INIT, SHUTDOWN COMPLETE, COOKIE ECHO (see Section 5.1), ABORT, or SHUTDOWN ACK chunk. The rules for sending and receiving SCTP packets containing one of these chunk types are discussed separately in Section 8.5.1.
When sending an SCTP packet, the endpoint MUST fill in the Verification Tag field of the outbound packet with the tag value in the Initiate Tag parameter of the INIT or INIT ACK received from its peer.
When receiving an SCTP packet, the endpoint MUST ensure that the value in the Verification Tag field of the received SCTP packet matches its own tag. If the received Verification Tag value does not match the receiver's own tag value, the receiver shall silently discard the packet and shall not process it any further except for those cases listed in Section 8.5.1 below.