From f7b98e4ef091d059659c385244377aedbe01b31a Mon Sep 17 00:00:00 2001 From: Tommaso Pecorella Date: Thu, 18 Feb 2016 21:06:33 +0100 Subject: [PATCH] internet: prevent null packet enqueueing in ARP. --- src/internet/model/arp-cache.cc | 2 ++ src/lte/test/epc-test-s1u-uplink.cc | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/internet/model/arp-cache.cc b/src/internet/model/arp-cache.cc index 0c4a06f9b..43d05fdb8 100644 --- a/src/internet/model/arp-cache.cc +++ b/src/internet/model/arp-cache.cc @@ -421,6 +421,8 @@ ArpCache::Entry::MarkWaitReply (Ptr waiting) NS_LOG_FUNCTION (this << waiting); NS_ASSERT (m_state == ALIVE || m_state == DEAD); NS_ASSERT (m_pending.empty ()); + NS_ASSERT_MSG (waiting, "Can not add a null packet to the ARP queue"); + m_state = WAIT_REPLY; m_pending.push_back (waiting); UpdateSeen (); diff --git a/src/lte/test/epc-test-s1u-uplink.cc b/src/lte/test/epc-test-s1u-uplink.cc index 8499eb357..986416e89 100644 --- a/src/lte/test/epc-test-s1u-uplink.cc +++ b/src/lte/test/epc-test-s1u-uplink.cc @@ -399,8 +399,8 @@ EpcS1uUlTestCase::DoRun () Ptr ueArpCache = ueLteIpv4Iface->GetArpCache (); ueArpCache->SetAliveTimeout (Seconds (1000)); ArpCache::Entry* arpCacheEntry = ueArpCache->Add (gwAddr); - arpCacheEntry->MarkWaitReply(0); - arpCacheEntry->MarkAlive (Mac48Address::GetBroadcast ()); + arpCacheEntry->SetMacAddresss (Mac48Address::GetBroadcast ()); + arpCacheEntry->MarkPermanent (); PacketSinkHelper packetSinkHelper ("ns3::UdpSocketFactory",