From e74cbbf77484528334e5137d73a1e041d9206590 Mon Sep 17 00:00:00 2001 From: Jon Siwek Date: Mon, 12 Mar 2012 15:26:51 -0500 Subject: [PATCH 1/3] Add unit test for IPv6 fragment reassembly. --- testing/btest/Baseline/core.ipv6-frag/dns.log | 9 +++++++++ testing/btest/Baseline/core.ipv6-frag/output | 5 +++++ testing/btest/Traces/ipv6-fragmented-dns.trace | Bin 0 -> 4772 bytes testing/btest/core/ipv6-frag.test | 9 +++++++++ 4 files changed, 23 insertions(+) create mode 100644 testing/btest/Baseline/core.ipv6-frag/dns.log create mode 100644 testing/btest/Baseline/core.ipv6-frag/output create mode 100755 testing/btest/Traces/ipv6-fragmented-dns.trace create mode 100644 testing/btest/core/ipv6-frag.test diff --git a/testing/btest/Baseline/core.ipv6-frag/dns.log b/testing/btest/Baseline/core.ipv6-frag/dns.log new file mode 100644 index 0000000000..50c9684bac --- /dev/null +++ b/testing/btest/Baseline/core.ipv6-frag/dns.log @@ -0,0 +1,9 @@ +#separator \x09 +#set_separator , +#empty_field (empty) +#unset_field - +#path dns +#fields ts uid id.orig_h id.orig_p id.resp_h id.resp_p proto trans_id query qclass qclass_name qtype qtype_name rcode rcode_name QR AA TC RD RA Z answers TTLs +#types time string addr port addr port enum count string count string count string count string bool bool bool bool bool count vector[string] vector[interval] +1331084278.438444 UWkUyAuUGXf 2001:470:1f11:81f:d138:5f55:6d4:1fe2 51850 2607:f740:b::f93 53 udp 3903 txtpadding_323.n1.netalyzr.icsi.berkeley.edu 1 C_INTERNET 16 TXT 0 NOERROR F T F T F 0 This TXT record should be ignored 1.000000 +1331084293.592245 arKYeMETxOg 2001:470:1f11:81f:d138:5f55:6d4:1fe2 51851 2607:f740:b::f93 53 udp 40849 txtpadding_3230.n1.netalyzr.icsi.berkeley.edu 1 C_INTERNET 16 TXT 0 NOERROR F T F T F 0 This TXT record should be ignored 1.000000 diff --git a/testing/btest/Baseline/core.ipv6-frag/output b/testing/btest/Baseline/core.ipv6-frag/output new file mode 100644 index 0000000000..5020d94e8d --- /dev/null +++ b/testing/btest/Baseline/core.ipv6-frag/output @@ -0,0 +1,5 @@ +ip6=[hdr=[class=0, flow=0, len=81, nxt=17, hlim=64, src=2001:470:1f11:81f:d138:5f55:6d4:1fe2, dst=2607:f740:b::f93], hopopts=[], dstopts=[], routing=[], fragment=[], ah=[], esp=[], ext_order=[]], udp = [sport=51850/udp, dport=53/udp, ulen=81] +ip6=[hdr=[class=0, flow=0, len=331, nxt=17, hlim=53, src=2607:f740:b::f93, dst=2001:470:1f11:81f:d138:5f55:6d4:1fe2], hopopts=[], dstopts=[], routing=[], fragment=[], ah=[], esp=[], ext_order=[]], udp = [sport=53/udp, dport=51850/udp, ulen=331] +ip6=[hdr=[class=0, flow=0, len=82, nxt=17, hlim=64, src=2001:470:1f11:81f:d138:5f55:6d4:1fe2, dst=2607:f740:b::f93], hopopts=[], dstopts=[], routing=[], fragment=[], ah=[], esp=[], ext_order=[]], udp = [sport=51851/udp, dport=53/udp, ulen=82] +ip6=[hdr=[class=0, flow=0, len=82, nxt=17, hlim=64, src=2001:470:1f11:81f:d138:5f55:6d4:1fe2, dst=2607:f740:b::f93], hopopts=[], dstopts=[], routing=[], fragment=[], ah=[], esp=[], ext_order=[]], udp = [sport=51851/udp, dport=53/udp, ulen=82] +ip6=[hdr=[class=0, flow=0, len=3238, nxt=17, hlim=53, src=2607:f740:b::f93, dst=2001:470:1f11:81f:d138:5f55:6d4:1fe2], hopopts=[], dstopts=[], routing=[], fragment=[], ah=[], esp=[], ext_order=[]], udp = [sport=53/udp, dport=51851/udp, ulen=3238] diff --git a/testing/btest/Traces/ipv6-fragmented-dns.trace b/testing/btest/Traces/ipv6-fragmented-dns.trace new file mode 100755 index 0000000000000000000000000000000000000000..9dda47a8a9f6a4b89c12c3b26577aad3f6effc86 GIT binary patch literal 4772 zcmca|c+)~A1{MYw`2U}Qff300wmZy!%?37xb|4#sZx|$b9Nl_EhuJ!3RomSJpa?^t zpo0PpHckwKr=zc0!hA-ijsoF zl$6Z8^mt<8#GJ~iB9_eL;!KXD)S~RvoYYF@)Ra;N1_6*hO#z_J1|SAG ztKb<7o)dQ2fuwQ$XOuBM7pyM@IV{~)O}Df zBqOs}AtWM1p(r&uzbHkaI3vF_Cq*GCRUtDyFTW@?MbxoaA+tmQs4A9 z1RRiNU;=uCfgy!KkgX^`CowMt7#o>I%=ty>Kv8%E925r!7f2n;foZ$tS@(qbmvVA4 zbO05BFqU)@L_|922Bwpsoz3$n0-XSI1(4)NO(zDVB@~dm4yJH1OaYn(!dMbYoDRW+ zBFMlU0CEdWBk2H5O{at52V{s#J7output +# @TEST-EXEC: btest-diff output +# @TEST-EXEC: btest-diff dns.log + +event new_packet(c: connection, p: pkt_hdr) + { + if ( p?$ip6 && p?$ udp ) + print fmt("ip6=%s, udp = %s", p$ip6, p$udp); + } From 7af14ec1fe0ff4ed4088f127eeae2eeb79eac887 Mon Sep 17 00:00:00 2001 From: Jon Siwek Date: Wed, 14 Mar 2012 10:00:48 -0500 Subject: [PATCH 2/3] Remove the default "tcp or udp or icmp" filter. In default mode, Bro would load the packet filter script framework which installs a filter that allows all packets, but in bare mode (the -b option), this old filter would not follow IPv6 protocol chains and thus filter out packets with extension headers. --- src/main.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main.cc b/src/main.cc index 6313528980..f5a5b5282f 100644 --- a/src/main.cc +++ b/src/main.cc @@ -837,7 +837,7 @@ int main(int argc, char** argv) if ( dns_type != DNS_PRIME ) net_init(interfaces, read_files, netflows, flow_files, - writefile, "tcp or udp or icmp", + writefile, "", secondary_path->Filter(), do_watchdog); BroFile::SetDefaultRotation(log_rotate_interval, log_max_size); From 5312a904ab2e1a242a03486b8ed2b59e2f274514 Mon Sep 17 00:00:00 2001 From: Jon Siwek Date: Wed, 14 Mar 2012 10:31:08 -0500 Subject: [PATCH 3/3] Fix ipv6_ext_headers event and add routing0_data_to_addrs BIF. Also add unit tests for ipv6_ext_headers and esp_packet events. --- src/Sessions.cc | 2 +- src/bro.bif | 32 +++++ .../bifs.routing0_data_to_addrs/output | 4 + testing/btest/Baseline/core.ipv6_esp/output | 120 ++++++++++++++++++ .../Baseline/core.ipv6_ext_headers/output | 1 + .../btest/Traces/ext_hdr_hbh_routing.trace | Bin 0 -> 153 bytes testing/btest/Traces/ip6_esp.trace | Bin 0 -> 20210 bytes .../btest/bifs/routing0_data_to_addrs.test | 9 ++ testing/btest/core/ipv6_esp.test | 10 ++ testing/btest/core/ipv6_ext_headers.test | 10 ++ 10 files changed, 187 insertions(+), 1 deletion(-) create mode 100644 testing/btest/Baseline/bifs.routing0_data_to_addrs/output create mode 100644 testing/btest/Baseline/core.ipv6_esp/output create mode 100644 testing/btest/Baseline/core.ipv6_ext_headers/output create mode 100644 testing/btest/Traces/ext_hdr_hbh_routing.trace create mode 100644 testing/btest/Traces/ip6_esp.trace create mode 100644 testing/btest/bifs/routing0_data_to_addrs.test create mode 100644 testing/btest/core/ipv6_esp.test create mode 100644 testing/btest/core/ipv6_ext_headers.test diff --git a/src/Sessions.cc b/src/Sessions.cc index b4115f5c16..e70540b598 100644 --- a/src/Sessions.cc +++ b/src/Sessions.cc @@ -594,7 +594,7 @@ void NetSessions::DoNextPacket(double t, const struct pcap_pkthdr* hdr, if ( ipv6_ext_headers && ip_hdr->NumHeaders() > 1 ) { pkt_hdr_val = ip_hdr->BuildPktHdrVal(); - conn->Event(new_packet, 0, pkt_hdr_val); + conn->Event(ipv6_ext_headers, 0, pkt_hdr_val); } if ( new_packet ) diff --git a/src/bro.bif b/src/bro.bif index ff06288940..375a1c64c1 100644 --- a/src/bro.bif +++ b/src/bro.bif @@ -2049,6 +2049,38 @@ function is_v6_addr%(a: addr%): bool # # =========================================================================== +## Converts the *data* field of :bro:type:`ip6_routing` records that have +## *rtype* of 0 into a set of addresses. +## +## s: The *data* field of an :bro:type:`ip6_routing` record that has +## an *rtype* of 0. +## +## Returns: The set of addresses contained in the routing header data. +function routing0_data_to_addrs%(s: string%): addr_set + %{ + BroType* index_type = base_type(TYPE_ADDR); + TypeList* set_index = new TypeList(index_type); + set_index->Append(index_type); + TableVal* tv = new TableVal(new SetType(set_index, 0)); + + int len = s->Len(); + const u_char* bytes = s->Bytes(); + bytes += 4; // go past 32-bit reserved field + len -= 4; + if ( ( len % 16 ) != 0 ) + reporter->Warning("Bad ip6_routing data length: %d", s->Len()); + + while ( len > 0 ) + { + IPAddr a(IPAddr::IPv6, (const uint32*) bytes, IPAddr::Network); + tv->Assign(new AddrVal(a), 0); + bytes += 16; + len -= 16; + } + + return tv; + %} + ## Converts a :bro:type:`addr` to a :bro:type:`index_vec`. ## ## a: The address to convert into a vector of counts. diff --git a/testing/btest/Baseline/bifs.routing0_data_to_addrs/output b/testing/btest/Baseline/bifs.routing0_data_to_addrs/output new file mode 100644 index 0000000000..7179bf8564 --- /dev/null +++ b/testing/btest/Baseline/bifs.routing0_data_to_addrs/output @@ -0,0 +1,4 @@ +{ +2001:78:1:32::1, +2001:78:1:32::2 +} diff --git a/testing/btest/Baseline/core.ipv6_esp/output b/testing/btest/Baseline/core.ipv6_esp/output new file mode 100644 index 0000000000..645b4c8c56 --- /dev/null +++ b/testing/btest/Baseline/core.ipv6_esp/output @@ -0,0 +1,120 @@ +[ip=, ip6=[hdr=[class=0, flow=0, len=116, nxt=50, hlim=64, src=3ffe::1, dst=3ffe::2], hopopts=[], dstopts=[], routing=[], fragment=[], ah=[], esp=[[spi=10, seq=1]], ext_order=[50]], tcp=, udp=, icmp=] +[ip=, ip6=[hdr=[class=0, flow=0, len=116, nxt=50, hlim=64, src=3ffe::1, dst=3ffe::2], hopopts=[], dstopts=[], routing=[], fragment=[], ah=[], esp=[[spi=10, seq=2]], ext_order=[50]], tcp=, udp=, icmp=] +[ip=, ip6=[hdr=[class=0, flow=0, len=116, nxt=50, hlim=64, src=3ffe::1, dst=3ffe::2], hopopts=[], dstopts=[], routing=[], fragment=[], ah=[], esp=[[spi=10, seq=3]], ext_order=[50]], tcp=, udp=, icmp=] +[ip=, ip6=[hdr=[class=0, flow=0, len=116, nxt=50, hlim=64, src=3ffe::1, dst=3ffe::2], hopopts=[], dstopts=[], routing=[], fragment=[], ah=[], esp=[[spi=10, seq=4]], ext_order=[50]], tcp=, udp=, icmp=] +[ip=, ip6=[hdr=[class=0, flow=0, len=116, nxt=50, hlim=64, src=3ffe::1, dst=3ffe::2], hopopts=[], dstopts=[], routing=[], fragment=[], ah=[], esp=[[spi=10, seq=5]], ext_order=[50]], tcp=, udp=, icmp=] +[ip=, ip6=[hdr=[class=0, flow=0, len=116, nxt=50, hlim=64, src=3ffe::1, dst=3ffe::2], hopopts=[], dstopts=[], routing=[], fragment=[], ah=[], esp=[[spi=10, seq=6]], ext_order=[50]], tcp=, udp=, icmp=] +[ip=, ip6=[hdr=[class=0, flow=0, len=116, nxt=50, hlim=64, src=3ffe::1, dst=3ffe::2], hopopts=[], dstopts=[], routing=[], fragment=[], ah=[], esp=[[spi=10, seq=7]], ext_order=[50]], tcp=, udp=, icmp=] +[ip=, ip6=[hdr=[class=0, flow=0, len=116, nxt=50, hlim=64, src=3ffe::1, dst=3ffe::2], hopopts=[], dstopts=[], routing=[], fragment=[], ah=[], esp=[[spi=10, seq=8]], ext_order=[50]], tcp=, udp=, icmp=] +[ip=, ip6=[hdr=[class=0, flow=0, len=116, nxt=50, hlim=64, src=3ffe::1, dst=3ffe::2], hopopts=[], dstopts=[], routing=[], fragment=[], ah=[], esp=[[spi=10, seq=9]], ext_order=[50]], tcp=, udp=, icmp=] +[ip=, ip6=[hdr=[class=0, flow=0, len=116, nxt=50, hlim=64, src=3ffe::1, dst=3ffe::2], hopopts=[], dstopts=[], routing=[], fragment=[], ah=[], esp=[[spi=10, seq=10]], ext_order=[50]], tcp=, udp=, icmp=] +[ip=, ip6=[hdr=[class=0, flow=0, len=100, nxt=50, hlim=64, src=3ffe::1, dst=3ffe::3], hopopts=[], dstopts=[], routing=[], fragment=[], ah=[], esp=[[spi=11, seq=1]], ext_order=[50]], tcp=, udp=, icmp=] +[ip=, ip6=[hdr=[class=0, flow=0, len=100, nxt=50, hlim=64, src=3ffe::1, dst=3ffe::3], hopopts=[], dstopts=[], routing=[], fragment=[], ah=[], esp=[[spi=11, seq=2]], ext_order=[50]], tcp=, udp=, icmp=] +[ip=, ip6=[hdr=[class=0, flow=0, len=100, nxt=50, hlim=64, src=3ffe::1, dst=3ffe::3], hopopts=[], dstopts=[], routing=[], fragment=[], ah=[], esp=[[spi=11, seq=3]], ext_order=[50]], tcp=, udp=, icmp=] +[ip=, ip6=[hdr=[class=0, flow=0, len=100, nxt=50, hlim=64, src=3ffe::1, dst=3ffe::3], hopopts=[], dstopts=[], routing=[], fragment=[], ah=[], esp=[[spi=11, seq=4]], ext_order=[50]], tcp=, udp=, icmp=] +[ip=, ip6=[hdr=[class=0, flow=0, len=100, nxt=50, hlim=64, src=3ffe::1, dst=3ffe::3], hopopts=[], dstopts=[], routing=[], fragment=[], ah=[], esp=[[spi=11, seq=5]], ext_order=[50]], tcp=, udp=, icmp=] +[ip=, ip6=[hdr=[class=0, flow=0, len=100, nxt=50, hlim=64, src=3ffe::1, dst=3ffe::3], hopopts=[], dstopts=[], routing=[], fragment=[], ah=[], esp=[[spi=11, seq=6]], ext_order=[50]], tcp=, udp=, icmp=] +[ip=, ip6=[hdr=[class=0, flow=0, len=100, nxt=50, hlim=64, src=3ffe::1, dst=3ffe::3], hopopts=[], dstopts=[], routing=[], fragment=[], ah=[], esp=[[spi=11, seq=7]], ext_order=[50]], tcp=, udp=, icmp=] +[ip=, ip6=[hdr=[class=0, flow=0, len=100, nxt=50, hlim=64, src=3ffe::1, dst=3ffe::3], hopopts=[], dstopts=[], routing=[], fragment=[], ah=[], esp=[[spi=11, seq=8]], ext_order=[50]], tcp=, udp=, icmp=] +[ip=, ip6=[hdr=[class=0, flow=0, len=100, nxt=50, hlim=64, src=3ffe::1, dst=3ffe::3], hopopts=[], dstopts=[], routing=[], fragment=[], ah=[], esp=[[spi=11, seq=9]], ext_order=[50]], tcp=, udp=, icmp=] +[ip=, ip6=[hdr=[class=0, flow=0, len=100, nxt=50, hlim=64, src=3ffe::1, dst=3ffe::3], hopopts=[], dstopts=[], routing=[], fragment=[], ah=[], esp=[[spi=11, seq=10]], ext_order=[50]], tcp=, udp=, icmp=] +[ip=, ip6=[hdr=[class=0, flow=0, len=100, nxt=50, hlim=64, src=3ffe::1, dst=3ffe::4], hopopts=[], dstopts=[], routing=[], fragment=[], ah=[], esp=[[spi=12, seq=1]], ext_order=[50]], tcp=, udp=, icmp=] +[ip=, ip6=[hdr=[class=0, flow=0, len=100, nxt=50, hlim=64, src=3ffe::1, dst=3ffe::4], hopopts=[], dstopts=[], routing=[], fragment=[], ah=[], esp=[[spi=12, seq=2]], ext_order=[50]], tcp=, udp=, icmp=] +[ip=, ip6=[hdr=[class=0, flow=0, len=100, nxt=50, hlim=64, src=3ffe::1, dst=3ffe::4], hopopts=[], dstopts=[], routing=[], fragment=[], ah=[], esp=[[spi=12, seq=3]], ext_order=[50]], tcp=, udp=, icmp=] +[ip=, ip6=[hdr=[class=0, flow=0, len=100, nxt=50, hlim=64, src=3ffe::1, dst=3ffe::4], hopopts=[], dstopts=[], routing=[], fragment=[], ah=[], esp=[[spi=12, seq=4]], ext_order=[50]], tcp=, udp=, icmp=] +[ip=, ip6=[hdr=[class=0, flow=0, len=100, nxt=50, hlim=64, src=3ffe::1, dst=3ffe::4], hopopts=[], dstopts=[], routing=[], fragment=[], ah=[], esp=[[spi=12, seq=5]], ext_order=[50]], tcp=, udp=, icmp=] +[ip=, ip6=[hdr=[class=0, flow=0, len=100, nxt=50, hlim=64, src=3ffe::1, dst=3ffe::4], hopopts=[], dstopts=[], routing=[], fragment=[], ah=[], esp=[[spi=12, seq=6]], ext_order=[50]], tcp=, udp=, icmp=] +[ip=, ip6=[hdr=[class=0, flow=0, len=100, nxt=50, hlim=64, src=3ffe::1, dst=3ffe::4], hopopts=[], dstopts=[], routing=[], fragment=[], ah=[], esp=[[spi=12, seq=7]], ext_order=[50]], tcp=, udp=, icmp=] +[ip=, ip6=[hdr=[class=0, flow=0, len=100, nxt=50, hlim=64, src=3ffe::1, dst=3ffe::4], hopopts=[], dstopts=[], routing=[], fragment=[], ah=[], esp=[[spi=12, seq=8]], ext_order=[50]], tcp=, udp=, icmp=] +[ip=, ip6=[hdr=[class=0, flow=0, len=100, nxt=50, hlim=64, src=3ffe::1, dst=3ffe::4], hopopts=[], dstopts=[], routing=[], fragment=[], ah=[], esp=[[spi=12, seq=9]], ext_order=[50]], tcp=, udp=, icmp=] +[ip=, ip6=[hdr=[class=0, flow=0, len=100, nxt=50, hlim=64, src=3ffe::1, dst=3ffe::4], hopopts=[], dstopts=[], routing=[], fragment=[], ah=[], esp=[[spi=12, seq=10]], ext_order=[50]], tcp=, udp=, icmp=] +[ip=, ip6=[hdr=[class=0, flow=0, len=88, nxt=50, hlim=64, src=3ffe::1, dst=3ffe::5], hopopts=[], dstopts=[], routing=[], fragment=[], ah=[], esp=[[spi=13, seq=1]], ext_order=[50]], tcp=, udp=, icmp=] +[ip=, ip6=[hdr=[class=0, flow=0, len=88, nxt=50, hlim=64, src=3ffe::1, dst=3ffe::5], hopopts=[], dstopts=[], routing=[], fragment=[], ah=[], esp=[[spi=13, seq=2]], ext_order=[50]], tcp=, udp=, icmp=] +[ip=, ip6=[hdr=[class=0, flow=0, len=88, nxt=50, hlim=64, src=3ffe::1, dst=3ffe::5], hopopts=[], dstopts=[], routing=[], fragment=[], ah=[], esp=[[spi=13, seq=3]], ext_order=[50]], tcp=, udp=, icmp=] +[ip=, ip6=[hdr=[class=0, flow=0, len=88, nxt=50, hlim=64, src=3ffe::1, dst=3ffe::5], hopopts=[], dstopts=[], routing=[], fragment=[], ah=[], esp=[[spi=13, seq=4]], ext_order=[50]], tcp=, udp=, icmp=] +[ip=, ip6=[hdr=[class=0, flow=0, len=88, nxt=50, hlim=64, src=3ffe::1, dst=3ffe::5], hopopts=[], dstopts=[], routing=[], fragment=[], ah=[], esp=[[spi=13, seq=5]], ext_order=[50]], tcp=, udp=, icmp=] +[ip=, ip6=[hdr=[class=0, flow=0, len=88, nxt=50, hlim=64, src=3ffe::1, dst=3ffe::5], hopopts=[], dstopts=[], routing=[], fragment=[], ah=[], esp=[[spi=13, seq=6]], ext_order=[50]], tcp=, udp=, icmp=] +[ip=, ip6=[hdr=[class=0, flow=0, len=88, nxt=50, hlim=64, src=3ffe::1, dst=3ffe::5], hopopts=[], dstopts=[], routing=[], fragment=[], ah=[], esp=[[spi=13, seq=7]], ext_order=[50]], tcp=, udp=, icmp=] +[ip=, ip6=[hdr=[class=0, flow=0, len=88, nxt=50, hlim=64, src=3ffe::1, dst=3ffe::5], hopopts=[], dstopts=[], routing=[], fragment=[], ah=[], esp=[[spi=13, seq=8]], ext_order=[50]], tcp=, udp=, icmp=] +[ip=, ip6=[hdr=[class=0, flow=0, len=88, nxt=50, hlim=64, src=3ffe::1, dst=3ffe::5], hopopts=[], dstopts=[], routing=[], fragment=[], ah=[], esp=[[spi=13, seq=9]], ext_order=[50]], tcp=, udp=, icmp=] +[ip=, ip6=[hdr=[class=0, flow=0, len=88, nxt=50, hlim=64, src=3ffe::1, dst=3ffe::5], hopopts=[], dstopts=[], routing=[], fragment=[], ah=[], esp=[[spi=13, seq=10]], ext_order=[50]], tcp=, udp=, icmp=] +[ip=, ip6=[hdr=[class=0, flow=0, len=116, nxt=50, hlim=64, src=3ffe::1, dst=3ffe::12], hopopts=[], dstopts=[], routing=[], fragment=[], ah=[], esp=[[spi=10, seq=1]], ext_order=[50]], tcp=, udp=, icmp=] +[ip=, ip6=[hdr=[class=0, flow=0, len=116, nxt=50, hlim=64, src=3ffe::1, dst=3ffe::12], hopopts=[], dstopts=[], routing=[], fragment=[], ah=[], esp=[[spi=10, seq=2]], ext_order=[50]], tcp=, udp=, icmp=] +[ip=, ip6=[hdr=[class=0, flow=0, len=116, nxt=50, hlim=64, src=3ffe::1, dst=3ffe::12], hopopts=[], dstopts=[], routing=[], fragment=[], ah=[], esp=[[spi=10, seq=3]], ext_order=[50]], tcp=, udp=, icmp=] +[ip=, ip6=[hdr=[class=0, flow=0, len=116, nxt=50, hlim=64, src=3ffe::1, dst=3ffe::12], hopopts=[], dstopts=[], routing=[], fragment=[], ah=[], esp=[[spi=10, seq=4]], ext_order=[50]], tcp=, udp=, icmp=] +[ip=, ip6=[hdr=[class=0, flow=0, len=116, nxt=50, hlim=64, src=3ffe::1, dst=3ffe::12], hopopts=[], dstopts=[], routing=[], fragment=[], ah=[], esp=[[spi=10, seq=5]], ext_order=[50]], tcp=, udp=, icmp=] +[ip=, ip6=[hdr=[class=0, flow=0, len=116, nxt=50, hlim=64, src=3ffe::1, dst=3ffe::12], hopopts=[], dstopts=[], routing=[], fragment=[], ah=[], esp=[[spi=10, seq=6]], ext_order=[50]], tcp=, udp=, icmp=] +[ip=, ip6=[hdr=[class=0, flow=0, len=116, nxt=50, hlim=64, src=3ffe::1, dst=3ffe::12], hopopts=[], dstopts=[], routing=[], fragment=[], ah=[], esp=[[spi=10, seq=7]], ext_order=[50]], tcp=, udp=, icmp=] +[ip=, ip6=[hdr=[class=0, flow=0, len=116, nxt=50, hlim=64, src=3ffe::1, dst=3ffe::12], hopopts=[], dstopts=[], routing=[], fragment=[], ah=[], esp=[[spi=10, seq=8]], ext_order=[50]], tcp=, udp=, icmp=] +[ip=, ip6=[hdr=[class=0, flow=0, len=116, nxt=50, hlim=64, src=3ffe::1, dst=3ffe::12], hopopts=[], dstopts=[], routing=[], fragment=[], ah=[], esp=[[spi=10, seq=9]], ext_order=[50]], tcp=, udp=, icmp=] +[ip=, ip6=[hdr=[class=0, flow=0, len=116, nxt=50, hlim=64, src=3ffe::1, dst=3ffe::12], hopopts=[], dstopts=[], routing=[], fragment=[], ah=[], esp=[[spi=10, seq=10]], ext_order=[50]], tcp=, udp=, icmp=] +[ip=, ip6=[hdr=[class=0, flow=0, len=100, nxt=50, hlim=64, src=3ffe::1, dst=3ffe::13], hopopts=[], dstopts=[], routing=[], fragment=[], ah=[], esp=[[spi=11, seq=1]], ext_order=[50]], tcp=, udp=, icmp=] +[ip=, ip6=[hdr=[class=0, flow=0, len=100, nxt=50, hlim=64, src=3ffe::1, dst=3ffe::13], hopopts=[], dstopts=[], routing=[], fragment=[], ah=[], esp=[[spi=11, seq=2]], ext_order=[50]], tcp=, udp=, icmp=] +[ip=, ip6=[hdr=[class=0, flow=0, len=100, nxt=50, hlim=64, src=3ffe::1, dst=3ffe::13], hopopts=[], dstopts=[], routing=[], fragment=[], ah=[], esp=[[spi=11, seq=3]], ext_order=[50]], tcp=, udp=, icmp=] +[ip=, ip6=[hdr=[class=0, flow=0, len=100, nxt=50, hlim=64, src=3ffe::1, dst=3ffe::13], hopopts=[], dstopts=[], routing=[], fragment=[], ah=[], esp=[[spi=11, seq=4]], ext_order=[50]], tcp=, udp=, icmp=] +[ip=, ip6=[hdr=[class=0, flow=0, len=100, nxt=50, hlim=64, src=3ffe::1, dst=3ffe::13], hopopts=[], dstopts=[], routing=[], fragment=[], ah=[], esp=[[spi=11, seq=5]], ext_order=[50]], tcp=, udp=, icmp=] +[ip=, ip6=[hdr=[class=0, flow=0, len=100, nxt=50, hlim=64, src=3ffe::1, dst=3ffe::13], hopopts=[], dstopts=[], routing=[], fragment=[], ah=[], esp=[[spi=11, seq=6]], ext_order=[50]], tcp=, udp=, icmp=] +[ip=, ip6=[hdr=[class=0, flow=0, len=100, nxt=50, hlim=64, src=3ffe::1, dst=3ffe::13], hopopts=[], dstopts=[], routing=[], fragment=[], ah=[], esp=[[spi=11, seq=7]], ext_order=[50]], tcp=, udp=, icmp=] +[ip=, ip6=[hdr=[class=0, flow=0, len=100, nxt=50, hlim=64, src=3ffe::1, dst=3ffe::13], hopopts=[], dstopts=[], routing=[], fragment=[], ah=[], esp=[[spi=11, seq=8]], ext_order=[50]], tcp=, udp=, icmp=] +[ip=, ip6=[hdr=[class=0, flow=0, len=100, nxt=50, hlim=64, src=3ffe::1, dst=3ffe::13], hopopts=[], dstopts=[], routing=[], fragment=[], ah=[], esp=[[spi=11, seq=9]], ext_order=[50]], tcp=, udp=, icmp=] +[ip=, ip6=[hdr=[class=0, flow=0, len=100, nxt=50, hlim=64, src=3ffe::1, dst=3ffe::13], hopopts=[], dstopts=[], routing=[], fragment=[], ah=[], esp=[[spi=11, seq=10]], ext_order=[50]], tcp=, udp=, icmp=] +[ip=, ip6=[hdr=[class=0, flow=0, len=100, nxt=50, hlim=64, src=3ffe::1, dst=3ffe::14], hopopts=[], dstopts=[], routing=[], fragment=[], ah=[], esp=[[spi=12, seq=1]], ext_order=[50]], tcp=, udp=, icmp=] +[ip=, ip6=[hdr=[class=0, flow=0, len=100, nxt=50, hlim=64, src=3ffe::1, dst=3ffe::14], hopopts=[], dstopts=[], routing=[], fragment=[], ah=[], esp=[[spi=12, seq=2]], ext_order=[50]], tcp=, udp=, icmp=] +[ip=, ip6=[hdr=[class=0, flow=0, len=100, nxt=50, hlim=64, src=3ffe::1, dst=3ffe::14], hopopts=[], dstopts=[], routing=[], fragment=[], ah=[], esp=[[spi=12, seq=3]], ext_order=[50]], tcp=, udp=, icmp=] +[ip=, ip6=[hdr=[class=0, flow=0, len=100, nxt=50, hlim=64, src=3ffe::1, dst=3ffe::14], hopopts=[], dstopts=[], routing=[], fragment=[], ah=[], esp=[[spi=12, seq=4]], ext_order=[50]], tcp=, udp=, icmp=] +[ip=, ip6=[hdr=[class=0, flow=0, len=100, nxt=50, hlim=64, src=3ffe::1, dst=3ffe::14], hopopts=[], dstopts=[], routing=[], fragment=[], ah=[], esp=[[spi=12, seq=5]], ext_order=[50]], tcp=, udp=, icmp=] +[ip=, ip6=[hdr=[class=0, flow=0, len=100, nxt=50, hlim=64, src=3ffe::1, dst=3ffe::14], hopopts=[], dstopts=[], routing=[], fragment=[], ah=[], esp=[[spi=12, seq=6]], ext_order=[50]], tcp=, udp=, icmp=] +[ip=, ip6=[hdr=[class=0, flow=0, len=100, nxt=50, hlim=64, src=3ffe::1, dst=3ffe::14], hopopts=[], dstopts=[], routing=[], fragment=[], ah=[], esp=[[spi=12, seq=7]], ext_order=[50]], tcp=, udp=, icmp=] +[ip=, ip6=[hdr=[class=0, flow=0, len=100, nxt=50, hlim=64, src=3ffe::1, dst=3ffe::14], hopopts=[], dstopts=[], routing=[], fragment=[], ah=[], esp=[[spi=12, seq=8]], ext_order=[50]], tcp=, udp=, icmp=] +[ip=, ip6=[hdr=[class=0, flow=0, len=100, nxt=50, hlim=64, src=3ffe::1, dst=3ffe::14], hopopts=[], dstopts=[], routing=[], fragment=[], ah=[], esp=[[spi=12, seq=9]], ext_order=[50]], tcp=, udp=, icmp=] +[ip=, ip6=[hdr=[class=0, flow=0, len=100, nxt=50, hlim=64, src=3ffe::1, dst=3ffe::14], hopopts=[], dstopts=[], routing=[], fragment=[], ah=[], esp=[[spi=12, seq=10]], ext_order=[50]], tcp=, udp=, icmp=] +[ip=, ip6=[hdr=[class=0, flow=0, len=88, nxt=50, hlim=64, src=3ffe::1, dst=3ffe::15], hopopts=[], dstopts=[], routing=[], fragment=[], ah=[], esp=[[spi=13, seq=1]], ext_order=[50]], tcp=, udp=, icmp=] +[ip=, ip6=[hdr=[class=0, flow=0, len=88, nxt=50, hlim=64, src=3ffe::1, dst=3ffe::15], hopopts=[], dstopts=[], routing=[], fragment=[], ah=[], esp=[[spi=13, seq=2]], ext_order=[50]], tcp=, udp=, icmp=] +[ip=, ip6=[hdr=[class=0, flow=0, len=88, nxt=50, hlim=64, src=3ffe::1, dst=3ffe::15], hopopts=[], dstopts=[], routing=[], fragment=[], ah=[], esp=[[spi=13, seq=3]], ext_order=[50]], tcp=, udp=, icmp=] +[ip=, ip6=[hdr=[class=0, flow=0, len=88, nxt=50, hlim=64, src=3ffe::1, dst=3ffe::15], hopopts=[], dstopts=[], routing=[], fragment=[], ah=[], esp=[[spi=13, seq=4]], ext_order=[50]], tcp=, udp=, icmp=] +[ip=, ip6=[hdr=[class=0, flow=0, len=88, nxt=50, hlim=64, src=3ffe::1, dst=3ffe::15], hopopts=[], dstopts=[], routing=[], fragment=[], ah=[], esp=[[spi=13, seq=5]], ext_order=[50]], tcp=, udp=, icmp=] +[ip=, ip6=[hdr=[class=0, flow=0, len=88, nxt=50, hlim=64, src=3ffe::1, dst=3ffe::15], hopopts=[], dstopts=[], routing=[], fragment=[], ah=[], esp=[[spi=13, seq=6]], ext_order=[50]], tcp=, udp=, icmp=] +[ip=, ip6=[hdr=[class=0, flow=0, len=88, nxt=50, hlim=64, src=3ffe::1, dst=3ffe::15], hopopts=[], dstopts=[], routing=[], fragment=[], ah=[], esp=[[spi=13, seq=7]], ext_order=[50]], tcp=, udp=, icmp=] +[ip=, ip6=[hdr=[class=0, flow=0, len=88, nxt=50, hlim=64, src=3ffe::1, dst=3ffe::15], hopopts=[], dstopts=[], routing=[], fragment=[], ah=[], esp=[[spi=13, seq=8]], ext_order=[50]], tcp=, udp=, icmp=] +[ip=, ip6=[hdr=[class=0, flow=0, len=88, nxt=50, hlim=64, src=3ffe::1, dst=3ffe::15], hopopts=[], dstopts=[], routing=[], fragment=[], ah=[], esp=[[spi=13, seq=9]], ext_order=[50]], tcp=, udp=, icmp=] +[ip=, ip6=[hdr=[class=0, flow=0, len=88, nxt=50, hlim=64, src=3ffe::1, dst=3ffe::15], hopopts=[], dstopts=[], routing=[], fragment=[], ah=[], esp=[[spi=13, seq=10]], ext_order=[50]], tcp=, udp=, icmp=] +[ip=, ip6=[hdr=[class=0, flow=0, len=104, nxt=50, hlim=64, src=3ffe::1, dst=3ffe::22], hopopts=[], dstopts=[], routing=[], fragment=[], ah=[], esp=[[spi=20, seq=1]], ext_order=[50]], tcp=, udp=, icmp=] +[ip=, ip6=[hdr=[class=0, flow=0, len=104, nxt=50, hlim=64, src=3ffe::1, dst=3ffe::22], hopopts=[], dstopts=[], routing=[], fragment=[], ah=[], esp=[[spi=20, seq=2]], ext_order=[50]], tcp=, udp=, icmp=] +[ip=, ip6=[hdr=[class=0, flow=0, len=104, nxt=50, hlim=64, src=3ffe::1, dst=3ffe::22], hopopts=[], dstopts=[], routing=[], fragment=[], ah=[], esp=[[spi=20, seq=3]], ext_order=[50]], tcp=, udp=, icmp=] +[ip=, ip6=[hdr=[class=0, flow=0, len=104, nxt=50, hlim=64, src=3ffe::1, dst=3ffe::22], hopopts=[], dstopts=[], routing=[], fragment=[], ah=[], esp=[[spi=20, seq=4]], ext_order=[50]], tcp=, udp=, icmp=] +[ip=, ip6=[hdr=[class=0, flow=0, len=104, nxt=50, hlim=64, src=3ffe::1, dst=3ffe::22], hopopts=[], dstopts=[], routing=[], fragment=[], ah=[], esp=[[spi=20, seq=5]], ext_order=[50]], tcp=, udp=, icmp=] +[ip=, ip6=[hdr=[class=0, flow=0, len=104, nxt=50, hlim=64, src=3ffe::1, dst=3ffe::22], hopopts=[], dstopts=[], routing=[], fragment=[], ah=[], esp=[[spi=20, seq=6]], ext_order=[50]], tcp=, udp=, icmp=] +[ip=, ip6=[hdr=[class=0, flow=0, len=104, nxt=50, hlim=64, src=3ffe::1, dst=3ffe::22], hopopts=[], dstopts=[], routing=[], fragment=[], ah=[], esp=[[spi=20, seq=7]], ext_order=[50]], tcp=, udp=, icmp=] +[ip=, ip6=[hdr=[class=0, flow=0, len=104, nxt=50, hlim=64, src=3ffe::1, dst=3ffe::22], hopopts=[], dstopts=[], routing=[], fragment=[], ah=[], esp=[[spi=20, seq=8]], ext_order=[50]], tcp=, udp=, icmp=] +[ip=, ip6=[hdr=[class=0, flow=0, len=104, nxt=50, hlim=64, src=3ffe::1, dst=3ffe::22], hopopts=[], dstopts=[], routing=[], fragment=[], ah=[], esp=[[spi=20, seq=9]], ext_order=[50]], tcp=, udp=, icmp=] +[ip=, ip6=[hdr=[class=0, flow=0, len=104, nxt=50, hlim=64, src=3ffe::1, dst=3ffe::22], hopopts=[], dstopts=[], routing=[], fragment=[], ah=[], esp=[[spi=20, seq=10]], ext_order=[50]], tcp=, udp=, icmp=] +[ip=, ip6=[hdr=[class=0, flow=0, len=88, nxt=50, hlim=64, src=3ffe::1, dst=3ffe::23], hopopts=[], dstopts=[], routing=[], fragment=[], ah=[], esp=[[spi=21, seq=1]], ext_order=[50]], tcp=, udp=, icmp=] +[ip=, ip6=[hdr=[class=0, flow=0, len=88, nxt=50, hlim=64, src=3ffe::1, dst=3ffe::23], hopopts=[], dstopts=[], routing=[], fragment=[], ah=[], esp=[[spi=21, seq=2]], ext_order=[50]], tcp=, udp=, icmp=] +[ip=, ip6=[hdr=[class=0, flow=0, len=88, nxt=50, hlim=64, src=3ffe::1, dst=3ffe::23], hopopts=[], dstopts=[], routing=[], fragment=[], ah=[], esp=[[spi=21, seq=3]], ext_order=[50]], tcp=, udp=, icmp=] +[ip=, ip6=[hdr=[class=0, flow=0, len=88, nxt=50, hlim=64, src=3ffe::1, dst=3ffe::23], hopopts=[], dstopts=[], routing=[], fragment=[], ah=[], esp=[[spi=21, seq=4]], ext_order=[50]], tcp=, udp=, icmp=] +[ip=, ip6=[hdr=[class=0, flow=0, len=88, nxt=50, hlim=64, src=3ffe::1, dst=3ffe::23], hopopts=[], dstopts=[], routing=[], fragment=[], ah=[], esp=[[spi=21, seq=5]], ext_order=[50]], tcp=, udp=, icmp=] +[ip=, ip6=[hdr=[class=0, flow=0, len=88, nxt=50, hlim=64, src=3ffe::1, dst=3ffe::23], hopopts=[], dstopts=[], routing=[], fragment=[], ah=[], esp=[[spi=21, seq=6]], ext_order=[50]], tcp=, udp=, icmp=] +[ip=, ip6=[hdr=[class=0, flow=0, len=88, nxt=50, hlim=64, src=3ffe::1, dst=3ffe::23], hopopts=[], dstopts=[], routing=[], fragment=[], ah=[], esp=[[spi=21, seq=7]], ext_order=[50]], tcp=, udp=, icmp=] +[ip=, ip6=[hdr=[class=0, flow=0, len=88, nxt=50, hlim=64, src=3ffe::1, dst=3ffe::23], hopopts=[], dstopts=[], routing=[], fragment=[], ah=[], esp=[[spi=21, seq=8]], ext_order=[50]], tcp=, udp=, icmp=] +[ip=, ip6=[hdr=[class=0, flow=0, len=88, nxt=50, hlim=64, src=3ffe::1, dst=3ffe::23], hopopts=[], dstopts=[], routing=[], fragment=[], ah=[], esp=[[spi=21, seq=9]], ext_order=[50]], tcp=, udp=, icmp=] +[ip=, ip6=[hdr=[class=0, flow=0, len=88, nxt=50, hlim=64, src=3ffe::1, dst=3ffe::23], hopopts=[], dstopts=[], routing=[], fragment=[], ah=[], esp=[[spi=21, seq=10]], ext_order=[50]], tcp=, udp=, icmp=] +[ip=, ip6=[hdr=[class=0, flow=0, len=88, nxt=50, hlim=64, src=3ffe::1, dst=3ffe::24], hopopts=[], dstopts=[], routing=[], fragment=[], ah=[], esp=[[spi=22, seq=1]], ext_order=[50]], tcp=, udp=, icmp=] +[ip=, ip6=[hdr=[class=0, flow=0, len=88, nxt=50, hlim=64, src=3ffe::1, dst=3ffe::24], hopopts=[], dstopts=[], routing=[], fragment=[], ah=[], esp=[[spi=22, seq=2]], ext_order=[50]], tcp=, udp=, icmp=] +[ip=, ip6=[hdr=[class=0, flow=0, len=88, nxt=50, hlim=64, src=3ffe::1, dst=3ffe::24], hopopts=[], dstopts=[], routing=[], fragment=[], ah=[], esp=[[spi=22, seq=3]], ext_order=[50]], tcp=, udp=, icmp=] +[ip=, ip6=[hdr=[class=0, flow=0, len=88, nxt=50, hlim=64, src=3ffe::1, dst=3ffe::24], hopopts=[], dstopts=[], routing=[], fragment=[], ah=[], esp=[[spi=22, seq=4]], ext_order=[50]], tcp=, udp=, icmp=] +[ip=, ip6=[hdr=[class=0, flow=0, len=88, nxt=50, hlim=64, src=3ffe::1, dst=3ffe::24], hopopts=[], dstopts=[], routing=[], fragment=[], ah=[], esp=[[spi=22, seq=5]], ext_order=[50]], tcp=, udp=, icmp=] +[ip=, ip6=[hdr=[class=0, flow=0, len=88, nxt=50, hlim=64, src=3ffe::1, dst=3ffe::24], hopopts=[], dstopts=[], routing=[], fragment=[], ah=[], esp=[[spi=22, seq=6]], ext_order=[50]], tcp=, udp=, icmp=] +[ip=, ip6=[hdr=[class=0, flow=0, len=88, nxt=50, hlim=64, src=3ffe::1, dst=3ffe::24], hopopts=[], dstopts=[], routing=[], fragment=[], ah=[], esp=[[spi=22, seq=7]], ext_order=[50]], tcp=, udp=, icmp=] +[ip=, ip6=[hdr=[class=0, flow=0, len=88, nxt=50, hlim=64, src=3ffe::1, dst=3ffe::24], hopopts=[], dstopts=[], routing=[], fragment=[], ah=[], esp=[[spi=22, seq=8]], ext_order=[50]], tcp=, udp=, icmp=] +[ip=, ip6=[hdr=[class=0, flow=0, len=88, nxt=50, hlim=64, src=3ffe::1, dst=3ffe::24], hopopts=[], dstopts=[], routing=[], fragment=[], ah=[], esp=[[spi=22, seq=9]], ext_order=[50]], tcp=, udp=, icmp=] +[ip=, ip6=[hdr=[class=0, flow=0, len=88, nxt=50, hlim=64, src=3ffe::1, dst=3ffe::24], hopopts=[], dstopts=[], routing=[], fragment=[], ah=[], esp=[[spi=22, seq=10]], ext_order=[50]], tcp=, udp=, icmp=] +[ip=, ip6=[hdr=[class=0, flow=0, len=76, nxt=50, hlim=64, src=3ffe::1, dst=3ffe::25], hopopts=[], dstopts=[], routing=[], fragment=[], ah=[], esp=[[spi=23, seq=1]], ext_order=[50]], tcp=, udp=, icmp=] +[ip=, ip6=[hdr=[class=0, flow=0, len=76, nxt=50, hlim=64, src=3ffe::1, dst=3ffe::25], hopopts=[], dstopts=[], routing=[], fragment=[], ah=[], esp=[[spi=23, seq=2]], ext_order=[50]], tcp=, udp=, icmp=] +[ip=, ip6=[hdr=[class=0, flow=0, len=76, nxt=50, hlim=64, src=3ffe::1, dst=3ffe::25], hopopts=[], dstopts=[], routing=[], fragment=[], ah=[], esp=[[spi=23, seq=3]], ext_order=[50]], tcp=, udp=, icmp=] +[ip=, ip6=[hdr=[class=0, flow=0, len=76, nxt=50, hlim=64, src=3ffe::1, dst=3ffe::25], hopopts=[], dstopts=[], routing=[], fragment=[], ah=[], esp=[[spi=23, seq=4]], ext_order=[50]], tcp=, udp=, icmp=] +[ip=, ip6=[hdr=[class=0, flow=0, len=76, nxt=50, hlim=64, src=3ffe::1, dst=3ffe::25], hopopts=[], dstopts=[], routing=[], fragment=[], ah=[], esp=[[spi=23, seq=5]], ext_order=[50]], tcp=, udp=, icmp=] +[ip=, ip6=[hdr=[class=0, flow=0, len=76, nxt=50, hlim=64, src=3ffe::1, dst=3ffe::25], hopopts=[], dstopts=[], routing=[], fragment=[], ah=[], esp=[[spi=23, seq=6]], ext_order=[50]], tcp=, udp=, icmp=] +[ip=, ip6=[hdr=[class=0, flow=0, len=76, nxt=50, hlim=64, src=3ffe::1, dst=3ffe::25], hopopts=[], dstopts=[], routing=[], fragment=[], ah=[], esp=[[spi=23, seq=7]], ext_order=[50]], tcp=, udp=, icmp=] +[ip=, ip6=[hdr=[class=0, flow=0, len=76, nxt=50, hlim=64, src=3ffe::1, dst=3ffe::25], hopopts=[], dstopts=[], routing=[], fragment=[], ah=[], esp=[[spi=23, seq=8]], ext_order=[50]], tcp=, udp=, icmp=] +[ip=, ip6=[hdr=[class=0, flow=0, len=76, nxt=50, hlim=64, src=3ffe::1, dst=3ffe::25], hopopts=[], dstopts=[], routing=[], fragment=[], ah=[], esp=[[spi=23, seq=9]], ext_order=[50]], tcp=, udp=, icmp=] +[ip=, ip6=[hdr=[class=0, flow=0, len=76, nxt=50, hlim=64, src=3ffe::1, dst=3ffe::25], hopopts=[], dstopts=[], routing=[], fragment=[], ah=[], esp=[[spi=23, seq=10]], ext_order=[50]], tcp=, udp=, icmp=] diff --git a/testing/btest/Baseline/core.ipv6_ext_headers/output b/testing/btest/Baseline/core.ipv6_ext_headers/output new file mode 100644 index 0000000000..4cc9c706ae --- /dev/null +++ b/testing/btest/Baseline/core.ipv6_ext_headers/output @@ -0,0 +1 @@ +[ip=, ip6=[hdr=[class=0, flow=0, len=59, nxt=0, hlim=64, src=2001:4f8:4:7:2e0:81ff:fe52:ffff, dst=2001:4f8:4:7:2e0:81ff:fe52:9a6b], hopopts=[[nxt=43, len=0, options=[[otype=1, len=4, data=\0\0\0\0]]]], dstopts=[], routing=[[nxt=17, len=4, rtype=0, segleft=2, data=\0\0\0\0 ^A\0x\0^A\02\0\0\0\0\0\0\0^A ^A\0x\0^A\02\0\0\0\0\0\0\0^B]], fragment=[], ah=[], esp=[], ext_order=[0, 43]], tcp=, udp=[sport=53/udp, dport=53/udp, ulen=11], icmp=] diff --git a/testing/btest/Traces/ext_hdr_hbh_routing.trace b/testing/btest/Traces/ext_hdr_hbh_routing.trace new file mode 100644 index 0000000000000000000000000000000000000000..2a294ed58ea254aa88049e4287324bd05111eaf0 GIT binary patch literal 153 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 literal 0 HcmV?d00001 diff --git a/testing/btest/bifs/routing0_data_to_addrs.test b/testing/btest/bifs/routing0_data_to_addrs.test new file mode 100644 index 0000000000..f150ec2a35 --- /dev/null +++ b/testing/btest/bifs/routing0_data_to_addrs.test @@ -0,0 +1,9 @@ +# @TEST-EXEC: bro -C -b -r $TRACES/ext_hdr_hbh_routing.trace %INPUT >output +# @TEST-EXEC: btest-diff output + +event ipv6_ext_headers(c: connection, p: pkt_hdr) + { + for ( h in p$ip6$routing ) + if ( p$ip6$routing[h]$rtype == 0 ) + print routing0_data_to_addrs(p$ip6$routing[h]$data); + } diff --git a/testing/btest/core/ipv6_esp.test b/testing/btest/core/ipv6_esp.test new file mode 100644 index 0000000000..b606c23400 --- /dev/null +++ b/testing/btest/core/ipv6_esp.test @@ -0,0 +1,10 @@ +# @TEST-EXEC: bro -r $TRACES/ip6_esp.trace %INPUT >output +# @TEST-EXEC: btest-diff output + +# Just check that the event is raised correctly for a packet containing +# ESP extension headers. + +event esp_packet(p: pkt_hdr) + { + print p; + } diff --git a/testing/btest/core/ipv6_ext_headers.test b/testing/btest/core/ipv6_ext_headers.test new file mode 100644 index 0000000000..170a67bc72 --- /dev/null +++ b/testing/btest/core/ipv6_ext_headers.test @@ -0,0 +1,10 @@ +# @TEST-EXEC: bro -C -b -r $TRACES/ext_hdr_hbh_routing.trace %INPUT >output +# @TEST-EXEC: btest-diff output + +# Just check that the event is raised correctly for a packet containing +# extension headers. + +event ipv6_ext_headers(c: connection, p: pkt_hdr) + { + print p; + }