From 2024bd0e8867f4f0e2a4561b570259cf3058f7b9 Mon Sep 17 00:00:00 2001
From: Michael Tuexen <tuexen@fh-muenster.de>
Date: Sat, 16 May 2015 13:13:45 +0200
Subject: [PATCH] Add simple HEARTBEAT test.

This test is used to test the injecting of correct HEARTBEAT-ACK
chunks for outbound HEARTBEAT chunks.
---
 .../packetdrill/tests/bsd/sctp/sctp_hb.pkt    | 21 +++++++++++++++++++
 1 file changed, 21 insertions(+)
 create mode 100644 gtests/net/packetdrill/tests/bsd/sctp/sctp_hb.pkt

diff --git a/gtests/net/packetdrill/tests/bsd/sctp/sctp_hb.pkt b/gtests/net/packetdrill/tests/bsd/sctp/sctp_hb.pkt
new file mode 100644
index 00000000..0869034e
--- /dev/null
+++ b/gtests/net/packetdrill/tests/bsd/sctp/sctp_hb.pkt
@@ -0,0 +1,21 @@
+ 0.0 `sysctl -w net.inet.sctp.heartbeat_interval=100`
+// First, actively establish an SCTP assocation
++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.1 connect(3, ..., ...) = -1 EINPROGRESS (Operation now in progress)
++0.0 > sctp: INIT[tag=1 tsn=1]                            // FIXME
++0.0 < sctp: INIT_ACK[tag=2 a_rwnd=1500 os=1 is =1 tsn=1] // FIXME 
++0.0 > sctp: COOKIE_ECHO[]                                // FIXME 
++0.0 < sctp: COOKIE_ACK[]
++0.0 getsockopt(3, SOL_SOCKET, SO_ERROR, [0], [4]) = 0
+// then respond to two HEARTBEATs
+ *   > sctp: HEARTBEAT[]
++0.0 < sctp: HEARTBEAT_ACK[]
+ *   > sctp: HEARTBEAT[]
++0.0 < sctp: HEARTBEAT_ACK[]
+// and finally perform a graceful shutdown
++0.0 close(3) = 0
++0.0 > sctp: SHUTDOWN[tsn=0]
++0.0 < sctp: SHUTDOWN_ACK[]
++0.0 > sctp: SHUTDOWN_COMPLETE[]
-- 
GitLab