diff --git a/gtests/net/packetdrill/parser.y b/gtests/net/packetdrill/parser.y
index 7437bc1ea8718f272bb21a07bd0b7737a6f1b4fd..569c9be58c41a998f95ebaefa548b39f728befe0 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_integer_expression(0, "%u");
+	$$->value.sctp_sndrcvinfo->sinfo_assoc_id = new_expression(EXPR_ELLIPSIS);
 };
 
 sinfo_pr_value
diff --git a/gtests/net/packetdrill/tests/bsd/sctp/api_tests/notifications/sctp_adaptation_event.pkt b/gtests/net/packetdrill/tests/bsd/sctp/api_tests/notifications/sctp_adaptation_event.pkt
index 6a3a663b916a0543f451d1dd829aa62698a5b6de..c270602302208c57a3e48ac0b9960d5b3a986cf1 100644
--- a/gtests/net/packetdrill/tests/bsd/sctp/api_tests/notifications/sctp_adaptation_event.pkt
+++ b/gtests/net/packetdrill/tests/bsd/sctp/api_tests/notifications/sctp_adaptation_event.pkt
@@ -23,5 +23,8 @@
 +0.0 accept(3, ..., ...) = 4
 
 //TODO: Packetdrill does not support Path reconfiguration, after that update this test
-+0.0 sctp_recvv(4, [{iov_base={sai_type=SCTP_ADAPTATION_INDICATION, sai_flags=0, sai_length=16, sai_adaptation_ind=3, sai_assoc_id=...},
-iov_len=1000}], 1, ..., 20, NULL, [0], [SCTP_RECVV_NOINFO],[MSG_NOTIFICATION|MSG_EOR]) = 16
++0.0 sctp_recvv(4, [{iov_base={sai_type=SCTP_ADAPTATION_INDICATION,
+			       sai_flags=0,
+			       sai_length=16,
+			       sai_adaptation_ind=3,
+			       sai_assoc_id=...}, iov_len=1000}], 1, ..., 20, NULL, [0], [SCTP_RECVV_NOINFO],[MSG_NOTIFICATION|MSG_EOR]) = 16
diff --git a/gtests/net/packetdrill/tests/bsd/sctp/api_tests/notifications/sctp_assoc_change_event.pkt b/gtests/net/packetdrill/tests/bsd/sctp/api_tests/notifications/sctp_assoc_change_event.pkt
index f110cab2989614c5b5b299738950d857e10833d6..39332546f893ffc26adf36b167759486832c0651 100644
--- a/gtests/net/packetdrill/tests/bsd/sctp/api_tests/notifications/sctp_assoc_change_event.pkt
+++ b/gtests/net/packetdrill/tests/bsd/sctp/api_tests/notifications/sctp_assoc_change_event.pkt
@@ -9,14 +9,26 @@
 +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]
-+0.0 sctp_recvv(3, [{iov_base={sac_type=SCTP_ASSOC_CHANGE, sac_flags=0, sac_length=21, sac_state=SCTP_COMM_UP, sac_error=0, sac_outbound_streams=1, 
-sac_inbound_streams=1, sac_assoc_id=..., sac_info=[SCTP_ASSOC_SUPPORTS_MULTIBUF]}, iov_len=1000}], 1, ..., 20, NULL, [0], [SCTP_RECVV_NOINFO],
-[MSG_NOTIFICATION|MSG_EOR]) = 21
++0.0 sctp_recvv(3, [{iov_base={sac_type=SCTP_ASSOC_CHANGE,
+			       sac_flags=0,
+			       sac_length=21,
+			       sac_state=SCTP_COMM_UP,
+			       sac_error=0,
+			       sac_outbound_streams=1, 
+			       sac_inbound_streams=1,
+			       sac_assoc_id=...,
+			       sac_info=[SCTP_ASSOC_SUPPORTS_MULTIBUF]}, iov_len=1000}], 1, ..., 20, NULL, [0], [SCTP_RECVV_NOINFO], [MSG_NOTIFICATION|MSG_EOR]) = 21
 
 +0.0 getsockopt(3, SOL_SOCKET, SO_ERROR, [0], [4]) = 0
 +0.0 < sctp: SHUTDOWN[flgs=0, cum_tsn=0]
 *    > sctp: SHUTDOWN_ACK[flgs=0]
 +0.0 < sctp: SHUTDOWN_COMPLETE[flgs=0]
