|
|
| 258 |
struct QueueEntryTest : public TestCase |
258 |
struct QueueEntryTest : public TestCase |
| 259 |
{ |
259 |
{ |
| 260 |
QueueEntryTest () : TestCase ("QueueEntry") {} |
260 |
QueueEntryTest () : TestCase ("QueueEntry") {} |
| 261 |
void Unicast (Ptr<Ipv4Route> route, Ptr<const Packet> packet, const Ipv4Header & header) {} |
261 |
void Unicast (Ptr<const NetDevice> idev, Ptr<Ipv4Route> route, Ptr<const Packet> packet, const Ipv4Header & header) {} |
| 262 |
void Error (Ptr<const Packet>, const Ipv4Header &, Socket::SocketErrno) {} |
262 |
void Error (Ptr<const Packet>, const Ipv4Header &, Socket::SocketErrno) {} |
| 263 |
void Unicast2 (Ptr<Ipv4Route> route, Ptr<const Packet> packet, const Ipv4Header & header) {} |
263 |
void Unicast2 (Ptr<const NetDevice> idev, Ptr<Ipv4Route> route, Ptr<const Packet> packet, const Ipv4Header & header) {} |
| 264 |
void Error2 (Ptr<const Packet>, const Ipv4Header &, Socket::SocketErrno) {} |
264 |
void Error2 (Ptr<const Packet>, const Ipv4Header &, Socket::SocketErrno) {} |
| 265 |
virtual void DoRun () |
265 |
virtual void DoRun () |
| 266 |
{ |
266 |
{ |
|
|
| 270 |
h.SetSource (Ipv4Address ("4.3.2.1")); |
270 |
h.SetSource (Ipv4Address ("4.3.2.1")); |
| 271 |
Ipv4RoutingProtocol::UnicastForwardCallback ucb = MakeCallback (&QueueEntryTest::Unicast, this); |
271 |
Ipv4RoutingProtocol::UnicastForwardCallback ucb = MakeCallback (&QueueEntryTest::Unicast, this); |
| 272 |
Ipv4RoutingProtocol::ErrorCallback ecb = MakeCallback (&QueueEntryTest::Error, this); |
272 |
Ipv4RoutingProtocol::ErrorCallback ecb = MakeCallback (&QueueEntryTest::Error, this); |
| 273 |
QueueEntry entry (packet, h, ucb, ecb, Seconds (1)); |
273 |
QueueEntry entry (packet, h, 0, ucb, ecb, Seconds (1)); |
| 274 |
NS_TEST_EXPECT_MSG_EQ (h.GetDestination (), entry.GetIpv4Header ().GetDestination (), "trivial"); |
274 |
NS_TEST_EXPECT_MSG_EQ (h.GetDestination (), entry.GetIpv4Header ().GetDestination (), "trivial"); |
| 275 |
NS_TEST_EXPECT_MSG_EQ (h.GetSource (), entry.GetIpv4Header ().GetSource (), "trivial"); |
275 |
NS_TEST_EXPECT_MSG_EQ (h.GetSource (), entry.GetIpv4Header ().GetSource (), "trivial"); |
| 276 |
NS_TEST_EXPECT_MSG_EQ (ucb.IsEqual (entry.GetUnicastForwardCallback ()), true, "trivial"); |
276 |
NS_TEST_EXPECT_MSG_EQ (ucb.IsEqual (entry.GetUnicastForwardCallback ()), true, "trivial"); |
|
|
| 297 |
{ |
297 |
{ |
| 298 |
AodvRqueueTest () : TestCase ("Rqueue"), q (64, Seconds (30)) {} |
298 |
AodvRqueueTest () : TestCase ("Rqueue"), q (64, Seconds (30)) {} |
| 299 |
virtual void DoRun (); |
299 |
virtual void DoRun (); |
| 300 |
void Unicast (Ptr<Ipv4Route> route, Ptr<const Packet> packet, const Ipv4Header & header) {} |
300 |
void Unicast (Ptr<const NetDevice> idev, Ptr<Ipv4Route> route, Ptr<const Packet> packet, const Ipv4Header & header) {} |
| 301 |
void Error (Ptr<const Packet>, const Ipv4Header &, Socket::SocketErrno) {} |
301 |
void Error (Ptr<const Packet>, const Ipv4Header &, Socket::SocketErrno) {} |
| 302 |
void CheckSizeLimit (); |
302 |
void CheckSizeLimit (); |
| 303 |
void CheckTimeout (); |
303 |
void CheckTimeout (); |
|
|
| 321 |
h.SetSource (Ipv4Address ("4.3.2.1")); |
321 |
h.SetSource (Ipv4Address ("4.3.2.1")); |
| 322 |
Ipv4RoutingProtocol::UnicastForwardCallback ucb = MakeCallback (&AodvRqueueTest::Unicast, this); |
322 |
Ipv4RoutingProtocol::UnicastForwardCallback ucb = MakeCallback (&AodvRqueueTest::Unicast, this); |
| 323 |
Ipv4RoutingProtocol::ErrorCallback ecb = MakeCallback (&AodvRqueueTest::Error, this); |
323 |
Ipv4RoutingProtocol::ErrorCallback ecb = MakeCallback (&AodvRqueueTest::Error, this); |
| 324 |
QueueEntry e1 (packet, h, ucb, ecb, Seconds (1)); |
324 |
QueueEntry e1 (packet, h, 0, ucb, ecb, Seconds (1)); |
| 325 |
q.Enqueue (e1); |
325 |
q.Enqueue (e1); |
| 326 |
q.Enqueue (e1); |
326 |
q.Enqueue (e1); |
| 327 |
q.Enqueue (e1); |
327 |
q.Enqueue (e1); |
|
|
| 333 |
NS_TEST_EXPECT_MSG_EQ (q.GetSize (), 0, "trivial"); |
333 |
NS_TEST_EXPECT_MSG_EQ (q.GetSize (), 0, "trivial"); |
| 334 |
|
334 |
|
| 335 |
h.SetDestination (Ipv4Address ("2.2.2.2")); |
335 |
h.SetDestination (Ipv4Address ("2.2.2.2")); |
| 336 |
QueueEntry e2 (packet, h, ucb, ecb, Seconds (1)); |
336 |
QueueEntry e2 (packet, h, 0, ucb, ecb, Seconds (1)); |
| 337 |
q.Enqueue (e1); |
337 |
q.Enqueue (e1); |
| 338 |
q.Enqueue (e2); |
338 |
q.Enqueue (e2); |
| 339 |
Ptr<Packet> packet2 = Create<Packet> (); |
339 |
Ptr<Packet> packet2 = Create<Packet> (); |
| 340 |
QueueEntry e3 (packet2, h, ucb, ecb, Seconds (1)); |
340 |
QueueEntry e3 (packet2, h, 0, ucb, ecb, Seconds (1)); |
| 341 |
NS_TEST_EXPECT_MSG_EQ (q.Dequeue (Ipv4Address ("3.3.3.3"), e3), false, "trivial"); |
341 |
NS_TEST_EXPECT_MSG_EQ (q.Dequeue (Ipv4Address ("3.3.3.3"), e3), false, "trivial"); |
| 342 |
NS_TEST_EXPECT_MSG_EQ (q.Dequeue (Ipv4Address ("2.2.2.2"), e3), true, "trivial"); |
342 |
NS_TEST_EXPECT_MSG_EQ (q.Dequeue (Ipv4Address ("2.2.2.2"), e3), true, "trivial"); |
| 343 |
NS_TEST_EXPECT_MSG_EQ (q.Find (Ipv4Address ("2.2.2.2")), false, "trivial"); |
343 |
NS_TEST_EXPECT_MSG_EQ (q.Find (Ipv4Address ("2.2.2.2")), false, "trivial"); |
|
|
| 346 |
NS_TEST_EXPECT_MSG_EQ (q.GetSize (), 2, "trivial"); |
346 |
NS_TEST_EXPECT_MSG_EQ (q.GetSize (), 2, "trivial"); |
| 347 |
Ptr<Packet> packet4 = Create<Packet> (); |
347 |
Ptr<Packet> packet4 = Create<Packet> (); |
| 348 |
h.SetDestination (Ipv4Address ("1.2.3.4")); |
348 |
h.SetDestination (Ipv4Address ("1.2.3.4")); |
| 349 |
QueueEntry e4 (packet4, h, ucb, ecb, Seconds (20)); |
349 |
QueueEntry e4 (packet4, h, 0, ucb, ecb, Seconds (20)); |
| 350 |
q.Enqueue (e4); |
350 |
q.Enqueue (e4); |
| 351 |
NS_TEST_EXPECT_MSG_EQ (q.GetSize (), 3, "trivial"); |
351 |
NS_TEST_EXPECT_MSG_EQ (q.GetSize (), 3, "trivial"); |
| 352 |
q.DropPacketWithDst (Ipv4Address ("1.2.3.4")); |
352 |
q.DropPacketWithDst (Ipv4Address ("1.2.3.4")); |
|
|
| 371 |
Ipv4Header header; |
371 |
Ipv4Header header; |
| 372 |
Ipv4RoutingProtocol::UnicastForwardCallback ucb = MakeCallback (&AodvRqueueTest::Unicast, this); |
372 |
Ipv4RoutingProtocol::UnicastForwardCallback ucb = MakeCallback (&AodvRqueueTest::Unicast, this); |
| 373 |
Ipv4RoutingProtocol::ErrorCallback ecb = MakeCallback (&AodvRqueueTest::Error, this); |
373 |
Ipv4RoutingProtocol::ErrorCallback ecb = MakeCallback (&AodvRqueueTest::Error, this); |
| 374 |
QueueEntry e1 (packet, header, ucb, ecb, Seconds (1)); |
374 |
QueueEntry e1 (packet, header, 0, ucb, ecb, Seconds (1)); |
| 375 |
|
375 |
|
| 376 |
for (uint32_t i = 0; i < q.GetMaxQueueLen (); ++i) |
376 |
for (uint32_t i = 0; i < q.GetMaxQueueLen (); ++i) |
| 377 |
q.Enqueue (e1); |
377 |
q.Enqueue (e1); |