DLT_RAW captures (linktype 101) were not handling IPv6 packets
correctly.
For DLT_RAW, PcapPacketReader::getUDPPacket() synthesizes a fake
ethertype value (the "contentCode" variable), but for IPv6 it was
incorrectly set to 0x0806 (ARP) instead of 0x86dd (IPv6). This caused
IPv6 packets to silently be discarded.
if(d_ip->ip_v==4)
contentCode = 0x0800;
else
- contentCode = 0x0806;
+ contentCode = 0x86dd;
}
else if(d_pfh.linktype==113)
contentCode=ntohs(d_lcc->lcc_protocol);