diff options
author | Pablo Neira Ayuso <pablo@netfilter.org> | 2023-01-02 15:36:44 +0100 |
---|---|---|
committer | Pablo Neira Ayuso <pablo@netfilter.org> | 2023-01-02 15:36:44 +0100 |
commit | af026c2db0e813cc2a02c6c7222038e2a399a13f (patch) | |
tree | eaad93108798b707de5e3cebc10337383293ec32 /src/parser_bison.y | |
parent | b56c826e673d37980e6e8b65eeb2a50680f33162 (diff) |
src: add gretap support
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'src/parser_bison.y')
-rw-r--r-- | src/parser_bison.y | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/src/parser_bison.y b/src/parser_bison.y index 10270f12..ccf07a30 100644 --- a/src/parser_bison.y +++ b/src/parser_bison.y @@ -443,6 +443,7 @@ int nft_lex(void *, void *, void *); %token VNI "vni" %token GRE "gre" +%token GRETAP "gretap" %token GENEVE "geneve" @@ -909,8 +910,8 @@ int nft_lex(void *, void *, void *); %type <expr> inner_eth_expr inner_inet_expr inner_expr %destructor { expr_free($$); } inner_eth_expr inner_inet_expr inner_expr -%type <expr> vxlan_hdr_expr geneve_hdr_expr gre_hdr_expr -%destructor { expr_free($$); } vxlan_hdr_expr geneve_hdr_expr gre_hdr_expr +%type <expr> vxlan_hdr_expr geneve_hdr_expr gre_hdr_expr gretap_hdr_expr +%destructor { expr_free($$); } vxlan_hdr_expr geneve_hdr_expr gre_hdr_expr gretap_hdr_expr %type <val> vxlan_hdr_field geneve_hdr_field gre_hdr_field %type <stmt> optstrip_stmt @@ -5354,6 +5355,7 @@ payload_expr : payload_raw_expr | vxlan_hdr_expr | geneve_hdr_expr | gre_hdr_expr + | gretap_hdr_expr ; payload_raw_expr : AT payload_base_spec COMMA NUM COMMA NUM close_scope_at @@ -5686,6 +5688,13 @@ gre_hdr_field : HDRVERSION { $$ = GREHDR_VERSION; } | PROTOCOL { $$ = GREHDR_PROTOCOL; } ; +gretap_hdr_expr : GRETAP close_scope_gre inner_expr + { + $$ = $3; + $$->payload.inner_desc = &proto_gretap; + } + ; + optstrip_stmt : RESET TCP OPTION tcp_hdr_option_type close_scope_tcp { $$ = optstrip_stmt_alloc(&@$, tcpopt_expr_alloc(&@$, |