diff options
| author | Pablo Neira Ayuso <pablo@netfilter.org> | 2025-08-21 11:12:57 +0200 |
|---|---|---|
| committer | Pablo Neira Ayuso <pablo@netfilter.org> | 2025-08-27 23:50:58 +0200 |
| commit | ffc40b38d58d3f754d20c0e586981b2f442a247e (patch) | |
| tree | 9935ca117fa1c3253c4d4e6384191be4a54a45eb /src/rule.c | |
| parent | 35d9c77c5745219ad6bf1c5fc7512c1c92c70457 (diff) | |
tunnel: add erspan support
This patch extends the tunnel metadata object to define erspan 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
erspan {
version 1
index 2
}
}
}
Joint work with Fernando.
Signed-off-by: Fernando Fernandez Mancera <fmancera@suse.de>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'src/rule.c')
| -rw-r--r-- | src/rule.c | 26 |
1 files changed, 26 insertions, 0 deletions
@@ -2021,6 +2021,32 @@ static void obj_print_data(const struct obj *obj, opts->nl, opts->tab, opts->tab, obj->tunnel.ttl); } + switch (obj->tunnel.type) { + case TUNNEL_ERSPAN: + nft_print(octx, "%s%s%serspan {", + opts->nl, opts->tab, opts->tab); + nft_print(octx, "%s%s%s%sversion %u", + opts->nl, opts->tab, opts->tab, opts->tab, + obj->tunnel.erspan.version); + if (obj->tunnel.erspan.version == 1) { + nft_print(octx, "%s%s%s%sindex %u", + opts->nl, opts->tab, opts->tab, opts->tab, + obj->tunnel.erspan.v1.index); + } else { + nft_print(octx, "%s%s%s%sdirection %s", + opts->nl, opts->tab, opts->tab, opts->tab, + obj->tunnel.erspan.v2.direction ? "egress" + : "ingress"); + nft_print(octx, "%s%s%s%sid %u", + opts->nl, opts->tab, opts->tab, opts->tab, + obj->tunnel.erspan.v2.hwid); + } + nft_print(octx, "%s%s%s}", + opts->nl, opts->tab, opts->tab); + default: + break; + } + nft_print(octx, "%s", opts->stmt_separator); break; default: |
