From d90ae251fccbe5721b4de83f518c62b3dd0fde05 Mon Sep 17 00:00:00 2001
From: hoelscher <jens.hoelscher@fh-muenster.de>
Date: Fri, 27 Nov 2015 13:01:47 +0100
Subject: [PATCH] modify tests for tests without assoc_id in cmsgs

---
 gtests/net/packetdrill/parser.y               |  2 +-
 .../api_tests/cmsgs/recvmsg_sctp_extrcv.pkt   | 22 ++++++
 .../api_tests/cmsgs/recvmsg_sctp_nxtinfo.pkt  | 29 +++++++-
 .../api_tests/cmsgs/recvmsg_sctp_rcvinfo.pkt  | 67 +++++++------------
 .../api_tests/cmsgs/recvmsg_sctp_sndrcv.pkt   | 17 +++++
 .../api_tests/cmsgs/sendmsg_sctp_sndinfo.pkt  | 13 ++++
 .../api_tests/cmsgs/sendmsg_sctp_sndrcv.pkt   | 24 +++++++
 .../api_tests/getsockopt/sctp_associnfo.pkt   | 11 +++
 .../getsockopt/sctp_auth_active_key.pkt       |  3 +
 .../getsockopt/sctp_auth_deactivate_key.pkt   |  1 +
 .../getsockopt/sctp_auth_delete_key.pkt       |  1 +
 .../api_tests/getsockopt/sctp_auth_key.pkt    |  1 +
 .../api_tests/getsockopt/sctp_context.pkt     |  3 +
 .../getsockopt/sctp_default_prinfo.pkt        |  5 ++
 .../getsockopt/sctp_default_send_param.pkt    | 17 +++++
 .../getsockopt/sctp_delayed_sack.pkt          |  3 +
 .../sctp/api_tests/getsockopt/sctp_event.pkt  |  3 +
 .../getsockopt/sctp_get_peer_addr_info.pkt    | 17 +++++
 .../getsockopt/sctp_local_auth_chunks.pkt     |  3 +
 .../api_tests/getsockopt/sctp_max_burst.pkt   |  3 +
 .../sctp/api_tests/getsockopt/sctp_maxseg.pkt |  3 +
 .../getsockopt/sctp_peer_addr_params.pkt      | 21 ++++++
 .../getsockopt/sctp_peer_auth_chunks.pkt      |  1 +
 .../getsockopt/sctp_primary_addr.pkt          |  7 ++
 .../api_tests/getsockopt/sctp_rtoinfo.pkt     |  7 ++
 .../getsockopt/sctp_set_peer_primary_addr.pkt |  1 +
 .../sctp/api_tests/getsockopt/sctp_status.pkt | 26 +++++++
 .../sctp/api_tests/sctp_send/sctp_send_1.pkt  | 12 +++-
 .../sctp/api_tests/sctp_sendv/sctp_sendv.pkt  | 19 ++++++
 .../api_tests/sctp_sendv/sctp_sendv_6.pkt     | 15 ++++-
 .../api_tests/sctp_sendv/sctp_sendv_7.pkt     |  7 ++
 31 files changed, 315 insertions(+), 49 deletions(-)

diff --git a/gtests/net/packetdrill/parser.y b/gtests/net/packetdrill/parser.y
index 569c9be5..7437bc1e 100644
--- a/gtests/net/packetdrill/parser.y
+++ b/gtests/net/packetdrill/parser.y
@@ -3578,7 +3578,7 @@ sctp_sndrcvinfo
 	$$->value.sctp_sndrcvinfo->sinfo_timetolive = $12;
 	$$->value.sctp_sndrcvinfo->sinfo_tsn = $14;
 	$$->value.sctp_sndrcvinfo->sinfo_cumtsn = $16;
-	$$->value.sctp_sndrcvinfo->sinfo_assoc_id = new_expression(EXPR_ELLIPSIS);
+	$$->value.sctp_sndrcvinfo->sinfo_assoc_id = new_integer_expression(0, "%u");
 };
 
 sinfo_pr_value
diff --git a/gtests/net/packetdrill/tests/bsd/sctp/api_tests/cmsgs/recvmsg_sctp_extrcv.pkt b/gtests/net/packetdrill/tests/bsd/sctp/api_tests/cmsgs/recvmsg_sctp_extrcv.pkt
index 68bf57d0..3609bc31 100644
--- a/gtests/net/packetdrill/tests/bsd/sctp/api_tests/cmsgs/recvmsg_sctp_extrcv.pkt
+++ b/gtests/net/packetdrill/tests/bsd/sctp/api_tests/cmsgs/recvmsg_sctp_extrcv.pkt
@@ -84,3 +84,25 @@
                                                serinfo_next_ppid=htonl(9879),
                                                sinfo_assoc_id=...}}],
                  msg_flags=MSG_EOR}, 0) = 1000
+
++0.0 < sctp: DATA[flgs=IUBE, len=1016, tsn=4, sid=2, ssn=0, ppid=9880]
+*    > sctp: SACK[flgs=0, cum_tsn=4, a_rwnd=..., gaps=[], dups=[]]
++0.0 recvmsg(3, {msg_name(...)=...,
+                 msg_iov(1)=[{iov_base=..., iov_len=1000}],
+                 msg_control(140)=[{cmsg_len=140,
+                                    cmsg_level=IPPROTO_SCTP,
+                                    cmsg_type=SCTP_EXTRCV,
+                                    cmsg_data={sinfo_stream=1,
+                                               sinfo_ssn=0,
+                                               sinfo_flags=SCTP_UNORDERED,
+                                               sinfo_ppid=htonl(9879),
+                                               sinfo_context=0,
+                                               sinfo_pr_value=0,
+                                               sinfo_tsn=3,
+                                               sinfo_cumtsn=4,
+                                               serinfo_next_flags=SCTP_NEXT_MSG_AVAIL|SCTP_NEXT_MSG_ISCOMPLETE|SCTP_NEXT_MSG_IS_UNORDERED,
+                                               serinfo_next_stream=2,
+                                               serinfo_next_aid=...,
+                                               serinfo_next_length=1000,
+                                               serinfo_next_ppid=htonl(9880)}}],
+                 msg_flags=MSG_EOR}, 0) = 1000
diff --git a/gtests/net/packetdrill/tests/bsd/sctp/api_tests/cmsgs/recvmsg_sctp_nxtinfo.pkt b/gtests/net/packetdrill/tests/bsd/sctp/api_tests/cmsgs/recvmsg_sctp_nxtinfo.pkt
index 79f40793..aaea9f59 100644
--- a/gtests/net/packetdrill/tests/bsd/sctp/api_tests/cmsgs/recvmsg_sctp_nxtinfo.pkt
+++ b/gtests/net/packetdrill/tests/bsd/sctp/api_tests/cmsgs/recvmsg_sctp_nxtinfo.pkt
@@ -56,7 +56,7 @@
                                               rcv_tsn=2,
                                               rcv_cumtsn=3,
                                               rcv_context=0,
