lr-wpan: Create MAC layer abstraction (decoupling, alternative MACs)
This commit is contained in:
@@ -26,6 +26,7 @@ Changes from ns-3.40 to ns-3-dev
|
||||
* (lte) Struct member `pfsFlowPerf_t::lastTtiBytesTrasmitted` in file `pf-ff-mac-scheduler.h` was renamed `fdbetsFlowPerf_t::lastTtiBytesTransmitted`.
|
||||
* (lr-wpan) Change the CapabilityField parameter in `LrWpanMac::MlmeAssociateRequest` and `LrWpanMac::MlmeAssociateIndication` to a standard bitmap.
|
||||
* (lr-wpan) Change the MAC SuperframeField usage to a standard bitmap, this change impact parameters in the `BeaconPayloadHeader`.
|
||||
* (lr-wpan) Create a new abstract class that defines the form of any Lr-wpan MAC layers (`LrWpanMacBase`).
|
||||
|
||||
### Changes to build system
|
||||
|
||||
|
||||
@@ -20,8 +20,9 @@ Release 3-dev
|
||||
|
||||
### New user-visible features
|
||||
|
||||
- (lr-wpan) !1686 Change CapabilityField to standard bitmap
|
||||
- (lr-wpan) !1698 Change SuperframeField to standard bitmap
|
||||
- (lr-wpan) !1686 - Change CapabilityField to standard bitmap
|
||||
- (lr-wpan) !1698 - Change SuperframeField to standard bitmap
|
||||
- (lr-wpan) !1706 - Create MAC layer abstraction (decoupling, alternative MACs)
|
||||
|
||||
### Bugs fixed
|
||||
|
||||
|
||||
@@ -10,6 +10,7 @@ build_lib(
|
||||
model/lr-wpan-mac-header.cc
|
||||
model/lr-wpan-mac-pl-headers.cc
|
||||
model/lr-wpan-mac-trailer.cc
|
||||
model/lr-wpan-mac-base.cc
|
||||
model/lr-wpan-mac.cc
|
||||
model/lr-wpan-net-device.cc
|
||||
model/lr-wpan-phy.cc
|
||||
@@ -26,6 +27,7 @@ build_lib(
|
||||
model/lr-wpan-mac-header.h
|
||||
model/lr-wpan-mac-pl-headers.h
|
||||
model/lr-wpan-mac-trailer.h
|
||||
model/lr-wpan-mac-base.h
|
||||
model/lr-wpan-mac.h
|
||||
model/lr-wpan-net-device.h
|
||||
model/lr-wpan-phy.h
|
||||
|
||||
120
src/lr-wpan/model/lr-wpan-mac-base.cc
Normal file
120
src/lr-wpan/model/lr-wpan-mac-base.cc
Normal file
@@ -0,0 +1,120 @@
|
||||
/*
|
||||
* Copyright (c) 2023 Tokushima University, Japan.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation;
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*
|
||||
* Author: Alberto Gallegos Ramonet <alramonet@is.tokushima-u.ac.jp>
|
||||
*/
|
||||
|
||||
#include "lr-wpan-mac-base.h"
|
||||
|
||||
#include <ns3/log.h>
|
||||
#include <ns3/uinteger.h>
|
||||
|
||||
namespace ns3
|
||||
{
|
||||
|
||||
NS_LOG_COMPONENT_DEFINE("LrWpanMacBase");
|
||||
NS_OBJECT_ENSURE_REGISTERED(LrWpanMacBase);
|
||||
|
||||
TypeId
|
||||
LrWpanMacBase::GetTypeId()
|
||||
{
|
||||
static TypeId tid = TypeId("ns3::LrWpanMacBase").SetParent<Object>().SetGroupName("LrWpan");
|
||||
return tid;
|
||||
}
|
||||
|
||||
LrWpanMacBase::~LrWpanMacBase()
|
||||
{
|
||||
}
|
||||
|
||||
void
|
||||
LrWpanMacBase::SetMcpsDataConfirmCallback(McpsDataConfirmCallback c)
|
||||
{
|
||||
m_mcpsDataConfirmCallback = c;
|
||||
}
|
||||
|
||||
void
|
||||
LrWpanMacBase::SetMcpsDataIndicationCallback(McpsDataIndicationCallback c)
|
||||
{
|
||||
m_mcpsDataIndicationCallback = c;
|
||||
}
|
||||
|
||||
void
|
||||
LrWpanMacBase::SetMlmeAssociateIndicationCallback(MlmeAssociateIndicationCallback c)
|
||||
{
|
||||
m_mlmeAssociateIndicationCallback = c;
|
||||
}
|
||||
|
||||
void
|
||||
LrWpanMacBase::SetMlmeCommStatusIndicationCallback(MlmeCommStatusIndicationCallback c)
|
||||
{
|
||||
m_mlmeCommStatusIndicationCallback = c;
|
||||
}
|
||||
|
||||
void
|
||||
LrWpanMacBase::SetMlmeOrphanIndicationCallback(MlmeOrphanIndicationCallback c)
|
||||
{
|
||||
m_mlmeOrphanIndicationCallback = c;
|
||||
}
|
||||
|
||||
void
|
||||
LrWpanMacBase::SetMlmeStartConfirmCallback(MlmeStartConfirmCallback c)
|
||||
{
|
||||
m_mlmeStartConfirmCallback = c;
|
||||
}
|
||||
|
||||
void
|
||||
LrWpanMacBase::SetMlmeScanConfirmCallback(MlmeScanConfirmCallback c)
|
||||
{
|
||||
m_mlmeScanConfirmCallback = c;
|
||||
}
|
||||
|
||||
void
|
||||
LrWpanMacBase::SetMlmeAssociateConfirmCallback(MlmeAssociateConfirmCallback c)
|
||||
{
|
||||
m_mlmeAssociateConfirmCallback = c;
|
||||
}
|
||||
|
||||
void
|
||||
LrWpanMacBase::SetMlmeBeaconNotifyIndicationCallback(MlmeBeaconNotifyIndicationCallback c)
|
||||
{
|
||||
m_mlmeBeaconNotifyIndicationCallback = c;
|
||||
}
|
||||
|
||||
void
|
||||
LrWpanMacBase::SetMlmeSyncLossIndicationCallback(MlmeSyncLossIndicationCallback c)
|
||||
{
|
||||
m_mlmeSyncLossIndicationCallback = c;
|
||||
}
|
||||
|
||||
void
|
||||
LrWpanMacBase::SetMlmeSetConfirmCallback(MlmeSetConfirmCallback c)
|
||||
{
|
||||
m_mlmeSetConfirmCallback = c;
|
||||
}
|
||||
|
||||
void
|
||||
LrWpanMacBase::SetMlmeGetConfirmCallback(MlmeGetConfirmCallback c)
|
||||
{
|
||||
m_mlmeGetConfirmCallback = c;
|
||||
}
|
||||
|
||||
void
|
||||
LrWpanMacBase::SetMlmePollConfirmCallback(MlmePollConfirmCallback c)
|
||||
{
|
||||
m_mlmePollConfirmCallback = c;
|
||||
}
|
||||
|
||||
} // namespace ns3
|
||||
1049
src/lr-wpan/model/lr-wpan-mac-base.h
Normal file
1049
src/lr-wpan/model/lr-wpan-mac-base.h
Normal file
File diff suppressed because it is too large
Load Diff
@@ -53,7 +53,7 @@ LrWpanMac::GetTypeId()
|
||||
{
|
||||
static TypeId tid =
|
||||
TypeId("ns3::LrWpanMac")
|
||||
.SetParent<Object>()
|
||||
.SetParent<LrWpanMacBase>()
|
||||
.SetGroupName("LrWpan")
|
||||
.AddConstructor<LrWpanMac>()
|
||||
.AddAttribute("PanId",
|
||||
@@ -1782,84 +1782,6 @@ LrWpanMac::GetPhy()
|
||||
return m_phy;
|
||||
}
|
||||
|
||||
void
|
||||
LrWpanMac::SetMcpsDataIndicationCallback(McpsDataIndicationCallback c)
|
||||
{
|
||||
m_mcpsDataIndicationCallback = c;
|
||||
}
|
||||
|
||||
void
|
||||
LrWpanMac::SetMlmeAssociateIndicationCallback(MlmeAssociateIndicationCallback c)
|
||||
{
|
||||
m_mlmeAssociateIndicationCallback = c;
|
||||
}
|
||||
|
||||
void
|
||||
LrWpanMac::SetMlmeCommStatusIndicationCallback(MlmeCommStatusIndicationCallback c)
|
||||
{
|
||||
m_mlmeCommStatusIndicationCallback = c;
|
||||
}
|
||||
|
||||
void
|
||||
LrWpanMac::SetMlmeOrphanIndicationCallback(MlmeOrphanIndicationCallback c)
|
||||
{
|
||||
m_mlmeOrphanIndicationCallback = c;
|
||||
}
|
||||
|
||||
void
|
||||
LrWpanMac::SetMcpsDataConfirmCallback(McpsDataConfirmCallback c)
|
||||
{
|
||||
m_mcpsDataConfirmCallback = c;
|
||||
}
|
||||
|
||||
void
|
||||
LrWpanMac::SetMlmeStartConfirmCallback(MlmeStartConfirmCallback c)
|
||||
{
|
||||
m_mlmeStartConfirmCallback = c;
|
||||
}
|
||||
|
||||
void
|
||||
LrWpanMac::SetMlmeScanConfirmCallback(MlmeScanConfirmCallback c)
|
||||
{
|
||||
m_mlmeScanConfirmCallback = c;
|
||||
}
|
||||
|
||||
void
|
||||
LrWpanMac::SetMlmeAssociateConfirmCallback(MlmeAssociateConfirmCallback c)
|
||||
{
|
||||
m_mlmeAssociateConfirmCallback = c;
|
||||
}
|
||||
|
||||
void
|
||||
LrWpanMac::SetMlmeBeaconNotifyIndicationCallback(MlmeBeaconNotifyIndicationCallback c)
|
||||
{
|
||||
m_mlmeBeaconNotifyIndicationCallback = c;
|
||||
}
|
||||
|
||||
void
|
||||
LrWpanMac::SetMlmeSyncLossIndicationCallback(MlmeSyncLossIndicationCallback c)
|
||||
{
|
||||
m_mlmeSyncLossIndicationCallback = c;
|
||||
}
|
||||
|
||||
void
|
||||
LrWpanMac::SetMlmePollConfirmCallback(MlmePollConfirmCallback c)
|
||||
{
|
||||
m_mlmePollConfirmCallback = c;
|
||||
}
|
||||
|
||||
void
|
||||
LrWpanMac::SetMlmeSetConfirmCallback(MlmeSetConfirmCallback c)
|
||||
{
|
||||
m_mlmeSetConfirmCallback = c;
|
||||
}
|
||||
|
||||
void
|
||||
LrWpanMac::SetMlmeGetConfirmCallback(MlmeGetConfirmCallback c)
|
||||
{
|
||||
m_mlmeGetConfirmCallback = c;
|
||||
}
|
||||
|
||||
void
|
||||
LrWpanMac::PdDataIndication(uint32_t psduLength, Ptr<Packet> p, uint8_t lqi)
|
||||
{
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user