The debug printing of the payload expr shows the tunnel header name as unknown. Since after the first version we added two new payload bases inner and tunnel, I prefer to make this change to meet possible future extensions rather than setting NFT_PAYLOAD_TUN_HEADER as the new bound. Reproduce: nft --debug netlink add rule inet t c meta l4proto udp vxlan vni 0x123456 Before patch: ... [ inner type 1 hdrsize 8 flags f [ payload load 3b @ unknown header + 4 => reg 1 ] ] ... After patch: ... [ inner type 1 hdrsize 8 flags f [ payload load 3b @ tunnel header + 4 => reg 1 ] ] ... Fixes: da49c1241474 ("src: expr: use the function base2str in payload") Fixes: 3f3909afd76d ("expr: add inner support") Signed-off-by: Zhongqiu Duan <dzq.aishenghu0@xxxxxxxxx> --- src/expr/payload.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/expr/payload.c b/src/expr/payload.c index c3ac0c345aec..992c353423ef 100644 --- a/src/expr/payload.c +++ b/src/expr/payload.c @@ -207,7 +207,7 @@ static const char *base2str_array[NFT_PAYLOAD_TUN_HEADER + 1] = { static const char *base2str(enum nft_payload_bases base) { - if (base > NFT_PAYLOAD_INNER_HEADER) + if (base >= array_size(base2str_array) || !base2str_array[base]) return "unknown"; return base2str_array[base]; -- 2.43.0