diff --git a/gtests/net/packetdrill/parser.y b/gtests/net/packetdrill/parser.y
index 551dd66ab31e8502e92b24e39c567704a24d0da0..bf8fee59727ecc630199882b5a7b136862c15875 100644
--- a/gtests/net/packetdrill/parser.y
+++ b/gtests/net/packetdrill/parser.y
@@ -2517,7 +2517,7 @@ sctp_initmsg
 
 sctp_assocval
 : '{' ASSOC_VALUE '=' INTEGER '}' {
-#if defined(SCTP_MAXSEG) || defined(SCTP_MAX_BURST)
+#if defined(SCTP_MAXSEG) || defined(SCTP_MAX_BURST) || defined(SCTP_INTERLEAVING_SUPPORTED)
 	$$ = new_expression(EXPR_SCTP_ASSOCVAL);
 	if (!is_valid_u32($4)) {
 		semantic_error("assoc_value out of range");
diff --git a/gtests/net/packetdrill/run_system_call.c b/gtests/net/packetdrill/run_system_call.c
index a60b0662095eec5e2011cfea04d9d94aa045afea..77d7aeb432215834049319ba7f5b26cc791ce6d2 100644
--- a/gtests/net/packetdrill/run_system_call.c
+++ b/gtests/net/packetdrill/run_system_call.c
@@ -1645,7 +1645,7 @@ static int syscall_setsockopt(struct state *state, struct syscall_spec *syscall,
 	} else if (val_expression->type == EXPR_SCTP_INITMSG) {
 		optval = &val_expression->value.sctp_initmsg;
 #endif
-#if defined(SCTP_MAXSEG) || defined(SCTP_MAX_BURST)
+#if defined(SCTP_MAXSEG) || defined(SCTP_MAX_BURST) || defined(SCTP_INTERLEAVING_SUPPORTED)
 	} else if (val_expression->type == EXPR_SCTP_ASSOCVAL) {
 		optval = &val_expression->value.sctp_assoc_value;
 #endif
diff --git a/gtests/net/packetdrill/script.c b/gtests/net/packetdrill/script.c
index c4fdb4b2aedff29ebc5592f6bb95651b6cdd9b35..96e53b8062521b97c84a9c62cea36cb8b69d4511 100644
--- a/gtests/net/packetdrill/script.c
+++ b/gtests/net/packetdrill/script.c
@@ -71,7 +71,7 @@ struct expression_type_entry expression_type_table[] = {
 #ifdef SCTP_INITMSG
 	{ EXPR_SCTP_INITMSG,         "sctp_initmsg"},
 #endif
-#if defined(SCTP_MAXSEG) || defined(SCTP_MAX_BURST)
+#if defined(SCTP_MAXSEG) || defined(SCTP_MAX_BURST) || defined(SCTP_INTERLEAVING_SUPPORTED)
 	{ EXPR_SCTP_ASSOCVAL,        "sctp_assocvalue"},
 #endif
 #ifdef SCTP_DELAYED_SACK
@@ -292,7 +292,7 @@ void free_expression(struct expression *expression)
 #ifdef SCTP_INITMSG
 	case EXPR_SCTP_INITMSG:
 #endif
-#if defined(SCTP_MAXSEG) || defined(SCTP_MAX_BURST)
+#if defined(SCTP_MAXSEG) || defined(SCTP_MAX_BURST) || defined(SCTP_INTERLEAVING_SUPPORTED)
 	case EXPR_SCTP_ASSOCVAL:
 #endif
 #ifdef SCTP_DELAYED_SACK
@@ -522,7 +522,7 @@ static int evaluate(struct expression *in,
 		       sizeof(in->value.sctp_initmsg));
 		break;
 #endif
-#if defined(SCTP_MAXSEG) || defined(SCTP_MAX_BURST)
+#if defined(SCTP_MAXSEG) || defined(SCTP_MAX_BURST) || defined(SCTP_INTERLEAVING_SUPPORTED)
 	case EXPR_SCTP_ASSOCVAL:	/* copy as-is */
 		memcpy(&out->value.sctp_assoc_value,
 		       &in->value.sctp_assoc_value,
diff --git a/gtests/net/packetdrill/script.h b/gtests/net/packetdrill/script.h
index a2b2e46b118718d717504bb56fc35586d0c9e21b..62fa122ad7eb75eb26ae738d1afd345a445d42b2 100644
--- a/gtests/net/packetdrill/script.h
+++ b/gtests/net/packetdrill/script.h
@@ -51,7 +51,7 @@ enum expression_t {
 #ifdef SCTP_INITMSG
 	EXPR_SCTP_INITMSG,	  /* struct sctp_initmsg for SCTP_INITMSG */
 #endif
-#if defined(SCTP_MAXSEG) || defined(SCTP_MAX_BURST)
+#if defined(SCTP_MAXSEG) || defined(SCTP_MAX_BURST) || defined(SCTP_INTERLEAVING_SUPPORTED)
 	EXPR_SCTP_ASSOCVAL,	  /* struct sctp_assoc_value */
 #endif
 #ifdef SCTP_DELAYED_SACK
@@ -86,7 +86,7 @@ struct expression {
 #ifdef SCTP_INITMSG
 		struct sctp_initmsg sctp_initmsg;
 #endif
-#if defined(SCTP_MAXSEG) || defined(SCTP_MAX_BURST)
+#if defined(SCTP_MAXSEG) || defined(SCTP_MAX_BURST) || defined(SCTP_INTERLEAVING_SUPPORTED)
 		struct sctp_assoc_value sctp_assoc_value;
 #endif
 #ifdef SCTP_DELAYED_SACK
diff --git a/gtests/net/packetdrill/symbols_freebsd.c b/gtests/net/packetdrill/symbols_freebsd.c
index 9e4e8093f921b7f5c5722b2c44f81dad7d5dec78..87796ca9876a5e97a80cf094b7794a5283e25a9c 100644
--- a/gtests/net/packetdrill/symbols_freebsd.c
+++ b/gtests/net/packetdrill/symbols_freebsd.c
@@ -86,6 +86,9 @@ struct int_symbol platform_symbols_table[] = {
 	{ SCTP_DELAYED_SACK,                "SCTP_DELAYED_SACK"               },
 	{ SCTP_MAX_BURST,                   "SCTP_MAX_BURST"                  },
 	{ SCTP_STATUS,                      "SCTP_STATUS"                     },
+#if defined(SCTP_INTERLEAVING_SUPPORTED)
+	{ SCTP_INTERLEAVING_SUPPORTED,      "SCTP_INTERLEAVING_SUPPORTED"     },
+#endif
 	{ SCTP_CLOSED,                      "SCTP_CLOSED"                     },
 	{ SCTP_BOUND,                       "SCTP_BOUND"                      },
 	{ SCTP_LISTEN,                      "SCTP_LISTEN"                     },
diff --git a/gtests/net/packetdrill/symbols_linux.c b/gtests/net/packetdrill/symbols_linux.c
index 33b7797c7bf6479b3640bb45c911bdd78b784b5d..c79051ebe8e3854043f30af036d1f31f43c8b6d1 100644
--- a/gtests/net/packetdrill/symbols_linux.c
+++ b/gtests/net/packetdrill/symbols_linux.c
@@ -120,6 +120,9 @@ struct int_symbol platform_symbols_table[] = {
 #endif
 #ifdef SCTP_STATUS
 	{ SCTP_STATUS,                      "SCTP_STATUS"                     },
+#endif
+#if defined(SCTP_INTERLEAVING_SUPPORTED)
+	{ SCTP_INTERLEAVING_SUPPORTED,      "SCTP_INTERLEAVING_SUPPORTED"     },
 #endif
 	{ SCTP_CLOSED,                      "SCTP_CLOSED"                     },
 #if 0