mirror of
https://github.com/zeek/zeek.git
synced 2025-10-12 11:38:20 +00:00
Adding PPPoE support to Bro.
- Still needs a small test tracefile and test.
This commit is contained in:
parent
151664bc26
commit
908b1a17d1
1 changed files with 27 additions and 9 deletions
|
@ -208,16 +208,34 @@ void PktSrc::Process()
|
||||||
// Get protocol being carried from the ethernet frame.
|
// Get protocol being carried from the ethernet frame.
|
||||||
protocol = (data[12] << 8) + data[13];
|
protocol = (data[12] << 8) + data[13];
|
||||||
|
|
||||||
// MPLS carried over the ethernet frame.
|
switch ( protocol )
|
||||||
if ( protocol == 0x8847 )
|
|
||||||
have_mpls = true;
|
|
||||||
|
|
||||||
// VLAN carried over ethernet frame.
|
|
||||||
else if ( protocol == 0x8100 )
|
|
||||||
{
|
{
|
||||||
|
// MPLS carried over the ethernet frame.
|
||||||
|
case 0x8847:
|
||||||
|
have_mpls = true;
|
||||||
|
break;
|
||||||
|
|
||||||
|
// VLAN carried over the ethernet frame.
|
||||||
|
case 0x8100:
|
||||||
data += get_link_header_size(datalink);
|
data += get_link_header_size(datalink);
|
||||||
data += 4; // Skip the vlan header
|
data += 4; // Skip the vlan header
|
||||||
pkt_hdr_size = 0;
|
pkt_hdr_size = 0;
|
||||||
|
break;
|
||||||
|
|
||||||
|
// PPPoE carried over the ethernet frame.
|
||||||
|
case 0x8864:
|
||||||
|
data += get_link_header_size(datalink);
|
||||||
|
protocol = (data[6] << 8) + data[7];
|
||||||
|
data += 8; // Skip the PPPoE session and PPP header
|
||||||
|
pkt_hdr_size = 0;
|
||||||
|
if ( protocol != 0x0021 && protocol != 0x0057 )
|
||||||
|
{
|
||||||
|
// Neither IPv4 nor IPv6.
|
||||||
|
sessions->Weird("non_ip_packet_in_pppoe_encapsulation", &hdr, data);
|
||||||
|
data = 0;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue