# meta nfproto ipv4
ip test-ip4 input
[ meta load nfproto => reg 1 ]
[ cmp eq reg 1 0x00000002 ]
# meta nfproto ipv6
ip test-ip4 input
[ meta load nfproto => reg 1 ]
[ cmp eq reg 1 0x0000000a ]
# meta nfproto {ipv4, ipv6}
__set%d test-ip4 3
__set%d test-ip4 0
element 00000002 : 0 [end] element 0000000a : 0 [end]
ip test-ip4 input
[ meta load nfproto => reg 1 ]
[ lookup reg 1 set __set%d ]
# meta nfproto != {ipv4, ipv6}
__set%d test-ip4 3
__set%d test-ip4 0
element 00000002 : 0 [end] element 0000000a : 0 [end]
ip test-ip4 input
[ meta load nfproto => reg 1 ]
[ lookup reg 1 set __set%d 0x1 ]
# meta nfproto ipv6 tcp dport 22
inet test-inet input
[ meta load nfproto => reg 1 ]
[ cmp eq reg 1 0x0000000a ]
[ meta load l4proto => reg 1 ]
[ cmp eq reg 1 0x00000006 ]
[ payload load 2b @ transport header + 2 => reg 1 ]
[ cmp eq reg 1 0x00001600 ]
# meta nfproto ipv4 tcp dport 22
inet test-inet input
[ meta load nfproto => reg 1 ]
[ cmp eq reg 1 0x00000002 ]
[ meta load l4proto => reg 1 ]
[ cmp eq reg 1 0x00000006 ]
[ payload load 2b @ transport header + 2 => reg 1 ]
[ cmp eq reg 1 0x00001600 ]
# meta nfproto ipv4 ip saddr 1.2.3.4
inet test-inet input
[ meta load nfproto => reg 1 ]
[ cmp eq reg 1 0x00000002 ]
[ payload load 4b @ network header + 12 => reg 1 ]
[ cmp eq reg 1 0x04030201 ]
# meta nfproto ipv6 meta l4proto tcp
inet test-inet input
[ meta load nfproto => reg 1 ]
[ cmp eq reg 1 0x0000000a ]
[ meta load l4proto => reg 1 ]
[ cmp eq reg 1 0x00000006 ]
# meta nfproto ipv4 counter ip saddr 1.2.3.4
inet test-inet input
[ meta load nfproto => reg 1 ]
[ cmp eq reg 1 0x00000002 ]
[ counter pkts 0 bytes 0 ]
[ payload load 4b @ network header + 12 => reg 1 ]
[ cmp eq reg 1 0x04030201 ]
# meta ipsec exists
inet test-inet input
[ meta load secpath => reg 1 ]
[ cmp eq reg 1 0x00000001 ]
# meta secpath missing
inet test-inet input
[ meta load secpath => reg 1 ]
[ cmp eq reg 1 0x00000000 ]