-+0.0 sctp_recvv(3, [{iov_base={sac_type=SCTP_ASSOC_CHANGE, sac_flags=0, sac_length=20, sac_state=SCTP_SHUTDOWN_COMP, sac_error=0, sac_outbound_streams=1, 
-sac_inbound_streams=1, sac_assoc_id=..., sac_info=[]}, iov_len=1000}], 1, ..., 20, NULL, [0], [SCTP_RECVV_NOINFO], [MSG_NOTIFICATION|MSG_EOR]) = 20
++0.0 sctp_recvv(3, [{iov_base={sac_type=SCTP_ASSOC_CHANGE,
+			       sac_flags=0,
+			       sac_length=20,
+			       sac_state=SCTP_SHUTDOWN_COMP,
+			       sac_error=0,
+			       sac_outbound_streams=1, 
+			       sac_inbound_streams=1,
+			       sac_info=[]}, iov_len=1000}], 1, ..., 20, NULL, [0], [SCTP_RECVV_NOINFO], [MSG_NOTIFICATION|MSG_EOR]) = 20
 
diff --git a/gtests/net/packetdrill/tests/bsd/sctp/api_tests/notifications/sctp_authentication_event.pkt b/gtests/net/packetdrill/tests/bsd/sctp/api_tests/notifications/sctp_authentication_event.pkt
index 4b216e9877183a0104c96f4216955d6829fce983..d94a2f811b100ff2fb6365b76838256b0c464473 100644
--- a/gtests/net/packetdrill/tests/bsd/sctp/api_tests/notifications/sctp_authentication_event.pkt
+++ b/gtests/net/packetdrill/tests/bsd/sctp/api_tests/notifications/sctp_authentication_event.pkt
@@ -10,8 +10,12 @@
 +0.0 > sctp: COOKIE_ECHO[flgs=0, len=4, val=...]
 +0.1 < sctp: COOKIE_ACK[flgs=0]
 
-+0.0 sctp_recvv(3, [{iov_base={auth_type=SCTP_AUTHENTICATION_EVENT, auth_flags=0, auth_length=20, auth_keynumber=0, auth_indication=SCTP_AUTH_NO_AUTH,
-auth_assoc_id=3}, iov_len=1000}], 1, ..., 20, NULL, [0], [SCTP_RECVV_NOINFO], [MSG_NOTIFICATION|MSG_EOR]) = 20
++0.0 sctp_recvv(3, [{iov_base={auth_type=SCTP_AUTHENTICATION_EVENT,
+			       auth_flags=0,
+			       auth_length=20,
+			       auth_keynumber=0,
+			       auth_indication=SCTP_AUTH_NO_AUTH,
+			       auth_assoc_id=3}, iov_len=1000}], 1, ..., 20, NULL, [0], [SCTP_RECVV_NOINFO], [MSG_NOTIFICATION|MSG_EOR]) = 20
 
 +0.0 getsockopt(3, SOL_SOCKET, SO_ERROR, [0], [4]) = 0
 +0.0 < sctp: SHUTDOWN[flgs=0, cum_tsn=0]
