20 #include "ns3/mesh-information-element-vector.h"
23 #include "ns3/ie-dot11s-beacon-timing.h"
24 #include "ns3/ie-dot11s-configuration.h"
25 #include "ns3/ie-dot11s-id.h"
26 #include "ns3/ie-dot11s-metric-report.h"
27 #include "ns3/ie-dot11s-peer-management.h"
28 #include "ns3/ie-dot11s-peering-protocol.h"
29 #include "ns3/ie-dot11s-perr.h"
30 #include "ns3/ie-dot11s-prep.h"
31 #include "ns3/ie-dot11s-preq.h"
32 #include "ns3/ie-dot11s-rann.h"
50 :
TestCase(
"Serialization test for all mesh information elements"){};
51 void DoRun()
override;
73 peerMan1->SetPeerOpen(1);
75 peerMan2->SetPeerConfirm(1, 2);
84 beaconTiming->AddNeighboursTimingElementUnit(1,
Seconds(1.0),
Seconds(4.0));
85 beaconTiming->AddNeighboursTimingElementUnit(2,
Seconds(2.0),
Seconds(3.0));
86 beaconTiming->AddNeighboursTimingElementUnit(3,
Seconds(3.0),
Seconds(2.0));
87 beaconTiming->AddNeighboursTimingElementUnit(4,
Seconds(4.0),
Seconds(1.0));
97 rann->SetOriginatorAddress(
Mac48Address(
"11:22:33:44:55:66"));
98 rann->SetDestSeqNumber(5);
100 rann->IncrementMetric(2);
106 preq->SetHopcount(0);
109 preq->SetOriginatorAddress(
Mac48Address(
"11:22:33:44:55:66"));
110 preq->SetOriginatorSeqNumber(3);
111 preq->SetLifetime(4);
112 preq->AddDestinationAddressElement(
false,
false,
Mac48Address(
"11:11:11:11:11:11"), 5);
113 preq->AddDestinationAddressElement(
false,
false,
Mac48Address(
"22:22:22:22:22:22"), 6);
119 prep->SetHopcount(11);
121 prep->SetDestinationAddress(
Mac48Address(
"11:22:33:44:55:66"));
122 prep->SetDestinationSeqNumber(123);
123 prep->SetLifetime(5000);
124 prep->SetMetric(4321);
125 prep->SetOriginatorAddress(
Mac48Address(
"33:00:22:00:11:00"));
126 prep->SetOriginatorSeqNumber(666);
134 perr->AddAddressUnit(dest);
137 perr->AddAddressUnit(dest);
140 perr->AddAddressUnit(dest);
150 "Roundtrip serialization of all known information elements works");
uint32_t RemoveHeader(Header &header)
Deserialize and remove the header from the internal buffer.
void AddHeader(const Header &header)
Add header to this packet.
Smart pointer class similar to boost::intrusive_ptr.
void AddTestCase(TestCase *testCase, TestDuration duration=QUICK)
Add an individual child TestCase to this test suite.
@ REASON11S_MESH_CAPABILITY_POLICY_VIOLATION
#define NS_TEST_ASSERT_MSG_EQ(actual, limit, msg)
Test that an actual and expected (limit) value are equal and report and abort if not.
Time Seconds(double value)
Construct a Time in the indicated unit.
Every class exported by the ns3 library is enclosed in the ns3 namespace.
structure of unreachable destination - address and sequence number
Mac48Address destination
destination address
uint32_t seqnum
sequence number