# meta length 1000 ip test-ip4 input [ meta load len => reg 1 ] [ cmp eq reg 1 0x000003e8 ] # meta length 22 ip test-ip4 input [ meta load len => reg 1 ] [ cmp eq reg 1 0x00000016 ] # meta length != 233 ip test-ip4 input [ meta load len => reg 1 ] [ cmp neq reg 1 0x000000e9 ] # meta length 33-45 ip test-ip4 input [ meta load len => reg 1 ] [ byteorder reg 1 = hton(reg 1, 4, 4) ] [ cmp gte reg 1 0x21000000 ] [ cmp lte reg 1 0x2d000000 ] # meta length != 33-45 ip test-ip4 input [ meta load len => reg 1 ] [ byteorder reg 1 = hton(reg 1, 4, 4) ] [ cmp lt reg 1 0x21000000 ] [ cmp gt reg 1 0x2d000000 ] # meta length { 33, 55, 67, 88} set%d test-ip4 3 set%d test-ip4 0 element 00000021 : 0 [end] element 00000037 : 0 [end] element 00000043 : 0 [end] element 00000058 : 0 [end] ip test-ip4 input [ meta load len => reg 1 ] [ lookup reg 1 set set%d ] # meta length { 33-55} set%d test-ip4 7 set%d test-ip4 0 element 00000000 : 1 [end] element 21000000 : 0 [end] element 38000000 : 1 [end] ip test-ip4 input [ meta load len => reg 1 ] [ byteorder reg 1 = hton(reg 1, 4, 4) ] [ lookup reg 1 set set%d ] # meta length { 33-55, 67-88} set%d test-ip4 7 set%d test-ip4 0 element 00000000 : 1 [end] element 21000000 : 0 [end] element 38000000 : 1 [end] element 43000000 : 0 [end] element 59000000 : 1 [end] ip test-ip4 input [ meta load len => reg 1 ] [ byteorder reg 1 = hton(reg 1, 4, 4) ] [ lookup reg 1 set set%d ] # meta length { 33-55, 55-88, 100-120} set%d test-ip4 7 set%d test-ip4 0 element 00000000 : 1 [end] element 21000000 : 0 [end] element 59000000 : 1 [end] element 64000000 : 0 [end] element 79000000 : 1 [end] ip test-ip4 input [ meta load len => reg 1 ] [ byteorder reg 1 = hton(reg 1, 4, 4) ] [ lookup reg 1 set set%d ] # meta protocol { ip, arp, ip6, vlan } set%d test-ip4 3 set%d test-ip4 0 element 00000008 : 0 [end] element 00000608 : 0 [end] element 0000dd86 : 0 [end] element 00000081 : 0 [end] ip test-ip4 input [ meta load protocol => reg 1 ] [ lookup reg 1 set set%d ] # meta protocol ip ip test-ip4 input [ meta load protocol => reg 1 ] [ cmp eq reg 1 0x00000008 ] # meta protocol != ip ip test-ip4 input [ meta load protocol => reg 1 ] [ cmp neq reg 1 0x00000008 ] # 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 l4proto 22 ip test-ip4 input [ meta load l4proto => reg 1 ] [ cmp eq reg 1 0x00000016 ] # meta l4proto != 233 ip test-ip4 input [ meta load l4proto => reg 1 ] [ cmp neq reg 1 0x000000e9 ] # meta l4proto 33-45 ip test-ip4 input [ meta load l4proto => reg 1 ] [ byteorder reg 1 = hton(reg 1, 2, 1) ] [ cmp gte reg 1 0x00000021 ] [ cmp lte reg 1 0x0000002d ] # meta l4proto != 33-45 ip test-ip4 input [ meta load l4proto => reg 1 ] [ byteorder reg 1 = hton(reg 1, 2, 1) ] [ cmp lt reg 1 0x00000021 ] [ cmp gt reg 1 0x0000002d ] # meta l4proto { 33, 55, 67, 88} set%d test-ip4 3 set%d test-ip4 0 element 00000021 : 0 [end] element 00000037 : 0 [end] element 00000043 : 0 [end] element 00000058 : 0 [end] ip test-ip4 input [ meta load l4proto => reg 1 ] [ lookup reg 1 set set%d ] # meta l4proto { 33-55} set%d test-ip4 7 set%d test-ip4 0 element 00000000 : 1 [end] element 00000021 : 0 [end] element 00000038 : 1 [end] ip test-ip4 input [ meta load l4proto => reg 1 ] [ byteorder reg 1 = hton(reg 1, 2, 1) ] [ lookup reg 1 set set%d ] # meta mark 0x4 ip test-ip4 input [ meta load mark => reg 1 ] [ cmp eq reg 1 0x00000004 ] # meta mark 0x32 ip test-ip4 input [ meta load mark => reg 1 ] [ cmp eq reg 1 0x00000032 ] # meta mark and 0x03 == 0x01 ip test-ip4 input [ meta load mark => reg 1 ] [ bitwise reg 1 = (reg=1 & 0x00000003 ) ^ 0x00000000 ] [ cmp eq reg 1 0x00000001 ] # meta mark and 0x03 != 0x01 ip test-ip4 input [ meta load mark => reg 1 ] [ bitwise reg 1 = (reg=1 & 0x00000003 ) ^ 0x00000000 ] [ cmp neq reg 1 0x00000001 ] # meta mark 0x10 ip test-ip4 input [ meta load mark => reg 1 ] [ cmp eq reg 1 0x00000010 ] # meta mark != 0x10 ip test-ip4 input [ meta load mark => reg 1 ] [ cmp neq reg 1 0x00000010 ] # meta mark or 0x03 == 0x01 ip test-ip4 input [ meta load mark => reg 1 ] [ bitwise reg 1 = (reg=1 & 0xfffffffc ) ^ 0x00000003 ] [ cmp eq reg 1 0x00000001 ] # meta mark or 0x03 != 0x01 ip test-ip4 input [ meta load mark => reg 1 ] [ bitwise reg 1 = (reg=1 & 0xfffffffc ) ^ 0x00000003 ] [ cmp neq reg 1 0x00000001 ] # meta mark xor 0x03 == 0x01 ip test-ip4 input [ meta load mark => reg 1 ] [ cmp eq reg 1 0x00000002 ] # meta mark xor 0x03 != 0x01 ip test-ip4 input [ meta load mark => reg 1 ] [ cmp neq reg 1 0x00000002 ] # meta iif eth0 accept ip test-ip4 input [ meta load iif => reg 1 ] [ cmp eq reg 1 0x00000002 ] [ immediate reg 0 accept ] # meta iif eth0 accept ip test-ip4 input [ meta load iif => reg 1 ] [ cmp eq reg 1 0x00000002 ] [ immediate reg 0 accept ] # meta iif != eth0 accept ip test-ip4 input [ meta load iif => reg 1 ] [ cmp neq reg 1 0x00000002 ] [ immediate reg 0 accept ] # meta iif != eth0 accept ip test-ip4 input [ meta load iif => reg 1 ] [ cmp neq reg 1 0x00000002 ] [ immediate reg 0 accept ] # meta iifname "eth0" ip test-ip4 input [ meta load iifname => reg 1 ] [ cmp eq reg 1 0x30687465 0x00000000 0x00000000 0x00000000 ] # meta iifname != "eth0" ip test-ip4 input [ meta load iifname => reg 1 ] [ cmp neq reg 1 0x30687465 0x00000000 0x00000000 0x00000000 ] # meta iifname {"eth0", "lo"} set%d test-ip4 3 set%d test-ip4 0 element 30687465 00000000 00000000 00000000 : 0 [end] element 00006f6c 00000000 00000000 00000000 : 0 [end] ip test-ip4 input [ meta load iifname => reg 1 ] [ lookup reg 1 set set%d ] # meta iifname "eth*" ip test-ip4 input [ meta load iifname => reg 1 ] [ cmp eq reg 1 0x00687465 ] # meta iifname "eth\*" ip test-ip4 input [ meta load iifname => reg 1 ] [ cmp eq reg 1 0x2a687465 0x00000000 0x00000000 0x00000000 ] # meta iiftype {ether, ppp, ipip, ipip6, loopback, sit, ipgre} set%d test-ip4 3 set%d test-ip4 0 element 00000001 : 0 [end] element 00000200 : 0 [end] element 00000300 : 0 [end] element 00000301 : 0 [end] element 00000304 : 0 [end] element 00000308 : 0 [end] element 0000030a : 0 [end] ip test-ip4 input [ meta load iiftype => reg 1 ] [ lookup reg 1 set set%d ] # meta iiftype != ether ip test-ip4 input [ meta load iiftype => reg 1 ] [ cmp neq reg 1 0x00000001 ] # meta iiftype ether ip test-ip4 input [ meta load iiftype => reg 1 ] [ cmp eq reg 1 0x00000001 ] # meta iiftype != ppp ip test-ip4 input [ meta load iiftype => reg 1 ] [ cmp neq reg 1 0x00000200 ] # meta iiftype ppp ip test-ip4 input [ meta load iiftype => reg 1 ] [ cmp eq reg 1 0x00000200 ] # meta oif lo accept ip test-ip4 input [ meta load oif => reg 1 ] [ cmp eq reg 1 0x00000001 ] [ immediate reg 0 accept ] # meta oif != lo accept ip test-ip4 input [ meta load oif => reg 1 ] [ cmp neq reg 1 0x00000001 ] [ immediate reg 0 accept ] # meta oif {eth0, lo} accept set%d test-ip4 3 set%d test-ip4 0 element 00000002 : 0 [end] element 00000001 : 0 [end] ip test-ip4 input [ meta load oif => reg 1 ] [ lookup reg 1 set set%d ] [ immediate reg 0 accept ] # meta oifname "eth0" ip test-ip4 input [ meta load oifname => reg 1 ] [ cmp eq reg 1 0x30687465 0x00000000 0x00000000 0x00000000 ] # meta oifname != "eth0" ip test-ip4 input [ meta load oifname => reg 1 ] [ cmp neq reg 1 0x30687465 0x00000000 0x00000000 0x00000000 ] # meta oifname { "eth0", "lo"} set%d test-ip4 3 set%d test-ip4 0 element 30687465 00000000 00000000 00000000 : 0 [end] element 00006f6c 00000000 00000000 00000000 : 0 [end] ip test-ip4 input [ meta load oifname => reg 1 ] [ lookup reg 1 set set%d ] # meta oifname "eth*" ip test-ip4 input [ meta load oifname => reg 1 ] [ cmp eq reg 1 0x00687465 ] # meta oifname "eth\*" ip test-ip4 input [ meta load oifname => reg 1 ] [ cmp eq reg 1 0x2a687465 0x00000000 0x00000000 0x00000000 ] # meta oiftype {ether, ppp, ipip, ipip6, loopback, sit, ipgre} set%d test-ip4 3 set%d test-ip4 0 element 00000001 : 0 [end] element 00000200 : 0 [end] element 00000300 : 0 [end] element 00000301 : 0 [end] element 00000304 : 0 [end] element 00000308 : 0 [end] element 0000030a : 0 [end] ip test-ip4 input [ meta load oiftype => reg 1 ] [ lookup reg 1 set set%d ] # meta oiftype != ether ip test-ip4 input [ meta load oiftype => reg 1 ] [ cmp neq reg 1 0x00000001 ] # meta oiftype ether ip test-ip4 input [ meta load oiftype => reg 1 ] [ cmp eq reg 1 0x00000001 ] # meta skuid {bin, root, daemon} accept set%d test-ip4 3 set%d test-ip4 0 element 00000001 : 0 [end] element 00000000 : 0 [end] element 00000002 : 0 [end] ip test-ip4 input [ meta load skuid => reg 1 ] [ lookup reg 1 set set%d ] [ immediate reg 0 accept ] # meta skuid root ip test-ip4 input [ meta load skuid => reg 1 ] [ cmp eq reg 1 0x00000000 ] # meta skuid != root ip test-ip4 input [ meta load skuid => reg 1 ] [ cmp neq reg 1 0x00000000 ] # meta skuid lt 3000 accept ip test-ip4 input [ meta load skuid => reg 1 ] [ byteorder reg 1 = hton(reg 1, 4, 4) ] [ cmp lt reg 1 0xb80b0000 ] [ immediate reg 0 accept ] # meta skuid gt 3000 accept ip test-ip4 input [ meta load skuid => reg 1 ] [ byteorder reg 1 = hton(reg 1, 4, 4) ] [ cmp gt reg 1 0xb80b0000 ] [ immediate reg 0 accept ] # meta skuid eq 3000 accept ip test-ip4 input [ meta load skuid => reg 1 ] [ cmp eq reg 1 0x00000bb8 ] [ immediate reg 0 accept ] # meta skuid 3001-3005 accept ip test-ip4 input [ meta load skuid => reg 1 ] [ byteorder reg 1 = hton(reg 1, 4, 4) ] [ cmp gte reg 1 0xb90b0000 ] [ cmp lte reg 1 0xbd0b0000 ] [ immediate reg 0 accept ] # meta skuid != 2001-2005 accept ip test-ip4 input [ meta load skuid => reg 1 ] [ byteorder reg 1 = hton(reg 1, 4, 4) ] [ cmp lt reg 1 0xd1070000 ] [ cmp gt reg 1 0xd5070000 ] [ immediate reg 0 accept ] # meta skuid { 2001-2005} accept set%d test-ip4 7 set%d test-ip4 0 element 00000000 : 1 [end] element d1070000 : 0 [end] element d6070000 : 1 [end] ip test-ip4 input [ meta load skuid => reg 1 ] [ byteorder reg 1 = hton(reg 1, 4, 4) ] [ lookup reg 1 set set%d ] [ immediate reg 0 accept ] # meta skgid {bin, root, daemon} accept set%d test-ip4 3 set%d test-ip4 0 element 00000001 : 0 [end] element 00000000 : 0 [end] element 00000002 : 0 [end] ip test-ip4 input [ meta load skgid => reg 1 ] [ lookup reg 1 set set%d ] [ immediate reg 0 accept ] # meta skgid root ip test-ip4 input [ meta load skgid => reg 1 ] [ cmp eq reg 1 0x00000000 ] # meta skgid != root ip test-ip4 input [ meta load skgid => reg 1 ] [ cmp neq reg 1 0x00000000 ] # meta skgid lt 3000 accept ip test-ip4 input [ meta load skgid => reg 1 ] [ byteorder reg 1 = hton(reg 1, 4, 4) ] [ cmp lt reg 1 0xb80b0000 ] [ immediate reg 0 accept ] # meta skgid gt 3000 accept ip test-ip4 input [ meta load skgid => reg 1 ] [ byteorder reg 1 = hton(reg 1, 4, 4) ] [ cmp gt reg 1 0xb80b0000 ] [ immediate reg 0 accept ] # meta skgid eq 3000 accept ip test-ip4 input [ meta load skgid => reg 1 ] [ cmp eq reg 1 0x00000bb8 ] [ immediate reg 0 accept ] # meta skgid 2001-2005 accept ip test-ip4 input [ meta load skgid => reg 1 ] [ byteorder reg 1 = hton(reg 1, 4, 4) ] [ cmp gte reg 1 0xd1070000 ] [ cmp lte reg 1 0xd5070000 ] [ immediate reg 0 accept ] # meta skgid != 2001-2005 accept ip test-ip4 input [ meta load skgid => reg 1 ] [ byteorder reg 1 = hton(reg 1, 4, 4) ] [ cmp lt reg 1 0xd1070000 ] [ cmp gt reg 1 0xd5070000 ] [ immediate reg 0 accept ] # meta skgid { 2001-2005} accept set%d test-ip4 7 set%d test-ip4 0 element 00000000 : 1 [end] element d1070000 : 0 [end] element d6070000 : 1 [end] ip test-ip4 input [ meta load skgid => reg 1 ] [ byteorder reg 1 = hton(reg 1, 4, 4) ] [ lookup reg 1 set set%d ] [ immediate reg 0 accept ] # meta mark set 0xffffffc8 xor 0x16 ip test-ip4 input [ immediate reg 1 0xffffffde ] [ meta set mark with reg 1 ] # meta mark set 0x16 and 0x16 ip test-ip4 input [ immediate reg 1 0x00000016 ] [ meta set mark with reg 1 ] # meta mark set 0xffffffe9 or 0x16 ip test-ip4 input [ immediate reg 1 0xffffffff ] [ meta set mark with reg 1 ] # meta mark set 0xffffffde and 0x16 ip test-ip4 input [ immediate reg 1 0x00000016 ] [ meta set mark with reg 1 ] # meta mark set 0xf045ffde or 0x10 ip test-ip4 input [ immediate reg 1 0xf045ffde ] [ meta set mark with reg 1 ] # meta mark set 0xffffffde or 0x16 ip test-ip4 input [ immediate reg 1 0xffffffde ] [ meta set mark with reg 1 ] # meta mark set 0x32 or 0xfffff ip test-ip4 input [ immediate reg 1 0x000fffff ] [ meta set mark with reg 1 ] # meta mark set 0xfffe xor 0x16 ip test-ip4 input [ immediate reg 1 0x0000ffe8 ] [ meta set mark with reg 1 ] # meta iif lo ip test-ip4 input [ meta load iif => reg 1 ] [ cmp eq reg 1 0x00000001 ] # meta oif lo ip test-ip4 input [ meta load oif => reg 1 ] [ cmp eq reg 1 0x00000001 ] # meta oifname "eth2" accept ip test-ip4 input [ meta load oifname => reg 1 ] [ cmp eq reg 1 0x32687465 0x00000000 0x00000000 0x00000000 ] [ immediate reg 0 accept ] # meta skuid 3000 ip test-ip4 input [ meta load skuid => reg 1 ] [ cmp eq reg 1 0x00000bb8 ] # meta skgid 3000 ip test-ip4 input [ meta load skgid => reg 1 ] [ cmp eq reg 1 0x00000bb8 ] # meta rtclassid cosmos ip test-ip4 input [ meta load rtclassid => reg 1 ] [ cmp eq reg 1 0x00000000 ] # meta pkttype broadcast ip test-ip4 input [ meta load pkttype => reg 1 ] [ cmp eq reg 1 0x00000001 ] # meta pkttype unicast ip test-ip4 input [ meta load pkttype => reg 1 ] [ cmp eq reg 1 0x00000000 ] # meta pkttype multicast ip test-ip4 input [ meta load pkttype => reg 1 ] [ cmp eq reg 1 0x00000002 ] # meta pkttype != broadcast ip test-ip4 input [ meta load pkttype => reg 1 ] [ cmp neq reg 1 0x00000001 ] # meta pkttype != unicast ip test-ip4 input [ meta load pkttype => reg 1 ] [ cmp neq reg 1 0x00000000 ] # meta pkttype != multicast ip test-ip4 input [ meta load pkttype => reg 1 ] [ cmp neq reg 1 0x00000002 ] # meta pkttype { broadcast, multicast} accept set%d test-ip4 3 set%d test-ip4 0 element 00000001 : 0 [end] element 00000002 : 0 [end] ip test-ip4 input [ meta load pkttype => reg 1 ] [ lookup reg 1 set set%d ] [ immediate reg 0 accept ] # meta cpu 1 ip test-ip4 input [ meta load cpu => reg 1 ] [ cmp eq reg 1 0x00000001 ] # meta cpu != 1 ip test-ip4 input [ meta load cpu => reg 1 ] [ cmp neq reg 1 0x00000001 ] # meta cpu 1-3 ip test-ip4 input [ meta load cpu => reg 1 ] [ byteorder reg 1 = hton(reg 1, 4, 4) ] [ cmp gte reg 1 0x01000000 ] [ cmp lte reg 1 0x03000000 ] # meta cpu != 1-2 ip test-ip4 input [ meta load cpu => reg 1 ] [ byteorder reg 1 = hton(reg 1, 4, 4) ] [ cmp lt reg 1 0x01000000 ] [ cmp gt reg 1 0x02000000 ] # meta cpu { 2,3} set%d test-ip4 3 set%d test-ip4 0 element 00000002 : 0 [end] element 00000003 : 0 [end] ip test-ip4 input [ meta load cpu => reg 1 ] [ lookup reg 1 set set%d ] # meta cpu { 2-3, 5-7} set%d test-ip4 7 set%d test-ip4 0 element 00000000 : 1 [end] element 02000000 : 0 [end] element 04000000 : 1 [end] element 05000000 : 0 [end] element 08000000 : 1 [end] ip test-ip4 input [ meta load cpu => reg 1 ] [ byteorder reg 1 = hton(reg 1, 4, 4) ] [ lookup reg 1 set set%d ] # meta iifgroup 0 ip test-ip4 input [ meta load iifgroup => reg 1 ] [ cmp eq reg 1 0x00000000 ] # meta iifgroup != 0 ip test-ip4 input [ meta load iifgroup => reg 1 ] [ cmp neq reg 1 0x00000000 ] # meta iifgroup default ip test-ip4 input [ meta load iifgroup => reg 1 ] [ cmp eq reg 1 0x00000000 ] # meta iifgroup != default ip test-ip4 input [ meta load iifgroup => reg 1 ] [ cmp neq reg 1 0x00000000 ] # meta iifgroup {default} set%d test-ip4 3 set%d test-ip4 0 element 00000000 : 0 [end] ip test-ip4 input [ meta load iifgroup => reg 1 ] [ lookup reg 1 set set%d ] # meta iifgroup { 11,33} set%d test-ip4 3 set%d test-ip4 0 element 0000000b : 0 [end] element 00000021 : 0 [end] ip test-ip4 input [ meta load iifgroup => reg 1 ] [ lookup reg 1 set set%d ] # meta iifgroup {11-33} set%d test-ip4 7 set%d test-ip4 0 element 00000000 : 1 [end] element 0b000000 : 0 [end] element 22000000 : 1 [end] ip test-ip4 input [ meta load iifgroup => reg 1 ] [ byteorder reg 1 = hton(reg 1, 4, 4) ] [ lookup reg 1 set set%d ] # meta oifgroup 0 ip test-ip4 input [ meta load oifgroup => reg 1 ] [ cmp eq reg 1 0x00000000 ] # meta oifgroup != 0 ip test-ip4 input [ meta load oifgroup => reg 1 ] [ cmp neq reg 1 0x00000000 ] # meta oifgroup default ip test-ip4 input [ meta load oifgroup => reg 1 ] [ cmp eq reg 1 0x00000000 ] # meta oifgroup != default ip test-ip4 input [ meta load oifgroup => reg 1 ] [ cmp neq reg 1 0x00000000 ] # meta oifgroup {default} set%d test-ip4 3 set%d test-ip4 0 element 00000000 : 0 [end] ip test-ip4 input [ meta load oifgroup => reg 1 ] [ lookup reg 1 set set%d ] # meta oifgroup { 11,33} set%d test-ip4 3 set%d test-ip4 0 element 0000000b : 0 [end] element 00000021 : 0 [end] ip test-ip4 input [ meta load oifgroup => reg 1 ] [ lookup reg 1 set set%d ] # meta oifgroup {11-33} set%d test-ip4 7 set%d test-ip4 0 element 00000000 : 1 [end] element 0b000000 : 0 [end] element 22000000 : 1 [end] ip test-ip4 input [ meta load oifgroup => reg 1 ] [ byteorder reg 1 = hton(reg 1, 4, 4) ] [ lookup reg 1 set set%d ] # meta cgroup 1048577 ip test-ip4 input [ meta load cgroup => reg 1 ] [ cmp eq reg 1 0x00100001 ] # meta cgroup != 1048577 ip test-ip4 input [ meta load cgroup => reg 1 ] [ cmp neq reg 1 0x00100001 ] # meta cgroup { 1048577, 1048578 } set%d test-ip4 3 set%d test-ip4 0 element 00100001 : 0 [end] element 00100002 : 0 [end] ip test-ip4 input [ meta load cgroup => reg 1 ] [ lookup reg 1 set set%d ] # meta cgroup 1048577-1048578 ip test-ip4 input [ meta load cgroup => reg 1 ] [ byteorder reg 1 = hton(reg 1, 4, 4) ] [ cmp gte reg 1 0x01001000 ] [ cmp lte reg 1 0x02001000 ] # meta cgroup != 1048577-1048578 ip test-ip4 input [ meta load cgroup => reg 1 ] [ byteorder reg 1 = hton(reg 1, 4, 4) ] [ cmp lt reg 1 0x01001000 ] [ cmp gt reg 1 0x02001000 ] # meta cgroup {1048577-1048578} set%d test-ip4 7 set%d test-ip4 0 element 00000000 : 1 [end] element 01001000 : 0 [end] element 03001000 : 1 [end] ip test-ip4 input [ meta load cgroup => reg 1 ] [ byteorder reg 1 = hton(reg 1, 4, 4) ] [ lookup reg 1 set set%d ] # meta iif . meta oif { lo . eth0 } set%d test-ip4 3 set%d test-ip4 0 element 00000001 00000002 : 0 [end] ip test-ip4 output [ meta load iif => reg 1 ] [ meta load oif => reg 9 ] [ lookup reg 1 set set%d ] # meta iif . meta oif . meta mark { lo . eth0 . 0x0000000a } set%d test-ip4 3 set%d test-ip4 0 element 00000001 00000002 0000000a : 0 [end] ip test-ip4 output [ meta load iif => reg 1 ] [ meta load oif => reg 9 ] [ meta load mark => reg 10 ] [ lookup reg 1 set set%d ] # meta iif . meta oif vmap { lo . eth0 : drop } map%d test-ip4 b map%d test-ip4 0 element 00000001 00000002 : 0 [end] ip test-ip4 output [ meta load iif => reg 1 ] [ meta load oif => reg 9 ] [ lookup reg 1 set map%d dreg 0 ]