A Discrete-Event Network Simulator
API
traced-callback-typedef-test-suite.cc
Go to the documentation of this file.
1 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
2 /*
3  * Copyright (c) 2015 Lawrence Livermore National Laboratory
4  *
5  * This program is free software; you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License version 2 as
7  * published by the Free Software Foundation;
8  *
9  * This program is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  * GNU General Public License for more details.
13  *
14  * You should have received a copy of the GNU General Public License
15  * along with this program; if not, write to the Free Software
16  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17  *
18  * Author: Peter D. Barnes, Jr. <pdbarnes@llnl.gov>
19  */
20 
21 #include <iostream>
22 #include <sstream>
23 #include <set>
24 #include <string>
25 #include "ns3/test.h"
26 #include "ns3/core-module.h"
27 #include "ns3/dsr-module.h" // DsrOPtionSRHeader
28 #include "ns3/internet-module.h" // Ipv4, Ipv4L3Protocol, Ipv4PacketProbe
29  // Ipv6L3Protocol, Ipv6PacketProbe
30 #include "ns3/lr-wpan-mac.h" // LrWpanMac
31 #include "ns3/lte-module.h" // PhyReceptionStatParameters,
32  // PhyTransmissionStatParameters,
33  // LteUePowerControl
34 #include "ns3/mesh-module.h" // PeerManagementProtocol
35 #include "ns3/mobility-module.h" // MobilityModel
36 #include "ns3/network-module.h" // Packet, PacketBurst
37 #include "ns3/olsr-module.h" // olsr::RoutingProtocol
38 #include "ns3/sixlowpan-module.h" // SixLowPanNetDevice
39 #include "ns3/spectrum-module.h" // SpectrumValue
40 #include "ns3/stats-module.h" // TimeSeriesAdapter
41 #include "ns3/uan-module.h" // UanPhy
42 #include "ns3/wifi-phy-state-helper.h"
43 #include "ns3/wifi-mac-header.h"
44 
45 using namespace ns3;
46 
65 {
66 public:
69  {
70  }
71 
80  static std::size_t m_nArgs;
81 
82 private:
83 
85  template <typename... Ts>
86  class Checker;
87 
88  virtual void DoRun (void);
89 
90 }; // TracedCallbackTypedefTestCase
91 
92 /*
93  --------------------------------------------------------------------
94  Support functions and classes
95  --------------------------------------------------------------------
96 */
97 
98 namespace {
99 
106 std::set<std::string>
108 {
109  std::set<std::string> dupes;
110 
111  dupes.insert ("LteRlc::NotifyTxTracedCallback");
112  dupes.insert ("LteRlc::ReceiveTracedCallback");
113  dupes.insert ("LteUeRrc::ImsiCidRntiTracedCallback");
114  dupes.insert ("LteUeRrc::MibSibHandoverTracedCallback");
115  dupes.insert ("WifiPhyStateHelper::RxEndErrorTracedCallback");
116 
117  return dupes;
118 }
119 
125 std::set<std::string> g_dupes = Duplicates ();
126 
127 
137 template <typename T>
138 inline
139 std::string TypeName (int N)
140 {
141  return "unknown";
142 }
143 
149 #define TYPENAME(T) \
150  template <> \
151  inline std::string \
152  TypeName < T > (int N) \
153  { \
154  std::stringstream ss; \
155  ss << # T << "(" << N << ")"; \
156  return ss.str (); \
157  }
158 
224 #undef TYPENAME
225 
226 
237 void SinkIt (std::size_t N)
238 {
239  std::cout << "with " << N << " args." << std::endl;
241 }
242 
248 template <typename... Ts>
250 {
251 public:
256  static void Sink (Ts...)
257  {
258  const std::size_t n = sizeof...(Ts);
259  SinkIt (n);
260  }
261 };
262 
263 
264 } // unnamed namespace
265 
266 
267 /*
268  --------------------------------------------------------------------
269  Class TracedCallbackTypedefTestCase implementation
270 
271  We put the template implementations here to break a dependency cycle
272  from the Checkers() to TracedCbSink<> to SinkIt()
273  --------------------------------------------------------------------
274 */
275 
277 
278 template <typename... Ts>
280 {
283 public:
284  Checker () {};
285  virtual ~Checker () {};
286 
288  std::tuple<typename TypeTraits<Ts>::BaseType...> m_items;
289 
291  const std::size_t m_nItems = sizeof...(Ts);
292 
296  template <typename U>
297  void Invoke (void)
298  {
299  U sink = TracedCbSink<Ts...>::Sink;
300  Callback<void, Ts...> cb = MakeCallback (sink);
301 
302  std::cout << TypeName<U> (m_nItems) << " invoked ";
303  m_cb.ConnectWithoutContext (cb);
304  std::apply(m_cb, m_items);
305  Cleanup ();
306  }
307 
311  void Cleanup ()
312  {
313  if (m_nArgs == 0)
314  {
315  std::cout << std::endl;
316  }
317  NS_ASSERT_MSG (m_nArgs && m_nArgs == m_nItems, "failed, m_nArgs: " << m_nArgs << " N: " << m_nItems);
318  m_nArgs = 0;
319  }
320 
321 };
322 
323 
325  : TestCase ("Check basic TracedCallback operation")
326 {
327 }
328 
335 #define DUPE(U, T1) \
336  if (g_dupes.find ( # U ) == g_dupes.end ()) { \
337  NS_TEST_ASSERT_MSG_NE (0, 1, \
338  "expected to find " << # U << " in dupes."); } \
339  if (TypeName<U> (0) == TypeName<T1> (0)) { \
340  std::cout << # U << " matches " << # T1 << std::endl; } \
341  else \
342  NS_TEST_ASSERT_MSG_EQ \
343  (TypeName<U> (0), TypeName<T1> (0), \
344  "the typedef " << # U << \
345  " used to match the typedef " << # T1 << \
346  " but no longer does. Please add a new CHECK call.")
347 
348 
354 #define CHECK(U, ...) \
355  CreateObject< Checker< __VA_ARGS__ > > ()->Invoke<U> ()
356 
357 
358 void
360 {
361 
362  CHECK (dsr::DsrOptionSRHeader::TracedCallback,
363  const dsr::DsrOptionSRHeader &);
364 
365  CHECK (EpcUeNas::StateTracedCallback,
367 
368  CHECK (Ipv4L3Protocol::DropTracedCallback,
369  const Ipv4Header &, Ptr<const Packet>,
371 
372  CHECK (Ipv4L3Protocol::SentTracedCallback,
373  const Ipv4Header &, Ptr<const Packet>, uint32_t);
374 
375  CHECK (Ipv4L3Protocol::TxRxTracedCallback,
376  Ptr<const Packet>, Ptr<Ipv4>, uint32_t);
377 
378  CHECK (Ipv6L3Protocol::DropTracedCallback,
379  const Ipv6Header &, Ptr<const Packet>,
381 
382  CHECK (Ipv6L3Protocol::SentTracedCallback,
383  const Ipv6Header &, Ptr<const Packet>, uint32_t);
384 
385  CHECK (Ipv6L3Protocol::TxRxTracedCallback,
386  Ptr<const Packet>, Ptr<Ipv6>, uint32_t);
387 
388  CHECK (LrWpanMac::SentTracedCallback,
389  Ptr<const Packet>, uint8_t, uint8_t);
390 
391  CHECK (LrWpanMac::StateTracedCallback,
393 
394  CHECK (LrWpanPhy::StateTracedCallback,
396 
397  CHECK (LteEnbMac::DlSchedulingTracedCallback,
398  uint32_t, uint32_t, uint16_t,
399  uint8_t, uint16_t, uint8_t, uint16_t, uint8_t);
400 
401  CHECK (LteEnbMac::UlSchedulingTracedCallback,
402  uint32_t, uint32_t, uint16_t, uint8_t, uint16_t);
403 
404  CHECK (LteEnbPhy::ReportUeSinrTracedCallback,
405  uint16_t, uint16_t, double, uint8_t);
406 
407  CHECK (LteEnbPhy::ReportInterferenceTracedCallback,
408  uint16_t, Ptr<SpectrumValue>);
409 
410  CHECK (LteEnbRrc::ConnectionHandoverTracedCallback,
411  uint64_t, uint16_t, uint16_t);
412 
413  CHECK (LteEnbRrc::HandoverStartTracedCallback,
414  uint64_t, uint16_t, uint16_t, uint16_t);
415 
416  CHECK (LteEnbRrc::NewUeContextTracedCallback,
417  uint16_t, uint16_t);
418 
419  CHECK (LteEnbRrc::ReceiveReportTracedCallback,
420  uint64_t, uint16_t, uint16_t, LteRrcSap::MeasurementReport);
421 
422  CHECK (LtePdcp::PduRxTracedCallback,
423  uint16_t, uint8_t, uint32_t, uint64_t);
424 
425  CHECK (LtePdcp::PduTxTracedCallback,
426  uint16_t, uint8_t, uint32_t);
427 
428  DUPE (LteRlc::NotifyTxTracedCallback, LtePdcp::PduTxTracedCallback);
429 
430  DUPE (LteRlc::ReceiveTracedCallback, LtePdcp::PduRxTracedCallback);
431 
432  CHECK (LteUePhy::RsrpSinrTracedCallback,
433  uint16_t, uint16_t, double, double, uint8_t);
434 
435  CHECK (LteUePhy::StateTracedCallback,
436  uint16_t, uint16_t, LteUePhy::State, LteUePhy::State);
437 
438  CHECK (LteUeRrc::CellSelectionTracedCallback,
439  uint64_t, uint16_t);
440 
441  DUPE (LteUeRrc::ImsiCidRntiTracedCallback, LteEnbRrc::ConnectionHandoverTracedCallback);
442 
443  DUPE (LteUeRrc::MibSibHandoverTracedCallback, LteEnbRrc::HandoverStartTracedCallback);
444 
445  CHECK (LteUeRrc::StateTracedCallback,
446  uint64_t, uint16_t, uint16_t, LteUeRrc::State, LteUeRrc::State);
447 
448  CHECK (Mac48Address::TracedCallback,
449  Mac48Address);
450 
451  CHECK (MobilityModel::TracedCallback,
453 
454  CHECK (olsr::RoutingProtocol::PacketTxRxTracedCallback,
455  const olsr::PacketHeader &, const olsr::MessageList &);
456 
457  CHECK (olsr::RoutingProtocol::TableChangeTracedCallback,
458  uint32_t);
459 
460  CHECK (Packet::AddressTracedCallback,
461  Ptr<const Packet>, const Address &);
462 
463  CHECK (Packet::Mac48AddressTracedCallback,
465 
466  CHECK (Packet::SinrTracedCallback,
467  Ptr<const Packet>, double);
468 
469  CHECK (Packet::SizeTracedCallback,
470  uint32_t, uint32_t);
471 
472  CHECK (Packet::TracedCallback,
474 
475  CHECK (PacketBurst::TracedCallback,
477 
478  CHECK (dot11s::PeerManagementProtocol::LinkOpenCloseTracedCallback,
480 
481  CHECK (PhyReceptionStatParameters::TracedCallback,
483 
484  CHECK (PhyTransmissionStatParameters::TracedCallback,
486 
487  CHECK (SixLowPanNetDevice::DropTracedCallback,
489  Ptr<SixLowPanNetDevice>, uint32_t);
490 
491  CHECK (SixLowPanNetDevice::RxTxTracedCallback,
493 
494  CHECK (SpectrumChannel::LossTracedCallback,
496 
497  CHECK (SpectrumValue::TracedCallback,
499 
500  CHECK (TimeSeriesAdaptor::OutputTracedCallback,
501  double, double);
502 
503  CHECK (UanMac::PacketModeTracedCallback,
505 
506  CHECK (UanMacCw::QueueTracedCallback,
507  Ptr<const Packet>, uint16_t);
508 
509  CHECK (UanMacRc::QueueTracedCallback,
510  Ptr<const Packet>, uint32_t);
511 
512  CHECK (UanNetDevice::RxTxTracedCallback,
514 
515  CHECK (UanPhy::TracedCallback,
516  Ptr<const Packet>, double, UanTxMode);
517 
518  CHECK (UeManager::StateTracedCallback,
519  uint64_t, uint16_t, uint16_t, UeManager::State, UeManager::State);
520 
521  CHECK (WifiMacHeader::TracedCallback,
522  const WifiMacHeader &);
523 
524  CHECK (WifiPhyStateHelper::RxEndErrorTracedCallback,
525  Ptr<const Packet>, double);
526 
527  CHECK (WifiPhyStateHelper::RxOkTracedCallback,
529 
530  CHECK (WifiPhyStateHelper::StateTracedCallback,
532 
533  CHECK (WifiPhyStateHelper::TxTracedCallback,
535 
536  CHECK (WifiRemoteStationManager::PowerChangeTracedCallback,
537  double, double, Mac48Address);
538 
539  CHECK (WifiRemoteStationManager::RateChangeTracedCallback,
541 }
542 
549 {
550 public:
552 };
553 
555  : TestSuite ("traced-callback-typedef", SYSTEM)
556 {
557  AddTestCase (new TracedCallbackTypedefTestCase, TestCase::QUICK);
558 }
559 
TracedCallback< Ts... > m_cb
TracedCallback to be called.
std::tuple< typename TypeTraits< Ts >::BaseType... > m_items
Arguments of the TracedCallback.
static std::size_t m_nArgs
Number of arguments passed to callback.
virtual void DoRun(void)
Implementation to actually run this TestCase.
a polymophic address class
Definition: address.h:91
Callback template class.
Definition: callback.h:1279
Class for representing data rates.
Definition: data-rate.h:89
State
Definition of NAS states as per "LTE - From theory to practice", Section 3.2.3.2 "Connection Establis...
Definition: epc-ue-nas.h:163
void(* StateTracedCallback)(const State oldState, const State newState)
TracedCallback signature for state change events.
Definition: epc-ue-nas.h:184
Packet header for IPv4.
Definition: ipv4-header.h:34
DropReason
Reason why a packet has been dropped.
void(* DropTracedCallback)(const Ipv4Header &header, Ptr< const Packet > packet, DropReason reason, Ptr< Ipv4 > ipv4, uint32_t interface)
TracedCallback signature for packet drop events.
void(* TxRxTracedCallback)(Ptr< const Packet > packet, Ptr< Ipv4 > ipv4, uint32_t interface)
TracedCallback signature for packet transmission or reception events.
void(* SentTracedCallback)(const Ipv4Header &header, Ptr< const Packet > packet, uint32_t interface)
TracedCallback signature for packet send, forward, or local deliver events.
Packet header for IPv6.
Definition: ipv6-header.h:36
void(* SentTracedCallback)(const Ipv6Header &header, Ptr< const Packet > packet, uint32_t interface)
TracedCallback signature for packet sent, forwarded or local-delivered events.
DropReason
Reason why a packet has been dropped.
void(* DropTracedCallback)(const Ipv6Header &header, Ptr< const Packet > packet, DropReason reason, Ptr< Ipv6 > ipv6, uint32_t interface)
TracedCallback signature for packet drop events.
void(* TxRxTracedCallback)(Ptr< const Packet > packet, Ptr< Ipv6 > ipv6, uint32_t interface)
TracedCallback signature for packet transmission or reception events.
void(* StateTracedCallback)(LrWpanMacState oldState, LrWpanMacState newState)
TracedCallback signature for LrWpanMacState change events.
Definition: lr-wpan-mac.h:975
void(* SentTracedCallback)(Ptr< const Packet > packet, uint8_t retries, uint8_t backoffs)
TracedCallback signature for sent packets.
Definition: lr-wpan-mac.h:964
void(* StateTracedCallback)(Time time, LrWpanPhyEnumeration oldState, LrWpanPhyEnumeration newState)
TracedCallback signature for Trx state change events.
Definition: lr-wpan-phy.h:491
void(* DlSchedulingTracedCallback)(const uint32_t frame, const uint32_t subframe, const uint16_t rnti, const uint8_t mcs0, const uint16_t tbs0Size, const uint8_t mcs1, const uint16_t tbs1Size, const uint8_t ccId)
TracedCallback signature for DL scheduling events.
Definition: lte-enb-mac.h:169
void(* UlSchedulingTracedCallback)(const uint32_t frame, const uint32_t subframe, const uint16_t rnti, const uint8_t mcs, const uint16_t tbsSize)
TracedCallback signature for UL scheduling events.
Definition: lte-enb-mac.h:183
void(* ReportUeSinrTracedCallback)(uint16_t cellId, uint16_t rnti, double sinrLinear, uint8_t componentCarrierId)
TracedCallback signature for the linear average of SRS SINRs.
Definition: lte-enb-phy.h:311
void(* ReportInterferenceTracedCallback)(uint16_t cellId, Ptr< SpectrumValue > spectrumValue)
TracedCallback signature for the linear average of SRS SINRs.
Definition: lte-enb-phy.h:322
void(* ReceiveReportTracedCallback)(const uint64_t imsi, const uint16_t cellId, const uint16_t rnti, const LteRrcSap::MeasurementReport report)
TracedCallback signature for receive measurement report events.
Definition: lte-enb-rrc.h:1092
void(* HandoverStartTracedCallback)(const uint64_t imsi, const uint16_t cellId, const uint16_t rnti, const uint16_t targetCid)
TracedCallback signature for handover start events.
Definition: lte-enb-rrc.h:1078
void(* ConnectionHandoverTracedCallback)(const uint64_t imsi, const uint16_t cellId, const uint16_t rnti)
TracedCallback signature for connection and handover end events.
Definition: lte-enb-rrc.h:1067
void(* NewUeContextTracedCallback)(const uint16_t cellId, const uint16_t rnti)
TracedCallback signature for new Ue Context events.
Definition: lte-enb-rrc.h:1057
void(* PduRxTracedCallback)(const uint16_t rnti, const uint8_t lcid, const uint32_t size, const uint64_t delay)
TracedCallback signature for PDU receive event.
Definition: lte-pdcp.h:141
void(* PduTxTracedCallback)(uint16_t rnti, uint8_t lcid, uint32_t size)
TracedCallback for PDU transmission event.
Definition: lte-pdcp.h:129
void(* StateTracedCallback)(uint16_t cellId, uint16_t rnti, State oldState, State newState)
TracedCallback signature for state transition events.
Definition: lte-ue-phy.h:311
State
The states of the UE PHY entity.
Definition: lte-ue-phy.h:67
void(* RsrpSinrTracedCallback)(uint16_t cellId, uint16_t rnti, double rsrp, double sinr, uint8_t componentCarrierId)
TracedCallback signature for cell RSRP and SINR report.
Definition: lte-ue-phy.h:323
State
The states of the UE RRC entity.
Definition: lte-ue-rrc.h:106
void(* CellSelectionTracedCallback)(uint64_t imsi, uint16_t cellId)
TracedCallback signature for imsi, cellId and rnti events.
Definition: lte-ue-rrc.h:346
void(* StateTracedCallback)(uint64_t imsi, uint16_t cellId, uint16_t rnti, State oldState, State newState)
TracedCallback signature for state transition events.
Definition: lte-ue-rrc.h:380
an EUI-48 address
Definition: mac48-address.h:44
void(* TracedCallback)(Mac48Address value)
TracedCallback signature for Mac48Address.
A class used for addressing MAC8 MAC's.
Definition: mac8-address.h:43
void(* TracedCallback)(Ptr< const MobilityModel > model)
TracedCallback signature.
A base class which provides memory management and object aggregation.
Definition: object.h:88
void(* TracedCallback)(Ptr< const PacketBurst > burst)
TracedCallback signature for Ptr<PacketBurst>
Definition: packet-burst.h:83
void(* SizeTracedCallback)(uint32_t oldSize, uint32_t newSize)
TracedCallback signature for changes in packet size.
Definition: packet.h:755
void(* Mac48AddressTracedCallback)(Ptr< const Packet > packet, Mac48Address mac)
TracedCallback signature for packet and Mac48Address.
Definition: packet.h:746
void(* AddressTracedCallback)(Ptr< const Packet > packet, const Address &address)
TracedCallback signature for packet and Address.
Definition: packet.h:727
void(* SinrTracedCallback)(Ptr< const Packet > packet, double sinr)
TracedCallback signature for packet and SINR.
Definition: packet.h:764
void(* TracedCallback)(Ptr< const Packet > packet)
TracedCallback signature for Ptr<Packet>
Definition: packet.h:718
void(* DropTracedCallback)(DropReason reason, Ptr< const Packet > packet, Ptr< SixLowPanNetDevice > sixNetDevice, uint32_t ifindex)
TracedCallback signature fo packet drop events.
DropReason
Enumeration of the dropping reasons in SixLoWPAN.
void(* RxTxTracedCallback)(Ptr< const Packet > packet, Ptr< SixLowPanNetDevice > sixNetDevice, uint32_t ifindex)
TracedCallback signature for packet send/receive events.
void(* LossTracedCallback)(Ptr< const SpectrumPhy > txPhy, Ptr< const SpectrumPhy > rxPhy, double lossDb)
TracedCallback signature for path loss calculation events.
void(* TracedCallback)(Ptr< SpectrumValue > value)
TracedCallback signature for SpectrumValue.
encapsulates test code
Definition: test.h:994
void AddTestCase(TestCase *testCase, TestDuration duration=QUICK)
Add an individual child TestCase to this test suite.
Definition: test.cc:299
A suite of tests to run.
Definition: test.h:1188
Simulation virtual time values and global simulation resolution.
Definition: nstime.h:103
void(* OutputTracedCallback)(const double now, const double data)
TracedCallback signature for output trace.
Forward calls to a chain of Callback.
void(* QueueTracedCallback)(Ptr< const Packet > packet, uint16_t proto)
TracedCallback signature for enqueue/dequeue of a packet.
Definition: uan-mac-cw.h:107
void(* PacketModeTracedCallback)(Ptr< const Packet > packet, UanTxMode mode)
TracedCallback signature for packet reception/enqueue/dequeue events.
Definition: uan-mac.h:129
void(* QueueTracedCallback)(Ptr< const Packet > packet, uint32_t proto)
TracedCallback signature for dequeue of a packet.
Definition: uan-mac-rc.h:199
void(* RxTxTracedCallback)(Ptr< const Packet > packet, Mac8Address address)
TracedCallback signature for MAC send/receive events.
void(* TracedCallback)(Ptr< const Packet > pkt, double sinr, UanTxMode mode)
TracedCallback signature for UanPhy packet send/receive events.
Definition: uan-phy.h:216
Abstraction of packet modulation information.
Definition: uan-tx-mode.h:42
State
The state of the UeManager at the eNB RRC.
Definition: lte-enb-rrc.h:87
void(* StateTracedCallback)(const uint64_t imsi, const uint16_t cellId, const uint16_t rnti, const State oldState, const State newState)
TracedCallback signature for state transition events.
Definition: lte-enb-rrc.h:393
Implements the IEEE 802.11 MAC header.
void(* TracedCallback)(const WifiMacHeader &header)
TracedCallback signature for WifiMacHeader.
represent a single transmission mode
Definition: wifi-mode.h:48
void(* TxTracedCallback)(Ptr< const Packet > packet, WifiMode mode, WifiPreamble preamble, uint8_t power)
TracedCallback signature for transmit event.
void(* StateTracedCallback)(Time start, Time duration, WifiPhyState state)
TracedCallback signature for state changes.
void(* RxOkTracedCallback)(Ptr< const Packet > packet, double snr, WifiMode mode, WifiPreamble preamble)
TracedCallback signature for receive end OK event.
void(* PowerChangeTracedCallback)(double oldPower, double newPower, Mac48Address remoteAddress)
TracedCallback signature for power change events.
void(* RateChangeTracedCallback)(DataRate oldRate, DataRate newRate, Mac48Address remoteAddress)
TracedCallback signature for rate change events.
void(* LinkOpenCloseTracedCallback)(Mac48Address src, const Mac48Address dst)
TracedCallback signature for link open/close events.
Source Route (SR) Message Format.
void(* TracedCallback)(const DsrOptionSRHeader &header)
TracedCallback signature for DsrOptionSrHeader.
void(* PacketTxRxTracedCallback)(const PacketHeader &header, const MessageList &messages)
TracedCallback signature for Packet transmit and receive events.
void(* TableChangeTracedCallback)(uint32_t size)
TracedCallback signature for routing table computation.
#define NS_ASSERT_MSG(condition, message)
At runtime, in debugging builds, if this condition is not true, the program prints the message to out...
Definition: assert.h:88
LrWpanMacState
MAC states.
Definition: lr-wpan-mac.h:70
LrWpanPhyEnumeration
IEEE802.15.4-2006 PHY Emumerations Table 18 in section 6.2.3.
Definition: lr-wpan-phy.h:106
std::set< std::string > Duplicates(void)
Record typedefs which are identical to previously declared.
#define CHECK(U,...)
Check the TracedCallback by calling its Invoke function.
#define DUPE(U, T1)
Check the TracedCallback duplicate by checking if it maches the TracedCallback it is supposed to be e...
std::set< std::string > g_dupes
Container for duplicate types.
#define TYPENAME(T)
Returns a sting representing the type of a class.
std::string TypeName(int N)
Stringify the known TracedCallback type names.
WifiPreamble
The type of preamble to be used by an IEEE 802.11 transmission.
std::vector< MessageHeader > MessageList
Definition: olsr-header.h:695
Every class exported by the ns3 library is enclosed in the ns3 namespace.
Callback< R, Ts... > MakeCallback(R(T::*memPtr)(Ts...), OBJ objPtr)
Build Callbacks for class method members which take varying numbers of arguments and potentially retu...
Definition: callback.h:1648
MeasurementReport structure.
Definition: lte-rrc-sap.h:902
PhyReceptionStatParameters structure.
Definition: lte-common.h:213
void(* TracedCallback)(const PhyReceptionStatParameters params)
TracedCallback signature.
Definition: lte-common.h:233
PhyTransmissionStatParameters structure.
Definition: lte-common.h:187
void(* TracedCallback)(const PhyTransmissionStatParameters params)
TracedCallback signature.
Definition: lte-common.h:206
static TracedCallbackTypedefTestSuite tracedCallbackTypedefTestSuite
Static variable for test initialization.
WifiPhyState
The state of the PHY layer.
Ptr< PacketSink > sink
Definition: wifi-tcp.cc:56