-                                              rcv_assoc_id=...}},
+					      rcv_assoc_id=3}},
                                   {cmsg_len=28,
                                    cmsg_level=IPPROTO_SCTP,
                                    cmsg_type=SCTP_NXTINFO,
@@ -64,5 +64,30 @@
                                                nxt_flags=SCTP_UNORDERED|SCTP_COMPLETE,
                                                nxt_ppid=htonl(9876),
                                                nxt_length=1000,
-                                               nxt_assoc_id=...}}],
+					       nxt_assoc_id=3}}],
+                 msg_flags=MSG_EOR}, 0) = 1000
+
++0.0 setsockopt(3, IPPROTO_SCTP, SCTP_RECVRCVINFO, [1], 4) = 0
++0.0 setsockopt(3, IPPROTO_SCTP, SCTP_RECVNXTINFO, [1], 4) = 0
++0.0 < sctp: DATA[flgs=IUBE, len=1016, tsn=4, sid=0, ssn=0, ppid=9876]
+*    > sctp: SACK[flgs=0, cum_tsn=4, a_rwnd=..., gaps=[], dups=[]]
++0.0 recvmsg(3, {msg_name(...)=...,
+                 msg_iov(1)=[{iov_base=..., iov_len=1000}],
+                 msg_control(68)=[{cmsg_len=40,
+                                   cmsg_level=IPPROTO_SCTP,
+                                   cmsg_type=SCTP_RCVINFO,
+                                   cmsg_data={rcv_sid=0,
+                                              rcv_ssn=0,
+                                              rcv_flags=SCTP_UNORDERED,
+                                              rcv_ppid=htonl(9876),
+                                              rcv_tsn=3,
+                                              rcv_cumtsn=4,
+                                              rcv_context=0}},
+                                  {cmsg_len=28,
+                                   cmsg_level=IPPROTO_SCTP,
+                                   cmsg_type=SCTP_NXTINFO,
+                                   cmsg_data= {nxt_sid=0,
+                                               nxt_flags=SCTP_UNORDERED|SCTP_COMPLETE,
+                                               nxt_ppid=htonl(9876),
+                                               nxt_length=1000}}],
                  msg_flags=MSG_EOR}, 0) = 1000
diff --git a/gtests/net/packetdrill/tests/bsd/sctp/api_tests/cmsgs/recvmsg_sctp_rcvinfo.pkt b/gtests/net/packetdrill/tests/bsd/sctp/api_tests/cmsgs/recvmsg_sctp_rcvinfo.pkt
index bf449475..9d19a020 100644
--- a/gtests/net/packetdrill/tests/bsd/sctp/api_tests/cmsgs/recvmsg_sctp_rcvinfo.pkt
+++ b/gtests/net/packetdrill/tests/bsd/sctp/api_tests/cmsgs/recvmsg_sctp_rcvinfo.pkt
@@ -119,50 +119,31 @@
                                                sinfo_cumtsn=5,
                                                sinfo_assoc_id=...}}],
                  msg_flags=MSG_EOR}, 0) = 1000
-+0.0 setsockopt(3, IPPROTO_SCTP, SCTP_USE_EXT_RCVINFO, [1], 4) = 0
-+0.0 < sctp: DATA[flgs=IBE, len=1016, tsn=6, sid=0, ssn=3, ppid=9877]
+
++0.0 setsockopt(3, IPPROTO_SCTP, SCTP_RECVRCVINFO, [1], 4) = 0
++0.0 setsockopt(3, IPPROTO_SCTP, SCTP_RECVNXTINFO, [0], 4) = 0
++0.0 setsockopt(3, IPPROTO_SCTP, SCTP_EVENTS, {sctp_data_io_event=0,
+                                               sctp_association_event=0,
+                                               sctp_address_event=0,
+                                               sctp_send_failure_event=0,
+                                               sctp_peer_error_event=0,
+                                               sctp_shutdown_event=0,
+                                               sctp_partial_delivery_event=0,
+                                               sctp_adaptation_layer_event=0,
+                                               sctp_authentication_event=0,
+                                               sctp_sender_dry_event=0}, 11) = 0
++0.0 < sctp: DATA[flgs=IUBE, len=1016, tsn=6, sid=0, ssn=0, ppid=9876]
 *    > sctp: SACK[flgs=0, cum_tsn=6, a_rwnd=..., gaps=[], dups=[]]
 +0.0 recvmsg(3, {msg_name(...)=...,
                  msg_iov(1)=[{iov_base=..., iov_len=1000}],
-                 msg_control(140)=[{cmsg_len=140,
-                                    cmsg_level=IPPROTO_SCTP,
-                                    cmsg_type=SCTP_EXTRCV,
-                                    cmsg_data={sinfo_stream=0,
-                                               sinfo_ssn=3,
-                                               sinfo_flags=0,
-                                               sinfo_ppid=htonl(9877),
-                                               sinfo_context=0,
-                                               sinfo_pr_value=0,
-                                               sinfo_tsn=6,
-                                               sinfo_cumtsn=6,
-                                               serinfo_next_flags=0,
-                                               serinfo_next_stream=0,
-                                               serinfo_next_aid=0,
-                                               serinfo_next_length=0,
-                                               serinfo_next_ppid=htonl(0),
-                                               sinfo_assoc_id=...}}],
-                 msg_flags=MSG_EOR}, 0) = 1000
-+0.0 < sctp: DATA[flgs=IBE, len=1016, tsn=7, sid=0, ssn=4, ppid=9878]
-*    > sctp: SACK[flgs=0, cum_tsn=7, a_rwnd=..., gaps=[], dups=[]]
-+0.0 < sctp: DATA[flgs=IUBE, len=1016, tsn=8, sid=1, ssn=0, ppid=9879]
-*    > sctp: SACK[flgs=0, cum_tsn=8, a_rwnd=..., gaps=[], dups=[]]
-+0.0 recvmsg(3, {msg_name(...)=...,
-                 msg_iov(1)=[{iov_base=..., iov_len=1000}],
-                 msg_control(140)=[{cmsg_len=140,
-                                    cmsg_level=IPPROTO_SCTP,
-                                    cmsg_type=SCTP_EXTRCV,
-                                    cmsg_data={sinfo_stream=0,
-                                               sinfo_ssn=4,
-                                               sinfo_flags=0,
-                                               sinfo_ppid=htonl(9878),
-                                               sinfo_context=0,
-                                               sinfo_pr_value=0,
-                                               sinfo_tsn=7,
-                                               sinfo_cumtsn=8,
-                                               serinfo_next_flags=SCTP_NEXT_MSG_AVAIL|SCTP_NEXT_MSG_ISCOMPLETE|SCTP_NEXT_MSG_IS_UNORDERED,
-                                               serinfo_next_stream=1,
-                                               serinfo_next_aid=...,
-                                               serinfo_next_length=1000,
-                                               serinfo_next_ppid=htonl(9879),
-                                               sinfo_assoc_id=...}}],
+                 msg_control(40)=[{cmsg_len=40,
+                                   cmsg_level=IPPROTO_SCTP,
+                                   cmsg_type=SCTP_RCVINFO,
+                                   cmsg_data={rcv_sid=0,
+                                              rcv_ssn=0,
+                                              rcv_flags=SCTP_UNORDERED,
+                                              rcv_ppid=htonl(9876),
+                                              rcv_tsn=6,
+                                              rcv_cumtsn=6,
+                                              rcv_context=0}}],
                  msg_flags=MSG_EOR}, 0) = 1000
