[bug 806] Remove CSMA padding from IP datagrams
This commit is contained in:
@@ -463,6 +463,12 @@ Ipv4L3Protocol::Receive( Ptr<NetDevice> device, Ptr<const Packet> p, uint16_t pr
|
||||
}
|
||||
packet->RemoveHeader (ipHeader);
|
||||
|
||||
// Trim any residual frame padding from underlying devices
|
||||
if (ipHeader.GetPayloadSize () < packet->GetSize ())
|
||||
{
|
||||
packet->RemoveAtEnd (packet->GetSize () - ipHeader.GetPayloadSize ());
|
||||
}
|
||||
|
||||
if (!ipHeader.IsChecksumOk ())
|
||||
{
|
||||
m_dropTrace (ipHeader, packet, DROP_BAD_CHECKSUM, interface);
|
||||
|
||||
@@ -695,6 +695,12 @@ void Ipv6L3Protocol::Receive (Ptr<NetDevice> device, Ptr<const Packet> p, uint16
|
||||
Ipv6Header hdr;
|
||||
packet->RemoveHeader (hdr);
|
||||
|
||||
// Trim any residual frame padding from underlying devices
|
||||
if (hdr.GetPayloadLength () < packet->GetSize ())
|
||||
{
|
||||
packet->RemoveAtEnd (packet->GetSize () - hdr.GetPayloadLength ());
|
||||
}
|
||||
|
||||
/* forward up to IPv6 raw sockets */
|
||||
for (SocketList::iterator it = m_sockets.begin () ; it != m_sockets.end () ; ++it)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user