# arp htype 1 arp test-arp input [ payload load 2b @ network header + 0 => reg 1 ] [ cmp eq reg 1 0x00000100 ] # arp htype != 1 arp test-arp input [ payload load 2b @ network header + 0 => reg 1 ] [ cmp neq reg 1 0x00000100 ] # arp htype 22 arp test-arp input [ payload load 2b @ network header + 0 => reg 1 ] [ cmp eq reg 1 0x00001600 ] # arp htype != 233 arp test-arp input [ payload load 2b @ network header + 0 => reg 1 ] [ cmp neq reg 1 0x0000e900 ] # arp htype 33-45 arp test-arp input [ payload load 2b @ network header + 0 => reg 1 ] [ cmp gte reg 1 0x00002100 ] [ cmp lte reg 1 0x00002d00 ] # arp htype != 33-45 arp test-arp input [ payload load 2b @ network header + 0 => reg 1 ] [ range neq reg 1 0x00002100 0x00002d00 ] # arp htype { 33, 55, 67, 88} __set%d test-arp 3 __set%d test-arp 0 element 00002100 : 0 [end] element 00003700 : 0 [end] element 00004300 : 0 [end] element 00005800 : 0 [end] arp test-arp input [ payload load 2b @ network header + 0 => reg 1 ] [ lookup reg 1 set __set%d ] # arp htype != { 33, 55, 67, 88} __set%d test-arp 3 __set%d test-arp 0 element 00002100 : 0 [end] element 00003700 : 0 [end] element 00004300 : 0 [end] element 00005800 : 0 [end] arp test-arp input [ payload load 2b @ network header + 0 => reg 1 ] [ lookup reg 1 set __set%d 0x1 ] # arp htype { 33-55} __set%d test-arp 7 __set%d test-arp 0 element 00000000 : 1 [end] element 00002100 : 0 [end] element 00003800 : 1 [end] arp test-arp input [ payload load 2b @ network header + 0 => reg 1 ] [ lookup reg 1 set __set%d ] # arp htype != { 33-55} __set%d test-arp 7 __set%d test-arp 0 element 00000000 : 1 [end] element 00002100 : 0 [end] element 00003800 : 1 [end] arp test-arp input [ payload load 2b @ network header + 0 => reg 1 ] [ lookup reg 1 set __set%d 0x1 ] # arp ptype 0x0800 arp test-arp input [ payload load 2b @ network header + 2 => reg 1 ] [ cmp eq reg 1 0x00000008 ] # arp hlen 22 arp test-arp input [ payload load 1b @ network header + 4 => reg 1 ] [ cmp eq reg 1 0x00000016 ] # arp hlen != 233 arp test-arp input [ payload load 1b @ network header + 4 => reg 1 ] [ cmp neq reg 1 0x000000e9 ] # arp hlen 33-45 arp test-arp input [ payload load 1b @ network header + 4 => reg 1 ] [ cmp gte reg 1 0x00000021 ] [ cmp lte reg 1 0x0000002d ] # arp hlen != 33-45 arp test-arp input [ payload load 1b @ network header + 4 => reg 1 ] [ range neq reg 1 0x00000021 0x0000002d ] # arp hlen { 33, 55, 67, 88} __set%d test-arp 3 __set%d test-arp 0 element 00000021 : 0 [end] element 00000037 : 0 [end] element 00000043 : 0 [end] element 00000058 : 0 [end] arp test-arp input [ payload load 1b @ network header + 4 => reg 1 ] [ lookup reg 1 set __set%d ] # arp hlen != { 33, 55, 67, 88} __set%d test-arp 3 __set%d test-arp 0 element 00000021 : 0 [end] element 00000037 : 0 [end] element 00000043 : 0 [end] element 00000058 : 0 [end] arp test-arp input [ payload load 1b @ network header + 4 => reg 1 ] [ lookup reg 1 set __set%d 0x1 ] # arp hlen { 33-55} __set%d test-arp 7 __set%d test-arp 0 element 00000000 : 1 [end] element 00000021 : 0 [end] element 00000038 : 1 [end] arp test-arp input [ payload load 1b @ network header + 4 => reg 1 ] [ lookup reg 1 set __set%d ] # arp hlen != { 33-55} __set%d test-arp 7 __set%d test-arp 0 element 00000000 : 1 [end] element 00000021 : 0 [end] element 00000038 : 1 [end] arp test-arp input [ payload load 1b @ network header + 4 => reg 1 ] [ lookup reg 1 set __set%d 0x1 ] # arp plen 22 arp test-arp input [ payload load 1b @ network header + 5 => reg 1 ] [ cmp eq reg 1 0x00000016 ] # arp plen != 233 arp test-arp input [ payload load 1b @ network header + 5 => reg 1 ] [ cmp neq reg 1 0x000000e9 ] # arp plen 33-45 arp test-arp input [ payload load 1b @ network header + 5 => reg 1 ] [ cmp gte reg 1 0x00000021 ] [ cmp lte reg 1 0x0000002d ] # arp plen != 33-45 arp test-arp input [ payload load 1b @ network header + 5 => reg 1 ] [ range neq reg 1 0x00000021 0x0000002d ] # arp plen { 33, 55, 67, 88} __set%d test-arp 3 __set%d test-arp 0 element 00000021 : 0 [end] element 00000037 : 0 [end] element 00000043 : 0 [end] element 00000058 : 0 [end] arp test-arp input [ payload load 1b @ network header + 5 => reg 1 ] [ lookup reg 1 set __set%d ] # arp plen != { 33, 55, 67, 88} __set%d test-arp 3 __set%d test-arp 0 element 00000021 : 0 [end] element 00000037 : 0 [end] element 00000043 : 0 [end] element 00000058 : 0 [end] arp test-arp input [ payload load 1b @ network header + 5 => reg 1 ] [ lookup reg 1 set __set%d 0x1 ] # arp plen { 33-55} __set%d test-arp 7 __set%d test-arp 0 element 00000000 : 1 [end] element 00000021 : 0 [end] element 00000038 : 1 [end] arp test-arp input [ payload load 1b @ network header + 5 => reg 1 ] [ lookup reg 1 set __set%d ] # arp plen != {33-55} __set%d test-arp 7 __set%d test-arp 0 element 00000000 : 1 [end] element 00000021 : 0 [end] element 00000038 : 1 [end] arp test-arp input [ 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-arp 3 __set%d test-arp 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] arp test-arp input [ 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-arp 3 __set%d test-arp 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] arp test-arp input [ payload load 2b @ network header + 6 => reg 1 ] [ lookup reg 1 set __set%d 0x1 ] # arp operation request arp test-arp input [ payload load 2b @ network header + 6 => reg 1 ] [ cmp eq reg 1 0x00000100 ] # arp operation reply arp test-arp input [ payload load 2b @ network header + 6 => reg 1 ] [ cmp eq reg 1 0x00000200 ] # arp operation rrequest arp test-arp input [ payload load 2b @ network header + 6 => reg 1 ] [ cmp eq reg 1 0x00000300 ] # arp operation rreply arp test-arp input [ payload load 2b @ network header + 6 => reg 1 ] [ cmp eq reg 1 0x00000400 ] # arp operation inrequest arp test-arp input [ payload load 2b @ network header + 6 => reg 1 ] [ cmp eq reg 1 0x00000800 ] # arp operation inreply arp test-arp input [ payload load 2b @ network header + 6 => reg 1 ] [ cmp eq reg 1 0x00000900 ] # arp operation nak arp test-arp input [ payload load 2b @ network header + 6 => reg 1 ] [ cmp eq reg 1 0x00000a00 ] # arp operation reply arp test-arp input [ payload load 2b @ network header + 6 => reg 1 ] [ cmp eq reg 1 0x00000200 ] # arp operation != request arp test-arp input [ payload load 2b @ network header + 6 => reg 1 ] [ cmp neq reg 1 0x00000100 ] # arp operation != reply arp test-arp input [ payload load 2b @ network header + 6 => reg 1 ] [ cmp neq reg 1 0x00000200 ] # arp operation != rrequest arp test-arp input [ payload load 2b @ network header + 6 => reg 1 ] [ cmp neq reg 1 0x00000300 ] # arp operation != rreply arp test-arp input [ payload load 2b @ network header + 6 => reg 1 ] [ cmp neq reg 1 0x00000400 ] # arp operation != inrequest arp test-arp input [ payload load 2b @ network header + 6 => reg 1 ] [ cmp neq reg 1 0x00000800 ] # arp operation != inreply arp test-arp input [ payload load 2b @ network header + 6 => reg 1 ] [ cmp neq reg 1 0x00000900 ] # arp operation != nak arp test-arp input [ payload load 2b @ network header + 6 => reg 1 ] [ cmp neq reg 1 0x00000a00 ] # arp operation != reply arp test-arp input [ payload load 2b @ network header + 6 => reg 1 ] [ cmp neq reg 1 0x00000200 ]