src/node/internet-node.cc
changeset 247 fb7375bb43d7
parent 242 a44932709b47
child 248 a912210e52ac
--- a/src/node/internet-node.cc	Mon Feb 12 19:28:19 2007 +0100
+++ b/src/node/internet-node.cc	Mon Feb 12 19:28:48 2007 +0100
@@ -31,6 +31,7 @@
 #include "arp.h"
 #include "udp-ipv4-l4-protocol.h"
 #include "arp-l3-protocol.h"
+#include "ipv4-loopback-interface.h"
 
 namespace ns3 {
 
@@ -46,6 +47,7 @@
   m_l3Demux->Insert (Ipv4L3Protocol (this));
   m_l3Demux->Insert (ArpL3Protocol (this));
   m_ipv4L4Demux->Insert (UdpIpv4L4Protocol (this));
+  SetupLoopback ();
 }
 
 InternetNode::InternetNode (InternetNode const &o)
@@ -56,6 +58,17 @@
   m_udp = o.m_udp->Copy (this);
   m_ipv4 = o.m_ipv4->Copy (this);
   m_arp = o.m_arp->Copy (this);
+  SetupLoopback ();
+}
+
+void
+InternetNode::SetupLoopback (void)
+{
+  Ipv4LoopbackInterface * interface = new Ipv4LoopbackInterface (this);
+  interface->SetAddress (Ipv4Address::GetLoopback ());
+  interface->SetNetworkMask (Ipv4Mask::GetLoopback ());
+  uint32_t index = m_ipv4->AddInterface (interface);
+  m_ipv4->AddHostRouteTo (Ipv4Address::GetLoopback (), index);
 }
 
 // Copy this node
@@ -85,4 +98,22 @@
   return m_ipv4L4Demux;
 }
 
+Ipv4 *
+InternetNode::GetIpv4 (void) const
+{
+  return m_ipv4;
+}
+Udp *
+InternetNode::GetUdp (void) const
+{
+  return m_udp;
+}
+
+Arp *
+InternetNode::GetArp (void) const
+{
+  return m_arp;
+}
+
+
 }//namespace ns3