diff --git a/src/routing/static-router.cc b/src/routing/static-router.cc index 4bacbda64..48a697a5e 100644 --- a/src/routing/static-router.cc +++ b/src/routing/static-router.cc @@ -203,6 +203,15 @@ StaticRouter::DiscoverLSAs (void) Ptr ipv4Local = m_node->QueryInterface (Ipv4::iid); NS_ASSERT_MSG(ipv4Local, "QI for interface failed"); // +// We are, for now at least, only going to report RouterLSAs in this method. +// What this means is that there is going to be one advertisement with some +// number of link records. This means that GetNumLSAs will actually always +// return exactly one. +// + StaticRouterLSA *pLSA = new StaticRouterLSA; + pLSA->m_linkStateId = m_routerId; + pLSA->m_advertisingRtr = m_routerId; +// // We need to ask the node for the number of net devices attached. This isn't // necessarily equal to the number of links to adjacent nodes (other routers) // as the number of devices may include those for stub networks (e.g., @@ -277,15 +286,10 @@ StaticRouter::DiscoverLSAs (void) Ipv4Mask maskRemote = ipv4Remote->GetNetworkMask(ifIndexRemote); NS_DEBUG("Working with remote address " << addrRemote); // -// Now we can fill out the link state advertisement for this link. There -// are always two link records; the first is a point-to-point record -// describing the link and the second is a stub network record with the -// network number. +// Now we can fill out the link records for this link. There are always two +// link records; the first is a point-to-point record describing the link and +// the second is a stub network record with the network number. // - StaticRouterLSA *pLSA = new StaticRouterLSA; - pLSA->m_linkStateId = m_routerId; - pLSA->m_advertisingRtr = m_routerId; - StaticRouterLinkRecord *plr = new StaticRouterLinkRecord; plr->m_linkType = StaticRouterLinkRecord::PointToPoint; plr->m_linkId = rtrIdRemote; @@ -299,11 +303,12 @@ StaticRouter::DiscoverLSAs (void) plr->m_linkData.Set(maskRemote.GetHostOrder()); // Frown pLSA->AddLinkRecord(plr); plr = 0; - - m_LSAs.push_back (pLSA); - NS_DEBUG(*pLSA); } - +// +// The LSA goes on a list of LSAs in case we want to begin exporting other +// kinds of advertisements (than Router LSAs). + m_LSAs.push_back (pLSA); + NS_DEBUG(*pLSA); return m_LSAs.size (); }