From af5691366c66bea554e442fa59afbfdada9e834c Mon Sep 17 00:00:00 2001
From: Tommaso Pecorella
Date: Mon, 29 Jan 2018 21:29:02 -0600
Subject: [PATCH] lte: (fixes #2768) LteUeNetDevice has a null MAC address
---
CHANGES.html | 3 ++-
RELEASE_NOTES | 1 +
src/lte/helper/lte-helper.cc | 3 +++
src/lte/model/lte-net-device.cc | 2 +-
src/lte/model/lte-net-device.h | 4 ++--
src/lte/model/lte-ue-net-device.h | 1 -
6 files changed, 9 insertions(+), 5 deletions(-)
diff --git a/CHANGES.html b/CHANGES.html
index 1249b2888..d9e448ff6 100644
--- a/CHANGES.html
+++ b/CHANGES.html
@@ -59,7 +59,8 @@ us a note on ns-developers mailing list.
Changes to existing API:
- - Class LrWpanMac now supports extended addressing mode. Both McpsDataRequest and PdDataIndication methods will now use extended addressing if McpsDataRequestParams::m_srcAddrMode or McpsDataRequestParams::m_dstAddrMode are set to EXT_ADDR.
+
- Class LrWpanMac now supports extended addressing mode. Both McpsDataRequest and PdDataIndication methods will now use extended addressing if McpsDataRequestParams::m_srcAddrMode or McpsDataRequestParams::m_dstAddrMode are set to EXT_ADDR.
+ - Class LteUeNetDevice MAC address is now a 64-bit address and it's set during construction.
Changes to build system:
diff --git a/RELEASE_NOTES b/RELEASE_NOTES
index bbacc9811..061ee85ba 100644
--- a/RELEASE_NOTES
+++ b/RELEASE_NOTES
@@ -37,6 +37,7 @@ Bugs fixed
- Bug 2653 - tcp: Avoid saving smaller TS in case of packet reordering
- Bug 2764 - wifi: WifiSpectrumModelId doesn't distinguish 11ax from legacy
- Bug 2766 - core: Modify logging for int64x64 to avoid stack overflow
+- Bug 2768 - lte: LteUeNetDevice has a null MAC address
- Bug 2820 - wifi: segmentation fault when Rrpaa wifi manager is used
- Bug 2824 - ICMP opcode fr fragment timeout drop is wrong
- Bug 2828 - OLSR simple P2P example produces wrong results
diff --git a/src/lte/helper/lte-helper.cc b/src/lte/helper/lte-helper.cc
index 864d48b49..364421ad3 100644
--- a/src/lte/helper/lte-helper.cc
+++ b/src/lte/helper/lte-helper.cc
@@ -909,6 +909,9 @@ LteHelper::InstallSingleUeDevice (Ptr n)
dev->SetAttribute ("LteUeRrc", PointerValue (rrc));
dev->SetAttribute ("EpcUeNas", PointerValue (nas));
dev->SetAttribute ("LteUeComponentCarrierManager", PointerValue (ccmUe));
+ // \todo The UE identifier should be dynamically set by the EPC
+ // when the default PDP context is created. This is a simplification.
+ dev->SetAddress (Mac64Address::Allocate ());
for (std::map >::iterator it = ueCcMap.begin (); it != ueCcMap.end (); ++it)
{
diff --git a/src/lte/model/lte-net-device.cc b/src/lte/model/lte-net-device.cc
index 3d9fbd93b..7f1dd8fee 100644
--- a/src/lte/model/lte-net-device.cc
+++ b/src/lte/model/lte-net-device.cc
@@ -98,7 +98,7 @@ void
LteNetDevice::SetAddress (Address address)
{
NS_LOG_FUNCTION (this << address);
- m_address = Mac48Address::ConvertFrom (address);
+ m_address = Mac64Address::ConvertFrom (address);
}
diff --git a/src/lte/model/lte-net-device.h b/src/lte/model/lte-net-device.h
index 79cc1583c..b3742415f 100644
--- a/src/lte/model/lte-net-device.h
+++ b/src/lte/model/lte-net-device.h
@@ -24,7 +24,7 @@
#include
#include
-#include
+#include
#include
#include
#include
@@ -112,7 +112,7 @@ private:
bool m_linkUp; ///< link uo
mutable uint16_t m_mtu; ///< MTU
- Mac48Address m_address; ///< MAC address
+ Mac64Address m_address; ///< MAC address - only relevant for UEs.
};
diff --git a/src/lte/model/lte-ue-net-device.h b/src/lte/model/lte-ue-net-device.h
index 68737843b..a0f072df2 100644
--- a/src/lte/model/lte-ue-net-device.h
+++ b/src/lte/model/lte-ue-net-device.h
@@ -27,7 +27,6 @@
#include "ns3/lte-net-device.h"
#include "ns3/event-id.h"
-#include "ns3/mac48-address.h"
#include "ns3/traced-callback.h"
#include "ns3/nstime.h"
#include "ns3/lte-phy.h"