From 010a5f996d65c87ebbe20fd60c1536e8a7bf3777 Mon Sep 17 00:00:00 2001 From: Michael Tuexen <tuexen@bsd15.fh-muenster.de> Date: Thu, 23 Jun 2016 09:31:47 +0200 Subject: [PATCH] Add a test for handling ICMP protocol unreachable. --- .../sctp/sctp_icmp_protocol_unreachable.pkt | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 gtests/net/packetdrill/tests/bsd/sctp/sctp_icmp_protocol_unreachable.pkt diff --git a/gtests/net/packetdrill/tests/bsd/sctp/sctp_icmp_protocol_unreachable.pkt b/gtests/net/packetdrill/tests/bsd/sctp/sctp_icmp_protocol_unreachable.pkt new file mode 100644 index 00000000..8b930347 --- /dev/null +++ b/gtests/net/packetdrill/tests/bsd/sctp/sctp_icmp_protocol_unreachable.pkt @@ -0,0 +1,19 @@ +// Create a non-blocking socket. ++0.0 socket(..., SOCK_STREAM, IPPROTO_SCTP) = 3 ++0.0 fcntl(3, F_GETFL) = 0x2 (flags O_RDWR) ++0.0 fcntl(3, F_SETFL, O_RDWR|O_NONBLOCK) = 0 +// Check the handshake with an empty(!) cookie. ++0.1 connect(3, ..., ...) = -1 EINPROGRESS (Operation now in progress) ++0.0 > sctp: INIT[flgs=0, tag=1, a_rwnd=..., os=..., is=..., tsn=0, ...] ++0.1 < sctp: INIT_ACK[flgs=0, tag=2, a_rwnd=4500, os=1, is =1, tsn=3, STATE_COOKIE[len=4, val=...]] ++0.0 > sctp: COOKIE_ECHO[flgs=0, len=4, val=...] ++0.1 < sctp: COOKIE_ACK[flgs=0] ++0.0 getsockopt(3, SOL_SOCKET, SO_ERROR, [0], [4]) = 0 +//+0.5 shutdown(3, SHUT_WR) = 0 ++0.5 close(3) = 0 ++0.0 > sctp: SHUTDOWN[flgs=0, cum_tsn=2] +// Protocol stack goes away at the peer ++0.0 < [sctp(2)] icmp unreachable protocol_unreachable +// Test if the association is gone ++0.5 < sctp: HEARTBEAT[flgs=0, HEARTBEAT_INFORMATION[len=9, val=...]] ++0.0 > sctp: ABORT[flgs=T] -- GitLab