diff --git a/gtests/net/packetdrill/tests/bsd/sctp/api_tests/cmsgs/recvmsg_sctp_sndrcv.pkt b/gtests/net/packetdrill/tests/bsd/sctp/api_tests/cmsgs/recvmsg_sctp_sndrcv.pkt
index a07716e5..3e1c7fc7 100644
--- a/gtests/net/packetdrill/tests/bsd/sctp/api_tests/cmsgs/recvmsg_sctp_sndrcv.pkt
+++ b/gtests/net/packetdrill/tests/bsd/sctp/api_tests/cmsgs/recvmsg_sctp_sndrcv.pkt
@@ -70,3 +70,20 @@
                                                sinfo_cumtsn=2,
                                                sinfo_assoc_id=...}}],
                  msg_flags=MSG_EOR}, 0) = 1000
+
++0.0 < sctp: DATA[flgs=IUBE, len=1016, tsn=3, sid=0, ssn=2, ppid=9879]
+*    > sctp: SACK[flgs=0, cum_tsn=3, a_rwnd=..., gaps=[], dups=[]]
++0.0 recvmsg(3, {msg_name(...)=...,
+                 msg_iov(1)=[{iov_base=..., iov_len=1000}],
+                 msg_control(140)=[{cmsg_len=140,
+                                    cmsg_level=IPPROTO_SCTP,
+                                    cmsg_type=SCTP_SNDRCV,
+                                    cmsg_data={sinfo_stream=0,
+                                               sinfo_ssn=2,
+                                               sinfo_flags=SCTP_UNORDERED,
+                                               sinfo_ppid=htonl(9879),
+                                               sinfo_context=0,
+                                               sinfo_timetolive=0,
+                                               sinfo_tsn=3,
+                                               sinfo_cumtsn=3}}],
+                 msg_flags=MSG_EOR}, 0) = 1000
diff --git a/gtests/net/packetdrill/tests/bsd/sctp/api_tests/cmsgs/sendmsg_sctp_sndinfo.pkt b/gtests/net/packetdrill/tests/bsd/sctp/api_tests/cmsgs/sendmsg_sctp_sndinfo.pkt
index b0ec2423..b773b1b2 100644
--- a/gtests/net/packetdrill/tests/bsd/sctp/api_tests/cmsgs/sendmsg_sctp_sndinfo.pkt
+++ b/gtests/net/packetdrill/tests/bsd/sctp/api_tests/cmsgs/sendmsg_sctp_sndinfo.pkt
@@ -66,6 +66,19 @@
 *    > sctp: DATA[flgs=BE, len=1016, tsn=3, sid=3, ssn=0, ppid=32]
 +0.0 < sctp: SACK[flgs=0, cum_tsn=3, a_rwnd=1500, gaps=[], dups=[]]
 
++0.0 sendmsg(3, {msg_name(...)=...,
+		 msg_iov(1)=[{iov_base=..., iov_len=1000}],
+		 msg_control(28)=[{cmsg_len=28,
+				   cmsg_level=IPPROTO_SCTP,
+				   cmsg_type=SCTP_SNDINFO,
+				   cmsg_data={snd_sid=4,
+					      snd_flags=0,
+					      snd_ppid=htonl(33),
+					      snd_context=2}}],
+		 msg_flags=0}, 0) = 1000
+*    > sctp: DATA[flgs=BE, len=1016, tsn=4, sid=4, ssn=0, ppid=33]
++0.0 < sctp: SACK[flgs=0, cum_tsn=4, a_rwnd=1500, gaps=[], dups=[]]
+
 
 
 +0.0 close(3) = 0
diff --git a/gtests/net/packetdrill/tests/bsd/sctp/api_tests/cmsgs/sendmsg_sctp_sndrcv.pkt b/gtests/net/packetdrill/tests/bsd/sctp/api_tests/cmsgs/sendmsg_sctp_sndrcv.pkt
index 983b51e7..4485ccf4 100644
--- a/gtests/net/packetdrill/tests/bsd/sctp/api_tests/cmsgs/sendmsg_sctp_sndrcv.pkt
+++ b/gtests/net/packetdrill/tests/bsd/sctp/api_tests/cmsgs/sendmsg_sctp_sndrcv.pkt
@@ -94,6 +94,30 @@
 *    > sctp: DATA[flgs=BE, len=1016, tsn=3, sid=3, ssn=2, ppid=7]
 +0.0 < sctp: SACK[flgs=0, cum_tsn=3, a_rwnd=1500, gaps=[], dups=[]]
 
++0.0 sendmsg(3, {msg_name(...)=...,
+		 msg_iov(1)=[{iov_base=..., iov_len=1000}],
+		 msg_control(168)=[{cmsg_len=28,
+				    cmsg_level=IPPROTO_SCTP,
+				    cmsg_type=SCTP_SNDINFO,
+				    cmsg_data={snd_sid=2,
+					       snd_flags=0,
+					       snd_ppid=htonl(6),
+					       snd_context=2}},
+				   {cmsg_len=140,
+				    cmsg_level=IPPROTO_SCTP,
+				    cmsg_type=SCTP_SNDRCV,
+				    cmsg_data={sinfo_stream=3,
+					       sinfo_ssn=3,
+					       sinfo_flags=0,
+					       sinfo_ppid=htonl(7),
+					       sinfo_context=0,
+					       sinfo_timetolive=0,
+					       sinfo_tsn=...,
+					       sinfo_cumtsn=...}}],
+		msg_flags=0}, 0) = 1000
+*    > sctp: DATA[flgs=BE, len=1016, tsn=4, sid=3, ssn=3, ppid=7]
++0.0 < sctp: SACK[flgs=0, cum_tsn=4, a_rwnd=1500, gaps=[], dups=[]]
+
 +0.0 close(3) = 0
 +0.0 > sctp: SHUTDOWN[flgs=0, cum_tsn=0]
 +0.1 < sctp: SHUTDOWN_ACK[flgs=0]
diff --git a/gtests/net/packetdrill/tests/bsd/sctp/api_tests/getsockopt/sctp_associnfo.pkt b/gtests/net/packetdrill/tests/bsd/sctp/api_tests/getsockopt/sctp_associnfo.pkt
index 9611b2fe..114342a0 100644
--- a/gtests/net/packetdrill/tests/bsd/sctp/api_tests/getsockopt/sctp_associnfo.pkt
+++ b/gtests/net/packetdrill/tests/bsd/sctp/api_tests/getsockopt/sctp_associnfo.pkt
@@ -40,5 +40,16 @@
 						sasoc_peer_rwnd=...,
 						sasoc_local_rwnd=...,
 						sasoc_cookie_life=...}, [20]) = 0
