Blob Blame History Raw
# arp htype 1
netdev test-netdev ingress 
  [ meta load protocol => reg 1 ]
  [ cmp eq reg 1 0x00000608 ]
  [ payload load 2b @ network header + 0 => reg 1 ]
  [ cmp eq reg 1 0x00000100 ]

# arp htype != 1
netdev test-netdev ingress 
  [ meta load protocol => reg 1 ]
  [ cmp eq reg 1 0x00000608 ]
  [ payload load 2b @ network header + 0 => reg 1 ]
  [ cmp neq reg 1 0x00000100 ]

# arp htype 22
netdev test-netdev ingress 
  [ meta load protocol => reg 1 ]
  [ cmp eq reg 1 0x00000608 ]
  [ payload load 2b @ network header + 0 => reg 1 ]
  [ cmp eq reg 1 0x00001600 ]

# arp htype != 233
netdev test-netdev ingress 
  [ meta load protocol => reg 1 ]
  [ cmp eq reg 1 0x00000608 ]
  [ payload load 2b @ network header + 0 => reg 1 ]
  [ cmp neq reg 1 0x0000e900 ]

# arp htype 33-45
netdev test-netdev ingress 
  [ meta load protocol => reg 1 ]
  [ cmp eq reg 1 0x00000608 ]
  [ payload load 2b @ network header + 0 => reg 1 ]
  [ cmp gte reg 1 0x00002100 ]
  [ cmp lte reg 1 0x00002d00 ]

# arp htype != 33-45
netdev test-netdev ingress 
  [ meta load protocol => reg 1 ]
  [ cmp eq reg 1 0x00000608 ]
  [ payload load 2b @ network header + 0 => reg 1 ]
  [ range neq reg 1 0x00002100 0x00002d00 ]

# arp htype { 33, 55, 67, 88}
__set%d test-netdev 3
__set%d test-netdev 0
	element 00002100  : 0 [end]	element 00003700  : 0 [end]	element 00004300  : 0 [end]	element 00005800  : 0 [end]
netdev test-netdev ingress 
  [ meta load protocol => reg 1 ]
  [ cmp eq reg 1 0x00000608 ]
  [ payload load 2b @ network header + 0 => reg 1 ]
  [ lookup reg 1 set __set%d ]

# arp htype != { 33, 55, 67, 88}
__set%d test-netdev 3
__set%d test-netdev 0
	element 00002100  : 0 [end]	element 00003700  : 0 [end]	element 00004300  : 0 [end]	element 00005800  : 0 [end]
netdev test-netdev ingress 
  [ meta load protocol => reg 1 ]
  [ cmp eq reg 1 0x00000608 ]
  [ payload load 2b @ network header + 0 => reg 1 ]
  [ lookup reg 1 set __set%d 0x1 ]

# arp htype { 33-55}
__set%d test-netdev 7
__set%d test-netdev 0
	element 00000000  : 1 [end]	element 00002100  : 0 [end]	element 00003800  : 1 [end]
netdev test-netdev ingress 
  [ meta load protocol => reg 1 ]
  [ cmp eq reg 1 0x00000608 ]
  [ payload load 2b @ network header + 0 => reg 1 ]
  [ lookup reg 1 set __set%d ]

# arp htype != { 33-55}
__set%d test-netdev 7
__set%d test-netdev 0
	element 00000000  : 1 [end]	element 00002100  : 0 [end]	element 00003800  : 1 [end]
netdev test-netdev ingress 
  [ meta load protocol => reg 1 ]
  [ cmp eq reg 1 0x00000608 ]
  [ payload load 2b @ network header + 0 => reg 1 ]
  [ lookup reg 1 set __set%d 0x1 ]

# arp ptype 0x0800
netdev test-netdev ingress 
  [ meta load protocol => reg 1 ]
  [ cmp eq reg 1 0x00000608 ]
  [ payload load 2b @ network header + 2 => reg 1 ]
  [ cmp eq reg 1 0x00000008 ]

# arp hlen 22
netdev test-netdev ingress 
  [ meta load protocol => reg 1 ]
  [ cmp eq reg 1 0x00000608 ]
  [ payload load 1b @ network header + 4 => reg 1 ]
  [ cmp eq reg 1 0x00000016 ]

# arp hlen != 233
netdev test-netdev ingress 
  [ meta load protocol => reg 1 ]
  [ cmp eq reg 1 0x00000608 ]
  [ payload load 1b @ network header + 4 => reg 1 ]
  [ cmp neq reg 1 0x000000e9 ]

