Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code | Sign in
(89)

Unified Diff: src/lr-wpan/helper/lr-wpan-tsch-helper.cc

Issue 192220043: Make the 802.15.4e TSCH model run-time switchable from base 802.15.4
Patch Set: Created 9 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Please Sign in to add in-line comments.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/lr-wpan/helper/lr-wpan-tsch-helper.h ('k') | src/lr-wpan/model/lr-wpan-mac-header.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/lr-wpan/helper/lr-wpan-tsch-helper.cc
===================================================================
--- a/src/lr-wpan/helper/lr-wpan-tsch-helper.cc
+++ b/src/lr-wpan/helper/lr-wpan-tsch-helper.cc
@@ -20,7 +20,7 @@
* Tom Henderson <thomas.r.henderson@boeing.com>
* Luis Pacheco <luisbelem@gmail.com>
* Peishuo Li <pressthunder@gmail.com>
- * Pjotr Kourzanov <peter.kourzanov@xs4all.nl>
+ * Peter Kourzanov <peter.kourzanov@gmail.com>
*/
#include <cassert>
#include "lr-wpan-tsch-helper.h"
@@ -404,8 +404,10 @@
Mac16Address address;
address.CopyFrom (idBuf);
- device->GetMac ()->SetPanId (panId);
- device->GetMac ()->SetShortAddress (address);
+ device->GetOMac ()->SetPanId (panId);
+ device->GetOMac ()->SetShortAddress (address);
+ device->GetNMac ()->SetPanId (panId);
+ device->GetNMac ()->SetShortAddress (address);
id++;
}
}
@@ -456,12 +458,13 @@
if (promiscuous == true)
{
- device->GetMac ()->TraceConnectWithoutContext ("PromiscSniffer", MakeBoundCallback (&PcapSniffLrWpan, file));
-
+ device->GetOMac()->TraceConnectWithoutContext ("PromiscSniffer", MakeBoundCallback (&PcapSniffLrWpan, file));
+ device->GetNMac()->TraceConnectWithoutContext ("PromiscSniffer", MakeBoundCallback (&PcapSniffLrWpan, file));
}
else
{
- device->GetMac ()->TraceConnectWithoutContext ("Sniffer", MakeBoundCallback (&PcapSniffLrWpan, file));
+ device->GetOMac()->TraceConnectWithoutContext ("Sniffer", MakeBoundCallback (&PcapSniffLrWpan, file));
+ device->GetNMac()->TraceConnectWithoutContext ("Sniffer", MakeBoundCallback (&PcapSniffLrWpan, file));
}
}
@@ -522,8 +525,10 @@
asciiTraceHelper.HookDefaultReceiveSinkWithoutContext<LrWpanTschNetDevice> (device, "MacRx", theStream);
- device->GetMac ()->TraceConnectWithoutContext ("MacTx", MakeBoundCallback (&AsciiLrWpanTschMacTransmitSinkWithoutContext, theStream));
- device->GetMac ()->TraceConnectWithoutContext ("MacMaxRetries", MakeBoundCallback (&AsciiLrWpanTschMacMaxRetriesSinkWithoutContext, theStream));
+ device->GetOMac()->TraceConnectWithoutContext ("MacTx", MakeBoundCallback (&AsciiLrWpanTschMacTransmitSinkWithoutContext, theStream));
+ device->GetNMac()->TraceConnectWithoutContext ("MacTx", MakeBoundCallback (&AsciiLrWpanTschMacTransmitSinkWithoutContext, theStream));
+ device->GetOMac()->TraceConnectWithoutContext ("MacMaxRetries", MakeBoundCallback (&AsciiLrWpanTschMacMaxRetriesSinkWithoutContext, theStream));
+ device->GetNMac()->TraceConnectWithoutContext ("MacMaxRetries", MakeBoundCallback (&AsciiLrWpanTschMacMaxRetriesSinkWithoutContext, theStream));
asciiTraceHelper.HookDefaultEnqueueSinkWithoutContext<LrWpanTschNetDevice> (device, "MacTxEnqueue", theStream);
asciiTraceHelper.HookDefaultDequeueSinkWithoutContext<LrWpanTschNetDevice> (device, "MacTxDequeue", theStream);
asciiTraceHelper.HookDefaultDropSinkWithoutContext<LrWpanTschNetDevice> (device, "MacTxDrop", theStream);
@@ -546,28 +551,54 @@
oss.str ("");
+ oss << "/NodeList/" << nodeid << "/DeviceList/" << deviceid << "/$ns3::LrWpanTschNetDevice/TschMac/MacRx";
+ device->GetNMac()->TraceConnect ("MacRx", oss.str (), MakeBoundCallback (&AsciiTraceHelper::DefaultReceiveSinkWithContext, stream));
+
+ oss.str ("");
+ oss << "/NodeList/" << nodeid << "/DeviceList/" << deviceid << "/$ns3::LrWpanTschNetDevice/TschMac/MacTx";
+ device->GetNMac()->TraceConnect ("MacTx", oss.str (), MakeBoundCallback (&AsciiLrWpanTschMacTransmitSinkWithContext, stream));
+
+ oss.str ("");
+ oss << "/NodeList/" << nodeid << "/DeviceList/" << deviceid << "/$ns3::LrWpanTschNetDevice/TschMac/MacMaxRetries";
+ device->GetNMac()->TraceConnect ("MacMaxRetries", oss.str (), MakeBoundCallback (&AsciiLrWpanTschMacMaxRetriesSinkWithContext, stream));
+
+ oss.str ("");
+ oss << "/NodeList/" << nodeid << "/DeviceList/" << deviceid << "/$ns3::LrWpanTschNetDevice/TschMac/MacTxEnqueue";
+ device->GetNMac()->TraceConnect ("MacTxEnqueue", oss.str (), MakeBoundCallback (&AsciiTraceHelper::DefaultEnqueueSinkWithContext, stream));
+
+ oss.str ("");
+ oss << "/NodeList/" << nodeid << "/DeviceList/" << deviceid << "/$ns3::LrWpanTschNetDevice/TschMac/MacTxDequeue";
+ device->GetNMac()->TraceConnect ("MacTxDequeue", oss.str (), MakeBoundCallback (&AsciiTraceHelper::DefaultDequeueSinkWithContext, stream));
+
+ oss.str ("");
+ oss << "/NodeList/" << nodeid << "/DeviceList/" << deviceid << "/$ns3::LrWpanTschNetDevice/TschMac/MacTxDrop";
+ device->GetNMac()->TraceConnect ("MacTxDrop", oss.str (), MakeBoundCallback (&AsciiTraceHelper::DefaultDropSinkWithContext, stream));
+
+ //
+
+ oss.str ("");
oss << "/NodeList/" << nodeid << "/DeviceList/" << deviceid << "/$ns3::LrWpanTschNetDevice/Mac/MacRx";
- device->GetMac ()->TraceConnect ("MacRx", oss.str (), MakeBoundCallback (&AsciiTraceHelper::DefaultReceiveSinkWithContext, stream));
+ device->GetOMac()->TraceConnect ("MacRx", oss.str (), MakeBoundCallback (&AsciiTraceHelper::DefaultReceiveSinkWithContext, stream));
oss.str ("");
oss << "/NodeList/" << nodeid << "/DeviceList/" << deviceid << "/$ns3::LrWpanTschNetDevice/Mac/MacTx";
- device->GetMac ()->TraceConnect ("MacTx", oss.str (), MakeBoundCallback (&AsciiLrWpanTschMacTransmitSinkWithContext, stream));
+ device->GetOMac()->TraceConnect ("MacTx", oss.str (), MakeBoundCallback (&AsciiLrWpanTschMacTransmitSinkWithContext, stream));
oss.str ("");
oss << "/NodeList/" << nodeid << "/DeviceList/" << deviceid << "/$ns3::LrWpanTschNetDevice/Mac/MacMaxRetries";
- device->GetMac ()->TraceConnect ("MacMaxRetries", oss.str (), MakeBoundCallback (&AsciiLrWpanTschMacMaxRetriesSinkWithContext, stream));
+ device->GetOMac()->TraceConnect ("MacMaxRetries", oss.str (), MakeBoundCallback (&AsciiLrWpanTschMacMaxRetriesSinkWithContext, stream));
oss.str ("");
oss << "/NodeList/" << nodeid << "/DeviceList/" << deviceid << "/$ns3::LrWpanTschNetDevice/Mac/MacTxEnqueue";
- device->GetMac ()->TraceConnect ("MacTxEnqueue", oss.str (), MakeBoundCallback (&AsciiTraceHelper::DefaultEnqueueSinkWithContext, stream));
+ device->GetOMac()->TraceConnect ("MacTxEnqueue", oss.str (), MakeBoundCallback (&AsciiTraceHelper::DefaultEnqueueSinkWithContext, stream));
oss.str ("");
oss << "/NodeList/" << nodeid << "/DeviceList/" << deviceid << "/$ns3::LrWpanTschNetDevice/Mac/MacTxDequeue";
- device->GetMac ()->TraceConnect ("MacTxDequeue", oss.str (), MakeBoundCallback (&AsciiTraceHelper::DefaultDequeueSinkWithContext, stream));
+ device->GetOMac()->TraceConnect ("MacTxDequeue", oss.str (), MakeBoundCallback (&AsciiTraceHelper::DefaultDequeueSinkWithContext, stream));
oss.str ("");
oss << "/NodeList/" << nodeid << "/DeviceList/" << deviceid << "/$ns3::LrWpanTschNetDevice/Mac/MacTxDrop";
- device->GetMac ()->TraceConnect ("MacTxDrop", oss.str (), MakeBoundCallback (&AsciiTraceHelper::DefaultDropSinkWithContext, stream));
+ device->GetOMac()->TraceConnect ("MacTxDrop", oss.str (), MakeBoundCallback (&AsciiTraceHelper::DefaultDropSinkWithContext, stream));
}
@@ -622,8 +653,8 @@
for (uint32_t j = 0; j < node->GetNDevices (); ++j)
{
Ptr<LrWpanTschNetDevice> device = node->GetDevice(j)->GetObject<LrWpanTschNetDevice> ();
- device->GetPhy ()->TraceConnectWithoutContext ("PhyLinkInformation", MakeCallback (&LrWpanTschMac::GetPhylinkInformation, device->GetMac()));
- device->GetMac ()->TraceConnectWithoutContext ("MacLinkInformation", MakeBoundCallback (&ReceivedPowerTracing, stream_recPower));
+ device->GetPhy ()->TraceConnectWithoutContext ("PhyLinkInformation", MakeCallback (&LrWpanTschMac::GetPhylinkInformation, device->GetNMac()));
+ device->GetNMac()->TraceConnectWithoutContext ("MacLinkInformation", MakeBoundCallback (&ReceivedPowerTracing, stream_recPower));
}
}
}
@@ -654,40 +685,78 @@
}
oss.str ("");
+ oss << "/NodeList/" << nodeid << "/DeviceList/" << deviceid << "/$ns3::LrWpanTschNetDevice/TschMac/MacRxDataTxAck";
+ device->GetNMac()->TraceConnect ("MacRxDataTxAck", oss.str (), MakeBoundCallback (&EnergyTraceWithContext, stream));
+
+ oss.str ("");
+ oss << "/NodeList/" << nodeid << "/DeviceList/" << deviceid << "/$ns3::LrWpanTschNetDevice/TschMac/MacTxData";
+ device->GetNMac()->TraceConnect ("MacTxData", oss.str (), MakeBoundCallback (&EnergyTraceWithContext, stream));
+
+ oss.str ("");
+ oss << "/NodeList/" << nodeid << "/DeviceList/" << deviceid << "/$ns3::LrWpanTschNetDevice/TschMac/MacRxData";
+ device->GetNMac()->TraceConnect ("MacRxData", oss.str (), MakeBoundCallback (&EnergyTraceWithContext, stream));
+
+ oss.str ("");
+ oss << "/NodeList/" << nodeid << "/DeviceList/" << deviceid << "/$ns3::LrWpanTschNetDevice/TschMac/MacTxDataRxAck";
+ device->GetNMac()->TraceConnect ("MacTxDataRxAck", oss.str (), MakeBoundCallback (&EnergyTraceWithContext, stream));
+
+ oss.str ("");
+ oss << "/NodeList/" << nodeid << "/DeviceList/" << deviceid << "/$ns3::LrWpanTschNetDevice/TschMac/MacSleep";
+ device->GetNMac()->TraceConnect ("MacSleep", oss.str (), MakeBoundCallback (&EnergyTraceWithContext, stream));
+
+ oss.str ("");
+ oss << "/NodeList/" << nodeid << "/DeviceList/" << deviceid << "/$ns3::LrWpanTschNetDevice/TschMac/MacIdle";
+ device->GetNMac()->TraceConnect ("MacIdle", oss.str (), MakeBoundCallback (&EnergyTraceWithContext, stream));
+
+ oss.str ("");
+ oss << "/NodeList/" << nodeid << "/DeviceList/" << deviceid << "/$ns3::LrWpanTschNetDevice/TschMac/MacChannelBusy";
+ device->GetNMac()->TraceConnect ("MacChannelBusy", oss.str (), MakeBoundCallback (&EnergyTraceWithContext, stream));
+
+ oss.str ("");
+ oss << "/NodeList/" << nodeid << "/DeviceList/" << deviceid << "/$ns3::LrWpanTschNetDevice/TschMac/MacWaitAck";
+ device->GetNMac()->TraceConnect ("MacWaitAck", oss.str (), MakeBoundCallback (&EnergyTraceWithContext, stream));
+
+ oss.str ("");
+ oss << "/NodeList/" << nodeid << "/DeviceList/" << deviceid << "/$ns3::LrWpanTschNetDevice/TschMac/MacEmptyBuffer";
+ device->GetNMac()->TraceConnect ("MacEmptyBuffer", oss.str (), MakeBoundCallback (&EnergyTraceWithContext, stream));
+
+ //
+
+ oss.str ("");
oss << "/NodeList/" << nodeid << "/DeviceList/" << deviceid << "/$ns3::LrWpanTschNetDevice/Mac/MacRxDataTxAck";
- device->GetMac ()->TraceConnect ("MacRxDataTxAck", oss.str (), MakeBoundCallback (&EnergyTraceWithContext, stream));
+ device->GetOMac()->TraceConnect ("MacRxDataTxAck", oss.str (), MakeBoundCallback (&EnergyTraceWithContext, stream));
oss.str ("");
oss << "/NodeList/" << nodeid << "/DeviceList/" << deviceid << "/$ns3::LrWpanTschNetDevice/Mac/MacTxData";
- device->GetMac ()->TraceConnect ("MacTxData", oss.str (), MakeBoundCallback (&EnergyTraceWithContext, stream));
+ device->GetOMac()->TraceConnect ("MacTxData", oss.str (), MakeBoundCallback (&EnergyTraceWithContext, stream));
oss.str ("");
oss << "/NodeList/" << nodeid << "/DeviceList/" << deviceid << "/$ns3::LrWpanTschNetDevice/Mac/MacRxData";
- device->GetMac ()->TraceConnect ("MacRxData", oss.str (), MakeBoundCallback (&EnergyTraceWithContext, stream));
+ device->GetOMac()->TraceConnect ("MacRxData", oss.str (), MakeBoundCallback (&EnergyTraceWithContext, stream));
oss.str ("");
oss << "/NodeList/" << nodeid << "/DeviceList/" << deviceid << "/$ns3::LrWpanTschNetDevice/Mac/MacTxDataRxAck";
- device->GetMac ()->TraceConnect ("MacTxDataRxAck", oss.str (), MakeBoundCallback (&EnergyTraceWithContext, stream));
+ device->GetOMac()->TraceConnect ("MacTxDataRxAck", oss.str (), MakeBoundCallback (&EnergyTraceWithContext, stream));
oss.str ("");
oss << "/NodeList/" << nodeid << "/DeviceList/" << deviceid << "/$ns3::LrWpanTschNetDevice/Mac/MacSleep";
- device->GetMac ()->TraceConnect ("MacSleep", oss.str (), MakeBoundCallback (&EnergyTraceWithContext, stream));
+ device->GetOMac()->TraceConnect ("MacSleep", oss.str (), MakeBoundCallback (&EnergyTraceWithContext, stream));
oss.str ("");
oss << "/NodeList/" << nodeid << "/DeviceList/" << deviceid << "/$ns3::LrWpanTschNetDevice/Mac/MacIdle";
- device->GetMac ()->TraceConnect ("MacIdle", oss.str (), MakeBoundCallback (&EnergyTraceWithContext, stream));
+ device->GetOMac()->TraceConnect ("MacIdle", oss.str (), MakeBoundCallback (&EnergyTraceWithContext, stream));
oss.str ("");
oss << "/NodeList/" << nodeid << "/DeviceList/" << deviceid << "/$ns3::LrWpanTschNetDevice/Mac/MacChannelBusy";
- device->GetMac ()->TraceConnect ("MacChannelBusy", oss.str (), MakeBoundCallback (&EnergyTraceWithContext, stream));
+ device->GetOMac()->TraceConnect ("MacChannelBusy", oss.str (), MakeBoundCallback (&EnergyTraceWithContext, stream));
oss.str ("");
oss << "/NodeList/" << nodeid << "/DeviceList/" << deviceid << "/$ns3::LrWpanTschNetDevice/Mac/MacWaitAck";
- device->GetMac ()->TraceConnect ("MacWaitAck", oss.str (), MakeBoundCallback (&EnergyTraceWithContext, stream));
+ device->GetOMac()->TraceConnect ("MacWaitAck", oss.str (), MakeBoundCallback (&EnergyTraceWithContext, stream));
oss.str ("");
oss << "/NodeList/" << nodeid << "/DeviceList/" << deviceid << "/$ns3::LrWpanTschNetDevice/Mac/MacEmptyBuffer";
- device->GetMac ()->TraceConnect ("MacEmptyBuffer", oss.str (), MakeBoundCallback (&EnergyTraceWithContext, stream));
+ device->GetOMac()->TraceConnect ("MacEmptyBuffer", oss.str (), MakeBoundCallback (&EnergyTraceWithContext, stream));
}
@@ -702,7 +771,7 @@
for (NetDeviceContainer::Iterator i = devs.Begin (); i != devs.End (); i++)
{
Ptr<LrWpanTschNetDevice> lrDevice = DynamicCast<LrWpanTschNetDevice> (*i);
- lrDevice->GetMac ()->MlmeSetSlotframeRequest (slotframeRequest);
+ lrDevice->GetNMac()->MlmeSetSlotframeRequest (slotframeRequest);
}
}
@@ -714,7 +783,7 @@
slotframeRequest.slotframeHandle = slotframehandle;
slotframeRequest.Operation = MlmeSlotframeOperation_ADD;
slotframeRequest.size = size;
- dev->GetObject<LrWpanTschNetDevice> ()->GetMac ()->MlmeSetSlotframeRequest (slotframeRequest);
+ dev->GetObject<LrWpanTschNetDevice> ()->GetNMac()->MlmeSetSlotframeRequest (slotframeRequest);
}
void
@@ -730,7 +799,7 @@
for (NetDeviceContainer::Iterator i = devs.Begin (); i != devs.End (); i++)
{
Ptr<LrWpanTschNetDevice> lrDevice = DynamicCast<LrWpanTschNetDevice> (*i);
- lrDevice->GetMac ()->MlmeSetSlotframeRequest (slotframeRequest);
+ lrDevice->GetNMac()->MlmeSetSlotframeRequest (slotframeRequest);
}
}
@@ -751,14 +820,14 @@
linkRequest.linkOptions.set(0,1);
linkRequest.linkType = MlmeSetLinkRequestlinkType_NORMAL;
linkRequest.nodeAddr = Mac16Address::ConvertFrom(dst->GetAddress());
- src->GetObject<LrWpanTschNetDevice> ()->GetMac ()->MlmeSetLinkRequest (linkRequest);
+ src->GetObject<LrWpanTschNetDevice> ()->GetNMac()->MlmeSetLinkRequest (linkRequest);
//01010000 to receive
linkRequest.linkOptions.reset();
linkRequest.linkOptions.set(1,1);
linkRequest.linkOptions.set(3,1);
linkRequest.nodeAddr = Mac16Address::ConvertFrom(src->GetAddress());
- dst->GetObject<LrWpanTschNetDevice> ()->GetMac ()->MlmeSetLinkRequest (linkRequest);
+ dst->GetObject<LrWpanTschNetDevice> ()->GetNMac()->MlmeSetLinkRequest (linkRequest);
}
void
@@ -772,7 +841,6 @@
linkRequest.Timeslot = params.timeslot;
linkRequest.ChannelOffset = params.channelOffset;
-
//10000000 to transmit
linkRequest.linkOptions.reset();
linkRequest.linkOptions.set(0,1);
@@ -784,7 +852,7 @@
linkRequest.linkFadingBias = FadingBias[dstPos][srcPos];
linkRequest.TxID = srcPos;
linkRequest.RxID = dstPos;
- devs.Get(srcPos)->GetObject<LrWpanTschNetDevice> ()->GetMac ()->MlmeSetLinkRequest (linkRequest);
+ devs.Get(srcPos)->GetObject<LrWpanTschNetDevice> ()->GetNMac()->MlmeSetLinkRequest (linkRequest);
//01010000 to receive
linkRequest.linkOptions.reset();
@@ -794,7 +862,7 @@
linkRequest.linkFadingBias = FadingBias[dstPos][srcPos];
linkRequest.TxID = srcPos;
linkRequest.RxID = dstPos;
- devs.Get(dstPos)->GetObject<LrWpanTschNetDevice> ()->GetMac ()->MlmeSetLinkRequest (linkRequest);
+ devs.Get(dstPos)->GetObject<LrWpanTschNetDevice> ()->GetNMac()->MlmeSetLinkRequest (linkRequest);
}
void
@@ -817,7 +885,7 @@
linkRequest.linkFadingBias = NULL;
linkRequest.TxID = senderPos;
linkRequest.RxID = 0;
- devs.Get(senderPos)->GetObject<LrWpanTschNetDevice> ()->GetMac ()->MlmeSetLinkRequest (linkRequest);
+ devs.Get(senderPos)->GetObject<LrWpanTschNetDevice> ()->GetNMac()->MlmeSetLinkRequest (linkRequest);
//01010000 to receive
linkRequest.linkOptions.reset();
@@ -830,7 +898,7 @@
linkRequest.linkFadingBias = FadingBias[i][senderPos];
linkRequest.TxID = senderPos;
linkRequest.RxID = i;
- devs.Get(i)->GetObject<LrWpanTschNetDevice> ()->GetMac ()->MlmeSetLinkRequest (linkRequest);
+ devs.Get(i)->GetObject<LrWpanTschNetDevice> ()->GetNMac()->MlmeSetLinkRequest (linkRequest);
}
}
@@ -855,7 +923,7 @@
linkRequest.TxID = i;
linkRequest.RxID = coordinatorPos;
linkRequest.linkFadingBias = FadingBias[coordinatorPos][i];
- devs.Get(i)->GetObject<LrWpanTschNetDevice> ()->GetMac ()->MlmeSetLinkRequest (linkRequest);
+ devs.Get(i)->GetObject<LrWpanTschNetDevice> ()->GetNMac()->MlmeSetLinkRequest (linkRequest);
}
//01010000 to receive
@@ -869,7 +937,7 @@
linkRequest.TxID = coordinatorPos;
linkRequest.RxID = i;
linkRequest.linkFadingBias = FadingBias[i][coordinatorPos];
- devs.Get(i)->GetObject<LrWpanTschNetDevice> ()->GetMac ()->MlmeSetLinkRequest (linkRequest);
+ devs.Get(i)->GetObject<LrWpanTschNetDevice> ()->GetNMac()->MlmeSetLinkRequest (linkRequest);
}
}
@@ -889,14 +957,14 @@
linkRequest.linkOptions.set(0,1);
linkRequest.linkType = MlmeSetLinkRequestlinkType_NORMAL;
linkRequest.nodeAddr = Mac16Address::ConvertFrom(dst->GetAddress());
- src->GetObject<LrWpanTschNetDevice> ()->GetMac ()->MlmeSetLinkRequest (linkRequest);
+ src->GetObject<LrWpanTschNetDevice> ()->GetNMac()->MlmeSetLinkRequest (linkRequest);
//01010000 to receive
linkRequest.linkOptions.reset();
linkRequest.linkOptions.set(1,1);
linkRequest.linkOptions.set(3,1);
linkRequest.nodeAddr = Mac16Address::ConvertFrom(src->GetAddress());
- dst->GetObject<LrWpanTschNetDevice> ()->GetMac ()->MlmeSetLinkRequest (linkRequest);
+ dst->GetObject<LrWpanTschNetDevice> ()->GetNMac()->MlmeSetLinkRequest (linkRequest);
}
void
@@ -921,7 +989,7 @@
linkRequest.linkFadingBias = FadingBias[dstPos][srcPos];
linkRequest.TxID = srcPos;
linkRequest.RxID = dstPos;
- devs.Get(srcPos)->GetObject<LrWpanTschNetDevice> ()->GetMac ()->MlmeSetLinkRequest (linkRequest);
+ devs.Get(srcPos)->GetObject<LrWpanTschNetDevice> ()->GetNMac()->MlmeSetLinkRequest (linkRequest);
//01010000 to receive
linkRequest.linkOptions.reset();
@@ -931,7 +999,7 @@
linkRequest.linkFadingBias = FadingBias[dstPos][srcPos];
linkRequest.TxID = srcPos;
linkRequest.RxID = dstPos;
- devs.Get(dstPos)->GetObject<LrWpanTschNetDevice> ()->GetMac ()->MlmeSetLinkRequest (linkRequest);
+ devs.Get(dstPos)->GetObject<LrWpanTschNetDevice> ()->GetNMac()->MlmeSetLinkRequest (linkRequest);
}
void
@@ -951,14 +1019,14 @@
linkRequest.linkOptions.set(0,1);
linkRequest.linkType = MlmeSetLinkRequestlinkType_NORMAL;
linkRequest.nodeAddr = Mac16Address::ConvertFrom(dst->GetAddress());
- src->GetObject<LrWpanTschNetDevice> ()->GetMac ()->MlmeSetLinkRequest (linkRequest);
+ src->GetObject<LrWpanTschNetDevice> ()->GetNMac()->MlmeSetLinkRequest (linkRequest);
//01010000 to receive
linkRequest.linkOptions.reset();
linkRequest.linkOptions.set(1,1);
linkRequest.linkOptions.set(3,1);
linkRequest.nodeAddr = Mac16Address::ConvertFrom(src->GetAddress());
- dst->GetObject<LrWpanTschNetDevice> ()->GetMac ()->MlmeSetLinkRequest (linkRequest);
+ dst->GetObject<LrWpanTschNetDevice> ()->GetNMac()->MlmeSetLinkRequest (linkRequest);
}
void
@@ -984,7 +1052,7 @@
linkRequest.linkFadingBias = FadingBias[dstPos][srcPos];
linkRequest.TxID = srcPos;
linkRequest.RxID = dstPos;
- devs.Get(srcPos)->GetObject<LrWpanTschNetDevice> ()->GetMac ()->MlmeSetLinkRequest (linkRequest);
+ devs.Get(srcPos)->GetObject<LrWpanTschNetDevice> ()->GetNMac()->MlmeSetLinkRequest (linkRequest);
//01010000 to receive
linkRequest.linkOptions.reset();
@@ -994,14 +1062,13 @@
linkRequest.linkFadingBias = FadingBias[dstPos][srcPos];
linkRequest.TxID = srcPos;
linkRequest.RxID = dstPos;
- devs.Get(dstPos)->GetObject<LrWpanTschNetDevice> ()->GetMac ()->MlmeSetLinkRequest (linkRequest);
+ devs.Get(dstPos)->GetObject<LrWpanTschNetDevice> ()->GetNMac()->MlmeSetLinkRequest (linkRequest);
}
void
-LrWpanTschHelper::ConfigureSlotframeAllToPan(NetDeviceContainer devs, int empty_timeslots)
+LrWpanTschHelper::ConfigureSlotframeAllToPan(NetDeviceContainer devs, int empty_timeslots, bool bidir, bool bcast)
{
- //DynamicCast<LrWpanTschNetDevice> (netdev.Get(i))
- int size = 1 + devs.GetN () + empty_timeslots - 1;
+ int size = (bcast ? 2 : 1) + (bidir ? 2 : 1)*(devs.GetN ()-1) + empty_timeslots;
AddSlotframe(devs,m_slotframehandle,size);
@@ -1014,15 +1081,27 @@
alparams.timeslot = 0;
AddAdvLink (devs,0,alparams);
- //alparams.linkHandle = 1;
- //alparams.timeslot = 1;
- //AddBcastLinks (devs,0,alparams);
+ if (bcast) {
+ alparams.linkHandle = 1;
+ alparams.timeslot = 1;
+ AddBcastLinks (devs,0,alparams);
+ }
- for (u_int32_t i = 0; i < devs.GetN ()-1 ; i++)
+ uint16_t c=(bcast ? 2 : 1);
+
+ for (u_int32_t i = 0; i < devs.GetN ()-1; i++,c++)
{
- alparams.linkHandle = i+1;
- alparams.timeslot = i+1;
- AddLink (DynamicCast<LrWpanTschNetDevice> (devs.Get (i+1)),DynamicCast<LrWpanTschNetDevice> (devs.Get (0)),alparams);
+ alparams.linkHandle = c;
+ alparams.timeslot = c;
+ AddLink(devs,i+1,0,alparams,false);
+ }
+
+ if (bidir)
+ for (u_int32_t i = 0; i < devs.GetN ()-1; i++,c++)
+ {
+ alparams.linkHandle = c;
+ alparams.timeslot = c;
+ AddLink(devs,0,i+1,alparams,false);
}
m_slotframehandle++;
}
@@ -1030,15 +1109,20 @@
void
LrWpanTschHelper::EnableTsch(NetDeviceContainer devs, double start, double duration)
{
+ /*
MlmeTschModeRequestParams modeRequest,modeRequestoff;
modeRequest.TSCHMode = MlmeTschMode_ON;
modeRequestoff.TSCHMode = MlmeTschMode_OFF;
+ */
for (u_int32_t i = 0;i<devs.GetN ();i++)
{
- Simulator::Schedule(Seconds(start),&LrWpanTschMac::MlmeTschModeRequest,devs.Get (i)->GetObject<LrWpanTschNetDevice> ()->GetMac(),modeRequest);
+ Simulator::Schedule(Seconds(start),
+ &LrWpanTschNetDevice::SetTschMode,devs.Get (i)->GetObject<LrWpanTschNetDevice> (),
+ true);
Simulator::Schedule(Seconds(start+duration),
- &LrWpanTschMac::MlmeTschModeRequest,devs.Get (i)->GetObject<LrWpanTschNetDevice> ()->GetMac(),modeRequestoff);
+ &LrWpanTschNetDevice::SetTschMode,devs.Get (i)->GetObject<LrWpanTschNetDevice> (),
+ false);
}
}
« no previous file with comments | « src/lr-wpan/helper/lr-wpan-tsch-helper.h ('k') | src/lr-wpan/model/lr-wpan-mac-header.h » ('j') | no next file with comments »

Powered by Google App Engine
RSS Feeds Recent Issues | This issue
This is Rietveld f62528b