From fb346668f4d324578cbd5760e464820187dd90b9 Mon Sep 17 00:00:00 2001 From: hoelscher <jens.hoelscher@fh-muenster.de> Date: Sat, 31 Oct 2015 05:58:56 +0100 Subject: [PATCH] add testcases --- .../sctp_notifications_stopped_event.pkt | 17 ++++++++++++++ .../tests/bsd/sctp/sendmsg_init.pkt | 22 +++++++++++++++++++ 2 files changed, 39 insertions(+) create mode 100644 gtests/net/packetdrill/tests/bsd/sctp/notifications/sctp_notifications_stopped_event.pkt create mode 100644 gtests/net/packetdrill/tests/bsd/sctp/sendmsg_init.pkt diff --git a/gtests/net/packetdrill/tests/bsd/sctp/notifications/sctp_notifications_stopped_event.pkt b/gtests/net/packetdrill/tests/bsd/sctp/notifications/sctp_notifications_stopped_event.pkt new file mode 100644 index 00000000..6adecb8f --- /dev/null +++ b/gtests/net/packetdrill/tests/bsd/sctp/notifications/sctp_notifications_stopped_event.pkt @@ -0,0 +1,17 @@ ++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 setsockopt(3, IPPROTO_SCTP, SCTP_EVENT, {se_type=SCTP_ADAPTATION_INDICATION, se_on=1}, 8) = 0 ++0.0 getsockopt(3, IPPROTO_SCTP, SCTP_EVENT, {se_type=SCTP_ADAPTATION_INDICATION, se_on=1}, [8]) = 0 ++0.0 setsockopt(3, IPPROTO_SCTP, SCTP_EVENT, {se_type=SCTP_NOTIFICATIONS_STOPPED_EVENT, se_on=1}, 8) = 0 + ++0.0 > sctp: INIT[flgs=0, tag=1, a_rwnd=..., os=..., is=..., tsn=1, ...] ++0.1 < sctp: INIT_ACK[flgs=0, tag=2, a_rwnd=1500, os=1, is=1, tsn=1, STATE_COOKIE[len=4, val=...]] ++0.0 > sctp: COOKIE_ECHO[flgs=0, len=4, val=...] ++0.1 < sctp: COOKIE_ACK[flgs=0] +// No implementation provides this messages, so it can't be tested +// as discribed in rfc, create an notification storm so that the implementation disable notifications ++0.0 sctp_recvv(3, [{iov_base={sn_type=SCTP_NOTIFICATIONS_STOPPED_EVENT, sn_flags=0, sn_length=8}, iov_len=1000}], 1, +..., 20, NULL, [0], [SCTP_RECVV_NOINFO],[MSG_NOTIFICATION|MSG_EOR]) = 21 diff --git a/gtests/net/packetdrill/tests/bsd/sctp/sendmsg_init.pkt b/gtests/net/packetdrill/tests/bsd/sctp/sendmsg_init.pkt new file mode 100644 index 00000000..a4e6d984 --- /dev/null +++ b/gtests/net/packetdrill/tests/bsd/sctp/sendmsg_init.pkt @@ -0,0 +1,22 @@ + ++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 ++0.0 bind(3, ..., ...) = 0 +// Check the handshake with an empty(!) cookie + ++1.0 sendmsg(3, {msg_name(...)=..., msg_iov(1)=[{iov_base=..., iov_len=1000}], msg_control(64)= + [{cmsg_len=20, cmsg_level=IPPROTO_SCTP, cmsg_type=SCTP_INIT, cmsg_data= + {sinit_num_ostreams=1, sinit_max_instreams=1, sinit_max_attempts=1, sinit_max_init_timeo=100} + },{cmsg_len=28, cmsg_level=IPPROTO_SCTP, cmsg_type=SCTP_SNDINFO, cmsg_data= + {snd_sid=2, snd_flags=0, snd_ppid=htonl(4), snd_context=2, snd_assoc_id=0} + },{cmsg_len=16, cmsg_level=IPPROTO_SCTP, cmsg_type=SCTP_DSTADDRV4, cmsg_data= + {sa_family=AF_INET, sin_port=htons(8080), sin_addr=inet_addr("192.0.2.1")} + }], + msg_flags=0}, 0) = 1000 + ++0.0 > sctp: INIT[flgs=0, tag=1, a_rwnd=..., os=..., is=..., tsn=1, ...] ++0.1 < sctp: INIT_ACK[flgs=0, tag=2, a_rwnd=1500, os=16, is=16, tsn=1, STATE_COOKIE[len=4, val=...]] ++0.0 > sctp: COOKIE_ECHO[flgs=0, len=4, val=...]; DATA[flgs=BE, len=1016, tsn=1, sid=2, ssn=0, ppid=4] ++0.1 < sctp: COOKIE_ACK[flgs=0]; SACK[flgs=0, cum_tsn=1, a_rwnd=1500, gaps=[], dups=[]] + -- GitLab