+//now test structure without associd
++0 setsockopt(3, IPPROTO_SCTP, SCTP_ASSOCINFO, {sasoc_asocmaxrxt=5,
+						sasoc_number_peer_destinations=2,
+						sasoc_peer_rwnd=1800,
+						sasoc_local_rwnd=2000,
+						sasoc_cookie_life=40000}, 20) = 0
++0 getsockopt(3, IPPROTO_SCTP, SCTP_ASSOCINFO, {sasoc_asocmaxrxt=5,
+						sasoc_number_peer_destinations=1,
+						sasoc_peer_rwnd=1500,
+						sasoc_local_rwnd=1864135,
+						sasoc_cookie_life=40000}, [20]) = 0
 
 +0 close(3) = 0
diff --git a/gtests/net/packetdrill/tests/bsd/sctp/api_tests/getsockopt/sctp_auth_active_key.pkt b/gtests/net/packetdrill/tests/bsd/sctp/api_tests/getsockopt/sctp_auth_active_key.pkt
index fd4d34da..e9647e1c 100644
--- a/gtests/net/packetdrill/tests/bsd/sctp/api_tests/getsockopt/sctp_auth_active_key.pkt
+++ b/gtests/net/packetdrill/tests/bsd/sctp/api_tests/getsockopt/sctp_auth_active_key.pkt
@@ -13,4 +13,7 @@
 +0 setsockopt(3, IPPROTO_SCTP, SCTP_AUTH_ACTIVE_KEY, {scact_assoc_id=0, scact_keynumber=123}, 6) = 0
 +0 getsockopt(3, IPPROTO_SCTP, SCTP_AUTH_ACTIVE_KEY, {scact_assoc_id=0, scact_keynumber=123}, [6]) = 0
 
++0 setsockopt(3, IPPROTO_SCTP, SCTP_AUTH_ACTIVE_KEY, {scact_keynumber=123}, 6) = 0
++0 getsockopt(3, IPPROTO_SCTP, SCTP_AUTH_ACTIVE_KEY, {scact_keynumber=123}, [6]) = 0
+
 +0 close(3) = 0
diff --git a/gtests/net/packetdrill/tests/bsd/sctp/api_tests/getsockopt/sctp_auth_deactivate_key.pkt b/gtests/net/packetdrill/tests/bsd/sctp/api_tests/getsockopt/sctp_auth_deactivate_key.pkt
index 8c024610..06103c6b 100644
--- a/gtests/net/packetdrill/tests/bsd/sctp/api_tests/getsockopt/sctp_auth_deactivate_key.pkt
+++ b/gtests/net/packetdrill/tests/bsd/sctp/api_tests/getsockopt/sctp_auth_deactivate_key.pkt
@@ -11,5 +11,6 @@
 +0 getsockopt(3, SOL_SOCKET, SO_ERROR, [0], [4]) = 0
 
 +0 setsockopt(3, IPPROTO_SCTP, SCTP_AUTH_DEACTIVATE_KEY, {scact_assoc_id=..., scact_keynumber=0}, 6) = 0
++0 setsockopt(3, IPPROTO_SCTP, SCTP_AUTH_DEACTIVATE_KEY, {scact_keynumber=0}, 6) = 0
 
 +0 close(3) = 0
diff --git a/gtests/net/packetdrill/tests/bsd/sctp/api_tests/getsockopt/sctp_auth_delete_key.pkt b/gtests/net/packetdrill/tests/bsd/sctp/api_tests/getsockopt/sctp_auth_delete_key.pkt
index 94bb2774..86d0fa1f 100644
--- a/gtests/net/packetdrill/tests/bsd/sctp/api_tests/getsockopt/sctp_auth_delete_key.pkt
+++ b/gtests/net/packetdrill/tests/bsd/sctp/api_tests/getsockopt/sctp_auth_delete_key.pkt
@@ -11,5 +11,6 @@
 +0 getsockopt(3, SOL_SOCKET, SO_ERROR, [0], [4]) = 0
 
 +0 setsockopt(3, IPPROTO_SCTP, SCTP_AUTH_DELETE_KEY, {scact_assoc_id=..., scact_keynumber=0}, 8) = 0
++0 setsockopt(3, IPPROTO_SCTP, SCTP_AUTH_DELETE_KEY, {scact_keynumber=0}, 8) = 0
 
 +0 close(3) = 0
diff --git a/gtests/net/packetdrill/tests/bsd/sctp/api_tests/getsockopt/sctp_auth_key.pkt b/gtests/net/packetdrill/tests/bsd/sctp/api_tests/getsockopt/sctp_auth_key.pkt
index 4f4fd4d6..58b63ecc 100644
--- a/gtests/net/packetdrill/tests/bsd/sctp/api_tests/getsockopt/sctp_auth_key.pkt
+++ b/gtests/net/packetdrill/tests/bsd/sctp/api_tests/getsockopt/sctp_auth_key.pkt
@@ -11,5 +11,6 @@
 +0 getsockopt(3, SOL_SOCKET, SO_ERROR, [0], [4]) = 0
 
 +0 setsockopt(3, IPPROTO_SCTP, SCTP_AUTH_KEY, {sca_assoc_id=..., sca_keynumber=123, sca_keylength=2, sca_key=[0x00, 0x00]}, 10) = 0
++0 setsockopt(3, IPPROTO_SCTP, SCTP_AUTH_KEY, {sca_keynumber=123, sca_keylength=2, sca_key=[0x00, 0x00]}, 10) = 0
 
 +0 close(3) = 0
diff --git a/gtests/net/packetdrill/tests/bsd/sctp/api_tests/getsockopt/sctp_context.pkt b/gtests/net/packetdrill/tests/bsd/sctp/api_tests/getsockopt/sctp_context.pkt
index 0cde321d..c9843cc4 100644
--- a/gtests/net/packetdrill/tests/bsd/sctp/api_tests/getsockopt/sctp_context.pkt
+++ b/gtests/net/packetdrill/tests/bsd/sctp/api_tests/getsockopt/sctp_context.pkt
@@ -13,4 +13,7 @@
 +0 setsockopt(3, IPPROTO_SCTP, SCTP_CONTEXT, {assoc_id=0, assoc_value=1200}, 8) = 0
 +0 getsockopt(3, IPPROTO_SCTP, SCTP_CONTEXT, {assoc_id=0, assoc_value=1200}, [8]) = 0
 
++0 setsockopt(3, IPPROTO_SCTP, SCTP_CONTEXT, {assoc_value=1200}, 8) = 0
++0 getsockopt(3, IPPROTO_SCTP, SCTP_CONTEXT, {assoc_value=1200}, [8]) = 0
+
 +0 close(3) = 0