# arp hlen 33-45
netdev test-netdev ingress 
  [ meta load protocol => reg 1 ]
  [ cmp eq reg 1 0x00000608 ]
  [ payload load 1b @ network header + 4 => reg 1 ]
  [ cmp gte reg 1 0x00000021 ]
  [ cmp lte reg 1 0x0000002d ]

# arp hlen != 33-45
netdev test-netdev ingress 
  [ meta load protocol => reg 1 ]
  [ cmp eq reg 1 0x00000608 ]
  [ payload load 1b @ network header + 4 => reg 1 ]
  [ range neq reg 1 0x00000021 0x0000002d ]

# arp hlen { 33, 55, 67, 88}
__set%d test-netdev 3
__set%d test-netdev 0
	element 00000021  : 0 [end]	element 00000037  : 0 [end]	element 00000043  : 0 [end]	element 00000058  : 0 [end]
netdev test-netdev ingress 
  [ meta load protocol => reg 1 ]
  [ cmp eq reg 1 0x00000608 ]
  [ payload load 1b @ network header + 4 => reg 1 ]
  [ lookup reg 1 set __set%d ]

# arp hlen != { 33, 55, 67, 88}
__set%d test-netdev 3
__set%d test-netdev 0
	element 00000021  : 0 [end]	element 00000037  : 0 [end]	element 00000043  : 0 [end]	element 00000058  : 0 [end]
netdev test-netdev ingress 
  [ meta load protocol => reg 1 ]
  [ cmp eq reg 1 0x00000608 ]
  [ payload load 1b @ network header + 4 => reg 1 ]
  [ lookup reg 1 set __set%d 0x1 ]

# arp hlen { 33-55}
__set%d test-netdev 7
__set%d test-netdev 0
	element 00000000  : 1 [end]	element 00000021  : 0 [end]	element 00000038  : 1 [end]
netdev test-netdev ingress 
  [ meta load protocol => reg 1 ]
  [ cmp eq reg 1 0x00000608 ]
  [ payload load 1b @ network header + 4 => reg 1 ]
  [ lookup reg 1 set __set%d ]

# arp hlen != { 33-55}
__set%d test-netdev 7
__set%d test-netdev 0
	element 00000000  : 1 [end]	element 00000021  : 0 [end]	element 00000038  : 1 [end]
netdev test-netdev ingress 
  [ meta load protocol => reg 1 ]
  [ cmp eq reg 1 0x00000608 ]
  [ payload load 1b @ network header + 4 => reg 1 ]
  [ lookup reg 1 set __set%d 0x1 ]

# arp plen 22
netdev test-netdev ingress 
  [ meta load protocol => reg 1 ]
  [ cmp eq reg 1 0x00000608 ]
  [ payload load 1b @ network header + 5 => reg 1 ]
  [ cmp eq reg 1 0x00000016 ]

# arp plen != 233
netdev test-netdev ingress 
  [ meta load protocol => reg 1 ]
  [ cmp eq reg 1 0x00000608 ]
  [ payload load 1b @ network header + 5 => reg 1 ]
  [ cmp neq reg 1 0x000000e9 ]

# arp plen 33-45
netdev test-netdev ingress 
  [ meta load protocol => reg 1 ]
  [ cmp eq reg 1 0x00000608 ]
  [ payload load 1b @ network header + 5 => reg 1 ]
  [ cmp gte reg 1 0x00000021 ]
  [ cmp lte reg 1 0x0000002d ]

# arp plen != 33-45
netdev test-netdev ingress 
  [ meta load protocol => reg 1 ]
  [ cmp eq reg 1 0x00000608 ]
  [ payload load 1b @ network header + 5 => reg 1 ]
  [ range neq reg 1 0x00000021 0x0000002d ]

# arp plen { 33, 55, 67, 88}
__set%d test-netdev 3
__set%d test-netdev 0
	element 00000021  : 0 [end]	element 00000037  : 0 [end]	element 00000043  : 0 [end]	element 00000058  : 0 [end]
netdev test-netdev ingress 
  [ meta load protocol => reg 1 ]
  [ cmp eq reg 1 0x00000608 ]
  [ payload load 1b @ network header + 5 => reg 1 ]
  [ lookup reg 1 set __set%d ]

# arp plen != { 33, 55, 67, 88}
__set%d test-netdev 3
__set%d test-netdev 0
	element 00000021  : 0 [end]	element 00000037  : 0 [end]	element 00000043  : 0 [end]	element 00000058  : 0 [end]
netdev test-netdev ingress 
  [ meta load protocol => reg 1 ]
  [ cmp eq reg 1 0x00000608 ]
  [ payload load 1b @ network header + 5 => reg 1 ]
  [ lookup reg 1 set __set%d 0x1 ]

