3 [ meta load len => reg 1 ]
4 [ cmp eq reg 1 0x000003e8 ]
8 [ meta load len => reg 1 ]
9 [ cmp eq reg 1 0x00000016 ]
13 [ meta load len => reg 1 ]
14 [ cmp neq reg 1 0x000000e9 ]
18 [ meta load len => reg 1 ]
19 [ byteorder reg 1 = hton(reg 1, 4, 4) ]
20 [ cmp gte reg 1 0x21000000 ]
21 [ cmp lte reg 1 0x2d000000 ]
23 # meta length != 33-45
25 [ meta load len => reg 1 ]
26 [ byteorder reg 1 = hton(reg 1, 4, 4) ]
27 [ range neq reg 1 0x21000000 0x2d000000 ]
29 # meta length { 33, 55, 67, 88}
32 element 00000021 : 0 [end] element 00000037 : 0 [end] element 00000043 : 0 [end] element 00000058 : 0 [end]
34 [ meta load len => reg 1 ]
35 [ lookup reg 1 set __set%d ]
37 # meta length { 33-55, 67-88}
40 element 00000000 : 1 [end] element 21000000 : 0 [end] element 38000000 : 1 [end] element 43000000 : 0 [end] element 59000000 : 1 [end]
42 [ meta load len => reg 1 ]
43 [ byteorder reg 1 = hton(reg 1, 4, 4) ]
44 [ lookup reg 1 set __set%d ]
46 # meta length { 33-55, 56-88, 100-120}
49 element 00000000 : 1 [end] element 21000000 : 0 [end] element 59000000 : 1 [end] element 64000000 : 0 [end] element 79000000 : 1 [end]
51 [ meta load len => reg 1 ]
52 [ byteorder reg 1 = hton(reg 1, 4, 4) ]
53 [ lookup reg 1 set __set%d ]
55 # meta length != { 33, 55, 67, 88}
58 element 00000021 : 0 [end] element 00000037 : 0 [end] element 00000043 : 0 [end] element 00000058 : 0 [end]
60 [ meta load len => reg 1 ]
61 [ lookup reg 1 set __set%d 0x1 ]
63 # meta protocol { ip, arp, ip6, vlan }
66 element 00000008 : 0 [end] element 00000608 : 0 [end] element 0000dd86 : 0 [end] element 00000081 : 0 [end]
68 [ meta load protocol => reg 1 ]
69 [ lookup reg 1 set __set%d ]
71 # meta protocol != {ip, arp, ip6, 8021q}
74 element 00000008 : 0 [end] element 00000608 : 0 [end] element 0000dd86 : 0 [end] element 00000081 : 0 [end]
76 [ meta load protocol => reg 1 ]
77 [ lookup reg 1 set __set%d 0x1 ]
81 [ meta load protocol => reg 1 ]
82 [ cmp eq reg 1 0x00000008 ]
86 [ meta load protocol => reg 1 ]
87 [ cmp neq reg 1 0x00000008 ]
91 [ meta load l4proto => reg 1 ]
92 [ cmp eq reg 1 0x00000016 ]
96 [ meta load l4proto => reg 1 ]
97 [ cmp neq reg 1 0x000000e9 ]
101 [ meta load l4proto => reg 1 ]
102 [ cmp gte reg 1 0x00000021 ]
103 [ cmp lte reg 1 0x0000002d ]
105 # meta l4proto != 33-45
107 [ meta load l4proto => reg 1 ]
108 [ range neq reg 1 0x00000021 0x0000002d ]
110 # meta l4proto { 33, 55, 67, 88}
113 element 00000021 : 0 [end] element 00000037 : 0 [end] element 00000043 : 0 [end] element 00000058 : 0 [end]
115 [ meta load l4proto => reg 1 ]
116 [ lookup reg 1 set __set%d ]
118 # meta l4proto != { 33, 55, 67, 88}
121 element 00000021 : 0 [end] element 00000037 : 0 [end] element 00000043 : 0 [end] element 00000058 : 0 [end]
123 [ meta load l4proto => reg 1 ]
124 [ lookup reg 1 set __set%d 0x1 ]
128 [ meta load mark => reg 1 ]
129 [ cmp eq reg 1 0x00000004 ]
133 [ meta load mark => reg 1 ]
134 [ cmp eq reg 1 0x00000032 ]
136 # meta mark and 0x03 == 0x01
138 [ meta load mark => reg 1 ]
139 [ bitwise reg 1 = ( reg 1 & 0x00000003 ) ^ 0x00000000 ]
140 [ cmp eq reg 1 0x00000001 ]
142 # meta mark and 0x03 != 0x01
144 [ meta load mark => reg 1 ]
145 [ bitwise reg 1 = ( reg 1 & 0x00000003 ) ^ 0x00000000 ]
146 [ cmp neq reg 1 0x00000001 ]
150 [ meta load mark => reg 1 ]
151 [ cmp eq reg 1 0x00000010 ]
155 [ meta load mark => reg 1 ]
156 [ cmp neq reg 1 0x00000010 ]
158 # meta mark 0xffffff00/24
160 [ meta load mark => reg 1 ]
161 [ bitwise reg 1 = ( reg 1 & 0xffffff00 ) ^ 0x00000000 ]
162 [ cmp eq reg 1 0xffffff00 ]
164 # meta mark or 0x03 == 0x01
166 [ meta load mark => reg 1 ]
167 [ bitwise reg 1 = ( reg 1 & 0xfffffffc ) ^ 0x00000003 ]
168 [ cmp eq reg 1 0x00000001 ]
170 # meta mark or 0x03 != 0x01
172 [ meta load mark => reg 1 ]
173 [ bitwise reg 1 = ( reg 1 & 0xfffffffc ) ^ 0x00000003 ]
174 [ cmp neq reg 1 0x00000001 ]
176 # meta mark xor 0x03 == 0x01
178 [ meta load mark => reg 1 ]
179 [ cmp eq reg 1 0x00000002 ]
181 # meta mark xor 0x03 != 0x01
183 [ meta load mark => reg 1 ]
184 [ cmp neq reg 1 0x00000002 ]
186 # meta iif "lo" accept
188 [ meta load iif => reg 1 ]
189 [ cmp eq reg 1 0x00000001 ]
190 [ immediate reg 0 accept ]
192 # meta iif != "lo" accept
194 [ meta load iif => reg 1 ]
195 [ cmp neq reg 1 0x00000001 ]
196 [ immediate reg 0 accept ]
198 # meta iifname "dummy0"
200 [ meta load iifname => reg 1 ]
201 [ cmp eq reg 1 0x6d6d7564 0x00003079 0x00000000 0x00000000 ]
203 # meta iifname != "dummy0"
205 [ meta load iifname => reg 1 ]
206 [ cmp neq reg 1 0x6d6d7564 0x00003079 0x00000000 0x00000000 ]
208 # meta iifname {"dummy0", "lo"}
211 element 6d6d7564 00003079 00000000 00000000 : 0 [end] element 00006f6c 00000000 00000000 00000000 : 0 [end]
213 [ meta load iifname => reg 1 ]
214 [ lookup reg 1 set __set%d ]
216 # meta iifname != {"dummy0", "lo"}
219 element 6d6d7564 00003079 00000000 00000000 : 0 [end] element 00006f6c 00000000 00000000 00000000 : 0 [end]
221 [ meta load iifname => reg 1 ]
222 [ lookup reg 1 set __set%d 0x1 ]
224 # meta iifname "dummy*"
226 [ meta load iifname => reg 1 ]
227 [ cmp eq reg 1 0x6d6d7564 0x00000079 ]
229 # meta iifname "dummy\*"
231 [ meta load iifname => reg 1 ]
232 [ cmp eq reg 1 0x6d6d7564 0x00002a79 0x00000000 0x00000000 ]
234 # meta iiftype {ether, ppp, ipip, ipip6, loopback, sit, ipgre}
237 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]
239 [ meta load iiftype => reg 1 ]
240 [ lookup reg 1 set __set%d ]
242 # meta iiftype != {ether, ppp, ipip, ipip6, loopback, sit, ipgre}
245 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]
247 [ meta load iiftype => reg 1 ]
248 [ lookup reg 1 set __set%d 0x1 ]
250 # meta iiftype != ether
252 [ meta load iiftype => reg 1 ]
253 [ cmp neq reg 1 0x00000001 ]
257 [ meta load iiftype => reg 1 ]
258 [ cmp eq reg 1 0x00000001 ]
260 # meta iiftype != ppp
262 [ meta load iiftype => reg 1 ]
263 [ cmp neq reg 1 0x00000200 ]
267 [ meta load iiftype => reg 1 ]
268 [ cmp eq reg 1 0x00000200 ]
270 # meta oif "lo" accept
272 [ meta load oif => reg 1 ]
273 [ cmp eq reg 1 0x00000001 ]
274 [ immediate reg 0 accept ]
276 # meta oif != "lo" accept
278 [ meta load oif => reg 1 ]
279 [ cmp neq reg 1 0x00000001 ]
280 [ immediate reg 0 accept ]
282 # meta oifname "dummy0"
284 [ meta load oifname => reg 1 ]
285 [ cmp eq reg 1 0x6d6d7564 0x00003079 0x00000000 0x00000000 ]
287 # meta oifname != "dummy0"
289 [ meta load oifname => reg 1 ]
290 [ cmp neq reg 1 0x6d6d7564 0x00003079 0x00000000 0x00000000 ]
292 # meta oifname { "dummy0", "lo"}
295 element 6d6d7564 00003079 00000000 00000000 : 0 [end] element 00006f6c 00000000 00000000 00000000 : 0 [end]
297 [ meta load oifname => reg 1 ]
298 [ lookup reg 1 set __set%d ]
300 # meta oifname "dummy*"
302 [ meta load oifname => reg 1 ]
303 [ cmp eq reg 1 0x6d6d7564 0x00000079 ]
305 # meta oifname "dummy\*"
307 [ meta load oifname => reg 1 ]
308 [ cmp eq reg 1 0x6d6d7564 0x00002a79 0x00000000 0x00000000 ]
310 # meta oiftype {ether, ppp, ipip, ipip6, loopback, sit, ipgre}
313 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]
315 [ meta load oiftype => reg 1 ]
316 [ lookup reg 1 set __set%d ]
318 # meta oiftype != {ether, ppp, ipip, ipip6, loopback, sit, ipgre}
321 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]
323 [ meta load oiftype => reg 1 ]
324 [ lookup reg 1 set __set%d 0x1 ]
326 # meta oiftype != ether
328 [ meta load oiftype => reg 1 ]
329 [ cmp neq reg 1 0x00000001 ]
333 [ meta load oiftype => reg 1 ]
334 [ cmp eq reg 1 0x00000001 ]
336 # meta skuid {"bin", "root", "daemon"} accept
339 element 00000001 : 0 [end] element 00000000 : 0 [end] element 00000002 : 0 [end]
341 [ meta load skuid => reg 1 ]
342 [ lookup reg 1 set __set%d ]
343 [ immediate reg 0 accept ]
345 # meta skuid != {"bin", "root", "daemon"} accept
348 element 00000001 : 0 [end] element 00000000 : 0 [end] element 00000002 : 0 [end]
350 [ meta load skuid => reg 1 ]
351 [ lookup reg 1 set __set%d 0x1 ]
352 [ immediate reg 0 accept ]
356 [ meta load skuid => reg 1 ]
357 [ cmp eq reg 1 0x00000000 ]
359 # meta skuid != "root"
361 [ meta load skuid => reg 1 ]
362 [ cmp neq reg 1 0x00000000 ]
364 # meta skuid lt 3000 accept
366 [ meta load skuid => reg 1 ]
367 [ byteorder reg 1 = hton(reg 1, 4, 4) ]
368 [ cmp lt reg 1 0xb80b0000 ]
369 [ immediate reg 0 accept ]
371 # meta skuid gt 3000 accept
373 [ meta load skuid => reg 1 ]
374 [ byteorder reg 1 = hton(reg 1, 4, 4) ]
375 [ cmp gt reg 1 0xb80b0000 ]
376 [ immediate reg 0 accept ]
378 # meta skuid eq 3000 accept
380 [ meta load skuid => reg 1 ]
381 [ cmp eq reg 1 0x00000bb8 ]
382 [ immediate reg 0 accept ]
384 # meta skuid 3001-3005 accept
386 [ meta load skuid => reg 1 ]
387 [ byteorder reg 1 = hton(reg 1, 4, 4) ]
388 [ cmp gte reg 1 0xb90b0000 ]
389 [ cmp lte reg 1 0xbd0b0000 ]
390 [ immediate reg 0 accept ]
392 # meta skuid != 2001-2005 accept
394 [ meta load skuid => reg 1 ]
395 [ byteorder reg 1 = hton(reg 1, 4, 4) ]
396 [ range neq reg 1 0xd1070000 0xd5070000 ]
397 [ immediate reg 0 accept ]
399 # meta skgid {"bin", "root", "daemon"} accept
402 element 00000001 : 0 [end] element 00000000 : 0 [end] element 00000002 : 0 [end]
404 [ meta load skgid => reg 1 ]
405 [ lookup reg 1 set __set%d ]
406 [ immediate reg 0 accept ]
408 # meta skgid != {"bin", "root", "daemon"} accept
411 element 00000001 : 0 [end] element 00000000 : 0 [end] element 00000002 : 0 [end]
413 [ meta load skgid => reg 1 ]
414 [ lookup reg 1 set __set%d 0x1 ]
415 [ immediate reg 0 accept ]
419 [ meta load skgid => reg 1 ]
420 [ cmp eq reg 1 0x00000000 ]
422 # meta skgid != "root"
424 [ meta load skgid => reg 1 ]
425 [ cmp neq reg 1 0x00000000 ]
427 # meta skgid lt 3000 accept
429 [ meta load skgid => reg 1 ]
430 [ byteorder reg 1 = hton(reg 1, 4, 4) ]
431 [ cmp lt reg 1 0xb80b0000 ]
432 [ immediate reg 0 accept ]
434 # meta skgid gt 3000 accept
436 [ meta load skgid => reg 1 ]
437 [ byteorder reg 1 = hton(reg 1, 4, 4) ]
438 [ cmp gt reg 1 0xb80b0000 ]
439 [ immediate reg 0 accept ]
441 # meta skgid eq 3000 accept
443 [ meta load skgid => reg 1 ]
444 [ cmp eq reg 1 0x00000bb8 ]
445 [ immediate reg 0 accept ]
447 # meta skgid 2001-2005 accept
449 [ meta load skgid => reg 1 ]
450 [ byteorder reg 1 = hton(reg 1, 4, 4) ]
451 [ cmp gte reg 1 0xd1070000 ]
452 [ cmp lte reg 1 0xd5070000 ]
453 [ immediate reg 0 accept ]
455 # meta skgid != 2001-2005 accept
457 [ meta load skgid => reg 1 ]
458 [ byteorder reg 1 = hton(reg 1, 4, 4) ]
459 [ range neq reg 1 0xd1070000 0xd5070000 ]
460 [ immediate reg 0 accept ]
462 # meta mark set 0xffffffc8 xor 0x16
464 [ immediate reg 1 0xffffffde ]
465 [ meta set mark with reg 1 ]
467 # meta mark set 0x16 and 0x16
469 [ immediate reg 1 0x00000016 ]
470 [ meta set mark with reg 1 ]
472 # meta mark set 0xffffffe9 or 0x16
474 [ immediate reg 1 0xffffffff ]
475 [ meta set mark with reg 1 ]
477 # meta mark set 0xffffffde and 0x16
479 [ immediate reg 1 0x00000016 ]
480 [ meta set mark with reg 1 ]
482 # meta mark set 0xf045ffde or 0x10
484 [ immediate reg 1 0xf045ffde ]
485 [ meta set mark with reg 1 ]
487 # meta mark set 0xffffffde or 0x16
489 [ immediate reg 1 0xffffffde ]
490 [ meta set mark with reg 1 ]
492 # meta mark set 0x32 or 0xfffff
494 [ immediate reg 1 0x000fffff ]
495 [ meta set mark with reg 1 ]
497 # meta mark set 0xfffe xor 0x16
499 [ immediate reg 1 0x0000ffe8 ]
500 [ meta set mark with reg 1 ]
504 [ meta load iif => reg 1 ]
505 [ cmp eq reg 1 0x00000001 ]
509 [ meta load oif => reg 1 ]
510 [ cmp eq reg 1 0x00000001 ]
512 # meta oifname "dummy2" accept
514 [ meta load oifname => reg 1 ]
515 [ cmp eq reg 1 0x6d6d7564 0x00003279 0x00000000 0x00000000 ]
516 [ immediate reg 0 accept ]
520 [ meta load skuid => reg 1 ]
521 [ cmp eq reg 1 0x00000bb8 ]
525 [ meta load skgid => reg 1 ]
526 [ cmp eq reg 1 0x00000bb8 ]
528 # meta rtclassid "cosmos"
530 [ meta load rtclassid => reg 1 ]
531 [ cmp eq reg 1 0x00000000 ]
533 # meta pkttype broadcast
535 [ meta load pkttype => reg 1 ]
536 [ cmp eq reg 1 0x00000001 ]
540 [ meta load pkttype => reg 1 ]
541 [ cmp eq reg 1 0x00000000 ]
543 # meta pkttype multicast
545 [ meta load pkttype => reg 1 ]
546 [ cmp eq reg 1 0x00000002 ]
548 # meta pkttype != broadcast
550 [ meta load pkttype => reg 1 ]
551 [ cmp neq reg 1 0x00000001 ]
553 # meta pkttype != host
555 [ meta load pkttype => reg 1 ]
556 [ cmp neq reg 1 0x00000000 ]
558 # meta pkttype != multicast
560 [ meta load pkttype => reg 1 ]
561 [ cmp neq reg 1 0x00000002 ]
563 # pkttype { broadcast, multicast} accept
566 element 00000001 : 0 [end] element 00000002 : 0 [end]
568 [ meta load pkttype => reg 1 ]
569 [ lookup reg 1 set __set%d ]
570 [ immediate reg 0 accept ]
574 [ meta load cpu => reg 1 ]
575 [ cmp eq reg 1 0x00000001 ]
579 [ meta load cpu => reg 1 ]
580 [ cmp neq reg 1 0x00000001 ]
584 [ meta load cpu => reg 1 ]
585 [ byteorder reg 1 = hton(reg 1, 4, 4) ]
586 [ cmp gte reg 1 0x01000000 ]
587 [ cmp lte reg 1 0x03000000 ]
591 [ meta load cpu => reg 1 ]
592 [ byteorder reg 1 = hton(reg 1, 4, 4) ]
593 [ range neq reg 1 0x01000000 0x02000000 ]
598 element 00000002 : 0 [end] element 00000003 : 0 [end]
600 [ meta load cpu => reg 1 ]
601 [ lookup reg 1 set __set%d ]
606 element 00000002 : 0 [end] element 00000003 : 0 [end]
608 [ meta load cpu => reg 1 ]
609 [ lookup reg 1 set __set%d 0x1 ]
611 # meta cpu { 2-3, 5-7}
614 element 00000000 : 1 [end] element 02000000 : 0 [end] element 04000000 : 1 [end] element 05000000 : 0 [end] element 08000000 : 1 [end]
616 [ meta load cpu => reg 1 ]
617 [ byteorder reg 1 = hton(reg 1, 4, 4) ]
618 [ lookup reg 1 set __set%d ]
622 [ meta load iifgroup => reg 1 ]
623 [ cmp eq reg 1 0x00000000 ]
627 [ meta load iifgroup => reg 1 ]
628 [ cmp neq reg 1 0x00000000 ]
630 # meta iifgroup "default"
632 [ meta load iifgroup => reg 1 ]
633 [ cmp eq reg 1 0x00000000 ]
635 # meta iifgroup != "default"
637 [ meta load iifgroup => reg 1 ]
638 [ cmp neq reg 1 0x00000000 ]
640 # meta iifgroup { 11,33}
643 element 0000000b : 0 [end] element 00000021 : 0 [end]
645 [ meta load iifgroup => reg 1 ]
646 [ lookup reg 1 set __set%d ]
650 [ meta load oifgroup => reg 1 ]
651 [ cmp eq reg 1 0x00000000 ]
655 [ meta load oifgroup => reg 1 ]
656 [ cmp neq reg 1 0x00000000 ]
658 # meta oifgroup "default"
660 [ meta load oifgroup => reg 1 ]
661 [ cmp eq reg 1 0x00000000 ]
663 # meta oifgroup != "default"
665 [ meta load oifgroup => reg 1 ]
666 [ cmp neq reg 1 0x00000000 ]
668 # meta oifgroup { 11,33}
671 element 0000000b : 0 [end] element 00000021 : 0 [end]
673 [ meta load oifgroup => reg 1 ]
674 [ lookup reg 1 set __set%d ]
676 # meta cgroup 1048577
678 [ meta load cgroup => reg 1 ]
679 [ cmp eq reg 1 0x00100001 ]
681 # meta cgroup != 1048577
683 [ meta load cgroup => reg 1 ]
684 [ cmp neq reg 1 0x00100001 ]
686 # meta cgroup { 1048577, 1048578 }
689 element 00100001 : 0 [end] element 00100002 : 0 [end]
691 [ meta load cgroup => reg 1 ]
692 [ lookup reg 1 set __set%d ]
694 # meta cgroup != { 1048577, 1048578}
697 element 00100001 : 0 [end] element 00100002 : 0 [end]
699 [ meta load cgroup => reg 1 ]
700 [ lookup reg 1 set __set%d 0x1 ]
702 # meta cgroup 1048577-1048578
704 [ meta load cgroup => reg 1 ]
705 [ byteorder reg 1 = hton(reg 1, 4, 4) ]
706 [ cmp gte reg 1 0x01001000 ]
707 [ cmp lte reg 1 0x02001000 ]
709 # meta cgroup != 1048577-1048578
711 [ meta load cgroup => reg 1 ]
712 [ byteorder reg 1 = hton(reg 1, 4, 4) ]
713 [ range neq reg 1 0x01001000 0x02001000 ]
715 # meta iif . meta oif { "lo" . "lo" }
718 element 00000001 00000001 : 0 [end]
720 [ meta load iif => reg 1 ]
721 [ meta load oif => reg 9 ]
722 [ lookup reg 1 set __set%d ]
724 # meta iif . meta oif . meta mark { "lo" . "lo" . 0x0000000a }
727 element 00000001 00000001 0000000a : 0 [end]
729 [ meta load iif => reg 1 ]
730 [ meta load oif => reg 9 ]
731 [ meta load mark => reg 10 ]
732 [ lookup reg 1 set __set%d ]
734 # meta iif . meta oif vmap { "lo" . "lo" : drop }
737 element 00000001 00000001 : drop 0 [end]
739 [ meta load iif => reg 1 ]
740 [ meta load oif => reg 9 ]
741 [ lookup reg 1 set __map%d dreg 0 ]
745 [ meta load prandom => reg 1 ]
746 [ cmp eq reg 1 0x01000000 ]
748 # meta random gt 1000000
750 [ meta load prandom => reg 1 ]
751 [ cmp gt reg 1 0x40420f00 ]
755 [ meta load priority => reg 1 ]
756 [ cmp eq reg 1 0xffffffff ]
759 netdev test-netdev ingress
760 [ meta load priority => reg 1 ]
761 [ cmp eq reg 1 0x00000000 ]
763 # meta priority 1:1234
765 [ meta load priority => reg 1 ]
766 [ cmp eq reg 1 0x00011234 ]
768 # meta priority bcad:dadc
770 [ meta load priority => reg 1 ]
771 [ cmp eq reg 1 0xbcaddadc ]
773 # meta priority aabb:0
775 [ meta load priority => reg 1 ]
776 [ cmp eq reg 1 0xaabb0000 ]
778 # meta priority != bcad:dadc
780 [ meta load priority => reg 1 ]
781 [ cmp neq reg 1 0xbcaddadc ]
783 # meta priority != aabb:0
785 [ meta load priority => reg 1 ]
786 [ cmp neq reg 1 0xaabb0000 ]
788 # meta priority bcad:dada-bcad:dadc
790 [ meta load priority => reg 1 ]
791 [ byteorder reg 1 = hton(reg 1, 4, 4) ]
792 [ cmp gte reg 1 0xdadaadbc ]
793 [ cmp lte reg 1 0xdcdaadbc ]
795 # meta priority != bcad:dada-bcad:dadc
797 [ meta load priority => reg 1 ]
798 [ byteorder reg 1 = hton(reg 1, 4, 4) ]
799 [ range neq reg 1 0xdadaadbc 0xdcdaadbc ]
801 # meta priority {bcad:dada, bcad:dadc, aaaa:bbbb}
804 element bcaddada : 0 [end] element bcaddadc : 0 [end] element aaaabbbb : 0 [end]
806 [ meta load priority => reg 1 ]
807 [ lookup reg 1 set __set%d ]
809 # meta priority set cafe:beef
811 [ immediate reg 1 0xcafebeef ]
812 [ meta set priority with reg 1 ]
814 # meta priority != {bcad:dada, bcad:dadc, aaaa:bbbb}
817 element bcaddada : 0 [end] element bcaddadc : 0 [end] element aaaabbbb : 0 [end]
819 [ meta load priority => reg 1 ]
820 [ lookup reg 1 set __set%d 0x1 ]
822 # meta priority 0x87654321
824 [ meta load priority => reg 1 ]
825 [ cmp eq reg 1 0x87654321 ]
827 # meta priority 2271560481
829 [ meta load priority => reg 1 ]
830 [ cmp eq reg 1 0x87654321 ]
832 # meta length { 33-55, 66-88}
833 __set%d test-ip4 7 size 5
835 element 00000000 : 1 [end] element 21000000 : 0 [end] element 38000000 : 1 [end] element 42000000 : 0 [end] element 59000000 : 1 [end]
837 [ meta load len => reg 1 ]
838 [ byteorder reg 1 = hton(reg 1, 4, 4) ]
839 [ lookup reg 1 set __set%d ]
841 # meta length != { 33-55, 66-88}
842 __set%d test-ip4 7 size 5
844 element 00000000 : 1 [end] element 21000000 : 0 [end] element 38000000 : 1 [end] element 42000000 : 0 [end] element 59000000 : 1 [end]
846 [ meta load len => reg 1 ]
847 [ byteorder reg 1 = hton(reg 1, 4, 4) ]
848 [ lookup reg 1 set __set%d 0x1 ]
850 # meta l4proto { 33-55, 66-88}
851 __set%d test-ip4 7 size 5
853 element 00000000 : 1 [end] element 00000021 : 0 [end] element 00000038 : 1 [end] element 00000042 : 0 [end] element 00000059 : 1 [end]
855 [ meta load l4proto => reg 1 ]
856 [ lookup reg 1 set __set%d ]
858 # meta l4proto != { 33-55, 66-88}
859 __set%d test-ip4 7 size 5
861 element 00000000 : 1 [end] element 00000021 : 0 [end] element 00000038 : 1 [end] element 00000042 : 0 [end] element 00000059 : 1 [end]
863 [ meta load l4proto => reg 1 ]
864 [ lookup reg 1 set __set%d 0x1 ]
866 # meta skuid { 2001-2005, 3001-3005} accept
867 __set%d test-ip4 7 size 5
869 element 00000000 : 1 [end] element d1070000 : 0 [end] element d6070000 : 1 [end] element b90b0000 : 0 [end] element be0b0000 : 1 [end]
871 [ meta load skuid => reg 1 ]
872 [ byteorder reg 1 = hton(reg 1, 4, 4) ]
873 [ lookup reg 1 set __set%d ]
874 [ immediate reg 0 accept ]
876 # meta iifgroup {"default", 11}
877 __set%d test-ip4 3 size 2
879 element 00000000 : 0 [end] element 0000000b : 0 [end]
881 [ meta load iifgroup => reg 1 ]
882 [ lookup reg 1 set __set%d ]
884 # meta iifgroup != {"default", 11}
885 __set%d test-ip4 3 size 2
887 element 00000000 : 0 [end] element 0000000b : 0 [end]
889 [ meta load iifgroup => reg 1 ]
890 [ lookup reg 1 set __set%d 0x1 ]
892 # meta iifgroup {11-33, 44-55}
893 __set%d test-ip4 7 size 5
895 element 00000000 : 1 [end] element 0b000000 : 0 [end] element 22000000 : 1 [end] element 2c000000 : 0 [end] element 38000000 : 1 [end]
897 [ meta load iifgroup => reg 1 ]
898 [ byteorder reg 1 = hton(reg 1, 4, 4) ]
899 [ lookup reg 1 set __set%d ]
901 # meta iifgroup != { 11,33}
902 __set%d test-ip4 3 size 2
904 element 0000000b : 0 [end] element 00000021 : 0 [end]
906 [ meta load iifgroup => reg 1 ]
907 [ lookup reg 1 set __set%d 0x1 ]
909 # meta iifgroup != {11-33, 44-55}
910 __set%d test-ip4 7 size 5
912 element 00000000 : 1 [end] element 0b000000 : 0 [end] element 22000000 : 1 [end] element 2c000000 : 0 [end] element 38000000 : 1 [end]
914 [ meta load iifgroup => reg 1 ]
915 [ byteorder reg 1 = hton(reg 1, 4, 4) ]
916 [ lookup reg 1 set __set%d 0x1 ]
918 # meta oifgroup {"default", 11}
919 __set%d test-ip4 3 size 2
921 element 00000000 : 0 [end] element 0000000b : 0 [end]
923 [ meta load oifgroup => reg 1 ]
924 [ lookup reg 1 set __set%d ]
926 # meta oifgroup {11-33, 44-55}
927 __set%d test-ip4 7 size 5
929 element 00000000 : 1 [end] element 0b000000 : 0 [end] element 22000000 : 1 [end] element 2c000000 : 0 [end] element 38000000 : 1 [end]
931 [ meta load oifgroup => reg 1 ]
932 [ byteorder reg 1 = hton(reg 1, 4, 4) ]
933 [ lookup reg 1 set __set%d ]
935 # meta oifgroup != { 11,33}
936 __set%d test-ip4 3 size 2
938 element 0000000b : 0 [end] element 00000021 : 0 [end]
940 [ meta load oifgroup => reg 1 ]
941 [ lookup reg 1 set __set%d 0x1 ]
943 # meta oifgroup != {11-33, 44-55}
944 __set%d test-ip4 7 size 5
946 element 00000000 : 1 [end] element 0b000000 : 0 [end] element 22000000 : 1 [end] element 2c000000 : 0 [end] element 38000000 : 1 [end]
948 [ meta load oifgroup => reg 1 ]
949 [ byteorder reg 1 = hton(reg 1, 4, 4) ]
950 [ lookup reg 1 set __set%d 0x1 ]
952 # meta skuid != { 2001-2005, 3001-3005} accept
953 __set%d test-ip4 7 size 5
955 element 00000000 : 1 [end] element d1070000 : 0 [end] element d6070000 : 1 [end] element b90b0000 : 0 [end] element be0b0000 : 1 [end]
957 [ meta load skuid => reg 1 ]
958 [ byteorder reg 1 = hton(reg 1, 4, 4) ]
959 [ lookup reg 1 set __set%d 0x1 ]
960 [ immediate reg 0 accept ]
962 # meta oifgroup != {"default", 11}
963 __set%d test-ip4 3 size 2
965 element 00000000 : 0 [end] element 0000000b : 0 [end]
967 [ meta load oifgroup => reg 1 ]
968 [ lookup reg 1 set __set%d 0x1 ]
970 # meta time "1970-05-23 21:07:14" drop
972 [ meta load time => reg 1 ]
973 [ cmp eq reg 1 0x43f05400 0x002bd503 ]
974 [ immediate reg 0 drop ]
976 # meta time 12341234 drop
978 [ meta load time => reg 1 ]
979 [ cmp eq reg 1 0x74a8f400 0x002bd849 ]
980 [ immediate reg 0 drop ]
982 # meta time "2019-06-21 17:00:00" drop
984 [ meta load time => reg 1 ]
985 [ cmp eq reg 1 0x767d6000 0x15aa3ebc ]
986 [ immediate reg 0 drop ]
988 # meta time "2019-07-01 00:00:00" drop
990 [ meta load time => reg 1 ]
991 [ cmp eq reg 1 0xe750c000 0x15ad18e0 ]
992 [ immediate reg 0 drop ]
994 # meta time "2019-07-01 00:01:00" drop
996 [ meta load time => reg 1 ]
997 [ cmp eq reg 1 0xdf981800 0x15ad18ee ]
998 [ immediate reg 0 drop ]
1000 # meta time "2019-07-01 00:00:01" drop
1002 [ meta load time => reg 1 ]
1003 [ cmp eq reg 1 0x22eb8a00 0x15ad18e1 ]
1004 [ immediate reg 0 drop ]
1006 # meta time < "2022-07-01 11:00:00" accept
1008 [ meta load time => reg 1 ]
1009 [ byteorder reg 1 = hton(reg 1, 8, 8) ]
1010 [ cmp lt reg 1 0xf3a8fd16 0x00a07719 ]
1011 [ immediate reg 0 accept ]
1013 # meta time > "2022-07-01 11:00:00" accept
1015 [ meta load time => reg 1 ]
1016 [ byteorder reg 1 = hton(reg 1, 8, 8) ]
1017 [ cmp gt reg 1 0xf3a8fd16 0x00a07719 ]
1018 [ immediate reg 0 accept ]
1020 # meta day "Saturday" drop
1022 [ meta load day => reg 1 ]
1023 [ cmp eq reg 1 0x00000006 ]
1024 [ immediate reg 0 drop ]
1028 [ meta load day => reg 1 ]
1029 [ cmp eq reg 1 0x00000006 ]
1030 [ immediate reg 0 drop ]
1032 # meta hour "17:00" drop
1034 [ meta load hour => reg 1 ]
1035 [ cmp eq reg 1 0x0000d2f0 ]
1036 [ immediate reg 0 drop ]
1038 # meta hour "17:00:00" drop
1040 [ meta load hour => reg 1 ]
1041 [ cmp eq reg 1 0x0000d2f0 ]
1042 [ immediate reg 0 drop ]
1044 # meta hour "17:00:01" drop
1046 [ meta load hour => reg 1 ]
1047 [ cmp eq reg 1 0x0000d2f1 ]
1048 [ immediate reg 0 drop ]
1050 # meta hour "00:00" drop
1052 [ meta load hour => reg 1 ]
1053 [ cmp eq reg 1 0x00013560 ]
1054 [ immediate reg 0 drop ]
1056 # meta hour "00:01" drop
1058 [ meta load hour => reg 1 ]
1059 [ cmp eq reg 1 0x0001359c ]
1060 [ immediate reg 0 drop ]
1062 # time < "2022-07-01 11:00:00" accept
1064 [ meta load time => reg 1 ]
1065 [ byteorder reg 1 = hton(reg 1, 8, 8) ]
1066 [ cmp lt reg 1 0xf3a8fd16 0x00a07719 ]
1067 [ immediate reg 0 accept ]
1069 # time > "2022-07-01 11:00:00" accept
1071 [ meta load time => reg 1 ]
1072 [ byteorder reg 1 = hton(reg 1, 8, 8) ]
1073 [ cmp gt reg 1 0xf3a8fd16 0x00a07719 ]
1074 [ immediate reg 0 accept ]