Blob Blame History Raw
# 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 ]