CookieEchoExpired.seq - COOKIE-ECHO chunk is received with life time expired
To check that if a COOKIE-ECHO chunk is sent with life time expired
then the endpoind should response it with an ERROR message and error
cause is set to Stale Cookie Error.
./CookieEchoExpired.seq [-tooloption ...] -pkt ./CookieEchoExpired.def
-tooloption : v6eval tool option
See Also: ../common/STD_PKT_COMMON.def
../common/SCTP_COMMON.def
Association is not established between endpoint A and B. Arrange data
in endpoint A such that COOKIE-ECHO chunk with life time expired is
sent to endpoint B.
Endpoint A Endpoint B ULP
(CLOSED) (CLOSED)
INIT ----------------->
(with Cookie Preservative Parameter)
<----------------- INIT-ACK
COOKIE-ECHO ----------------->
(life time expired)
<----------------- ERROR
(Stale Cookie Error)
TEST DESCRIPTION:
1. Send COOKIE-ECHO chunk from endpoint A to B with life time
expired.
2. Check A: ERROR should be received at endpoint A.
3. Check B: Error cause in ERROR is set to "Stale Cookie Error".
None
RFC 4960
5.1.5. State Cookie Authentication
When an endpoint receives a COOKIE ECHO chunk from another endpoint
with which it has no association, it shall take the following
actions:
1) Compute a MAC using the TCB data carried in the State Cookie and
the secret key (note the timestamp in the State Cookie MAY be
used to determine which secret key to use). [RFC2104] can be
used as a guideline for generating the MAC,
2) Authenticate the State Cookie as one that it previously generated
by comparing the computed MAC against the one carried in the
State Cookie. If this comparison fails, the SCTP packet,
including the COOKIE ECHO and any DATA chunks, should be silently
discarded,
3) Compare the port numbers and the Verification Tag contained
within the COOKIE ECHO chunk to the actual port numbers and the
Verification Tag within the SCTP common header of the received
packet. If these values do not match, the packet MUST be
silently discarded.
4) Compare the creation timestamp in the State Cookie to the current
local time. If the elapsed time is longer than the lifespan
carried in the State Cookie, then the packet, including the
COOKIE ECHO and any attached DATA chunks, SHOULD be discarded,
and the endpoint MUST transmit an ERROR chunk with a "Stale
Cookie" error cause to the peer endpoint.
5) If the State Cookie is valid, create an association to the sender
of the COOKIE ECHO chunk with the information in the TCB data
carried in the COOKIE ECHO and enter the ESTABLISHED state.
6) Send a COOKIE ACK chunk to the peer acknowledging receipt of the
COOKIE ECHO. The COOKIE ACK MAY be bundled with an outbound DATA
chunk or SACK chunk; however, the COOKIE ACK MUST be the first
chunk in the SCTP packet.
7) Immediately acknowledge any DATA chunk bundled with the COOKIE
ECHO with a SACK (subsequent DATA chunk acknowledgement should
follow the rules defined in Section 6.2). As mentioned in step
6, if the SACK is bundled with the COOKIE ACK, the COOKIE ACK
MUST appear first in the SCTP packet.
If a COOKIE ECHO is received from an endpoint with which the receiver
of the COOKIE ECHO has an existing association, the procedures in
Section 5.2 should be followed.