From ad9abd4c9b73a3d543df9463a9b1fe21ea9f3a56 Mon Sep 17 00:00:00 2001 From: Jon Siwek Date: Fri, 6 Jul 2018 08:04:02 -0500 Subject: [PATCH] BIT-1950: support PPPoE over QinQ --- src/iosource/Packet.cc | 96 ++++++++---------- .../Baseline/core.pppoe-over-qinq/conn.log | 10 ++ testing/btest/Traces/pppoe-over-qinq.pcap | Bin 0 -> 42264 bytes testing/btest/core/pppoe-over-qinq.bro | 2 + 4 files changed, 54 insertions(+), 54 deletions(-) create mode 100644 testing/btest/Baseline/core.pppoe-over-qinq/conn.log create mode 100644 testing/btest/Traces/pppoe-over-qinq.pcap create mode 100644 testing/btest/core/pppoe-over-qinq.bro diff --git a/src/iosource/Packet.cc b/src/iosource/Packet.cc index fedb795885..5199765f51 100644 --- a/src/iosource/Packet.cc +++ b/src/iosource/Packet.cc @@ -149,36 +149,17 @@ void Packet::ProcessLayer2() pdata += GetLinkHeaderSize(link_type); - switch ( protocol ) + bool saw_vlan = false; + + while ( protocol == 0x8100 || protocol == 0x9100 || + protocol == 0x8864 ) { - // MPLS carried over the ethernet frame. - case 0x8847: - have_mpls = true; - break; - - // VLAN carried over the ethernet frame. - // 802.1q / 802.1ad - case 0x8100: - case 0x9100: - if ( pdata + 4 >= end_of_data ) - { - Weird("truncated_link_header"); - return; - } - - vlan = ((pdata[0] << 8) + pdata[1]) & 0xfff; - protocol = ((pdata[2] << 8) + pdata[3]); - pdata += 4; // Skip the vlan header - - // Check for MPLS in VLAN. - if ( protocol == 0x8847 ) - { - have_mpls = true; - break; - } - - // Check for double-tagged (802.1ad) - if ( protocol == 0x8100 || protocol == 0x9100 ) + switch ( protocol ) + { + // VLAN carried over the ethernet frame. + // 802.1q / 802.1ad + case 0x8100: + case 0x9100: { if ( pdata + 4 >= end_of_data ) { @@ -186,39 +167,46 @@ void Packet::ProcessLayer2() return; } - inner_vlan = ((pdata[0] << 8) + pdata[1]) & 0xfff; + auto& vlan_ref = saw_vlan ? inner_vlan : vlan; + vlan_ref = ((pdata[0] << 8) + pdata[1]) & 0xfff; protocol = ((pdata[2] << 8) + pdata[3]); pdata += 4; // Skip the vlan header + saw_vlan = true; + eth_type = protocol; } + break; - eth_type = protocol; - break; - - // PPPoE carried over the ethernet frame. - case 0x8864: - if ( pdata + 8 >= end_of_data ) + // PPPoE carried over the ethernet frame. + case 0x8864: { - Weird("truncated_link_header"); - return; + if ( pdata + 8 >= end_of_data ) + { + Weird("truncated_link_header"); + return; + } + + protocol = (pdata[6] << 8) + pdata[7]; + pdata += 8; // Skip the PPPoE session and PPP header + + if ( protocol == 0x0021 ) + l3_proto = L3_IPV4; + else if ( protocol == 0x0057 ) + l3_proto = L3_IPV6; + else + { + // Neither IPv4 nor IPv6. + Weird("non_ip_packet_in_pppoe_encapsulation"); + return; + } } - - protocol = (pdata[6] << 8) + pdata[7]; - pdata += 8; // Skip the PPPoE session and PPP header - - if ( protocol == 0x0021 ) - l3_proto = L3_IPV4; - else if ( protocol == 0x0057 ) - l3_proto = L3_IPV6; - else - { - // Neither IPv4 nor IPv6. - Weird("non_ip_packet_in_pppoe_encapsulation"); - return; - } - - break; + break; + } } + // Check for MPLS in VLAN. + if ( protocol == 0x8847 ) + have_mpls = true; + // Normal path to determine Layer 3 protocol. if ( ! have_mpls && l3_proto == L3_UNKNOWN ) { diff --git a/testing/btest/Baseline/core.pppoe-over-qinq/conn.log b/testing/btest/Baseline/core.pppoe-over-qinq/conn.log new file mode 100644 index 0000000000..6450d8f2f7 --- /dev/null +++ b/testing/btest/Baseline/core.pppoe-over-qinq/conn.log @@ -0,0 +1,10 @@ +#separator \x09 +#set_separator , +#empty_field (empty) +#unset_field - +#path conn +#open 2018-07-06-12-25-54 +#fields ts uid id.orig_h id.orig_p id.resp_h id.resp_p proto service duration orig_bytes resp_bytes conn_state local_orig local_resp missed_bytes history orig_pkts orig_ip_bytes resp_pkts resp_ip_bytes tunnel_parents +#types time string addr port addr port enum string interval count count string bool bool count string count count count count set[string] +1523351398.449222 CHhAvVGS1DHFjwGM9 1.1.1.1 20394 2.2.2.2 443 tcp - 273.626833 11352 4984 SF - - 0 ShADdtaTFf 44 25283 42 13001 - +#close 2018-07-06-12-25-54 diff --git a/testing/btest/Traces/pppoe-over-qinq.pcap b/testing/btest/Traces/pppoe-over-qinq.pcap new file mode 100644 index 0000000000000000000000000000000000000000..10e1429d0c7b80181bdeed602dbad65f2c05ac15 GIT binary patch literal 42264 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 AC;$Ke literal 0 HcmV?d00001 diff --git a/testing/btest/core/pppoe-over-qinq.bro b/testing/btest/core/pppoe-over-qinq.bro new file mode 100644 index 0000000000..cdfd4607ae --- /dev/null +++ b/testing/btest/core/pppoe-over-qinq.bro @@ -0,0 +1,2 @@ +# @TEST-EXEC: bro -C -r $TRACES/pppoe-over-qinq.pcap +# @TEST-EXEC: btest-diff conn.log