# arp plen { 33-55}
__set%d test-netdev 7
__set%d test-netdev 0
	element 00000000  : 1 [end]	element 00000021  : 0 [end]	element 00000038  : 1 [end]
netdev test-netdev ingress 
  [ meta load protocol => reg 1 ]
  [ cmp eq reg 1 0x00000608 ]
  [ payload load 1b @ network header + 5 => reg 1 ]
  [ lookup reg 1 set __set%d ]

# arp plen != {33-55}
__set%d test-netdev 7
__set%d test-netdev 0
	element 00000000  : 1 [end]	element 00000021  : 0 [end]	element 00000038  : 1 [end]
netdev test-netdev ingress 
  [ meta load protocol => reg 1 ]
  [ cmp eq reg 1 0x00000608 ]
  [ payload load 1b @ network header + 5 => reg 1 ]
  [ lookup reg 1 set __set%d 0x1 ]

# arp operation {nak, inreply, inrequest, rreply, rrequest, reply, request}
__set%d test-netdev 3
__set%d test-netdev 0
	element 00000a00  : 0 [end]	element 00000900  : 0 [end]	element 00000800  : 0 [end]	element 00000400  : 0 [end]	element 00000300  : 0 [end]	element 00000200  : 0 [end]	element 00000100  : 0 [end]
netdev test-netdev ingress 
  [ meta load protocol => reg 1 ]
  [ cmp eq reg 1 0x00000608 ]
  [ payload load 2b @ network header + 6 => reg 1 ]
  [ lookup reg 1 set __set%d ]

# arp operation != {nak, inreply, inrequest, rreply, rrequest, reply, request}
__set%d test-netdev 3
__set%d test-netdev 0
	element 00000a00  : 0 [end]	element 00000900  : 0 [end]	element 00000800  : 0 [end]	element 00000400  : 0 [end]	element 00000300  : 0 [end]	element 00000200  : 0 [end]	element 00000100  : 0 [end]
netdev test-netdev ingress 
  [ meta load protocol => reg 1 ]
  [ cmp eq reg 1 0x00000608 ]
  [ payload load 2b @ network header + 6 => reg 1 ]
  [ lookup reg 1 set __set%d 0x1 ]

# arp operation 1-2
netdev test-netdev ingress
  [ meta load protocol => reg 1 ]
  [ cmp eq reg 1 0x00000608 ]
  [ payload load 2b @ network header + 6 => reg 1 ]
  [ cmp gte reg 1 0x00000100 ]
  [ cmp lte reg 1 0x00000200 ]

# arp operation request
netdev test-netdev ingress 
  [ meta load protocol => reg 1 ]
  [ cmp eq reg 1 0x00000608 ]
  [ payload load 2b @ network header + 6 => reg 1 ]
  [ cmp eq reg 1 0x00000100 ]

# arp operation reply
netdev test-netdev ingress 
  [ meta load protocol => reg 1 ]
  [ cmp eq reg 1 0x00000608 ]
  [ payload load 2b @ network header + 6 => reg 1 ]
  [ cmp eq reg 1 0x00000200 ]

# arp operation rrequest
netdev test-netdev ingress 
  [ meta load protocol => reg 1 ]
  [ cmp eq reg 1 0x00000608 ]
  [ payload load 2b @ network header + 6 => reg 1 ]
  [ cmp eq reg 1 0x00000300 ]

# arp operation rreply
netdev test-netdev ingress 
  [ meta load protocol => reg 1 ]
  [ cmp eq reg 1 0x00000608 ]
  [ payload load 2b @ network header + 6 => reg 1 ]
  [ cmp eq reg 1 0x00000400 ]

# arp operation inrequest
netdev test-netdev ingress 
  [ meta load protocol => reg 1 ]
  [ cmp eq reg 1 0x00000608 ]
  [ payload load 2b @ network header + 6 => reg 1 ]
  [ cmp eq reg 1 0x00000800 ]

# arp operation inreply
netdev test-netdev ingress 
  [ meta load protocol => reg 1 ]
  [ cmp eq reg 1 0x00000608 ]
  [ payload load 2b @ network header + 6 => reg 1 ]
  [ cmp eq reg 1 0x00000900 ]

# arp operation nak
netdev test-netdev ingress 
  [ meta load protocol => reg 1 ]
  [ cmp eq reg 1 0x00000608 ]
  [ payload load 2b @ network header + 6 => reg 1 ]
  [ cmp eq reg 1 0x00000a00 ]

# arp operation reply
netdev test-netdev ingress 
  [ meta load protocol => reg 1 ]
  [ cmp eq reg 1 0x00000608 ]
  [ payload load 2b @ network header + 6 => reg 1 ]
  [ cmp eq reg 1 0x00000200 ]

