diff options
| author | Fernando Fernandez Mancera <fmancera@suse.de> | 2025-08-21 11:12:59 +0200 |
|---|---|---|
| committer | Pablo Neira Ayuso <pablo@netfilter.org> | 2025-08-27 23:51:07 +0200 |
| commit | d933d551f8db99f2e5f8b6ddcb3a8d9a7a68eeb0 (patch) | |
| tree | ec56394e4ba98f39e02ebfb74c20f92c603614bf /src/parser_bison.y | |
| parent | a937a5dc02db3c919431718c0030c54c2eaafd73 (diff) | |
tunnel: add vxlan support
This patch extends the tunnel metadata object to define vxlan tunnel
specific configurations:
table netdev x {
tunnel y {
id 10
ip saddr 192.168.2.10
ip daddr 192.168.2.11
sport 10
dport 20
ttl 10
vxlan {
gbp 200
}
}
}
Signed-off-by: Fernando Fernandez Mancera <fmancera@suse.de>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'src/parser_bison.y')
| -rw-r--r-- | src/parser_bison.y | 28 |
1 files changed, 27 insertions, 1 deletions
diff --git a/src/parser_bison.y b/src/parser_bison.y index 08d75dbb..ca93a658 100644 --- a/src/parser_bison.y +++ b/src/parser_bison.y @@ -612,6 +612,7 @@ int nft_lex(void *, void *, void *); %token ERSPAN "erspan" %token EGRESS "egress" %token INGRESS "ingress" +%token GBP "gbp" %token COUNTERS "counters" %token QUOTAS "quotas" @@ -770,7 +771,7 @@ int nft_lex(void *, void *, void *); %type <flowtable> flowtable_block_alloc flowtable_block %destructor { flowtable_free($$); } flowtable_block_alloc -%type <obj> obj_block_alloc counter_block quota_block ct_helper_block ct_timeout_block ct_expect_block limit_block secmark_block synproxy_block tunnel_block erspan_block erspan_block_alloc +%type <obj> obj_block_alloc counter_block quota_block ct_helper_block ct_timeout_block ct_expect_block limit_block secmark_block synproxy_block tunnel_block erspan_block erspan_block_alloc vxlan_block vxlan_block_alloc %destructor { obj_free($$); } obj_block_alloc %type <list> stmt_list stateful_stmt_list set_elem_stmt_list @@ -5011,6 +5012,27 @@ erspan_config : HDRVERSION NUM } ; +vxlan_block : /* empty */ { $$ = $<obj>-1; } + | vxlan_block common_block + | vxlan_block stmt_separator + | vxlan_block vxlan_config stmt_separator + { + $$ = $1; + } + ; + +vxlan_block_alloc : /* empty */ + { + $$ = $<obj>-1; + } + ; + +vxlan_config : GBP NUM + { + $<obj>0->tunnel.vxlan.gbp = $2; + } + ; + tunnel_config : ID NUM { $<obj>0->tunnel.id = $2; @@ -5055,6 +5077,10 @@ tunnel_config : ID NUM { $<obj>0->tunnel.type = TUNNEL_ERSPAN; } + | VXLAN vxlan_block_alloc '{' vxlan_block '}' + { + $<obj>0->tunnel.type = TUNNEL_VXLAN; + } ; tunnel_block : /* empty */ { $$ = $<obj>-1; } |