diff --git a/gtests/net/packetdrill/tests/bsd/sctp/api_tests/getsockopt/sctp_default_prinfo.pkt b/gtests/net/packetdrill/tests/bsd/sctp/api_tests/getsockopt/sctp_default_prinfo.pkt
index 2179ae51..86b3b89b 100644
--- a/gtests/net/packetdrill/tests/bsd/sctp/api_tests/getsockopt/sctp_default_prinfo.pkt
+++ b/gtests/net/packetdrill/tests/bsd/sctp/api_tests/getsockopt/sctp_default_prinfo.pkt
@@ -20,4 +20,9 @@
 						     pr_value=5,
 						     pr_assoc_id=...}, [12]) = 0
 
++0 setsockopt(3, IPPROTO_SCTP, SCTP_DEFAULT_PRINFO, {pr_policy=SCTP_PR_SCTP_TTL,
+						     pr_value=5}, 12) = 0
++0 getsockopt(3, IPPROTO_SCTP, SCTP_DEFAULT_PRINFO, {pr_policy=SCTP_PR_SCTP_TTL,
+						     pr_value=5}, [12]) = 0
+
 +0 close(3) = 0
diff --git a/gtests/net/packetdrill/tests/bsd/sctp/api_tests/getsockopt/sctp_default_send_param.pkt b/gtests/net/packetdrill/tests/bsd/sctp/api_tests/getsockopt/sctp_default_send_param.pkt
index 1a97650e..34811acd 100644
--- a/gtests/net/packetdrill/tests/bsd/sctp/api_tests/getsockopt/sctp_default_send_param.pkt
+++ b/gtests/net/packetdrill/tests/bsd/sctp/api_tests/getsockopt/sctp_default_send_param.pkt
@@ -29,4 +29,21 @@
 							 sinfo_cumtsn=1,
 							 sinfo_assoc_id=3}, [30]) = 0
 
++0 setsockopt(3, IPPROTO_SCTP, SCTP_DEFAULT_SEND_PARAM, {sinfo_stream=0,
+							 sinfo_ssn=1,
+							 sinfo_flags=0,
+							 sinfo_ppid=htonl(123),
+							 sinfo_context=0,
+							 sinfo_timetolive=0,
+							 sinfo_tsn=2,
+							 sinfo_cumtsn=1}, 30) = 0
++0 getsockopt(3, IPPROTO_SCTP, SCTP_DEFAULT_SEND_PARAM, {sinfo_stream=0,
+							 sinfo_ssn=1,
+							 sinfo_flags=0,
+							 sinfo_ppid=htonl(123),
+							 sinfo_context=0,
+							 sinfo_timetolive=0,
+							 sinfo_tsn=2,
+							 sinfo_cumtsn=1}, [30]) = 0
+
 +0 close(3) = 0
diff --git a/gtests/net/packetdrill/tests/bsd/sctp/api_tests/getsockopt/sctp_delayed_sack.pkt b/gtests/net/packetdrill/tests/bsd/sctp/api_tests/getsockopt/sctp_delayed_sack.pkt
index 749db8fe..8e344e1d 100644
--- a/gtests/net/packetdrill/tests/bsd/sctp/api_tests/getsockopt/sctp_delayed_sack.pkt
+++ b/gtests/net/packetdrill/tests/bsd/sctp/api_tests/getsockopt/sctp_delayed_sack.pkt
@@ -18,4 +18,7 @@
 +0 getsockopt(3, IPPROTO_SCTP, SCTP_DELAYED_SACK, {sack_assoc_id=..., sack_delay=..., sack_freq=1}, [12]) = 0
 +0 getsockopt(3, IPPROTO_SCTP, SCTP_DELAYED_SACK, {sack_assoc_id=..., sack_delay=250, sack_freq=...}, [12]) = 0
 
++0 setsockopt(3, IPPROTO_SCTP, SCTP_DELAYED_SACK, {sack_delay=200, sack_freq=1}, 12) = 0
++0 getsockopt(3, IPPROTO_SCTP, SCTP_DELAYED_SACK, {sack_delay=200, sack_freq=1}, [12]) = 0
+
 +0 close(3) = 0
diff --git a/gtests/net/packetdrill/tests/bsd/sctp/api_tests/getsockopt/sctp_event.pkt b/gtests/net/packetdrill/tests/bsd/sctp/api_tests/getsockopt/sctp_event.pkt
index 9df570da..d817e415 100644
--- a/gtests/net/packetdrill/tests/bsd/sctp/api_tests/getsockopt/sctp_event.pkt
+++ b/gtests/net/packetdrill/tests/bsd/sctp/api_tests/getsockopt/sctp_event.pkt
@@ -14,4 +14,7 @@
 +0 setsockopt(3, IPPROTO_SCTP, SCTP_EVENT, {se_assoc_id=0, se_type=SCTP_SHUTDOWN_EVENT, se_on=1}, 8) = 0
 +0 getsockopt(3, IPPROTO_SCTP, SCTP_EVENT, {se_assoc_id=0, se_type=SCTP_SHUTDOWN_EVENT, se_on=1}, [8]) = 0
 
++0 setsockopt(3, IPPROTO_SCTP, SCTP_EVENT, {se_type=SCTP_SHUTDOWN_EVENT, se_on=0}, 8) = 0
++0 getsockopt(3, IPPROTO_SCTP, SCTP_EVENT, {se_type=SCTP_SHUTDOWN_EVENT, se_on=0}, [8]) = 0
+
 +0 close(3) = 0
diff --git a/gtests/net/packetdrill/tests/bsd/sctp/api_tests/getsockopt/sctp_get_peer_addr_info.pkt b/gtests/net/packetdrill/tests/bsd/sctp/api_tests/getsockopt/sctp_get_peer_addr_info.pkt
index 3ca931ae..4f765e3e 100644
--- a/gtests/net/packetdrill/tests/bsd/sctp/api_tests/getsockopt/sctp_get_peer_addr_info.pkt
+++ b/gtests/net/packetdrill/tests/bsd/sctp/api_tests/getsockopt/sctp_get_peer_addr_info.pkt
@@ -80,5 +80,22 @@
 							 spinfo_mtu=...}, [152]) = 0
 
 
++0 setsockopt(3, IPPROTO_SCTP, SCTP_GET_PEER_ADDR_INFO, {spinfo_address={sa_family=AF_INET,
+									 sin_port=htons(8080),
+									 sin_addr=inet_addr("192.0.2.1")},
+							 spinfo_state=SCTP_ACTIVE,
+							 spinfo_cwnd=4464,
+							 spinfo_srtt=111,
+							 spinfo_rto=1000,
+							 spinfo_mtu=1468}, 152) = -1 (ENOPROTOOPT)
+
++0 getsockopt(3, IPPROTO_SCTP, SCTP_GET_PEER_ADDR_INFO, {spinfo_address={sa_family=AF_INET,
+									 sin_port=htons(8080),
+									 sin_addr=inet_addr("192.0.2.1")},
+							 spinfo_state=SCTP_ACTIVE,
+							 spinfo_cwnd=4464,
+							 spinfo_srtt=...,
+							 spinfo_rto=1000,
+							 spinfo_mtu=1468}, [152]) = 0
 
 +0 close(3) = 0