# arp operation != request
netdev test-netdev ingress 
  [ meta load protocol => reg 1 ]
  [ cmp eq reg 1 0x00000608 ]
  [ payload load 2b @ network header + 6 => reg 1 ]
  [ cmp neq reg 1 0x00000100 ]

# arp operation != reply
netdev test-netdev ingress 
  [ meta load protocol => reg 1 ]
  [ cmp eq reg 1 0x00000608 ]
  [ payload load 2b @ network header + 6 => reg 1 ]
  [ cmp neq reg 1 0x00000200 ]

# arp operation != rrequest
netdev test-netdev ingress 
  [ meta load protocol => reg 1 ]
  [ cmp eq reg 1 0x00000608 ]
  [ payload load 2b @ network header + 6 => reg 1 ]
  [ cmp neq reg 1 0x00000300 ]

# arp operation != rreply
netdev test-netdev ingress 
  [ meta load protocol => reg 1 ]
  [ cmp eq reg 1 0x00000608 ]
  [ payload load 2b @ network header + 6 => reg 1 ]
  [ cmp neq reg 1 0x00000400 ]

# arp operation != inrequest
netdev test-netdev ingress 
  [ meta load protocol => reg 1 ]
  [ cmp eq reg 1 0x00000608 ]
  [ payload load 2b @ network header + 6 => reg 1 ]
  [ cmp neq reg 1 0x00000800 ]

# arp operation != inreply
netdev test-netdev ingress 
  [ meta load protocol => reg 1 ]
  [ cmp eq reg 1 0x00000608 ]
  [ payload load 2b @ network header + 6 => reg 1 ]
  [ cmp neq reg 1 0x00000900 ]

# arp operation != nak
netdev test-netdev ingress 
  [ meta load protocol => reg 1 ]
  [ cmp eq reg 1 0x00000608 ]
  [ payload load 2b @ network header + 6 => reg 1 ]
  [ cmp neq reg 1 0x00000a00 ]

# arp operation != reply
netdev test-netdev ingress 
  [ meta load protocol => reg 1 ]
  [ cmp eq reg 1 0x00000608 ]
  [ payload load 2b @ network header + 6 => reg 1 ]
  [ cmp neq reg 1 0x00000200 ]

# meta iifname "invalid" arp ptype 0x0800 arp htype 1 arp hlen 6 arp plen 4 @nh,192,32 0xc0a88f10 @nh,144,48 set 0x112233445566
netdev test-netdev ingress
  [ meta load iifname => reg 1 ]
  [ cmp eq reg 1 0x61766e69 0x0064696c 0x00000000 0x00000000 ]
  [ meta load protocol => reg 1 ]
  [ cmp eq reg 1 0x00000608 ]
  [ payload load 4b @ network header + 0 => reg 1 ]
  [ cmp eq reg 1 0x00080100 ]
  [ payload load 2b @ network header + 4 => reg 1 ]
  [ cmp eq reg 1 0x00000406 ]
  [ payload load 4b @ network header + 24 => reg 1 ]
  [ cmp eq reg 1 0x108fa8c0 ]
  [ immediate reg 1 0x44332211 0x00006655 ]
  [ payload write reg 1 => 6b @ network header + 18 csum_type 0 csum_off 0 csum_flags 0x0 ]

# arp saddr ip 1.2.3.4
netdev test-netdev ingress 
  [ meta load protocol => reg 1 ]
  [ cmp eq reg 1 0x00000608 ]
  [ payload load 4b @ network header + 14 => reg 1 ]
  [ cmp eq reg 1 0x04030201 ]

# arp daddr ip 4.3.2.1
netdev test-netdev ingress 
  [ meta load protocol => reg 1 ]
  [ cmp eq reg 1 0x00000608 ]
  [ payload load 4b @ network header + 24 => reg 1 ]
  [ cmp eq reg 1 0x01020304 ]

# arp saddr ether aa:bb:cc:aa:bb:cc
netdev test-netdev ingress 
  [ meta load protocol => reg 1 ]
  [ cmp eq reg 1 0x00000608 ]
  [ payload load 6b @ network header + 8 => reg 1 ]
  [ cmp eq reg 1 0xaaccbbaa 0x0000ccbb ]

# arp daddr ether aa:bb:cc:aa:bb:cc
netdev test-netdev ingress 
  [ meta load protocol => reg 1 ]
  [ cmp eq reg 1 0x00000608 ]
  [ payload load 6b @ network header + 18 => reg 1 ]
  [ cmp eq reg 1 0xaaccbbaa 0x0000ccbb ]