diff --git a/gtests/net/packetdrill/parser.y b/gtests/net/packetdrill/parser.y
index a2081b6690b15fedb85af024828882844456616d..faa05584d1d415358e340bac98e2f2ce688e687b 100644
--- a/gtests/net/packetdrill/parser.y
+++ b/gtests/net/packetdrill/parser.y
@@ -3244,7 +3244,7 @@ af_arg
 
 accept_filter_arg
 : '{' af_name '}' {
-#if defined(__FreeBSD__)
+#if defined(__FreeBSD__) || defined(__NetBSD__)
 	$$ = new_expression(EXPR_ACCEPT_FILTER_ARG);
 	$$->value.accept_filter_arg = calloc(1, sizeof(struct accept_filter_arg_expr));
 	$$->value.accept_filter_arg->af_name = $2;
@@ -3254,7 +3254,7 @@ accept_filter_arg
 #endif
 }
 | '{' af_name ',' af_arg '}' {
-#if defined(__FreeBSD__)
+#if defined(__FreeBSD__) || defined(__NetBSD__)
 	$$ = new_expression(EXPR_ACCEPT_FILTER_ARG);
 	$$->value.accept_filter_arg = calloc(1, sizeof(struct accept_filter_arg_expr));
 	$$->value.accept_filter_arg->af_name = $2;
diff --git a/gtests/net/packetdrill/script.c b/gtests/net/packetdrill/script.c
index 822e9cf3ddeeda89feea788bfaff3aebdc5bf8e0..eb00bd09888fda3aa3f849afa948db23dbe5b0c4 100644
--- a/gtests/net/packetdrill/script.c
+++ b/gtests/net/packetdrill/script.c
@@ -68,9 +68,11 @@ struct expression_type_entry expression_type_table[] = {
 	{ EXPR_MSGHDR,                      "msghdr"                          },
 	{ EXPR_CMSGHDR,                     "cmsghdr"                         },
 	{ EXPR_POLLFD,                      "pollfd"                          },
+#if defined(__FreeBSD__) || defined(__NetBSD__)
+	{ EXPR_ACCEPT_FILTER_ARG,           "accept_filter_arg"               },
+#endif
 #if defined(__FreeBSD__)
 	{ EXPR_SF_HDTR,                     "sf_hdtr"                         },
-	{ EXPR_ACCEPT_FILTER_ARG,           "accept_filter_arg"               },
 	{ EXPR_TCP_FUNCTION_SET,            "tcp_function_set"                },
 #endif
 	{ EXPR_SCTP_RTOINFO,                "sctp_rtoinfo"                    },
@@ -333,12 +335,14 @@ void free_expression(struct expression *expression)
 		free_expression(expression->value.linger->l_onoff);
 		free_expression(expression->value.linger->l_linger);
 		break;
-#if defined(__FreeBSD__)
+#if defined(__FreeBSD__) || defined(__NetBSD__)
 	case EXPR_ACCEPT_FILTER_ARG:
 		assert(expression->value.accept_filter_arg);
 		free_expression(expression->value.accept_filter_arg->af_name);
 		free_expression(expression->value.accept_filter_arg->af_arg);
 		break;
+#endif
+#if defined(__FreeBSD__)
 	case EXPR_TCP_FUNCTION_SET:
 		assert(expression->value.tcp_function_set);
 		free_expression(expression->value.tcp_function_set->function_set_name);
@@ -2773,11 +2777,13 @@ static int evaluate(struct expression *in,
 		memcpy(&out->value.linger, &in->value.linger,
 		       sizeof(in->value.linger));
 		break;
-#if defined(__FreeBSD__)
+#if defined(__FreeBSD__) | defined(__NetBSD__)
 	case EXPR_ACCEPT_FILTER_ARG:		/* copy as-is */
 		memcpy(&out->value.accept_filter_arg, &in->value.accept_filter_arg,
 		       sizeof(in->value.accept_filter_arg));
 		break;
+#endif
+#if defined(__FreeBSD__)
 	case EXPR_TCP_FUNCTION_SET:		/* copy as-is */
 		memcpy(&out->value.tcp_function_set, &in->value.tcp_function_set,
 		       sizeof(in->value.tcp_function_set));
diff --git a/gtests/net/packetdrill/script.h b/gtests/net/packetdrill/script.h
index 030d45abaaa7ba6b86d99ecab37faf6b57bde567..31c69416d9aa01cf2120d0c60529190ee96dd6d8 100644
--- a/gtests/net/packetdrill/script.h
+++ b/gtests/net/packetdrill/script.h
@@ -47,9 +47,11 @@ enum expression_t {
 	EXPR_MSGHDR,		  /* expression tree for a msghdr struct */
 	EXPR_CMSGHDR,             /* expression tree for a cmsghdr struct */
 	EXPR_POLLFD,		  /* expression tree for a pollfd struct */
+#if defined(__FreeBSD__) || defined(__NetBSD__)
+	EXPR_ACCEPT_FILTER_ARG,	  /* struct accept_filter_arg */
+#endif
 #if defined(__FreeBSD__)
 	EXPR_SF_HDTR,		  /* struct sf_hdtr for sendfile */
-	EXPR_ACCEPT_FILTER_ARG,	  /* struct accept_filter_arg */
 	EXPR_TCP_FUNCTION_SET,	  /* struct tcp_function_set */
 #endif
 	EXPR_SCTP_RTOINFO,	  /* struct sctp_rtoinfo for SCTP_RTOINFO */
@@ -119,9 +121,11 @@ struct expression {
 		struct msghdr_expr *msghdr;
 		struct cmsghdr_expr *cmsghdr;
 		struct pollfd_expr *pollfd;
+#if defined(__FreeBSD__) || defined(__NetBSD__)
+		struct accept_filter_arg_expr *accept_filter_arg;
+#endif
 #if defined(__FreeBSD__)
 		struct sf_hdtr_expr *sf_hdtr;
-		struct accept_filter_arg_expr *accept_filter_arg;
 		struct tcp_function_set_expr *tcp_function_set;
 #endif
 		struct sctp_rtoinfo_expr *sctp_rtoinfo;
@@ -228,6 +232,13 @@ struct linger_expr {
 	struct expression *l_linger;
 };
 
+#if defined(__FreeBSD__) || defined(__NetBSD__)
+struct accept_filter_arg_expr {
+	struct expression *af_name;
+	struct expression *af_arg;
+};
+#endif
+
 #if defined(__FreeBSD__)
 /* Parse tree for a sf_hdtr struct in a sendfile syscall. */
 struct sf_hdtr_expr {
@@ -237,11 +248,6 @@ struct sf_hdtr_expr {
 	struct expression *trl_cnt;
 };
 
-struct accept_filter_arg_expr {
-	struct expression *af_name;
-	struct expression *af_arg;
-};
-
 struct tcp_function_set_expr {
 	struct expression *function_set_name;
 	struct expression *pcbcnt;