diff --git a/gtests/net/packetdrill/tests/bsd/sctp/api_tests/notifications/sctp_authentication_event_2.pkt b/gtests/net/packetdrill/tests/bsd/sctp/api_tests/notifications/sctp_authentication_event_2.pkt
new file mode 100644
index 0000000000000000000000000000000000000000..b43bf482f1002b4a2d4f18292021b411be65e33b
--- /dev/null
+++ b/gtests/net/packetdrill/tests/bsd/sctp/api_tests/notifications/sctp_authentication_event_2.pkt
@@ -0,0 +1,23 @@
++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_assoc_id=0, se_type=SCTP_AUTHENTICATION_EVENT, se_on=1}, 8) = 0
++0.0 getsockopt(3, IPPROTO_SCTP, SCTP_EVENT, {se_assoc_id=0, se_type=SCTP_AUTHENTICATION_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]
+
++0.0 sctp_recvv(3, [{iov_base={auth_type=SCTP_AUTHENTICATION_EVENT,
+			       auth_flags=0,
+			       auth_length=20,
+			       auth_keynumber=0,
+			       auth_indication=SCTP_AUTH_NO_AUTH}, iov_len=1000}], 1, ..., 20, NULL, [0], [SCTP_RECVV_NOINFO], [MSG_NOTIFICATION|MSG_EOR]) = 20
+
++0.0 getsockopt(3, SOL_SOCKET, SO_ERROR, [0], [4]) = 0
++0.0 < sctp: SHUTDOWN[flgs=0, cum_tsn=0]
+*    > sctp: SHUTDOWN_ACK[flgs=0]
++0.0 < sctp: SHUTDOWN_COMPLETE[flgs=0]
+
diff --git a/gtests/net/packetdrill/tests/bsd/sctp/api_tests/notifications/sctp_partial_delivery_event_2.pkt b/gtests/net/packetdrill/tests/bsd/sctp/api_tests/notifications/sctp_partial_delivery_event_2.pkt
new file mode 100644
index 0000000000000000000000000000000000000000..53dfa5436c70311f318a7f98a058a77fc15dd2c2
--- /dev/null
+++ b/gtests/net/packetdrill/tests/bsd/sctp/api_tests/notifications/sctp_partial_delivery_event_2.pkt
@@ -0,0 +1,25 @@
++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=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]
+//Enable Partial delivery event
++0.0 setsockopt(3, IPPROTO_SCTP, SCTP_EVENT, {se_assoc_id=0, se_type=SCTP_PARTIAL_DELIVERY_EVENT, se_on=1}, 8) = 0
++0.0 getsockopt(3, IPPROTO_SCTP, SCTP_EVENT, {se_assoc_id=0, se_type=SCTP_PARTIAL_DELIVERY_EVENT, se_on=1}, [8]) = 0
+
++0.0 < sctp: DATA[flgs=B, len=300, tsn=1, sid=0, ssn=0, ppid=0]
++0.0 > sctp: SACK[flgs=0, cum_tsn=1, a_rwnd=..., gaps=[], dups=[]]
++0.0 < sctp: DATA[flgs=0, len=300, tsn=2, sid=0, ssn=0, ppid=0]
+*    > sctp: SACK[flgs=0, cum_tsn=2, a_rwnd=..., gaps=[], dups=[]]
++0.0 < sctp: ABORT[flgs=0]
++1.5 sctp_recvv(3, [{iov_base=..., iov_len=1000},
+		    {iov_base={pdapi_type=SCTP_PARTIAL_DELIVERY_EVENT,
+			       pdapi_flags=0,
+			       pdapi_length=24,
+			       pdapi_indication=SCTP_PARTIAL_DELIVERY_ABORTED,
+			       pdapi_stream=0,
+			       pdapi_seq=0}, iov_len=1000}], 2, ..., 20, NULL, [0], [SCTP_RECVV_NOINFO], [MSG_NOTIFICATION|MSG_EOR]) = 21
diff --git a/gtests/net/packetdrill/tests/bsd/sctp/api_tests/notifications/sctp_peer_addr_change_2.pkt b/gtests/net/packetdrill/tests/bsd/sctp/api_tests/notifications/sctp_peer_addr_change_2.pkt
new file mode 100644
index 0000000000000000000000000000000000000000..c69c7697942b4924f1b675bb3b71148fbca7dec0
--- /dev/null
+++ b/gtests/net/packetdrill/tests/bsd/sctp/api_tests/notifications/sctp_peer_addr_change_2.pkt
@@ -0,0 +1,46 @@
++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_assoc_id=0, se_type=SCTP_PEER_ADDR_CHANGE, se_on=1}, 8) = 0
++0.0 getsockopt(3, IPPROTO_SCTP, SCTP_EVENT, {se_assoc_id=0, se_type=SCTP_PEER_ADDR_CHANGE, 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]
++0.0 setsockopt(3, IPPROTO_SCTP, SCTP_PEER_ADDR_PARAMS, {spp_assoc_id=...,
+							 spp_address=...,
+							 spp_hbinterval=1,
+							 spp_pathmaxrxt=3,
+							 spp_pathmtu=1468,
+							 spp_flags=SPP_HB_ENABLE, 
+							 spp_ipv6_flowlabel=0,
+							 spp_dscp=0}, 152) = 0
+
+*    > sctp: HEARTBEAT[flgs=0, HEARTBEAT_INFORMATION[len=..., val=...]]
+*    > sctp: HEARTBEAT[flgs=0, HEARTBEAT_INFORMATION[len=..., val=...]]
+*    > sctp: HEARTBEAT[flgs=0, HEARTBEAT_INFORMATION[len=..., val=...]]
+*    > sctp: HEARTBEAT[flgs=0, HEARTBEAT_INFORMATION[len=..., val=...]]
+*    > sctp: HEARTBEAT[flgs=0, HEARTBEAT_INFORMATION[len=..., val=...]]
+
++0.5 sctp_recvv(3, [{iov_base={spc_type=SCTP_PEER_ADDR_CHANGE,
+			       spc_flags=0,
+			       spc_length=152,
+			       spc_aaddr=...,
+			       spc_state=SCTP_ADDR_UNREACHABLE,
+			       spc_error=0,
+			       spc_assoc_id=...},
+		     iov_len=1000}], 1, ..., 20, NULL, [0], [SCTP_RECVV_NOINFO], [MSG_NOTIFICATION|MSG_EOR]) = 152
+
++0.0 < sctp: HEARTBEAT_ACK[flgs=0, HEARTBEAT_INFORMATION[len=..., val=...]]
+
++0.5 sctp_recvv(3, [{iov_base={spc_type=SCTP_PEER_ADDR_CHANGE,
+			       spc_flags=0,
+			       spc_length=152,
+			       spc_aaddr=...,
+			       spc_state=SCTP_ADDR_AVAILABLE,
+			       spc_error=0},
+		     iov_len=1000}], 1, ..., 20, NULL, [0], [SCTP_RECVV_NOINFO], [MSG_NOTIFICATION|MSG_EOR]) = 152
diff --git a/gtests/net/packetdrill/tests/bsd/sctp/api_tests/notifications/sctp_remote_error.pkt b/gtests/net/packetdrill/tests/bsd/sctp/api_tests/notifications/sctp_remote_error.pkt
index 7479fdc1554e6a87cb508fad6418678d8b26e856..0d7557b6976a59996fa71021fab815780c98d62c 100644
--- a/gtests/net/packetdrill/tests/bsd/sctp/api_tests/notifications/sctp_remote_error.pkt
+++ b/gtests/net/packetdrill/tests/bsd/sctp/api_tests/notifications/sctp_remote_error.pkt
@@ -14,6 +14,10 @@
 
 +0.0 < sctp: ERROR[flgs=0, INVALID_STREAM_IDENTIFIER[sid=1]]
 
-+0.0 sctp_recvv(3, [{iov_base={sre_type=SCTP_REMOTE_ERROR, sre_flags=0, sre_length=32, sre_error=1,
-sre_assoc_id=..., sre_data=[0x09, 0x00, 0x00 , 0x0C, 0x00, 0x01, 0x00 , 0x08, 0x00, 0x01, 0x00 , 0x00]}, iov_len=1000}], 1, ..., 20, NULL, [0], [SCTP_RECVV_NOINFO],
-[MSG_NOTIFICATION|MSG_EOR]) = 32
++0.0 sctp_recvv(3, [{iov_base={sre_type=SCTP_REMOTE_ERROR,
+			       sre_flags=0,
+			       sre_length=32,
+			       sre_error=1,
+			       sre_assoc_id=...,
+			       sre_data=[0x09, 0x00, 0x00 , 0x0C, 0x00, 0x01, 0x00 , 0x08, 0x00, 0x01, 0x00 , 0x00]},
+		   iov_len=1000}], 1, ..., 20, NULL, [0], [SCTP_RECVV_NOINFO], [MSG_NOTIFICATION|MSG_EOR]) = 32
diff --git a/gtests/net/packetdrill/tests/bsd/sctp/api_tests/notifications/sctp_remote_error_2.pkt b/gtests/net/packetdrill/tests/bsd/sctp/api_tests/notifications/sctp_remote_error_2.pkt
new file mode 100644
index 0000000000000000000000000000000000000000..eeda20bc4ea171dd61893aadc447325282d043a3
--- /dev/null
+++ b/gtests/net/packetdrill/tests/bsd/sctp/api_tests/notifications/sctp_remote_error_2.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
+// 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_assoc_id=0, se_type=SCTP_REMOTE_ERROR, se_on=1}, 8) = 0
++0.0 getsockopt(3, IPPROTO_SCTP, SCTP_EVENT, {se_assoc_id=0, se_type=SCTP_REMOTE_ERROR, 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]
+
++0.0 getsockopt(3, SOL_SOCKET, SO_ERROR, [0], [4]) = 0
+
++0.0 < sctp: ERROR[flgs=0, INVALID_STREAM_IDENTIFIER[sid=1]]
+
++0.0 sctp_recvv(3, [{iov_base={sre_type=SCTP_REMOTE_ERROR,
+			       sre_flags=0,
+			       sre_length=32,
+			       sre_error=1,
+			       sre_data=[0x09, 0x00, 0x00 , 0x0C, 0x00, 0x01, 0x00 , 0x08, 0x00, 0x01, 0x00 , 0x00]},
+		   iov_len=1000}], 1, ..., 20, NULL, [0], [SCTP_RECVV_NOINFO], [MSG_NOTIFICATION|MSG_EOR]) = 32
diff --git a/gtests/net/packetdrill/tests/bsd/sctp/api_tests/notifications/sctp_send_failed_2.pkt b/gtests/net/packetdrill/tests/bsd/sctp/api_tests/notifications/sctp_send_failed_2.pkt
new file mode 100644
index 0000000000000000000000000000000000000000..2244a1678b11af7a859dd9bd99b01ad3db4495b5
--- /dev/null
+++ b/gtests/net/packetdrill/tests/bsd/sctp/api_tests/notifications/sctp_send_failed_2.pkt
@@ -0,0 +1,51 @@
++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=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]
++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=...,
+							 spp_hbinterval=0,
+							 spp_pathmaxrxt=100,
+							 spp_pathmtu=1468, 
+							 spp_flags=SPP_HB_DISABLE,
+							 spp_ipv6_flowlabel=0,
+							 spp_dscp=0}, 152) = 0
+
+//test for SEND_FAILED_EVENT
++0.0 setsockopt(3, IPPROTO_SCTP, SCTP_EVENT, {se_assoc_id=0, se_type=SCTP_SEND_FAILED, se_on=1}, 8) = 0
++0.0 getsockopt(3, IPPROTO_SCTP, SCTP_EVENT, {se_assoc_id=0, se_type=SCTP_SEND_FAILED, se_on=1}, [8]) = 0
+
++0.0 setsockopt(3, IPPROTO_SCTP, SCTP_RTOINFO, {srto_assoc_id=0,
+						srto_initial=100,
+						srto_max=150,
+						srto_min=50}, 16) = 0
+
++0.0 write(3, ..., 1000) = 1000
++0.0 > sctp: DATA[flgs=BE, len=1016, tsn=1, sid=0, ssn=0, ppid=0]
+*    > sctp: DATA[flgs=BE, len=1016, tsn=1, sid=0, ssn=0, ppid=0]
+*    > sctp: DATA[flgs=BE, len=1016, tsn=1, sid=0, ssn=0, ppid=0]
+*    > sctp: DATA[flgs=BE, len=1016, tsn=1, sid=0, ssn=0, ppid=0]
+*    > sctp: DATA[flgs=BE, len=1016, tsn=1, sid=0, ssn=0, ppid=0]
+*    > sctp: DATA[flgs=BE, len=1016, tsn=1, sid=0, ssn=0, ppid=0]
+*    > sctp: DATA[flgs=BE, len=1016, tsn=1, sid=0, ssn=0, ppid=0]
+*    > sctp: DATA[flgs=BE, len=1016, tsn=1, sid=0, ssn=0, ppid=0]
++1.0 sctp_recvv(3, [{iov_base={ssf_type=SCTP_SEND_FAILED,
+			       ssf_flags=SCTP_DATA_SENT,
+			       ssf_length=1144,
+			       ssf_error=0,
+			       ssf_info={sinfo_stream=0,
+					 sinfo_ssn=0,
+					 sinfo_flags=3,
+					 sinfo_ppid=htonl(0),
+					 sinfo_context=0,
+					 sinfo_timetolive=0,
+					 sinfo_tsn=0,
+					 sinfo_cumtsn=0},
+			       ssf_data=...}, iov_len=1000}], 1, ..., 20, NULL, [0], [SCTP_RECVV_NOINFO], [MSG_NOTIFICATION]) = 1000
diff --git a/gtests/net/packetdrill/tests/bsd/sctp/api_tests/notifications/sctp_send_failed_event_2.pkt b/gtests/net/packetdrill/tests/bsd/sctp/api_tests/notifications/sctp_send_failed_event_2.pkt
new file mode 100644
index 0000000000000000000000000000000000000000..39d8113ee59bbacccee271cfd29d2d2f7b95ab70
--- /dev/null
+++ b/gtests/net/packetdrill/tests/bsd/sctp/api_tests/notifications/sctp_send_failed_event_2.pkt
@@ -0,0 +1,48 @@
++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=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]
+
++0.0 getsockopt(3, SOL_SOCKET, SO_ERROR, [0], [4]) = 0
++0 setsockopt(3, IPPROTO_SCTP, SCTP_PEER_ADDR_PARAMS, {spp_assoc_id=...,
+						       spp_address=...,
+						       spp_hbinterval=0,
+						       spp_pathmaxrxt=100,
+						       spp_pathmtu=1468,
+						       spp_flags=SPP_HB_DISABLE,
+						       spp_ipv6_flowlabel=0,
+						       spp_dscp=0}, 152) = 0
+
+//test for SEND_FAILED_EVENT
++0.0 setsockopt(3, IPPROTO_SCTP, SCTP_EVENT, {se_assoc_id=0,
+					      se_type=SCTP_SEND_FAILED_EVENT,
+					      se_on=1}, 8) = 0
+
++0.0 setsockopt(3, IPPROTO_SCTP, SCTP_RTOINFO, {srto_assoc_id=0,
+						srto_initial=100,
+						srto_max=150,
+						srto_min=50}, 16) = 0
+
++0.0 write(3, ..., 1000) = 1000
++0.0 > sctp: DATA[flgs=BE, len=1016, tsn=1, sid=0, ssn=0, ppid=0]
+*    > sctp: DATA[flgs=BE, len=1016, tsn=1, sid=0, ssn=0, ppid=0]
+*    > sctp: DATA[flgs=BE, len=1016, tsn=1, sid=0, ssn=0, ppid=0]
+*    > sctp: DATA[flgs=BE, len=1016, tsn=1, sid=0, ssn=0, ppid=0]
+*    > sctp: DATA[flgs=BE, len=1016, tsn=1, sid=0, ssn=0, ppid=0]
+*    > sctp: DATA[flgs=BE, len=1016, tsn=1, sid=0, ssn=0, ppid=0]
+*    > sctp: DATA[flgs=BE, len=1016, tsn=1, sid=0, ssn=0, ppid=0]
+*    > sctp: DATA[flgs=BE, len=1016, tsn=1, sid=0, ssn=0, ppid=0]
++1.0 sctp_recvv(3, [{iov_base={ssfe_type=SCTP_SEND_FAILED_EVENT,
+			       ssfe_flags=SCTP_DATA_SENT,
+			       ssfe_length=1032,
+			       ssfe_error=0,
+			       ssfe_info={snd_sid=0,
+					  snd_flags=3,
+                                          snd_ppid=htonl(0),
+                                          snd_context=0},
+			       ssfe_data=...}, iov_len=1000}], 1, ..., 20, NULL, [0], [SCTP_RECVV_NOINFO], [MSG_NOTIFICATION]) = 1000
diff --git a/gtests/net/packetdrill/tests/bsd/sctp/api_tests/notifications/sctp_sender_dry_event_2.pkt b/gtests/net/packetdrill/tests/bsd/sctp/api_tests/notifications/sctp_sender_dry_event_2.pkt
new file mode 100644
index 0000000000000000000000000000000000000000..b298a7000d43f44b0303f01c860dd5628d8d19a9
--- /dev/null
+++ b/gtests/net/packetdrill/tests/bsd/sctp/api_tests/notifications/sctp_sender_dry_event_2.pkt
@@ -0,0 +1,34 @@
++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=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]
++0.0 getsockopt(3, SOL_SOCKET, SO_ERROR, [0], [4]) = 0
+
+//test for enable socketoptions with SCTP_EVENT and SCTP_EVENTS
++0.0 setsockopt(3, IPPROTO_SCTP, SCTP_EVENTS, {sctp_data_io_event=1,
+					       sctp_association_event=1,
+					       sctp_address_event=0,
+					       sctp_send_failure_event=1,
+					       sctp_peer_error_event=0,
+					       sctp_shutdown_event=1,
+					       sctp_partial_delivery_event=0,
+					       sctp_adaptation_layer_event=0,
+					       sctp_authentication_event=0,
+					       sctp_sender_dry_event=0}, 11) = 0
+
++0.0 getsockopt(3, IPPROTO_SCTP, SCTP_EVENT, {se_assoc_id=0, se_type=SCTP_SHUTDOWN_EVENT, se_on=1}, [8]) = 0
+
+//test for SENDER_DRY_EVENT
++0.0 setsockopt(3, IPPROTO_SCTP, SCTP_EVENT, {se_assoc_id=0, se_type=SCTP_SENDER_DRY_EVENT, se_on=1}, 8) = 0
++0.0 sctp_recvv(3, [{iov_base={sender_dry_type=SCTP_SENDER_DRY_EVENT,
+			       sender_dry_flags=0,
+			       sender_dry_length=12},
+		     iov_len=1000}], 1, ..., 20, NULL, [0], [SCTP_RECVV_NOINFO], [MSG_NOTIFICATION|MSG_EOR]) = 12
+
++0.0 setsockopt(3, IPPROTO_SCTP, SCTP_EVENT, {se_assoc_id=0, se_type=SCTP_SENDER_DRY_EVENT, se_on=0}, 8) = 0
+
diff --git a/gtests/net/packetdrill/tests/bsd/sctp/api_tests/notifications/sctp_shutdown_event_2.pkt b/gtests/net/packetdrill/tests/bsd/sctp/api_tests/notifications/sctp_shutdown_event_2.pkt
new file mode 100644
index 0000000000000000000000000000000000000000..19762c465c942a4023b169f15321cb5102eed122
--- /dev/null
+++ b/gtests/net/packetdrill/tests/bsd/sctp/api_tests/notifications/sctp_shutdown_event_2.pkt
@@ -0,0 +1,26 @@
++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=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]
++0.0 getsockopt(3, SOL_SOCKET, SO_ERROR, [0], [4]) = 0
+
+//test for enable socketoptions with SCTP_EVENT and SCTP_EVENTS
++0.0 setsockopt(3, IPPROTO_SCTP, SCTP_EVENT, {se_assoc_id=0, se_type=SCTP_SHUTDOWN_EVENT, se_on=1}, 8) = 0
++0.0 getsockopt(3, IPPROTO_SCTP, SCTP_EVENT, {se_assoc_id=0, se_type=SCTP_SHUTDOWN_EVENT, se_on=1}, [8]) = 0
+
+// Tear down the association
++0.0 < sctp: SHUTDOWN[flgs=0, cum_tsn=0]
+*    > sctp: SHUTDOWN_ACK[flgs=0]
++0.0 < sctp: SHUTDOWN_COMPLETE[flgs=0]
++0.0 recvmsg(3, {msg_name(...)=..., 
+		 msg_iov(1)=[{iov_base={sse_type=SCTP_SHUTDOWN_EVENT,
+					sse_flags=0,
+					sse_length=12},
+			      iov_len=1000}],
+		 msg_control(0)=[],
+		 msg_flags=MSG_NOTIFICATION|MSG_EOR}, 0) = 12
diff --git a/gtests/net/packetdrill/tests/bsd/sctp/api_tests/run-all-tests b/gtests/net/packetdrill/tests/bsd/sctp/api_tests/run-all-tests
index 24ee914cb0e9cd2b45361afa5d257dfcb6a47a9b..97fb7ec87969e80b566d2571ad1cb0252cfe866b 100755
--- a/gtests/net/packetdrill/tests/bsd/sctp/api_tests/run-all-tests
+++ b/gtests/net/packetdrill/tests/bsd/sctp/api_tests/run-all-tests
@@ -75,14 +75,22 @@ set testcases = (setsockopt/sctp_rtoinfo_1 \
 		 notifications/sctp_adaptation_event \
                  notifications/sctp_notifications_stopped_event \
                  notifications/sctp_remote_error \
+                 notifications/sctp_remote_error_2 \
                  notifications/sctp_sender_dry_event \
+                 notifications/sctp_sender_dry_event_2 \
                  notifications/sctp_assoc_change_event \
                  notifications/sctp_partial_delivery_event \
+                 notifications/sctp_partial_delivery_event_2 \
                  notifications/sctp_send_failed \
+                 notifications/sctp_send_failed_2 \
                  notifications/sctp_shutdown_event \
+                 notifications/sctp_shutdown_event_2 \
                  notifications/sctp_authentication_event \
+                 notifications/sctp_authentication_event_2 \
                  notifications/sctp_peer_addr_change \
+                 notifications/sctp_peer_addr_change_2 \
                  notifications/sctp_send_failed_event \
+                 notifications/sctp_send_failed_event_2 \
 		 cmsgs/sendmsg_sctp_init \
 		 cmsgs/sendmsg_sctp_sndrcv \
 		 cmsgs/sendmsg_sctp_sndinfo \