diff --git a/examples/simple-point-to-point-olsr.cc b/examples/simple-point-to-point-olsr.cc index db4ca96c5..7f1d14441 100644 --- a/examples/simple-point-to-point-olsr.cc +++ b/examples/simple-point-to-point-olsr.cc @@ -184,7 +184,6 @@ int main (int argc, char *argv[]) // Start the sink sink->Start (Seconds (1.1)); sink->Stop (Seconds (10.0)); - sink->SetQuiet (); // disable output from the Receive callback // Here, finish off packet routing configuration // This will likely set by some global StaticRouting object in the future diff --git a/src/routing/olsr/routing-table.cc b/src/routing/olsr/routing-table.cc index aa41f49fd..2ed82c3ab 100644 --- a/src/routing/olsr/routing-table.cc +++ b/src/routing/olsr/routing-table.cc @@ -106,7 +106,8 @@ RoutingTable::FindSendEntry (RoutingTableEntry const &entry, bool -RoutingTable::RequestRoute (const Ipv4Header &ipHeader, +RoutingTable::RequestRoute (uint32_t ifIndex, + const Ipv4Header &ipHeader, Packet packet, RouteReplyCallback routeReply) { @@ -135,6 +136,24 @@ RoutingTable::RequestRoute (const Ipv4Header &ipHeader, } } +bool +RoutingTable::RequestIfIndex (Ipv4Address destination, + uint32_t& ifIndex) +{ + RoutingTableEntry entry1, entry2; + if (Lookup (destination, entry1)) + { + bool foundSendEntry = FindSendEntry (entry1, entry2); + NS_ASSERT (foundSendEntry); + ifIndex = entry2.interface; + return true; + } + else + { + return false; + } +} + /// /// \brief Adds a new entry into the routing table. diff --git a/src/routing/olsr/routing-table.h b/src/routing/olsr/routing-table.h index aebed6316..f8b397f07 100644 --- a/src/routing/olsr/routing-table.h +++ b/src/routing/olsr/routing-table.h @@ -100,9 +100,13 @@ public: RoutingTableEntry &outEntry) const; // From Ipv4RoutingProtocol - virtual bool RequestRoute (const Ipv4Header &ipHeader, + virtual bool RequestRoute (uint32_t ifIndex, + const Ipv4Header &ipHeader, Packet packet, RouteReplyCallback routeReply); + virtual bool RequestIfIndex (Ipv4Address destination, + uint32_t& ifIndex); + }; }}; // namespace ns3, olsr