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;