diff --git a/gtests/net/packetdrill/tests/bsd/sctp/api_tests/getsockopt/sctp_local_auth_chunks.pkt b/gtests/net/packetdrill/tests/bsd/sctp/api_tests/getsockopt/sctp_local_auth_chunks.pkt
index a7bc7b01..e3c5b939 100644
--- a/gtests/net/packetdrill/tests/bsd/sctp/api_tests/getsockopt/sctp_local_auth_chunks.pkt
+++ b/gtests/net/packetdrill/tests/bsd/sctp/api_tests/getsockopt/sctp_local_auth_chunks.pkt
@@ -14,4 +14,7 @@
 							gauth_number_of_chunks=...,
 							gauth_chunks=[...]}, [10]) = 0
 
++0 getsockopt(3, IPPROTO_SCTP, SCTP_LOCAL_AUTH_CHUNKS, {gauth_number_of_chunks=...,
+							gauth_chunks=[...]}, [10]) = 0
+
 +0 close(3) = 0
diff --git a/gtests/net/packetdrill/tests/bsd/sctp/api_tests/getsockopt/sctp_max_burst.pkt b/gtests/net/packetdrill/tests/bsd/sctp/api_tests/getsockopt/sctp_max_burst.pkt
index 3a744ac4..9f3dd902 100644
--- a/gtests/net/packetdrill/tests/bsd/sctp/api_tests/getsockopt/sctp_max_burst.pkt
+++ b/gtests/net/packetdrill/tests/bsd/sctp/api_tests/getsockopt/sctp_max_burst.pkt
@@ -14,4 +14,7 @@
 +0 setsockopt(3, IPPROTO_SCTP, SCTP_MAX_BURST, {assoc_id=0, assoc_value=5}, 8) = 0
 +0 getsockopt(3, IPPROTO_SCTP, SCTP_MAX_BURST, {assoc_id=0, assoc_value=5}, [8]) = 0
 
++0 setsockopt(3, IPPROTO_SCTP, SCTP_MAX_BURST, {assoc_value=4}, 8) = 0
++0 getsockopt(3, IPPROTO_SCTP, SCTP_MAX_BURST, {assoc_value=4}, [8]) = 0
+
 +0 close(3) = 0
diff --git a/gtests/net/packetdrill/tests/bsd/sctp/api_tests/getsockopt/sctp_maxseg.pkt b/gtests/net/packetdrill/tests/bsd/sctp/api_tests/getsockopt/sctp_maxseg.pkt
index 190b91e8..5a941be4 100644
--- a/gtests/net/packetdrill/tests/bsd/sctp/api_tests/getsockopt/sctp_maxseg.pkt
+++ b/gtests/net/packetdrill/tests/bsd/sctp/api_tests/getsockopt/sctp_maxseg.pkt
@@ -14,4 +14,7 @@
 +0 setsockopt(3, IPPROTO_SCTP, SCTP_MAXSEG, {assoc_id=0, assoc_value=1200}, 8) = 0
 +0 getsockopt(3, IPPROTO_SCTP, SCTP_MAXSEG, {assoc_id=0, assoc_value=1200}, [8]) = 0
 
++0 setsockopt(3, IPPROTO_SCTP, SCTP_MAXSEG, {assoc_value=1452}, 8) = 0
++0 getsockopt(3, IPPROTO_SCTP, SCTP_MAXSEG, {assoc_value=1452}, [8]) = 0
+
 +0 close(3) = 0
diff --git a/gtests/net/packetdrill/tests/bsd/sctp/api_tests/getsockopt/sctp_peer_addr_params.pkt b/gtests/net/packetdrill/tests/bsd/sctp/api_tests/getsockopt/sctp_peer_addr_params.pkt
index fd12064a..3aca77e9 100644
--- a/gtests/net/packetdrill/tests/bsd/sctp/api_tests/getsockopt/sctp_peer_addr_params.pkt
+++ b/gtests/net/packetdrill/tests/bsd/sctp/api_tests/getsockopt/sctp_peer_addr_params.pkt
@@ -106,4 +106,25 @@
 						       spp_ipv6_flowlabel=0,
 						       spp_dscp=...}, [152]) = 0
 
++0 setsockopt(3, IPPROTO_SCTP, SCTP_PEER_ADDR_PARAMS, {spp_address={sa_family=AF_INET,
+								    sin_port=htons(8080),
+								    sin_addr=inet_addr("192.0.2.1")},
+						       spp_hbinterval=300,
+						       spp_pathmaxrxt=8,
+						       spp_pathmtu=1468,
+						       spp_flags=SPP_DSCP|SPP_HB_DISABLE,
+						       spp_ipv6_flowlabel=0,
+						       spp_dscp=0}, 152) = 0
+
++0 getsockopt(3, IPPROTO_SCTP, SCTP_PEER_ADDR_PARAMS, {spp_address={sa_family=AF_INET, 
+								    sin_port=htons(8080),
+								    sin_addr=inet_addr("192.0.2.1")},
+						       spp_hbinterval=300,
+						       spp_pathmaxrxt=8,
+						       spp_pathmtu=1468,
+						       spp_flags=SPP_DSCP|SPP_HB_DISABLE|SPP_PMTUD_ENABLE,
+						       spp_ipv6_flowlabel=0,
+						       spp_dscp=0}, [152]) = 0
+
+
 +0 close(3) = 0
diff --git a/gtests/net/packetdrill/tests/bsd/sctp/api_tests/getsockopt/sctp_peer_auth_chunks.pkt b/gtests/net/packetdrill/tests/bsd/sctp/api_tests/getsockopt/sctp_peer_auth_chunks.pkt
index 2316c7fc..fa74d57b 100644
--- a/gtests/net/packetdrill/tests/bsd/sctp/api_tests/getsockopt/sctp_peer_auth_chunks.pkt
+++ b/gtests/net/packetdrill/tests/bsd/sctp/api_tests/getsockopt/sctp_peer_auth_chunks.pkt
@@ -12,5 +12,6 @@
 
 //only dummy values, unimplemented in packetdrill
 +0 getsockopt(3, IPPROTO_SCTP, SCTP_PEER_AUTH_CHUNKS, {gauth_assoc_id=..., gauth_number_of_chunks=2, gauth_chunks=[0x00, 0x01]}, [10]) = 0
++0 getsockopt(3, IPPROTO_SCTP, SCTP_PEER_AUTH_CHUNKS, {gauth_number_of_chunks=2, gauth_chunks=[0x00, 0x01]}, [10]) = 0
 
 +0 close(3) = 0
