checkpoint
authorCraig Dowell <craigdo@ee.washington.edu>
Mon, 09 Jul 2007 22:04:55 -0700
changeset 1051 75a95d50215e
parent 1050 ff779ca8ccb6 (current diff)
parent 1049 b572b65faba3 (diff)
child 1052 e10e6bbba40e
checkpoint
--- a/src/routing/static-route-manager.cc	Mon Jul 09 22:03:41 2007 -0700
+++ b/src/routing/static-route-manager.cc	Mon Jul 09 22:04:55 2007 -0700
@@ -89,21 +89,122 @@
 bool
 StaticRouteManagerTest::RunTests (void)
 {
-  DebugComponentEnable("StaticRouteManager");
   bool ok = true;
-#if 0
+
+  // Build fake link state database; four routers (0-3), 3 point-to-point
+  // links
+  //
+  //   n0
+  //      \ link 0
+  //       \          link 2
+  //        n2 -------------------------n3
+  //       /
+  //      / link 1
+  //    n1
+  //
+  //  link0:  10.1.1.1/30, 10.1.1.2/30
+  //  link1:  10.1.2.1/30, 10.1.2.2/30
+  //  link2:  10.1.3.1/30, 10.1.3.2/30
+  //
+  // Router 0
+  StaticRouterLinkRecord* lr0 = new StaticRouterLinkRecord();
+  lr0->m_linkId.Set(2);  // router ID 0.0.0.2
+  lr0->m_linkData.Set("10.1.1.1");
+  lr0->m_linkType = StaticRouterLinkRecord::PointToPoint;
+  lr0->m_metric = 1;
   StaticRouterLinkRecord* lr1 = new StaticRouterLinkRecord();
-  lr1->m_linkId.Set(1);
-  lr1->m_linkData.Set(0xffffffff);
-  lr1->m_linkType = StaticRouterLinkRecord::PointToPoint;
+  lr1->m_linkId.Set("10.1.1.1");  
+  lr1->m_linkData.Set("255.255.255.252");
+  lr1->m_linkType = StaticRouterLinkRecord::StubNetwork;
   lr1->m_metric = 1;
+  StaticRouterLSA* lsa0 = new StaticRouterLSA();
+  lsa0->m_linkStateId.Set(1);
+  lsa0->m_advertisingRtr.Set(1);
+  lsa0->AddLinkRecord(lr0);
+  lsa0->AddLinkRecord(lr1);
+
+  // Router 1
+  StaticRouterLinkRecord* lr2 = new StaticRouterLinkRecord();
+  lr2->m_linkId.Set(2);  // router ID 0.0.0.2
+  lr2->m_linkData.Set("10.1.2.1");
+  lr2->m_linkType = StaticRouterLinkRecord::PointToPoint;
+  lr2->m_metric = 1;
+  StaticRouterLinkRecord* lr3 = new StaticRouterLinkRecord();
+  lr3->m_linkId.Set("10.1.2.1");  
+  lr3->m_linkData.Set("255.255.255.252");
+  lr3->m_linkType = StaticRouterLinkRecord::StubNetwork;
+  lr3->m_metric = 1;
   StaticRouterLSA* lsa1 = new StaticRouterLSA();
   lsa1->m_linkStateId.Set(1);
   lsa1->m_advertisingRtr.Set(1);
-  lsa1->Add(lr1);
+  lsa1->AddLinkRecord(lr2);
+  lsa1->AddLinkRecord(lr3);
   
+  // Router 2 
+  StaticRouterLinkRecord* lr4 = new StaticRouterLinkRecord();
+  lr4->m_linkId.Set("0.0.0.0");
+  lr4->m_linkData.Set("10.1.1.2");
+  lr4->m_linkType = StaticRouterLinkRecord::PointToPoint;
+  lr4->m_metric = 1;
+  StaticRouterLinkRecord* lr5 = new StaticRouterLinkRecord();
+  lr5->m_linkId.Set("10.1.1.2");  
+  lr5->m_linkData.Set("255.255.255.252");
+  lr5->m_linkType = StaticRouterLinkRecord::StubNetwork;
+  lr5->m_metric = 1;
+  StaticRouterLinkRecord* lr6 = new StaticRouterLinkRecord();
+  lr6->m_linkId.Set(1);  
+  lr6->m_linkData.Set("10.1.2.2");
+  lr6->m_linkType = StaticRouterLinkRecord::PointToPoint;
+  lr6->m_metric = 1;
+  StaticRouterLinkRecord* lr7 = new StaticRouterLinkRecord();
+  lr7->m_linkId.Set("10.1.2.2");  
+  lr7->m_linkData.Set("255.255.255.252");
+  lr7->m_linkType = StaticRouterLinkRecord::StubNetwork;
+  lr7->m_metric = 1;
+  StaticRouterLinkRecord* lr8 = new StaticRouterLinkRecord();
+  lr8->m_linkId.Set(3);  
+  lr8->m_linkData.Set("10.1.3.2");
+  lr8->m_linkType = StaticRouterLinkRecord::PointToPoint;
+  lr8->m_metric = 1;
+  StaticRouterLinkRecord* lr9 = new StaticRouterLinkRecord();
+  lr9->m_linkId.Set("10.1.3.2");  
+  lr9->m_linkData.Set("255.255.255.252");
+  lr9->m_linkType = StaticRouterLinkRecord::StubNetwork;
+  lr9->m_metric = 1;
+  StaticRouterLSA* lsa2 = new StaticRouterLSA();
+  lsa2->m_linkStateId.Set(2);
+  lsa2->m_advertisingRtr.Set(2);
+  lsa2->AddLinkRecord(lr4);
+  lsa2->AddLinkRecord(lr5);
+  lsa2->AddLinkRecord(lr6);
+  lsa2->AddLinkRecord(lr7);
+  lsa2->AddLinkRecord(lr8);
+  lsa2->AddLinkRecord(lr9);
+
+  // Router 3
+  StaticRouterLinkRecord* lr10 = new StaticRouterLinkRecord();
+  lr10->m_linkId.Set(2);  // router ID 0.0.0.2
+  lr10->m_linkData.Set("10.1.2.1");
+  lr10->m_linkType = StaticRouterLinkRecord::PointToPoint;
+  lr10->m_metric = 1;
+  StaticRouterLinkRecord* lr11 = new StaticRouterLinkRecord();
+  lr11->m_linkId.Set("10.1.2.1");  
+  lr11->m_linkData.Set("255.255.255.252");
+  lr11->m_linkType = StaticRouterLinkRecord::StubNetwork;
+  lr11->m_metric = 1;
+  StaticRouterLSA* lsa3 = new StaticRouterLSA();
+  lsa3->m_linkStateId.Set(3);
+  lsa3->m_advertisingRtr.Set(3);
+  lsa3->AddLinkRecord(lr2);
+  lsa3->AddLinkRecord(lr3);
+
+  // Add four LSAs to the database; XXX todo next
+
+  delete lsa0;
   delete lsa1;
-#endif
+  delete lsa2;
+  delete lsa3;
+
   return ok;
 }