diff -r 2abe024e7099 src/devices/csma/csma-net-device.cc --- a/src/devices/csma/csma-net-device.cc Wed Oct 21 17:19:03 2009 -0700 +++ b/src/devices/csma/csma-net-device.cc Mon Nov 16 12:26:47 2009 +0100 @@ -746,11 +746,9 @@ Ptr originalPacket = packet->Copy (); EthernetTrailer trailer; - packet->RemoveTrailer (trailer); - trailer.CheckFcs (packet); EthernetHeader header (false); - packet->RemoveHeader (header); + packet->PeekHeader (header); NS_LOG_LOGIC ("Pkt source is " << header.GetSource ()); NS_LOG_LOGIC ("Pkt destination is " << header.GetDestination ()); @@ -758,10 +756,17 @@ if (m_receiveErrorModel && m_receiveErrorModel->IsCorrupt (packet) ) { NS_LOG_LOGIC ("Dropping pkt due to error model "); + packet->RemoveTrailer (trailer); + trailer.CheckFcs (packet); + packet->RemoveHeader (header); m_phyRxDropTrace (packet); } else { + packet->RemoveTrailer (trailer); + trailer.CheckFcs (packet); + packet->RemoveHeader (header); + uint16_t protocol; // // If the length/type is less than 1500, it corresponds to a length