diff --git a/gtests/net/packetdrill/tests/bsd/sctp/api_tests/getsockopt/sctp_primary_addr.pkt b/gtests/net/packetdrill/tests/bsd/sctp/api_tests/getsockopt/sctp_primary_addr.pkt
index 350b2416..db160a48 100644
--- a/gtests/net/packetdrill/tests/bsd/sctp/api_tests/getsockopt/sctp_primary_addr.pkt
+++ b/gtests/net/packetdrill/tests/bsd/sctp/api_tests/getsockopt/sctp_primary_addr.pkt
@@ -21,4 +21,11 @@
 +0 getsockopt(3, IPPROTO_SCTP, SCTP_PRIMARY_ADDR, {ssp_assoc_id=...,
 						   ssp_addr=...}, [136]) = 0
 
++0 setsockopt(3, IPPROTO_SCTP, SCTP_PRIMARY_ADDR, {ssp_addr={sa_family=AF_INET,
+							     sin_port=htons(8080),
+							     sin_addr=inet_addr("192.0.2.1")}}, 136) = 0
++0 getsockopt(3, IPPROTO_SCTP, SCTP_PRIMARY_ADDR, {ssp_addr={sa_family=AF_INET,
+						   sin_port=htons(8080),
+						   sin_addr=inet_addr("192.0.2.1")}}, [136]) = 0
+
 +0 close(3) = 0
diff --git a/gtests/net/packetdrill/tests/bsd/sctp/api_tests/getsockopt/sctp_rtoinfo.pkt b/gtests/net/packetdrill/tests/bsd/sctp/api_tests/getsockopt/sctp_rtoinfo.pkt
index 9538c452..554879b1 100644
--- a/gtests/net/packetdrill/tests/bsd/sctp/api_tests/getsockopt/sctp_rtoinfo.pkt
+++ b/gtests/net/packetdrill/tests/bsd/sctp/api_tests/getsockopt/sctp_rtoinfo.pkt
@@ -31,4 +31,11 @@
 					      srto_max=200,
 					      srto_min=...}, [16]) = 0
 
++0 setsockopt(3, IPPROTO_SCTP, SCTP_RTOINFO, {srto_initial=150,
+					      srto_max=200,
+					      srto_min=50}, 16) = 0
++0 getsockopt(3, IPPROTO_SCTP, SCTP_RTOINFO, {srto_initial=150,
+					      srto_max=200,
+					      srto_min=50}, [16]) = 0
+
 +0 close(3) = 0
diff --git a/gtests/net/packetdrill/tests/bsd/sctp/api_tests/getsockopt/sctp_set_peer_primary_addr.pkt b/gtests/net/packetdrill/tests/bsd/sctp/api_tests/getsockopt/sctp_set_peer_primary_addr.pkt
index 42f74386..71340f99 100644
--- a/gtests/net/packetdrill/tests/bsd/sctp/api_tests/getsockopt/sctp_set_peer_primary_addr.pkt
+++ b/gtests/net/packetdrill/tests/bsd/sctp/api_tests/getsockopt/sctp_set_peer_primary_addr.pkt
@@ -11,5 +11,6 @@
 +0 getsockopt(3, SOL_SOCKET, SO_ERROR, [0], [4]) = 0
 
 +0 setsockopt(3, IPPROTO_SCTP, SCTP_SET_PEER_PRIMARY_ADDR, {sspp_assoc_id=..., sspp={sa_family=AF_INET, sin_port=htons(8080), sin_addr=inet_addr("192.0.2.1")},}, 20) = 0
++0 setsockopt(3, IPPROTO_SCTP, SCTP_SET_PEER_PRIMARY_ADDR, {sspp={sa_family=AF_INET, sin_port=htons(8080), sin_addr=inet_addr("192.0.2.1")},}, 20) = 0
 
 +0 close(3) = 0
diff --git a/gtests/net/packetdrill/tests/bsd/sctp/api_tests/getsockopt/sctp_status.pkt b/gtests/net/packetdrill/tests/bsd/sctp/api_tests/getsockopt/sctp_status.pkt
index 4a8748a9..db00d227 100644
--- a/gtests/net/packetdrill/tests/bsd/sctp/api_tests/getsockopt/sctp_status.pkt
+++ b/gtests/net/packetdrill/tests/bsd/sctp/api_tests/getsockopt/sctp_status.pkt
@@ -137,4 +137,30 @@
 					     sstat_fragmentation_point=...,
 					     sstat_primary=...}, [176]) = 0
 
++0 setsockopt(3, IPPROTO_SCTP, SCTP_STATUS, {sstat_state=...,
+					     sstat_rwnd=...,
+					     sstat_unackdata=..., sstat_penddata=...,
+					     sstat_instrms=...,
+					     sstat_outstrms=...,
+					     sstat_fragmentation_point=...,
+					     sstat_primary=...}, 176) = -1
+
++0 getsockopt(3, IPPROTO_SCTP, SCTP_STATUS, {sstat_state=SCTP_ESTABLISHED,
+					     sstat_rwnd=1500,
+					     sstat_unackdata=0, 
+					     sstat_penddata=0,
+					     sstat_instrms=1,
+					     sstat_outstrms=1,
+					     sstat_fragmentation_point=1452,
+					     sstat_primary={spinfo_assoc_id=3,
+							    spinfo_address={sa_family=AF_INET,
+									    sin_port=htons(8080),
+									    sin_addr=inet_addr("192.0.2.1")},
+							    spinfo_state=SCTP_ACTIVE,
+							    spinfo_cwnd=4464,
+							    spinfo_srtt=...,
+							    spinfo_rto=1000,
+							    spinfo_mtu=1468}}, [176]) = 0
+
+
 +0 close(3) = 0
diff --git a/gtests/net/packetdrill/tests/bsd/sctp/api_tests/sctp_send/sctp_send_1.pkt b/gtests/net/packetdrill/tests/bsd/sctp/api_tests/sctp_send/sctp_send_1.pkt
index cebf395a..ceff10fc 100644
--- a/gtests/net/packetdrill/tests/bsd/sctp/api_tests/sctp_send/sctp_send_1.pkt
+++ b/gtests/net/packetdrill/tests/bsd/sctp/api_tests/sctp_send/sctp_send_1.pkt
@@ -13,8 +13,16 @@
 
 +0.0 getsockopt(3, SOL_SOCKET, SO_ERROR, [0], [4]) = 0
 
