3 # Copyright (c) 2024 The Tcpdump Group
5 # SPDX-License-Identifier: BSD-2-Clause
7 # Redistribution and use in source and binary forms, with or without
8 # modification, are permitted provided that the following conditions
10 # 1. Redistributions of source code must retain the above copyright
11 # notice, this list of conditions and the following disclaimer.
12 # 2. Redistributions in binary form must reproduce the above copyright
13 # notice, this list of conditions and the following disclaimer in the
14 # documentation and/or other materials provided with the distribution.
16 # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
17 # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
18 # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
19 # FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
20 # COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
21 # INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
22 # BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
23 # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
24 # CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
25 # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
26 # ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
27 # POSSIBILITY OF SUCH DAMAGE.
29 require 5.8.4; # Solaris 10
30 use sigtrap
qw(die normal-signals);
32 use warnings FATAL
=> qw(uninitialized);
37 require $FindBin::RealBin
. '/TEST' . ($Config{useithreads
} ?
'mt' : 'st') . '.pm';
38 require $FindBin::RealBin
. '/TESTlib.pm';
61 use constant SAVEFILE_DIR
=> $FindBin::RealBin
. '/../tests/filter/';
62 my $filename_expected = 'expected.txt';
63 my $filename_stdout = 'stdout.txt';
64 my $filename_filter = 'filter.txt';
65 my $filename_diags = 'diags.txt';
67 # See RFC 6761 Section 6.4.
68 my $nonexistent = 'host.invalid';
72 # On all platforms where timeout(1) is available it exits with status 124
73 # if the command timed out.
76 # In this libpcap version filtertest exits with EX_DATAERR if the user input
77 # is invalid and with other status codes for other (memory/file/etc) error
82 # Set these later only if running any tests.
90 my $myname = $FindBin::Script
;
92 my $ret = "Usage: ${myname} [--passed] [--skipped]
95 (print all test labels)
96 or: ${myname} --one <test_label>
97 (run one test only and print the details)
98 or: ${myname} --config
99 (print the parsed contents of config.h)
101 (print the detailed help screen)
104 --passed print the passed tests details
105 --skipped print the skipped tests details
107 return $ret unless $detailed;
109 Set FILTERTEST_TIMEOUT to 0 to disable the timeout completely or to any other
110 value to override the default timeout. The timeout applies to every test.
111 If TIMEOUT_BIN is not set, the timeout applies iff the default \"timeout\"
112 binary works. If it is set (on macOS there is no default \"timeout\" and the
113 binary from GNU coreutils package may be available as \"gtimeout\" only), the
114 custom binary must work.
116 FILTERTEST_BIN and CONFIG_H allow to specify custom paths to respective files
117 if the current working directory is not the directory where the build output
118 files go to. Otherwise by default this script finds the files for both
119 Autoconf and CMake, both in-tree and out-of-tree builds.
121 TIMEOUT_BIN allows to specify the path to a timeout(1) binary.
123 TESTRUN_JOBS allows to specify the number of tester threads (1 by default).
125 TESTRUN_SHORT=1 generates a shorter list of tests (not recommended unless the
126 host is very slow and time is a factor).
131 my $config_h = defined $ENV{CONFIG_H
} ?
$ENV{CONFIG_H
} : './config.h';
132 my $only_one = undef;
134 my $print_passed = 0;
135 my $print_skipped = 0;
136 my $only_short = defined $ENV{TESTRUN_SHORT
} ?
$ENV{TESTRUN_SHORT
} : 0;
138 'one=s' => \
$only_one,
139 'list' => \
$only_list,
140 'passed' => \
$print_passed,
141 'skipped' => \
$print_skipped,
143 my %config = read_config_h
$config_h;
144 printf "%-50s %s\n", $_, $config{$_} foreach sort keys %config;
147 'help' => sub {print STDOUT usage_text
1; exit EX_OK
;},
149 print STDERR usage_text
0;
152 $print_passed = $print_skipped = 1 if $only_one;
154 # Initialize now so that the skip functions in TESTlib.pm (and therefore the
155 # test declarations below) work as intended.
156 read_config_h
($config_h);
158 # All accept tests require that BDEBUG is not set.
159 die 'ERROR: This script is not compatible with optimizer debugging.' if skip_config_def1
'BDEBUG';
161 # Skip unless the file exists and is readable and contains every given line
162 # (less any duplicates) at least once in any order.
163 sub skip_unless_file_contains_lines
{
164 my $filename = shift;
165 my %notfound = map {$_ => 1} @_;
166 # In Perl 5.8.4 "s///" does not have the "r" option.
167 my $basename = $filename;
168 $basename =~ s
|^.*[/\\]||o
;
169 my $skip = "configure the $basename file";
171 open FH
, '<', $filename or return $skip;
173 s/[\r\n]*$//o; # chomp() removes LF, but not CR, even on Windows.
174 next unless exists $notfound{$_};
175 delete $notfound{$_};
176 last unless scalar keys %notfound;
178 close FH
or die "failed closing '$filename'";
179 return scalar (keys %notfound) ?
$skip : '';
182 # Skip if running on Linux with musl libc.
184 return skip_os
('linux') &&
185 skip_config_undef
('HAVE_GLIBC') &&
186 skip_config_undef
('HAVE_UCLIBC') &&
190 # libpcap.test is a domain subject to RFC 6761 Section 6.2.
192 # Each of the seven hostnames under host123.libpcap.test has 1..3 addresses
193 # (at most one of {Ethernet, IPv4, IPv6} each, at least one in total):
194 # * eth-ipv4-ipv6.host123.libpcap.test
195 # * eth-ipv4-noipv6.host123.libpcap.test
196 # * eth-noipv4-ipv6.host123.libpcap.test
197 # * eth-noipv4-noipv6.host123.libpcap.test
198 # * noeth-ipv4-ipv6.host123.libpcap.test
199 # * noeth-ipv4-noipv6.host123.libpcap.test
200 # * noeth-noipv4-ipv6.host123.libpcap.test
202 # To add tests that require hostnames with a different arrangement of
203 # addresses, consider adding similar mnemonic domains.
205 # The MAC address is in the locally-administered DECnet OUI space.
206 # These 4 lines can be copied into ethers(5) directly:
207 my @ethers_lines = split /\n/, <<EOF;
208 aa:00:04:00:14:0e eth-noipv4-noipv6.host123.libpcap.test
209 aa:00:04:00:14:0e eth-noipv4-ipv6.host123.libpcap.test
210 aa:00:04:00:14:0e eth-ipv4-noipv6.host123.libpcap.test
211 aa:00:04:00:14:0e eth-ipv4-ipv6.host123.libpcap.test
214 # The IPv6 address is subject to RFC4193.
215 # These 8 lines can be copied into hosts(5) directly:
216 my @hosts_lines = split /\n/, <<EOF;
217 10.20.30.40 noeth-ipv4-noipv6.host123.libpcap.test
218 10.20.30.40 noeth-ipv4-ipv6.host123.libpcap.test
219 10.20.30.40 eth-ipv4-noipv6.host123.libpcap.test
220 10.20.30.40 eth-ipv4-ipv6.host123.libpcap.test
221 fd00:a1b2:c3d4::1020:3040:5060:7080 noeth-noipv4-ipv6.host123.libpcap.test
222 fd00:a1b2:c3d4::1020:3040:5060:7080 noeth-ipv4-ipv6.host123.libpcap.test
223 fd00:a1b2:c3d4::1020:3040:5060:7080 eth-noipv4-ipv6.host123.libpcap.test
224 fd00:a1b2:c3d4::1020:3040:5060:7080 eth-ipv4-ipv6.host123.libpcap.test
227 # Dotted-quad is the only portable syntax common to all implementations of
229 # These 3 lines can be copied into networks(5) directly (except on OpenBSD):
230 my @networks_lines = split /\n/, <<EOF;
231 net-10-0-0-0.libpcap.test 10.0.0.0
232 net-10-20-0-0.libpcap.test 10.20.0.0
233 net-10-20-30-0.libpcap.test 10.20.30.0
235 # These 3 lines can be copied into hosts(5) directly (on OpenBSD only):
236 my @networks_lines_swapped = split /\n/, <<EOF;
237 10.0.0.0 net-10-0-0-0.libpcap.test
238 10.20.0.0 net-10-20-0-0.libpcap.test
239 10.20.30.0 net-10-20-30-0.libpcap.test
242 # Skip if /etc/ethers (or the equivalent) has not been configured for tests.
244 # Do not use getent(1): it works, but experiences some portability issues and
245 # does not always test the same code paths as what libpcap uses.
246 my $cached_skip_no_ethers;
248 $cached_skip_no_ethers =
249 # pcap_ether_hostton() currently cannot guess a suitable
250 # location for the libpcap-only ethers(5).
252 skip_unless_file_contains_lines
(
253 $^O
eq 'haiku' ?
'/boot/system/settings/network/ethers' :
256 ) unless defined $cached_skip_no_ethers;
257 return $cached_skip_no_ethers;
260 # Same as the above, plus require the platform to treat hostnames in
261 # ethers(5) correctly (case-insensitive).
262 sub skip_no_ethers_casecmp
{
263 return skip_no_ethers
||
264 # pcap_ether_hostton() uses strcmp().
267 # On illumos and possibly Solaris 11.4 ether_hostton() initially
268 # fails to find any upper-case hostnames, then after a few minutes
269 # it finds some or all of them, or sometimes it does not.
270 skip_os
('solaris') ||
271 # ether_hostton() uses strcmp().
272 skip_os
('freebsd') ||
273 skip_os
('netbsd') ||
277 # Skip if /etc/hosts (or the equivalent) has not been configured for tests.
279 # Do not use getent(1): it experiences too many portability issues (especially
280 # with dual-stack hostnames) to be practicable.
281 my $cached_skip_no_hosts;
283 return '%SYSTEMROOT% not set' if $^O
eq 'msys' && ! defined $ENV{SYSTEMROOT
};
284 $cached_skip_no_hosts = skip_unless_file_contains_lines
(
285 $^O
eq 'haiku' ?
'/boot/system/settings/network/hosts' :
286 $^O
eq 'solaris' ?
'/etc/inet/hosts' :
287 $^O
eq 'msys' ?
"${ENV{SYSTEMROOT}}\\system32\\drivers\\etc\\hosts" :
290 ) unless defined $cached_skip_no_hosts;
291 return $cached_skip_no_hosts;
294 # Same as the above, plus require the platform to treat hostnames in
295 # hosts(5) correctly (case-insensitive).
296 sub skip_no_hosts_casecmp
{
297 return skip_no_hosts
||
298 # getaddrinfo() uses strcmp() on /etc/hosts.
302 # Skip if /etc/networks (or the equivalent) has not been configured for tests.
303 my $cached_skip_no_networks;
304 sub skip_no_networks
{
305 $cached_skip_no_networks =
306 # Does not implement getnetbyname().
308 # getnetbyname() is a no-op.
310 skip_unless_file_contains_lines
(
311 $^O
eq 'solaris' ?
'/etc/inet/networks' :
312 $^O
eq 'haiku' ?
'/etc/networks' : # May change, see haiku bug report 19432.
313 $^O
eq 'openbsd' ?
'/etc/hosts' : # (sic)
315 $^O
eq 'openbsd' ?
@networks_lines_swapped : @networks_lines
316 ) unless defined $cached_skip_no_networks;
317 return $cached_skip_no_networks;
320 sub skip_no_networks_casecmp
{
321 return skip_no_networks
||
325 sub skip_big_endian
{
326 return pack ('S', 0x4245) eq 'BE' ?
'big-endian' : '';
329 sub skip_little_endian
{
330 return pack ('S', 0x454c) eq 'LE' ?
'little-endian' : '';
333 # In accept_blocks the top-level keys are test block names. Each test block
334 # defines one or more tests. When possible, a test block name should be easy
335 # to relate with the main filter expression, for example, ip_multicast for
336 # "ip multicast" etc. However, because in Perl hashes the keys are not ordered,
337 # sometimes the easiest way to group the tests in the alphabetically-sorted
338 # output is to use an artificial prefix, for example, mtp2_ for "fisu", "lssu",
339 # "msu" etc. The top-level values are in turn hashes, where the keys have the
342 # * DLT (mandatory, string): the name of the DLT to use for the test
343 # * aliases (mandatory, array of strings): must contain at least one string,
344 # each string is a filter expression and must produce exactly the same
345 # bytecode (applies to "opt" and "unopt" separately)
346 # * snaplen (optional, int): the snapshot length to use for the test
347 # * opt (optional, [multi-line] string): the expected optimised bytecode
348 # * unopt (optional, [multi-line] string): the expected unoptimised bytecode
349 # * skip (optional, string): if defined and is not equal to an empty string,
350 # causes the test to skip using the string as the reason
351 # * linuxext (optional, int): if defined and is equal to 1, use Linux BPF
353 # * netmask (optional, string, dotted-quad): the netmask for pcap_compile()
355 # At least one of "opt" and "unopt" must be defined in each accept test block.
357 my @accept_blocks = (
376 # Only the optimized bytecode is equivalent!
379 (001) jge #0x64 jt 2 jf 3
393 # Only the optimized bytecode is equivalent!
396 (001) jgt #0xc8 jt 2 jf 3
403 name
=> 'link_index_byte',
413 'ether[5:1] == 0x12',
422 (001) jeq #0x12 jt 2 jf 3
428 name
=> 'link_index_halfword',
431 'link[7:2] == 0x1234',
432 'ether[7:2] == 0x1234',
433 'fddi[7:2] == 0x1234',
434 'ppp[7:2] == 0x1234',
435 'slip[7:2] == 0x1234',
437 'wlan[7:2] == 0x1234',
441 (001) jeq #0x1234 jt 2 jf 3
445 }, # link_index_halfword
447 name
=> 'link_index_word',
450 'link[10:4] == 0x12345678',
451 'ether[10:4] == 0x12345678',
452 'fddi[10:4] == 0x12345678',
453 'ppp[10:4] == 0x12345678',
454 'slip[10:4] == 0x12345678',
455 'tr[10:4] == 0x12345678',
456 'wlan[10:4] == 0x12345678',
460 (001) jeq #0x12345678 jt 2 jf 3
467 name
=> 'icmp_index_icmptype',
470 # Verify that the named offset resolves to the same constant and that the
471 # protocol supports index operation.
473 'icmp[icmptype] != 0xff',
478 (001) jeq #0x800 jt 2 jf 10
480 (003) jeq #0x1 jt 4 jf 10
482 (005) jset #0x1fff jt 10 jf 6
483 (006) ldxb 4*([14]&0xf)
485 (008) jeq #0xff jt 10 jf 9
489 }, # icmp_index_icmptype
491 name
=> 'icmp_index_icmpcode',
494 # Same as for icmp[icmptype] above.
496 'icmp[icmpcode] != 0xff',
501 (001) jeq #0x800 jt 2 jf 10
503 (003) jeq #0x1 jt 4 jf 10
505 (005) jset #0x1fff jt 10 jf 6
506 (006) ldxb 4*([14]&0xf)
508 (008) jeq #0xff jt 10 jf 9
512 }, # icmp_index_icmpcode
514 name
=> 'icmp6_index_icmp6type',
517 # Same as for icmp[icmptype] above.
519 'icmp6[icmp6type] != 0xff',
525 (002) jeq #0x3a jt 3 jf 6
527 (004) jeq #0xff jt 6 jf 5
531 }, # icmp6_index_icmp6type
533 name
=> 'icmp6_index_icmp6code',
536 # Same as for icmp[icmptype] above.
538 'icmp6[icmp6code] != 0xff',
544 (002) jeq #0x3a jt 3 jf 6
546 (004) jeq #0xff jt 6 jf 5
550 }, # icmp6_index_icmp6code
552 name
=> 'udp_index_halfword',
555 # The implementation is IPv4-only.
556 aliases
=> ['udp[8:2] == 0xabcd'],
560 (002) jeq #0x40 jt 3 jf 11
562 (004) jeq #0x11 jt 5 jf 11
564 (006) jset #0x1fff jt 11 jf 7
565 (007) ldxb 4*([0]&0xf)
567 (009) jeq #0xabcd jt 10 jf 11
571 }, # udp_index_halfword
573 name
=> 'tcp_index_byte',
576 # Same as for icmp[icmptype] above.
577 # The implementation is IPv4-only.
579 'tcp[tcpflags] == 0xFF',
585 (002) jeq #0x40 jt 3 jf 11
587 (004) jeq #0x6 jt 5 jf 11
589 (006) jset #0x1fff jt 11 jf 7
590 (007) ldxb 4*([0]&0xf)
592 (009) jeq #0xff jt 10 jf 11
598 name
=> 'linux_sll_inbound',
601 aliases
=> ['inbound'],
604 (001) jeq #0x4 jt 2 jf 3
608 }, # linux_sll_inbound
610 name
=> 'linux_sll_outbound',
613 aliases
=> ['outbound'],
616 (001) jeq #0x4 jt 2 jf 3
620 }, # linux_sll_outbound
622 name
=> 'linux_sll2_inbound',
625 aliases
=> ['inbound'],
628 (001) jeq #0x4 jt 2 jf 3
632 }, # linux_sll2_inbound
634 name
=> 'linux_sll2_outbound',
637 aliases
=> ['outbound'],
640 (001) jeq #0x4 jt 2 jf 3
644 }, # linux_sll2_outbound
646 name
=> 'linux_sll2_ifindex',
649 aliases
=> ['ifindex 7'],
652 (001) jeq #0x7 jt 2 jf 3
656 }, # linux_sll2_ifindex
658 name
=> 'slip_inbound',
661 aliases
=> ['inbound'],
664 (001) jeq #0x0 jt 2 jf 3
670 name
=> 'slip_outbound',
673 aliases
=> ['outbound'],
676 (001) jeq #0x1 jt 2 jf 3
682 name
=> 'ipnet_inbound',
685 aliases
=> ['inbound'],
688 (001) jeq #0x2 jt 2 jf 3
694 name
=> 'ipnet_outbound',
697 aliases
=> ['outbound'],
700 (001) jeq #0x1 jt 2 jf 3
706 name
=> 'pflog_inbound',
708 aliases
=> ['inbound'],
711 (001) jeq #0x1 jt 2 jf 3
717 name
=> 'pflog_outbound',
719 aliases
=> ['outbound'],
722 (001) jeq #0x2 jt 2 jf 3
728 name
=> 'ppp_pppd_inbound',
730 aliases
=> ['inbound'],
733 (001) jeq #0x0 jt 2 jf 3
737 }, # ppp_pppd_inbound
739 name
=> 'ppp_pppd_oubound',
741 aliases
=> ['outbound'],
744 (001) jeq #0x1 jt 2 jf 3
748 }, # ppp_pppd_oubound
750 name
=> 'juniper_mfr_inbound',
751 DLT
=> 'JUNIPER_MFR',
752 aliases
=> ['inbound'],
756 (002) jeq #0x1 jt 3 jf 4
760 }, # juniper_mfr_inbound
762 name
=> 'juniper_mfr_outbound',
763 DLT
=> 'JUNIPER_MFR',
764 aliases
=> ['outbound'],
768 (002) jeq #0x0 jt 3 jf 4
772 }, # juniper_mfr_outbound
774 name
=> 'inbound_linuxext',
775 skip
=> skip_os_not
('linux'),
778 aliases
=> ['inbound'],
781 (001) jeq #0x4 jt 2 jf 3
785 }, # inbound_linuxext
787 name
=> 'outbound_linuxext',
788 skip
=> skip_os_not
('linux'),
791 aliases
=> ['outbound'],
794 (001) jeq #0x4 jt 2 jf 3
798 }, # outbound_linuxext
800 name
=> 'ifindex_linuxext',
801 skip
=> skip_os_not
('linux'),
804 aliases
=> ['ifindex 10'],
807 (001) jeq #0xa jt 2 jf 3
811 }, # ifindex_linuxext
814 name
=> 'pflog_ifname',
822 (001) jeq #0x616d6531 jt 2 jf 7
824 (003) jeq #0x6573746e jt 4 jf 7
826 (005) jeq #0x74 jt 6 jf 7
840 (001) jeq #0x456789 jt 2 jf 3
846 name
=> 'pflog_reason_match',
848 aliases
=> ['reason match'],
851 (001) jeq #0x0 jt 2 jf 3
855 }, # pflog_reason_match
857 name
=> 'pflog_reason_bad_offset',
859 aliases
=> ['reason bad-offset'],
862 (001) jeq #0x1 jt 2 jf 3
866 }, # pflog_reason_bad_offset
868 name
=> 'pflog_reason_fragment',
870 aliases
=> ['reason fragment'],
873 (001) jeq #0x2 jt 2 jf 3
877 }, # pflog_reason_fragment
879 name
=> 'pflog_reason_short',
881 aliases
=> ['reason short'],
884 (001) jeq #0x3 jt 2 jf 3
888 }, # pflog_reason_short
890 name
=> 'pflog_reason_normalize',
892 aliases
=> ['reason normalize'],
895 (001) jeq #0x4 jt 2 jf 3
899 }, # pflog_reason_normalize
901 name
=> 'pflog_reason_memory',
903 aliases
=> ['reason memory'],
906 (001) jeq #0x5 jt 2 jf 3
910 }, # pflog_reason_memory
912 name
=> 'pflog_reason_bad_timestamp',
914 aliases
=> ['reason bad-timestamp'],
917 (001) jeq #0x6 jt 2 jf 3
921 }, # pflog_reason_bad_timestamp
923 name
=> 'pflog_reason_congestion',
925 aliases
=> ['reason congestion'],
928 (001) jeq #0x7 jt 2 jf 3
932 }, # pflog_reason_congestion
934 name
=> 'pflog_reason_ip_option',
936 aliases
=> ['reason ip-option'],
939 (001) jeq #0x8 jt 2 jf 3
943 }, # pflog_reason_ip_option
945 name
=> 'pflog_reason_proto_cksum',
947 aliases
=> ['reason proto-cksum'],
950 (001) jeq #0x9 jt 2 jf 3
954 }, # pflog_reason_proto_cksum
956 name
=> 'pflog_reason_state_mismatch',
958 aliases
=> ['reason state-mismatch'],
961 (001) jeq #0xa jt 2 jf 3
965 }, # pflog_reason_state_mismatch
967 name
=> 'pflog_reason_state_insert',
969 aliases
=> ['reason state-insert'],
972 (001) jeq #0xb jt 2 jf 3
976 }, # pflog_reason_state_insert
978 name
=> 'pflog_reason_state_limit',
980 aliases
=> ['reason state-limit'],
983 (001) jeq #0xc jt 2 jf 3
987 }, # pflog_reason_state_limit
989 name
=> 'pflog_reason_src_limit',
991 aliases
=> ['reason src-limit'],
994 (001) jeq #0xd jt 2 jf 3
998 }, # pflog_reason_src_limit
1000 name
=> 'pflog_reason_synproxy',
1002 aliases
=> ['reason synproxy'],
1005 (001) jeq #0xe jt 2 jf 3
1009 }, # pflog_reason_synproxy
1011 name
=> 'pflog_reason_map_failed',
1012 skip
=> skip_os_not
('freebsd'),
1014 aliases
=> ['reason map-failed'],
1017 (001) jeq #0xf jt 2 jf 3
1021 }, # pflog_reason_map_failed
1023 name
=> 'pflog_reason_state_locked',
1024 skip
=> skip_os_not
('netbsd'),
1026 aliases
=> ['reason state-locked'],
1029 (001) jeq #0xf jt 2 jf 3
1033 }, # pflog_reason_state_locked
1035 name
=> 'pflog_reason_translate',
1036 skip
=> skip_os_not
('openbsd'),
1038 aliases
=> ['reason translate'],
1041 (001) jeq #0xf jt 2 jf 3
1045 }, # pflog_reason_translate
1047 name
=> 'pflog_reason_no_route',
1048 skip
=> skip_os_not
('openbsd'),
1050 aliases
=> ['reason no-route'],
1053 (001) jeq #0x10 jt 2 jf 3
1057 }, # pflog_reason_no_route
1059 name
=> 'pflog_reason_dummynet',
1060 skip
=> skip_os_not
('darwin'),
1062 aliases
=> ['reason dummynet'],
1065 (001) jeq #0xf jt 2 jf 3
1069 }, # pflog_reason_dummynet
1071 name
=> 'pflog_rset',
1074 'rset testruleset2',
1075 'ruleset testruleset2',
1079 (001) jeq #0x73657432 jt 2 jf 7
1081 (003) jeq #0x72756c65 jt 4 jf 7
1083 (005) jeq #0x74657374 jt 6 jf 7
1089 name
=> 'pflog_srnr',
1097 (001) jeq #0x7b jt 2 jf 3
1103 name
=> 'pflog_action_pass',
1111 (001) jeq #0x0 jt 2 jf 3
1115 }, # pflog_action_pass
1117 name
=> 'pflog_action_block',
1125 (001) jeq #0x1 jt 2 jf 3
1129 }, # pflog_action_block
1131 name
=> 'pflog_action_scrub',
1133 aliases
=> ['action scrub'],
1136 (001) jeq #0x2 jt 2 jf 3
1140 }, # pflog_action_scrub
1142 name
=> 'pflog_action_noscrub',
1144 aliases
=> ['action noscrub'],
1147 (001) jeq #0x3 jt 2 jf 3
1151 }, # pflog_action_noscrub
1153 name
=> 'pflog_action_nat',
1155 aliases
=> ['action nat'],
1158 (001) jeq #0x4 jt 2 jf 3
1162 }, # pflog_action_nat
1164 name
=> 'pflog_action_nonat',
1166 aliases
=> ['action nonat'],
1169 (001) jeq #0x5 jt 2 jf 3
1173 }, # pflog_action_nonat
1175 name
=> 'pflog_action_binat',
1177 aliases
=> ['action binat'],
1180 (001) jeq #0x6 jt 2 jf 3
1184 }, # pflog_action_binat
1186 name
=> 'pflog_action_nobinat',
1188 aliases
=> ['action nobinat'],
1191 (001) jeq #0x7 jt 2 jf 3
1195 }, # pflog_action_nobinat
1197 name
=> 'pflog_action_rdr',
1199 aliases
=> ['action rdr'],
1202 (001) jeq #0x8 jt 2 jf 3
1206 }, # pflog_action_rdr
1208 name
=> 'pflog_action_nordr',
1210 aliases
=> ['action nordr'],
1213 (001) jeq #0x9 jt 2 jf 3
1217 }, # pflog_action_nordr
1219 name
=> 'pflog_action_synproxy_drop',
1221 aliases
=> ['action synproxy-drop'],
1224 (001) jeq #0xa jt 2 jf 3
1228 }, # pflog_action_synproxy_drop
1230 name
=> 'pflog_action_defer',
1231 skip
=> skip_os_not
('freebsd') && skip_os_not
('openbsd'),
1233 aliases
=> ['action defer'],
1236 (001) jeq #0xb jt 2 jf 3
1240 }, # pflog_action_defer
1242 name
=> 'pflog_action_match',
1243 skip
=> skip_os_not
('openbsd'),
1245 aliases
=> ['action match'],
1248 (001) jeq #0xc jt 2 jf 3
1252 }, # pflog_action_match
1254 name
=> 'pflog_action_divert',
1255 skip
=> skip_os_not
('openbsd'),
1257 aliases
=> ['action divert'],
1260 (001) jeq #0xd jt 2 jf 3
1264 }, # pflog_action_divert
1266 name
=> 'pflog_action_rt',
1267 skip
=> skip_os_not
('openbsd'),
1269 aliases
=> ['action rt'],
1272 (001) jeq #0xe jt 2 jf 3
1276 }, # pflog_action_rt
1278 name
=> 'pflog_action_afrt',
1279 skip
=> skip_os_not
('openbsd'),
1281 aliases
=> ['action afrt'],
1284 (001) jeq #0xf jt 2 jf 3
1288 }, # pflog_action_afrt
1290 name
=> 'pflog_action_dummynet',
1291 skip
=> skip_os_not
('darwin'),
1293 aliases
=> ['action dummynet'],
1296 (001) jeq #0xb jt 2 jf 3
1300 }, # pflog_action_dummynet
1302 name
=> 'pflog_action_nodummynet',
1303 skip
=> skip_os_not
('darwin'),
1305 aliases
=> ['action nodummynet'],
1308 (001) jeq #0xc jt 2 jf 3
1312 }, # pflog_action_nodummynet
1314 name
=> 'pflog_action_nat64',
1315 skip
=> skip_os_not
('darwin'),
1317 aliases
=> ['action nat64'],
1320 (001) jeq #0xd jt 2 jf 3
1324 }, # pflog_action_nat64
1326 name
=> 'pflog_action_nonat64',
1327 skip
=> skip_os_not
('darwin'),
1329 aliases
=> ['action nonat64'],
1332 (001) jeq #0xe jt 2 jf 3
1336 }, # pflog_action_nonat64
1339 name
=> 'mtp2_fisu',
1341 aliases
=> ['fisu'],
1344 (001) jset #0x3f jt 2 jf 3
1350 name
=> 'mtp2_lssu',
1354 'lsu', # Not documented (and probably should not be).
1359 (002) jgt #0x0 jt 3 jf 7
1362 (005) jgt #0x2 jt 7 jf 6
1374 (002) jgt #0x2 jt 3 jf 4
1387 'sio (0xd2 or 0xd2)',
1391 (001) jeq #0xd2 jt 2 jf 3
1397 name
=> 'mtp2_sio_gt',
1399 aliases
=> ['sio > 0xa1'],
1402 (001) jgt #0xa1 jt 2 jf 3
1408 name
=> 'mtp2_sio_ge',
1410 aliases
=> ['sio >= 0xa2'],
1413 (001) jge #0xa2 jt 2 jf 3
1419 name
=> 'mtp2_sio_le',
1421 aliases
=> ['sio <= 0xa3'],
1424 (001) jgt #0xa3 jt 2 jf 3
1430 name
=> 'mtp2_sio_lt',
1432 aliases
=> ['sio < 0xa4'],
1435 (001) jge #0xa4 jt 2 jf 3
1441 name
=> 'mtp2_sio_ne',
1443 aliases
=> ['sio != 0xa5'],
1446 (001) jeq #0xa5 jt 2 jf 3
1452 name
=> 'mtp2_sio_nary',
1454 aliases
=> ['sio (73 or 74 or 75)'],
1457 (001) jeq #0x49 jt 4 jf 2
1458 (002) jeq #0x4a jt 4 jf 3
1459 (003) jeq #0x4b jt 4 jf 5
1472 'dpc (0x31d6 or 0x31d6)',
1477 (002) jeq #0xd631 jt 3 jf 4
1483 name
=> 'mtp3_dpc_gt',
1485 aliases
=> ['dpc > 0x1273'],
1489 (002) jgt #0x7312 jt 3 jf 4
1495 name
=> 'mtp3_dpc_ge',
1497 aliases
=> ['dpc >= 0x1273'],
1501 (002) jge #0x7312 jt 3 jf 4
1507 name
=> 'mtp3_dpc_le',
1509 aliases
=> ['dpc <= 0x1273'],
1513 (002) jgt #0x7312 jt 3 jf 4
1519 name
=> 'mtp3_dpc_lt',
1521 aliases
=> ['dpc < 0x1273'],
1525 (002) jge #0x7312 jt 3 jf 4
1531 name
=> 'mtp3_dpc_ne',
1533 aliases
=> ['dpc != 0x1273'],
1537 (002) jeq #0x7312 jt 3 jf 4
1543 name
=> 'mtp3_dpc_nary',
1545 aliases
=> ['dpc (0x1274 or 0x1275 or 0x1276)'],
1549 (002) jeq #0x7412 jt 9 jf 3
1552 (005) jeq #0x7512 jt 9 jf 6
1555 (008) jeq #0x7612 jt 9 jf 10
1568 'opc (0x3b35 or 0x3b35)',
1573 (002) jeq #0x40cd0e jt 3 jf 4
1579 name
=> 'mtp3_opc_gt',
1581 aliases
=> ['opc > 0x607'],
1585 (002) jgt #0xc08101 jt 3 jf 4
1591 name
=> 'mtp3_opc_ge',
1593 aliases
=> ['opc >= 0x607'],
1597 (002) jge #0xc08101 jt 3 jf 4
1603 name
=> 'mtp3_opc_le',
1605 aliases
=> ['opc <= 0x607'],
1609 (002) jgt #0xc08101 jt 3 jf 4
1615 name
=> 'mtp3_opc_lt',
1617 aliases
=> ['opc < 0x607'],
1621 (002) jge #0xc08101 jt 3 jf 4
1627 name
=> 'mtp3_opc_ne',
1629 aliases
=> ['opc != 0x607'],
1633 (002) jeq #0xc08101 jt 3 jf 4
1639 name
=> 'mtp2_opc_nary',
1641 aliases
=> ['opc (0x608 or 0x609 or 0x60a)'],
1645 (002) jeq #0x8201 jt 9 jf 3
1648 (005) jeq #0x408201 jt 9 jf 6
1651 (008) jeq #0x808201 jt 9 jf 10
1669 (002) jeq #0x30 jt 3 jf 4
1675 name
=> 'mtp3_sls_gt',
1677 aliases
=> ['sls > 1'],
1681 (002) jgt #0x10 jt 3 jf 4
1687 name
=> 'mtp3_sls_ge',
1689 aliases
=> ['sls >= 2'],
1693 (002) jge #0x20 jt 3 jf 4
1699 name
=> 'mtp3_sls_le',
1701 aliases
=> ['sls <= 4'],
1705 (002) jgt #0x40 jt 3 jf 4
1711 name
=> 'mtp3_sls_lt',
1713 aliases
=> ['sls < 5'],
1717 (002) jge #0x50 jt 3 jf 4
1723 name
=> 'mtp3_sls_ne',
1725 aliases
=> ['sls != 8'],
1729 (002) jeq #0x80 jt 3 jf 4
1735 name
=> 'mtp3_sls_nary',
1737 aliases
=> ['sls (3 or 4 or 5)'],
1741 (002) jeq #0x30 jt 9 jf 3
1744 (005) jeq #0x40 jt 9 jf 6
1747 (008) jeq #0x50 jt 9 jf 10
1753 name
=> 'mtp2_hfisu',
1755 aliases
=> ['hfisu'],
1758 (001) jset #0xff80 jt 2 jf 3
1764 name
=> 'mtp2_hlssu',
1766 aliases
=> ['hlssu'],
1770 (002) jgt #0x0 jt 3 jf 7
1773 (005) jgt #0x100 jt 7 jf 6
1779 name
=> 'mtp2_hmsu',
1781 aliases
=> ['hmsu'],
1785 (002) jgt #0x100 jt 3 jf 4
1791 name
=> 'mtp2_hsio',
1798 'hsio (0x41 or 0x41)',
1802 (001) jeq #0x41 jt 2 jf 3
1808 name
=> 'mtp2_hsio_gt',
1810 aliases
=> ['hsio > 0x41'],
1813 (001) jgt #0x41 jt 2 jf 3
1819 name
=> 'mtp2_hsio_ge',
1821 aliases
=> ['hsio >= 0x41'],
1824 (001) jge #0x41 jt 2 jf 3
1830 name
=> 'mtp2_hsio_le',
1832 aliases
=> ['hsio <= 0x41'],
1835 (001) jgt #0x41 jt 2 jf 3
1841 name
=> 'mtp2_hsio_lt',
1843 aliases
=> ['hsio < 0x41'],
1846 (001) jge #0x41 jt 2 jf 3
1852 name
=> 'mtp2_hsio_ne',
1854 aliases
=> ['hsio != 0x41'],
1857 (001) jeq #0x41 jt 2 jf 3
1863 name
=> 'mtp2_hsio_nary',
1865 aliases
=> ['hsio (0x42 or 0x43 or 0x44)'],
1868 (001) jeq #0x42 jt 4 jf 2
1869 (002) jeq #0x43 jt 4 jf 3
1870 (003) jeq #0x44 jt 4 jf 5
1876 name
=> 'mtp3_hdpc',
1883 'hdpc (0x0ab5 or 0x0ab5)',
1888 (002) jeq #0xb50a jt 3 jf 4
1894 name
=> 'mtp3_hdpc_gt',
1896 aliases
=> ['hdpc > 0x0ab5'],
1900 (002) jgt #0xb50a jt 3 jf 4
1906 name
=> 'mtp3_hdpc_ge',
1908 aliases
=> ['hdpc >= 0x0ab5'],
1912 (002) jge #0xb50a jt 3 jf 4
1918 name
=> 'mtp3_hdpc_le',
1920 aliases
=> ['hdpc <= 0x0ab5'],
1924 (002) jgt #0xb50a jt 3 jf 4
1930 name
=> 'mtp3_hdpc_lt',
1932 aliases
=> ['hdpc < 0x0ab5'],
1936 (002) jge #0xb50a jt 3 jf 4
1942 name
=> 'mtp3_hdpc_ne',
1944 aliases
=> ['hdpc != 0x0ab5'],
1948 (002) jeq #0xb50a jt 3 jf 4
1954 name
=> 'mtp3_hdpc_nary',
1956 aliases
=> ['hdpc (0x0ab6 or 0x0ab7 or 0x0ab8)'],
1960 (002) jeq #0xb60a jt 9 jf 3
1963 (005) jeq #0xb70a jt 9 jf 6
1966 (008) jeq #0xb80a jt 9 jf 10
1972 name
=> 'mtp3_hopc',
1979 'hopc (0x3aba or 0x3aba)',
1984 (002) jeq #0x80ae0e jt 3 jf 4
1990 name
=> 'mtp3_hopc_gt',
1992 aliases
=> ['hopc > 0x3aba'],
1996 (002) jgt #0x80ae0e jt 3 jf 4
2002 name
=> 'mtp3_hopc_ge',
2004 aliases
=> ['hopc >= 0x3aba'],
2008 (002) jge #0x80ae0e jt 3 jf 4
2014 name
=> 'mtp3_hopc_le',
2016 aliases
=> ['hopc <= 0x3aba'],
2020 (002) jgt #0x80ae0e jt 3 jf 4
2026 name
=> 'mtp3_hopc_lt',
2028 aliases
=> ['hopc < 0x3aba'],
2032 (002) jge #0x80ae0e jt 3 jf 4
2038 name
=> 'mtp3_hopc_ne',
2040 aliases
=> ['hopc != 0x3aba'],
2044 (002) jeq #0x80ae0e jt 3 jf 4
2050 name
=> 'mtp3_hopc_nary',
2052 aliases
=> ['hopc (9000 or 10000 or 9001)'],
2056 (002) jeq #0xca08 jt 9 jf 3
2059 (005) jeq #0xc409 jt 9 jf 6
2062 (008) jeq #0x40ca08 jt 9 jf 10
2068 name
=> 'mtp3_hsls',
2080 (002) jeq #0x50 jt 3 jf 4
2086 name
=> 'mtp3_hsls_gt',
2088 aliases
=> ['hsls > 6'],
2092 (002) jgt #0x60 jt 3 jf 4
2098 name
=> 'mtp3_hsls_ge',
2100 aliases
=> ['hsls >= 7'],
2104 (002) jge #0x70 jt 3 jf 4
2110 name
=> 'mtp3_hsls_le',
2112 aliases
=> ['hsls <= 8'],
2116 (002) jgt #0x80 jt 3 jf 4
2122 name
=> 'mtp3_hsls_lt',
2124 aliases
=> ['hsls < 9'],
2128 (002) jge #0x90 jt 3 jf 4
2134 name
=> 'mtp3_hsls_ne',
2136 aliases
=> ['hsls != 10'],
2140 (002) jeq #0xa0 jt 3 jf 4
2146 name
=> 'mtp3_hsls_nary',
2148 aliases
=> ['hsls (13 or 12 or 11)'],
2152 (002) jeq #0xd0 jt 9 jf 3
2155 (005) jeq #0xc0 jt 9 jf 6
2158 (008) jeq #0xb0 jt 9 jf 10
2176 (001) jeq #0xa jt 2 jf 3
2182 name
=> 'atm_vpi_gt',
2184 aliases
=> ['vpi > 100'],
2187 (001) jgt #0x64 jt 2 jf 3
2193 name
=> 'atm_vpi_ge',
2195 aliases
=> ['vpi >= 101'],
2198 (001) jge #0x65 jt 2 jf 3
2204 name
=> 'atm_vpi_le',
2206 aliases
=> ['vpi <= 102'],
2209 (001) jgt #0x66 jt 2 jf 3
2215 name
=> 'atm_vpi_lt',
2217 aliases
=> ['vpi < 103'],
2220 (001) jge #0x67 jt 2 jf 3
2226 name
=> 'atm_vpi_ne',
2228 aliases
=> ['vpi != 104'],
2231 (001) jeq #0x68 jt 2 jf 3
2237 name
=> 'atm_vpi_nary',
2239 aliases
=> ['vpi (105 or 0x7a or 0311)'],
2240 # The bytecode preserves the order of values, hence no aliases for the
2244 (001) jeq #0x69 jt 4 jf 2
2245 (002) jeq #0x7a jt 4 jf 3
2246 (003) jeq #0xc9 jt 4 jf 5
2263 (001) jeq #0x14 jt 2 jf 3
2269 name
=> 'atm_vci_gt',
2271 aliases
=> ['vci > 20001'],
2274 (001) jgt #0x4e21 jt 2 jf 3
2280 name
=> 'atm_vci_ge',
2282 aliases
=> ['vci >= 20002'],
2285 (001) jge #0x4e22 jt 2 jf 3
2291 name
=> 'atm_vci_le',
2293 aliases
=> ['vci <= 20003'],
2296 (001) jgt #0x4e23 jt 2 jf 3
2302 name
=> 'atm_vci_lt',
2304 aliases
=> ['vci < 20004'],
2307 (001) jge #0x4e24 jt 2 jf 3
2313 name
=> 'atm_vci_ne',
2315 aliases
=> ['vci != 20005'],
2318 (001) jeq #0x4e25 jt 2 jf 3
2324 name
=> 'atm_vci_nary',
2326 aliases
=> ['vci (10 or 0xdb or 0700)'],
2329 (001) jeq #0xa jt 4 jf 2
2330 (002) jeq #0xdb jt 4 jf 3
2331 (003) jeq #0x1c0 jt 4 jf 5
2339 aliases
=> ['lane'],
2343 (002) jeq #0x1 jt 3 jf 4
2349 name
=> 'atm_oamf4sc',
2351 aliases
=> ['oamf4sc'],
2354 (001) jeq #0x0 jt 2 jf 5
2356 (003) jeq #0x3 jt 4 jf 5
2362 name
=> 'atm_oamf4ec',
2364 aliases
=> ['oamf4ec'],
2367 (001) jeq #0x0 jt 2 jf 5
2369 (003) jeq #0x4 jt 4 jf 5
2375 name
=> 'atm_oamf4',
2383 (001) jeq #0x0 jt 2 jf 6
2385 (003) jeq #0x3 jt 5 jf 4
2386 (004) jeq #0x4 jt 5 jf 6
2392 name
=> 'atm_metac',
2394 aliases
=> ['metac'],
2397 (001) jeq #0x0 jt 2 jf 5
2399 (003) jeq #0x1 jt 4 jf 5
2410 (001) jeq #0x0 jt 2 jf 5
2412 (003) jeq #0x2 jt 4 jf 5
2423 (001) jeq #0x0 jt 2 jf 5
2425 (003) jeq #0x5 jt 4 jf 5
2431 name
=> 'atm_ilmic',
2433 aliases
=> ['ilmic'],
2436 (001) jeq #0x0 jt 2 jf 5
2438 (003) jeq #0x10 jt 4 jf 5
2444 name
=> 'atm_connectmsg',
2446 aliases
=> ['connectmsg'],
2449 (001) jeq #0x0 jt 2 jf 12
2451 (003) jeq #0x5 jt 4 jf 12
2453 (005) jeq #0x5a jt 11 jf 6
2454 (006) jeq #0x4d jt 11 jf 7
2455 (007) jeq #0xf jt 11 jf 8
2456 (008) jeq #0x7 jt 11 jf 9
2457 (009) jeq #0x5 jt 11 jf 10
2458 (010) jeq #0x2 jt 11 jf 12
2464 name
=> 'atm_metaconnect',
2466 aliases
=> ['metaconnect'],
2469 (001) jeq #0x0 jt 2 jf 11
2471 (003) jeq #0x1 jt 4 jf 11
2473 (005) jeq #0x5a jt 10 jf 6
2474 (006) jeq #0x4d jt 10 jf 7
2475 (007) jeq #0x7 jt 10 jf 8
2476 (008) jeq #0x5 jt 10 jf 9
2477 (009) jeq #0x2 jt 10 jf 11
2481 }, # atm_metaconnect
2483 # Do not permutate all possible aliases for "link", just the ones that
2484 # obviously make sense for the DLT.
2486 name
=> 'arcnet_broadcast_multicast',
2497 (001) jeq #0x0 jt 2 jf 3
2501 }, # arcnet_broadcast_multicast
2503 name
=> 'arcnet_host',
2507 'link src or dst host $0e',
2508 'link src or dst $0e',
2510 'link src or dst host $e',
2511 'link src or dst $e',
2515 (001) jeq #0xe jt 4 jf 2
2517 (003) jeq #0xe jt 4 jf 5
2523 name
=> 'arcnet_src_host',
2526 'link src host $8c',
2531 (001) jeq #0x8c jt 2 jf 3
2535 }, # arcnet_src_host
2537 name
=> 'arcnet_dst_host',
2540 'link dst host $a4',
2545 (001) jeq #0xa4 jt 2 jf 3
2549 }, # arcnet_dst_host
2551 name
=> 'fddi_broadcast',
2560 (001) jeq #0xffffffff jt 2 jf 5
2562 (003) jeq #0xffff jt 4 jf 5
2568 name
=> 'fddi_multicast',
2577 (001) jset #0x1 jt 2 jf 3
2583 name
=> 'ieee802_broadcast',
2592 (001) jeq #0xffffffff jt 2 jf 5
2594 (003) jeq #0xffff jt 4 jf 5
2598 }, # ieee802_broadcast
2600 name
=> 'ieee802_multicast',
2609 (001) jset #0x1 jt 2 jf 3
2613 }, # ieee802_multicast
2615 name
=> 'ieee802_11_broadcast',
2616 DLT
=> 'IEEE802_11',
2625 (001) jset #0x4 jt 14 jf 2
2626 (002) jset #0x8 jt 3 jf 9
2628 (004) jset #0x1 jt 5 jf 9
2630 (006) jeq #0xffffffff jt 7 jf 14
2632 (008) jeq #0xffff jt 13 jf 14
2634 (010) jeq #0xffffffff jt 11 jf 14
2636 (012) jeq #0xffff jt 13 jf 14
2640 }, # ieee802_11_broadcast
2642 name
=> 'ieee802_11_multicast',
2643 DLT
=> 'IEEE802_11',
2652 (001) jset #0x4 jt 10 jf 2
2653 (002) jset #0x8 jt 3 jf 7
2655 (004) jset #0x1 jt 5 jf 7
2657 (006) jset #0x1 jt 9 jf 10
2659 (008) jset #0x1 jt 9 jf 10
2663 }, # ieee802_11_multicast
2665 name
=> 'ip_over_fc_broadcast',
2666 DLT
=> 'IP_OVER_FC',
2673 (001) jeq #0xffffffff jt 2 jf 5
2675 (003) jeq #0xffff jt 4 jf 5
2679 }, # ip_over_fc_broadcast
2681 name
=> 'ip_over_fc_multicast',
2682 DLT
=> 'IP_OVER_FC',
2689 (001) jset #0x1 jt 2 jf 3
2693 }, # ip_over_fc_multicast
2695 name
=> 'atm_multicast',
2697 aliases
=> ['lane and multicast'],
2701 (002) jeq #0x1 jt 3 jf 8
2703 (004) jeq #0xff00 jt 8 jf 5
2705 (006) jset #0x1 jt 7 jf 8
2712 name
=> 'ether_broadcast',
2722 (001) jeq #0xffffffff jt 2 jf 5
2724 (003) jeq #0xffff jt 4 jf 5
2728 }, # ether_broadcast
2730 name
=> 'ether_multicast',
2740 (001) jset #0x1 jt 2 jf 3
2744 }, # ether_multicast
2746 name
=> 'ether_host_addr',
2749 'ether host ab:cd:ef:0:0:1',
2750 'ether src or dst host ab.CD.ef.0.0.1',
2751 'ether src or dst Ab.cD.ef.00.0.01',
2755 (001) jeq #0xef000001 jt 2 jf 4
2757 (003) jeq #0xabcd jt 8 jf 4
2759 (005) jeq #0xef000001 jt 6 jf 9
2761 (007) jeq #0xabcd jt 8 jf 9
2765 }, # ether_host_addr
2767 name
=> 'ether_host_name',
2768 skip
=> skip_no_ethers
(),
2771 'ether host eth-noipv4-noipv6.host123.libpcap.test',
2772 'ether src or dst eth-noipv4-noipv6.host123.libpcap.test',
2773 'ether src or dst host eth-noipv4-noipv6.host123.libpcap.test',
2777 (001) jeq #0x400140e jt 2 jf 4
2779 (003) jeq #0xaa00 jt 8 jf 4
2781 (005) jeq #0x400140e jt 6 jf 9
2783 (007) jeq #0xaa00 jt 8 jf 9
2787 }, # ether_host_name
2789 name
=> 'ether_host_NAME',
2790 skip
=> skip_no_ethers_casecmp
(),
2793 'ether host ETH-NOIPV4-NOIPV6.HOST123.LIBPCAP.TEST',
2794 'ether src or dst ETH-NOIPV4-NOIPV6.HOST123.LIBPCAP.TEST',
2795 'ether src or dst host ETH-NOIPV4-NOIPV6.HOST123.LIBPCAP.TEST',
2799 (001) jeq #0x400140e jt 2 jf 4
2801 (003) jeq #0xaa00 jt 8 jf 4
2803 (005) jeq #0x400140e jt 6 jf 9
2805 (007) jeq #0xaa00 jt 8 jf 9
2809 }, # ether_host_NAME
2811 name
=> 'ether_src_host_addr',
2814 'ether src host ab-cd-ef-00-00-02',
2815 'ether src ab.cd.ef.00.00.02',
2819 (001) jeq #0xef000002 jt 2 jf 5
2821 (003) jeq #0xabcd jt 4 jf 5
2825 }, # ether_src_host_addr
2827 name
=> 'ether_src_host_name',
2828 skip
=> skip_no_ethers
(),
2831 'ether src host eth-noipv4-noipv6.host123.libpcap.test',
2832 'ether src eth-noipv4-noipv6.host123.libpcap.test',
2836 (001) jeq #0x400140e jt 2 jf 5
2838 (003) jeq #0xaa00 jt 4 jf 5
2842 }, # ether_src_host_name
2844 name
=> 'ether_src_host_NAME',
2845 skip
=> skip_no_ethers_casecmp
(),
2848 'ether src host ETH-NOIPV4-NOIPV6.HOST123.LIBPCAP.TEST',
2849 'ether src ETH-NOIPV4-NOIPV6.HOST123.LIBPCAP.TEST',
2853 (001) jeq #0x400140e jt 2 jf 5
2855 (003) jeq #0xaa00 jt 4 jf 5
2859 }, # ether_src_host_NAME
2861 name
=> 'ether_dst_host_addr',
2864 'ether dst host abcd.ef00.0003',
2865 'ether dst abcdef000003',
2869 (001) jeq #0xef000003 jt 2 jf 5
2871 (003) jeq #0xabcd jt 4 jf 5
2875 }, # ether_dst_host_addr
2877 name
=> 'ether_dst_host_name',
2878 skip
=> skip_no_ethers
(),
2881 'ether dst host eth-noipv4-noipv6.host123.libpcap.test',
2882 'ether dst eth-noipv4-noipv6.host123.libpcap.test',
2886 (001) jeq #0x400140e jt 2 jf 5
2888 (003) jeq #0xaa00 jt 4 jf 5
2892 }, # ether_dst_host_name
2894 name
=> 'ether_dst_host_NAME',
2895 skip
=> skip_no_ethers_casecmp
(),
2898 'ether dst host ETH-NOIPV4-NOIPV6.HOST123.LIBPCAP.TEST',
2899 'ether dst ETH-NOIPV4-NOIPV6.HOST123.LIBPCAP.TEST',
2903 (001) jeq #0x400140e jt 2 jf 5
2905 (003) jeq #0xaa00 jt 4 jf 5
2909 }, # ether_dst_host_NAME
2911 # 3 DLTs lead to gen_ether_linktype(), which implements 7 code paths,
2912 # let's test these for DLT_EN10MB only.
2914 name
=> 'ether_proto_aarp',
2917 'ether proto \aarp',
2922 (001) jeq #0x80f3 jt 7 jf 2
2923 (002) jgt #0x5dc jt 8 jf 3
2925 (004) jeq #0x80f3 jt 5 jf 8
2927 (006) jeq #0xaaaa0300 jt 7 jf 8
2931 }, # ether_proto_aarp
2933 name
=> 'ether_proto_arp',
2941 (001) jeq #0x806 jt 2 jf 3
2945 }, # ether_proto_arp
2947 name
=> 'ether_proto_atalk',
2950 'ether proto \atalk',
2955 (001) jeq #0x809b jt 7 jf 2
2956 (002) jgt #0x5dc jt 8 jf 3
2958 (004) jeq #0x7809b jt 5 jf 8
2960 (006) jeq #0xaaaa0308 jt 7 jf 8
2964 }, # ether_proto_atalk
2966 name
=> 'ether_proto_decnet',
2969 'ether proto \decnet',
2974 (001) jeq #0x6003 jt 2 jf 3
2978 }, # ether_proto_decnet
2980 name
=> 'ether_proto_ip',
2982 # gen_ether_linktype() default case
2989 (001) jeq #0x800 jt 2 jf 3
2995 name
=> 'ether_proto_6',
2997 aliases
=> ['ether proto 6'], # gen_ether_linktype() LLCSAP_IP
3000 (001) jgt #0x5dc jt 5 jf 2
3002 (003) jeq #0x606 jt 4 jf 5
3008 name
=> 'ether_proto_ip6',
3010 skip
=> skip_config_undef
('INET6'),
3011 aliases
=> ['ether proto \ip6'],
3014 (001) jeq #0x86dd jt 2 jf 3
3018 }, # ether_proto_ip6
3025 (001) jeq #0x86dd jt 2 jf 3
3031 name
=> 'ether_proto_ipx',
3039 (001) jeq #0x8137 jt 11 jf 2
3040 (002) jgt #0x5dc jt 12 jf 3
3042 (004) jeq #0x8137 jt 5 jf 7
3044 (006) jeq #0xaaaa0300 jt 11 jf 7
3046 (008) jeq #0xe0 jt 11 jf 9
3048 (010) jeq #0xffff jt 11 jf 12
3052 }, # ether_proto_ipx
3054 name
=> 'ether_proto_iso',
3062 (001) jgt #0x5dc jt 5 jf 2
3064 (003) jeq #0xfefe jt 4 jf 5
3068 }, # ether_proto_iso
3070 name
=> 'ether_proto_lat',
3078 (001) jeq #0x6004 jt 2 jf 3
3082 }, # ether_proto_lat
3084 name
=> 'ether_proto_loopback',
3086 # No backslash escaping and no alias (the identifier is not a keyword).
3087 aliases
=> ['ether proto loopback'],
3090 (001) jeq #0x9000 jt 2 jf 3
3094 }, # ether_proto_loopback
3096 name
=> 'ether_proto_mopdl',
3099 'ether proto \mopdl',
3104 (001) jeq #0x6001 jt 2 jf 3
3108 }, # ether_proto_mopdl
3110 name
=> 'ether_proto_moprc',
3113 'ether proto \moprc',
3118 (001) jeq #0x6002 jt 2 jf 3
3122 }, # ether_proto_moprc
3124 name
=> 'ether_proto_netbeui',
3127 'ether proto \netbeui',
3132 (001) jgt #0x5dc jt 5 jf 2
3134 (003) jeq #0xf0f0 jt 4 jf 5
3138 }, # ether_proto_netbeui
3140 name
=> 'ether_proto_rarp',
3143 'ether proto \rarp',
3148 (001) jeq #0x8035 jt 2 jf 3
3152 }, # ether_proto_rarp
3154 name
=> 'ether_proto_sca',
3162 (001) jeq #0x6007 jt 2 jf 3
3166 }, # ether_proto_sca
3168 name
=> 'ether_proto_stp',
3176 (001) jgt #0x5dc jt 5 jf 2
3178 (003) jeq #0x42 jt 4 jf 5
3182 }, # ether_proto_stp
3184 # The complete cartesian product of all DLTs and all link-layer protocol
3185 # numbers in gen_linktype() is not a practicable test space. Try testing
3186 # all unique code paths and eliminate/coalesce code points as necessary.
3188 name
=> 'link_proto_ip_NETANALYZER',
3189 DLT
=> 'NETANALYZER',
3190 aliases
=> ['link proto \ip'],
3193 (001) jeq #0x800 jt 2 jf 3
3197 }, # link_proto_ip_NETANALYZER
3199 name
=> 'link_proto_ip_NETANALYZER_TRANSPARENT',
3200 DLT
=> 'NETANALYZER_TRANSPARENT',
3201 aliases
=> ['link proto \ip'],
3204 (001) jeq #0x800 jt 2 jf 3
3208 }, # link_proto_ip_NETANALYZER_TRANSPARENT
3210 name
=> 'link_proto_ip_C_HDLC',
3212 aliases
=> ['link proto \ip'],
3215 (001) jeq #0x800 jt 2 jf 3
3219 }, # link_proto_ip_C_HDLC
3221 name
=> 'link_proto_iso_C_HDLC',
3223 aliases
=> ['link proto \iso'],
3226 (001) jeq #0xfefe jt 2 jf 3
3230 }, # link_proto_iso_C_HDLC
3232 name
=> 'link_proto_ip_IEEE802_11',
3233 DLT
=> 'IEEE802_11',
3234 aliases
=> ['link proto \ip'],
3241 (005) jset #0x8 jt 6 jf 11
3242 (006) jset #0x4 jt 11 jf 7
3243 (007) jset #0x80 jt 8 jf 11
3249 (013) jeq #0x8 jt 14 jf 18
3252 (016) jeq #0x800 jt 17 jf 18
3256 }, # link_proto_ip_IEEE802_11
3258 name
=> 'link_proto_ip_PRISM_HEADER',
3259 DLT
=> 'PRISM_HEADER',
3260 aliases
=> ['link proto \ip'],
3263 (001) and #0xfffff000
3264 (002) jeq #0x80211000 jt 3 jf 5
3274 (012) jset #0x8 jt 13 jf 18
3275 (013) jset #0x4 jt 18 jf 14
3276 (014) jset #0x80 jt 15 jf 18
3283 (021) jeq #0x8 jt 22 jf 26
3286 (024) jeq #0x800 jt 25 jf 26
3290 }, # link_proto_ip_PRISM_HEADER
3292 name
=> 'link_proto_ip_IEEE802_11_RADIO',
3293 DLT
=> 'IEEE802_11_RADIO',
3294 aliases
=> ['link proto \ip'],
3307 (011) jset #0x8 jt 12 jf 29
3308 (012) jset #0x4 jt 29 jf 13
3309 (013) jset #0x80 jt 14 jf 17
3314 (018) jset #0x2000000 jt 19 jf 29
3315 (019) jset #0x80 jt 29 jf 20
3316 (020) jset #0x1000000 jt 21 jf 23
3318 (022) jset #0x20 jt 25 jf 29
3320 (024) jset #0x20 jt 25 jf 29
3323 (027) and #0xfffffffc
3328 (032) jeq #0x8 jt 33 jf 37
3331 (035) jeq #0x800 jt 36 jf 37
3335 }, # link_proto_ip_IEEE802_11_RADIO
3337 name
=> 'link_proto_ip_IEEE802_11_RADIO_AVS',
3338 DLT
=> 'IEEE802_11_RADIO_AVS',
3339 aliases
=> ['link proto \ip'],
3348 (007) jset #0x8 jt 8 jf 13
3349 (008) jset #0x4 jt 13 jf 9
3350 (009) jset #0x80 jt 10 jf 13
3357 (016) jeq #0x8 jt 17 jf 21
3360 (019) jeq #0x800 jt 20 jf 21
3364 }, # link_proto_ip_IEEE802_11_RADIO_AVS
3366 name
=> 'link_proto_ip_PPI',
3368 aliases
=> ['link proto \ip'],
3371 (001) jeq #0x69000000 jt 2 jf 27
3383 (013) jset #0x8 jt 14 jf 19
3384 (014) jset #0x4 jt 19 jf 15
3385 (015) jset #0x80 jt 16 jf 19
3392 (022) jeq #0x8 jt 23 jf 27
3395 (025) jeq #0x800 jt 26 jf 27
3399 }, # link_proto_ip_PPI
3401 name
=> 'link_proto_ip_FDDI',
3403 aliases
=> ['link proto \ip'],
3406 (001) jeq #0x800 jt 2 jf 3
3410 }, # link_proto_ip_FDDI
3411 # 11 DLTs lead to gen_llc_linktype(), which implements 6 code paths,
3412 # let's test these for DLT_IEEE802 only.
3414 name
=> 'link_proto_ip_IEEE802',
3416 aliases
=> ['link proto \ip'], # gen_llc_linktype() default case
3419 (001) jeq #0x800 jt 2 jf 3
3423 }, # link_proto_ip_IEEE802
3425 name
=> 'link_proto_6_IEEE802',
3427 aliases
=> ['link proto 6'], # gen_llc_linktype() LLCSAP_IP
3430 (001) jeq #0x606 jt 2 jf 3
3434 }, # link_proto_6_IEEE802
3436 name
=> 'link_proto_iso_IEEE802',
3438 aliases
=> ['link proto \iso'],
3441 (001) jeq #0xfefe jt 2 jf 3
3445 }, # link_proto_iso_IEEE802
3447 name
=> 'link_proto_netbeui_IEEE802',
3449 aliases
=> ['link proto \netbeui'],
3452 (001) jeq #0xf0f0 jt 2 jf 3
3456 }, # link_proto_netbeui_IEEE802
3458 name
=> 'link_proto_ipx_IEEE802',
3460 aliases
=> ['link proto \ipx'],
3463 (001) jeq #0xe0 jt 2 jf 3
3467 }, # link_proto_ipx_IEEE802
3469 name
=> 'link_proto_atalk_IEEE802',
3471 aliases
=> ['link proto \atalk'],
3474 (001) jeq #0x7809b jt 2 jf 5
3476 (003) jeq #0xaaaa0308 jt 4 jf 5
3480 }, # link_proto_atalk_IEEE802
3482 name
=> 'link_proto_aarp_IEEE802',
3484 aliases
=> ['link proto \aarp'],
3487 (001) jeq #0x80f3 jt 2 jf 3
3491 }, # link_proto_aarp_IEEE802
3493 name
=> 'link_proto_stp_IEEE802',
3495 aliases
=> ['link proto \stp'],
3498 (001) jeq #0x42 jt 2 jf 3
3502 }, # link_proto_stp_IEEE802
3504 name
=> 'link_proto_ip_ATM_RFC1483',
3505 DLT
=> 'ATM_RFC1483',
3506 aliases
=> ['link proto \ip'],
3509 (001) jeq #0x800 jt 2 jf 3
3513 }, # link_proto_ip_ATM_RFC1483
3515 name
=> 'link_proto_ip_ATM_CLIP',
3517 aliases
=> ['link proto \ip'],
3520 (001) jeq #0x800 jt 2 jf 3
3524 }, # link_proto_ip_ATM_CLIP
3526 name
=> 'link_proto_ip_IP_OVER_FC',
3527 DLT
=> 'IP_OVER_FC',
3528 aliases
=> ['link proto \ip'],
3531 (001) jeq #0x800 jt 2 jf 3
3535 }, # link_proto_ip_IP_OVER_FC
3537 name
=> 'link_proto_ip_SUNATM',
3539 aliases
=> ['link proto \ip'],
3543 (002) jeq #0x2 jt 3 jf 6
3545 (004) jeq #0x800 jt 5 jf 6
3549 }, # link_proto_ip_SUNATM
3551 name
=> 'lane_and_link_proto_ip_SUNATM',
3553 aliases
=> ['lane and link proto \ip'],
3557 (002) jeq #0x1 jt 3 jf 8
3559 (004) jeq #0xff00 jt 8 jf 5
3561 (006) jeq #0x800 jt 7 jf 8
3565 }, # lane_and_link_proto_ip_SUNATM
3567 name
=> 'link_proto_ip_LINUX_SLL',
3569 aliases
=> ['link proto \ip'], # gen_linux_sll_linktype() default case
3572 (001) jeq #0x800 jt 2 jf 3
3576 }, # link_proto_ip_LINUX_SLL
3578 name
=> 'link_proto_ip_LINUX_SLL2',
3579 DLT
=> 'LINUX_SLL2', # gen_linktype() default case
3580 aliases
=> ['link proto \ip'],
3583 (001) jeq #0x800 jt 2 jf 3
3587 }, # link_proto_ip_LINUX_SLL
3589 name
=> 'link_proto_ip6_LINUX_SLL',
3590 skip
=> skip_config_undef
('INET6'),
3592 aliases
=> ['link proto \ip6'], # gen_linux_sll_linktype() default case
3595 (001) jeq #0x86dd jt 2 jf 3
3599 }, # link_proto_ip6_LINUX_SLL
3601 name
=> 'link_proto_6_LINUX_SLL',
3603 aliases
=> ['link proto 6'], # gen_linux_sll_linktype() LLCSAP_IP
3606 (001) jeq #0x4 jt 2 jf 5
3608 (003) jeq #0x606 jt 4 jf 5
3612 }, # link_proto_6_LINUX_SLL
3614 name
=> 'link_proto_iso_LINUX_SLL',
3616 aliases
=> ['link proto \iso'],
3619 (001) jeq #0x4 jt 2 jf 5
3621 (003) jeq #0xfefe jt 4 jf 5
3625 }, # link_proto_iso_LINUX_SLL
3627 name
=> 'link_proto_netbeui_LINUX_SLL',
3629 aliases
=> ['link proto \netbeui'],
3632 (001) jeq #0x4 jt 2 jf 5
3634 (003) jeq #0xf0f0 jt 4 jf 5
3638 }, # link_proto_netbeui_LINUX_SLL
3640 name
=> 'link_proto_ipx_LINUX_SLL',
3642 aliases
=> ['link proto \ipx'],
3645 (001) jeq #0x8137 jt 10 jf 2
3646 (002) jeq #0x1 jt 10 jf 3
3647 (003) jeq #0x4 jt 4 jf 11
3649 (005) jeq #0xe0 jt 10 jf 6
3651 (007) jeq #0x8137 jt 8 jf 11
3653 (009) jeq #0xaaaa0300 jt 10 jf 11
3657 }, # link_proto_ipx_LINUX_SLL
3659 name
=> 'link_proto_atalk_LINUX_SLL',
3661 aliases
=> ['link proto \atalk'],
3664 (001) jeq #0x809b jt 7 jf 2
3665 (002) jeq #0x4 jt 3 jf 8
3667 (004) jeq #0x7809b jt 5 jf 8
3669 (006) jeq #0xaaaa0308 jt 7 jf 8
3673 }, # link_proto_atalk_LINUX_SLL
3675 name
=> 'link_proto_aarp_LINUX_SLL',
3677 aliases
=> ['link proto \aarp'],
3680 (001) jeq #0x80f3 jt 7 jf 2
3681 (002) jeq #0x4 jt 3 jf 8
3683 (004) jeq #0x80f3 jt 5 jf 8
3685 (006) jeq #0xaaaa0300 jt 7 jf 8
3689 }, # link_proto_aarp_LINUX_SLL
3691 name
=> 'link_proto_ip_SLIP',
3693 aliases
=> ['link proto \ip'],
3697 (002) jeq #0x40 jt 3 jf 4
3701 }, # link_proto_ip_SLIP
3703 name
=> 'link_proto_ip_SLIP_BSDOS',
3704 DLT
=> 'SLIP_BSDOS',
3705 aliases
=> ['link proto \ip'],
3709 (002) jeq #0x40 jt 3 jf 4
3713 }, # link_proto_ip_SLIP_BSDOS
3715 name
=> 'link_proto_ip_RAW',
3717 aliases
=> ['link proto \ip'],
3721 (002) jeq #0x40 jt 3 jf 4
3725 }, # link_proto_ip_RAW
3727 name
=> 'link_proto_ip6_RAW',
3728 skip
=> skip_config_undef
('INET6'),
3730 aliases
=> ['link proto \ip6'],
3734 (002) jeq #0x60 jt 3 jf 4
3738 }, # link_proto_ip6_RAW
3740 name
=> 'link_proto_stp_RAW',
3742 aliases
=> ['link proto \stp'],
3745 (001) jeq #0x0 jt 2 jf 3
3749 }, # link_proto_stp_RAW
3751 name
=> 'link_proto_ip_IPV4',
3753 aliases
=> ['link proto \ip'],
3757 }, # link_proto_ip_IPV4
3759 name
=> 'link_proto_ip6_IPV4',
3760 skip
=> skip_config_undef
('INET6'),
3762 aliases
=> ['link proto \ip6'],
3765 (001) jeq #0x0 jt 2 jf 3
3769 }, # link_proto_ip6_IPV4
3771 name
=> 'link_proto_ip6_IPV6',
3772 skip
=> skip_config_undef
('INET6'),
3774 aliases
=> ['link proto \ip6'],
3778 }, # link_proto_ip6_IPV6
3780 name
=> 'link_proto_ip_IPV6',
3782 aliases
=> ['link proto \ip'],
3785 (001) jeq #0x0 jt 2 jf 3
3789 }, # link_proto_ip_IPV6
3790 # 4 DLTs lead to ethertype_to_ppptype(), which implements 9 code paths,
3791 # let's test these for DLT_PPP only.
3793 name
=> 'link_proto_ip_PPP',
3795 aliases
=> ['link proto \ip'],
3798 (001) jeq #0x21 jt 2 jf 3
3802 }, # link_proto_ip_PPP
3804 name
=> 'link_proto_ip6_PPP',
3805 skip
=> skip_config_undef
('INET6'),
3807 aliases
=> ['link proto \ip6'],
3810 (001) jeq #0x57 jt 2 jf 3
3814 }, # link_proto_ip6_PPP
3816 name
=> 'link_proto_decnet_PPP',
3818 aliases
=> ['link proto \decnet'],
3821 (001) jeq #0x27 jt 2 jf 3
3825 }, # link_proto_decnet_PPP
3827 name
=> 'link_proto_atalk_PPP',
3829 aliases
=> ['link proto \atalk'],
3832 (001) jeq #0x29 jt 2 jf 3
3836 }, # link_proto_atalk_PPP
3838 name
=> 'link_proto_xnsidp_PPP',
3840 aliases
=> ['link proto 0x0600'], # ethertype_to_ppptype() ETHERTYPE_NS
3843 (001) jeq #0x25 jt 2 jf 3
3847 }, # link_proto_xnsidp_PPP
3849 name
=> 'link_proto_iso_PPP',
3851 aliases
=> ['link proto \iso'],
3854 (001) jeq #0x23 jt 2 jf 3
3858 }, # link_proto_iso_PPP
3860 name
=> 'link_proto_stp_PPP',
3862 aliases
=> ['link proto \stp'],
3865 (001) jeq #0x31 jt 2 jf 3
3869 }, # link_proto_stp_PPP
3871 name
=> 'link_proto_lat_PPP',
3873 aliases
=> ['link proto \lat'], # ethertype_to_ppptype() default case
3876 (001) jeq #0x6004 jt 2 jf 3
3880 }, # link_proto_lat_PPP
3882 name
=> 'link_proto_ipx_PPP',
3884 aliases
=> ['link proto \ipx'],
3887 (001) jeq #0x2b jt 2 jf 3
3891 }, # link_proto_ipx_PPP
3893 name
=> 'link_proto_ip_PPP_PPPD',
3895 aliases
=> ['link proto \ip'],
3898 (001) jeq #0x21 jt 2 jf 3
3902 }, # link_proto_ip_PPP_PPPD
3904 name
=> 'link_proto_ip_PPP_SERIAL',
3905 DLT
=> 'PPP_SERIAL',
3906 aliases
=> ['link proto \ip'],
3909 (001) jeq #0x21 jt 2 jf 3
3913 }, # link_proto_ip_PPP_SERIAL
3915 name
=> 'link_proto_ip_PPP_ETHER',
3917 aliases
=> ['link proto \ip'],
3920 (001) jeq #0x21 jt 2 jf 3
3924 }, # link_proto_ip_PPP_ETHER
3926 name
=> 'link_proto_ip_PPP_BSDOS',
3928 aliases
=> ['link proto \ip'],
3931 (001) jeq #0x21 jt 4 jf 2
3932 (002) jeq #0x2d jt 4 jf 3
3933 (003) jeq #0x2f jt 4 jf 5
3937 }, # link_proto_ip_PPP_BSDOS
3939 name
=> 'link_proto_ip6_PPP_BSDOS',
3940 skip
=> skip_config_undef
('INET6'),
3942 aliases
=> ['link proto \ip6'],
3945 (001) jeq #0x57 jt 2 jf 3
3949 }, # link_proto_ip6_PPP_BSDOS
3951 # DLT_NULL and DLT_ENC depend on the values of AF_INET and AF_INET6,
3952 # which are OS-specific, and on the host byte order. Exercise these
3953 # dimensions completely for DLT_NULL only.
3955 name
=> 'link_proto_ip_1LE_NULL',
3956 skip
=> skip_big_endian
() ||
3957 skip_os_not
('haiku'),
3959 aliases
=> ['link proto \ip'],
3962 (001) jeq #0x1000000 jt 2 jf 3
3966 }, # link_proto_ip_1LE_NULL
3968 name
=> 'link_proto_ip_2LE_NULL',
3969 skip
=> skip_big_endian
() ||
3972 aliases
=> ['link proto \ip'],
3975 (001) jeq #0x2000000 jt 2 jf 3
3979 }, # link_proto_ip_2LE_NULL
3981 name
=> 'link_proto_ip_2BE_NULL',
3982 skip
=> skip_little_endian
(),
3984 aliases
=> ['link proto \ip'],
3987 (001) jeq #0x2 jt 2 jf 3
3991 }, # link_proto_ip_2BE_NULL
3993 name
=> 'link_proto_ip6_5LE_NULL',
3994 skip
=> skip_big_endian
() ||
3995 skip_os_not
('haiku') ||
3996 skip_config_undef
('INET6'),
3998 aliases
=> ['link proto \ip6'],
4001 (001) jeq #0x5000000 jt 2 jf 3
4005 }, # link_proto_ip6_5LE_NULL
4007 name
=> 'link_proto_ip6_10LE_NULL',
4008 skip
=> skip_big_endian
() ||
4009 skip_os_not
('linux') ||
4010 skip_config_undef
('INET6'),
4012 aliases
=> ['link proto \ip6'],
4015 (001) jeq #0xa000000 jt 2 jf 3
4019 }, # link_proto_ip6_10LE_NULL
4021 name
=> 'link_proto_ip6_10BE_NULL',
4022 skip
=> skip_little_endian
() ||
4023 skip_os_not
('linux') ||
4024 skip_config_undef
('INET6'),
4026 aliases
=> ['link proto \ip6'],
4029 (001) jeq #0xa jt 2 jf 3
4033 }, # link_proto_ip6_10BE_NULL
4035 name
=> 'link_proto_ip6_22BE_NULL',
4036 skip
=> skip_little_endian
() ||
4037 skip_os_not
('hpux') ||
4038 skip_config_undef
('INET6'),
4040 aliases
=> ['link proto \ip6'],
4043 (001) jeq #0x16 jt 2 jf 3
4047 }, # link_proto_ip6_22BE_NULL
4049 name
=> 'link_proto_ip6_24LE_NULL',
4050 skip
=> skip_big_endian
() ||
4051 (skip_os_not
('aix') && skip_os_not
('netbsd') && skip_os_not
('openbsd')) ||
4052 skip_config_undef
('INET6'),
4054 aliases
=> ['link proto \ip6'],
4057 (001) jeq #0x18000000 jt 2 jf 3
4061 }, # link_proto_ip6_24LE_NULL
4063 name
=> 'link_proto_ip6_24BE_NULL',
4064 skip
=> skip_little_endian
() ||
4065 (skip_os_not
('aix') && skip_os_not
('netbsd') && skip_os_not
('openbsd')) ||
4066 skip_config_undef
('INET6'),
4068 aliases
=> ['link proto \ip6'],
4071 (001) jeq #0x18 jt 2 jf 3
4075 }, # link_proto_ip6_24BE_NULL
4077 name
=> 'link_proto_ip6_26LE_NULL',
4078 skip
=> skip_big_endian
() ||
4079 skip_os_not
('solaris') ||
4080 skip_config_undef
('INET6'),
4082 aliases
=> ['link proto \ip6'],
4085 (001) jeq #0x1a000000 jt 2 jf 3
4089 }, # link_proto_ip6_26LE_NULL
4091 name
=> 'link_proto_ip6_26BE_NULL',
4092 skip
=> skip_little_endian
() ||
4093 skip_os_not
('solaris') ||
4094 skip_config_undef
('INET6'),
4096 aliases
=> ['link proto \ip6'],
4099 (001) jeq #0x1a jt 2 jf 3
4103 }, # link_proto_ip6_26BE_NULL
4105 name
=> 'link_proto_ip6_28LE_NULL',
4106 skip
=> skip_big_endian
() ||
4107 (skip_os_not
('dragonfly') && skip_os_not
('freebsd')) ||
4108 skip_config_undef
('INET6'),
4110 aliases
=> ['link proto \ip6'],
4113 (001) jeq #0x1c000000 jt 2 jf 3
4117 }, # link_proto_ip6_28LE_NULL
4119 name
=> 'link_proto_ip6_28BE_NULL',
4120 skip
=> skip_little_endian
() ||
4121 (skip_os_not
('dragonfly') && skip_os_not
('freebsd')) ||
4122 skip_config_undef
('INET6'),
4124 aliases
=> ['link proto \ip6'],
4127 (001) jeq #0x1c jt 2 jf 3
4131 }, # link_proto_ip6_28BE_NULL
4133 name
=> 'link_proto_ip6_30LE_NULL',
4134 skip
=> skip_big_endian
() ||
4135 skip_os_not
('darwin') ||
4136 skip_config_undef
('INET6'),
4138 aliases
=> ['link proto \ip6'],
4141 (001) jeq #0x1e000000 jt 2 jf 3
4145 }, # link_proto_ip6_30LE_NULL
4147 name
=> 'link_proto_ip6_30BE_NULL',
4148 skip
=> skip_little_endian
() ||
4149 skip_os_not
('darwin') ||
4150 skip_config_undef
('INET6'),
4152 aliases
=> ['link proto \ip6'],
4155 (001) jeq #0x1e jt 2 jf 3
4159 }, # link_proto_ip6_30BE_NULL
4161 name
=> 'link_proto_stp_NULL',
4162 # The same code path for DLT_ENC and DLT_LOOP.
4164 aliases
=> ['link proto \stp'],
4167 (001) jeq #0x0 jt 2 jf 3
4171 }, # link_proto_stp_NULL
4173 name
=> 'link_proto_ip_2LE_ENC',
4174 skip
=> skip_big_endian
() ||
4175 skip_os_not
('linux'),
4177 aliases
=> ['link proto \ip'],
4180 (001) jeq #0x2000000 jt 2 jf 3
4184 }, # link_proto_ip_2LE_ENC
4186 name
=> 'link_proto_ip6_28LE_ENC',
4187 skip
=> skip_big_endian
() ||
4188 (skip_os_not
('dragonfly') && skip_os_not
('freebsd')) ||
4189 skip_config_undef
('INET6'),
4191 aliases
=> ['link proto \ip6'],
4194 (001) jeq #0x1c000000 jt 2 jf 3
4198 }, # link_proto_ip6_28LE_ENC
4199 # DLT_LOOP and DLT_PFLOG depend on the values of AF_INET and AF_INET6,
4200 # which are OS-specific. Exercise this dimension completely for
4203 name
=> 'link_proto_ip_1_LOOP',
4204 skip
=> skip_os_not
('haiku'),
4206 aliases
=> ['link proto \ip'],
4209 (001) jeq #0x1 jt 2 jf 3
4213 }, # link_proto_ip_1_LOOP
4215 name
=> 'link_proto_ip_2_LOOP',
4216 skip
=> skip_os
('haiku'),
4218 aliases
=> ['link proto \ip'],
4221 (001) jeq #0x2 jt 2 jf 3
4225 }, # link_proto_ip_2_LOOP
4227 name
=> 'link_proto_ip6_5_LOOP',
4228 skip
=> skip_os_not
('haiku') ||
4229 skip_config_undef
('INET6'),
4231 aliases
=> ['link proto \ip6'],
4234 (001) jeq #0x5 jt 2 jf 3
4238 }, # link_proto_ip6_5_LOOP
4240 name
=> 'link_proto_ip6_10_LOOP',
4241 skip
=> skip_os_not
('linux') ||
4242 skip_config_undef
('INET6'),
4244 aliases
=> ['link proto \ip6'],
4247 (001) jeq #0xa jt 2 jf 3
4251 }, # link_proto_ip6_10_LOOP
4253 name
=> 'link_proto_ip6_22_LOOP',
4254 skip
=> skip_os_not
('hpux') ||
4255 skip_config_undef
('INET6'),
4257 aliases
=> ['link proto \ip6'],
4260 (001) jeq #0x16 jt 2 jf 3
4264 }, # link_proto_ip6_22_LOOP
4266 name
=> 'link_proto_ip6_24_LOOP',
4267 skip
=> (skip_os_not
('aix') && skip_os_not
('netbsd') && skip_os_not
('openbsd')) ||
4268 skip_config_undef
('INET6'),
4270 aliases
=> ['link proto \ip6'],
4273 (001) jeq #0x18 jt 2 jf 3
4277 }, # link_proto_ip6_24_LOOP
4279 name
=> 'link_proto_ip6_26_LOOP',
4280 skip
=> skip_os_not
('solaris') ||
4281 skip_config_undef
('INET6'),
4283 aliases
=> ['link proto \ip6'],
4286 (001) jeq #0x1a jt 2 jf 3
4290 }, # link_proto_ip6_26_LOOP
4292 name
=> 'link_proto_ip6_28_LOOP',
4293 skip
=> (skip_os_not
('dragonfly') && skip_os_not
('freebsd')) ||
4294 skip_config_undef
('INET6'),
4296 aliases
=> ['link proto \ip6'],
4299 (001) jeq #0x1c jt 2 jf 3
4303 }, # link_proto_ip6_28_LOOP
4305 name
=> 'link_proto_ip6_30_LOOP',
4306 skip
=> skip_os_not
('darwin') ||
4307 skip_config_undef
('INET6'),
4309 aliases
=> ['link proto \ip6'],
4312 (001) jeq #0x1e jt 2 jf 3
4316 }, # link_proto_ip6_30_LOOP
4318 name
=> 'link_proto_ip_2_PFLOG',
4319 skip
=> skip_os
('haiku'),
4321 aliases
=> ['link proto \ip'],
4324 (001) jeq #0x2 jt 2 jf 3
4328 }, # link_proto_ip_2_PFLOG
4330 name
=> 'link_proto_ip6_24_PFLOG',
4331 skip
=> (skip_os_not
('aix') && skip_os_not
('netbsd') && skip_os_not
('openbsd')) ||
4332 skip_config_undef
('INET6'),
4334 aliases
=> ['link proto \ip6'],
4337 (001) jeq #0x18 jt 2 jf 3
4341 }, # link_proto_ip6_PFLOG
4343 name
=> 'link_proto_stp_PFLOG',
4345 aliases
=> ['link proto \stp'],
4348 (001) jeq #0x0 jt 2 jf 3
4352 }, # link_proto_stp_PFLOG
4354 name
=> 'link_proto_stp_ARCNET',
4356 aliases
=> ['link proto \stp'],
4359 (001) jeq #0x0 jt 2 jf 3
4363 }, # link_proto_stp_ARCNET
4365 name
=> 'link_proto_ip6_ARCNET',
4366 skip
=> skip_config_undef
('INET6'),
4368 aliases
=> ['link proto \ip6'],
4371 (001) jeq #0xc4 jt 2 jf 3
4375 }, # link_proto_ip6_ARCNET
4377 name
=> 'link_proto_ip_ARCNET',
4379 aliases
=> ['link proto \ip'],
4382 (001) jeq #0xd4 jt 3 jf 2
4383 (002) jeq #0xf0 jt 3 jf 4
4387 }, # link_proto_ip_ARCNET
4389 name
=> 'link_proto_arp_ARCNET',
4391 aliases
=> ['link proto \arp'],
4394 (001) jeq #0xd5 jt 3 jf 2
4395 (002) jeq #0xf1 jt 3 jf 4
4399 }, # link_proto_arp_ARCNET
4401 name
=> 'link_proto_rarp_ARCNET',
4403 aliases
=> ['link proto \rarp'],
4406 (001) jeq #0xd6 jt 2 jf 3
4410 }, # link_proto_rarp_ARCNET
4412 name
=> 'link_proto_atalk_ARCNET',
4414 aliases
=> ['link proto \atalk'],
4417 (001) jeq #0xdd jt 2 jf 3
4421 }, # link_proto_atalk_ARCNET
4423 name
=> 'link_proto_ip6_ARCNET_LINUX',
4424 skip
=> skip_config_undef
('INET6'),
4425 DLT
=> 'ARCNET_LINUX',
4426 aliases
=> ['link proto \ip6'],
4429 (001) jeq #0xc4 jt 2 jf 3
4433 }, # link_proto_ip6_ARCNET_LINUX
4435 name
=> 'link_proto_ip_ARCNET_LINUX',
4436 DLT
=> 'ARCNET_LINUX',
4437 aliases
=> ['link proto \ip'],
4440 (001) jeq #0xd4 jt 3 jf 2
4441 (002) jeq #0xf0 jt 3 jf 4
4445 }, # link_proto_ip_ARCNET_LINUX
4447 name
=> 'link_proto_arp_ARCNET_LINUX',
4448 DLT
=> 'ARCNET_LINUX',
4449 aliases
=> ['link proto \arp'],
4452 (001) jeq #0xd5 jt 3 jf 2
4453 (002) jeq #0xf1 jt 3 jf 4
4457 }, # link_proto_arp_ARCNET_LINUX
4459 name
=> 'link_proto_rarp_ARCNET_LINUX',
4460 DLT
=> 'ARCNET_LINUX',
4461 aliases
=> ['link proto \rarp'],
4464 (001) jeq #0xd6 jt 2 jf 3
4468 }, # link_proto_rarp_ARCNET_LINUX
4470 name
=> 'link_proto_atalk_ARCNET_LINUX',
4471 DLT
=> 'ARCNET_LINUX',
4472 aliases
=> ['link proto \atalk'],
4475 (001) jeq #0xdd jt 2 jf 3
4479 }, # link_proto_atalk_ARCNET_LINUX
4481 name
=> 'link_proto_atalk_LTALK',
4483 aliases
=> ['link proto \atalk'],
4487 }, # link_proto_atalk_LTALK
4489 name
=> 'link_proto_ip_LTALK',
4491 aliases
=> ['link proto \ip'],
4494 (001) jeq #0x0 jt 2 jf 3
4498 }, # link_proto_ip_LTALK
4500 name
=> 'link_proto_ip_FRELAY',
4502 aliases
=> ['link proto \ip'],
4505 (001) jeq #0x3cc jt 2 jf 3
4509 }, # link_proto_ip_FRELAY
4511 name
=> 'link_proto_ip6_FRELAY',
4512 skip
=> skip_config_undef
('INET6'),
4514 aliases
=> ['link proto \ip6'],
4517 (001) jeq #0x38e jt 2 jf 3
4521 }, # link_proto_ip6_FRELAY
4523 name
=> 'link_proto_iso_FRELAY',
4525 aliases
=> ['link proto \iso'],
4528 (001) jeq #0x381 jt 4 jf 2
4529 (002) jeq #0x382 jt 4 jf 3
4530 (003) jeq #0x383 jt 4 jf 5
4534 }, # link_proto_iso_FRELAY
4536 name
=> 'link_proto_stp_FRELAY',
4538 aliases
=> ['link proto \stp'],
4541 (001) jeq #0x0 jt 2 jf 3
4545 }, # link_proto_arp_FRELAY
4547 name
=> 'link_proto_ip_JUNIPER_MFR',
4548 DLT
=> 'JUNIPER_MFR',
4549 aliases
=> ['link proto \ip'],
4552 (001) and #0xffffff00
4553 (002) jeq #0x4d474300 jt 3 jf 4
4557 }, # link_proto_ip_JUNIPER_MFR
4559 name
=> 'link_proto_ip_BACNET_MS_TP',
4560 DLT
=> 'BACNET_MS_TP',
4561 aliases
=> ['link proto \ip'],
4564 (001) and #0xffff0000
4565 (002) jeq #0x55ff0000 jt 3 jf 4
4569 }, # link_proto_ip_BACNET_MS_TP
4571 name
=> 'link_proto_ip_IPNET',
4573 aliases
=> ['link proto \ip'],
4576 (001) jeq #0x2 jt 2 jf 3
4580 }, # link_proto_ip_IPNET
4582 name
=> 'link_proto_ip6_IPNET',
4583 skip
=> skip_config_undef
('INET6'),
4585 aliases
=> ['link proto \ip6'],
4588 (001) jeq #0x1a jt 2 jf 3
4592 }, # link_proto_ip6_IPNET
4594 name
=> 'link_proto_stp_IPNET',
4596 aliases
=> ['link proto \stp'],
4599 (001) jeq #0x0 jt 2 jf 3
4603 }, # link_proto_stp_IPNET
4605 # Edge cases for LLC/EtherType.
4607 name
=> 'link_proto_0_EN10MB',
4609 aliases
=> ['link proto 0'],
4612 (001) jgt #0x5dc jt 5 jf 2
4614 (003) jeq #0x0 jt 4 jf 5
4618 }, # link_proto_0_EN10MB
4620 name
=> 'link_proto_255_EN10MB',
4622 aliases
=> ['link proto 255'],
4625 (001) jgt #0x5dc jt 5 jf 2
4627 (003) jeq #0xff jt 4 jf 5
4631 }, # link_proto_255_EN10MB
4633 name
=> 'link_proto_1501_EN10MB',
4635 aliases
=> ['link proto 1501'],
4638 (001) jeq #0x5dd jt 2 jf 3
4642 }, # link_proto_1501_EN10MB
4644 name
=> 'link_proto_65535_EN10MB',
4646 aliases
=> ['link proto 65535'],
4649 (001) jeq #0xffff jt 2 jf 3
4653 }, # link_proto_65535_EN10MB
4655 # ARP and RARP tests are interleaved for ease of cross-reference
4656 # because ARP filter programs and RARP filter programs differ in the
4657 # link-layer protocol code point only (0x8035 instead of 0x0806 for
4658 # most DLTs, 0xD6 instead of {0xD5, 0xF1} for ARCnet).
4660 name
=> 'arp_host_addr_en10mb',
4664 'arp src or dst 1.2.3.4',
4665 'arp src or dst host 1.2.3.4',
4669 (001) jeq #0x806 jt 2 jf 7
4671 (003) jeq #0x1020304 jt 6 jf 4
4673 (005) jeq #0x1020304 jt 6 jf 7
4677 }, # arp_host_addr_en10mb
4679 name
=> 'rarp_host_addr_en10mb',
4682 'rarp host 1.2.3.4',
4683 'rarp src or dst 1.2.3.4',
4684 'rarp src or dst host 1.2.3.4',
4688 (001) jeq #0x8035 jt 2 jf 7
4690 (003) jeq #0x1020304 jt 6 jf 4
4692 (005) jeq #0x1020304 jt 6 jf 7
4696 }, # rarp_host_addr_en10mb
4698 name
=> 'arp_host_name_en10mb',
4699 skip
=> skip_no_hosts
(),
4702 'arp host noeth-ipv4-noipv6.host123.libpcap.test',
4703 'arp src or dst noeth-ipv4-noipv6.host123.libpcap.test',
4704 'arp src or dst host noeth-ipv4-noipv6.host123.libpcap.test',
4708 (001) jeq #0x806 jt 2 jf 7
4710 (003) jeq #0xa141e28 jt 6 jf 4
4712 (005) jeq #0xa141e28 jt 6 jf 7
4716 }, # arp_host_name_en10mb
4718 name
=> 'rarp_host_name_en10mb',
4719 skip
=> skip_no_hosts
(),
4722 'rarp host noeth-ipv4-noipv6.host123.libpcap.test',
4723 'rarp src or dst noeth-ipv4-noipv6.host123.libpcap.test',
4724 'rarp src or dst host noeth-ipv4-noipv6.host123.libpcap.test',
4728 (001) jeq #0x8035 jt 2 jf 7
4730 (003) jeq #0xa141e28 jt 6 jf 4
4732 (005) jeq #0xa141e28 jt 6 jf 7
4736 }, # rarp_host_name_en10mb
4738 name
=> 'arp_host_NAME_en10mb',
4739 skip
=> skip_no_hosts_casecmp
(),
4742 'arp host NOETH-IPV4-NOIPV6.HOST123.LIBPCAP.TEST',
4743 'arp src or dst NOETH-IPV4-NOIPV6.HOST123.LIBPCAP.TEST',
4744 'arp src or dst host NOETH-IPV4-NOIPV6.HOST123.LIBPCAP.TEST',
4748 (001) jeq #0x806 jt 2 jf 7
4750 (003) jeq #0xa141e28 jt 6 jf 4
4752 (005) jeq #0xa141e28 jt 6 jf 7
4756 }, # arp_host_NAME_en10mb
4758 name
=> 'rarp_host_NAME_en10mb',
4759 skip
=> skip_no_hosts_casecmp
(),
4762 'rarp host NOETH-IPV4-NOIPV6.HOST123.LIBPCAP.TEST',
4763 'rarp src or dst NOETH-IPV4-NOIPV6.HOST123.LIBPCAP.TEST',
4764 'rarp src or dst host NOETH-IPV4-NOIPV6.HOST123.LIBPCAP.TEST',
4768 (001) jeq #0x8035 jt 2 jf 7
4770 (003) jeq #0xa141e28 jt 6 jf 4
4772 (005) jeq #0xa141e28 jt 6 jf 7
4776 }, # rarp_host_NAME_en10mb
4778 name
=> 'arp_src_addr_en10mb',
4782 'arp src host 1.2.3.4',
4786 (001) jeq #0x806 jt 2 jf 5
4788 (003) jeq #0x1020304 jt 4 jf 5
4792 }, # arp_src_addr_en10mb
4794 name
=> 'rarp_src_addr_en10mb',
4798 'rarp src host 1.2.3.4',
4802 (001) jeq #0x8035 jt 2 jf 5
4804 (003) jeq #0x1020304 jt 4 jf 5
4808 }, # rarp_src_addr_en10mb
4810 name
=> 'arp_src_name_en10mb',
4811 skip
=> skip_no_hosts
(),
4814 'arp src noeth-ipv4-noipv6.host123.libpcap.test',
4815 'arp src host noeth-ipv4-noipv6.host123.libpcap.test',
4819 (001) jeq #0x806 jt 2 jf 5
4821 (003) jeq #0xa141e28 jt 4 jf 5
4825 }, # arp_src_name_en10mb
4827 name
=> 'rarp_src_name_en10mb',
4828 skip
=> skip_no_hosts
(),
4831 'rarp src noeth-ipv4-noipv6.host123.libpcap.test',
4832 'rarp src host noeth-ipv4-noipv6.host123.libpcap.test',
4836 (001) jeq #0x8035 jt 2 jf 5
4838 (003) jeq #0xa141e28 jt 4 jf 5
4842 }, # rarp_src_name_en10mb
4844 name
=> 'arp_src_NAME_en10mb',
4845 skip
=> skip_no_hosts_casecmp
(),
4848 'arp src NOETH-IPV4-NOIPV6.HOST123.LIBPCAP.TEST',
4849 'arp src host NOETH-IPV4-NOIPV6.HOST123.LIBPCAP.TEST',
4853 (001) jeq #0x806 jt 2 jf 5
4855 (003) jeq #0xa141e28 jt 4 jf 5
4859 }, # arp_src_NAME_en10mb
4861 name
=> 'rarp_src_NAME_en10mb',
4862 skip
=> skip_no_hosts_casecmp
(),
4865 'rarp src NOETH-IPV4-NOIPV6.HOST123.LIBPCAP.TEST',
4866 'rarp src host NOETH-IPV4-NOIPV6.HOST123.LIBPCAP.TEST',
4870 (001) jeq #0x8035 jt 2 jf 5
4872 (003) jeq #0xa141e28 jt 4 jf 5
4876 }, # rarp_src_NAME_en10mb
4878 name
=> 'arp_dst_addr_en10mb',
4882 'arp dst host 1.2.3.4',
4886 (001) jeq #0x806 jt 2 jf 5
4888 (003) jeq #0x1020304 jt 4 jf 5
4892 }, # arp_dst_addr_en10mb
4894 name
=> 'rarp_dst_addr_en10mb',
4898 'rarp dst host 1.2.3.4',
4902 (001) jeq #0x8035 jt 2 jf 5
4904 (003) jeq #0x1020304 jt 4 jf 5
4908 }, # rarp_dst_addr_en10mb
4910 name
=> 'arp_dst_name_en10mb',
4911 skip
=> skip_no_hosts
(),
4914 'arp dst noeth-ipv4-noipv6.host123.libpcap.test',
4915 'arp dst host noeth-ipv4-noipv6.host123.libpcap.test',
4919 (001) jeq #0x806 jt 2 jf 5
4921 (003) jeq #0xa141e28 jt 4 jf 5
4925 }, # arp_dst_name_en10mb
4927 name
=> 'rarp_dst_name_en10mb',
4928 skip
=> skip_no_hosts
(),
4931 'rarp dst noeth-ipv4-noipv6.host123.libpcap.test',
4932 'rarp dst host noeth-ipv4-noipv6.host123.libpcap.test',
4936 (001) jeq #0x8035 jt 2 jf 5
4938 (003) jeq #0xa141e28 jt 4 jf 5
4942 }, # rarp_dst_name_en10mb
4944 name
=> 'arp_dst_NAME_en10mb',
4945 skip
=> skip_no_hosts_casecmp
(),
4948 'arp dst NOETH-IPV4-NOIPV6.HOST123.LIBPCAP.TEST',
4949 'arp dst host NOETH-IPV4-NOIPV6.HOST123.LIBPCAP.TEST',
4953 (001) jeq #0x806 jt 2 jf 5
4955 (003) jeq #0xa141e28 jt 4 jf 5
4959 }, # arp_dst_NAME_en10mb
4961 name
=> 'rarp_dst_NAME_en10mb',
4962 skip
=> skip_no_hosts_casecmp
(),
4965 'rarp dst NOETH-IPV4-NOIPV6.HOST123.LIBPCAP.TEST',
4966 'rarp dst host NOETH-IPV4-NOIPV6.HOST123.LIBPCAP.TEST',
4970 (001) jeq #0x8035 jt 2 jf 5
4972 (003) jeq #0xa141e28 jt 4 jf 5
4976 }, # rarp_dst_NAME_en10mb
4977 # Exercise other DLTs briefly only to touch some of the various code paths
4978 # in gen_linktype() with different L2 headers and offsets for the SPA
4981 name
=> 'arp_host_addr_c_hdlc',
4983 aliases
=> ['arp host 1.2.3.4'],
4986 (001) jeq #0x806 jt 2 jf 7
4988 (003) jeq #0x1020304 jt 6 jf 4
4990 (005) jeq #0x1020304 jt 6 jf 7
4994 }, # arp_host_addr_c_hdlc
4996 name
=> 'arp_host_addr_c_hdlc',
4998 aliases
=> ['rarp host 1.2.3.4'],
5001 (001) jeq #0x8035 jt 2 jf 7
5003 (003) jeq #0x1020304 jt 6 jf 4
5005 (005) jeq #0x1020304 jt 6 jf 7
5009 }, # rarp_host_addr_c_hdlc
5011 name
=> 'arp_host_addr_ieee802_11',
5012 DLT
=> 'IEEE802_11',
5013 aliases
=> ['arp host 1.2.3.4'],
5020 (005) jset #0x8 jt 6 jf 11
5021 (006) jset #0x4 jt 11 jf 7
5022 (007) jset #0x80 jt 8 jf 11
5028 (013) jeq #0x8 jt 14 jf 24
5031 (016) jeq #0x806 jt 17 jf 24
5034 (019) jeq #0x1020304 jt 23 jf 20
5037 (022) jeq #0x1020304 jt 23 jf 24
5041 }, # arp_host_addr_ieee802_11
5043 name
=> 'rarp_host_addr_ieee802_11',
5044 DLT
=> 'IEEE802_11',
5045 aliases
=> ['rarp host 1.2.3.4'],
5052 (005) jset #0x8 jt 6 jf 11
5053 (006) jset #0x4 jt 11 jf 7
5054 (007) jset #0x80 jt 8 jf 11
5060 (013) jeq #0x8 jt 14 jf 24
5063 (016) jeq #0x8035 jt 17 jf 24
5066 (019) jeq #0x1020304 jt 23 jf 20
5069 (022) jeq #0x1020304 jt 23 jf 24
5073 }, # rarp_host_addr_ieee802_11
5075 name
=> 'arp_host_addr_fddi',
5077 aliases
=> ['arp host 1.2.3.4'],
5080 (001) jeq #0x806 jt 2 jf 7
5082 (003) jeq #0x1020304 jt 6 jf 4
5084 (005) jeq #0x1020304 jt 6 jf 7
5088 }, # arp_host_addr_fddi
5090 name
=> 'rarp_host_addr_fddi',
5092 aliases
=> ['rarp host 1.2.3.4'],
5095 (001) jeq #0x8035 jt 2 jf 7
5097 (003) jeq #0x1020304 jt 6 jf 4
5099 (005) jeq #0x1020304 jt 6 jf 7
5103 }, # rarp_host_addr_fddi
5105 name
=> 'arp_host_addr_ieee802',
5107 aliases
=> ['arp host 1.2.3.4'],
5110 (001) jeq #0x806 jt 2 jf 7
5112 (003) jeq #0x1020304 jt 6 jf 4
5114 (005) jeq #0x1020304 jt 6 jf 7
5118 }, # arp_host_addr_ieee802
5120 name
=> 'rarp_host_addr_ieee802',
5122 aliases
=> ['rarp host 1.2.3.4'],
5125 (001) jeq #0x8035 jt 2 jf 7
5127 (003) jeq #0x1020304 jt 6 jf 4
5129 (005) jeq #0x1020304 jt 6 jf 7
5133 }, # rarp_host_addr_ieee802
5135 name
=> 'arp_host_addr_ip_over_fc',
5136 DLT
=> 'IP_OVER_FC',
5137 aliases
=> ['arp host 1.2.3.4'],
5140 (001) jeq #0x806 jt 2 jf 7
5142 (003) jeq #0x1020304 jt 6 jf 4
5144 (005) jeq #0x1020304 jt 6 jf 7
5148 }, # arp_host_addr_ip_over_fc
5150 name
=> 'rarp_host_addr_ip_over_fc',
5151 DLT
=> 'IP_OVER_FC',
5152 aliases
=> ['rarp host 1.2.3.4'],
5155 (001) jeq #0x8035 jt 2 jf 7
5157 (003) jeq #0x1020304 jt 6 jf 4
5159 (005) jeq #0x1020304 jt 6 jf 7
5163 }, # rarp_host_addr_ip_over_fc
5165 name
=> 'arp_host_addr_sunatm',
5167 aliases
=> ['arp host 1.2.3.4'],
5171 (002) jeq #0x2 jt 3 jf 10
5173 (004) jeq #0x806 jt 5 jf 10
5175 (006) jeq #0x1020304 jt 9 jf 7
5177 (008) jeq #0x1020304 jt 9 jf 10
5181 }, # arp_host_addr_sunatm
5183 name
=> 'rarp_host_addr_sunatm',
5185 aliases
=> ['rarp host 1.2.3.4'],
5189 (002) jeq #0x2 jt 3 jf 10
5191 (004) jeq #0x8035 jt 5 jf 10
5193 (006) jeq #0x1020304 jt 9 jf 7
5195 (008) jeq #0x1020304 jt 9 jf 10
5199 }, # rarp_host_addr_sunatm
5201 name
=> 'arp_host_addr_linux_sll',
5203 aliases
=> ['arp host 1.2.3.4'],
5206 (001) jeq #0x806 jt 2 jf 7
5208 (003) jeq #0x1020304 jt 6 jf 4
5210 (005) jeq #0x1020304 jt 6 jf 7
5214 }, # arp_host_addr_linux_sll
5216 name
=> 'rarp_host_addr_linux_sll',
5218 aliases
=> ['rarp host 1.2.3.4'],
5221 (001) jeq #0x8035 jt 2 jf 7
5223 (003) jeq #0x1020304 jt 6 jf 4
5225 (005) jeq #0x1020304 jt 6 jf 7
5229 }, # rarp_host_addr_linux_sll
5231 name
=> 'arp_host_addr_raw',
5233 aliases
=> ['arp host 1.2.3.4'],
5234 # This boils down to "ret #0", which the optimizer expectedly rejects.
5237 (001) jeq #0x0 jt 2 jf 7
5239 (003) jeq #0x1020304 jt 6 jf 4
5241 (005) jeq #0x1020304 jt 6 jf 7
5245 }, # arp_host_addr_raw
5247 name
=> 'rarp_host_addr_raw',
5249 aliases
=> ['rarp host 1.2.3.4'],
5252 (001) jeq #0x0 jt 2 jf 7
5254 (003) jeq #0x1020304 jt 6 jf 4
5256 (005) jeq #0x1020304 jt 6 jf 7
5260 }, # rarp_host_addr_raw
5262 name
=> 'arp_host_addr_ppp',
5264 aliases
=> ['arp host 1.2.3.4'],
5267 (001) jeq #0x806 jt 2 jf 7
5269 (003) jeq #0x1020304 jt 6 jf 4
5271 (005) jeq #0x1020304 jt 6 jf 7
5275 }, # arp_host_addr_ppp
5277 name
=> 'rarp_host_addr_ppp',
5279 aliases
=> ['rarp host 1.2.3.4'],
5282 (001) jeq #0x8035 jt 2 jf 7
5284 (003) jeq #0x1020304 jt 6 jf 4
5286 (005) jeq #0x1020304 jt 6 jf 7
5290 }, # rarp_host_addr_ppp
5292 name
=> 'arp_host_addr_ppp_bsdos',
5294 aliases
=> ['arp host 1.2.3.4'],
5297 (001) jeq #0x806 jt 2 jf 7
5299 (003) jeq #0x1020304 jt 6 jf 4
5301 (005) jeq #0x1020304 jt 6 jf 7
5305 }, # arp_host_addr_ppp_bsdos
5307 name
=> 'rarp_host_addr_ppp_bsdos',
5309 aliases
=> ['rarp host 1.2.3.4'],
5312 (001) jeq #0x8035 jt 2 jf 7
5314 (003) jeq #0x1020304 jt 6 jf 4
5316 (005) jeq #0x1020304 jt 6 jf 7
5320 }, # rarp_host_addr_ppp_bsdos
5322 name
=> 'arp_host_addr_arcnet',
5324 aliases
=> ['arp host 1.2.3.4'],
5327 (001) jeq #0xd5 jt 3 jf 2
5328 (002) jeq #0xf1 jt 3 jf 8
5330 (004) jeq #0x1020304 jt 7 jf 5
5332 (006) jeq #0x1020304 jt 7 jf 8
5336 }, # arp_host_addr_arcnet
5338 name
=> 'rarp_host_addr_arcnet',
5340 aliases
=> ['rarp host 1.2.3.4'],
5343 (001) jeq #0xd6 jt 2 jf 7
5345 (003) jeq #0x1020304 jt 6 jf 4
5347 (005) jeq #0x1020304 jt 6 jf 7
5351 }, # rarp_host_addr_arcnet
5352 # At the time of this writing the DLTs below stand for the default case
5353 # in gen_linktype().
5355 name
=> 'arp_host_addr_linux_sll2',
5356 DLT
=> 'LINUX_SLL2',
5357 aliases
=> ['arp host 1.2.3.4'],
5360 (001) jeq #0x806 jt 2 jf 7
5362 (003) jeq #0x1020304 jt 6 jf 4
5364 (005) jeq #0x1020304 jt 6 jf 7
5368 }, # arp_host_addr_linux_sll2
5370 name
=> 'rarp_host_addr_linux_sll2',
5371 DLT
=> 'LINUX_SLL2',
5372 aliases
=> ['rarp host 1.2.3.4'],
5375 (001) jeq #0x8035 jt 2 jf 7
5377 (003) jeq #0x1020304 jt 6 jf 4
5379 (005) jeq #0x1020304 jt 6 jf 7
5383 }, # rarp_host_addr_linux_sll2
5385 name
=> 'arp_host_addr_symfw',
5386 DLT
=> 'SYMANTEC_FIREWALL',
5387 aliases
=> ['arp host 1.2.3.4'],
5390 (001) jeq #0x806 jt 2 jf 7
5392 (003) jeq #0x1020304 jt 6 jf 4
5394 (005) jeq #0x1020304 jt 6 jf 7
5398 }, # arp_host_addr_symfw
5400 name
=> 'rarp_host_addr_symfw',
5401 DLT
=> 'SYMANTEC_FIREWALL',
5402 aliases
=> ['rarp host 1.2.3.4'],
5405 (001) jeq #0x8035 jt 2 jf 7
5407 (003) jeq #0x1020304 jt 6 jf 4
5409 (005) jeq #0x1020304 jt 6 jf 7
5413 }, # rarp_host_addr_symfw
5415 name
=> 'arp_host_addr_ipoieee1394',
5416 DLT
=> 'APPLE_IP_OVER_IEEE1394',
5417 aliases
=> ['arp host 1.2.3.4'],
5420 (001) jeq #0x806 jt 2 jf 7
5422 (003) jeq #0x1020304 jt 6 jf 4
5424 (005) jeq #0x1020304 jt 6 jf 7
5428 }, # arp_host_addr_ipoieee1394
5430 name
=> 'rarp_host_addr_ipoieee1394',
5431 DLT
=> 'APPLE_IP_OVER_IEEE1394',
5432 aliases
=> ['rarp host 1.2.3.4'],
5435 (001) jeq #0x8035 jt 2 jf 7
5437 (003) jeq #0x1020304 jt 6 jf 4
5439 (005) jeq #0x1020304 jt 6 jf 7
5443 }, # rarp_host_addr_ipoieee1394
5446 name
=> 'arp_net_addr',
5450 'arp net 192.168.0.0/16',
5451 'arp src or dst net 192.168.0.0/16',
5452 'arp net 192.168/16',
5453 'arp src or dst net 192.168/16',
5454 'arp net 192.168.0.0 mask 255.255.0.0',
5455 'arp src or dst net 192.168.0.0 mask 255.255.0.0',
5456 'arp net 192.168.0.0 mask 255.255',
5457 'arp src or dst net 192.168.0.0 mask 255.255',
5458 'arp net 192.168 mask 255.255.0.0',
5459 'arp src or dst net 192.168 mask 255.255.0.0',
5460 'arp net 192.168 mask 255.255',
5461 'arp src or dst net 192.168 mask 255.255',
5463 'arp src or dst net 192.168',
5467 (001) jeq #0x806 jt 2 jf 9
5469 (003) and #0xffff0000
5470 (004) jeq #0xc0a80000 jt 8 jf 5
5472 (006) and #0xffff0000
5473 (007) jeq #0xc0a80000 jt 8 jf 9
5479 name
=> 'rarp_net_addr',
5480 DLT
=> 'LINUX_SLL2',
5483 'rarp net 192.168.0.0/16',
5484 'rarp src or dst net 192.168.0.0/16',
5485 'rarp net 192.168/16',
5486 'rarp src or dst net 192.168/16',
5487 'rarp net 192.168.0.0 mask 255.255.0.0',
5488 'rarp src or dst net 192.168.0.0 mask 255.255.0.0',
5489 'rarp net 192.168.0.0 mask 255.255',
5490 'rarp src or dst net 192.168.0.0 mask 255.255',
5491 'rarp net 192.168 mask 255.255.0.0',
5492 'rarp src or dst net 192.168 mask 255.255.0.0',
5493 'rarp net 192.168 mask 255.255',
5494 'rarp src or dst net 192.168 mask 255.255',
5496 'rarp src or dst net 192.168',
5500 (001) jeq #0x8035 jt 2 jf 9
5502 (003) and #0xffff0000
5503 (004) jeq #0xc0a80000 jt 8 jf 5
5505 (006) and #0xffff0000
5506 (007) jeq #0xc0a80000 jt 8 jf 9
5512 name
=> 'arp_net_name',
5513 skip
=> skip_no_networks
(),
5516 'arp net net-10-0-0-0.libpcap.test',
5517 'arp src or dst net net-10-0-0-0.libpcap.test',
5521 (001) jeq #0x806 jt 2 jf 7
5523 (003) jeq #0xa000000 jt 6 jf 4
5525 (005) jeq #0xa000000 jt 6 jf 7
5531 name
=> 'rarp_net_name',
5532 skip
=> skip_no_networks
(),
5533 DLT
=> 'IP_OVER_FC',
5535 'rarp net net-10-0-0-0.libpcap.test',
5536 'rarp src or dst net net-10-0-0-0.libpcap.test',
5540 (001) jeq #0x8035 jt 2 jf 7
5542 (003) jeq #0xa000000 jt 6 jf 4
5544 (005) jeq #0xa000000 jt 6 jf 7
5550 name
=> 'arp_net_NAME',
5551 skip
=> skip_no_networks_casecmp
(),
5554 'arp net NET-10-0-0-0.LIBPCAP.TEST',
5555 'arp src or dst net NET-10-0-0-0.LIBPCAP.TEST',
5560 (002) jeq #0x2 jt 3 jf 10
5562 (004) jeq #0x806 jt 5 jf 10
5564 (006) jeq #0xa000000 jt 9 jf 7
5566 (008) jeq #0xa000000 jt 9 jf 10
5572 name
=> 'rarp_net_NAME',
5573 skip
=> skip_no_networks_casecmp
(),
5576 'rarp net NET-10-0-0-0.LIBPCAP.TEST',
5577 'rarp src or dst net NET-10-0-0-0.LIBPCAP.TEST',
5581 (001) jeq #0xd6 jt 2 jf 7
5583 (003) jeq #0xa000000 jt 6 jf 4
5585 (005) jeq #0xa000000 jt 6 jf 7
5592 name
=> 'vlan_eth_nullary',
5594 aliases
=> ['vlan'],
5597 (001) jeq #0x8100 jt 4 jf 2
5598 (002) jeq #0x88a8 jt 4 jf 3
5599 (003) jeq #0x9100 jt 4 jf 5
5603 }, # vlan_eth_nullary
5605 name
=> 'vlan_eth_unary',
5607 aliases
=> ['vlan 4095'],
5610 (001) jeq #0x8100 jt 4 jf 2
5611 (002) jeq #0x88a8 jt 4 jf 3
5612 (003) jeq #0x9100 jt 4 jf 8
5615 (006) jeq #0xfff jt 7 jf 8
5621 name
=> 'vlan_and_vlan_eth',
5623 aliases
=> ['vlan and vlan'],
5626 (001) jeq #0x8100 jt 4 jf 2
5627 (002) jeq #0x88a8 jt 4 jf 3
5628 (003) jeq #0x9100 jt 4 jf 9
5630 (005) jeq #0x8100 jt 8 jf 6
5631 (006) jeq #0x88a8 jt 8 jf 7
5632 (007) jeq #0x9100 jt 8 jf 9
5636 }, # vlan_and_vlan_eth
5638 name
=> 'vlan_netanalyzer_nullary',
5639 DLT
=> 'NETANALYZER',
5640 aliases
=> ['vlan'],
5643 (001) jeq #0x8100 jt 4 jf 2
5644 (002) jeq #0x88a8 jt 4 jf 3
5645 (003) jeq #0x9100 jt 4 jf 5
5649 }, # vlan_netanalyzer_nullary
5651 name
=> 'vlan_netanalyzer_unary',
5652 DLT
=> 'NETANALYZER',
5653 aliases
=> ['vlan 10'],
5656 (001) jeq #0x8100 jt 4 jf 2
5657 (002) jeq #0x88a8 jt 4 jf 3
5658 (003) jeq #0x9100 jt 4 jf 8
5661 (006) jeq #0xa jt 7 jf 8
5665 }, # vlan_netanalyzer_unary
5667 name
=> 'vlan_eth_linuxext_nullary',
5668 skip
=> skip_os_not
('linux') || skip_config_have_decl
('SKF_AD_VLAN_TAG_PRESENT', 0),
5671 aliases
=> ['vlan'],
5674 (001) jeq #0x1 jt 6 jf 2
5676 (003) jeq #0x8100 jt 6 jf 4
5677 (004) jeq #0x88a8 jt 6 jf 5
5678 (005) jeq #0x9100 jt 6 jf 7
5682 }, # vlan_eth_linuxext_nullary
5684 name
=> 'vlan_eth_linuxext_unary',
5685 skip
=> skip_os_not
('linux') || skip_config_have_decl
('SKF_AD_VLAN_TAG_PRESENT', 0),
5688 aliases
=> ['vlan 10'],
5691 (001) jeq #0x1 jt 6 jf 2
5693 (003) jeq #0x8100 jt 6 jf 4
5694 (004) jeq #0x88a8 jt 6 jf 5
5695 (005) jeq #0x9100 jt 6 jf 14
5697 (007) jeq #0x1 jt 8 jf 10
5698 (008) ldh [vlan_tci]
5702 (012) jeq #0xa jt 13 jf 14
5706 }, # vlan_eth_linuxext_unary
5708 name
=> 'vlan_and_vlan_eth_linuxext',
5709 skip
=> skip_os_not
('linux') || skip_config_have_decl
('SKF_AD_VLAN_TAG_PRESENT', 0),
5712 aliases
=> ['vlan and vlan'],
5717 (003) jeq #0x1 jt 10 jf 4
5721 (007) jeq #0x8100 jt 10 jf 8
5722 (008) jeq #0x88a8 jt 10 jf 9
5723 (009) jeq #0x9100 jt 10 jf 16
5726 (012) jeq #0x8100 jt 15 jf 13
5727 (013) jeq #0x88a8 jt 15 jf 14
5728 (014) jeq #0x9100 jt 15 jf 16
5732 }, # vlan_and_vlan_eth_linuxext
5735 name
=> 'mpls_eth_nullary',
5737 aliases
=> ['mpls'],
5740 (001) jeq #0x8847 jt 2 jf 3
5744 }, # mpls_eth_nullary
5746 name
=> 'mpls_eth_unary',
5748 aliases
=> ['mpls 100'],
5751 (001) jeq #0x8847 jt 2 jf 6
5753 (003) and #0xfffff000
5754 (004) jeq #0x64000 jt 5 jf 6
5760 name
=> 'mpls_and_mpls_eth',
5762 aliases
=> ['mpls and mpls'],
5765 (001) jeq #0x8847 jt 2 jf 5
5767 (003) jset #0x1 jt 5 jf 4
5771 }, # mpls_and_mpls_eth
5773 name
=> 'mpls_ppp_unary',
5775 aliases
=> ['mpls 100'],
5778 (001) jeq #0x281 jt 2 jf 6
5780 (003) and #0xfffff000
5781 (004) jeq #0x64000 jt 5 jf 6
5787 name
=> 'pppoes_mpls_unary',
5789 aliases
=> ['pppoes and mpls 123'],
5792 (001) jeq #0x8864 jt 2 jf 8
5794 (003) jeq #0x281 jt 4 jf 8
5796 (005) and #0xfffff000
5797 (006) jeq #0x7b000 jt 7 jf 8
5801 }, # pppoes_mpls_unary
5804 name
=> 'vxlan_nullary',
5806 aliases
=> ['vxlan'],
5809 (001) jeq #0x800 jt 2 jf 13
5811 (003) jeq #0x11 jt 4 jf 21
5813 (005) jset #0x1fff jt 21 jf 6
5814 (006) ldxb 4*([14]&0xf)
5816 (008) jeq #0x12b5 jt 9 jf 21
5818 (010) jeq #0x8 jt 11 jf 21
5820 (012) jeq x jt 20 jf 21
5821 (013) jeq #0x86dd jt 14 jf 21
5823 (015) jeq #0x11 jt 16 jf 21
5825 (017) jeq #0x12b5 jt 18 jf 21
5827 (019) jeq #0x8 jt 20 jf 21
5833 name
=> 'vxlan_unary',
5835 aliases
=> ['vxlan 12345'],
5838 (001) jeq #0x800 jt 2 jf 16
5840 (003) jeq #0x11 jt 4 jf 27
5842 (005) jset #0x1fff jt 27 jf 6
5843 (006) ldxb 4*([14]&0xf)
5845 (008) jeq #0x12b5 jt 9 jf 27
5847 (010) jeq #0x8 jt 11 jf 27
5849 (012) and #0xffffff00
5850 (013) jeq #0x303900 jt 14 jf 27
5852 (015) jeq x jt 26 jf 27
5853 (016) jeq #0x86dd jt 17 jf 27
5855 (018) jeq #0x11 jt 19 jf 27
5857 (020) jeq #0x12b5 jt 21 jf 27
5859 (022) jeq #0x8 jt 23 jf 27
5861 (024) and #0xffffff00
5862 (025) jeq #0x303900 jt 26 jf 27
5868 name
=> 'vxlan_and_vxlan',
5870 aliases
=> ['vxlan and vxlan'],
5873 (001) jeq #0x800 jt 2 jf 13
5875 (003) jeq #0x11 jt 4 jf 75
5877 (005) jset #0x1fff jt 75 jf 6
5878 (006) ldxb 4*([14]&0xf)
5880 (008) jeq #0x12b5 jt 9 jf 75
5882 (010) jeq #0x8 jt 11 jf 75
5884 (012) jeq x jt 23 jf 75
5885 (013) jeq #0x86dd jt 14 jf 75
5887 (015) jeq #0x11 jt 16 jf 75
5889 (017) jeq #0x12b5 jt 18 jf 75
5891 (019) jeq #0x8 jt 20 jf 75
5894 (022) jeq #0x28 jt 23 jf 23
5903 (031) jeq #0x0 jt 32 jf 32
5906 (034) jeq #0x800 jt 35 jf 62
5909 (037) jeq #0x11 jt 38 jf 75
5911 (039) jset #0x1fff jt 75 jf 40
5918 (046) jeq #0x12b5 jt 47 jf 75
5926 (054) jeq #0x8 jt 55 jf 75
5933 (061) jeq x jt 74 jf 75
5934 (062) jeq #0x86dd jt 63 jf 75
5937 (065) jeq #0x11 jt 66 jf 75
5939 (067) jeq #0x12b5 jt 68 jf 75
5941 (069) jeq #0x8 jt 70 jf 75
5945 (073) jeq x jt 74 jf 75
5949 }, # vxlan_and_vxlan
5951 name
=> 'geneve_nullary',
5953 aliases
=> ['geneve'],
5956 (001) jeq #0x800 jt 2 jf 16
5958 (003) jeq #0x11 jt 4 jf 16
5960 (005) jset #0x1fff jt 16 jf 6
5961 (006) ldxb 4*([14]&0xf)
5963 (008) jeq #0x17c1 jt 9 jf 16
5964 (009) ldxb 4*([14]&0xf)
5967 (012) jeq #0x0 jt 13 jf 16
5968 (013) ldxb 4*([14]&0xf)
5970 (015) jeq x jt 28 jf 16
5972 (017) jeq #0x86dd jt 18 jf 50
5974 (019) jeq #0x11 jt 20 jf 50
5976 (021) jeq #0x17c1 jt 22 jf 50
5979 (024) jeq #0x0 jt 25 jf 50
5982 (027) jeq x jt 28 jf 50
5995 (040) jeq #0x6558 jt 41 jf 46
6003 (048) jeq #0x0 jt 49 jf 50
6009 name
=> 'geneve_unary',
6011 aliases
=> ['geneve 12345'],
6014 (001) jeq #0x800 jt 2 jf 20
6016 (003) jeq #0x11 jt 4 jf 20
6018 (005) jset #0x1fff jt 20 jf 6
6019 (006) ldxb 4*([14]&0xf)
6021 (008) jeq #0x17c1 jt 9 jf 20
6022 (009) ldxb 4*([14]&0xf)
6025 (012) jeq #0x0 jt 13 jf 20
6026 (013) ldxb 4*([14]&0xf)
6028 (015) and #0xffffff00
6029 (016) jeq #0x303900 jt 17 jf 20
6030 (017) ldxb 4*([14]&0xf)
6032 (019) jeq x jt 35 jf 20
6034 (021) jeq #0x86dd jt 22 jf 57
6036 (023) jeq #0x11 jt 24 jf 57
6038 (025) jeq #0x17c1 jt 26 jf 57
6041 (028) jeq #0x0 jt 29 jf 57
6043 (030) and #0xffffff00
6044 (031) jeq #0x303900 jt 32 jf 57
6047 (034) jeq x jt 35 jf 57
6060 (047) jeq #0x6558 jt 48 jf 53
6068 (055) jeq #0x0 jt 56 jf 57
6074 name
=> 'geneve_and_geneve',
6076 aliases
=> ['geneve and geneve'],
6079 (001) jeq #0x800 jt 2 jf 16
6081 (003) jeq #0x11 jt 4 jf 16
6083 (005) jset #0x1fff jt 16 jf 6
6084 (006) ldxb 4*([14]&0xf)
6086 (008) jeq #0x17c1 jt 9 jf 16
6087 (009) ldxb 4*([14]&0xf)
6090 (012) jeq #0x0 jt 13 jf 16
6091 (013) ldxb 4*([14]&0xf)
6093 (015) jeq x jt 28 jf 16
6095 (017) jeq #0x86dd jt 18 jf 123
6097 (019) jeq #0x11 jt 20 jf 123
6099 (021) jeq #0x17c1 jt 22 jf 123
6102 (024) jeq #0x0 jt 25 jf 123
6105 (027) jeq x jt 28 jf 123
6118 (040) jeq #0x6558 jt 41 jf 46
6126 (048) jeq #0x0 jt 49 jf 123
6129 (051) jeq #0x800 jt 52 jf 83
6132 (054) jeq #0x11 jt 55 jf 83
6135 (057) jset #0x1fff jt 83 jf 58
6143 (065) jeq #0x17c1 jt 66 jf 83
6152 (074) jeq #0x0 jt 75 jf 83
6160 (082) jeq x jt 101 jf 83
6163 (085) jeq #0x86dd jt 86 jf 123
6166 (088) jeq #0x11 jt 89 jf 123
6169 (091) jeq #0x17c1 jt 92 jf 123
6173 (095) jeq #0x0 jt 96 jf 123
6178 (100) jeq x jt 101 jf 123
6191 (113) jeq #0x6558 jt 114 jf 119
6199 (121) jeq #0x0 jt 122 jf 123
6203 }, # geneve_and_geneve
6206 name
=> 'wlan_host',
6207 DLT
=> 'IEEE802_11',
6209 'wlan host 12:34:56:78:9a:bc',
6210 'wlan src or dst host 12:34:56:78:9a:bc',
6211 'wlan src or dst 12:34:56:78:9a:bc',
6215 (001) jset #0x4 jt 33 jf 2
6216 (002) jset #0x8 jt 3 jf 24
6218 (004) jset #0x2 jt 5 jf 14
6219 (005) jset #0x1 jt 6 jf 10
6221 (007) jeq #0x56789abc jt 8 jf 20
6223 (009) jeq #0x1234 jt 32 jf 20
6225 (011) jeq #0x56789abc jt 12 jf 28
6227 (013) jeq #0x1234 jt 32 jf 28
6229 (015) jeq #0x56789abc jt 16 jf 18
6231 (017) jeq #0x1234 jt 32 jf 18
6233 (019) jset #0x1 jt 20 jf 28
6235 (021) jeq #0x56789abc jt 22 jf 33
6237 (023) jeq #0x1234 jt 32 jf 33
6239 (025) jeq #0x56789abc jt 26 jf 28
6241 (027) jeq #0x1234 jt 32 jf 28
6243 (029) jeq #0x56789abc jt 30 jf 33
6245 (031) jeq #0x1234 jt 32 jf 33
6251 name
=> 'wlan_src_host',
6252 DLT
=> 'IEEE802_11',
6254 'wlan src host 12:34:56:78:9a:bc',
6255 'wlan src 12:34:56:78:9a:bc',
6259 (001) jset #0x4 jt 19 jf 2
6260 (002) jset #0x8 jt 3 jf 14
6262 (004) jset #0x2 jt 5 jf 14
6263 (005) jset #0x1 jt 6 jf 10
6265 (007) jeq #0x56789abc jt 8 jf 19
6267 (009) jeq #0x1234 jt 18 jf 19
6269 (011) jeq #0x56789abc jt 12 jf 19
6271 (013) jeq #0x1234 jt 18 jf 19
6273 (015) jeq #0x56789abc jt 16 jf 19
6275 (017) jeq #0x1234 jt 18 jf 19
6281 name
=> 'wlan_dst_host',
6282 DLT
=> 'IEEE802_11',
6284 'wlan dst host 12:34:56:78:9a:bc',
6285 'wlan dst 12:34:56:78:9a:bc',
6289 (001) jset #0x4 jt 14 jf 2
6290 (002) jset #0x8 jt 3 jf 9
6292 (004) jset #0x1 jt 5 jf 9
6294 (006) jeq #0x56789abc jt 7 jf 14
6296 (008) jeq #0x1234 jt 13 jf 14
6298 (010) jeq #0x56789abc jt 11 jf 14
6300 (012) jeq #0x1234 jt 13 jf 14
6307 DLT
=> 'IEEE802_11',
6308 aliases
=> ['wlan ra 12:34:56:78:9a:bc'],
6311 (001) jset #0x8 jt 2 jf 7
6313 (003) jeq #0x56789abc jt 4 jf 7
6315 (005) jeq #0x1234 jt 6 jf 7
6322 DLT
=> 'IEEE802_11',
6323 aliases
=> ['wlan ta 12:34:56:78:9a:bc'],
6326 (001) jset #0x8 jt 2 jf 15
6328 (003) jeq #0x4 jt 4 jf 10
6331 (006) jeq #0xc0 jt 15 jf 7
6334 (009) jeq #0xd0 jt 15 jf 10
6336 (011) jeq #0x56789abc jt 12 jf 15
6338 (013) jeq #0x1234 jt 14 jf 15
6344 name
=> 'wlan_addr1',
6345 DLT
=> 'IEEE802_11',
6347 'wlan addr1 12:34:56:78:9a:bc',
6348 'wlan address1 12:34:56:78:9a:bc',
6352 (001) jeq #0x56789abc jt 2 jf 5
6354 (003) jeq #0x1234 jt 4 jf 5
6360 name
=> 'wlan_addr2',
6361 DLT
=> 'IEEE802_11',
6363 'wlan addr2 12:34:56:78:9a:bc',
6364 'wlan address2 12:34:56:78:9a:bc',
6369 (002) jeq #0x4 jt 3 jf 9
6372 (005) jeq #0xc0 jt 14 jf 6
6375 (008) jeq #0xd0 jt 14 jf 9
6377 (010) jeq #0x56789abc jt 11 jf 14
6379 (012) jeq #0x1234 jt 13 jf 14
6385 name
=> 'wlan_addr3',
6386 DLT
=> 'IEEE802_11',
6388 'wlan addr3 12:34:56:78:9a:bc',
6389 'wlan address3 12:34:56:78:9a:bc',
6394 (002) jeq #0x4 jt 8 jf 3
6396 (004) jeq #0x56789abc jt 5 jf 8
6398 (006) jeq #0x1234 jt 7 jf 8
6404 name
=> 'wlan_addr4',
6405 DLT
=> 'IEEE802_11',
6407 'wlan addr4 12:34:56:78:9a:bc',
6408 'wlan address4 12:34:56:78:9a:bc',
6413 (002) jeq #0x3 jt 3 jf 8
6415 (004) jeq #0x56789abc jt 5 jf 8
6417 (006) jeq #0x1234 jt 7 jf 8
6423 name
=> 'wlan_type_mgt',
6424 DLT
=> 'IEEE802_11',
6430 'wlan type management',
6435 (001) jset #0xc jt 2 jf 3
6441 name
=> 'wlan_subtype_assoc_req',
6442 DLT
=> 'IEEE802_11',
6444 'wlan subtype assoc-req',
6445 'subtype assoc-req',
6446 'wlan type mgt subtype assoc-req',
6447 'type mgt subtype assoc-req',
6448 'wlan type 0 subtype assoc-req',
6449 'type 0 subtype assoc-req',
6450 'wlan type mgt subtype 0x00',
6451 'type mgt subtype 0x00',
6452 'wlan type 0 subtype 0x00',
6453 'type 0 subtype 0x00',
6454 'wlan subtype assocreq',
6456 'wlan type mgt subtype assocreq',
6457 'type mgt subtype assocreq',
6458 'wlan type 0 subtype assocreq',
6459 'type 0 subtype assocreq',
6460 'wlan type management subtype assoc-req',
6461 'type management subtype assoc-req',
6462 'wlan type management subtype 0x00',
6463 'type management subtype 0x00',
6464 'wlan type management subtype assocreq',
6465 'type management subtype assocreq',
6469 (001) jset #0xfc jt 2 jf 3
6473 }, # wlan_type_mgt_subtype_assoc_req
6475 name
=> 'wlan_subtype_assoc_resp',
6476 DLT
=> 'IEEE802_11',
6478 'wlan subtype assoc-resp',
6479 'subtype assoc-resp',
6480 'wlan type mgt subtype assoc-resp',
6481 'type mgt subtype assoc-resp',
6482 'wlan type 0 subtype assoc-resp',
6483 'type 0 subtype assoc-resp',
6484 'wlan type mgt subtype 0x10',
6485 'type mgt subtype 0x10',
6486 'wlan type 0 subtype 0x10',
6487 'type 0 subtype 0x10',
6488 'wlan subtype assocresp',
6489 'subtype assocresp',
6490 'wlan type mgt subtype assocresp',
6491 'type mgt subtype assocresp',
6492 'wlan type 0 subtype assocresp',
6493 'type 0 subtype assocresp',
6494 'wlan type management subtype assoc-resp',
6495 'type management subtype assoc-resp',
6496 'wlan type management subtype 0x10',
6497 'type management subtype 0x10',
6498 'wlan type management subtype assocresp',
6499 'type management subtype assocresp',
6504 (002) jeq #0x10 jt 3 jf 4
6508 }, # wlan_subtype_assoc_resp
6510 name
=> 'wlan_subtype_reassoc_req',
6511 DLT
=> 'IEEE802_11',
6513 'wlan subtype reassoc-req',
6514 'subtype reassoc-req',
6515 'wlan type mgt subtype reassoc-req',
6516 'type mgt subtype reassoc-req',
6517 'wlan type 0 subtype reassoc-req',
6518 'type 0 subtype reassoc-req',
6519 'wlan type mgt subtype 0x20',
6520 'type mgt subtype 0x20',
6521 'wlan type 0 subtype 0x20',
6522 'type 0 subtype 0x20',
6523 'wlan subtype reassocreq',
6524 'subtype reassocreq',
6525 'wlan type mgt subtype reassocreq',
6526 'type mgt subtype reassocreq',
6527 'wlan type 0 subtype reassocreq',
6528 'type 0 subtype reassocreq',
6529 'wlan type management subtype reassoc-req',
6530 'type management subtype reassoc-req',
6531 'wlan type management subtype 0x20',
6532 'type management subtype 0x20',
6533 'wlan type management subtype reassocreq',
6534 'type management subtype reassocreq',
6539 (002) jeq #0x20 jt 3 jf 4
6543 }, # wlan_subtype_reassoc_req
6545 name
=> 'wlan_subtype_reassoc_resp',
6546 DLT
=> 'IEEE802_11',
6548 'wlan subtype reassoc-resp',
6549 'subtype reassoc-resp',
6550 'wlan type mgt subtype reassoc-resp',
6551 'type mgt subtype reassoc-resp',
6552 'wlan type 0 subtype reassoc-resp',
6553 'type 0 subtype reassoc-resp',
6554 'wlan type mgt subtype 0x30',
6555 'type mgt subtype 0x30',
6556 'wlan type 0 subtype 0x30',
6557 'type 0 subtype 0x30',
6558 'wlan subtype reassocresp',
6559 'subtype reassocresp',
6560 'wlan type mgt subtype reassocresp',
6561 'type mgt subtype reassocresp',
6562 'wlan type 0 subtype reassocresp',
6563 'type 0 subtype reassocresp',
6564 'wlan type management subtype reassoc-resp',
6565 'type management subtype reassoc-resp',
6566 'wlan type management subtype 0x30',
6567 'type management subtype 0x30',
6568 'wlan type management subtype reassocresp',
6569 'type management subtype reassocresp',
6574 (002) jeq #0x30 jt 3 jf 4
6578 }, # wlan_mgt_subtype_reassoc_resp
6580 name
=> 'wlan_subtype_probe_req',
6581 DLT
=> 'IEEE802_11',
6583 'wlan subtype probe-req',
6584 'subtype probe-req',
6585 'wlan type mgt subtype probe-req',
6586 'type mgt subtype probe-req',
6587 'wlan type 0 subtype probe-req',
6588 'type 0 subtype probe-req',
6589 'wlan type mgt subtype 0x40',
6590 'type mgt subtype 0x40',
6591 'wlan type 0 subtype 0x40',
6592 'type 0 subtype 0x40',
6593 'wlan subtype probereq',
6595 'wlan type mgt subtype probereq',
6596 'type mgt subtype probereq',
6597 'wlan type 0 subtype probereq',
6598 'type 0 subtype probereq',
6599 'wlan type management subtype probe-req',
6600 'type management subtype probe-req',
6601 'wlan type management subtype 0x40',
6602 'type management subtype 0x40',
6603 'wlan type management subtype probereq',
6604 'type management subtype probereq',
6609 (002) jeq #0x40 jt 3 jf 4
6613 }, # wlan_subtype_probe_req
6615 name
=> 'wlan_subtype_probe_resp',
6616 DLT
=> 'IEEE802_11',
6618 'wlan subtype probe-resp',
6619 'subtype probe-resp',
6620 'wlan type mgt subtype probe-resp',
6621 'type mgt subtype probe-resp',
6622 'wlan type 0 subtype probe-resp',
6623 'type 0 subtype probe-resp',
6624 'wlan type mgt subtype 0x50',
6625 'type mgt subtype 0x50',
6626 'wlan type 0 subtype 0x50',
6627 'type 0 subtype 0x50',
6628 'wlan subtype proberesp',
6629 'subtype proberesp',
6630 'wlan type mgt subtype proberesp',
6631 'type mgt subtype proberesp',
6632 'wlan type 0 subtype proberesp',
6633 'type 0 subtype proberesp',
6634 'wlan type management subtype probe-resp',
6635 'type management subtype probe-resp',
6636 'wlan type management subtype 0x50',
6637 'type management subtype 0x50',
6638 'wlan type management subtype proberesp',
6639 'type management subtype proberesp',
6644 (002) jeq #0x50 jt 3 jf 4
6648 }, # wlan_subtype_probe_resp
6650 name
=> 'wlan_subtype_beacon',
6651 DLT
=> 'IEEE802_11',
6653 'wlan subtype beacon',
6655 'wlan type mgt subtype beacon',
6656 'type mgt subtype beacon',
6657 'wlan type 0 subtype beacon',
6658 'type 0 subtype beacon',
6659 'wlan type mgt subtype 0x80',
6660 'type mgt subtype 0x80',
6661 'wlan type 0 subtype 0x80',
6662 'type 0 subtype 0x80',
6663 'wlan type management subtype beacon',
6664 'type management subtype beacon',
6665 'wlan type management subtype 0x80',
6666 'type management subtype 0x80',
6671 (002) jeq #0x80 jt 3 jf 4
6675 }, # wlan_subtype_beacon
6677 name
=> 'wlan_subtype_atim',
6678 DLT
=> 'IEEE802_11',
6680 'wlan subtype atim',
6682 'wlan type mgt subtype atim',
6683 'type mgt subtype atim',
6684 'wlan type 0 subtype atim',
6685 'type 0 subtype atim',
6686 'wlan type mgt subtype 0x90',
6687 'type mgt subtype 0x90',
6688 'wlan type 0 subtype 0x90',
6689 'type 0 subtype 0x90',
6690 'wlan type management subtype atim',
6691 'type management subtype atim',
6692 'wlan type management subtype 0x90',
6693 'type management subtype 0x90',
6698 (002) jeq #0x90 jt 3 jf 4
6702 }, # wlan_subtype_atim
6704 name
=> 'wlan_subtype_disassoc',
6705 DLT
=> 'IEEE802_11',
6707 'wlan subtype disassoc',
6709 'wlan type mgt subtype disassoc',
6710 'type mgt subtype disassoc',
6711 'wlan type 0 subtype disassoc',
6712 'type 0 subtype disassoc',
6713 'wlan type mgt subtype 0xa0',
6714 'type mgt subtype 0xa0',
6715 'wlan type 0 subtype 0xa0',
6716 'type 0 subtype 0xa0',
6717 'wlan subtype disassociation',
6718 'subtype disassociation',
6719 'wlan type mgt subtype disassociation',
6720 'type mgt subtype disassociation',
6721 'wlan type 0 subtype disassociation',
6722 'type 0 subtype disassociation',
6723 'wlan type management subtype disassoc',
6724 'type management subtype disassoc',
6725 'wlan type management subtype 0xa0',
6726 'type management subtype 0xa0',
6727 'wlan type management subtype disassociation',
6728 'type management subtype disassociation',
6733 (002) jeq #0xa0 jt 3 jf 4
6737 }, # wlan_subtype_disassoc
6739 name
=> 'wlan_subtype_auth',
6740 DLT
=> 'IEEE802_11',
6742 'wlan subtype auth',
6744 'wlan type mgt subtype auth',
6745 'type mgt subtype auth',
6746 'wlan type 0 subtype auth',
6747 'type 0 subtype auth',
6748 'wlan type mgt subtype 0xb0',
6749 'type mgt subtype 0xb0',
6750 'wlan type 0 subtype 0xb0',
6751 'type 0 subtype 0xb0',
6752 'wlan subtype authentication',
6753 'subtype authentication',
6754 'wlan type mgt subtype authentication',
6755 'type mgt subtype authentication',
6756 'wlan type 0 subtype authentication',
6757 'type 0 subtype authentication',
6758 'wlan type management subtype auth',
6759 'type management subtype auth',
6760 'wlan type management subtype 0xb0',
6761 'type management subtype 0xb0',
6762 'wlan type management subtype authentication',
6763 'type management subtype authentication',
6768 (002) jeq #0xb0 jt 3 jf 4
6772 }, # wlan_subtype_auth
6774 name
=> 'wlan_subtype_deauth',
6775 DLT
=> 'IEEE802_11',
6777 'wlan subtype deauth',
6779 'wlan type mgt subtype deauth',
6780 'type mgt subtype deauth',
6781 'wlan type 0 subtype deauth',
6782 'type 0 subtype deauth',
6783 'wlan type mgt subtype 0xc0',
6784 'type mgt subtype 0xc0',
6785 'wlan type 0 subtype 0xc0',
6786 'type 0 subtype 0xc0',
6787 'wlan subtype deauthentication',
6788 'subtype deauthentication',
6789 'wlan type mgt subtype deauthentication',
6790 'type mgt subtype deauthentication',
6791 'wlan type 0 subtype deauthentication',
6792 'type 0 subtype deauthentication',
6793 'wlan type management subtype deauth',
6794 'type management subtype deauth',
6795 'wlan type management subtype 0xc0',
6796 'type management subtype 0xc0',
6797 'wlan type management subtype deauthentication',
6798 'type management subtype deauthentication',
6803 (002) jeq #0xc0 jt 3 jf 4
6807 }, # wlan_subtype_deauth
6809 name
=> 'wlan_type_ctl',
6810 DLT
=> 'IEEE802_11',
6816 'wlan type control',
6822 (002) jeq #0x4 jt 3 jf 4
6828 name
=> 'wlan_subtype_bar',
6829 DLT
=> 'IEEE802_11',
6833 'wlan type ctl subtype bar',
6834 'type ctl subtype bar',
6835 'wlan type 4 subtype bar',
6836 'type 4 subtype bar',
6837 'wlan type ctl subtype 0x80',
6838 'type ctl subtype 0x80',
6839 'wlan type 4 subtype 0x80',
6840 'type 4 subtype 0x80',
6841 'wlan type control subtype bar',
6842 'type control subtype bar',
6843 'wlan type control subtype 0x80',
6844 'type control subtype 0x80',
6849 (002) jeq #0x84 jt 3 jf 4
6853 }, # wlan_subtype_bar
6855 name
=> 'wlan_subtype_ba',
6856 DLT
=> 'IEEE802_11',
6860 'wlan type ctl subtype ba',
6861 'type ctl subtype ba',
6862 'wlan type 4 subtype ba',
6863 'type 4 subtype ba',
6864 'wlan type ctl subtype 0x90',
6865 'type ctl subtype 0x90',
6866 'wlan type 4 subtype 0x90',
6867 'type 4 subtype 0x90',
6868 'wlan type control subtype ba',
6869 'type control subtype ba',
6870 'wlan type control subtype 0x90',
6871 'type control subtype 0x90',
6876 (002) jeq #0x94 jt 3 jf 4
6880 }, # wlan_subtype_ba
6882 name
=> 'wlan_subtype_ps_poll',
6883 DLT
=> 'IEEE802_11',
6885 'wlan subtype ps-poll',
6887 'wlan type ctl subtype ps-poll',
6888 'type ctl subtype ps-poll',
6889 'wlan type 4 subtype ps-poll',
6890 'type 4 subtype ps-poll',
6891 'wlan type ctl subtype 0xa0',
6892 'type ctl subtype 0xa0',
6893 'wlan type 4 subtype 0xa0',
6894 'type 4 subtype 0xa0',
6895 'wlan type control subtype ps-poll',
6896 'type control subtype ps-poll',
6897 'wlan type control subtype 0xa0',
6898 'type control subtype 0xa0',
6903 (002) jeq #0xa4 jt 3 jf 4
6907 }, # wlan_subtype_ps_poll
6909 name
=> 'wlan_subtype_rts',
6910 DLT
=> 'IEEE802_11',
6914 'wlan type ctl subtype rts',
6915 'type ctl subtype rts',
6916 'wlan type 4 subtype rts',
6917 'type 4 subtype rts',
6918 'wlan type ctl subtype 0xb0',
6919 'type ctl subtype 0xb0',
6920 'wlan type 4 subtype 0xb0',
6921 'type 4 subtype 0xb0',
6922 'wlan type control subtype rts',
6923 'type control subtype rts',
6924 'wlan type control subtype 0xb0',
6925 'type control subtype 0xb0',
6930 (002) jeq #0xb4 jt 3 jf 4
6934 }, # wlan_subtype_rts
6936 name
=> 'wlan_subtype_cts',
6937 DLT
=> 'IEEE802_11',
6941 'wlan type ctl subtype cts',
6942 'type ctl subtype cts',
6943 'wlan type 4 subtype cts',
6944 'type 4 subtype cts',
6945 'wlan type ctl subtype 0xc0',
6946 'type ctl subtype 0xc0',
6947 'wlan type 4 subtype 0xc0',
6948 'type 4 subtype 0xc0',
6949 'wlan type control subtype cts',
6950 'type control subtype cts',
6951 'wlan type control subtype 0xc0',
6952 'type control subtype 0xc0',
6957 (002) jeq #0xc4 jt 3 jf 4
6961 }, # wlan_subtype_cts
6963 name
=> 'wlan_subtype_ack',
6964 DLT
=> 'IEEE802_11',
6968 'wlan type ctl subtype ack',
6969 'type ctl subtype ack',
6970 'wlan type 4 subtype ack',
6971 'type 4 subtype ack',
6972 'wlan type ctl subtype 0xd0',
6973 'type ctl subtype 0xd0',
6974 'wlan type 4 subtype 0xd0',
6975 'type 4 subtype 0xd0',
6976 'wlan type control subtype ack',
6977 'type control subtype ack',
6978 'wlan type control subtype 0xd0',
6979 'type control subtype 0xd0',
6984 (002) jeq #0xd4 jt 3 jf 4
6988 }, # wlan_subtype_ack
6990 name
=> 'wlan_subtype_cf_end',
6991 DLT
=> 'IEEE802_11',
6993 'wlan subtype cf-end',
6995 'wlan type ctl subtype cf-end',
6996 'type ctl subtype cf-end',
6997 'wlan type 4 subtype cf-end',
6998 'type 4 subtype cf-end',
6999 'wlan type ctl subtype 0xe0',
7000 'type ctl subtype 0xe0',
7001 'wlan type 4 subtype 0xe0',
7002 'type 4 subtype 0xe0',
7003 'wlan type control subtype cf-end',
7004 'type control subtype cf-end',
7005 'wlan type control subtype 0xe0',
7006 'type control subtype 0xe0',
7011 (002) jeq #0xe4 jt 3 jf 4
7015 }, # wlan_subtype_cf_end
7017 name
=> 'wlan_subtype_cf_end_ack',
7018 DLT
=> 'IEEE802_11',
7020 'wlan subtype cf-end-ack',
7021 'subtype cf-end-ack',
7022 'wlan type ctl subtype cf-end-ack',
7023 'type ctl subtype cf-end-ack',
7024 'wlan type 4 subtype cf-end-ack',
7025 'type 4 subtype cf-end-ack',
7026 'wlan type ctl subtype 0xf0',
7027 'type ctl subtype 0xf0',
7028 'wlan type 4 subtype 0xf0',
7029 'type 4 subtype 0xf0',
7030 'wlan type control subtype cf-end-ack',
7031 'type control subtype cf-end-ack',
7032 'wlan type control subtype 0xf0',
7033 'type control subtype 0xf0',
7038 (002) jeq #0xf4 jt 3 jf 4
7042 }, # wlan_subtype_cf_end_ack
7044 name
=> 'wlan_type_data',
7045 DLT
=> 'IEEE802_11',
7055 (002) jeq #0x8 jt 3 jf 4
7061 name
=> 'wlan_subtype_data',
7062 DLT
=> 'IEEE802_11',
7064 'wlan subtype data',
7066 'wlan type data subtype data',
7067 'type data subtype data',
7068 'wlan type 8 subtype data',
7069 'type 8 subtype data',
7070 'wlan type data subtype 0x00',
7071 'type data subtype 0x00',
7072 'wlan type 8 subtype 0x00',
7073 'type 8 subtype 0x00',
7078 (002) jeq #0x8 jt 3 jf 4
7082 }, # wlan_subtype_data
7084 name
=> 'wlan_subtype_data_cf_ack',
7085 DLT
=> 'IEEE802_11',
7087 'wlan subtype data-cf-ack',
7088 'subtype data-cf-ack',
7089 'wlan type data subtype data-cf-ack',
7090 'type data subtype data-cf-ack',
7091 'wlan type 8 subtype data-cf-ack',
7092 'type 8 subtype data-cf-ack',
7093 'wlan type data subtype 0x10',
7094 'type data subtype 0x10',
7095 'wlan type 8 subtype 0x10',
7096 'type 8 subtype 0x10',
7101 (002) jeq #0x18 jt 3 jf 4
7105 }, # wlan_subtype_data_cf_ack
7107 name
=> 'wlan_subtype_data_cf_poll',
7108 DLT
=> 'IEEE802_11',
7110 'wlan subtype data-cf-poll',
7111 'subtype data-cf-poll',
7112 'wlan type data subtype data-cf-poll',
7113 'type data subtype data-cf-poll',
7114 'wlan type 8 subtype data-cf-poll',
7115 'type 8 subtype data-cf-poll',
7116 'wlan type data subtype 0x20',
7117 'type data subtype 0x20',
7118 'wlan type 8 subtype 0x20',
7119 'type 8 subtype 0x20',
7124 (002) jeq #0x28 jt 3 jf 4
7128 }, # wlan_subtype_data_cf_poll
7130 name
=> 'wlan_subtype_data_cf_ack_poll',
7131 DLT
=> 'IEEE802_11',
7133 'wlan subtype data-cf-ack-poll',
7134 'subtype data-cf-ack-poll',
7135 'wlan type data subtype data-cf-ack-poll',
7136 'type data subtype data-cf-ack-poll',
7137 'wlan type 8 subtype data-cf-ack-poll',
7138 'type 8 subtype data-cf-ack-poll',
7139 'wlan type data subtype 0x30',
7140 'type data subtype 0x30',
7141 'wlan type 8 subtype 0x30',
7142 'type 8 subtype 0x30',
7147 (002) jeq #0x38 jt 3 jf 4
7151 }, # wlan_subtype_data_cf_ack_poll
7153 name
=> 'wlan_subtype_null',
7154 DLT
=> 'IEEE802_11',
7156 'wlan subtype null',
7158 'wlan type data subtype null',
7159 'type data subtype null',
7160 'wlan type 8 subtype null',
7161 'type 8 subtype null',
7162 'wlan type data subtype 0x40',
7163 'type data subtype 0x40',
7164 'wlan type 8 subtype 0x40',
7165 'type 8 subtype 0x40',
7170 (002) jeq #0x48 jt 3 jf 4
7174 }, # wlan_subtype_null
7176 name
=> 'wlan_subtype_cf_ack',
7177 DLT
=> 'IEEE802_11',
7179 'wlan subtype cf-ack',
7181 'wlan type data subtype cf-ack',
7182 'type data subtype cf-ack',
7183 'wlan type 8 subtype cf-ack',
7184 'type 8 subtype cf-ack',
7185 'wlan type data subtype 0x50',
7186 'type data subtype 0x50',
7187 'wlan type 8 subtype 0x50',
7188 'type 8 subtype 0x50',
7193 (002) jeq #0x58 jt 3 jf 4
7197 }, # wlan_subtype_cf_ack
7199 name
=> 'wlan_subtype_cf_poll',
7200 DLT
=> 'IEEE802_11',
7202 'wlan subtype cf-poll',
7204 'wlan type data subtype cf-poll',
7205 'type data subtype cf-poll',
7206 'wlan type 8 subtype cf-poll',
7207 'type 8 subtype cf-poll',
7208 'wlan type data subtype 0x60',
7209 'type data subtype 0x60',
7210 'wlan type 8 subtype 0x60',
7211 'type 8 subtype 0x60',
7216 (002) jeq #0x68 jt 3 jf 4
7220 }, # wlan_subtype_cf_poll
7222 name
=> 'wlan_subtype_cf_ack_poll',
7223 DLT
=> 'IEEE802_11',
7225 'wlan subtype cf-ack-poll',
7226 'subtype cf-ack-poll',
7227 'wlan type data subtype cf-ack-poll',
7228 'type data subtype cf-ack-poll',
7229 'wlan type 8 subtype cf-ack-poll',
7230 'type 8 subtype cf-ack-poll',
7231 'wlan type data subtype 0x70',
7232 'type data subtype 0x70',
7233 'wlan type 8 subtype 0x70',
7234 'type 8 subtype 0x70',
7239 (002) jeq #0x78 jt 3 jf 4
7243 }, # wlan_subtype_cf_ack_poll
7245 name
=> 'wlan_subtype_qos_data',
7246 DLT
=> 'IEEE802_11',
7248 'wlan subtype qos-data',
7250 'wlan type data subtype qos-data',
7251 'type data subtype qos-data',
7252 'wlan type 8 subtype qos-data',
7253 'type 8 subtype qos-data',
7254 'wlan type data subtype 0x80',
7255 'type data subtype 0x80',
7256 'wlan type 8 subtype 0x80',
7257 'type 8 subtype 0x80',
7262 (002) jeq #0x88 jt 3 jf 4
7266 }, # wlan_subtype_qos_data
7268 name
=> 'wlan_subtype_qos_data_cf_ack',
7269 DLT
=> 'IEEE802_11',
7271 'wlan subtype qos-data-cf-ack',
7272 'subtype qos-data-cf-ack',
7273 'wlan type data subtype qos-data-cf-ack',
7274 'type data subtype qos-data-cf-ack',
7275 'wlan type 8 subtype qos-data-cf-ack',
7276 'type 8 subtype qos-data-cf-ack',
7277 'wlan type data subtype 0x90',
7278 'type data subtype 0x90',
7279 'wlan type 8 subtype 0x90',
7280 'type 8 subtype 0x90',
7285 (002) jeq #0x98 jt 3 jf 4
7289 }, # wlan_subtype_qos_data_cf_ack
7291 name
=> 'wlan_subtype_qos_data_cf_poll',
7292 DLT
=> 'IEEE802_11',
7294 'wlan subtype qos-data-cf-poll',
7295 'subtype qos-data-cf-poll',
7296 'wlan type data subtype qos-data-cf-poll',
7297 'type data subtype qos-data-cf-poll',
7298 'wlan type 8 subtype qos-data-cf-poll',
7299 'type 8 subtype qos-data-cf-poll',
7300 'wlan type data subtype 0xa0',
7301 'type data subtype 0xa0',
7302 'wlan type 8 subtype 0xa0',
7303 'type 8 subtype 0xa0',
7308 (002) jeq #0xa8 jt 3 jf 4
7312 }, # wlan_subtype_qos_data_cf_poll
7314 name
=> 'wlan_subtype_qos_data_cf_ack_poll',
7315 DLT
=> 'IEEE802_11',
7317 'wlan subtype qos-data-cf-ack-poll',
7318 'subtype qos-data-cf-ack-poll',
7319 'wlan type data subtype qos-data-cf-ack-poll',
7320 'type data subtype qos-data-cf-ack-poll',
7321 'wlan type 8 subtype qos-data-cf-ack-poll',
7322 'type 8 subtype qos-data-cf-ack-poll',
7323 'wlan type data subtype 0xb0',
7324 'type data subtype 0xb0',
7325 'wlan type 8 subtype 0xb0',
7326 'type 8 subtype 0xb0',
7331 (002) jeq #0xb8 jt 3 jf 4
7335 }, # wlan_subtype_qos_data_cf_ack_poll
7337 name
=> 'wlan_subtype_qos',
7338 DLT
=> 'IEEE802_11',
7342 'wlan type data subtype qos',
7343 'type data subtype qos',
7344 'wlan type 8 subtype qos',
7345 'type 8 subtype qos',
7346 'wlan type data subtype 0xc0',
7347 'type data subtype 0xc0',
7348 'wlan type 8 subtype 0xc0',
7349 'type 8 subtype 0xc0',
7354 (002) jeq #0xc8 jt 3 jf 4
7358 }, # wlan_subtype_qos
7360 name
=> 'wlan_subtype_qos_cf_poll',
7361 DLT
=> 'IEEE802_11',
7363 'wlan subtype qos-cf-poll',
7364 'subtype qos-cf-poll',
7365 'wlan type data subtype qos-cf-poll',
7366 'type data subtype qos-cf-poll',
7367 'wlan type 8 subtype qos-cf-poll',
7368 'type 8 subtype qos-cf-poll',
7369 'wlan type data subtype 0xe0',
7370 'type data subtype 0xe0',
7371 'wlan type 8 subtype 0xe0',
7372 'type 8 subtype 0xe0',
7377 (002) jeq #0xe8 jt 3 jf 4
7381 }, # wlan_subtype_qos_cf_poll
7383 name
=> 'wlan_subtype_qos_cf_ack_poll',
7384 DLT
=> 'IEEE802_11',
7386 'wlan subtype qos-cf-ack-poll',
7387 'subtype qos-cf-ack-poll',
7388 'wlan type data subtype qos-cf-ack-poll',
7389 'type data subtype qos-cf-ack-poll',
7390 'wlan type 8 subtype qos-cf-ack-poll',
7391 'type 8 subtype qos-cf-ack-poll',
7392 'wlan type data subtype 0xf0',
7393 'type data subtype 0xf0',
7394 'wlan type 8 subtype 0xf0',
7395 'type 8 subtype 0xf0',
7400 (002) jeq #0xf8 jt 3 jf 4
7404 }, # wlan_subtype_qos_cf_ack_poll
7406 name
=> 'wlan_type_reserved',
7407 DLT
=> 'IEEE802_11',
7408 # Reserved frame type, no name.
7416 (002) jeq #0xc jt 3 jf 4
7420 }, # wlan_type_reserved
7422 name
=> 'wlan_dir_nods',
7423 DLT
=> 'IEEE802_11',
7429 'wlan direction nods',
7436 (001) jset #0x3 jt 2 jf 3
7442 name
=> 'wlan_dir_tods',
7443 DLT
=> 'IEEE802_11',
7449 'wlan direction tods',
7457 (002) jeq #0x1 jt 3 jf 4
7463 name
=> 'wlan_dir_fromds',
7464 DLT
=> 'IEEE802_11',
7470 'wlan direction fromds',
7478 (002) jeq #0x2 jt 3 jf 4
7482 }, # wlan_dir_fromds
7484 name
=> 'wlan_dir_dstods',
7485 DLT
=> 'IEEE802_11',
7491 'wlan direction dstods',
7499 (002) jeq #0x3 jt 3 jf 4
7503 }, # wlan_dir_dstods
7504 # For the other DLTs that "wlan dir" supports as well test only one
7505 # alias and only one direction -- the only difference is the
7506 # DLT-specific preamble, and the many equivalent ways to spell what
7507 # follows have already been tested above.
7509 name
=> 'wlan_dir_fromds_IEEE802_11_RADIO',
7510 DLT
=> 'IEEE802_11_RADIO',
7511 aliases
=> ['wlan dir fromds'],
7521 (008) jeq #0x2 jt 9 jf 10
7525 }, # wlan_dir_fromds_IEEE802_11_RADIO
7527 name
=> 'wlan_dir_fromds_IEEE802_11_RADIO_AVS',
7528 DLT
=> 'IEEE802_11_RADIO_AVS',
7529 aliases
=> ['wlan dir fromds'],
7535 (004) jeq #0x2 jt 5 jf 6
7539 }, # wlan_dir_fromds_IEEE802_11_RADIO_AVS
7541 name
=> 'wlan_dir_fromds_PRISM_HEADER',
7542 DLT
=> 'PRISM_HEADER',
7543 aliases
=> ['wlan dir fromds'],
7546 (001) and #0xfffff000
7547 (002) jeq #0x80211000 jt 3 jf 5
7556 (011) jeq #0x2 jt 12 jf 13
7560 }, # wlan_dir_fromds_PRISM_HEADER
7562 name
=> 'wlan_dir_fromds_PPI',
7564 aliases
=> ['wlan dir fromds'],
7567 (001) jeq #0x69000000 jt 2 jf 12
7576 (010) jeq #0x2 jt 11 jf 12
7580 }, # wlan_dir_fromds_PPI
7586 aliases
=> ['pppoed'],
7589 (001) jeq #0x8863 jt 2 jf 3
7595 name
=> 'pppoes_nullary',
7598 aliases
=> ['pppoes'],
7601 (001) jeq #0x8864 jt 2 jf 3
7607 name
=> 'pppoes_unary',
7610 aliases
=> ['pppoes 1234'],
7613 (001) jeq #0x8864 jt 2 jf 5
7615 (003) jeq #0x4d2 jt 4 jf 5
7622 name
=> 'llc_nullary',
7628 (001) jgt #0x5dc jt 4 jf 2
7630 (003) jeq #0xffff jt 4 jf 5
7639 aliases
=> ['llc i'],
7642 (001) jgt #0x5dc jt 6 jf 2
7644 (003) jeq #0xffff jt 6 jf 4
7646 (005) jset #0x1 jt 6 jf 7
7655 aliases
=> ['llc s'],
7658 (001) jgt #0x5dc jt 8 jf 2
7660 (003) jeq #0xffff jt 8 jf 4
7663 (006) jeq #0x1 jt 7 jf 8
7672 aliases
=> ['llc u'],
7675 (001) jgt #0x5dc jt 8 jf 2
7677 (003) jeq #0xffff jt 8 jf 4
7680 (006) jeq #0x3 jt 7 jf 8
7689 aliases
=> ['llc rr'],
7692 (001) jgt #0x5dc jt 8 jf 2
7694 (003) jeq #0xffff jt 8 jf 4
7697 (006) jeq #0x1 jt 7 jf 8
7706 aliases
=> ['llc rnr'],
7709 (001) jgt #0x5dc jt 8 jf 2
7711 (003) jeq #0xffff jt 8 jf 4
7714 (006) jeq #0x5 jt 7 jf 8
7723 aliases
=> ['llc rej'],
7726 (001) jgt #0x5dc jt 8 jf 2
7728 (003) jeq #0xffff jt 8 jf 4
7731 (006) jeq #0x9 jt 7 jf 8
7740 aliases
=> ['llc ui'],
7743 (001) jgt #0x5dc jt 8 jf 2
7745 (003) jeq #0xffff jt 8 jf 4
7748 (006) jeq #0x3 jt 7 jf 8
7757 aliases
=> ['llc ua'],
7760 (001) jgt #0x5dc jt 8 jf 2
7762 (003) jeq #0xffff jt 8 jf 4
7765 (006) jeq #0x63 jt 7 jf 8
7774 aliases
=> ['llc disc'],
7777 (001) jgt #0x5dc jt 8 jf 2
7779 (003) jeq #0xffff jt 8 jf 4
7782 (006) jeq #0x43 jt 7 jf 8
7791 aliases
=> ['llc dm'],
7794 (001) jgt #0x5dc jt 8 jf 2
7796 (003) jeq #0xffff jt 8 jf 4
7799 (006) jeq #0xf jt 7 jf 8
7805 name
=> 'llc_sabme',
7808 aliases
=> ['llc sabme'],
7811 (001) jgt #0x5dc jt 8 jf 2
7813 (003) jeq #0xffff jt 8 jf 4
7816 (006) jeq #0x6f jt 7 jf 8
7825 aliases
=> ['llc test'],
7828 (001) jgt #0x5dc jt 8 jf 2
7830 (003) jeq #0xffff jt 8 jf 4
7833 (006) jeq #0xe3 jt 7 jf 8
7842 aliases
=> ['llc xid'],
7845 (001) jgt #0x5dc jt 8 jf 2
7847 (003) jeq #0xffff jt 8 jf 4
7850 (006) jeq #0xaf jt 7 jf 8
7859 aliases
=> ['llc frmr'],
7862 (001) jgt #0x5dc jt 8 jf 2
7864 (003) jeq #0xffff jt 8 jf 4
7867 (006) jeq #0x87 jt 7 jf 8
7873 name
=> 'llc_SUNATM',
7879 (002) jeq #0x2 jt 3 jf 4
7885 name
=> 'llc_IEEE802',
7901 name
=> 'llc_ATM_RFC1483',
7902 DLT
=> 'ATM_RFC1483',
7907 }, # llc_ATM_RFC1483
7909 name
=> 'llc_IEEE802_11',
7910 DLT
=> 'IEEE802_11',
7918 (002) jeq #0x8 jt 3 jf 4
7924 name
=> 'llc_IEEE802_11_RADIO',
7925 DLT
=> 'IEEE802_11_RADIO',
7939 (008) jeq #0x8 jt 9 jf 10
7943 }, # llc_IEEE802_11_RADIO
7945 name
=> 'llc_IEEE802_11_RADIO_AVS',
7946 DLT
=> 'IEEE802_11_RADIO_AVS',
7956 (004) jeq #0x8 jt 5 jf 6
7960 }, # llc_IEEE802_11_RADIO_AVS
7962 name
=> 'llc_PRISM_HEADER',
7963 DLT
=> 'PRISM_HEADER',
7970 (001) and #0xfffff000
7971 (002) jeq #0x80211000 jt 3 jf 5
7980 (011) jeq #0x8 jt 12 jf 13
7984 }, # llc_PRISM_HEADER
7994 (001) jeq #0x69000000 jt 2 jf 12
8003 (010) jeq #0x8 jt 11 jf 12
8010 name
=> 'decnet_host',
8012 aliases
=> ['decnet host 50.764'],
8015 (001) jeq #0x6003 jt 2 jf 39
8018 (004) jeq #0x2 jt 5 jf 7
8020 (006) jeq #0xfcca jt 38 jf 7
8023 (009) jeq #0x8102 jt 10 jf 12
8025 (011) jeq #0xfcca jt 38 jf 12
8028 (014) jeq #0x6 jt 15 jf 17
8030 (016) jeq #0xfcca jt 38 jf 17
8033 (019) jeq #0x8106 jt 20 jf 22
8035 (021) jeq #0xfcca jt 38 jf 22
8037 (023) and #0x7ffff00
8038 (024) jeq #0x2fcca00 jt 38 jf 25
8040 (026) and #0xff07ffff
8041 (027) jeq #0x8102fcca jt 38 jf 28
8044 (030) jeq #0x6 jt 31 jf 33
8046 (032) jeq #0xfcca jt 38 jf 33
8049 (035) jeq #0x8106 jt 36 jf 39
8051 (037) jeq #0xfcca jt 38 jf 39
8057 (001) jeq #0x6003 jt 2 jf 39
8060 (004) jeq #0x2 jt 5 jf 7
8062 (006) jeq #0xfcca jt 38 jf 7
8065 (009) jeq #0x8102 jt 10 jf 12
8067 (011) jeq #0xfcca jt 38 jf 12
8070 (014) jeq #0x6 jt 15 jf 17
8072 (016) jeq #0xfcca jt 38 jf 17
8075 (019) jeq #0x8106 jt 20 jf 22
8077 (021) jeq #0xfcca jt 38 jf 22
8079 (023) and #0x7ffff00
8080 (024) jeq #0x2fcca00 jt 38 jf 25
8082 (026) and #0xff07ffff
8083 (027) jeq #0x8102fcca jt 38 jf 28
8086 (030) jeq #0x6 jt 31 jf 33
8088 (032) jeq #0xfcca jt 38 jf 33
8091 (035) jeq #0x8106 jt 36 jf 39
8093 (037) jeq #0xfcca jt 38 jf 39
8099 name
=> 'decnet_src_host',
8102 'decnet src host 50.764',
8103 'decnet src 50.764',
8107 (001) jeq #0x6003 jt 2 jf 23
8110 (004) jeq #0x2 jt 5 jf 7
8112 (006) jeq #0xfcca jt 22 jf 7
8115 (009) jeq #0x8102 jt 10 jf 12
8117 (011) jeq #0xfcca jt 22 jf 12
8120 (014) jeq #0x6 jt 15 jf 17
8122 (016) jeq #0xfcca jt 22 jf 17
8125 (019) jeq #0x8106 jt 20 jf 23
8127 (021) jeq #0xfcca jt 22 jf 23
8131 }, # decnet_src_host
8133 name
=> 'decnet_dst_host',
8136 'decnet dst host 50.764',
8137 'decnet dst 50.764',
8141 (001) jeq #0x6003 jt 2 jf 19
8143 (003) and #0x7ffff00
8144 (004) jeq #0x2fcca00 jt 18 jf 5
8146 (006) and #0xff07ffff
8147 (007) jeq #0x8102fcca jt 18 jf 8
8150 (010) jeq #0x6 jt 11 jf 13
8152 (012) jeq #0xfcca jt 18 jf 13
8155 (015) jeq #0x8106 jt 16 jf 19
8157 (017) jeq #0xfcca jt 18 jf 19
8161 }, # decnet_dst_host
8164 name
=> 'iso_proto_clnp',
8173 (001) jgt #0x5dc jt 7 jf 2
8175 (003) jeq #0xfefe jt 4 jf 7
8177 (005) jeq #0x81 jt 6 jf 7
8183 name
=> 'iso_proto_esis',
8193 (001) jgt #0x5dc jt 7 jf 2
8195 (003) jeq #0xfefe jt 4 jf 7
8197 (005) jeq #0x82 jt 6 jf 7
8203 name
=> 'iso_proto_isis',
8213 (001) jgt #0x5dc jt 7 jf 2
8215 (003) jeq #0xfefe jt 4 jf 7
8217 (005) jeq #0x83 jt 6 jf 7
8222 # Test the DLT dimension of "iso proto" for one alias only.
8224 name
=> 'iso_proto_clnp_FRELAY',
8226 aliases
=> ['iso proto \clnp'],
8229 (001) jeq #0x381 jt 2 jf 3
8235 name
=> 'iso_proto_clnp_C_HDLC',
8237 aliases
=> ['iso proto \clnp'],
8240 (001) jeq #0xfefe jt 2 jf 5
8242 (003) jeq #0x81 jt 4 jf 5
8252 'isis proto 0x1a or 0x18 or 0x12 or 0x0f or 0x11',
8256 (001) jgt #0x5dc jt 22 jf 2
8258 (003) jeq #0xfefe jt 4 jf 22
8260 (005) jeq #0x83 jt 6 jf 22
8263 (008) jeq #0x1a jt 21 jf 9
8266 (011) jeq #0x18 jt 21 jf 12
8269 (014) jeq #0x12 jt 21 jf 15
8272 (017) jeq #0xf jt 21 jf 18
8275 (020) jeq #0x11 jt 21 jf 22
8285 'isis proto 0x1b or 0x19 or 0x14 or 0x10 or 0x11',
8289 (001) jgt #0x5dc jt 22 jf 2
8291 (003) jeq #0xfefe jt 4 jf 22
8293 (005) jeq #0x83 jt 6 jf 22
8296 (008) jeq #0x1b jt 21 jf 9
8299 (011) jeq #0x19 jt 21 jf 12
8302 (014) jeq #0x14 jt 21 jf 15
8305 (017) jeq #0x10 jt 21 jf 18
8308 (020) jeq #0x11 jt 21 jf 22
8318 'isis proto 0x11 or 0x0f or 0x10',
8322 (001) jgt #0x5dc jt 16 jf 2
8324 (003) jeq #0xfefe jt 4 jf 16
8326 (005) jeq #0x83 jt 6 jf 16
8329 (008) jeq #0x11 jt 15 jf 9
8332 (011) jeq #0xf jt 15 jf 12
8335 (014) jeq #0x10 jt 15 jf 16
8345 'isis proto 0x12 or 0x14',
8349 (001) jgt #0x5dc jt 13 jf 2
8351 (003) jeq #0xfefe jt 4 jf 13
8353 (005) jeq #0x83 jt 6 jf 13
8356 (008) jeq #0x12 jt 12 jf 9
8359 (011) jeq #0x14 jt 12 jf 13
8365 name
=> 'isis_lsp_C_HDLC',
8370 (001) jeq #0xfefe jt 2 jf 11
8372 (003) jeq #0x83 jt 4 jf 11
8375 (006) jeq #0x12 jt 10 jf 7
8378 (009) jeq #0x14 jt 10 jf 11
8382 }, # isis_lsp_C_HDLC
8388 'isis proto 0x1b or 0x1a or 0x18 or 0x19',
8392 (001) jgt #0x5dc jt 19 jf 2
8394 (003) jeq #0xfefe jt 4 jf 19
8396 (005) jeq #0x83 jt 6 jf 19
8399 (008) jeq #0x1b jt 18 jf 9
8402 (011) jeq #0x1a jt 18 jf 12
8405 (014) jeq #0x18 jt 18 jf 15
8408 (017) jeq #0x19 jt 18 jf 19
8414 name
=> 'isis_csnp',
8418 'isis proto 0x18 or 0x19',
8422 (001) jgt #0x5dc jt 13 jf 2
8424 (003) jeq #0xfefe jt 4 jf 13
8426 (005) jeq #0x83 jt 6 jf 13
8429 (008) jeq #0x18 jt 12 jf 9
8432 (011) jeq #0x19 jt 12 jf 13
8438 name
=> 'isis_psnp',
8442 'isis proto 0x1a or 0x1b',
8446 (001) jgt #0x5dc jt 13 jf 2
8448 (003) jeq #0xfefe jt 4 jf 13
8450 (005) jeq #0x83 jt 6 jf 13
8453 (008) jeq #0x1a jt 12 jf 9
8456 (011) jeq #0x1b jt 12 jf 13
8463 name
=> 'ip_multicast',
8466 aliases
=> ['ip multicast'],
8470 (002) jge #0xe0 jt 3 jf 4
8476 name
=> 'ip_broadcast_30',
8478 netmask
=> '255.255.255.252',
8479 aliases
=> ['ip broadcast'],
8482 (001) jeq #0x0 jt 2 jf 9
8485 (004) jeq #0x0 jt 8 jf 5
8488 (007) jeq #0x3 jt 8 jf 9
8492 }, # ip_broadcast_30
8494 name
=> 'ip_broadcast_24',
8496 netmask
=> '255.255.255.0',
8497 aliases
=> ['ip broadcast'],
8501 (002) jset #0xff jt 3 jf 6
8503 (004) jeq #0xff jt 6 jf 5
8507 }, # ip_broadcast_24
8509 name
=> 'ip_broadcast_0',
8510 # tcpdump does this by default (matches 0.0.0.0 and 255.255.255.255).
8512 netmask
=> '0.0.0.0',
8513 aliases
=> ['ip broadcast'],
8517 (002) jeq #0x40 jt 3 jf 7
8519 (004) jeq #0x0 jt 6 jf 5
8520 (005) jeq #0xffffffff jt 6 jf 7
8529 # In this expression the protocol name is subject to external resolution
8530 # (typically via /etc/protocols), so pick something that is most likely
8531 # to resolve on all supported OSes.
8538 (001) jeq #0x800 jt 2 jf 5
8540 (003) jeq #0x6 jt 4 jf 5
8546 name
=> 'ip6_proto',
8549 'ip6 proto \tcp', # Same as above.
8554 (001) jeq #0x86dd jt 2 jf 8
8556 (003) jeq #0x6 jt 7 jf 4
8557 (004) jeq #0x2c jt 5 jf 8
8559 (006) jeq #0x6 jt 7 jf 8
8568 'proto \tcp', # Same as above.
8573 (001) jeq #0x800 jt 2 jf 4
8575 (003) jeq #0x6 jt 10 jf 11
8576 (004) jeq #0x86dd jt 5 jf 11
8578 (006) jeq #0x6 jt 10 jf 7
8579 (007) jeq #0x2c jt 8 jf 11
8581 (009) jeq #0x6 jt 10 jf 11
8587 name
=> 'ip_protochain',
8588 skip
=> skip_config_def1
('NO_PROTOCHAIN'),
8591 'ip protochain \udp',
8597 (002) jeq #0x40 jt 3 jf 23
8599 (004) ldxb 4*([0]&0xf)
8600 (005) jeq #0x11 jt 20 jf 6
8601 (006) jeq #0x3b jt 20 jf 7
8603 (008) jeq #0x33 jt 9 jf 20
8616 (021) jeq #0x11 jt 22 jf 23
8622 name
=> 'ip6_protochain',
8623 skip
=> skip_config_def1
('NO_PROTOCHAIN'),
8626 'ip6 protochain \udp',
8627 'ip6 protochain 17',
8632 (002) jeq #0x60 jt 3 jf 35
8635 (005) jeq #0x11 jt 32 jf 6
8636 (006) jeq #0x3b jt 32 jf 7
8637 (007) jeq #0x0 jt 11 jf 8
8638 (008) jeq #0x3c jt 11 jf 9
8639 (009) jeq #0x2b jt 11 jf 10
8640 (010) jeq #0x2c jt 11 jf 20
8650 (020) jeq #0x33 jt 21 jf 32
8663 (033) jeq #0x11 jt 34 jf 35
8669 name
=> 'protochain',
8670 skip
=> skip_config_def1
('NO_PROTOCHAIN'),
8679 (002) jeq #0x40 jt 3 jf 22
8681 (004) ldxb 4*([0]&0xf)
8682 (005) jeq #0x11 jt 20 jf 6
8683 (006) jeq #0x3b jt 20 jf 7
8685 (008) jeq #0x33 jt 9 jf 20
8698 (021) jeq #0x11 jt 56 jf 22
8701 (024) jeq #0x60 jt 25 jf 57
8704 (027) jeq #0x11 jt 54 jf 28
8705 (028) jeq #0x3b jt 54 jf 29
8706 (029) jeq #0x0 jt 33 jf 30
8707 (030) jeq #0x3c jt 33 jf 31
8708 (031) jeq #0x2b jt 33 jf 32
8709 (032) jeq #0x2c jt 33 jf 42
8719 (042) jeq #0x33 jt 43 jf 54
8732 (055) jeq #0x11 jt 56 jf 57
8738 name
=> 'ip_host_addr',
8739 # For this and some other single-stack qualifiers below use DLT_RAW to
8740 # verify that the bytecode does not try to match the other protocol too.
8744 'ip host 192.168.170.211',
8745 'ip src or dst 192.168.170.211',
8746 'ip src or dst host 192.168.170.211',
8747 'host 192.168.170.211',
8748 'src or dst 192.168.170.211',
8749 'src or dst host 192.168.170.211',
8750 'ip host 0xc0a8aad3',
8751 'ip src or dst 0xc0a8aad3',
8752 'ip src or dst host 0xc0a8aad3',
8754 'src or dst 0xc0a8aad3',
8755 'src or dst host 0xc0a8aad3',
8756 'ip host 3232279251',
8757 'ip src or dst 3232279251',
8758 'ip src or dst host 3232279251',
8760 'src or dst 3232279251',
8761 'src or dst host 3232279251',
8762 # No aliases for 030052125323, which matches a MAC address.
8763 # "net" without an explicit netmask defaults to /32.
8764 'ip net 192.168.170.211/32',
8765 'ip src or dst net 192.168.170.211/ 32',
8766 'net 192.168.170.211 /32',
8767 'src or dst net 192.168.170.211 / 32',
8768 'ip net 192.168.170.211',
8769 'ip src or dst net 192.168.170.211',
8770 'net 192.168.170.211',
8771 'src or dst net 192.168.170.211',
8772 'ip net 0xc0a8aad3',
8773 'ip src or dst net 0xc0a8aad3',
8775 'src or dst net 0xc0a8aad3',
8776 'ip net 3232279251',
8777 'ip src or dst net 3232279251',
8779 'src or dst net 3232279251',
8784 (002) jeq #0x40 jt 3 jf 8
8786 (004) jeq #0xc0a8aad3 jt 7 jf 5
8788 (006) jeq #0xc0a8aad3 jt 7 jf 8
8793 # The DLT supports both IPv4 and IPv6, the expressions use:
8794 # * IPv4-only syntax and an IPv4-only hostname
8795 # * IPv4-only syntax and an IPv4+IPv6 hostname
8796 # * IPv4+IPv6 syntax and an IPv4-only hostname
8797 # In each case the filter program should be the same and IPv4-only. Other
8798 # similar tests use a similar approach.
8800 name
=> 'ip_host_name',
8801 skip
=> skip_no_hosts
(),
8805 'ip host noeth-ipv4-noipv6.host123.libpcap.test',
8806 'ip host noeth-ipv4-ipv6.host123.libpcap.test',
8807 'ip src or dst noeth-ipv4-noipv6.host123.libpcap.test',
8808 'ip src or dst noeth-ipv4-ipv6.host123.libpcap.test',
8809 'ip src or dst host noeth-ipv4-noipv6.host123.libpcap.test',
8810 'ip src or dst host noeth-ipv4-ipv6.host123.libpcap.test',
8811 'host noeth-ipv4-noipv6.host123.libpcap.test',
8812 'src or dst noeth-ipv4-noipv6.host123.libpcap.test',
8813 'src or dst host noeth-ipv4-noipv6.host123.libpcap.test',
8818 (002) jeq #0x40 jt 3 jf 8
8820 (004) jeq #0xa141e28 jt 7 jf 5
8822 (006) jeq #0xa141e28 jt 7 jf 8
8828 name
=> 'ip_host_NAME',
8829 skip
=> skip_no_hosts_casecmp
(),
8833 'ip host NOETH-IPV4-NOIPV6.HOST123.LIBPCAP.TEST',
8834 'ip host NOETH-IPV4-IPV6.HOST123.LIBPCAP.TEST',
8835 'ip src or dst NOETH-IPV4-NOIPV6.HOST123.LIBPCAP.TEST',
8836 'ip src or dst NOETH-IPV4-IPV6.HOST123.LIBPCAP.TEST',
8837 'ip src or dst host NOETH-IPV4-NOIPV6.HOST123.LIBPCAP.TEST',
8838 'ip src or dst host NOETH-IPV4-IPV6.HOST123.LIBPCAP.TEST',
8839 'host NOETH-IPV4-NOIPV6.HOST123.LIBPCAP.TEST',
8840 'src or dst NOETH-IPV4-NOIPV6.HOST123.LIBPCAP.TEST',
8841 'src or dst host NOETH-IPV4-NOIPV6.HOST123.LIBPCAP.TEST',
8846 (002) jeq #0x40 jt 3 jf 8
8848 (004) jeq #0xa141e28 jt 7 jf 5
8850 (006) jeq #0xa141e28 jt 7 jf 8
8856 name
=> 'ip_src_host_addr',
8860 'ip src host 10.0.0.2',
8862 'src host 10.0.0.2',
8864 'ip src host 0x0a000002',
8865 'ip src 0x0A000002',
8866 'src host 0X0a000002',
8868 'ip src host 0xa000002',
8870 'src host 0Xa000002',
8872 'ip src host 167772162',
8874 'src host 167772162',
8876 'ip src host 01200000002',
8877 'ip src 01200000002',
8878 'src host 01200000002',
8881 'ip src net 10.0.0.2/ 32',
8882 'src net 10.0.0.2 /32',
8883 'ip src net 10.0.0.2',
8885 'ip src net 0x0a000002',
8886 'src net 0X0a000002',
8887 'ip src net 0xa000002',
8888 'src net 0Xa000002',
8889 'ip src net 167772162',
8890 'src net 167772162',
8891 'ip src net 01200000002',
8892 'src net 01200000002',
8897 (002) jeq #0x40 jt 3 jf 6
8899 (004) jeq #0xa000002 jt 5 jf 6
8903 }, # ip_src_host_addr
8905 name
=> 'ip_src_host_name',
8906 skip
=> skip_no_hosts
(),
8910 'ip src host noeth-ipv4-noipv6.host123.libpcap.test',
8911 'ip src host noeth-ipv4-ipv6.host123.libpcap.test',
8912 'ip src noeth-ipv4-noipv6.host123.libpcap.test',
8913 'ip src noeth-ipv4-ipv6.host123.libpcap.test',
8914 'src host noeth-ipv4-noipv6.host123.libpcap.test',
8915 'src noeth-ipv4-noipv6.host123.libpcap.test',
8920 (002) jeq #0x40 jt 3 jf 6
8922 (004) jeq #0xa141e28 jt 5 jf 6
8926 }, # ip_src_host_name
8928 name
=> 'ip_src_host_NAME',
8929 skip
=> skip_no_hosts_casecmp
(),
8933 'ip src host NOETH-IPV4-NOIPV6.HOST123.LIBPCAP.TEST',
8934 'ip src host NOETH-IPV4-IPV6.HOST123.LIBPCAP.TEST',
8935 'ip src NOETH-IPV4-NOIPV6.HOST123.LIBPCAP.TEST',
8936 'ip src NOETH-IPV4-IPV6.HOST123.LIBPCAP.TEST',
8937 'src host NOETH-IPV4-NOIPV6.HOST123.LIBPCAP.TEST',
8938 'src NOETH-IPV4-NOIPV6.HOST123.LIBPCAP.TEST',
8943 (002) jeq #0x40 jt 3 jf 6
8945 (004) jeq #0xa141e28 jt 5 jf 6
8949 }, # ip_src_host_NAME
8951 name
=> 'ip_dst_host_addr',
8955 'ip dst host 172.17.89.30',
8956 'ip dst 172.17.89.30',
8957 'dst host 172.17.89.30',
8959 'ip dst host 0xac11591e',
8960 'ip dst 0xAC11591E',
8961 'dst host 0Xac11591e',
8963 'ip dst host 2886818078',
8964 'ip dst 2886818078',
8965 'dst host 2886818078',
8967 # No aliases for 025404254436, which matches a MAC address.
8969 'ip dst net 172.17.89.30 / 32',
8970 'dst net 172.17.89.30 / 32',
8971 'ip dst net 172.17.89.30',
8972 'dst net 172.17.89.30',
8973 'ip dst net 0xac11591e',
8974 'dst net 0Xac11591e',
8975 'ip dst net 2886818078',
8976 'dst net 2886818078',
8981 (002) jeq #0x40 jt 3 jf 6
8983 (004) jeq #0xac11591e jt 5 jf 6
8987 }, # ip_dst_host_addr
8989 name
=> 'ip_dst_host_name',
8990 skip
=> skip_no_hosts
(),
8994 'ip dst host noeth-ipv4-noipv6.host123.libpcap.test',
8995 'ip dst host noeth-ipv4-ipv6.host123.libpcap.test',
8996 'ip dst noeth-ipv4-noipv6.host123.libpcap.test',
8997 'ip dst noeth-ipv4-ipv6.host123.libpcap.test',
8998 'dst host noeth-ipv4-noipv6.host123.libpcap.test',
8999 'dst noeth-ipv4-noipv6.host123.libpcap.test',
9004 (002) jeq #0x40 jt 3 jf 6
9006 (004) jeq #0xa141e28 jt 5 jf 6
9010 }, # ip_dst_host_name
9012 name
=> 'ip_dst_host_NAME',
9013 skip
=> skip_no_hosts_casecmp
(),
9017 'ip dst host NOETH-IPV4-NOIPV6.HOST123.LIBPCAP.TEST',
9018 'ip dst host NOETH-IPV4-IPV6.HOST123.LIBPCAP.TEST',
9019 'ip dst NOETH-IPV4-NOIPV6.HOST123.LIBPCAP.TEST',
9020 'ip dst NOETH-IPV4-IPV6.HOST123.LIBPCAP.TEST',
9021 'dst host NOETH-IPV4-NOIPV6.HOST123.LIBPCAP.TEST',
9022 'dst NOETH-IPV4-NOIPV6.HOST123.LIBPCAP.TEST',
9027 (002) jeq #0x40 jt 3 jf 6
9029 (004) jeq #0xa141e28 jt 5 jf 6
9033 }, # ip_dst_host_NAME
9035 name
=> 'ip_net_addr',
9039 'ip net 192.168.0.0/16',
9040 'ip src or dst net 192.168.0.0/16',
9041 'net 192.168.0.0/16',
9042 'src or dst net 192.168.0.0/16',
9043 'ip net 192.168/16',
9044 'ip src or dst net 192.168/16',
9046 'src or dst net 192.168/16',
9047 'ip net 192.168.0.0 mask 255.255.0.0',
9048 'ip src or dst net 192.168.0.0 mask 255.255.0.0',
9049 'net 192.168.0.0 mask 255.255.0.0',
9050 'src or dst net 192.168.0.0 mask 255.255.0.0',
9051 'ip net 192.168.0.0 mask 255.255',
9052 'ip src or dst net 192.168.0.0 mask 255.255',
9053 'net 192.168.0.0 mask 255.255',
9054 'src or dst net 192.168.0.0 mask 255.255',
9055 'ip net 192.168 mask 255.255.0.0',
9056 'ip src or dst net 192.168 mask 255.255.0.0',
9057 'net 192.168 mask 255.255.0.0',
9058 'src or dst net 192.168 mask 255.255.0.0',
9059 'ip net 192.168 mask 255.255',
9060 'ip src or dst net 192.168 mask 255.255',
9061 'net 192.168 mask 255.255',
9062 'src or dst net 192.168 mask 255.255',
9064 'ip src or dst net 192.168',
9066 'src or dst net 192.168',
9068 # Only the optimized bytecode is equivalent!
9069 # (This is because "net 192.168/16" means "ip net 192.168/16 or
9070 # arp net 192.168/16 or rarp net 192.168/16" and on DLT_RAW each
9071 # of latter two parts generates an explicit false condition,
9072 # which eventually optimizes out.)
9076 (002) jeq #0x40 jt 3 jf 10
9078 (004) and #0xffff0000
9079 (005) jeq #0xc0a80000 jt 9 jf 6
9081 (007) and #0xffff0000
9082 (008) jeq #0xc0a80000 jt 9 jf 10
9088 name
=> 'ip_net_name',
9089 skip
=> skip_no_networks
(),
9092 'ip net net-10-0-0-0.libpcap.test',
9093 'ip src or dst net net-10-0-0-0.libpcap.test',
9098 (002) jeq #0x40 jt 3 jf 8
9100 (004) jeq #0xa000000 jt 7 jf 5
9102 (006) jeq #0xa000000 jt 7 jf 8
9108 name
=> 'ip_net_NAME',
9109 skip
=> skip_no_networks_casecmp
(),
9112 'ip net NET-10-0-0-0.LIBPCAP.TEST',
9113 'ip src or dst net NET-10-0-0-0.LIBPCAP.TEST',
9118 (002) jeq #0x40 jt 3 jf 8
9120 (004) jeq #0xa000000 jt 7 jf 5
9122 (006) jeq #0xa000000 jt 7 jf 8
9128 name
=> 'ip_src_net_addr',
9132 'ip src net 10.0.1.0/24',
9133 'src net 10.0.1.0/24',
9134 'ip src net 10.0.1/24',
9135 'src net 10.0.1/24',
9136 'ip src net 10.0.1.0 mask 255.255.255.0',
9137 'src net 10.0.1.0 mask 255.255.255.0',
9138 'ip src net 10.0.1.0 mask 255.255.255',
9139 'src net 10.0.1.0 mask 255.255.255',
9140 'ip src net 10.0.1 mask 255.255.255.0',
9141 'src net 10.0.1 mask 255.255.255.0',
9142 'ip src net 10.0.1 mask 255.255.255',
9143 'src net 10.0.1 mask 255.255.255',
9144 'ip src net 10.0.1',
9147 # Only the optimized bytecode is equivalent!
9151 (002) jeq #0x40 jt 3 jf 7
9153 (004) and #0xffffff00
9154 (005) jeq #0xa000100 jt 6 jf 7
9158 }, # ip_src_net_addr
9160 name
=> 'ip_src_net_name',
9161 skip
=> skip_no_networks
(),
9164 'ip src net net-10-20-0-0.libpcap.test',
9165 'src net net-10-20-0-0.libpcap.test',
9170 (002) jeq #0x40 jt 3 jf 6
9172 (004) jeq #0xa140000 jt 5 jf 6
9176 }, # ip_src_net_name
9178 name
=> 'ip_src_net_NAME',
9179 skip
=> skip_no_networks_casecmp
(),
9182 'ip src net NET-10-20-0-0.LIBPCAP.TEST',
9183 'src net NET-10-20-0-0.LIBPCAP.TEST',
9188 (002) jeq #0x40 jt 3 jf 6
9190 (004) jeq #0xa140000 jt 5 jf 6
9194 }, # ip_src_net_NAME
9196 name
=> 'ip_dst_net_addr_0',
9199 aliases
=> ['ip dst net 0.0.0.0/0'],
9203 (002) jeq #0x40 jt 3 jf 4
9207 }, # ip_dst_net_addr_0
9209 name
=> 'ip_dst_net_addr_8',
9213 'ip dst net 10.0.0.0/8',
9214 'dst net 10.0.0.0/8',
9215 'ip dst net 10.0.0.0 mask 255.0.0.0',
9216 'dst net 10.0.0.0 mask 255.0.0.0',
9217 # "net 10/<any masklength>", "net 10 mask <any mask>" and
9218 # "net <any net> mask 255" are invalid syntax.
9222 # Only the optimized bytecode is equivalent!
9226 (002) jeq #0x40 jt 3 jf 7
9228 (004) and #0xff000000
9229 (005) jeq #0xa000000 jt 6 jf 7
9233 }, # ip_dst_net_addr_8
9235 name
=> 'ip_dst_net_name',
9236 skip
=> skip_no_networks
(),
9239 'ip dst net net-10-20-30-0.libpcap.test',
9240 'dst net net-10-20-30-0.libpcap.test',
9245 (002) jeq #0x40 jt 3 jf 6
9247 (004) jeq #0xa141e00 jt 5 jf 6
9251 }, # ip_dst_net_name
9253 name
=> 'ip_dst_net_NAME',
9254 skip
=> skip_no_networks_casecmp
(),
9257 'ip dst net NET-10-20-30-0.LIBPCAP.TEST',
9258 'dst net NET-10-20-30-0.LIBPCAP.TEST',
9263 (002) jeq #0x40 jt 3 jf 6
9265 (004) jeq #0xa141e00 jt 5 jf 6
9269 }, # ip_dst_net_NAME
9270 # TODO: Verify identity with DLT_NETANALYZER and
9271 # DLT_NETANALYZER_TRANSPARENT in all DLT_EN10MB gateway tests.
9273 name
=> 'gateway_name_en10mb',
9274 skip
=> skip_config_def1
('INET6') ||
9279 'gateway eth-ipv4-noipv6.host123.libpcap.test',
9280 # In the current implementation of this keyword the presence of an IPv6
9281 # address in the Internet address space should make no difference in
9282 # the resulting filter program.
9283 'gateway eth-ipv4-ipv6.host123.libpcap.test',
9287 (001) jeq #0x400140e jt 2 jf 4
9289 (003) jeq #0xaa00 jt 8 jf 4
9291 (005) jeq #0x400140e jt 6 jf 21
9293 (007) jeq #0xaa00 jt 8 jf 21
9295 (009) jeq #0x800 jt 10 jf 14
9297 (011) jeq #0xa141e28 jt 21 jf 12
9299 (013) jeq #0xa141e28 jt 21 jf 20
9300 (014) jeq #0x806 jt 16 jf 15
9301 (015) jeq #0x8035 jt 16 jf 20
9303 (017) jeq #0xa141e28 jt 21 jf 18
9305 (019) jeq #0xa141e28 jt 21 jf 20
9309 }, # gateway_name_en10mb
9311 name
=> 'gateway_NAME_en10mb',
9312 skip
=> skip_config_def1
('INET6') ||
9313 skip_no_ethers_casecmp
() ||
9314 skip_no_hosts_casecmp
(),
9317 'gateway ETH-IPV4-NOIPV6.HOST123.LIBPCAP.TEST',
9318 'gateway ETH-IPV4-IPV6.HOST123.LIBPCAP.TEST',
9322 (001) jeq #0x400140e jt 2 jf 4
9324 (003) jeq #0xaa00 jt 8 jf 4
9326 (005) jeq #0x400140e jt 6 jf 21
9328 (007) jeq #0xaa00 jt 8 jf 21
9330 (009) jeq #0x800 jt 10 jf 14
9332 (011) jeq #0xa141e28 jt 21 jf 12
9334 (013) jeq #0xa141e28 jt 21 jf 20
9335 (014) jeq #0x806 jt 16 jf 15
9336 (015) jeq #0x8035 jt 16 jf 20
9338 (017) jeq #0xa141e28 jt 21 jf 18
9340 (019) jeq #0xa141e28 jt 21 jf 20
9344 }, # gateway_NAME_en10mb
9346 name
=> 'ip_gateway_name_en10mb',
9347 skip
=> skip_config_def1
('INET6') ||
9352 'ip gateway eth-ipv4-noipv6.host123.libpcap.test',
9353 'ip gateway eth-ipv4-ipv6.host123.libpcap.test',
9357 (001) jeq #0x400140e jt 2 jf 4
9359 (003) jeq #0xaa00 jt 8 jf 4
9361 (005) jeq #0x400140e jt 6 jf 15
9363 (007) jeq #0xaa00 jt 8 jf 15
9365 (009) jeq #0x800 jt 10 jf 14
9367 (011) jeq #0xa141e28 jt 15 jf 12
9369 (013) jeq #0xa141e28 jt 15 jf 14
9373 }, # ip_gateway_name_en10mb
9375 name
=> 'ip_gateway_NAME_en10mb',
9376 skip
=> skip_config_def1
('INET6') ||
9377 skip_no_ethers_casecmp
() ||
9378 skip_no_hosts_casecmp
(),
9381 'ip gateway ETH-IPV4-NOIPV6.HOST123.LIBPCAP.TEST',
9382 'ip gateway ETH-IPV4-IPV6.HOST123.LIBPCAP.TEST',
9386 (001) jeq #0x400140e jt 2 jf 4
9388 (003) jeq #0xaa00 jt 8 jf 4
9390 (005) jeq #0x400140e jt 6 jf 15
9392 (007) jeq #0xaa00 jt 8 jf 15
9394 (009) jeq #0x800 jt 10 jf 14
9396 (011) jeq #0xa141e28 jt 15 jf 12
9398 (013) jeq #0xa141e28 jt 15 jf 14
9402 }, # ip_gateway_NAME_en10mb
9404 name
=> 'arp_gateway_name_en10mb',
9405 skip
=> skip_config_def1
('INET6') ||
9410 'arp gateway eth-ipv4-noipv6.host123.libpcap.test',
9411 'arp gateway eth-ipv4-ipv6.host123.libpcap.test',
9415 (001) jeq #0x400140e jt 2 jf 4
9417 (003) jeq #0xaa00 jt 8 jf 4
9419 (005) jeq #0x400140e jt 6 jf 15
9421 (007) jeq #0xaa00 jt 8 jf 15
9423 (009) jeq #0x806 jt 10 jf 14
9425 (011) jeq #0xa141e28 jt 15 jf 12
9427 (013) jeq #0xa141e28 jt 15 jf 14
9431 }, # arp_gateway_name_en10mb
9433 name
=> 'arp_gateway_NAME_en10mb',
9434 skip
=> skip_config_def1
('INET6') ||
9435 skip_no_ethers_casecmp
() ||
9436 skip_no_hosts_casecmp
(),
9439 'arp gateway ETH-IPV4-NOIPV6.HOST123.LIBPCAP.TEST',
9440 'arp gateway ETH-IPV4-IPV6.HOST123.LIBPCAP.TEST',
9444 (001) jeq #0x400140e jt 2 jf 4
9446 (003) jeq #0xaa00 jt 8 jf 4
9448 (005) jeq #0x400140e jt 6 jf 15
9450 (007) jeq #0xaa00 jt 8 jf 15
9452 (009) jeq #0x806 jt 10 jf 14
9454 (011) jeq #0xa141e28 jt 15 jf 12
9456 (013) jeq #0xa141e28 jt 15 jf 14
9460 }, # arp_gateway_NAME_en10mb
9462 name
=> 'rarp_gateway_name_en10mb',
9463 skip
=> skip_config_def1
('INET6') ||
9468 'rarp gateway eth-ipv4-noipv6.host123.libpcap.test',
9469 'rarp gateway eth-ipv4-ipv6.host123.libpcap.test',
9473 (001) jeq #0x400140e jt 2 jf 4
9475 (003) jeq #0xaa00 jt 8 jf 4
9477 (005) jeq #0x400140e jt 6 jf 15
9479 (007) jeq #0xaa00 jt 8 jf 15
9481 (009) jeq #0x8035 jt 10 jf 14
9483 (011) jeq #0xa141e28 jt 15 jf 12
9485 (013) jeq #0xa141e28 jt 15 jf 14
9489 }, # rarp_gateway_name_en10mb
9491 name
=> 'rarp_gateway_NAME_en10mb',
9492 skip
=> skip_config_def1
('INET6') ||
9493 skip_no_ethers_casecmp
() ||
9494 skip_no_hosts_casecmp
(),
9497 'rarp gateway ETH-IPV4-NOIPV6.HOST123.LIBPCAP.TEST',
9498 'rarp gateway ETH-IPV4-IPV6.HOST123.LIBPCAP.TEST',
9502 (001) jeq #0x400140e jt 2 jf 4
9504 (003) jeq #0xaa00 jt 8 jf 4
9506 (005) jeq #0x400140e jt 6 jf 15
9508 (007) jeq #0xaa00 jt 8 jf 15
9510 (009) jeq #0x8035 jt 10 jf 14
9512 (011) jeq #0xa141e28 jt 15 jf 12
9514 (013) jeq #0xa141e28 jt 15 jf 14
9518 }, # rarp_gateway_NAME_en10mb
9520 name
=> 'gateway_name_fddi',
9521 skip
=> skip_config_def1
('INET6') ||
9526 'gateway eth-ipv4-noipv6.host123.libpcap.test',
9527 'gateway eth-ipv4-ipv6.host123.libpcap.test',
9531 (001) jeq #0x400140e jt 2 jf 4
9533 (003) jeq #0xaa00 jt 8 jf 4
9535 (005) jeq #0x400140e jt 6 jf 21
9537 (007) jeq #0xaa00 jt 8 jf 21
9539 (009) jeq #0x800 jt 10 jf 14
9541 (011) jeq #0xa141e28 jt 21 jf 12
9543 (013) jeq #0xa141e28 jt 21 jf 20
9544 (014) jeq #0x806 jt 16 jf 15
9545 (015) jeq #0x8035 jt 16 jf 20
9547 (017) jeq #0xa141e28 jt 21 jf 18
9549 (019) jeq #0xa141e28 jt 21 jf 20
9553 }, # gateway_name_fddi
9555 name
=> 'gateway_NAME_fddi',
9556 skip
=> skip_config_def1
('INET6') ||
9557 skip_no_ethers_casecmp
() ||
9558 skip_no_hosts_casecmp
(),
9561 'gateway ETH-IPV4-NOIPV6.HOST123.LIBPCAP.TEST',
9562 'gateway ETH-IPV4-IPV6.HOST123.LIBPCAP.TEST',
9566 (001) jeq #0x400140e jt 2 jf 4
9568 (003) jeq #0xaa00 jt 8 jf 4
9570 (005) jeq #0x400140e jt 6 jf 21
9572 (007) jeq #0xaa00 jt 8 jf 21
9574 (009) jeq #0x800 jt 10 jf 14
9576 (011) jeq #0xa141e28 jt 21 jf 12
9578 (013) jeq #0xa141e28 jt 21 jf 20
9579 (014) jeq #0x806 jt 16 jf 15
9580 (015) jeq #0x8035 jt 16 jf 20
9582 (017) jeq #0xa141e28 jt 21 jf 18
9584 (019) jeq #0xa141e28 jt 21 jf 20
9588 }, # gateway_NAME_fddi
9590 name
=> 'ip_gateway_name_fddi',
9591 skip
=> skip_config_def1
('INET6') ||
9596 'ip gateway eth-ipv4-noipv6.host123.libpcap.test',
9597 'ip gateway eth-ipv4-ipv6.host123.libpcap.test',
9601 (001) jeq #0x400140e jt 2 jf 4
9603 (003) jeq #0xaa00 jt 8 jf 4
9605 (005) jeq #0x400140e jt 6 jf 15
9607 (007) jeq #0xaa00 jt 8 jf 15
9609 (009) jeq #0x800 jt 10 jf 14
9611 (011) jeq #0xa141e28 jt 15 jf 12
9613 (013) jeq #0xa141e28 jt 15 jf 14
9617 }, # ip_gateway_name_fddi
9619 name
=> 'ip_gateway_NAME_fddi',
9620 skip
=> skip_config_def1
('INET6') ||
9621 skip_no_ethers_casecmp
() ||
9622 skip_no_hosts_casecmp
(),
9625 'ip gateway ETH-IPV4-NOIPV6.HOST123.LIBPCAP.TEST',
9626 'ip gateway ETH-IPV4-IPV6.HOST123.LIBPCAP.TEST',
9630 (001) jeq #0x400140e jt 2 jf 4
9632 (003) jeq #0xaa00 jt 8 jf 4
9634 (005) jeq #0x400140e jt 6 jf 15
9636 (007) jeq #0xaa00 jt 8 jf 15
9638 (009) jeq #0x800 jt 10 jf 14
9640 (011) jeq #0xa141e28 jt 15 jf 12
9642 (013) jeq #0xa141e28 jt 15 jf 14
9646 }, # ip_gateway_NAME_fddi
9648 name
=> 'arp_gateway_name_fddi',
9649 skip
=> skip_config_def1
('INET6') ||
9654 'arp gateway eth-ipv4-noipv6.host123.libpcap.test',
9655 'arp gateway eth-ipv4-ipv6.host123.libpcap.test',
9659 (001) jeq #0x400140e jt 2 jf 4
9661 (003) jeq #0xaa00 jt 8 jf 4
9663 (005) jeq #0x400140e jt 6 jf 15
9665 (007) jeq #0xaa00 jt 8 jf 15
9667 (009) jeq #0x806 jt 10 jf 14
9669 (011) jeq #0xa141e28 jt 15 jf 12
9671 (013) jeq #0xa141e28 jt 15 jf 14
9675 }, # arp_gateway_name_fddi
9677 name
=> 'arp_gateway_NAME_fddi',
9678 skip
=> skip_config_def1
('INET6') ||
9679 skip_no_ethers_casecmp
() ||
9680 skip_no_hosts_casecmp
(),
9683 'arp gateway ETH-IPV4-NOIPV6.HOST123.LIBPCAP.TEST',
9684 'arp gateway ETH-IPV4-IPV6.HOST123.LIBPCAP.TEST',
9688 (001) jeq #0x400140e jt 2 jf 4
9690 (003) jeq #0xaa00 jt 8 jf 4
9692 (005) jeq #0x400140e jt 6 jf 15
9694 (007) jeq #0xaa00 jt 8 jf 15
9696 (009) jeq #0x806 jt 10 jf 14
9698 (011) jeq #0xa141e28 jt 15 jf 12
9700 (013) jeq #0xa141e28 jt 15 jf 14
9704 }, # arp_gateway_NAME_fddi
9706 name
=> 'rarp_gateway_name_fddi',
9707 skip
=> skip_config_def1
('INET6') ||
9712 'rarp gateway eth-ipv4-noipv6.host123.libpcap.test',
9713 'rarp gateway eth-ipv4-ipv6.host123.libpcap.test',
9717 (001) jeq #0x400140e jt 2 jf 4
9719 (003) jeq #0xaa00 jt 8 jf 4
9721 (005) jeq #0x400140e jt 6 jf 15
9723 (007) jeq #0xaa00 jt 8 jf 15
9725 (009) jeq #0x8035 jt 10 jf 14
9727 (011) jeq #0xa141e28 jt 15 jf 12
9729 (013) jeq #0xa141e28 jt 15 jf 14
9733 }, # rarp_gateway_name_fddi
9735 name
=> 'rarp_gateway_NAME_fddi',
9736 skip
=> skip_config_def1
('INET6') ||
9737 skip_no_ethers_casecmp
() ||
9738 skip_no_hosts_casecmp
(),
9741 'rarp gateway ETH-IPV4-NOIPV6.HOST123.LIBPCAP.TEST',
9742 'rarp gateway ETH-IPV4-IPV6.HOST123.LIBPCAP.TEST',
9746 (001) jeq #0x400140e jt 2 jf 4
9748 (003) jeq #0xaa00 jt 8 jf 4
9750 (005) jeq #0x400140e jt 6 jf 15
9752 (007) jeq #0xaa00 jt 8 jf 15
9754 (009) jeq #0x8035 jt 10 jf 14
9756 (011) jeq #0xa141e28 jt 15 jf 12
9758 (013) jeq #0xa141e28 jt 15 jf 14
9762 }, # rarp_gateway_NAME_fddi
9764 name
=> 'gateway_name_ieee802',
9765 skip
=> skip_config_def1
('INET6') ||
9770 'gateway eth-ipv4-noipv6.host123.libpcap.test',
9771 'gateway eth-ipv4-ipv6.host123.libpcap.test',
9775 (001) jeq #0x400140e jt 2 jf 4
9777 (003) jeq #0xaa00 jt 8 jf 4
9779 (005) jeq #0x400140e jt 6 jf 21
9781 (007) jeq #0xaa00 jt 8 jf 21
9783 (009) jeq #0x800 jt 10 jf 14
9785 (011) jeq #0xa141e28 jt 21 jf 12
9787 (013) jeq #0xa141e28 jt 21 jf 20
9788 (014) jeq #0x806 jt 16 jf 15
9789 (015) jeq #0x8035 jt 16 jf 20
9791 (017) jeq #0xa141e28 jt 21 jf 18
9793 (019) jeq #0xa141e28 jt 21 jf 20
9797 }, # gateway_name_ieee802
9799 name
=> 'gateway_NAME_ieee802',
9800 skip
=> skip_config_def1
('INET6') ||
9801 skip_no_ethers_casecmp
() ||
9802 skip_no_hosts_casecmp
(),
9805 'gateway ETH-IPV4-NOIPV6.HOST123.LIBPCAP.TEST',
9806 'gateway ETH-IPV4-IPV6.HOST123.LIBPCAP.TEST',
9810 (001) jeq #0x400140e jt 2 jf 4
9812 (003) jeq #0xaa00 jt 8 jf 4
9814 (005) jeq #0x400140e jt 6 jf 21
9816 (007) jeq #0xaa00 jt 8 jf 21
9818 (009) jeq #0x800 jt 10 jf 14
9820 (011) jeq #0xa141e28 jt 21 jf 12
9822 (013) jeq #0xa141e28 jt 21 jf 20
9823 (014) jeq #0x806 jt 16 jf 15
9824 (015) jeq #0x8035 jt 16 jf 20
9826 (017) jeq #0xa141e28 jt 21 jf 18
9828 (019) jeq #0xa141e28 jt 21 jf 20
9832 }, # gateway_NAME_ieee802
9834 name
=> 'ip_gateway_name_ieee802',
9835 skip
=> skip_config_def1
('INET6') ||
9840 'ip gateway eth-ipv4-noipv6.host123.libpcap.test',
9841 'ip gateway eth-ipv4-ipv6.host123.libpcap.test',
9845 (001) jeq #0x400140e jt 2 jf 4
9847 (003) jeq #0xaa00 jt 8 jf 4
9849 (005) jeq #0x400140e jt 6 jf 15
9851 (007) jeq #0xaa00 jt 8 jf 15
9853 (009) jeq #0x800 jt 10 jf 14
9855 (011) jeq #0xa141e28 jt 15 jf 12
9857 (013) jeq #0xa141e28 jt 15 jf 14
9861 }, # ip_gateway_name_ieee802
9863 name
=> 'ip_gateway_NAME_ieee802',
9864 skip
=> skip_config_def1
('INET6') ||
9865 skip_no_ethers_casecmp
() ||
9866 skip_no_hosts_casecmp
(),
9869 'ip gateway ETH-IPV4-NOIPV6.HOST123.LIBPCAP.TEST',
9870 'ip gateway ETH-IPV4-IPV6.HOST123.LIBPCAP.TEST',
9874 (001) jeq #0x400140e jt 2 jf 4
9876 (003) jeq #0xaa00 jt 8 jf 4
9878 (005) jeq #0x400140e jt 6 jf 15
9880 (007) jeq #0xaa00 jt 8 jf 15
9882 (009) jeq #0x800 jt 10 jf 14
9884 (011) jeq #0xa141e28 jt 15 jf 12
9886 (013) jeq #0xa141e28 jt 15 jf 14
9890 }, # ip_gateway_NAME_ieee802
9892 name
=> 'arp_gateway_name_ieee802',
9893 skip
=> skip_config_def1
('INET6') ||
9898 'arp gateway eth-ipv4-noipv6.host123.libpcap.test',
9899 'arp gateway eth-ipv4-ipv6.host123.libpcap.test',
9903 (001) jeq #0x400140e jt 2 jf 4
9905 (003) jeq #0xaa00 jt 8 jf 4
9907 (005) jeq #0x400140e jt 6 jf 15
9909 (007) jeq #0xaa00 jt 8 jf 15
9911 (009) jeq #0x806 jt 10 jf 14
9913 (011) jeq #0xa141e28 jt 15 jf 12
9915 (013) jeq #0xa141e28 jt 15 jf 14
9919 }, # arp_gateway_name_ieee802
9921 name
=> 'arp_gateway_NAME_ieee802',
9922 skip
=> skip_config_def1
('INET6') ||
9923 skip_no_ethers_casecmp
() ||
9924 skip_no_hosts_casecmp
(),
9927 'arp gateway ETH-IPV4-NOIPV6.HOST123.LIBPCAP.TEST',
9928 'arp gateway ETH-IPV4-IPV6.HOST123.LIBPCAP.TEST',
9932 (001) jeq #0x400140e jt 2 jf 4
9934 (003) jeq #0xaa00 jt 8 jf 4
9936 (005) jeq #0x400140e jt 6 jf 15
9938 (007) jeq #0xaa00 jt 8 jf 15
9940 (009) jeq #0x806 jt 10 jf 14
9942 (011) jeq #0xa141e28 jt 15 jf 12
9944 (013) jeq #0xa141e28 jt 15 jf 14
9948 }, # arp_gateway_NAME_ieee802
9950 name
=> 'rarp_gateway_name_ieee802',
9951 skip
=> skip_config_def1
('INET6') ||
9956 'rarp gateway eth-ipv4-noipv6.host123.libpcap.test',
9957 'rarp gateway eth-ipv4-ipv6.host123.libpcap.test',
9961 (001) jeq #0x400140e jt 2 jf 4
9963 (003) jeq #0xaa00 jt 8 jf 4
9965 (005) jeq #0x400140e jt 6 jf 15
9967 (007) jeq #0xaa00 jt 8 jf 15
9969 (009) jeq #0x8035 jt 10 jf 14
9971 (011) jeq #0xa141e28 jt 15 jf 12
9973 (013) jeq #0xa141e28 jt 15 jf 14
9977 }, # rarp_gateway_name_ieee802
9979 name
=> 'rarp_gateway_NAME_ieee802',
9980 skip
=> skip_config_def1
('INET6') ||
9981 skip_no_ethers_casecmp
() ||
9982 skip_no_hosts_casecmp
(),
9985 'rarp gateway ETH-IPV4-NOIPV6.HOST123.LIBPCAP.TEST',
9986 'rarp gateway ETH-IPV4-IPV6.HOST123.LIBPCAP.TEST',
9990 (001) jeq #0x400140e jt 2 jf 4
9992 (003) jeq #0xaa00 jt 8 jf 4
9994 (005) jeq #0x400140e jt 6 jf 15
9996 (007) jeq #0xaa00 jt 8 jf 15
9998 (009) jeq #0x8035 jt 10 jf 14
10000 (011) jeq #0xa141e28 jt 15 jf 12
10002 (013) jeq #0xa141e28 jt 15 jf 14
10006 }, # rarp_gateway_NAME_ieee802
10007 # TODO: Verify identity with DLT_PRISM_HEADER, DLT_IEEE802_11_RADIO_AVS,
10008 # DLT_IEEE802_11_RADIO and DLT_PPI in all DLT_IEEE802_11 gateway tests.
10010 name
=> 'gateway_name_ieee802_11',
10011 skip
=> skip_config_def1
('INET6') ||
10012 skip_no_ethers
() ||
10014 DLT
=> 'IEEE802_11',
10016 'gateway eth-ipv4-noipv6.host123.libpcap.test',
10017 'gateway eth-ipv4-ipv6.host123.libpcap.test',
10025 (005) jset #0x8 jt 6 jf 11
10026 (006) jset #0x4 jt 11 jf 7
10027 (007) jset #0x80 jt 8 jf 11
10032 (012) jset #0x4 jt 41 jf 13
10034 (014) jset #0x8 jt 19 jf 15
10036 (016) jeq #0x400140e jt 17 jf 19
10038 (018) jeq #0xaa00 jt 63 jf 19
10040 (020) jset #0x8 jt 21 jf 41
10042 (022) jset #0x2 jt 27 jf 23
10044 (024) jeq #0x400140e jt 25 jf 27
10046 (026) jeq #0xaa00 jt 63 jf 27
10048 (028) jset #0x2 jt 29 jf 41
10050 (030) jset #0x1 jt 35 jf 31
10052 (032) jeq #0x400140e jt 33 jf 35
10054 (034) jeq #0xaa00 jt 63 jf 35
10056 (036) jset #0x1 jt 37 jf 41
10058 (038) jeq #0x400140e jt 39 jf 41
10060 (040) jeq #0xaa00 jt 63 jf 41
10062 (042) jset #0x4 jt 100 jf 43
10064 (044) jset #0x8 jt 49 jf 45
10066 (046) jeq #0x400140e jt 47 jf 49
10068 (048) jeq #0xaa00 jt 63 jf 49
10070 (050) jset #0x8 jt 51 jf 100
10072 (052) jset #0x1 jt 57 jf 53
10074 (054) jeq #0x400140e jt 55 jf 57
10076 (056) jeq #0xaa00 jt 63 jf 57
10078 (058) jset #0x1 jt 59 jf 100
10080 (060) jeq #0x400140e jt 61 jf 100
10082 (062) jeq #0xaa00 jt 63 jf 100
10085 (065) jeq #0x8 jt 66 jf 75
10088 (068) jeq #0x800 jt 69 jf 75
10091 (071) jeq #0xa141e28 jt 100 jf 72
10094 (074) jeq #0xa141e28 jt 100 jf 75
10097 (077) jeq #0x8 jt 78 jf 87
10100 (080) jeq #0x806 jt 81 jf 87
10103 (083) jeq #0xa141e28 jt 100 jf 84
10106 (086) jeq #0xa141e28 jt 100 jf 87
10109 (089) jeq #0x8 jt 90 jf 99
10112 (092) jeq #0x8035 jt 93 jf 99
10115 (095) jeq #0xa141e28 jt 100 jf 96
10118 (098) jeq #0xa141e28 jt 100 jf 99
10122 }, # gateway_name_ieee802_11
10124 name
=> 'gateway_NAME_ieee802_11',
10125 skip
=> skip_config_def1
('INET6') ||
10126 skip_no_ethers_casecmp
() ||
10127 skip_no_hosts_casecmp
(),
10128 DLT
=> 'IEEE802_11',
10130 'gateway ETH-IPV4-NOIPV6.HOST123.LIBPCAP.TEST',
10131 'gateway ETH-IPV4-IPV6.HOST123.LIBPCAP.TEST',
10139 (005) jset #0x8 jt 6 jf 11
10140 (006) jset #0x4 jt 11 jf 7
10141 (007) jset #0x80 jt 8 jf 11
10146 (012) jset #0x4 jt 41 jf 13
10148 (014) jset #0x8 jt 19 jf 15
10150 (016) jeq #0x400140e jt 17 jf 19
10152 (018) jeq #0xaa00 jt 63 jf 19
10154 (020) jset #0x8 jt 21 jf 41
10156 (022) jset #0x2 jt 27 jf 23
10158 (024) jeq #0x400140e jt 25 jf 27
10160 (026) jeq #0xaa00 jt 63 jf 27
10162 (028) jset #0x2 jt 29 jf 41
10164 (030) jset #0x1 jt 35 jf 31
10166 (032) jeq #0x400140e jt 33 jf 35
10168 (034) jeq #0xaa00 jt 63 jf 35
10170 (036) jset #0x1 jt 37 jf 41
10172 (038) jeq #0x400140e jt 39 jf 41
10174 (040) jeq #0xaa00 jt 63 jf 41
10176 (042) jset #0x4 jt 100 jf 43
10178 (044) jset #0x8 jt 49 jf 45
10180 (046) jeq #0x400140e jt 47 jf 49
10182 (048) jeq #0xaa00 jt 63 jf 49
10184 (050) jset #0x8 jt 51 jf 100
10186 (052) jset #0x1 jt 57 jf 53
10188 (054) jeq #0x400140e jt 55 jf 57
10190 (056) jeq #0xaa00 jt 63 jf 57
10192 (058) jset #0x1 jt 59 jf 100
10194 (060) jeq #0x400140e jt 61 jf 100
10196 (062) jeq #0xaa00 jt 63 jf 100
10199 (065) jeq #0x8 jt 66 jf 75
10202 (068) jeq #0x800 jt 69 jf 75
10205 (071) jeq #0xa141e28 jt 100 jf 72
10208 (074) jeq #0xa141e28 jt 100 jf 75
10211 (077) jeq #0x8 jt 78 jf 87
10214 (080) jeq #0x806 jt 81 jf 87
10217 (083) jeq #0xa141e28 jt 100 jf 84
10220 (086) jeq #0xa141e28 jt 100 jf 87
10223 (089) jeq #0x8 jt 90 jf 99
10226 (092) jeq #0x8035 jt 93 jf 99
10229 (095) jeq #0xa141e28 jt 100 jf 96
10232 (098) jeq #0xa141e28 jt 100 jf 99
10236 }, # gateway_NAME_ieee802_11
10238 name
=> 'ip_gateway_name_ieee802_11',
10239 skip
=> skip_config_def1
('INET6') ||
10240 skip_no_ethers
() ||
10242 DLT
=> 'IEEE802_11',
10244 'ip gateway eth-ipv4-noipv6.host123.libpcap.test',
10245 'ip gateway eth-ipv4-ipv6.host123.libpcap.test',
10253 (005) jset #0x8 jt 6 jf 11
10254 (006) jset #0x4 jt 11 jf 7
10255 (007) jset #0x80 jt 8 jf 11
10260 (012) jset #0x4 jt 41 jf 13
10262 (014) jset #0x8 jt 19 jf 15
10264 (016) jeq #0x400140e jt 17 jf 19
10266 (018) jeq #0xaa00 jt 63 jf 19
10268 (020) jset #0x8 jt 21 jf 41
10270 (022) jset #0x2 jt 27 jf 23
10272 (024) jeq #0x400140e jt 25 jf 27
10274 (026) jeq #0xaa00 jt 63 jf 27
10276 (028) jset #0x2 jt 29 jf 41
10278 (030) jset #0x1 jt 35 jf 31
10280 (032) jeq #0x400140e jt 33 jf 35
10282 (034) jeq #0xaa00 jt 63 jf 35
10284 (036) jset #0x1 jt 37 jf 41
10286 (038) jeq #0x400140e jt 39 jf 41
10288 (040) jeq #0xaa00 jt 63 jf 41
10290 (042) jset #0x4 jt 76 jf 43
10292 (044) jset #0x8 jt 49 jf 45
10294 (046) jeq #0x400140e jt 47 jf 49
10296 (048) jeq #0xaa00 jt 63 jf 49
10298 (050) jset #0x8 jt 51 jf 76
10300 (052) jset #0x1 jt 57 jf 53
10302 (054) jeq #0x400140e jt 55 jf 57
10304 (056) jeq #0xaa00 jt 63 jf 57
10306 (058) jset #0x1 jt 59 jf 76
10308 (060) jeq #0x400140e jt 61 jf 76
10310 (062) jeq #0xaa00 jt 63 jf 76
10313 (065) jeq #0x8 jt 66 jf 75
10316 (068) jeq #0x800 jt 69 jf 75
10319 (071) jeq #0xa141e28 jt 76 jf 72
10322 (074) jeq #0xa141e28 jt 76 jf 75
10326 }, # ip_gateway_name_ieee802_11
10328 name
=> 'ip_gateway_NAME_ieee802_11',
10329 skip
=> skip_config_def1
('INET6') ||
10330 skip_no_ethers_casecmp
() ||
10331 skip_no_hosts_casecmp
(),
10332 DLT
=> 'IEEE802_11',
10334 'ip gateway ETH-IPV4-NOIPV6.HOST123.LIBPCAP.TEST',
10335 'ip gateway ETH-IPV4-IPV6.HOST123.LIBPCAP.TEST',
10343 (005) jset #0x8 jt 6 jf 11
10344 (006) jset #0x4 jt 11 jf 7
10345 (007) jset #0x80 jt 8 jf 11
10350 (012) jset #0x4 jt 41 jf 13
10352 (014) jset #0x8 jt 19 jf 15
10354 (016) jeq #0x400140e jt 17 jf 19
10356 (018) jeq #0xaa00 jt 63 jf 19
10358 (020) jset #0x8 jt 21 jf 41
10360 (022) jset #0x2 jt 27 jf 23
10362 (024) jeq #0x400140e jt 25 jf 27
10364 (026) jeq #0xaa00 jt 63 jf 27
10366 (028) jset #0x2 jt 29 jf 41
10368 (030) jset #0x1 jt 35 jf 31
10370 (032) jeq #0x400140e jt 33 jf 35
10372 (034) jeq #0xaa00 jt 63 jf 35
10374 (036) jset #0x1 jt 37 jf 41
10376 (038) jeq #0x400140e jt 39 jf 41
10378 (040) jeq #0xaa00 jt 63 jf 41
10380 (042) jset #0x4 jt 76 jf 43
10382 (044) jset #0x8 jt 49 jf 45
10384 (046) jeq #0x400140e jt 47 jf 49
10386 (048) jeq #0xaa00 jt 63 jf 49
10388 (050) jset #0x8 jt 51 jf 76
10390 (052) jset #0x1 jt 57 jf 53
10392 (054) jeq #0x400140e jt 55 jf 57
10394 (056) jeq #0xaa00 jt 63 jf 57
10396 (058) jset #0x1 jt 59 jf 76
10398 (060) jeq #0x400140e jt 61 jf 76
10400 (062) jeq #0xaa00 jt 63 jf 76
10403 (065) jeq #0x8 jt 66 jf 75
10406 (068) jeq #0x800 jt 69 jf 75
10409 (071) jeq #0xa141e28 jt 76 jf 72
10412 (074) jeq #0xa141e28 jt 76 jf 75
10416 }, # ip_gateway_NAME_ieee802_11
10418 name
=> 'arp_gateway_name_ieee802_11',
10419 skip
=> skip_config_def1
('INET6') ||
10420 skip_no_ethers
() ||
10422 DLT
=> 'IEEE802_11',
10424 'arp gateway eth-ipv4-noipv6.host123.libpcap.test',
10425 'arp gateway eth-ipv4-ipv6.host123.libpcap.test',
10433 (005) jset #0x8 jt 6 jf 11
10434 (006) jset #0x4 jt 11 jf 7
10435 (007) jset #0x80 jt 8 jf 11
10440 (012) jset #0x4 jt 41 jf 13
10442 (014) jset #0x8 jt 19 jf 15
10444 (016) jeq #0x400140e jt 17 jf 19
10446 (018) jeq #0xaa00 jt 63 jf 19
10448 (020) jset #0x8 jt 21 jf 41
10450 (022) jset #0x2 jt 27 jf 23
10452 (024) jeq #0x400140e jt 25 jf 27
10454 (026) jeq #0xaa00 jt 63 jf 27
10456 (028) jset #0x2 jt 29 jf 41
10458 (030) jset #0x1 jt 35 jf 31
10460 (032) jeq #0x400140e jt 33 jf 35
10462 (034) jeq #0xaa00 jt 63 jf 35
10464 (036) jset #0x1 jt 37 jf 41
10466 (038) jeq #0x400140e jt 39 jf 41
10468 (040) jeq #0xaa00 jt 63 jf 41
10470 (042) jset #0x4 jt 76 jf 43
10472 (044) jset #0x8 jt 49 jf 45
10474 (046) jeq #0x400140e jt 47 jf 49
10476 (048) jeq #0xaa00 jt 63 jf 49
10478 (050) jset #0x8 jt 51 jf 76
10480 (052) jset #0x1 jt 57 jf 53
10482 (054) jeq #0x400140e jt 55 jf 57
10484 (056) jeq #0xaa00 jt 63 jf 57
10486 (058) jset #0x1 jt 59 jf 76
10488 (060) jeq #0x400140e jt 61 jf 76
10490 (062) jeq #0xaa00 jt 63 jf 76
10493 (065) jeq #0x8 jt 66 jf 75
10496 (068) jeq #0x806 jt 69 jf 75
10499 (071) jeq #0xa141e28 jt 76 jf 72
10502 (074) jeq #0xa141e28 jt 76 jf 75
10506 }, # arp_gateway_name_ieee802_11
10508 name
=> 'arp_gateway_NAME_ieee802_11',
10509 skip
=> skip_config_def1
('INET6') ||
10510 skip_no_ethers_casecmp
() ||
10511 skip_no_hosts_casecmp
(),
10512 DLT
=> 'IEEE802_11',
10514 'arp gateway ETH-IPV4-NOIPV6.HOST123.LIBPCAP.TEST',
10515 'arp gateway ETH-IPV4-IPV6.HOST123.LIBPCAP.TEST',
10523 (005) jset #0x8 jt 6 jf 11
10524 (006) jset #0x4 jt 11 jf 7
10525 (007) jset #0x80 jt 8 jf 11
10530 (012) jset #0x4 jt 41 jf 13
10532 (014) jset #0x8 jt 19 jf 15
10534 (016) jeq #0x400140e jt 17 jf 19
10536 (018) jeq #0xaa00 jt 63 jf 19
10538 (020) jset #0x8 jt 21 jf 41
10540 (022) jset #0x2 jt 27 jf 23
10542 (024) jeq #0x400140e jt 25 jf 27
10544 (026) jeq #0xaa00 jt 63 jf 27
10546 (028) jset #0x2 jt 29 jf 41
10548 (030) jset #0x1 jt 35 jf 31
10550 (032) jeq #0x400140e jt 33 jf 35
10552 (034) jeq #0xaa00 jt 63 jf 35
10554 (036) jset #0x1 jt 37 jf 41
10556 (038) jeq #0x400140e jt 39 jf 41
10558 (040) jeq #0xaa00 jt 63 jf 41
10560 (042) jset #0x4 jt 76 jf 43
10562 (044) jset #0x8 jt 49 jf 45
10564 (046) jeq #0x400140e jt 47 jf 49
10566 (048) jeq #0xaa00 jt 63 jf 49
10568 (050) jset #0x8 jt 51 jf 76
10570 (052) jset #0x1 jt 57 jf 53
10572 (054) jeq #0x400140e jt 55 jf 57
10574 (056) jeq #0xaa00 jt 63 jf 57
10576 (058) jset #0x1 jt 59 jf 76
10578 (060) jeq #0x400140e jt 61 jf 76
10580 (062) jeq #0xaa00 jt 63 jf 76
10583 (065) jeq #0x8 jt 66 jf 75
10586 (068) jeq #0x806 jt 69 jf 75
10589 (071) jeq #0xa141e28 jt 76 jf 72
10592 (074) jeq #0xa141e28 jt 76 jf 75
10596 }, # arp_gateway_NAME_ieee802_11
10598 name
=> 'rarp_gateway_name_ieee802_11',
10599 skip
=> skip_config_def1
('INET6') ||
10600 skip_no_ethers
() ||
10602 DLT
=> 'IEEE802_11',
10604 'rarp gateway eth-ipv4-noipv6.host123.libpcap.test',
10605 'rarp gateway eth-ipv4-ipv6.host123.libpcap.test',
10613 (005) jset #0x8 jt 6 jf 11
10614 (006) jset #0x4 jt 11 jf 7
10615 (007) jset #0x80 jt 8 jf 11
10620 (012) jset #0x4 jt 41 jf 13
10622 (014) jset #0x8 jt 19 jf 15
10624 (016) jeq #0x400140e jt 17 jf 19
10626 (018) jeq #0xaa00 jt 63 jf 19
10628 (020) jset #0x8 jt 21 jf 41
10630 (022) jset #0x2 jt 27 jf 23
10632 (024) jeq #0x400140e jt 25 jf 27
10634 (026) jeq #0xaa00 jt 63 jf 27
10636 (028) jset #0x2 jt 29 jf 41
10638 (030) jset #0x1 jt 35 jf 31
10640 (032) jeq #0x400140e jt 33 jf 35
10642 (034) jeq #0xaa00 jt 63 jf 35
10644 (036) jset #0x1 jt 37 jf 41
10646 (038) jeq #0x400140e jt 39 jf 41
10648 (040) jeq #0xaa00 jt 63 jf 41
10650 (042) jset #0x4 jt 76 jf 43
10652 (044) jset #0x8 jt 49 jf 45
10654 (046) jeq #0x400140e jt 47 jf 49
10656 (048) jeq #0xaa00 jt 63 jf 49
10658 (050) jset #0x8 jt 51 jf 76
10660 (052) jset #0x1 jt 57 jf 53
10662 (054) jeq #0x400140e jt 55 jf 57
10664 (056) jeq #0xaa00 jt 63 jf 57
10666 (058) jset #0x1 jt 59 jf 76
10668 (060) jeq #0x400140e jt 61 jf 76
10670 (062) jeq #0xaa00 jt 63 jf 76
10673 (065) jeq #0x8 jt 66 jf 75
10676 (068) jeq #0x8035 jt 69 jf 75
10679 (071) jeq #0xa141e28 jt 76 jf 72
10682 (074) jeq #0xa141e28 jt 76 jf 75
10686 }, # rarp_gateway_name_ieee802_11
10688 name
=> 'rarp_gateway_NAME_ieee802_11',
10689 skip
=> skip_config_def1
('INET6') ||
10690 skip_no_ethers_casecmp
() ||
10691 skip_no_hosts_casecmp
(),
10692 DLT
=> 'IEEE802_11',
10694 'rarp gateway ETH-IPV4-NOIPV6.HOST123.LIBPCAP.TEST',
10695 'rarp gateway ETH-IPV4-IPV6.HOST123.LIBPCAP.TEST',
10703 (005) jset #0x8 jt 6 jf 11
10704 (006) jset #0x4 jt 11 jf 7
10705 (007) jset #0x80 jt 8 jf 11
10710 (012) jset #0x4 jt 41 jf 13
10712 (014) jset #0x8 jt 19 jf 15
10714 (016) jeq #0x400140e jt 17 jf 19
10716 (018) jeq #0xaa00 jt 63 jf 19
10718 (020) jset #0x8 jt 21 jf 41
10720 (022) jset #0x2 jt 27 jf 23
10722 (024) jeq #0x400140e jt 25 jf 27
10724 (026) jeq #0xaa00 jt 63 jf 27
10726 (028) jset #0x2 jt 29 jf 41
10728 (030) jset #0x1 jt 35 jf 31
10730 (032) jeq #0x400140e jt 33 jf 35
10732 (034) jeq #0xaa00 jt 63 jf 35
10734 (036) jset #0x1 jt 37 jf 41
10736 (038) jeq #0x400140e jt 39 jf 41
10738 (040) jeq #0xaa00 jt 63 jf 41
10740 (042) jset #0x4 jt 76 jf 43
10742 (044) jset #0x8 jt 49 jf 45
10744 (046) jeq #0x400140e jt 47 jf 49
10746 (048) jeq #0xaa00 jt 63 jf 49
10748 (050) jset #0x8 jt 51 jf 76
10750 (052) jset #0x1 jt 57 jf 53
10752 (054) jeq #0x400140e jt 55 jf 57
10754 (056) jeq #0xaa00 jt 63 jf 57
10756 (058) jset #0x1 jt 59 jf 76
10758 (060) jeq #0x400140e jt 61 jf 76
10760 (062) jeq #0xaa00 jt 63 jf 76
10763 (065) jeq #0x8 jt 66 jf 75
10766 (068) jeq #0x8035 jt 69 jf 75
10769 (071) jeq #0xa141e28 jt 76 jf 72
10772 (074) jeq #0xa141e28 jt 76 jf 75
10776 }, # rarp_gateway_NAME_ieee802_11
10778 name
=> 'gateway_name_ip_over_fc',
10779 skip
=> skip_config_def1
('INET6') ||
10780 skip_no_ethers
() ||
10782 DLT
=> 'IP_OVER_FC',
10784 'gateway eth-ipv4-noipv6.host123.libpcap.test',
10785 'gateway eth-ipv4-ipv6.host123.libpcap.test',
10789 (001) jeq #0x400140e jt 2 jf 4
10791 (003) jeq #0xaa00 jt 8 jf 4
10793 (005) jeq #0x400140e jt 6 jf 21
10795 (007) jeq #0xaa00 jt 8 jf 21
10797 (009) jeq #0x800 jt 10 jf 14
10799 (011) jeq #0xa141e28 jt 21 jf 12
10801 (013) jeq #0xa141e28 jt 21 jf 20
10802 (014) jeq #0x806 jt 16 jf 15
10803 (015) jeq #0x8035 jt 16 jf 20
10805 (017) jeq #0xa141e28 jt 21 jf 18
10807 (019) jeq #0xa141e28 jt 21 jf 20
10811 }, # gateway_name_ip_over_fc
10813 name
=> 'gateway_NAME_ip_over_fc',
10814 skip
=> skip_config_def1
('INET6') ||
10815 skip_no_ethers_casecmp
() ||
10816 skip_no_hosts_casecmp
(),
10817 DLT
=> 'IP_OVER_FC',
10819 'gateway ETH-IPV4-NOIPV6.HOST123.LIBPCAP.TEST',
10820 'gateway ETH-IPV4-IPV6.HOST123.LIBPCAP.TEST',
10824 (001) jeq #0x400140e jt 2 jf 4
10826 (003) jeq #0xaa00 jt 8 jf 4
10828 (005) jeq #0x400140e jt 6 jf 21
10830 (007) jeq #0xaa00 jt 8 jf 21
10832 (009) jeq #0x800 jt 10 jf 14
10834 (011) jeq #0xa141e28 jt 21 jf 12
10836 (013) jeq #0xa141e28 jt 21 jf 20
10837 (014) jeq #0x806 jt 16 jf 15
10838 (015) jeq #0x8035 jt 16 jf 20
10840 (017) jeq #0xa141e28 jt 21 jf 18
10842 (019) jeq #0xa141e28 jt 21 jf 20
10846 }, # gateway_NAME_ip_over_fc
10848 name
=> 'ip_gateway_name_ip_over_fc',
10849 skip
=> skip_config_def1
('INET6') ||
10850 skip_no_ethers
() ||
10852 DLT
=> 'IP_OVER_FC',
10854 'ip gateway eth-ipv4-noipv6.host123.libpcap.test',
10855 'ip gateway eth-ipv4-ipv6.host123.libpcap.test',
10859 (001) jeq #0x400140e jt 2 jf 4
10861 (003) jeq #0xaa00 jt 8 jf 4
10863 (005) jeq #0x400140e jt 6 jf 15
10865 (007) jeq #0xaa00 jt 8 jf 15
10867 (009) jeq #0x800 jt 10 jf 14
10869 (011) jeq #0xa141e28 jt 15 jf 12
10871 (013) jeq #0xa141e28 jt 15 jf 14
10875 }, # ip_gateway_name_ip_over_fc
10877 name
=> 'ip_gateway_NAME_ip_over_fc',
10878 skip
=> skip_config_def1
('INET6') ||
10879 skip_no_ethers_casecmp
() ||
10880 skip_no_hosts_casecmp
(),
10881 DLT
=> 'IP_OVER_FC',
10883 'ip gateway ETH-IPV4-NOIPV6.HOST123.LIBPCAP.TEST',
10884 'ip gateway ETH-IPV4-IPV6.HOST123.LIBPCAP.TEST',
10888 (001) jeq #0x400140e jt 2 jf 4
10890 (003) jeq #0xaa00 jt 8 jf 4
10892 (005) jeq #0x400140e jt 6 jf 15
10894 (007) jeq #0xaa00 jt 8 jf 15
10896 (009) jeq #0x800 jt 10 jf 14
10898 (011) jeq #0xa141e28 jt 15 jf 12
10900 (013) jeq #0xa141e28 jt 15 jf 14
10904 }, # ip_gateway_NAME_ip_over_fc
10906 name
=> 'arp_gateway_name_ip_over_fc',
10907 skip
=> skip_config_def1
('INET6') ||
10908 skip_no_ethers
() ||
10910 DLT
=> 'IP_OVER_FC',
10912 'arp gateway eth-ipv4-noipv6.host123.libpcap.test',
10913 'arp gateway eth-ipv4-ipv6.host123.libpcap.test',
10917 (001) jeq #0x400140e jt 2 jf 4
10919 (003) jeq #0xaa00 jt 8 jf 4
10921 (005) jeq #0x400140e jt 6 jf 15
10923 (007) jeq #0xaa00 jt 8 jf 15
10925 (009) jeq #0x806 jt 10 jf 14
10927 (011) jeq #0xa141e28 jt 15 jf 12
10929 (013) jeq #0xa141e28 jt 15 jf 14
10933 }, # arp_gateway_name_ip_over_fc
10935 name
=> 'arp_gateway_NAME_ip_over_fc',
10936 skip
=> skip_config_def1
('INET6') ||
10937 skip_no_ethers_casecmp
() ||
10938 skip_no_hosts_casecmp
(),
10939 DLT
=> 'IP_OVER_FC',
10941 'arp gateway ETH-IPV4-NOIPV6.HOST123.LIBPCAP.TEST',
10942 'arp gateway ETH-IPV4-IPV6.HOST123.LIBPCAP.TEST',
10946 (001) jeq #0x400140e jt 2 jf 4
10948 (003) jeq #0xaa00 jt 8 jf 4
10950 (005) jeq #0x400140e jt 6 jf 15
10952 (007) jeq #0xaa00 jt 8 jf 15
10954 (009) jeq #0x806 jt 10 jf 14
10956 (011) jeq #0xa141e28 jt 15 jf 12
10958 (013) jeq #0xa141e28 jt 15 jf 14
10962 }, # arp_gateway_NAME_ip_over_fc
10964 name
=> 'rarp_gateway_name_ip_over_fc',
10965 skip
=> skip_config_def1
('INET6') ||
10966 skip_no_ethers
() ||
10968 DLT
=> 'IP_OVER_FC',
10970 'rarp gateway eth-ipv4-noipv6.host123.libpcap.test',
10971 'rarp gateway eth-ipv4-ipv6.host123.libpcap.test',
10975 (001) jeq #0x400140e jt 2 jf 4
10977 (003) jeq #0xaa00 jt 8 jf 4
10979 (005) jeq #0x400140e jt 6 jf 15
10981 (007) jeq #0xaa00 jt 8 jf 15
10983 (009) jeq #0x8035 jt 10 jf 14
10985 (011) jeq #0xa141e28 jt 15 jf 12
10987 (013) jeq #0xa141e28 jt 15 jf 14
10991 }, # rarp_gateway_name_ip_over_fc
10993 name
=> 'rarp_gateway_NAME_ip_over_fc',
10994 skip
=> skip_config_def1
('INET6') ||
10995 skip_no_ethers_casecmp
() ||
10996 skip_no_hosts_casecmp
(),
10997 DLT
=> 'IP_OVER_FC',
10999 'rarp gateway ETH-IPV4-NOIPV6.HOST123.LIBPCAP.TEST',
11000 'rarp gateway ETH-IPV4-IPV6.HOST123.LIBPCAP.TEST',
11004 (001) jeq #0x400140e jt 2 jf 4
11006 (003) jeq #0xaa00 jt 8 jf 4
11008 (005) jeq #0x400140e jt 6 jf 15
11010 (007) jeq #0xaa00 jt 8 jf 15
11012 (009) jeq #0x8035 jt 10 jf 14
11014 (011) jeq #0xa141e28 jt 15 jf 12
11016 (013) jeq #0xa141e28 jt 15 jf 14
11020 }, # rarp_gateway_NAME_ip_over_fc
11031 (001) jeq #0x800 jt 2 jf 5
11033 (003) jeq #0x70 jt 4 jf 5
11047 (001) jeq #0x800 jt 2 jf 5
11049 (003) jeq #0x1 jt 4 jf 5
11063 (001) jeq #0x800 jt 2 jf 5
11065 (003) jeq #0x2 jt 4 jf 5
11070 # "igrp" uses IPPROTO_IGRP, which FreeBSD and its derivatives define, but
11071 # other supported OSes don't (thus libpcap uses its own value, which is
11072 # different from FreeBSD). Test each case separately.
11073 # this discrepancy.
11076 skip
=> skip_os
('freebsd') || skip_os
('darwin') || skip_os
('dragonfly'),
11084 (001) jeq #0x800 jt 2 jf 5
11086 (003) jeq #0x9 jt 4 jf 5
11093 skip
=> skip_os_not
('freebsd') && skip_os_not
('darwin') && skip_os_not
('dragonfly'),
11101 (001) jeq #0x800 jt 2 jf 5
11103 (003) jeq #0x58 jt 4 jf 5
11117 (001) jeq #0x86dd jt 2 jf 8
11119 (003) jeq #0x3a jt 7 jf 4
11120 (004) jeq #0x2c jt 5 jf 8
11122 (006) jeq #0x3a jt 7 jf 8
11132 'proto 51', # not "proto \ah"
11137 (002) jeq #0x40 jt 3 jf 5
11139 (004) jeq #0x33 jt 13 jf 14
11142 (007) jeq #0x60 jt 8 jf 14
11144 (009) jeq #0x33 jt 13 jf 10
11145 (010) jeq #0x2c jt 11 jf 14
11147 (012) jeq #0x33 jt 13 jf 14
11157 'proto 50', # not "proto \esp"
11162 (002) jeq #0x40 jt 3 jf 5
11164 (004) jeq #0x32 jt 13 jf 14
11167 (007) jeq #0x60 jt 8 jf 14
11169 (009) jeq #0x32 jt 13 jf 10
11170 (010) jeq #0x2c jt 11 jf 14
11172 (012) jeq #0x32 jt 13 jf 14
11182 'proto 103', # not "proto \pim"
11187 (002) jeq #0x40 jt 3 jf 5
11189 (004) jeq #0x67 jt 13 jf 14
11192 (007) jeq #0x60 jt 8 jf 14
11194 (009) jeq #0x67 jt 13 jf 10
11195 (010) jeq #0x2c jt 11 jf 14
11197 (012) jeq #0x67 jt 13 jf 14
11207 'proto 132', # not "proto \sctp"
11212 (002) jeq #0x40 jt 3 jf 5
11214 (004) jeq #0x84 jt 13 jf 14
11217 (007) jeq #0x60 jt 8 jf 14
11219 (009) jeq #0x84 jt 13 jf 10
11220 (010) jeq #0x2c jt 11 jf 14
11222 (012) jeq #0x84 jt 13 jf 14
11232 'proto 6', # not "proto \tcp"
11237 (002) jeq #0x40 jt 3 jf 5
11239 (004) jeq #0x6 jt 13 jf 14
11242 (007) jeq #0x60 jt 8 jf 14
11244 (009) jeq #0x6 jt 13 jf 10
11245 (010) jeq #0x2c jt 11 jf 14
11247 (012) jeq #0x6 jt 13 jf 14
11257 'proto 17', # not "proto \udp"
11262 (002) jeq #0x40 jt 3 jf 5
11264 (004) jeq #0x11 jt 13 jf 14
11267 (007) jeq #0x60 jt 8 jf 14
11269 (009) jeq #0x11 jt 13 jf 10
11270 (010) jeq #0x2c jt 11 jf 14
11272 (012) jeq #0x11 jt 13 jf 14
11279 name
=> 'ip6_host_addr',
11280 skip
=> skip_config_undef
('INET6'),
11284 'ip6 src or dst host ::1',
11285 'ip6 src or dst ::1',
11287 'src or dst host ::1',
11290 'ip6 src or dst net ::1/128',
11292 'src or dst net ::1/128',
11293 # "...so in this primitive IPv6 "network" matches are really always
11296 'ip6 src or dst net ::1',
11298 'src or dst net ::1',
11299 # This syntax is not documented and seems to be an unintended edge case
11300 # in the invocation of gen_mcode6() from the grammar. It may become
11301 # invalid syntax later, in which case the aliases below will need to be
11302 # converted to reject tests.
11303 'ip6 host ::1/128',
11304 'ip6 src or dst host ::1/128',
11305 'ip6 src or dst ::1/128',
11307 'src or dst host ::1/128',
11308 'src or dst ::1/128',
11313 (002) jeq #0x60 jt 3 jf 20
11315 (004) jeq #0x0 jt 5 jf 11
11317 (006) jeq #0x0 jt 7 jf 11
11319 (008) jeq #0x0 jt 9 jf 11
11321 (010) jeq #0x1 jt 19 jf 11
11323 (012) jeq #0x0 jt 13 jf 20
11325 (014) jeq #0x0 jt 15 jf 20
11327 (016) jeq #0x0 jt 17 jf 20
11329 (018) jeq #0x1 jt 19 jf 20
11335 name
=> 'ip6_host_name',
11336 skip
=> skip_config_undef
('INET6') || skip_no_hosts
(),
11339 'ip6 host noeth-noipv4-ipv6.host123.libpcap.test',
11340 'ip6 host noeth-ipv4-ipv6.host123.libpcap.test',
11341 'ip6 src or dst noeth-noipv4-ipv6.host123.libpcap.test',
11342 'ip6 src or dst noeth-ipv4-ipv6.host123.libpcap.test',
11343 'ip6 src or dst host noeth-noipv4-ipv6.host123.libpcap.test',
11344 'ip6 src or dst host noeth-ipv4-ipv6.host123.libpcap.test',
11345 'host noeth-noipv4-ipv6.host123.libpcap.test',
11346 'src or dst host noeth-noipv4-ipv6.host123.libpcap.test',
11347 'src or dst noeth-noipv4-ipv6.host123.libpcap.test',
11352 (002) jeq #0x60 jt 3 jf 20
11354 (004) jeq #0xfd00a1b2 jt 5 jf 11
11356 (006) jeq #0xc3d40000 jt 7 jf 11
11358 (008) jeq #0x10203040 jt 9 jf 11
11360 (010) jeq #0x50607080 jt 19 jf 11
11362 (012) jeq #0xfd00a1b2 jt 13 jf 20
11364 (014) jeq #0xc3d40000 jt 15 jf 20
11366 (016) jeq #0x10203040 jt 17 jf 20
11368 (018) jeq #0x50607080 jt 19 jf 20
11374 name
=> 'ip6_host_NAME',
11375 skip
=> skip_config_undef
('INET6') || skip_no_hosts_casecmp
(),
11378 'ip6 host NOETH-NOIPV4-IPV6.HOST123.LIBPCAP.TEST',
11379 'ip6 host NOETH-IPV4-IPV6.HOST123.LIBPCAP.TEST',
11380 'ip6 src or dst NOETH-NOIPV4-IPV6.HOST123.LIBPCAP.TEST',
11381 'ip6 src or dst NOETH-IPV4-IPV6.HOST123.LIBPCAP.TEST',
11382 'ip6 src or dst host NOETH-NOIPV4-IPV6.HOST123.LIBPCAP.TEST',
11383 'ip6 src or dst host NOETH-IPV4-IPV6.HOST123.LIBPCAP.TEST',
11384 'host NOETH-NOIPV4-IPV6.HOST123.LIBPCAP.TEST',
11385 'src or dst host NOETH-NOIPV4-IPV6.HOST123.LIBPCAP.TEST',
11386 'src or dst NOETH-NOIPV4-IPV6.HOST123.LIBPCAP.TEST',
11391 (002) jeq #0x60 jt 3 jf 20
11393 (004) jeq #0xfd00a1b2 jt 5 jf 11
11395 (006) jeq #0xc3d40000 jt 7 jf 11
11397 (008) jeq #0x10203040 jt 9 jf 11
11399 (010) jeq #0x50607080 jt 19 jf 11
11401 (012) jeq #0xfd00a1b2 jt 13 jf 20
11403 (014) jeq #0xc3d40000 jt 15 jf 20
11405 (016) jeq #0x10203040 jt 17 jf 20
11407 (018) jeq #0x50607080 jt 19 jf 20
11413 name
=> 'ip6_src_host_addr',
11414 skip
=> skip_config_undef
('INET6'),
11417 'ip6 src host fe80::1122:33ff:fe44:5566',
11418 'ip6 src fe80::1122:33ff:fe44:5566',
11419 'src host fe80::1122:33ff:fe44:5566',
11420 'src fe80::1122:33ff:fe44:5566',
11422 'ip6 src host fe80::1122:33ff:fe44:5566/128',
11423 'ip6 src fe80::1122:33ff:fe44:5566/128',
11424 'src host fe80::1122:33ff:fe44:5566/128',
11425 'src fe80::1122:33ff:fe44:5566/128',
11430 (002) jeq #0x60 jt 3 jf 12
11432 (004) jeq #0xfe800000 jt 5 jf 12
11434 (006) jeq #0x0 jt 7 jf 12
11436 (008) jeq #0x112233ff jt 9 jf 12
11438 (010) jeq #0xfe445566 jt 11 jf 12
11442 }, # ip6_src_host_addr
11444 name
=> 'ip6_src_host_name',
11445 skip
=> skip_config_undef
('INET6') || skip_no_hosts
(),
11448 'ip6 src host noeth-noipv4-ipv6.host123.libpcap.test',
11449 'ip6 src host noeth-ipv4-ipv6.host123.libpcap.test',
11450 'ip6 src noeth-noipv4-ipv6.host123.libpcap.test',
11451 'ip6 src noeth-ipv4-ipv6.host123.libpcap.test',
11452 'src host noeth-noipv4-ipv6.host123.libpcap.test',
11453 'src noeth-noipv4-ipv6.host123.libpcap.test',
11458 (002) jeq #0x60 jt 3 jf 12
11460 (004) jeq #0xfd00a1b2 jt 5 jf 12
11462 (006) jeq #0xc3d40000 jt 7 jf 12
11464 (008) jeq #0x10203040 jt 9 jf 12
11466 (010) jeq #0x50607080 jt 11 jf 12
11470 }, # ip6_src_host_name
11472 name
=> 'ip6_src_host_NAME',
11473 skip
=> skip_config_undef
('INET6') || skip_no_hosts_casecmp
(),
11476 'ip6 src host NOETH-NOIPV4-IPV6.HOST123.LIBPCAP.TEST',
11477 'ip6 src host NOETH-IPV4-IPV6.HOST123.LIBPCAP.TEST',
11478 'ip6 src NOETH-NOIPV4-IPV6.HOST123.LIBPCAP.TEST',
11479 'ip6 src NOETH-IPV4-IPV6.HOST123.LIBPCAP.TEST',
11480 'src host NOETH-NOIPV4-IPV6.HOST123.LIBPCAP.TEST',
11481 'src NOETH-NOIPV4-IPV6.HOST123.LIBPCAP.TEST',
11486 (002) jeq #0x60 jt 3 jf 12
11488 (004) jeq #0xfd00a1b2 jt 5 jf 12
11490 (006) jeq #0xc3d40000 jt 7 jf 12
11492 (008) jeq #0x10203040 jt 9 jf 12
11494 (010) jeq #0x50607080 jt 11 jf 12
11498 }, # ip6_src_host_NAME
11500 name
=> 'ip6_dst_host_addr',
11501 skip
=> skip_config_undef
('INET6'),
11504 'ip6 dst host fe80::7788:99ff:feaa:bbcc',
11505 'ip6 dst fe80::7788:99ff:feaa:bbcc',
11506 'dst host fe80::7788:99ff:feaa:bbcc',
11507 'dst fe80::7788:99ff:feaa:bbcc',
11509 'ip6 dst host fe80::7788:99ff:feaa:bbcc/128',
11510 'ip6 dst fe80::7788:99ff:feaa:bbcc/128',
11511 'dst host fe80::7788:99ff:feaa:bbcc/128',
11512 'dst fe80::7788:99ff:feaa:bbcc/128',
11517 (002) jeq #0x60 jt 3 jf 12
11519 (004) jeq #0xfe800000 jt 5 jf 12
11521 (006) jeq #0x0 jt 7 jf 12
11523 (008) jeq #0x778899ff jt 9 jf 12
11525 (010) jeq #0xfeaabbcc jt 11 jf 12
11529 }, # ip6_dst_host_addr
11531 name
=> 'ip6_dst_host_name',
11532 skip
=> skip_config_undef
('INET6') || skip_no_hosts
(),
11535 'ip6 dst host noeth-noipv4-ipv6.host123.libpcap.test',
11536 'ip6 dst host noeth-ipv4-ipv6.host123.libpcap.test',
11537 'ip6 dst noeth-noipv4-ipv6.host123.libpcap.test',
11538 'ip6 dst noeth-ipv4-ipv6.host123.libpcap.test',
11539 'dst host noeth-noipv4-ipv6.host123.libpcap.test',
11540 'dst noeth-noipv4-ipv6.host123.libpcap.test',
11545 (002) jeq #0x60 jt 3 jf 12
11547 (004) jeq #0xfd00a1b2 jt 5 jf 12
11549 (006) jeq #0xc3d40000 jt 7 jf 12
11551 (008) jeq #0x10203040 jt 9 jf 12
11553 (010) jeq #0x50607080 jt 11 jf 12
11557 }, # ip6_dst_host_name
11559 name
=> 'ip6_dst_host_NAME',
11560 skip
=> skip_config_undef
('INET6') || skip_no_hosts_casecmp
(),
11563 'ip6 dst host NOETH-NOIPV4-IPV6.HOST123.LIBPCAP.TEST',
11564 'ip6 dst host NOETH-IPV4-IPV6.HOST123.LIBPCAP.TEST',
11565 'ip6 dst NOETH-NOIPV4-IPV6.HOST123.LIBPCAP.TEST',
11566 'ip6 dst NOETH-IPV4-IPV6.HOST123.LIBPCAP.TEST',
11567 'dst host NOETH-NOIPV4-IPV6.HOST123.LIBPCAP.TEST',
11568 'dst NOETH-NOIPV4-IPV6.HOST123.LIBPCAP.TEST',
11573 (002) jeq #0x60 jt 3 jf 12
11575 (004) jeq #0xfd00a1b2 jt 5 jf 12
11577 (006) jeq #0xc3d40000 jt 7 jf 12
11579 (008) jeq #0x10203040 jt 9 jf 12
11581 (010) jeq #0x50607080 jt 11 jf 12
11585 }, # ip6_dst_host_NAME
11588 skip
=> skip_config_undef
('INET6'),
11591 'ip6 net fe80::/10',
11593 'src or dst net fe80::/10',
11594 'ip6 src or dst net fe80::/10',
11599 (002) jeq #0x60 jt 3 jf 10
11601 (004) and #0xffc00000
11602 (005) jeq #0xfe800000 jt 9 jf 6
11604 (007) and #0xffc00000
11605 (008) jeq #0xfe800000 jt 9 jf 10
11611 name
=> 'ip6_src_net',
11612 skip
=> skip_config_undef
('INET6'),
11615 'ip6 src net 2000::/3',
11616 'src net 2000::/3',
11621 (002) jeq #0x60 jt 3 jf 7
11623 (004) and #0xe0000000
11624 (005) jeq #0x20000000 jt 6 jf 7
11630 name
=> 'ip6_dst_net_0',
11631 skip
=> skip_config_undef
('INET6'),
11633 aliases
=> ['ip6 dst net ::/0'],
11637 (002) jeq #0x60 jt 3 jf 4
11643 name
=> 'ip6_dst_net_8',
11644 skip
=> skip_config_undef
('INET6'),
11646 aliases
=> ['ip6 dst net ff00::/8'],
11650 (002) jeq #0x60 jt 3 jf 7
11652 (004) and #0xff000000
11653 (005) jeq #0xff000000 jt 6 jf 7
11659 name
=> 'ip6_dst_net_40',
11660 skip
=> skip_config_undef
('INET6'),
11662 aliases
=> ['ip6 dst net ff11:2233:4400::/40'],
11666 (002) jeq #0x60 jt 3 jf 9
11668 (004) jeq #0xff112233 jt 5 jf 9
11670 (006) and #0xff000000
11671 (007) jeq #0x44000000 jt 8 jf 9
11675 }, # ip6_dst_net_40
11677 name
=> 'ip6_dst_net_80',
11678 skip
=> skip_config_undef
('INET6'),
11680 aliases
=> ['ip6 dst net ff11:2233:4455:6677:8899::/80'],
11684 (002) jeq #0x60 jt 3 jf 11
11686 (004) jeq #0xff112233 jt 5 jf 11
11688 (006) jeq #0x44556677 jt 7 jf 11
11690 (008) and #0xffff0000
11691 (009) jeq #0x88990000 jt 10 jf 11
11695 }, # ip6_dst_net_80
11697 name
=> 'ip6_dst_net_120',
11698 skip
=> skip_config_undef
('INET6'),
11700 aliases
=> ['ip6 dst net ff11:2233:4455:6677:8899:aabb:ccdd:ee00/120'],
11704 (002) jeq #0x60 jt 3 jf 13
11706 (004) jeq #0xff112233 jt 5 jf 13
11708 (006) jeq #0x44556677 jt 7 jf 13
11710 (008) jeq #0x8899aabb jt 9 jf 13
11712 (010) and #0xffffff00
11713 (011) jeq #0xccddee00 jt 12 jf 13
11717 }, # ip6_dst_net_120
11719 name
=> 'ip6_multicast',
11721 aliases
=> ['ip6 multicast'],
11724 (001) jeq #0x0 jt 2 jf 5
11726 (003) jeq #0xff jt 4 jf 5
11733 name
=> 'icmp_types',
11736 0 == icmp-echoreply &&
11737 3 == icmp-unreach &&
11738 4 == icmp-sourcequench &&
11739 5 == icmp-redirect &&
11741 9 == icmp-routeradvert &&
11742 10 == icmp-routersolicit &&
11743 11 == icmp-timxceed &&
11744 12 == icmp-paramprob &&
11745 13 == icmp-tstamp &&
11746 14 == icmp-tstampreply &&
11748 16 == icmp-ireqreply &&
11749 17 == icmp-maskreq &&
11750 18 == icmp-maskreply
11757 name
=> 'icmp6_types',
11760 1 == icmp6-destinationunreach &&
11761 2 == icmp6-packettoobig &&
11762 3 == icmp6-timeexceeded &&
11763 4 == icmp6-parameterproblem &&
11764 128 == icmp6-echo &&
11765 129 == icmp6-echoreply &&
11766 130 == icmp6-multicastlistenerquery &&
11767 131 == icmp6-multicastlistenerreportv1 &&
11768 132 == icmp6-multicastlistenerdone &&
11769 133 == icmp6-routersolicit &&
11770 134 == icmp6-routeradvert &&
11771 135 == icmp6-neighborsolicit &&
11772 136 == icmp6-neighboradvert &&
11773 137 == icmp6-redirect &&
11774 138 == icmp6-routerrenum &&
11775 139 == icmp6-nodeinformationquery &&
11776 140 == icmp6-nodeinformationresponse &&
11777 141 == icmp6-ineighbordiscoverysolicit &&
11778 142 == icmp6-ineighbordiscoveryadvert &&
11779 143 == icmp6-multicastlistenerreportv2 &&
11780 144 == icmp6-homeagentdiscoveryrequest &&
11781 145 == icmp6-homeagentdiscoveryreply &&
11782 146 == icmp6-mobileprefixsolicit &&
11783 147 == icmp6-mobileprefixadvert &&
11784 148 == icmp6-certpathsolicit &&
11785 149 == icmp6-certpathadvert &&
11786 151 == icmp6-multicastrouteradvert &&
11787 152 == icmp6-multicastroutersolicit &&
11788 153 == icmp6-multicastrouterterm
11796 name
=> 'tcp_flags',
11802 0x08 == tcp-push &&
11814 name
=> 'named_offsets',
11828 # In the tests below "smtp" depends on getaddrinfo().
11830 name
=> 'tcp_port',
11835 'tcp src or dst port 25',
11836 'tcp src or dst port smtp',
11837 # degenerate "portrange"
11838 'tcp portrange 25-25',
11839 'tcp portrange 25-smtp',
11840 'tcp portrange smtp-25',
11841 'tcp portrange smtp-smtp',
11842 'tcp portrange 25',
11843 # "25" is a valid port range, but "smtp" is not.
11844 'tcp src or dst portrange 25-25',
11845 'tcp src or dst portrange 25-smtp',
11846 'tcp src or dst portrange smtp-25',
11847 'tcp src or dst portrange smtp-smtp',
11848 'tcp src or dst portrange 25',
11852 (001) jeq #0x86dd jt 2 jf 8
11854 (003) jeq #0x6 jt 4 jf 19
11856 (005) jeq #0x19 jt 18 jf 6
11858 (007) jeq #0x19 jt 18 jf 19
11859 (008) jeq #0x800 jt 9 jf 19
11861 (010) jeq #0x6 jt 11 jf 19
11863 (012) jset #0x1fff jt 19 jf 13
11864 (013) ldxb 4*([14]&0xf)
11866 (015) jeq #0x19 jt 18 jf 16
11868 (017) jeq #0x19 jt 18 jf 19
11874 (001) jeq #0x86dd jt 2 jf 8
11876 (003) jeq #0x6 jt 4 jf 8
11878 (005) jeq #0x19 jt 20 jf 6
11880 (007) jeq #0x19 jt 20 jf 8
11882 (009) jeq #0x800 jt 10 jf 21
11884 (011) jeq #0x6 jt 12 jf 21
11886 (013) jset #0x1fff jt 21 jf 14
11887 (014) ldxb 4*([14]&0xf)
11889 (016) jeq #0x19 jt 20 jf 17
11890 (017) ldxb 4*([14]&0xf)
11892 (019) jeq #0x19 jt 20 jf 21
11898 name
=> 'tcp_src_port',
11902 'tcp src port smtp',
11903 # degenerate "src portrange"
11904 'tcp src portrange 25-25',
11905 'tcp src portrange 25-smtp',
11906 'tcp src portrange smtp-25',
11907 'tcp src portrange smtp-smtp',
11908 'tcp src portrange 25',
11912 (001) jeq #0x86dd jt 2 jf 6
11914 (003) jeq #0x6 jt 4 jf 15
11916 (005) jeq #0x19 jt 14 jf 15
11917 (006) jeq #0x800 jt 7 jf 15
11919 (008) jeq #0x6 jt 9 jf 15
11921 (010) jset #0x1fff jt 15 jf 11
11922 (011) ldxb 4*([14]&0xf)
11924 (013) jeq #0x19 jt 14 jf 15
11930 (001) jeq #0x86dd jt 2 jf 6
11932 (003) jeq #0x6 jt 4 jf 6
11934 (005) jeq #0x19 jt 15 jf 6
11936 (007) jeq #0x800 jt 8 jf 16
11938 (009) jeq #0x6 jt 10 jf 16
11940 (011) jset #0x1fff jt 16 jf 12
11941 (012) ldxb 4*([14]&0xf)
11943 (014) jeq #0x19 jt 15 jf 16
11949 name
=> 'tcp_dst_port',
11953 'tcp dst port smtp',
11954 # degenerate "dst portrange"
11955 'tcp dst portrange 25-25',
11956 'tcp dst portrange 25-smtp',
11957 'tcp dst portrange smtp-25',
11958 'tcp dst portrange smtp-smtp',
11959 'tcp dst portrange 25',
11963 (001) jeq #0x86dd jt 2 jf 6
11965 (003) jeq #0x6 jt 4 jf 15
11967 (005) jeq #0x19 jt 14 jf 15
11968 (006) jeq #0x800 jt 7 jf 15
11970 (008) jeq #0x6 jt 9 jf 15
11972 (010) jset #0x1fff jt 15 jf 11
11973 (011) ldxb 4*([14]&0xf)
11975 (013) jeq #0x19 jt 14 jf 15
11981 (001) jeq #0x86dd jt 2 jf 6
11983 (003) jeq #0x6 jt 4 jf 6
11985 (005) jeq #0x19 jt 15 jf 6
11987 (007) jeq #0x800 jt 8 jf 16
11989 (009) jeq #0x6 jt 10 jf 16
11991 (011) jset #0x1fff jt 16 jf 12
11992 (012) ldxb 4*([14]&0xf)
11994 (014) jeq #0x19 jt 15 jf 16
12000 name
=> 'tcp_portrange',
12003 'tcp portrange 25-53',
12004 'tcp portrange 25-domain',
12005 'tcp portrange smtp-53',
12006 'tcp portrange smtp-domain',
12007 'tcp portrange 53-25',
12008 'tcp portrange domain-25',
12009 'tcp portrange 53-smtp',
12010 'tcp portrange domain-smtp',
12011 'tcp src or dst portrange 25-53',
12012 'tcp src or dst portrange 25-domain',
12013 'tcp src or dst portrange smtp-53',
12014 'tcp src or dst portrange smtp-domain',
12015 'tcp src or dst portrange 53-25',
12016 'tcp src or dst portrange domain-25',
12017 'tcp src or dst portrange 53-smtp',
12018 'tcp src or dst portrange domain-smtp',
12022 (001) jeq #0x86dd jt 2 jf 9
12024 (003) jeq #0x6 jt 4 jf 22
12026 (005) jge #0x19 jt 6 jf 7
12027 (006) jgt #0x35 jt 7 jf 21
12029 (008) jge #0x19 jt 20 jf 22
12030 (009) jeq #0x800 jt 10 jf 22
12032 (011) jeq #0x6 jt 12 jf 22
12034 (013) jset #0x1fff jt 22 jf 14
12035 (014) ldxb 4*([14]&0xf)
12037 (016) jge #0x19 jt 17 jf 18
12038 (017) jgt #0x35 jt 18 jf 21
12040 (019) jge #0x19 jt 20 jf 22
12041 (020) jgt #0x35 jt 22 jf 21
12047 (001) jeq #0x86dd jt 2 jf 12
12049 (003) jeq #0x6 jt 4 jf 12
12051 (005) jge #0x19 jt 6 jf 8
12053 (007) jgt #0x35 jt 8 jf 30
12055 (009) jge #0x19 jt 10 jf 12
12057 (011) jgt #0x35 jt 12 jf 30
12059 (013) jeq #0x800 jt 14 jf 31
12061 (015) jeq #0x6 jt 16 jf 31
12063 (017) jset #0x1fff jt 31 jf 18
12064 (018) ldxb 4*([14]&0xf)
12066 (020) jge #0x19 jt 21 jf 24
12067 (021) ldxb 4*([14]&0xf)
12069 (023) jgt #0x35 jt 24 jf 30
12070 (024) ldxb 4*([14]&0xf)
12072 (026) jge #0x19 jt 27 jf 31
12073 (027) ldxb 4*([14]&0xf)
12075 (029) jgt #0x35 jt 31 jf 30
12081 name
=> 'tcp_src_portrange',
12084 'tcp src portrange 25-53',
12085 'tcp src portrange 25-domain',
12086 'tcp src portrange smtp-53',
12087 'tcp src portrange smtp-domain',
12088 'tcp src portrange 53-25',
12089 'tcp src portrange domain-25',
12090 'tcp src portrange 53-smtp',
12091 'tcp src portrange domain-smtp',
12095 (001) jeq #0x86dd jt 2 jf 6
12097 (003) jeq #0x6 jt 4 jf 16
12099 (005) jge #0x19 jt 14 jf 16
12100 (006) jeq #0x800 jt 7 jf 16
12102 (008) jeq #0x6 jt 9 jf 16
12104 (010) jset #0x1fff jt 16 jf 11
12105 (011) ldxb 4*([14]&0xf)
12107 (013) jge #0x19 jt 14 jf 16
12108 (014) jgt #0x35 jt 16 jf 15
12114 (001) jeq #0x86dd jt 2 jf 8
12116 (003) jeq #0x6 jt 4 jf 8
12118 (005) jge #0x19 jt 6 jf 8
12120 (007) jgt #0x35 jt 8 jf 20
12122 (009) jeq #0x800 jt 10 jf 21
12124 (011) jeq #0x6 jt 12 jf 21
12126 (013) jset #0x1fff jt 21 jf 14
12127 (014) ldxb 4*([14]&0xf)
12129 (016) jge #0x19 jt 17 jf 21
12130 (017) ldxb 4*([14]&0xf)
12132 (019) jgt #0x35 jt 21 jf 20
12136 }, # tcp_src_portrange
12138 name
=> 'tcp_dst_portrange',
12141 'tcp dst portrange 25-53',
12142 'tcp dst portrange 25-domain',
12143 'tcp dst portrange smtp-53',
12144 'tcp dst portrange smtp-domain',
12145 'tcp dst portrange 53-25',
12146 'tcp dst portrange domain-25',
12147 'tcp dst portrange 53-smtp',
12148 'tcp dst portrange domain-smtp',
12152 (001) jeq #0x86dd jt 2 jf 6
12154 (003) jeq #0x6 jt 4 jf 16
12156 (005) jge #0x19 jt 14 jf 16
12157 (006) jeq #0x800 jt 7 jf 16
12159 (008) jeq #0x6 jt 9 jf 16
12161 (010) jset #0x1fff jt 16 jf 11
12162 (011) ldxb 4*([14]&0xf)
12164 (013) jge #0x19 jt 14 jf 16
12165 (014) jgt #0x35 jt 16 jf 15
12171 (001) jeq #0x86dd jt 2 jf 8
12173 (003) jeq #0x6 jt 4 jf 8
12175 (005) jge #0x19 jt 6 jf 8
12177 (007) jgt #0x35 jt 8 jf 20
12179 (009) jeq #0x800 jt 10 jf 21
12181 (011) jeq #0x6 jt 12 jf 21
12183 (013) jset #0x1fff jt 21 jf 14
12184 (014) ldxb 4*([14]&0xf)
12186 (016) jge #0x19 jt 17 jf 21
12187 (017) ldxb 4*([14]&0xf)
12189 (019) jgt #0x35 jt 21 jf 20
12193 }, # tcp_dst_portrange
12194 # In the tests below "domain" depends on getaddrinfo().
12196 name
=> 'udp_port',
12201 'udp src or dst port 53',
12202 'udp src or dst port domain',
12203 # degenerate "portrange"
12204 'udp portrange 53-53',
12205 'udp portrange 53-domain',
12206 'udp portrange domain-53',
12207 'udp portrange domain-domain',
12208 'udp portrange 53',
12209 # "53" is a valid port range, but "domain" is not.
12210 'udp src or dst portrange 53-53',
12211 'udp src or dst portrange 53-domain',
12212 'udp src or dst portrange domain-53',
12213 'udp src or dst portrange domain-domain',
12214 'udp src or dst portrange 53',
12218 (001) jeq #0x86dd jt 2 jf 8
12220 (003) jeq #0x11 jt 4 jf 19
12222 (005) jeq #0x35 jt 18 jf 6
12224 (007) jeq #0x35 jt 18 jf 19
12225 (008) jeq #0x800 jt 9 jf 19
12227 (010) jeq #0x11 jt 11 jf 19
12229 (012) jset #0x1fff jt 19 jf 13
12230 (013) ldxb 4*([14]&0xf)
12232 (015) jeq #0x35 jt 18 jf 16
12234 (017) jeq #0x35 jt 18 jf 19
12240 (001) jeq #0x86dd jt 2 jf 8
12242 (003) jeq #0x11 jt 4 jf 8
12244 (005) jeq #0x35 jt 20 jf 6
12246 (007) jeq #0x35 jt 20 jf 8
12248 (009) jeq #0x800 jt 10 jf 21
12250 (011) jeq #0x11 jt 12 jf 21
12252 (013) jset #0x1fff jt 21 jf 14
12253 (014) ldxb 4*([14]&0xf)
12255 (016) jeq #0x35 jt 20 jf 17
12256 (017) ldxb 4*([14]&0xf)
12258 (019) jeq #0x35 jt 20 jf 21
12264 name
=> 'udp_src_port',
12268 'udp src port domain',
12269 # degenerate "src portrange"
12270 'udp src portrange 53-53',
12271 'udp src portrange 53-domain',
12272 'udp src portrange domain-53',
12273 'udp src portrange domain-domain',
12274 'udp src portrange 53',
12278 (001) jeq #0x86dd jt 2 jf 6
12280 (003) jeq #0x11 jt 4 jf 15
12282 (005) jeq #0x35 jt 14 jf 15
12283 (006) jeq #0x800 jt 7 jf 15
12285 (008) jeq #0x11 jt 9 jf 15
12287 (010) jset #0x1fff jt 15 jf 11
12288 (011) ldxb 4*([14]&0xf)
12290 (013) jeq #0x35 jt 14 jf 15
12296 (001) jeq #0x86dd jt 2 jf 6
12298 (003) jeq #0x11 jt 4 jf 6
12300 (005) jeq #0x35 jt 15 jf 6
12302 (007) jeq #0x800 jt 8 jf 16
12304 (009) jeq #0x11 jt 10 jf 16
12306 (011) jset #0x1fff jt 16 jf 12
12307 (012) ldxb 4*([14]&0xf)
12309 (014) jeq #0x35 jt 15 jf 16
12315 name
=> 'udp_dst_port',
12319 'udp dst port domain',
12320 # degenerate "dst portrange"
12321 'udp dst portrange 53-53',
12322 'udp dst portrange 53-domain',
12323 'udp dst portrange domain-53',
12324 'udp dst portrange domain-domain',
12325 'udp dst portrange 53',
12329 (001) jeq #0x86dd jt 2 jf 6
12331 (003) jeq #0x11 jt 4 jf 15
12333 (005) jeq #0x35 jt 14 jf 15
12334 (006) jeq #0x800 jt 7 jf 15
12336 (008) jeq #0x11 jt 9 jf 15
12338 (010) jset #0x1fff jt 15 jf 11
12339 (011) ldxb 4*([14]&0xf)
12341 (013) jeq #0x35 jt 14 jf 15
12347 (001) jeq #0x86dd jt 2 jf 6
12349 (003) jeq #0x11 jt 4 jf 6
12351 (005) jeq #0x35 jt 15 jf 6
12353 (007) jeq #0x800 jt 8 jf 16
12355 (009) jeq #0x11 jt 10 jf 16
12357 (011) jset #0x1fff jt 16 jf 12
12358 (012) ldxb 4*([14]&0xf)
12360 (014) jeq #0x35 jt 15 jf 16
12366 name
=> 'udp_portrange',
12369 'udp portrange 67-68',
12370 'udp portrange 67-bootpc',
12371 'udp portrange bootps-68',
12372 'udp portrange bootps-bootpc',
12373 'udp portrange 68-67',
12374 'udp portrange bootpc-67',
12375 'udp portrange 68-bootps',
12376 'udp portrange bootpc-bootps',
12377 'udp src or dst portrange 67-68',
12378 'udp src or dst portrange 67-bootpc',
12379 'udp src or dst portrange bootps-68',
12380 'udp src or dst portrange bootps-bootpc',
12381 'udp src or dst portrange 68-67',
12382 'udp src or dst portrange bootpc-67',
12383 'udp src or dst portrange 68-bootps',
12384 'udp src or dst portrange bootpc-bootps',
12388 (001) jeq #0x86dd jt 2 jf 9
12390 (003) jeq #0x11 jt 4 jf 22
12392 (005) jge #0x43 jt 6 jf 7
12393 (006) jgt #0x44 jt 7 jf 21
12395 (008) jge #0x43 jt 20 jf 22
12396 (009) jeq #0x800 jt 10 jf 22
12398 (011) jeq #0x11 jt 12 jf 22
12400 (013) jset #0x1fff jt 22 jf 14
12401 (014) ldxb 4*([14]&0xf)
12403 (016) jge #0x43 jt 17 jf 18
12404 (017) jgt #0x44 jt 18 jf 21
12406 (019) jge #0x43 jt 20 jf 22
12407 (020) jgt #0x44 jt 22 jf 21
12413 (001) jeq #0x86dd jt 2 jf 12
12415 (003) jeq #0x11 jt 4 jf 12
12417 (005) jge #0x43 jt 6 jf 8
12419 (007) jgt #0x44 jt 8 jf 30
12421 (009) jge #0x43 jt 10 jf 12
12423 (011) jgt #0x44 jt 12 jf 30
12425 (013) jeq #0x800 jt 14 jf 31
12427 (015) jeq #0x11 jt 16 jf 31
12429 (017) jset #0x1fff jt 31 jf 18
12430 (018) ldxb 4*([14]&0xf)
12432 (020) jge #0x43 jt 21 jf 24
12433 (021) ldxb 4*([14]&0xf)
12435 (023) jgt #0x44 jt 24 jf 30
12436 (024) ldxb 4*([14]&0xf)
12438 (026) jge #0x43 jt 27 jf 31
12439 (027) ldxb 4*([14]&0xf)
12441 (029) jgt #0x44 jt 31 jf 30
12447 name
=> 'udp_src_portrange',
12450 'udp src portrange 67-68',
12451 'udp src portrange 67-bootpc',
12452 'udp src portrange bootps-68',
12453 'udp src portrange bootps-bootpc',
12454 'udp src portrange 68-67',
12455 'udp src portrange bootpc-67',
12456 'udp src portrange 68-bootps',
12457 'udp src portrange bootpc-bootps',
12461 (001) jeq #0x86dd jt 2 jf 6
12463 (003) jeq #0x11 jt 4 jf 16
12465 (005) jge #0x43 jt 14 jf 16
12466 (006) jeq #0x800 jt 7 jf 16
12468 (008) jeq #0x11 jt 9 jf 16
12470 (010) jset #0x1fff jt 16 jf 11
12471 (011) ldxb 4*([14]&0xf)
12473 (013) jge #0x43 jt 14 jf 16
12474 (014) jgt #0x44 jt 16 jf 15
12480 (001) jeq #0x86dd jt 2 jf 8
12482 (003) jeq #0x11 jt 4 jf 8
12484 (005) jge #0x43 jt 6 jf 8
12486 (007) jgt #0x44 jt 8 jf 20
12488 (009) jeq #0x800 jt 10 jf 21
12490 (011) jeq #0x11 jt 12 jf 21
12492 (013) jset #0x1fff jt 21 jf 14
12493 (014) ldxb 4*([14]&0xf)
12495 (016) jge #0x43 jt 17 jf 21
12496 (017) ldxb 4*([14]&0xf)
12498 (019) jgt #0x44 jt 21 jf 20
12502 }, # udp_src_portrange
12504 name
=> 'udp_dst_portrange',
12507 'udp dst portrange 67-68',
12508 'udp dst portrange 67-bootpc',
12509 'udp dst portrange bootps-68',
12510 'udp dst portrange bootps-bootpc',
12511 'udp dst portrange 68-67',
12512 'udp dst portrange bootpc-67',
12513 'udp dst portrange 68-bootps',
12514 'udp dst portrange bootpc-bootps',
12518 (001) jeq #0x86dd jt 2 jf 6
12520 (003) jeq #0x11 jt 4 jf 16
12522 (005) jge #0x43 jt 14 jf 16
12523 (006) jeq #0x800 jt 7 jf 16
12525 (008) jeq #0x11 jt 9 jf 16
12527 (010) jset #0x1fff jt 16 jf 11
12528 (011) ldxb 4*([14]&0xf)
12530 (013) jge #0x43 jt 14 jf 16
12531 (014) jgt #0x44 jt 16 jf 15
12537 (001) jeq #0x86dd jt 2 jf 8
12539 (003) jeq #0x11 jt 4 jf 8
12541 (005) jge #0x43 jt 6 jf 8
12543 (007) jgt #0x44 jt 8 jf 20
12545 (009) jeq #0x800 jt 10 jf 21
12547 (011) jeq #0x11 jt 12 jf 21
12549 (013) jset #0x1fff jt 21 jf 14
12550 (014) ldxb 4*([14]&0xf)
12552 (016) jge #0x43 jt 17 jf 21
12553 (017) ldxb 4*([14]&0xf)
12555 (019) jgt #0x44 jt 21 jf 20
12559 }, # udp_dst_portrange
12560 # SCTP tests below do not use service names because the translation is
12561 # currently broken and may not have a suitable /etc/services contents
12562 # in all supported environments after the bug fix.
12564 name
=> 'sctp_port',
12568 'sctp src or dst port 5672',
12569 # degenerate "portrange"
12570 'sctp portrange 5672-5672',
12571 'sctp portrange 5672',
12572 'sctp src or dst portrange 5672-5672',
12573 'sctp src or dst portrange 5672',
12577 (001) jeq #0x86dd jt 2 jf 8
12579 (003) jeq #0x84 jt 4 jf 19
12581 (005) jeq #0x1628 jt 18 jf 6
12583 (007) jeq #0x1628 jt 18 jf 19
12584 (008) jeq #0x800 jt 9 jf 19
12586 (010) jeq #0x84 jt 11 jf 19
12588 (012) jset #0x1fff jt 19 jf 13
12589 (013) ldxb 4*([14]&0xf)
12591 (015) jeq #0x1628 jt 18 jf 16
12593 (017) jeq #0x1628 jt 18 jf 19
12599 (001) jeq #0x86dd jt 2 jf 8
12601 (003) jeq #0x84 jt 4 jf 8
12603 (005) jeq #0x1628 jt 20 jf 6
12605 (007) jeq #0x1628 jt 20 jf 8
12607 (009) jeq #0x800 jt 10 jf 21
12609 (011) jeq #0x84 jt 12 jf 21
12611 (013) jset #0x1fff jt 21 jf 14
12612 (014) ldxb 4*([14]&0xf)
12614 (016) jeq #0x1628 jt 20 jf 17
12615 (017) ldxb 4*([14]&0xf)
12617 (019) jeq #0x1628 jt 20 jf 21
12623 name
=> 'sctp_src_port',
12626 'sctp src port 5672',
12627 # degenerate "src portrange"
12628 'sctp src portrange 5672-5672',
12629 'sctp src portrange 5672',
12633 (001) jeq #0x86dd jt 2 jf 6
12635 (003) jeq #0x84 jt 4 jf 15
12637 (005) jeq #0x1628 jt 14 jf 15
12638 (006) jeq #0x800 jt 7 jf 15
12640 (008) jeq #0x84 jt 9 jf 15
12642 (010) jset #0x1fff jt 15 jf 11
12643 (011) ldxb 4*([14]&0xf)
12645 (013) jeq #0x1628 jt 14 jf 15
12651 (001) jeq #0x86dd jt 2 jf 6
12653 (003) jeq #0x84 jt 4 jf 6
12655 (005) jeq #0x1628 jt 15 jf 6
12657 (007) jeq #0x800 jt 8 jf 16
12659 (009) jeq #0x84 jt 10 jf 16
12661 (011) jset #0x1fff jt 16 jf 12
12662 (012) ldxb 4*([14]&0xf)
12664 (014) jeq #0x1628 jt 15 jf 16
12670 name
=> 'sctp_dst_port',
12673 'sctp dst port 5672',
12674 # degenerate "dst portrange"
12675 'sctp dst portrange 5672-5672',
12676 'sctp dst portrange 5672',
12680 (001) jeq #0x86dd jt 2 jf 6
12682 (003) jeq #0x84 jt 4 jf 15
12684 (005) jeq #0x1628 jt 14 jf 15
12685 (006) jeq #0x800 jt 7 jf 15
12687 (008) jeq #0x84 jt 9 jf 15
12689 (010) jset #0x1fff jt 15 jf 11
12690 (011) ldxb 4*([14]&0xf)
12692 (013) jeq #0x1628 jt 14 jf 15
12698 (001) jeq #0x86dd jt 2 jf 6
12700 (003) jeq #0x84 jt 4 jf 6
12702 (005) jeq #0x1628 jt 15 jf 6
12704 (007) jeq #0x800 jt 8 jf 16
12706 (009) jeq #0x84 jt 10 jf 16
12708 (011) jset #0x1fff jt 16 jf 12
12709 (012) ldxb 4*([14]&0xf)
12711 (014) jeq #0x1628 jt 15 jf 16
12717 name
=> 'sctp_portrange',
12720 'sctp portrange 1-1023',
12721 'sctp portrange 1023-1',
12722 'sctp src or dst portrange 1-1023',
12723 'sctp src or dst portrange 1023-1',
12727 (001) jeq #0x86dd jt 2 jf 9
12729 (003) jeq #0x84 jt 4 jf 22
12731 (005) jge #0x1 jt 6 jf 7
12732 (006) jgt #0x3ff jt 7 jf 21
12734 (008) jge #0x1 jt 20 jf 22
12735 (009) jeq #0x800 jt 10 jf 22
12737 (011) jeq #0x84 jt 12 jf 22
12739 (013) jset #0x1fff jt 22 jf 14
12740 (014) ldxb 4*([14]&0xf)
12742 (016) jge #0x1 jt 17 jf 18
12743 (017) jgt #0x3ff jt 18 jf 21
12745 (019) jge #0x1 jt 20 jf 22
12746 (020) jgt #0x3ff jt 22 jf 21
12752 (001) jeq #0x86dd jt 2 jf 12
12754 (003) jeq #0x84 jt 4 jf 12
12756 (005) jge #0x1 jt 6 jf 8
12758 (007) jgt #0x3ff jt 8 jf 30
12760 (009) jge #0x1 jt 10 jf 12
12762 (011) jgt #0x3ff jt 12 jf 30
12764 (013) jeq #0x800 jt 14 jf 31
12766 (015) jeq #0x84 jt 16 jf 31
12768 (017) jset #0x1fff jt 31 jf 18
12769 (018) ldxb 4*([14]&0xf)
12771 (020) jge #0x1 jt 21 jf 24
12772 (021) ldxb 4*([14]&0xf)
12774 (023) jgt #0x3ff jt 24 jf 30
12775 (024) ldxb 4*([14]&0xf)
12777 (026) jge #0x1 jt 27 jf 31
12778 (027) ldxb 4*([14]&0xf)
12780 (029) jgt #0x3ff jt 31 jf 30
12784 }, # sctp_portrange
12786 name
=> 'sctp_src_portrange',
12789 'sctp src portrange 1-1023',
12790 'sctp src portrange 1023-1',
12794 (001) jeq #0x86dd jt 2 jf 6
12796 (003) jeq #0x84 jt 4 jf 16
12798 (005) jge #0x1 jt 14 jf 16
12799 (006) jeq #0x800 jt 7 jf 16
12801 (008) jeq #0x84 jt 9 jf 16
12803 (010) jset #0x1fff jt 16 jf 11
12804 (011) ldxb 4*([14]&0xf)
12806 (013) jge #0x1 jt 14 jf 16
12807 (014) jgt #0x3ff jt 16 jf 15
12813 (001) jeq #0x86dd jt 2 jf 8
12815 (003) jeq #0x84 jt 4 jf 8
12817 (005) jge #0x1 jt 6 jf 8
12819 (007) jgt #0x3ff jt 8 jf 20
12821 (009) jeq #0x800 jt 10 jf 21
12823 (011) jeq #0x84 jt 12 jf 21
12825 (013) jset #0x1fff jt 21 jf 14
12826 (014) ldxb 4*([14]&0xf)
12828 (016) jge #0x1 jt 17 jf 21
12829 (017) ldxb 4*([14]&0xf)
12831 (019) jgt #0x3ff jt 21 jf 20
12835 }, # sctp_src_portrange
12837 name
=> 'sctp_dst_portrange',
12840 'sctp dst portrange 1-1023',
12841 'sctp dst portrange 1023-1',
12845 (001) jeq #0x86dd jt 2 jf 6
12847 (003) jeq #0x84 jt 4 jf 16
12849 (005) jge #0x1 jt 14 jf 16
12850 (006) jeq #0x800 jt 7 jf 16
12852 (008) jeq #0x84 jt 9 jf 16
12854 (010) jset #0x1fff jt 16 jf 11
12855 (011) ldxb 4*([14]&0xf)
12857 (013) jge #0x1 jt 14 jf 16
12858 (014) jgt #0x3ff jt 16 jf 15
12864 (001) jeq #0x86dd jt 2 jf 8
12866 (003) jeq #0x84 jt 4 jf 8
12868 (005) jge #0x1 jt 6 jf 8
12870 (007) jgt #0x3ff jt 8 jf 20
12872 (009) jeq #0x800 jt 10 jf 21
12874 (011) jeq #0x84 jt 12 jf 21
12876 (013) jset #0x1fff jt 21 jf 14
12877 (014) ldxb 4*([14]&0xf)
12879 (016) jge #0x1 jt 17 jf 21
12880 (017) ldxb 4*([14]&0xf)
12882 (019) jgt #0x3ff jt 21 jf 20
12886 }, # sctp_dst_portrange
12892 'src or dst port 7',
12893 # Do not try a service name due to SCTP.
12894 # degenerate "portrange"
12900 (001) jeq #0x86dd jt 2 jf 10
12902 (003) jeq #0x84 jt 6 jf 4
12903 (004) jeq #0x6 jt 6 jf 5
12904 (005) jeq #0x11 jt 6 jf 23
12906 (007) jeq #0x7 jt 22 jf 8
12908 (009) jeq #0x7 jt 22 jf 23
12909 (010) jeq #0x800 jt 11 jf 23
12911 (012) jeq #0x84 jt 15 jf 13
12912 (013) jeq #0x6 jt 15 jf 14
12913 (014) jeq #0x11 jt 15 jf 23
12915 (016) jset #0x1fff jt 23 jf 17
12916 (017) ldxb 4*([14]&0xf)
12918 (019) jeq #0x7 jt 22 jf 20
12920 (021) jeq #0x7 jt 22 jf 23
12926 (001) jeq #0x86dd jt 2 jf 12
12928 (003) jeq #0x84 jt 8 jf 4
12930 (005) jeq #0x6 jt 8 jf 6
12932 (007) jeq #0x11 jt 8 jf 12
12934 (009) jeq #0x7 jt 28 jf 10
12936 (011) jeq #0x7 jt 28 jf 12
12938 (013) jeq #0x800 jt 14 jf 29
12940 (015) jeq #0x84 jt 20 jf 16
12942 (017) jeq #0x6 jt 20 jf 18
12944 (019) jeq #0x11 jt 20 jf 29
12946 (021) jset #0x1fff jt 29 jf 22
12947 (022) ldxb 4*([14]&0xf)
12949 (024) jeq #0x7 jt 28 jf 25
12950 (025) ldxb 4*([14]&0xf)
12952 (027) jeq #0x7 jt 28 jf 29
12958 name
=> 'src_port',
12962 # degenerate "src portrange"
12963 'src portrange 7-7',
12968 (001) jeq #0x86dd jt 2 jf 8
12970 (003) jeq #0x84 jt 6 jf 4
12971 (004) jeq #0x6 jt 6 jf 5
12972 (005) jeq #0x11 jt 6 jf 19
12974 (007) jeq #0x7 jt 18 jf 19
12975 (008) jeq #0x800 jt 9 jf 19
12977 (010) jeq #0x84 jt 13 jf 11
12978 (011) jeq #0x6 jt 13 jf 12
12979 (012) jeq #0x11 jt 13 jf 19
12981 (014) jset #0x1fff jt 19 jf 15
12982 (015) ldxb 4*([14]&0xf)
12984 (017) jeq #0x7 jt 18 jf 19
12990 (001) jeq #0x86dd jt 2 jf 10
12992 (003) jeq #0x84 jt 8 jf 4
12994 (005) jeq #0x6 jt 8 jf 6
12996 (007) jeq #0x11 jt 8 jf 10
12998 (009) jeq #0x7 jt 23 jf 10
13000 (011) jeq #0x800 jt 12 jf 24
13002 (013) jeq #0x84 jt 18 jf 14
13004 (015) jeq #0x6 jt 18 jf 16
13006 (017) jeq #0x11 jt 18 jf 24
13008 (019) jset #0x1fff jt 24 jf 20
13009 (020) ldxb 4*([14]&0xf)
13011 (022) jeq #0x7 jt 23 jf 24
13017 name
=> 'dst_port',
13021 # degenerate "dst portrange"
13022 'dst portrange 7-7',
13027 (001) jeq #0x86dd jt 2 jf 8
13029 (003) jeq #0x84 jt 6 jf 4
13030 (004) jeq #0x6 jt 6 jf 5
13031 (005) jeq #0x11 jt 6 jf 19
13033 (007) jeq #0x7 jt 18 jf 19
13034 (008) jeq #0x800 jt 9 jf 19
13036 (010) jeq #0x84 jt 13 jf 11
13037 (011) jeq #0x6 jt 13 jf 12
13038 (012) jeq #0x11 jt 13 jf 19
13040 (014) jset #0x1fff jt 19 jf 15
13041 (015) ldxb 4*([14]&0xf)
13043 (017) jeq #0x7 jt 18 jf 19
13049 (001) jeq #0x86dd jt 2 jf 10
13051 (003) jeq #0x84 jt 8 jf 4
13053 (005) jeq #0x6 jt 8 jf 6
13055 (007) jeq #0x11 jt 8 jf 10
13057 (009) jeq #0x7 jt 23 jf 10
13059 (011) jeq #0x800 jt 12 jf 24
13061 (013) jeq #0x84 jt 18 jf 14
13063 (015) jeq #0x6 jt 18 jf 16
13065 (017) jeq #0x11 jt 18 jf 24
13067 (019) jset #0x1fff jt 24 jf 20
13068 (020) ldxb 4*([14]&0xf)
13070 (022) jeq #0x7 jt 23 jf 24
13076 name
=> 'portrange',
13079 'portrange 1-1023',
13080 'portrange 1023-1',
13084 (001) jeq #0x86dd jt 2 jf 11
13086 (003) jeq #0x84 jt 6 jf 4
13087 (004) jeq #0x6 jt 6 jf 5
13088 (005) jeq #0x11 jt 6 jf 26
13090 (007) jge #0x1 jt 8 jf 9
13091 (008) jgt #0x3ff jt 9 jf 25
13093 (010) jge #0x1 jt 24 jf 26
13094 (011) jeq #0x800 jt 12 jf 26
13096 (013) jeq #0x84 jt 16 jf 14
13097 (014) jeq #0x6 jt 16 jf 15
13098 (015) jeq #0x11 jt 16 jf 26
13100 (017) jset #0x1fff jt 26 jf 18
13101 (018) ldxb 4*([14]&0xf)
13103 (020) jge #0x1 jt 21 jf 22
13104 (021) jgt #0x3ff jt 22 jf 25
13106 (023) jge #0x1 jt 24 jf 26
13107 (024) jgt #0x3ff jt 26 jf 25
13113 (001) jeq #0x86dd jt 2 jf 16
13115 (003) jeq #0x84 jt 8 jf 4
13117 (005) jeq #0x6 jt 8 jf 6
13119 (007) jeq #0x11 jt 8 jf 16
13121 (009) jge #0x1 jt 10 jf 12
13123 (011) jgt #0x3ff jt 12 jf 38
13125 (013) jge #0x1 jt 14 jf 16
13127 (015) jgt #0x3ff jt 16 jf 38
13129 (017) jeq #0x800 jt 18 jf 39
13131 (019) jeq #0x84 jt 24 jf 20
13133 (021) jeq #0x6 jt 24 jf 22
13135 (023) jeq #0x11 jt 24 jf 39
13137 (025) jset #0x1fff jt 39 jf 26
13138 (026) ldxb 4*([14]&0xf)
13140 (028) jge #0x1 jt 29 jf 32
13141 (029) ldxb 4*([14]&0xf)
13143 (031) jgt #0x3ff jt 32 jf 38
13144 (032) ldxb 4*([14]&0xf)
13146 (034) jge #0x1 jt 35 jf 39
13147 (035) ldxb 4*([14]&0xf)
13149 (037) jgt #0x3ff jt 39 jf 38
13155 name
=> 'src_portrange',
13158 'src portrange 1-1023',
13159 'src portrange 1023-1',
13163 (001) jeq #0x86dd jt 2 jf 8
13165 (003) jeq #0x84 jt 6 jf 4
13166 (004) jeq #0x6 jt 6 jf 5
13167 (005) jeq #0x11 jt 6 jf 20
13169 (007) jge #0x1 jt 18 jf 20
13170 (008) jeq #0x800 jt 9 jf 20
13172 (010) jeq #0x84 jt 13 jf 11
13173 (011) jeq #0x6 jt 13 jf 12
13174 (012) jeq #0x11 jt 13 jf 20
13176 (014) jset #0x1fff jt 20 jf 15
13177 (015) ldxb 4*([14]&0xf)
13179 (017) jge #0x1 jt 18 jf 20
13180 (018) jgt #0x3ff jt 20 jf 19
13186 (001) jeq #0x86dd jt 2 jf 12
13188 (003) jeq #0x84 jt 8 jf 4
13190 (005) jeq #0x6 jt 8 jf 6
13192 (007) jeq #0x11 jt 8 jf 12
13194 (009) jge #0x1 jt 10 jf 12
13196 (011) jgt #0x3ff jt 12 jf 28
13198 (013) jeq #0x800 jt 14 jf 29
13200 (015) jeq #0x84 jt 20 jf 16
13202 (017) jeq #0x6 jt 20 jf 18
13204 (019) jeq #0x11 jt 20 jf 29
13206 (021) jset #0x1fff jt 29 jf 22
13207 (022) ldxb 4*([14]&0xf)
13209 (024) jge #0x1 jt 25 jf 29
13210 (025) ldxb 4*([14]&0xf)
13212 (027) jgt #0x3ff jt 29 jf 28
13218 name
=> 'dst_portrange',
13221 'dst portrange 1-1023',
13222 'dst portrange 1023-1',
13226 (001) jeq #0x86dd jt 2 jf 8
13228 (003) jeq #0x84 jt 6 jf 4
13229 (004) jeq #0x6 jt 6 jf 5
13230 (005) jeq #0x11 jt 6 jf 20
13232 (007) jge #0x1 jt 18 jf 20
13233 (008) jeq #0x800 jt 9 jf 20
13235 (010) jeq #0x84 jt 13 jf 11
13236 (011) jeq #0x6 jt 13 jf 12
13237 (012) jeq #0x11 jt 13 jf 20
13239 (014) jset #0x1fff jt 20 jf 15
13240 (015) ldxb 4*([14]&0xf)
13242 (017) jge #0x1 jt 18 jf 20
13243 (018) jgt #0x3ff jt 20 jf 19
13249 (001) jeq #0x86dd jt 2 jf 12
13251 (003) jeq #0x84 jt 8 jf 4
13253 (005) jeq #0x6 jt 8 jf 6
13255 (007) jeq #0x11 jt 8 jf 12
13257 (009) jge #0x1 jt 10 jf 12
13259 (011) jgt #0x3ff jt 12 jf 28
13261 (013) jeq #0x800 jt 14 jf 29
13263 (015) jeq #0x84 jt 20 jf 16
13265 (017) jeq #0x6 jt 20 jf 18
13267 (019) jeq #0x11 jt 20 jf 29
13269 (021) jset #0x1fff jt 29 jf 22
13270 (022) ldxb 4*([14]&0xf)
13272 (024) jge #0x1 jt 25 jf 29
13273 (025) ldxb 4*([14]&0xf)
13275 (027) jgt #0x3ff jt 29 jf 28
13289 (001) jeq #0x5 jt 2 jf 3
13297 aliases
=> ['byte 8 < 5'],
13300 (001) jge #0x5 jt 2 jf 3
13308 aliases
=> ['byte 8 > 5'],
13311 (001) jgt #0x5 jt 2 jf 3
13319 aliases
=> ['byte 8 | 5'],
13323 (002) jeq #0x0 jt 3 jf 4
13329 name
=> 'byte_and',
13331 aliases
=> ['byte 8 & 5'],
13335 (002) jeq #0x0 jt 3 jf 4
13342 # In apply_blocks each test block always generates two tests: optimized and
13343 # unoptimized. (Small tests often produce short bytecode that is already
13344 # optimal, in which case testing the "optimized" version again is a duplicate
13345 # work. However, it is not clear yet what would be the right way to avoid the
13346 # duplicate work without creating gaps in the test coverage.) A test block is
13347 # a hash, where the keys have the following meaning:
13349 # * name, expr and netmask: same as in accept_blocks above
13350 # * savefile (mandatory, string): the file in tests/filter/ to use with
13351 # "filtertest -r", this should not have too many packets
13352 # * results (mandatory, array): the list of program filter results to expect
13353 my @apply_blocks = (
13355 name
=> 'pppoed_nullary_on_ctp',
13356 savefile
=> 'loopback.pcap',
13358 results
=> [0, 0, 0, 0, 0, 0],
13361 name
=> 'pppoed_nullary_on_pppoed',
13362 savefile
=> 'pppoe.pcap',
13367 name
=> 'pppoed_nullary_on_pppoes',
13368 savefile
=> 'pppoes.pcap',
13373 name
=> 'pppoes_nullary_on_ctp',
13374 savefile
=> 'loopback.pcap',
13376 results
=> [0, 0, 0, 0, 0, 0],
13379 name
=> 'pppoes_nullary_on_pppoed',
13380 savefile
=> 'pppoe.pcap',
13385 name
=> 'pppoes_nullary_on_pppoes',
13386 savefile
=> 'pppoes.pcap',
13388 results
=> [2000, 2000],
13391 name
=> 'pppoes_unary_on_ctp',
13392 savefile
=> 'loopback.pcap',
13393 expr
=> 'pppoes 0x3b',
13394 results
=> [0, 0, 0, 0, 0, 0],
13397 name
=> 'pppoes_unary_on_pppoed',
13398 savefile
=> 'pppoe.pcap',
13399 expr
=> 'pppoes 0x3b',
13403 name
=> 'pppoes_unary_on_pppoes',
13404 savefile
=> 'pppoes.pcap',
13405 expr
=> 'pppoes 0x3b',
13406 results
=> [0, 2000],
13409 name
=> 'decnet_on_pppoed',
13410 savefile
=> 'pppoe.pcap',
13415 name
=> 'decnet_on_decnet',
13416 savefile
=> 'decnet.pcap',
13418 # This tests EtherType, so every packet matches.
13419 results
=> [65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535],
13422 name
=> 'decnet_src_1_1_on_pppoed',
13423 savefile
=> 'pppoe.pcap',
13424 expr
=> 'decnet src 1.1',
13428 name
=> 'decnet_dst_1_1_on_pppoed',
13429 savefile
=> 'pppoe.pcap',
13430 expr
=> 'decnet dst 1.1',
13434 # This tests a DECnet address, which in the current implementation works
13435 # for data packets only. The first packet is an Ethernet Endnode Hello
13436 # message, so it does not match even though the packet is from node 1.1.
13438 name
=> 'decnet_src_1_1_on_decnet',
13439 savefile
=> 'decnet.pcap',
13440 expr
=> 'decnet src 1.1',
13441 results
=> [0, 65535, 65535, 65535, 65535, 65535, 65535, 65535],
13444 name
=> 'decnet_dst_1_1_on_decnet',
13445 savefile
=> 'decnet.pcap',
13446 expr
=> 'decnet dst 1.1',
13447 results
=> [0, 65535, 65535, 65535, 65535, 65535, 65535, 65535],
13450 name
=> 'decnet_src_not_1_1_on_decnet',
13451 savefile
=> 'decnet.pcap',
13452 expr
=> 'decnet src not 1.1',
13453 results
=> [65535, 0, 0, 0, 0, 0, 0, 0],
13456 name
=> 'decnet_dst_not_1_1_on_decnet',
13457 savefile
=> 'decnet.pcap',
13458 expr
=> 'decnet dst not 1.1',
13459 results
=> [65535, 0, 0, 0, 0, 0, 0, 0],
13462 # The first result is correct from a formal point of view, but the actual
13463 # reason is the same as above.
13465 name
=> 'decnet_src_63_1023_on_decnet',
13466 savefile
=> 'decnet.pcap',
13467 expr
=> 'decnet src 63.1023',
13468 results
=> [0, 0, 0, 0, 0, 0, 0, 0],
13471 name
=> 'decnet_dst_63_1023_on_decnet',
13472 savefile
=> 'decnet.pcap',
13473 expr
=> 'decnet dst 63.1023',
13474 results
=> [0, 0, 0, 0, 0, 0, 0, 0],
13477 name
=> 'decnet_src_not_63_1023_on_decnet',
13478 savefile
=> 'decnet.pcap',
13479 expr
=> 'decnet src not 63.1023',
13480 results
=> [65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535],
13483 name
=> 'decnet_dst_not_63_1023_on_decnet',
13484 savefile
=> 'decnet.pcap',
13485 expr
=> 'decnet dst not 63.1023',
13486 results
=> [65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535],
13489 # The meaning of this expression is NOT the intuitive "any DECnet packets
13490 # that do not have the source address set to 1.1", but this is not
13491 # specific to DECnet. Let's test it anyway.
13493 name
=> 'decnet_src_not_1_1_on_pppoed',
13494 savefile
=> 'pppoe.pcap',
13495 expr
=> 'decnet src not 1.1',
13499 name
=> 'decnet_dst_not_1_1_on_pppoed',
13500 savefile
=> 'pppoe.pcap',
13501 expr
=> 'decnet dst not 1.1',
13505 name
=> 'decnet_src_not_63_1023_on_pppoed',
13506 savefile
=> 'pppoe.pcap',
13507 expr
=> 'decnet src not 63.1023',
13511 name
=> 'decnet_dst_not_63_1023_on_pppoed',
13512 savefile
=> 'pppoe.pcap',
13513 expr
=> 'decnet dst not 63.1023',
13518 name
=> 'decnet_src_63_1023_on_pppoed',
13519 savefile
=> 'pppoe.pcap',
13520 expr
=> 'decnet src 63.1023',
13524 name
=> 'decnet_dst_63_1023_on_pppoed',
13525 savefile
=> 'pppoe.pcap',
13526 expr
=> 'decnet src 63.1023',
13531 name
=> 'dpc_eq_1',
13532 savefile
=> 'isup_load_generator.pcap',
13533 expr
=> 'dpc == 1',
13534 results
=> [0, 279, 0, 279, 279, 0, 279, 0, 279, 0],
13537 name
=> 'dpc_lt_2',
13538 savefile
=> 'isup_load_generator.pcap',
13540 results
=> [0, 279, 0, 279, 279, 0, 279, 0, 279, 0],
13543 name
=> 'dpc_eq_2',
13544 savefile
=> 'isup_load_generator.pcap',
13545 expr
=> 'dpc == 2',
13546 results
=> [279, 0, 279, 0, 0, 279, 0, 279, 0, 279],
13549 name
=> 'dpc_gt_2',
13550 savefile
=> 'isup_load_generator.pcap',
13552 results
=> [0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
13555 name
=> 'dpc_le_2',
13556 savefile
=> 'isup_load_generator.pcap',
13557 expr
=> 'dpc <= 2',
13558 results
=> [279, 279, 279, 279, 279, 279, 279, 279, 279, 279],
13561 name
=> 'dpc_ne_0',
13562 savefile
=> 'isup_load_generator.pcap',
13563 expr
=> 'dpc != 0',
13564 results
=> [279, 279, 279, 279, 279, 279, 279, 279, 279, 279],
13567 name
=> 'opc_eq_2',
13568 savefile
=> 'isup_load_generator.pcap',
13569 expr
=> 'opc == 2',
13570 results
=> [0, 279, 0, 279, 279, 0, 279, 0, 279, 0],
13573 name
=> 'opc_ge_2',
13574 savefile
=> 'isup_load_generator.pcap',
13575 expr
=> 'opc >= 2',
13576 results
=> [0, 279, 0, 279, 279, 0, 279, 0, 279, 0],
13579 name
=> 'opc_gt_2',
13580 savefile
=> 'isup_load_generator.pcap',
13582 results
=> [0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
13585 name
=> 'opc_le_2',
13586 savefile
=> 'isup_load_generator.pcap',
13587 expr
=> 'opc <= 2',
13588 results
=> [279, 279, 279, 279, 279, 279, 279, 279, 279, 279],
13591 name
=> 'opc_ne_0',
13592 savefile
=> 'isup_load_generator.pcap',
13593 expr
=> 'opc != 0',
13594 results
=> [279, 279, 279, 279, 279, 279, 279, 279, 279, 279],
13597 name
=> 'sls_eq_9',
13598 savefile
=> 'isup_load_generator.pcap',
13599 expr
=> 'sls == 9',
13600 results
=> [279, 279, 279, 279, 279, 279, 279, 279, 279, 279],
13603 name
=> 'sls_ne_9',
13604 savefile
=> 'isup_load_generator.pcap',
13605 expr
=> 'sls != 9',
13606 results
=> [0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
13609 name
=> 'link_host_c0_on_arcnet',
13610 savefile
=> 'bacnet-arcnet-linux.pcap',
13611 expr
=> 'link host $c0',
13612 results
=> [65535, 65535, 0, 65535, 65535, 65535, 65535, 65535, 65535, 0],
13615 name
=> 'link_src_host_c0_on_arcnet',
13616 savefile
=> 'bacnet-arcnet-linux.pcap',
13617 expr
=> 'link src host $c0',
13618 results
=> [65535, 65535, 0, 65535, 0, 65535, 0, 65535, 0, 0],
13621 name
=> 'link_dst_host_c0_on_arcnet',
13622 savefile
=> 'bacnet-arcnet-linux.pcap',
13623 expr
=> 'link dst host $c0',
13624 results
=> [0, 0, 0, 0, 65535, 0, 65535, 0, 65535, 0],
13627 name
=> 'link_host_not_c0_on_arcnet',
13628 savefile
=> 'bacnet-arcnet-linux.pcap',
13629 expr
=> 'link host not $c0',
13630 results
=> [0, 0, 65535, 0, 0, 0, 0, 0, 0, 65535],
13633 name
=> 'ip_broadcast',
13634 savefile
=> 'dhcp-rfc3004.pcap',
13635 netmask
=> '255.255.255.0',
13636 expr
=> 'ip broadcast',
13637 results
=> [262144, 0, 262144, 0],
13641 savefile
=> 'isakmp4500.pcap',
13643 results
=> [1536, 1536, 0, 0, 0, 0, 0, 0, 0, 0],
13646 name
=> 'arp_host',
13647 savefile
=> 'isakmp4500.pcap',
13648 expr
=> 'arp host 192.1.2.254',
13649 results
=> [1536, 1536, 0, 0, 0, 0, 0, 0, 0, 0],
13652 name
=> 'arp_src_1',
13653 savefile
=> 'isakmp4500.pcap',
13654 expr
=> 'arp src 192.1.2.254',
13655 results
=> [1536, 0, 0, 0, 0, 0, 0, 0, 0, 0],
13658 name
=> 'arp_src_2',
13659 savefile
=> 'isakmp4500.pcap',
13660 expr
=> 'arp src 192.1.2.23',
13661 results
=> [0, 1536, 0, 0, 0, 0, 0, 0, 0, 0],
13664 name
=> 'arp_dst_1',
13665 savefile
=> 'isakmp4500.pcap',
13666 expr
=> 'arp dst 192.1.2.254',
13667 results
=> [0, 1536, 0, 0, 0, 0, 0, 0, 0, 0],
13670 name
=> 'arp_dst_2',
13671 savefile
=> 'isakmp4500.pcap',
13672 expr
=> 'arp dst 192.1.2.23',
13673 results
=> [1536, 0, 0, 0, 0, 0, 0, 0, 0, 0],
13677 savefile
=> 'rarp_req_reply.pcapng',
13679 results
=> [65535, 65535],
13682 name
=> 'rarp_host_1',
13683 savefile
=> 'rarp_req_reply.pcapng',
13684 expr
=> 'rarp host 0.0.0.0',
13685 results
=> [65535, 0],
13688 name
=> 'rarp_host_2',
13689 savefile
=> 'rarp_req_reply.pcapng',
13690 expr
=> 'rarp host 10.1.1.100',
13691 results
=> [0, 65535],
13694 name
=> 'rarp_host_3',
13695 savefile
=> 'rarp_req_reply.pcapng',
13696 expr
=> 'rarp host 10.1.1.10',
13697 results
=> [0, 65535],
13700 name
=> 'rarp_src',
13701 savefile
=> 'rarp_req_reply.pcapng',
13702 expr
=> 'rarp src 10.1.1.10',
13703 results
=> [0, 65535],
13706 name
=> 'rarp_dst',
13707 savefile
=> 'rarp_req_reply.pcapng',
13708 expr
=> 'rarp dst 10.1.1.100',
13709 results
=> [0, 65535],
13713 savefile
=> 'isakmp4500.pcap',
13715 results
=> [0, 0, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536],
13719 savefile
=> 'vrrp.pcap',
13721 results
=> [0, 0, 65535, 65535, 65535, 65535, 0, 0, 65535, 65535, 65535, 0, 0, 65535, 65535]
13725 savefile
=> 'isakmp4500.pcap',
13726 expr
=> 'ip host 192.1.2.23',
13727 results
=> [0, 0, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536],
13730 name
=> 'ip_src_1',
13731 savefile
=> 'isakmp4500.pcap',
13732 expr
=> 'ip src 192.1.2.254',
13733 results
=> [0, 0, 1536, 0, 1536, 0, 1536, 0, 1536, 0],
13736 name
=> 'ip_src_2',
13737 savefile
=> 'dhcp-rfc3004.pcap',
13738 expr
=> 'ip src 0.0.0.0',
13739 results
=> [262144, 0, 262144, 0],
13742 name
=> 'ip_dst_1',
13743 savefile
=> 'isakmp4500.pcap',
13744 expr
=> 'ip dst 192.1.2.254',
13745 results
=> [0, 0, 0, 1536, 0, 1536, 0, 1536, 0, 1536],
13748 name
=> 'ip_dst_2',
13749 savefile
=> 'dhcp-rfc3004.pcap',
13750 expr
=> 'ip dst 192.168.1.4',
13751 results
=> [0, 262144, 0, 262144],
13755 skip
=> skip_config_undef
('INET6'),
13756 savefile
=> 'vrrp.pcap',
13758 results
=> [65535, 65535, 0, 0, 0, 0, 65535, 65535, 0, 0, 0, 65535, 65535, 0, 0],
13761 name
=> 'ip6_src_1',
13762 skip
=> skip_config_undef
('INET6'),
13763 savefile
=> 'vrrp.pcap',
13764 expr
=> 'ip6 src fe80::d6ca:6dff:fe66:cf60',
13765 results
=> [65535, 65535, 0, 0, 0, 0, 65535, 65535, 0, 0, 0, 0, 0, 0, 0],
13768 name
=> 'ip6_src_2',
13769 skip
=> skip_config_undef
('INET6'),
13770 savefile
=> 'pim-packet-assortment.pcap',
13771 expr
=> 'ip6 src 10::1',
13772 results
=> [0, 0, 0, 0, 0, 0, 0, 65535, 65535, 65535],
13775 name
=> 'ip6_dst_1',
13776 skip
=> skip_config_undef
('INET6'),
13777 savefile
=> 'vrrp.pcap',
13778 expr
=> 'ip6 dst ff02::12',
13779 results
=> [65535, 65535, 0, 0, 0, 0, 65535, 65535, 0, 0, 0, 65535, 65535, 0, 0],
13782 name
=> 'ip6_dst_2',
13783 skip
=> skip_config_undef
('INET6'),
13784 savefile
=> 'pim-packet-assortment.pcap',
13785 expr
=> 'ip6 dst 10::1',
13786 results
=> [0, 0, 0, 0, 0, 0, 65535, 0, 0, 0],
13789 name
=> 'slip_inbound_on_invalid',
13790 savefile
=> 'slip-bad-direction.pcap',
13795 name
=> 'slip_outbound_on_invalid',
13796 savefile
=> 'slip-bad-direction.pcap',
13797 expr
=> 'outbound',
13801 name
=> 'slip_inbound_on_rx',
13802 savefile
=> 'slip-compressed_sl_print-oobr.pcap',
13807 name
=> 'slip_outbound_on_rx',
13808 savefile
=> 'slip-compressed_sl_print-oobr.pcap',
13809 expr
=> 'outbound',
13813 name
=> 'slip_inbound_on_tx',
13814 savefile
=> 'slip-sliplink_print-oobr.pcap',
13819 name
=> 'slip_outbound_on_tx',
13820 savefile
=> 'slip-sliplink_print-oobr.pcap',
13821 expr
=> 'outbound',
13825 name
=> 'wlan_type_mgt',
13826 savefile
=> 'wpa2linkuppassphraseiswireshark.pcap',
13827 expr
=> 'wlan type mgt',
13828 results
=> [65536, 65536, 65536, 65536, 65536, 65536, 65536, 0, 0, 0, 0, 0, 0, 0, 0, 65536],
13831 name
=> 'wlan_subtype_beacon',
13832 savefile
=> 'Network_Join_Nokia_Mobile.pcap',
13833 expr
=> 'wlan subtype beacon',
13834 results
=> [0, 0, 0, 0, 0, 0, 0, 0, 2344, 2344],
13837 name
=> 'wlan_subtype_probe_req',
13838 savefile
=> 'Network_Join_Nokia_Mobile.pcap',
13839 expr
=> 'wlan subtype probe-req',
13840 results
=> [2344, 0, 0, 0, 0, 0, 0, 0, 0, 0],
13843 name
=> 'wlan_subtype_probe_resp',
13844 savefile
=> 'Network_Join_Nokia_Mobile.pcap',
13845 expr
=> 'wlan subtype probe-resp',
13846 results
=> [0, 2344, 0, 0, 0, 0, 0, 0, 0, 0],
13849 name
=> 'wlan_subtype_auth',
13850 savefile
=> 'wpa2linkuppassphraseiswireshark.pcap',
13851 expr
=> 'wlan subtype auth',
13852 results
=> [0, 0, 0, 65536, 65536, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
13855 name
=> 'wlan_subtype_deauth',
13856 savefile
=> 'Network_Join_Nokia_Mobile.pcap',
13857 expr
=> 'wlan subtype deauth',
13858 results
=> [0, 0, 0, 0, 0, 0, 2344, 0, 0, 0],
13861 name
=> 'wlan_subtype_assoc_req',
13862 savefile
=> 'wpa2linkuppassphraseiswireshark.pcap',
13863 expr
=> 'wlan subtype assoc-req',
13864 results
=> [0, 0, 0, 0, 0, 65536, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
13867 name
=> 'wlan_subtype_assoc_resp',
13868 savefile
=> 'wpa2linkuppassphraseiswireshark.pcap',
13869 expr
=> 'wlan subtype assoc-resp',
13870 results
=> [0, 0, 0, 0, 0, 0, 65536, 0, 0, 0, 0, 0, 0, 0, 0, 0],
13873 name
=> 'wlan_subtype_disassoc',
13874 savefile
=> 'wpa2linkuppassphraseiswireshark.pcap',
13875 expr
=> 'wlan subtype disassoc',
13876 results
=> [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65536],
13879 name
=> 'wlan_type_ctl',
13880 savefile
=> 'Network_Join_Nokia_Mobile.pcap',
13881 expr
=> 'wlan type ctl',
13882 results
=> [0, 0, 0, 2344, 0, 2344, 0, 2344, 0, 0],
13885 name
=> 'wlan_subtype_ack',
13886 savefile
=> 'Network_Join_Nokia_Mobile.pcap',
13887 expr
=> 'wlan subtype ack',
13888 results
=> [0, 0, 0, 2344, 0, 2344, 0, 2344, 0, 0],
13891 name
=> 'wlan_subtype_cts',
13892 savefile
=> 'wpa-Induction.pcap',
13893 expr
=> 'wlan subtype cts',
13894 results
=> [0, 0, 0, 0, 65535, 0, 0, 65535, 0, 0],
13897 name
=> 'wlan_type_data',
13898 savefile
=> 'Network_Join_Nokia_Mobile.pcap',
13899 expr
=> 'wlan type data',
13900 results
=> [0, 0, 2344, 0, 2344, 0, 0, 0, 0, 0],
13903 name
=> 'wlan_subtype_qos_data',
13904 savefile
=> 'wpa2linkuppassphraseiswireshark.pcap',
13905 expr
=> 'wlan subtype qos-data',
13906 results
=> [0, 0, 0, 0, 0, 0, 0, 65536, 65536, 65536, 65536, 65536, 65536, 65536, 65536, 0],
13909 name
=> 'wlan_subtype_data',
13910 savefile
=> 'Network_Join_Nokia_Mobile.pcap',
13911 expr
=> 'wlan subtype data',
13912 results
=> [0, 0, 2344, 0, 0, 0, 0, 0, 0, 0],
13915 name
=> 'wlan_subtype_null',
13916 savefile
=> 'Network_Join_Nokia_Mobile.pcap',
13917 expr
=> 'wlan subtype null',
13918 results
=> [0, 0, 0, 0, 2344, 0, 0, 0, 0, 0],
13921 name
=> 'wlan_dir_tods_IEEE802_11',
13922 savefile
=> 'Network_Join_Nokia_Mobile.pcap',
13923 expr
=> 'wlan dir tods',
13924 results
=> [0, 0, 2344, 0, 2344, 0, 0, 0, 0, 0],
13927 name
=> 'wlan_dir_fromds_IEEE802_11_RADIO',
13928 savefile
=> 'wpa2linkuppassphraseiswireshark.pcap',
13929 expr
=> 'wlan dir fromds',
13930 results
=> [0, 0, 0, 0, 0, 0, 0, 65536, 0, 65536, 0, 65536, 0, 65536, 0, 0],
13933 name
=> 'wlan_subtype_ack_PPI',
13934 savefile
=> 'http_PPI.pcap',
13935 expr
=> 'wlan subtype ack',
13936 results
=> [0, 65535, 0, 65535, 0],
13939 name
=> 'wlan_dir_nods_PPI',
13940 savefile
=> 'http_PPI.pcap',
13941 expr
=> 'wlan dir nods',
13942 results
=> [0, 65535, 0, 65535, 0],
13945 name
=> 'iso_proto_isis_EN10MB',
13946 savefile
=> 'ISIS_external_lsp.pcap',
13947 expr
=> 'iso proto \isis',
13948 results
=> [8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192],
13951 name
=> 'iso_proto_esis_EN10MB',
13952 savefile
=> 'ISIS_external_lsp.pcap',
13953 expr
=> 'iso proto \esis',
13954 results
=> [0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
13957 name
=> 'csnp_EN10MB',
13958 savefile
=> 'ISIS_external_lsp.pcap',
13960 results
=> [8192, 0, 0, 0, 0, 8192, 0, 0, 0, 0],
13963 name
=> 'iso_proto_isis_C_HDLC',
13964 savefile
=> 'ISIS_p2p_adjacency.pcap',
13965 expr
=> 'iso proto \isis',
13966 results
=> [8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192],
13969 name
=> 'iso_proto_esis_C_HDLC',
13970 savefile
=> 'ISIS_p2p_adjacency.pcap',
13971 expr
=> 'iso proto \esis',
13972 results
=> [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
13975 name
=> 'csnp_C_HDLC',
13976 savefile
=> 'ISIS_p2p_adjacency.pcap',
13978 results
=> [0, 0, 0, 0, 0, 8192, 8192, 8192, 8192, 0, 0, 0, 0, 0],
13982 savefile
=> 'vxlan.pcap',
13984 results
=> [1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500],
13987 name
=> 'vxlan_100',
13988 savefile
=> 'vxlan.pcap',
13989 expr
=> 'vxlan 100',
13990 results
=> [1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500],
13993 name
=> 'vxlan_101',
13994 savefile
=> 'vxlan.pcap',
13995 expr
=> 'vxlan 101',
13996 results
=> [0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
14000 savefile
=> 'geneve.pcap',
14002 results
=> [262144, 262144, 262144, 262144, 262144, 262144, 262144, 262144, 262144, 262144],
14005 name
=> 'geneve_10',
14006 savefile
=> 'geneve.pcap',
14007 expr
=> 'geneve 10',
14008 results
=> [262144, 0, 0, 262144, 0, 262144, 0, 0, 262144, 0],
14011 name
=> 'geneve_11',
14012 savefile
=> 'geneve.pcap',
14013 expr
=> 'geneve 11',
14014 results
=> [0, 262144, 262144, 0, 262144, 0, 262144, 262144, 0, 262144],
14017 name
=> 'ip_protochain_17_deepstack',
14018 skip
=> skip_config_def1
('NO_PROTOCHAIN'),
14019 savefile
=> 'ipv6_ext_headers.pcap',
14020 expr
=> 'ip protochain 17',
14024 name
=> 'ip6_protochain_17_deepstack',
14025 skip
=> skip_config_def1
('NO_PROTOCHAIN'),
14026 savefile
=> 'ipv6_ext_headers.pcap',
14027 expr
=> 'ip6 protochain 17',
14028 results
=> [65535],
14031 name
=> 'ip6_protochain_51_tunnel',
14032 skip
=> skip_config_def1
('NO_PROTOCHAIN'),
14033 savefile
=> 'AH-IPcomp-IPv6.pcap',
14034 expr
=> 'ip6 protochain 51',
14035 # AH is the first protocol header.
14036 results
=> [65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535],
14039 name
=> 'ip6_protochain_41_tunnel',
14040 skip
=> skip_config_def1
('NO_PROTOCHAIN'),
14041 savefile
=> 'AH-IPcomp-IPv6.pcap',
14042 expr
=> 'ip6 protochain 41',
14043 # When an IPComp header is present, it precedes the inner
14044 # IPv6 header, which no longer matches.
14045 results
=> [65535, 65535, 0, 0, 0, 0, 0, 65535, 0, 0, 65535, 65535, 65535, 65535, 65535],
14048 name
=> 'ip6_protochain_108_tunnel',
14049 skip
=> skip_config_def1
('NO_PROTOCHAIN'),
14050 savefile
=> 'AH-IPcomp-IPv6.pcap',
14051 expr
=> 'ip6 protochain 108',
14052 results
=> [0, 0, 65535, 65535, 65535, 65535, 65535, 0, 65535, 65535, 0, 0, 0, 0, 0],
14055 name
=> 'ip6_protochain_6_tunnel',
14056 skip
=> skip_config_def1
('NO_PROTOCHAIN'),
14057 savefile
=> 'AH-IPcomp-IPv6.pcap',
14058 expr
=> 'ip6 protochain 6',
14059 # All TCP packets have the TCP header behind the inner IPv6 header (41).
14060 results
=> [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
14063 name
=> 'ip6_protochain_17_mixed',
14064 skip
=> skip_config_def1
('NO_PROTOCHAIN'),
14065 savefile
=> 'ipv6_ah_modes.pcap',
14066 expr
=> 'ip6 protochain 17',
14067 results
=> [65535, 0],
14070 name
=> 'ip6_protochain_41_mixed',
14071 skip
=> skip_config_def1
('NO_PROTOCHAIN'),
14072 savefile
=> 'ipv6_ah_modes.pcap',
14073 expr
=> 'ip6 protochain 41',
14074 results
=> [0, 65535],
14077 name
=> 'ip_protochain_51_tunnel',
14078 skip
=> skip_config_def1
('NO_PROTOCHAIN'),
14079 savefile
=> 'AH-IPcomp-IPv4.pcap',
14080 expr
=> 'ip protochain 51',
14081 results
=> [65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535],
14084 name
=> 'ip_protochain_4_tunnel',
14085 skip
=> skip_config_def1
('NO_PROTOCHAIN'),
14086 savefile
=> 'AH-IPcomp-IPv4.pcap',
14087 expr
=> 'ip protochain 4',
14088 results
=> [65535, 65535, 0, 0, 0, 65535, 0, 65535, 65535, 65535],
14091 name
=> 'ip_protochain_108_tunnel',
14092 skip
=> skip_config_def1
('NO_PROTOCHAIN'),
14093 savefile
=> 'AH-IPcomp-IPv4.pcap',
14094 expr
=> 'ip protochain 108',
14095 results
=> [0, 0, 65535, 65535, 65535, 0, 65535, 0, 0, 0],
14098 name
=> 'ip_protochain_51_transport',
14099 skip
=> skip_config_def1
('NO_PROTOCHAIN'),
14100 savefile
=> 'ah-ipip-ping.pcap',
14101 expr
=> 'ip protochain 51',
14102 results
=> [65535, 65535, 65535, 65535],
14105 name
=> 'ip_protochain_1_transport',
14106 skip
=> skip_config_def1
('NO_PROTOCHAIN'),
14107 savefile
=> 'ah-ipip-ping.pcap',
14108 expr
=> 'ip protochain 1',
14109 results
=> [65535, 0, 0, 0],
14113 # * name, DLT, expr, netmask and skip: same as in accept_blocks above
14114 # * errstr (mandatory, string): a substring that must appear in standard error
14115 # from filtertest (this verifies that the reason for rejecting the expression
14116 # is what the test expects, rather than some unrelated cause).
14117 my @reject_tests = (
14119 name
=> 'ether_host',
14121 expr
=> 'ether ab:cd:ef:0g:00:00',
14122 errstr
=> 'bogus ethernet address',
14125 name
=> 'pppoes_value',
14127 expr
=> 'pppoes 65536',
14128 errstr
=> 'PPPoE session number 65536 greater than maximum 65535',
14131 name
=> 'mtp2_sio',
14134 errstr
=> 'sio 256 greater than maximum 255',
14137 name
=> 'mtp3_dpc',
14139 expr
=> 'dpc 16384',
14140 errstr
=> 'dpc 16384 greater than maximum 16383',
14143 name
=> 'mtp3_opc',
14145 expr
=> 'opc 16384',
14146 errstr
=> 'opc 16384 greater than maximum 16383',
14149 name
=> 'mtp3_sls',
14152 errstr
=> 'sls 16 greater than maximum 15',
14155 name
=> 'mtp2_hsio',
14157 expr
=> 'hsio 256',
14158 errstr
=> 'hsio 256 greater than maximum 255',
14161 name
=> 'mtp3_hdpc',
14163 expr
=> 'hdpc 16384',
14164 errstr
=> 'hdpc 16384 greater than maximum 16383',
14167 name
=> 'mtp3_hopc',
14169 expr
=> 'hopc 16384',
14170 errstr
=> 'hopc 16384 greater than maximum 16383',
14173 name
=> 'mtp3_hsls',
14176 errstr
=> 'hsls 16 greater than maximum 15',
14182 errstr
=> 'VPI 256 greater than maximum 255',
14187 expr
=> 'vci 65536',
14188 errstr
=> 'VCI 65536 greater than maximum 65535',
14191 name
=> 'wlan_type',
14192 DLT
=> 'IEEE802_11',
14193 # Type value out of range.
14194 expr
=> 'wlan type 16',
14195 errstr
=> 'invalid 802.11 type value',
14198 name
=> 'wlan_subtype',
14199 DLT
=> 'IEEE802_11',
14200 # Invalid syntax (numeric subtype is ambiguous and requires a type).
14201 expr
=> 'wlan subtype 0',
14202 errstr
=> 'syntax error',
14205 name
=> 'wlan_type_subtype',
14206 DLT
=> 'IEEE802_11',
14207 # Subtype value out of range.
14208 expr
=> 'wlan type 0 subtype 0xff',
14209 errstr
=> 'invalid 802.11 subtype value',
14212 name
=> 'wlan_dir_invalid1',
14213 DLT
=> 'IEEE802_11',
14214 expr
=> 'wlan dir abc',
14215 errstr
=> 'unknown 802.11 direction',
14218 name
=> 'wlan_dir_invalid2',
14219 DLT
=> 'IEEE802_11',
14220 expr
=> 'wlan dir 4',
14221 errstr
=> 'invalid 802.11 direction',
14224 name
=> 'pppoed_unary',
14226 expr
=> 'pppoed 1234',
14227 errstr
=> 'syntax error',
14230 name
=> 'llc_noneth',
14233 errstr
=> 'not supported',
14236 name
=> 'decnet_area',
14238 expr
=> 'decnet host 64.120',
14239 errstr
=> 'invalid DECnet address',
14242 name
=> 'decnet_node',
14244 expr
=> 'decnet host 17.1024',
14245 errstr
=> 'invalid DECnet address',
14250 expr
=> 'ip host 256.256.256.256',
14251 errstr
=> 'invalid IPv4 address',
14254 name
=> 'ip6_host_toolong',
14255 skip
=> skip_config_undef
('INET6'),
14257 expr
=> 'ip6 host fe80:0:0:0:0:0:0:0:0',
14258 errstr
=> 'syntax error',
14261 name
=> 'ip6_host_ipv4addr',
14262 skip
=> skip_config_undef
('INET6'),
14264 expr
=> 'ip6 host 1.2.3.4',
14265 errstr
=> '\'ip6\' is not a valid qualifier for \'ip host\'',
14268 name
=> 'ip6_host_ipv4name',
14269 skip
=> skip_config_undef
('INET6') || skip_no_hosts
(),
14271 expr
=> 'ip6 host noeth-ipv4-noipv6.host123.libpcap.test',
14272 errstr
=> "unknown host \'noeth-ipv4-noipv6.host123.libpcap.test' for specified address family",
14274 # This test has been flaky because it depends on an external effect (DNS
14275 # lookup), which sometimes times out. Let's disable it until there is a good
14276 # way to address it.
14278 # name => 'ip6_host_nonhex',
14280 # expr => 'ip6 host fe80:0:0:0:0:0:0:g',
14281 # errstr => 'unknown host',
14284 name
=> 'ip6_host_disabled',
14285 skip
=> skip_config_def1
('INET6'),
14287 expr
=> 'ip6 host fe80:0:0:0:0:0:0:0',
14288 errstr
=> 'not supported',
14291 name
=> 'ip_net_bits1',
14293 expr
=> 'net 192.168/8',
14294 errstr
=> 'non-network bits set in',
14297 name
=> 'ip_net_bits2',
14299 expr
=> 'net 192.168 mask 255.0.0.0',
14300 errstr
=> 'non-network bits set in',
14303 name
=> 'ip_net_nonhid1',
14305 expr
=> 'net 10 mask 255.0.0.0',
14306 errstr
=> 'syntax error',
14309 name
=> 'ip_net_nonhid2',
14311 expr
=> 'net 10/8',
14312 errstr
=> 'syntax error',
14315 name
=> 'ip_net_mask_nonhid',
14317 expr
=> 'net 10.0.0.0 mask 255',
14318 errstr
=> 'syntax error',
14321 name
=> 'ip_net_nonhid_mask_nonhid',
14323 expr
=> 'net 10 mask 255',
14324 errstr
=> 'syntax error',
14327 name
=> 'ip_net_unknown',
14329 expr
=> "ip net ${nonexistent}",
14330 errstr
=> "unknown network '${nonexistent}'",
14333 name
=> 'ip_src_net_unknown',
14335 expr
=> "ip src net ${nonexistent}",
14336 errstr
=> "unknown network '${nonexistent}'",
14339 name
=> 'ip_dst_net_unknown',
14341 expr
=> "ip dst net ${nonexistent}",
14342 errstr
=> "unknown network '${nonexistent}'",
14345 name
=> 'net_unknown',
14347 expr
=> "net ${nonexistent}",
14348 errstr
=> "unknown network '${nonexistent}'",
14351 name
=> 'src_net_unknown',
14353 expr
=> "src net ${nonexistent}",
14354 errstr
=> "unknown network '${nonexistent}'",
14357 name
=> 'dst_net_unknown',
14359 expr
=> "dst net ${nonexistent}",
14360 errstr
=> "unknown network '${nonexistent}'",
14363 name
=> 'src_or_dst_net_unknown',
14365 expr
=> "src or dst net ${nonexistent}",
14366 errstr
=> "unknown network '${nonexistent}'",
14369 name
=> 'ip6_net_prefix',
14370 skip
=> skip_config_undef
('INET6'),
14372 expr
=> 'ip6 net fe80:0:0:0:0:0:0:0:0/64',
14373 errstr
=> 'syntax error',
14376 name
=> 'ip6_net_masklen',
14377 skip
=> skip_config_undef
('INET6'),
14379 expr
=> 'ip6 net fe80:0:0:0:0:0:0:0/129',
14380 errstr
=> 'mask length must be <= 128',
14383 name
=> 'ip6_net_disabled',
14384 skip
=> skip_config_def1
('INET6'),
14386 expr
=> 'ip6 net fe80:0:0:0:0:0:0:0/64',
14387 errstr
=> 'not supported',
14390 name
=> 'ip6_net_bits',
14391 skip
=> skip_config_undef
('INET6'),
14393 expr
=> 'net fe80:1234:5678::/32',
14394 errstr
=> 'non-network bits set in',
14397 name
=> 'tcp_port',
14399 expr
=> 'tcp port 70000',
14400 errstr
=> 'illegal port number',
14403 name
=> 'udp_port',
14405 expr
=> 'udp port 70000',
14406 errstr
=> 'illegal port number',
14409 name
=> 'sctp_port',
14411 expr
=> 'sctp port 70000',
14412 errstr
=> 'illegal port number',
14415 name
=> 'tcp_portrange1',
14417 expr
=> 'tcp portrange 1-70000',
14418 errstr
=> 'illegal port number',
14421 name
=> 'tcp_portrange2',
14423 expr
=> 'tcp portrange 23-',
14424 errstr
=> 'syntax error',
14427 name
=> 'tcp_portrange3',
14429 expr
=> 'tcp portrange -512',
14430 errstr
=> 'syntax error',
14433 name
=> 'tcp_portrange4',
14435 expr
=> 'tcp portrange 70000',
14436 errstr
=> 'illegal port number',
14439 name
=> 'udp_portrange',
14441 expr
=> 'udp portrange 70000-1',
14442 errstr
=> 'illegal port number',
14445 name
=> 'sctp_portrange',
14447 expr
=> 'sctp portrange 70000-80000',
14448 errstr
=> 'illegal port number',
14451 name
=> 'pppoes_and_vlan',
14453 expr
=> 'pppoes and vlan',
14454 errstr
=> 'no VLAN support for',
14457 name
=> 'vlan_invalid_id1',
14459 expr
=> 'vlan 4096',
14460 errstr
=> 'greater than maximum',
14463 name
=> 'vlan_invalid_id2',
14465 expr
=> 'vlan any',
14466 errstr
=> 'syntax error',
14469 name
=> 'mpls_invalid_id',
14471 expr
=> 'mpls 1048576',
14472 errstr
=> 'greater than maximum',
14475 name
=> 'arcnet_address1',
14477 expr
=> 'link host $123',
14478 errstr
=> 'syntax error',
14481 name
=> 'arcnet_address2',
14483 expr
=> 'link host $x',
14484 errstr
=> 'syntax error',
14487 name
=> 'arcnet_address3',
14489 expr
=> 'link host $',
14490 errstr
=> 'syntax error',
14493 name
=> 'arcnet_address4',
14495 expr
=> 'link host 120',
14496 errstr
=> 'illegal link layer address',
14499 name
=> 'ip_broadcast_implicit',
14501 expr
=> 'ip broadcast',
14502 errstr
=> "netmask not known, so 'ip broadcast' not supported",
14505 name
=> 'ip_broadcast_explicit',
14507 netmask
=> '255.255.255.255',
14508 expr
=> 'ip broadcast',
14509 errstr
=> "netmask not known, so 'ip broadcast' not supported",
14512 name
=> 'arp_host_ipv4_ipv6',
14513 skip
=> skip_config_undef
('INET6') ||
14516 expr
=> 'arp host eth-ipv4-ipv6.host123.libpcap.test',
14517 errstr
=> '\'arp\' is not a valid qualifier for \'ip6 host\'',
14520 name
=> 'rarp_host_ipv4_ipv6',
14521 skip
=> skip_config_undef
('INET6') ||
14524 expr
=> 'rarp host eth-ipv4-ipv6.host123.libpcap.test',
14525 errstr
=> '\'rarp\' is not a valid qualifier for \'ip6 host\'',
14528 name
=> 'arp_host_noipv4_noipv6',
14529 skip
=> skip_no_hosts
(),
14531 expr
=> 'arp host eth-noipv4-noipv6.host123.libpcap.test',
14532 errstr
=> 'unknown host',
14535 name
=> 'rarp_host_noipv4_noipv6',
14536 skip
=> skip_no_hosts
(),
14538 expr
=> 'rarp host eth-noipv4-noipv6.host123.libpcap.test',
14539 errstr
=> 'unknown host',
14542 name
=> 'protochain_disabled',
14543 skip
=> skip_config_undef
('NO_PROTOCHAIN'),
14545 expr
=> 'protochain 17',
14546 errstr
=> 'protochain not supported',
14549 name
=> 'protochain_invalid',
14550 skip
=> skip_config_def1
('NO_PROTOCHAIN'),
14552 expr
=> 'protochain nosuchprotocol',
14553 errstr
=> 'unknown ip proto',
14556 name
=> 'ip_protochain_invalid',
14557 skip
=> skip_config_def1
('NO_PROTOCHAIN'),
14559 expr
=> 'ip protochain nosuchprotocol',
14560 errstr
=> 'unknown ip proto',
14563 name
=> 'ip6_protochain_invalid',
14564 skip
=> skip_config_def1
('NO_PROTOCHAIN'),
14566 expr
=> 'ip6 protochain nosuchprotocol',
14567 errstr
=> 'unknown ip proto',
14570 name
=> 'protochain_256',
14571 skip
=> skip_config_def1
('NO_PROTOCHAIN'),
14573 expr
=> 'protochain 256',
14574 errstr
=> 'protocol number 256 greater than maximum 255',
14577 name
=> 'ip_protochain_256',
14578 skip
=> skip_config_def1
('NO_PROTOCHAIN'),
14580 expr
=> 'ip protochain 256',
14581 errstr
=> 'protocol number 256 greater than maximum 255',
14584 name
=> 'ip6_protochain_256',
14585 skip
=> skip_config_def1
('NO_PROTOCHAIN'),
14587 expr
=> 'ip6 protochain 256',
14588 errstr
=> 'protocol number 256 greater than maximum 255',
14591 name
=> 'geneve_and_protochain_4',
14592 skip
=> skip_config_def1
('NO_PROTOCHAIN'),
14594 expr
=> 'geneve and protochain 4',
14595 errstr
=> '\'protochain\' not supported with variable length headers',
14598 name
=> 'vxlan_and_protochain_4',
14599 skip
=> skip_config_def1
('NO_PROTOCHAIN'),
14601 expr
=> 'vxlan and protochain 4',
14602 errstr
=> '\'protochain\' not supported with variable length headers',
14605 name
=> 'proto_invalid',
14607 expr
=> 'proto nosuchprotocol',
14608 errstr
=> 'unknown ip proto',
14611 name
=> 'proto_256',
14613 expr
=> 'proto 256',
14614 errstr
=> 'protocol number 256 greater than maximum 255',
14617 name
=> 'ip_proto_invalid',
14619 expr
=> 'ip proto nosuchprotocol',
14620 errstr
=> 'unknown ip proto',
14623 name
=> 'ip_proto_256',
14625 expr
=> 'ip proto 256',
14626 errstr
=> 'protocol number 256 greater than maximum 255',
14629 name
=> 'ip6_proto_invalid',
14631 expr
=> 'ip6 proto nosuchprotocol',
14632 errstr
=> 'unknown ip proto',
14635 name
=> 'ip6_proto_256',
14637 expr
=> 'ip6 proto 256',
14638 errstr
=> 'protocol number 256 greater than maximum 255',
14641 name
=> 'proto_1_2_3_4',
14643 expr
=> 'proto 1.2.3.4',
14644 errstr
=> '\'proto\' qualifier applied to IPv4 address',
14646 # In the tests below the hostname normally should not matter because the
14647 # lookup would be made not in the IPv4/IPv6 space, or not at all. Still
14648 # use a hostname that does not exist on the Internet, just in case.
14650 name
=> 'link_host_en10mb',
14652 expr
=> "link host ${nonexistent}",
14653 errstr
=> "unknown ether host '${nonexistent}'",
14656 name
=> 'link_host_netanalyzer',
14657 DLT
=> 'NETANALYZER',
14658 expr
=> "link host ${nonexistent}",
14659 errstr
=> "unknown ether host '${nonexistent}'",
14662 name
=> 'link_host_netanalyzer_transparent',
14663 DLT
=> 'NETANALYZER_TRANSPARENT',
14664 expr
=> "link host ${nonexistent}",
14665 errstr
=> "unknown ether host '${nonexistent}'",
14668 name
=> 'link_host_fddi',
14670 expr
=> "link host ${nonexistent}",
14671 errstr
=> "unknown FDDI host '${nonexistent}'",
14674 name
=> 'link_host_ieee802',
14676 expr
=> "link host ${nonexistent}",
14677 errstr
=> "unknown token ring host '${nonexistent}'",
14680 name
=> 'link_host_802_11',
14681 DLT
=> 'IEEE802_11',
14682 expr
=> "link host ${nonexistent}",
14683 errstr
=> "unknown 802.11 host '${nonexistent}'",
14686 name
=> 'link_host_802_11_radio',
14687 DLT
=> 'IEEE802_11_RADIO_AVS',
14688 expr
=> "link host ${nonexistent}",
14689 errstr
=> "unknown 802.11 host '${nonexistent}'",
14692 name
=> 'link_host_802_11_radio_avs',
14693 DLT
=> 'IEEE802_11_RADIO_AVS',
14694 expr
=> "link host ${nonexistent}",
14695 errstr
=> "unknown 802.11 host '${nonexistent}'",
14698 name
=> 'link_host_prism_header',
14699 DLT
=> 'PRISM_HEADER',
14700 expr
=> "link host ${nonexistent}",
14701 errstr
=> "unknown 802.11 host '${nonexistent}'",
14704 name
=> 'link_host_ip_over_fc',
14705 DLT
=> 'IP_OVER_FC',
14706 expr
=> "link host ${nonexistent}",
14707 errstr
=> "unknown Fibre Channel host '${nonexistent}'",
14710 name
=> 'link_host_other',
14712 expr
=> "link host ${nonexistent}",
14713 errstr
=> 'supports link-level host name',
14716 name
=> 'decnet_host',
14718 expr
=> "decnet host ${nonexistent}",
14719 errstr
=> "invalid DECnet address '${nonexistent}'",
14722 name
=> 'gateway_noipv4_noipv6',
14723 skip
=> skip_config_def1
('INET6') ||
14724 skip_no_ethers
() ||
14727 expr
=> 'gateway eth-noipv4-noipv6.host123.libpcap.test',
14728 errstr
=> 'unknown host', # no IPv4 address in /etc/hosts
14731 name
=> 'gateway_noipv4_ipv6',
14732 skip
=> skip_config_def1
('INET6') ||
14733 skip_no_ethers
() ||
14736 expr
=> 'gateway eth-noipv4-ipv6.host123.libpcap.test',
14737 errstr
=> 'unknown host', # no IPv4 address in /etc/hosts
14740 name
=> 'gateway_noeth',
14741 skip
=> skip_config_def1
('INET6') ||
14742 skip_no_ethers
() ||
14745 expr
=> 'gateway noeth-ipv4-noipv6.host123.libpcap.test',
14746 errstr
=> 'unknown ether host', # not in /etc/ethers
14749 name
=> 'src_gateway',
14750 skip
=> skip_config_def1
('INET6') ||
14751 skip_no_ethers
() ||
14754 expr
=> 'src gateway eth-ipv4-noipv6.host123.libpcap.test',
14755 errstr
=> 'syntax error',
14758 name
=> 'dst_gateway',
14759 skip
=> skip_config_def1
('INET6') ||
14760 skip_no_ethers
() ||
14763 expr
=> 'dst gateway eth-ipv4-noipv6.host123.libpcap.test',
14764 errstr
=> 'syntax error',
14767 name
=> 'src_proto_NUM',
14769 expr
=> 'src proto 1',
14770 errstr
=> 'syntax error',
14773 name
=> 'dst_proto_NUM',
14775 expr
=> 'dst proto 1',
14776 errstr
=> 'syntax error',
14779 name
=> 'src_proto_ID',
14781 expr
=> 'src proto \tcp',
14782 errstr
=> 'syntax error',
14785 name
=> 'dst_proto_ID',
14787 expr
=> 'dst proto \tcp',
14788 errstr
=> 'syntax error',
14791 name
=> 'src_protochain_NUM',
14793 expr
=> 'src protochain 1',
14794 errstr
=> 'syntax error',
14797 name
=> 'dst_protochain_NUM',
14799 expr
=> 'dst protochain 1',
14800 errstr
=> 'syntax error',
14803 name
=> 'src_protochain_ID',
14805 expr
=> 'src protochain \tcp',
14806 errstr
=> 'syntax error',
14809 name
=> 'dst_protochain_ID',
14811 expr
=> 'dst protochain \tcp',
14812 errstr
=> 'syntax error',
14814 # If "gateway" begins to support IPv6 in future, the reject tests below will
14815 # fail and will need to be replaced with accept tests.
14817 name
=> 'gateway_INET6',
14818 skip
=> skip_config_undef
('INET6'),
14820 expr
=> "gateway eth-ipv4-ipv6.host123.libpcap.test",
14821 errstr
=> 'not supported in this configuration',
14824 name
=> 'gateway_1',
14825 skip
=> skip_config_def1
('INET6'),
14827 expr
=> 'gateway 1',
14828 errstr
=> '\'gateway\' requires a name',
14831 name
=> 'gateway_1_2',
14832 skip
=> skip_config_def1
('INET6'),
14834 expr
=> 'gateway 1.2',
14835 errstr
=> '\'gateway\' requires a name',
14838 name
=> 'gateway_1_2_3',
14839 skip
=> skip_config_def1
('INET6'),
14841 expr
=> 'gateway 1.2.3',
14842 errstr
=> '\'gateway\' requires a name',
14845 name
=> 'gateway_1_2_3_4',
14846 skip
=> skip_config_def1
('INET6'),
14848 expr
=> 'gateway 1.2.3.4',
14849 errstr
=> '\'gateway\' requires a name',
14852 name
=> 'gateway_mac48',
14853 skip
=> skip_config_def1
('INET6'),
14855 expr
=> 'gateway 11:22:33:44:55:66',
14856 errstr
=> 'ethernet address used in non-ether expression',
14859 name
=> 'gateway_arcnet',
14860 skip
=> skip_config_def1
('INET6'),
14862 expr
=> 'gateway $af',
14863 errstr
=> 'aid supported only on ARCnet',
14866 name
=> 'index_size_neg',
14868 expr
=> 'link[0:-1] != 0',
14869 errstr
=> 'syntax error',
14872 name
=> 'index_size_0',
14874 expr
=> 'link[0:0] != 0',
14875 errstr
=> 'data size must be 1, 2, or 4',
14878 name
=> 'index_size_3',
14880 expr
=> 'link[0:3] != 0',
14881 errstr
=> 'data size must be 1, 2, or 4',
14884 name
=> 'index_size_5',
14886 expr
=> 'link[0:5] != 0',
14887 errstr
=> 'data size must be 1, 2, or 4',
14890 name
=> 'bare_radio',
14891 DLT
=> 'IEEE802_11_RADIO',
14893 errstr
=> '\'radio\' cannot be used as an abbreviation',
14896 name
=> 'bare_link',
14897 DLT
=> 'IEEE802_11_RADIO',
14899 errstr
=> '\'link\' cannot be used as an abbreviation',
14902 name
=> 'link_host_ipv4addr',
14904 expr
=> 'link host 1.2.3.4',
14905 errstr
=> 'illegal link layer address',
14908 name
=> 'link_net_ipv4addr',
14910 expr
=> 'link net 1.2.3.4',
14911 errstr
=> 'illegal link layer address',
14914 skip
=> skip_config_undef
('INET6'),
14915 name
=> 'link_host_ipv6addr',
14917 expr
=> 'link host fe80::',
14918 errstr
=> '\'link\' is not a valid qualifier for \'ip6 host\'',
14921 skip
=> skip_config_undef
('INET6'),
14922 name
=> 'link_net_ipv6addr',
14924 expr
=> 'link net fe80::',
14925 errstr
=> '\'link\' is not a valid qualifier for \'ip6 net\'',
14928 skip
=> skip_no_networks
(),
14929 name
=> 'link_net_ipv4name',
14931 expr
=> 'link net net-10-20-30-0.libpcap.test',
14932 errstr
=> '\'link\' is not a valid qualifier for \'ip net\'',
14935 name
=> 'reason_invalid_PFLOG',
14937 expr
=> 'reason invalid',
14938 errstr
=> 'unknown PF reason "invalid"',
14941 name
=> 'action_invalid_PFLOG',
14943 expr
=> 'action invalid',
14944 errstr
=> 'unknown PF action "invalid"',
14947 name
=> 'iso_proto_256',
14949 expr
=> 'iso proto 256',
14950 errstr
=> 'ISO protocol 256 greater than maximum 255',
14953 name
=> 'isis_proto_32',
14955 expr
=> 'isis proto 32',
14956 errstr
=> 'IS-IS PDU type 32 greater than maximum 31',
14961 expr
=> 'byte 1 != 2',
14962 errstr
=> 'syntax error',
14967 expr
=> 'byte 1 <= 2',
14968 errstr
=> 'syntax error',
14973 expr
=> 'byte 1 >= 2',
14974 errstr
=> 'syntax error',
14977 name
=> 'byte_xor',
14979 expr
=> 'byte 1 ^ 2',
14980 errstr
=> 'syntax error',
14983 name
=> 'byte_lsh',
14985 expr
=> 'byte 1 << 2',
14986 errstr
=> 'syntax error',
14989 name
=> 'byte_rsh',
14991 expr
=> 'byte 1 >> 2',
14992 errstr
=> 'syntax error',
14995 name
=> 'byte_eq_256',
14997 expr
=> 'byte 1 = 256',
14998 errstr
=> 'byte argument 256 greater than maximum 255',
15001 name
=> 'byte_lt_256',
15003 expr
=> 'byte 1 < 256',
15004 errstr
=> 'byte argument 256 greater than maximum 255',
15007 name
=> 'byte_gt_256',
15009 expr
=> 'byte 1 > 256',
15010 errstr
=> 'byte argument 256 greater than maximum 255',
15013 name
=> 'byte_and_256',
15015 expr
=> 'byte 1 & 256',
15016 errstr
=> 'byte argument 256 greater than maximum 255',
15019 name
=> 'byte_or_256',
15021 expr
=> 'byte 1 | 256',
15022 errstr
=> 'byte argument 256 greater than maximum 255',
15025 name
=> 'vxlan_invalid',
15027 expr
=> 'vxlan invalid',
15028 errstr
=> 'syntax error',
15031 name
=> 'vxlan_123456789',
15033 expr
=> 'vxlan 123456789',
15034 errstr
=> 'VXLAN VNI 123456789 greater than maximum 16777215',
15037 name
=> 'geneve_invalid',
15039 expr
=> 'geneve invalid',
15040 errstr
=> 'syntax error',
15043 name
=> 'geneve_123456789',
15045 expr
=> 'geneve 123456789',
15046 errstr
=> 'Geneve VNI 123456789 greater than maximum 16777215',
15050 name
=> 'link_proto_65536_C_HDLC',
15052 expr
=> 'link proto 65536',
15053 errstr
=> 'HDLC protocol 65536 greater than maximum 65535',
15056 name
=> 'link_proto_65536_PPP',
15058 expr
=> 'link proto 65536',
15059 errstr
=> 'PPP protocol 65536 greater than maximum 65535',
15062 name
=> 'link_proto_65536_PPP_BSDOS',
15063 DLT
=> 'PPP_BSDOS',
15064 expr
=> 'link proto 65536',
15065 errstr
=> 'PPP protocol 65536 greater than maximum 65535',
15068 name
=> 'link_proto_65536_APPLE_IP_OVER_IEEE1394',
15069 DLT
=> 'APPLE_IP_OVER_IEEE1394', # the default case
15070 expr
=> 'link proto 65536',
15071 errstr
=> 'EtherType 65536 greater than maximum 65535',
15073 # gen_ether_linktype()
15075 name
=> 'link_proto_65536_EN10MB',
15077 expr
=> 'link proto 65536',
15078 errstr
=> 'EtherType 65536 greater than maximum 65535',
15081 name
=> 'link_proto_1500_EN10MB',
15083 expr
=> 'link proto 1500',
15084 errstr
=> 'LLC DSAP 1500 greater than maximum 255',
15088 name
=> 'link_proto_65536_IP_OVER_FC',
15089 DLT
=> 'IP_OVER_FC',
15090 expr
=> 'link proto 65536',
15091 errstr
=> 'EtherType 65536 greater than maximum 65535',
15094 name
=> 'link_proto_1500_IP_OVER_FC',
15095 DLT
=> 'IP_OVER_FC',
15096 expr
=> 'link proto 1500',
15097 errstr
=> 'LLC DSAP 1500 greater than maximum 255',
15099 # gen_linux_sll_linktype
15101 name
=> 'link_proto_65536_LINUX_SLL',
15102 DLT
=> 'LINUX_SLL',
15103 expr
=> 'link proto 65536',
15104 errstr
=> 'EtherType 65536 greater than maximum 65535',
15107 name
=> 'link_proto_1500_LINUX_SLL',
15108 DLT
=> 'LINUX_SLL',
15109 expr
=> 'link proto 1500',
15110 errstr
=> 'LLC DSAP 1500 greater than maximum 255',
15114 # "proto" qualifiers without any lexer-level aliases (the entries correspond
15115 # to Q_LINK~Q_CARP from gencode.h and are ordered by name).
15116 my %pqual_features = (
15235 sub pqual_feature
{
15237 my $feature = shift;
15238 die if not exists $pqual_features{$name};
15239 return exists $pqual_features{$name}{$feature} && $pqual_features{$name}{$feature} == 1;
15243 return keys %pqual_features;
15247 my $feature = shift;
15249 foreach (pqual_names
) {
15250 next unless pqual_feature
$_, $feature;
15252 last if $only_short;
15257 sub pquals_without
{
15258 my $feature = shift;
15260 foreach (pqual_names
) {
15261 next if pqual_feature
$_, $feature;
15263 last if $only_short;
15268 # All DLTs pcap_datalink_name_to_val() recognizes, ordered by name.
15269 my %DLTfeatures = (
15276 APPLE_IP_OVER_IEEE1394
=> {
15277 link_proto
=> 1, # gen_linktype() default case
15281 link_broadcast
=> 1,
15282 link_multicast
=> 1,
15283 link_host_mac8
=> 1,
15287 link_broadcast
=> 1,
15288 link_multicast
=> 1,
15289 link_host_mac8
=> 1,
15307 BLUETOOTH_BREDR_BB
=> {
15309 BLUETOOTH_HCI_H4
=> {
15311 BLUETOOTH_HCI_H4_WITH_PHDR
=> {
15313 BLUETOOTH_LE_LL
=> {
15315 BLUETOOTH_LE_LL_WITH_PHDR
=> {
15317 BLUETOOTH_LINUX_MONITOR
=> {
15333 DISPLAYPORT_AUX
=> {
15337 DOCSIS31_XRA31
=> {
15341 DSA_TAG_BRCM_PREPEND
=> {
15355 link_broadcast
=> 1,
15356 link_multicast
=> 1,
15357 link_host_mac48
=> 1,
15374 ETHERNET_MPACKET
=> {
15380 FC_2_WITH_FRAME_DELIMS
=> {
15384 link_broadcast
=> 1,
15385 link_multicast
=> 1,
15386 link_host_mac48
=> 1,
15404 link_broadcast
=> 1,
15405 link_multicast
=> 1,
15406 link_host_mac48
=> 1,
15411 link_broadcast
=> 1,
15412 link_multicast
=> 1,
15413 link_host_mac48
=> 1,
15417 var_off_linkpl
=> 1,
15419 IEEE802_11_RADIO
=> {
15421 link_broadcast
=> 1,
15422 link_multicast
=> 1,
15423 link_host_mac48
=> 1,
15427 var_off_linkpl
=> 1,
15429 IEEE802_11_RADIO_AVS
=> {
15431 link_broadcast
=> 1,
15432 link_multicast
=> 1,
15433 link_host_mac48
=> 1,
15437 var_off_linkpl
=> 1,
15441 IEEE802_15_4_LINUX
=> {
15443 IEEE802_15_4_NOFCS
=> {
15445 IEEE802_15_4_NONASK_PHY
=> {
15447 IEEE802_15_4_TAP
=> {
15449 IEEE802_16_MAC_CPS
=> {
15451 IEEE802_16_MAC_CPS_RADIO
=> {
15467 link_broadcast
=> 1,
15468 link_multicast
=> 1,
15469 link_host_mac48
=> 1,
15487 JUNIPER_ATM_CEMIC
=> {
15503 JUNIPER_FIBRECHANNEL
=> {
15507 JUNIPER_FRELAY
=> {
15531 JUNIPER_MONITOR
=> {
15535 JUNIPER_PIC_PEER
=> {
15545 JUNIPER_PPPOE_ATM
=> {
15549 JUNIPER_SERVICES
=> {
15553 JUNIPER_SRX_E2E
=> {
15580 link_proto
=> 1, # gen_linktype() default case
15601 MTP2_WITH_PHDR
=> {
15610 link_broadcast
=> 1,
15611 link_multicast
=> 1,
15612 link_host_mac48
=> 1,
15616 NETANALYZER_NG
=> {
15618 NETANALYZER_TRANSPARENT
=> {
15620 link_broadcast
=> 1,
15621 link_multicast
=> 1,
15622 link_host_mac48
=> 1,
15654 link_broadcast
=> 1,
15655 link_multicast
=> 1,
15656 link_host_mac48
=> 1,
15659 var_off_linkpl
=> 1,
15680 link_broadcast
=> 1,
15681 link_multicast
=> 1,
15682 link_host_mac48
=> 1,
15686 var_off_linkpl
=> 1,
15705 SILABS_DEBUG_CHANNEL
=> {
15716 STANAG_5066_D_PDU
=> {
15723 SYMANTEC_FIREWALL
=> {
15724 link_proto
=> 1, # gen_linktype() default case
15726 TI_LLN_SNIFFER
=> {
15730 USB_2_0_FULL_SPEED
=> {
15732 USB_2_0_HIGH_SPEED
=> {
15734 USB_2_0_LOW_SPEED
=> {
15742 USB_LINUX_MMAPPED
=> {
15750 WATTSTOPPER_DLM
=> {
15767 return keys %DLTfeatures;
15772 my $feature = shift;
15773 die if not exists $DLTfeatures{$name};
15774 return exists $DLTfeatures{$name}{$feature} && $DLTfeatures{$name}{$feature} == 1;
15778 my $feature = shift;
15780 foreach (DLT_names
) {
15781 next unless DLT_feature
$_, $feature;
15783 last if $only_short;
15789 my $feature = shift;
15791 foreach (DLT_names
) {
15792 next if DLT_feature
$_, $feature;
15794 last if $only_short;
15799 # gen_load_internal() -> default
15800 foreach (pquals_without
'index') {
15801 push @reject_tests, {
15802 name
=> "noindex_${_}",
15804 expr
=> "${_}[0] == 0",
15805 errstr
=> "'${_}' does not support the index operation",
15809 # "link host IPV4ADDR" and "link net IPV4ADDR" use a different code path with
15810 # a different error message and are tested above. "link net NAME" uses yet
15811 # another different code path with yet another different error message and is
15812 # tested above. "(link|ip|rarp|arp|decnet|ip6) host" can be valid syntax or
15813 # not (depending on the primitive ID), which is tested above.
15814 foreach (pquals_without
'host') {
15815 # HID -> gen_ncode() -> gen_host() -> default
15816 push @reject_tests, {
15817 name
=> "inv_qual_${_}_host_ipv4addr",
15819 expr
=> "${_} host 1.2.3.4",
15820 errstr
=> "'${_}' is not a valid qualifier for 'ip host'",
15822 # HID -> gen_ncode() -> gen_host() -> default
15823 push @reject_tests, {
15824 name
=> "inv_qual_${_}_net_ipv4addr",
15826 expr
=> "${_} net 1.2.3.4",
15827 errstr
=> "'${_}' is not a valid qualifier for 'ip net'",
15829 # HID6 -> gen_mcode6() -> gen_host6() -> default
15830 push @reject_tests, {
15831 skip
=> skip_config_undef
('INET6'),
15832 name
=> "inv_qual_${_}_host_ipv6addr",
15834 expr
=> "${_} host fe80::",
15835 errstr
=> "'${_}' is not a valid qualifier for 'ip6 host'",
15837 # HID6 -> gen_mcode6() -> gen_host6() -> default
15838 push @reject_tests, {
15839 skip
=> skip_config_undef
('INET6'),
15840 name
=> "inv_qual_${_}_net_ipv6addr",
15842 expr
=> "${_} net fe80::",
15843 errstr
=> "'${_}' is not a valid qualifier for 'ip6 net'",
15846 # HID NETMASK HID -> gen_mcode() -> default
15847 push @reject_tests, {
15848 name
=> "inv_qual_${_}_host_ipv4mask",
15850 expr
=> "${_} host 1.2.3.0 mask 255.255.255.0",
15851 errstr
=> 'Mask syntax for networks only',
15853 # HID NETMASK HID -> gen_mcode() -> gen_host() -> default
15854 push @reject_tests, {
15855 name
=> "inv_qual_${_}_net_ipv4mask",
15857 expr
=> "${_} net 1.2.3.0 mask 255.255.255.0",
15858 errstr
=> "'${_}' is not a valid qualifier for 'ip net'",
15860 # ("mask" is IPv4-only)
15862 # HID '/' NUM -> gen_mcode() -> default
15863 push @reject_tests, {
15864 name
=> "inv_qual_${_}_host_ipv4cidr",
15866 expr
=> "${_} host 1.2.3.0/24",
15867 errstr
=> 'Mask syntax for networks only',
15869 # HID '/' NUM -> gen_mcode() -> gen_host() -> default
15870 push @reject_tests, {
15871 name
=> "inv_qual_${_}_net_ipv4cidr",
15873 expr
=> "${_} net 1.2.3.0/24",
15874 errstr
=> "'${_}' is not a valid qualifier for 'ip net'",
15876 # HID6 '/' NUM -> gen_mcode6() -> default
15877 push @reject_tests, {
15878 skip
=> skip_config_undef
('INET6'),
15879 name
=> "inv_qual_${_}_host_ipv6cidr",
15881 expr
=> "${_} host fe80::/16",
15882 errstr
=> 'Mask syntax for networks only',
15884 # HID6 '/' NUM -> gen_mcode6() -> gen_host6() -> default
15885 push @reject_tests, {
15886 skip
=> skip_config_undef
('INET6'),
15887 name
=> "inv_qual_${_}_net_ipv6cidr",
15889 expr
=> "${_} net fe80::/16",
15890 errstr
=> "'${_}' is not a valid qualifier for 'ip6 net'",
15893 # ID -> gen_scode() -> gen_host() -> default
15894 push @reject_tests, {
15895 skip
=> skip_no_hosts
(),
15896 name
=> "inv_qual_${_}_host_ipv4name",
15898 expr
=> "${_} host noeth-ipv4-noipv6.host123.libpcap.test",
15899 errstr
=> "'${_}' is not a valid qualifier for 'ip host'",
15901 # ID -> gen_scode() -> gen_host() -> default
15902 push @reject_tests, {
15903 skip
=> skip_no_networks
(),
15904 name
=> "inv_qual_${_}_net_ipv4name",
15906 expr
=> "${_} net net-10-20-30-0.libpcap.test",
15907 errstr
=> "'${_}' is not a valid qualifier for 'ip net'",
15909 # ID -> gen_scode() -> gen_host6() -> default
15910 push @reject_tests, {
15911 skip
=> skip_config_undef
('INET6') || skip_no_hosts
(),
15912 name
=> "inv_qual_${_}_host_ipv6name",
15914 expr
=> "${_} host noeth-noipv4-ipv6.host123.libpcap.test",
15915 errstr
=> "'${_}' is not a valid qualifier for 'ip6 host'",
15917 # (IPv6 networks cannot have names)
15920 # ID -> gen_scode() -> gen_gateway() -> default
15921 foreach (pquals_without
'gateway') {
15922 push @reject_tests, {
15923 skip
=> skip_config_def1
('INET6') ||
15924 skip_no_ethers
() ||
15926 name
=> "inv_qual_${_}_gateway_ipv4name",
15928 expr
=> "${_} gateway eth-ipv4-noipv6.host123.libpcap.test",
15929 errstr
=> "'${_}' is not a valid qualifier for 'gateway'",
15933 foreach my $pq (pqual_names
) {
15934 # HID -> gen_ncode() -> case Q_GATEWAY
15935 push @reject_tests, {
15936 name
=> "${pq}_gateway_HID",
15937 skip
=> skip_config_def1
('INET6'),
15939 expr
=> "$pq gateway 11.12.13.14",
15940 errstr
=> $pq eq 'decnet' ?
15941 'invalid DECnet address \'11.12.13.14\'' :
15942 '\'gateway\' requires a name',
15945 push @reject_tests, {
15946 name
=> "${pq}_${_}_HID",
15947 skip
=> $_ eq 'protochain' ? skip_config_def1
('NO_PROTOCHAIN') : '',
15949 expr
=> "$pq $_ 11.12.13.14",
15950 errstr
=> "'$_' qualifier applied to IPv4 address",
15951 } foreach qw(port portrange proto protochain);
15952 # HID '/' NUM -> gen_mcode() -> default
15953 push @reject_tests, {
15954 name
=> "${pq}_gateway_HID_NUM",
15956 expr
=> "$pq gateway 11.12.0.0/16",
15957 errstr
=> 'Mask syntax for networks only',
15960 push @reject_tests, {
15961 name
=> "${pq}_${_}_HID_NUM",
15962 skip
=> $_ eq 'protochain' ? skip_config_def1
('NO_PROTOCHAIN') : '',
15964 expr
=> "$pq $_ 11.12.0.0/16",
15965 errstr
=> "'$_' qualifier applied to IPv4 address and prefix length",
15966 } foreach qw(port portrange proto protochain);
15967 # HID NETMASK HID -> gen_mcode() -> default
15968 push @reject_tests, {
15969 name
=> "${pq}_gateway_HID_mask_HID",
15971 expr
=> "$pq gateway 11.12.0.0 mask 255.255.0.0",
15972 errstr
=> 'Mask syntax for networks only',
15975 push @reject_tests, {
15976 name
=> "${pq}_${_}_HID_mask_HID",
15977 skip
=> $_ eq 'protochain' ? skip_config_def1
('NO_PROTOCHAIN') : '',
15979 expr
=> "$pq $_ 11.12.0.0 mask 255.255.0.0",
15980 errstr
=> "'$_' qualifier applied to IPv4 address and netmask",
15981 } foreach qw(port portrange proto protochain);
15982 # HID6 -> gen_mcode6() -> default
15983 push @reject_tests, {
15984 name
=> "${pq}_gateway_HID6",
15985 skip
=> skip_config_undef
('INET6'),
15987 expr
=> "$pq gateway fe80::0",
15988 errstr
=> 'invalid qualifier against IPv6 address',
15991 push @reject_tests, {
15992 name
=> "${pq}_${_}_HID6",
15993 skip
=> $_ eq 'protochain' ?
15994 (skip_config_def1
('NO_PROTOCHAIN') || skip_config_undef
('INET6')) :
15995 skip_config_undef
('INET6'),
15997 expr
=> "$pq $_ fe80::0",
15998 errstr
=> "'$_' qualifier applied to IPv6 address",
15999 } foreach qw(port portrange proto protochain);
16000 # HID6 '/' NUM -> gen_mcode6() -> default
16001 push @reject_tests, {
16002 name
=> "${pq}_gateway_HID6_NUM",
16003 skip
=> skip_config_undef
('INET6'),
16005 expr
=> "$pq gateway fe80::0/64",
16006 errstr
=> 'invalid qualifier against IPv6 address',
16009 push @reject_tests, {
16010 name
=> "${pq}_${_}_HID6_NUM",
16011 skip
=> $_ eq 'protochain' ?
16012 (skip_config_def1
('NO_PROTOCHAIN') || skip_config_undef
('INET6')) :
16013 skip_config_undef
('INET6'),
16015 expr
=> "$pq $_ fe80::0/64",
16016 errstr
=> "'$_' qualifier applied to IPv6 address and prefix length",
16017 } foreach qw(port portrange proto protochain);
16018 last if $only_short;
16021 foreach (pquals_without
'protochain') {
16022 # pnum -> gen_ncode() -> case Q_PROTOCHAIN -> gen_protochain() -> default
16023 push @reject_tests, {
16024 name
=> "${_}_protochain_17",
16025 skip
=> skip_config_def1
('NO_PROTOCHAIN'),
16027 expr
=> "${_} protochain 17",
16028 errstr
=> $_ eq 'decnet' ?
16029 'invalid DECnet address \'17\'' :
16030 "'${_}' is not a valid qualifier for 'protochain'",
16032 # ID -> gen_scode() -> case Q_PROTOCHAIN -> lookup_proto()
16033 push @reject_tests, {
16034 name
=> "${_}_protochain_tcp",
16035 skip
=> skip_config_def1
('NO_PROTOCHAIN'),
16037 expr
=> "${_} protochain \\tcp",
16038 errstr
=> $_ eq 'iso' ?
'unknown osi proto \'tcp\'' :
16039 $_ eq 'link' ?
'unknown ether proto \'tcp\'' :
16040 'unknown protocol: tcp',
16044 foreach (pquals_without
'proto') {
16045 # pnum -> gen_ncode() -> case Q_PROTO -> gen_proto() -> default
16046 push @reject_tests, {
16047 name
=> "${_}_proto_17",
16049 expr
=> "${_} proto 17",
16050 errstr
=> $_ eq 'decnet' ?
16051 'invalid DECnet address \'17\'' :
16052 "'${_}' is not a valid qualifier for 'proto'",
16054 # ID -> gen_scode() -> case Q_PROTO -> lookup_proto()
16055 push @reject_tests, {
16056 name
=> "${_}_proto_tcp",
16058 expr
=> "${_} proto \\tcp",
16059 errstr
=> 'unknown protocol: tcp',
16061 last if $only_short;
16064 # Use a separate foreach loop for each feature because different loops skip
16065 # different DLTs and can terminate early.
16067 # gen_linktype() -> default
16068 foreach (DLTs_without
'link_proto') {
16069 push @reject_tests, {
16070 name
=> "link_proto_1_${_}",
16072 expr
=> 'link proto 1',
16073 errstr
=> 'link-layer type filtering not implemented for',
16077 # gen_broadcast() -> case Q_LINK -> default
16078 foreach (DLTs_without
'link_broadcast') {
16079 push @reject_tests, {
16080 name
=> "link_broadcast_${_}",
16082 expr
=> 'link broadcast',
16083 errstr
=> '\'broadcast\' not supported on',
16087 # gen_multicast() -> case Q_LINK -> default
16088 foreach (DLTs_without
'link_multicast') {
16089 push @reject_tests, {
16090 name
=> "link_multicast_${_}",
16092 expr
=> 'link multicast',
16093 errstr
=> '\'multicast\' not supported on',
16097 # gen_vlan() -> default
16098 foreach (DLTs_without
'vlan') {
16099 push @reject_tests, {
16100 name
=> "vlan_${_}",
16103 errstr
=> 'no VLAN support for',
16107 # gen_mpls_internal() -> default
16108 foreach (DLTs_without
'mpls') {
16109 push @reject_tests, {
16110 name
=> "mpls_${_}",
16113 errstr
=> 'no MPLS support for',
16117 # gen_llc_internal() -> default
16118 foreach (DLTs_without
'llc') {
16119 push @reject_tests, {
16120 name
=> "llc_${_}",
16123 errstr
=> '\'llc\' not supported on',
16127 foreach (DLTs_without
'wlan') {
16128 # gen_p80211_type() -> default
16129 push @reject_tests, {
16130 name
=> "type_data_${_}",
16132 expr
=> 'type data',
16133 errstr
=> '\'type/subtype\' not supported on',
16135 # gen_p80211_fcdir() -> default
16136 push @reject_tests, {
16137 name
=> "dir_fromds_${_}",
16139 expr
=> 'dir fromds',
16140 errstr
=> '\'dir\' not supported on',
16144 # gen_acode() -> default
16145 foreach (DLTs_without
'link_host_mac8') {
16146 push @reject_tests, {
16147 name
=> "link_host_21_${_}",
16149 expr
=> 'link host $21',
16150 errstr
=> 'aid supported only on ARCnet',
16154 # assert_ss7() -> default
16155 foreach (DLTs_without
'ss7') {
16156 push @reject_tests, {
16157 name
=> "fisu_${_}",
16160 errstr
=> '\'fisu\' supported only on SS7',
16164 foreach (DLTs_without
'link_host_mac48') {
16165 # gen_gateway() -> case Q_DEFAULT -> default
16166 push @reject_tests, {
16167 name
=> "gateway_name_${_}",
16168 skip
=> skip_config_def1
('INET6') ||
16169 skip_no_ethers
() ||
16172 expr
=> 'gateway eth-ipv4-noipv6.host123.libpcap.test',
16173 errstr
=> '\'gateway\' supported only on ethernet/FDDI/token ring/802.11/ATM LANE/Fibre Channel',
16175 # gen_scode() -> case Q_DEFAULT -> Q_LINK
16176 push @reject_tests, {
16177 name
=> "link_host_name_${_}",
16178 skip
=> skip_no_ethers
(),
16180 expr
=> 'link host eth-noipv4-noipv6.host123.libpcap.test',
16181 errstr
=> 'only ethernet/FDDI/token ring/802.11/ATM LANE/Fibre Channel supports link-level host name',
16185 # gen_inbound_outbound() -> default
16186 foreach (DLTs_without
'inout') {
16187 push @reject_tests, {
16188 name
=> "inbound_linux_${_}",
16189 skip
=> skip_os_not
('linux'),
16192 errstr
=> 'not a live capture',
16194 push @reject_tests, {
16195 name
=> "outbound_linux_${_}",
16196 skip
=> skip_os_not
('linux'),
16198 expr
=> 'outbound',
16199 errstr
=> 'not a live capture',
16201 push @reject_tests, {
16202 name
=> "inbound_other_${_}",
16203 skip
=> skip_os
('linux'),
16206 errstr
=> 'not supported on',
16208 push @reject_tests, {
16209 name
=> "outbound_other_${_}",
16210 skip
=> skip_os
('linux'),
16212 expr
=> 'outbound',
16213 errstr
=> 'not supported on',
16217 # assert_pflog() -> default
16218 foreach (DLTs_without
'pflog') {
16219 push @reject_tests, {
16220 name
=> "reason_congestion_${_}",
16222 expr
=> 'reason congestion',
16223 errstr
=> '\'reason\' supported only on PFLOG linktype',
16227 # assert_atm() -> default
16228 foreach (DLTs_without
'atm') {
16229 push @reject_tests, {
16230 name
=> "vpi_1_${_}",
16233 errstr
=> '\'vpi\' supported only on SUNATM',
16237 # gen_ifindex -> default
16238 foreach (DLTs_without
'ifindex') {
16239 push @reject_tests, {
16240 name
=> "ifindex_1_${_}",
16241 skip
=> skip_os
('linux'),
16243 expr
=> 'ifindex 1',
16244 errstr
=> '\'ifindex\' not supported on',
16246 push @reject_tests, {
16247 name
=> "ifindex_2_${_}",
16248 skip
=> skip_os_not
('linux'),
16250 expr
=> 'ifindex 2',
16251 errstr
=> 'not a live capture',
16255 # the prerequisite in gen_protochain()
16256 foreach (DLTs_with
'var_off_linkpl') {
16257 push @reject_tests, {
16258 name
=> "protochain_4_${_}",
16259 skip
=> skip_config_def1
('NO_PROTOCHAIN'),
16261 expr
=> 'protochain 4',
16262 errstr
=> '\'protochain\' not supported with variable length headers',
16266 sub accept_test_label
{
16267 return join '_', ('accept', @_);
16270 sub apply_test_label
{
16271 return join '_', ('apply', @_);
16274 sub reject_test_label
{
16275 return join '_', ('reject', @_);
16278 sub time_test_command
{
16279 my $cmdline = join ' ', @_;
16282 if (! $print_passed) {
16283 $r = system $cmdline;
16285 my $t0 = Time
::HiRes
::time;
16286 $r = system $cmdline;
16287 $T = Time
::HiRes
::time - $t0;
16289 return ($r >>= 8, $T);
16292 sub validate_stdout_test
{
16293 my ($r, $T) = time_test_command
@_;
16295 return result_timed_out
'filtertest timeout' if $r == TIMED_OUT
;
16297 return result_failed
(
16298 'filtertest error',
16299 file_get_contents mytmpfile
$filename_stdout
16302 return result_failed
(
16304 file_get_contents mytmpfile
$filename_diags
16305 ) if system sprintf "diff $diff_flags %s %s >%s 2>&1",
16306 mytmpfile
($filename_expected),
16307 mytmpfile
($filename_stdout),
16308 mytmpfile
($filename_diags);
16310 return result_passed
$T;
16313 sub common_filtertest_args
{
16315 # BSD timeout(1) does not implement --verbose.
16316 my @args = defined $timeout_bin ?
($timeout_bin, $test_timeout) : ();
16317 push @args, $filtertest;
16318 push @args, ('-s', $test->{snaplen
}) if defined $test->{snaplen
};
16319 push @args, ('-m', $test->{netmask
}) if defined $test->{netmask
};
16320 push @args, '-O' unless $test->{optimize
};
16321 push @args, '-l' if $test->{linuxext
};
16325 sub run_accept_test
{
16327 my @args = common_filtertest_args
$test;
16328 # Write the filter expression to a file because the version of
16329 # system() that takes a list does not support redirecting stdout,
16330 # and the version of system() that takes a string does not escape
16331 # special characters in the filter expression, which becomes
16332 # invalid shell syntax.
16333 file_put_contents mytmpfile
($filename_filter), $test->{expr
};
16334 file_put_contents mytmpfile
($filename_expected), $test->{expected
};
16337 mytmpfile
($filename_filter),
16339 '>' . mytmpfile
($filename_stdout),
16342 return validate_stdout_test
@args;
16345 sub run_apply_test
{
16347 my @args = common_filtertest_args
$test;
16348 file_put_contents mytmpfile
($filename_filter), $test->{expr
};
16349 file_put_contents mytmpfile
($filename_expected), $test->{expected
};
16352 mytmpfile
($filename_filter),
16354 SAVEFILE_DIR
. $test->{savefile
},
16355 '>' . mytmpfile
($filename_stdout),
16358 return validate_stdout_test
@args;
16361 sub run_reject_test
{
16363 my @args = common_filtertest_args
$test;
16364 file_put_contents mytmpfile
($filename_filter), $test->{expr
};
16367 mytmpfile
($filename_filter),
16369 '>' . mytmpfile
($filename_stdout),
16372 my ($r, $T) = time_test_command
@args;
16374 return result_failed
(
16375 'no filtertest error',
16376 file_get_contents mytmpfile
$filename_stdout
16379 return result_timed_out
'filtertest timeout' if $r == TIMED_OUT
;
16381 return result_failed
(
16382 "filtertest status $r",
16383 file_get_contents mytmpfile
$filename_stdout
16384 ) if $r != EX_DATAERR
;
16386 return result_failed
(
16387 'error string mismatch',
16388 file_get_contents mytmpfile
$filename_stdout
16389 ) if ! string_in_file
($test->{expected
}, mytmpfile
$filename_stdout);
16391 return result_passed
$T;
16394 # Sort all hash elements by key, otherwise the pseudo-random ordering in Perl
16395 # hashes will make it difficult to compare outputs of two invocations.
16396 # Validate all accept test blocks and all reject tests, decide if this is a
16397 # "run all tests" or a "run only this specific test or test block" invocation
16398 # and produce the required test(s) using appropriate permutations of the main
16399 # expression, any aliases and the bytecode version (optimized/unoptimized).
16401 # The resulting flat ordered list of tests includes all skipped tests at their
16402 # original positions, this makes it simple to distribute the tests and to
16403 # collect the results preserving the ordering.
16405 foreach my $test (@accept_blocks) {
16406 if (! defined $test->{name
} || $test->{name
} eq '') {
16407 die "Internal error: accept test block <UNKNOWN> does not define key 'name'";
16409 foreach ('DLT', 'aliases') {
16410 next if defined $test->{$_};
16411 die "Internal error: accept test block '$test->{name}' does not define key '$_'";
16413 if ($test->{DLT
} eq '') {
16414 die "Internal error: key 'DLT' is an empty string in apply test block '$test->{name}'";
16416 if (! scalar @
{$test->{aliases
}}) {
16417 die "Internal error: accept test block '$test->{name}' defines zero aliases";
16419 my %unique = map {$_ => 1} @
{$test->{aliases
}};
16420 if (scalar (keys %unique) != scalar @
{$test->{aliases
}}) {
16421 die "Internal error: accept test block '$test->{name}' defines duplicate aliases";
16424 if (! defined $test->{unopt
} && ! defined $test->{opt
}) {
16425 die "Internal error: accept test block '$test->{name}' defines neither 'unopt' nor 'opt'";
16427 # Make the number of skip requests equal to the number of tests, but
16428 # provide the reason for the first skip request only. This avoid wasting
16429 # the vertical scroll space when skipping test blocks with many aliases.
16430 my $skip_reason = (defined $test->{skip
} && $test->{skip
} ne '') ?
16431 $test->{skip
} : undef;
16432 foreach my $optunopt ('unopt', 'opt') {
16433 next unless defined $test->{$optunopt};
16435 if (defined $skip_reason) {
16437 foreach (@
{$test->{aliases
}}) {
16438 my $label = accept_test_label
$test->{name
}, $optunopt, $i++;
16439 next if defined $only_one && $only_one ne $label;
16440 push @ready_to_run, {
16442 func
=> \
&run_skip_test
,
16443 skip
=> $print_skipped ?
$skip_reason : '',
16448 # Dedent and trim to restore the format of bpf_dump().
16449 my $multiline = '';
16450 foreach (split /^/o, $test->{$optunopt}) {
16451 $multiline .= "$1\n" if /^[\t]*(\(.+)$/o;
16454 foreach (@
{$test->{aliases
}}) {
16455 my $label = accept_test_label
$test->{name
}, $optunopt, $i++;
16456 next if defined $only_one && $only_one ne $label;
16457 push @ready_to_run, {
16459 func
=> \
&run_accept_test
,
16460 DLT
=> $test->{DLT
},
16462 snaplen
=> defined $test->{snaplen
} ?
$test->{snaplen
} : undef,
16463 netmask
=> defined $test->{netmask
} ?
$test->{netmask
} : undef,
16464 optimize
=> int ($optunopt eq 'opt'),
16465 linuxext
=> defined $test->{linuxext
} && $test->{linuxext
} == 1,
16466 expected
=> $multiline,
16472 foreach my $block (@apply_blocks) {
16473 if (! defined $block->{name
} || $block->{name
} eq '') {
16474 die "Internal error: apply test block <UNKNOWN> does not define key 'name'";
16476 foreach ('savefile', 'expr', 'results') {
16477 next if defined $block->{$_};
16478 die "Internal error: apply test block '$block->{name}' does not define key '$_'";
16480 foreach ('savefile', 'expr') {
16481 next if $block->{$_} ne '';
16482 die "Internal error: key '$_' is an empty string in apply test block '$block->{name}'";
16484 if (! scalar @
{$block->{results
}}) {
16485 die "Internal error: apply test block '$block->{name}' defines zero results";
16487 my $skip_reason = (defined $block->{skip
} && $block->{skip
} ne '') ?
16488 $block->{skip
} : undef;
16489 # Convert the array to filtertest output format.
16490 my $multiline = join ("\n", @
{$block->{results
}}) . "\n";
16491 foreach my $optunopt ('unopt', 'opt') {
16492 my $label = apply_test_label
($block->{name
}, $optunopt);
16493 next if defined $only_one && $only_one ne $label;
16495 if (defined $skip_reason) {
16496 push @ready_to_run, {
16498 func
=> \
&run_skip_test
,
16499 skip
=> $print_skipped ?
$skip_reason : '',
16505 push @ready_to_run, {
16507 func
=> \
&run_apply_test
,
16508 netmask
=> defined $block->{netmask
} ?
$block->{netmask
} : undef,
16509 optimize
=> int ($optunopt eq 'opt'),
16510 expr
=> $block->{expr
},
16511 expected
=> $multiline,
16512 savefile
=> $block->{savefile
},
16516 foreach my $test (@reject_tests) {
16517 if (! defined $test->{name
} || $test->{name
} eq '') {
16518 die "Internal error: reject test <UNKNOWN> does not define key 'name'";
16520 foreach ('DLT', 'expr', 'errstr') {
16521 next if defined $test->{$_} && $test->{$_} ne '';
16522 die "Internal error: reject test '$test->{name}' does not define key '$_'";
16524 my $label = reject_test_label
$test->{name
};
16525 next if defined $only_one && $only_one ne $label;
16527 if (defined $test->{skip
} && $test->{skip
} ne '') {
16528 push @ready_to_run, {
16530 func
=> \
&run_skip_test
,
16531 skip
=> $print_skipped ?
$test->{skip
} : '',
16534 push @ready_to_run, {
16536 func
=> \
&run_reject_test
,
16537 DLT
=> $test->{DLT
},
16538 netmask
=> defined $test->{netmask
} ?
$test->{netmask
} : undef,
16539 expr
=> $test->{expr
},
16540 expected
=> $test->{errstr
},
16545 if (! scalar @ready_to_run) {
16546 die "ERROR: Unknown test label '${only_one}'" if defined $only_one;
16547 die 'Internal error: no tests defined to run!'
16550 print $_->{label
} . "\n" foreach @ready_to_run;
16554 $diff_flags = get_diff_flags
;
16556 $filtertest = defined $ENV{FILTERTEST_BIN
} ?
$ENV{FILTERTEST_BIN
} :
16557 string_in_file
('/* cmakeconfig.h.in */', $config_h) ?
'./run/filtertest' :
16558 './testprogs/filtertest';
16560 # In this libpcap version "filtertest -h" prints to stdout and exits normally.
16561 if (system ("$filtertest -h >/dev/null 2>&1") >> 8) {
16562 # Make it easier to see what the problem is.
16563 system $filtertest;
16564 print STDERR
"ERROR: $filtertest is not usable\n";
16568 # Every test in this file uses an expression that under normal conditions takes
16569 # well under one second to process, so if a filtertest invocation is taking
16570 # longer, it is likely a regression. Or an invocation via Valgrind, which
16571 # demands a sensible host-specific override of the timeout value.
16572 $test_timeout = defined $ENV{FILTERTEST_TIMEOUT
} ?
16573 $ENV{FILTERTEST_TIMEOUT
} : 1;
16575 if ($test_timeout eq '0') {
16576 print "INFO: Not using a test timeout (FILTERTEST_TIMEOUT=0).\n";
16577 } elsif (defined $ENV{TIMEOUT_BIN
}) {
16578 $timeout_bin = $ENV{TIMEOUT_BIN
};
16579 if (system ($timeout_bin, '0.1', 'sleep', '10') >> 8 != TIMED_OUT
) {
16580 print STDERR
"ERROR: TIMEOUT_BIN='$timeout_bin' is not usable.\n";
16583 print "INFO: Using a test timeout of $test_timeout (TIMEOUT_BIN='$timeout_bin').\n";
16584 } elsif (system ('timeout', '0.1', 'sleep', '10') >> 8 != TIMED_OUT
) {
16585 print "WARNING: Not using a test timeout (the default 'timeout' is not usable).\n";
16587 $timeout_bin = 'timeout';
16588 printf "INFO: Using a test timeout of %s.\n", $test_timeout;
16591 init_tmpdir
'libpcap_TESTrun';
16592 exit test_and_report
@ready_to_run;