Adding rt, rte, nh
diff --git a/nlsr_nhl.cpp b/nlsr_nhl.cpp
new file mode 100644
index 0000000..9675467
--- /dev/null
+++ b/nlsr_nhl.cpp
@@ -0,0 +1,46 @@
+#include <iostream>
+
+#include "nlsr_nhl.hpp"
+#include "nlsr_nexthop.hpp"
+
+using namespace std;
+
+static bool
+nexthopCompare(NextHop& nh1, NextHop& nh2){
+ return nh1.getConnectingFace()==nh2.getConnectingFace();
+}
+
+/**
+Add next hop to the Next Hop list
+If next hop is new it is added
+If next hop already exists in next
+hop list then updates the route
+cost with new next hop's route cost
+*/
+
+void
+Nhl::addNextHop(NextHop& nh)
+{
+ std::list<NextHop >::iterator it = std::find_if( nexthopList.begin(),
+ nexthopList.end(),
+ bind(&nexthopCompare, _1, nh));
+ if ( it == nexthopList.end() ){
+ nexthopList.push_back(nh);
+ }
+
+ (*it).setRouteCost(nh.getRouteCost());
+}
+
+
+ostream&
+operator<<(ostream& os, Nhl& nhl)
+{
+ std::list< NextHop > nexthopList = nhl.getNextHopList();
+ int i=1;
+ for( std::list<NextHop>::iterator it=nexthopList.begin();
+ it!= nexthopList.end() ; it++,i++)
+ {
+ os << "Nexthop "<<i<<": "<<(*it)<<endl;
+ }
+ return os;
+}