-+0.0 setsockopt(3, IPPROTO_SCTP, SCTP_PEER_ADDR_PARAMS, {spp_assoc_id=..., spp_address={sa_family=AF_INET, sin_port=htons(8080), sin_addr=inet_addr("192.0.2.1")},
-spp_hbinterval=0, spp_pathmaxrxt=8, spp_pathmtu=1468, spp_flags=SPP_HB_DISABLE, spp_ipv6_flowlabel=0, spp_dscp=0}, 152) = 0
++0.0 setsockopt(3, IPPROTO_SCTP, SCTP_PEER_ADDR_PARAMS, {spp_assoc_id=...,
+							 spp_address={sa_family=AF_INET,
+								      sin_port=htons(8080),
+								      sin_addr=inet_addr("192.0.2.1")},
+							 spp_hbinterval=0,
+							 spp_pathmaxrxt=8,
+							 spp_pathmtu=1468,
+							 spp_flags=SPP_HB_DISABLE,
+							 spp_ipv6_flowlabel=0,
+							 spp_dscp=0}, 152) = 0
 
 +1.0 sctp_send(3, ..., 1000, {sinfo_stream=3,
                               sinfo_ssn=3,
diff --git a/gtests/net/packetdrill/tests/bsd/sctp/api_tests/sctp_sendv/sctp_sendv.pkt b/gtests/net/packetdrill/tests/bsd/sctp/api_tests/sctp_sendv/sctp_sendv.pkt
index 3edd869b..8c00dcc9 100644
--- a/gtests/net/packetdrill/tests/bsd/sctp/api_tests/sctp_sendv/sctp_sendv.pkt
+++ b/gtests/net/packetdrill/tests/bsd/sctp/api_tests/sctp_sendv/sctp_sendv.pkt
@@ -78,6 +78,25 @@
 *    > sctp: DATA[flgs=BE, len=1016, tsn=10, sid=0, ssn=7, ppid=0]
 +0.0 < sctp: SACK[flgs=0, cum_tsn=10, a_rwnd=1500, gaps=[], dups=[]]
 
++0.1 sctp_sendv(3, [{..., 500}, {..., 500}], 2, ..., 1, {sendv_flags=SCTP_SEND_SNDINFO_VALID,
+							 sendv_sndinfo={snd_sid=2,
+									snd_flags=0,
+									snd_ppid=htonl(0),
+									snd_context=0},
+							 sendv_prinfo={pr_policy=SCTP_PR_SCTP_TTL,
+								       pr_value=10},
+							 sendv_authinfo={auth_keynumber=123}}, 32, SCTP_SENDV_SPA, 0) = 1000
+*    > sctp: DATA[flgs=BE, len=1016, tsn=11, sid=2, ssn=1, ppid=0]
++0.0 < sctp: SACK[flgs=0, cum_tsn=11, a_rwnd=1500, gaps=[], dups=[]]
+
+//test with sctp_sendv_sndinfo
++0.1 sctp_sendv(3, [{iov_base=..., iov_len=1000}], 1, ..., 1, {snd_sid=1,
+							       snd_flags=0,
+							       snd_ppid=htonl(1234),
+							       snd_context=0}, 16, SCTP_SENDV_SNDINFO, 0) = 1000
+*    > sctp: DATA[flgs=BE, len=1016, tsn=12, sid=1, ssn=1, ppid=1234]
++0.0 < sctp: SACK[flgs=0, cum_tsn=12, a_rwnd=1500, gaps=[], dups=[]]
+
 +0.0 close(3) = 0
 +0.0 > sctp: SHUTDOWN[flgs=0, cum_tsn=0]
 +0.1 < sctp: SHUTDOWN_ACK[flgs=0]
diff --git a/gtests/net/packetdrill/tests/bsd/sctp/api_tests/sctp_sendv/sctp_sendv_6.pkt b/gtests/net/packetdrill/tests/bsd/sctp/api_tests/sctp_sendv/sctp_sendv_6.pkt
index 96442ce2..68fc8e36 100644
--- a/gtests/net/packetdrill/tests/bsd/sctp/api_tests/sctp_sendv/sctp_sendv_6.pkt
+++ b/gtests/net/packetdrill/tests/bsd/sctp/api_tests/sctp_sendv/sctp_sendv_6.pkt
@@ -16,13 +16,26 @@
 							 sendv_sndinfo={snd_sid=2,
 									snd_flags=0,
 									snd_ppid=htonl(0),
-									snd_context=0, snd_assoc_id=0},
+									snd_context=0,
+									snd_assoc_id=0},
 							 sendv_prinfo={pr_policy=SCTP_PR_SCTP_TTL,
 								       pr_value=10},
 							 sendv_authinfo={auth_keynumber=123}}, 32, SCTP_SENDV_SPA, 0) = 1000
 *    > sctp: DATA[flgs=BE, len=1016, tsn=1, sid=2, ssn=0, ppid=0]
 +0.0 < sctp: SACK[flgs=0, cum_tsn=1, a_rwnd=1500, gaps=[], dups=[]]
 
+//test with all sctp_sendv_spainfo
++0.0 sctp_sendv(3, [{..., 500}, {..., 500}], 2, ..., 1, {sendv_flags=SCTP_SEND_SNDINFO_VALID,
+							 sendv_sndinfo={snd_sid=2,
+									snd_flags=0,
+									snd_ppid=htonl(0),
+									snd_context=0},
+							 sendv_prinfo={pr_policy=SCTP_PR_SCTP_TTL,
+								       pr_value=10},
+							 sendv_authinfo={auth_keynumber=123}}, 32, SCTP_SENDV_SPA, 0) = 1000
+*    > sctp: DATA[flgs=BE, len=1016, tsn=2, sid=2, ssn=1, ppid=0]
++0.0 < sctp: SACK[flgs=0, cum_tsn=2, a_rwnd=1500, gaps=[], dups=[]]
+
 +0.0 close(3) = 0
 +0.0 > sctp: SHUTDOWN[flgs=0, cum_tsn=0]
 +0.1 < sctp: SHUTDOWN_ACK[flgs=0]
diff --git a/gtests/net/packetdrill/tests/bsd/sctp/api_tests/sctp_sendv/sctp_sendv_7.pkt b/gtests/net/packetdrill/tests/bsd/sctp/api_tests/sctp_sendv/sctp_sendv_7.pkt
index 5f7a4d2f..2d566984 100644
--- a/gtests/net/packetdrill/tests/bsd/sctp/api_tests/sctp_sendv/sctp_sendv_7.pkt
+++ b/gtests/net/packetdrill/tests/bsd/sctp/api_tests/sctp_sendv/sctp_sendv_7.pkt
@@ -19,6 +19,13 @@
 *    > sctp: DATA[flgs=BE, len=1016, tsn=1, sid=1, ssn=0, ppid=1234]
 +0.0 < sctp: SACK[flgs=0, cum_tsn=1, a_rwnd=1500, gaps=[], dups=[]]
 
++0.0 sctp_sendv(3, [{iov_base=..., iov_len=1000}], 1, ..., 1, {snd_sid=1,
+							       snd_flags=0,
+							       snd_ppid=htonl(1234),
+							       snd_context=0}, 16, SCTP_SENDV_SNDINFO, 0) = 1000
+*    > sctp: DATA[flgs=BE, len=1016, tsn=2, sid=1, ssn=1, ppid=1234]
++0.0 < sctp: SACK[flgs=0, cum_tsn=2, a_rwnd=1500, gaps=[], dups=[]]
+
 +0.0 close(3) = 0
 +0.0 > sctp: SHUTDOWN[flgs=0, cum_tsn=0]
 +0.1 < sctp: SHUTDOWN_ACK[flgs=0]
-- 
GitLab