change functions for convenience
authorBorovkova Elena <borovkovaes@iitp.ru>
Wed, 05 Aug 2009 23:35:50 +0400
changeset 5650 0379b99f18f4
parent 5649 4915054ebfb2
child 5651 26deb6597b42
change functions for convenience
src/routing/aodv/aodv-routing-protocol.cc
src/routing/aodv/aodv-routing-protocol.h
--- a/src/routing/aodv/aodv-routing-protocol.cc	Wed Aug 05 23:04:55 2009 +0400
+++ b/src/routing/aodv/aodv-routing-protocol.cc	Wed Aug 05 23:35:50 2009 +0400
@@ -264,7 +264,7 @@
   Ipv4Address dst = header.GetDestination ();
   Ipv4Address origin = header.GetSource ();
 
-  if (IsMyOwnPacket (origin))
+  if (IsMyOwnAddress (origin))
     return true;
 
   // Local delivery to AODV interfaces
@@ -408,14 +408,13 @@
 }
 
 bool
-RoutingProtocol::IsMyOwnPacket (Ipv4Address src )
+RoutingProtocol::IsMyOwnAddress (Ipv4Address src )
 {
   for (std::map<Ptr<Socket> , Ipv4InterfaceAddress>::const_iterator j = m_socketAddresses.begin (); j != m_socketAddresses.end (); ++j)
     {
       Ipv4InterfaceAddress iface = j->second;
       if (src == iface.GetLocal ())
         {
-          NS_LOG_LOGIC(iface.GetLocal() << " receive own packet");
           return true;
         }
     }
@@ -481,7 +480,7 @@
       Ptr<Packet> packet = Create<Packet> ();
       packet->AddHeader (rreqHeader);
       packet->AddHeader (tHeader);
-      SendPacketFromRawSocket (/*packet*/packet, /*pair<Ptr<Socket> , Ipv4InterfaceAddress>*/ *j, /*dst*/iface.GetBroadcast (), /*TTL*/ ttl, /*id*/0);
+      SendPacketViaRawSocket (/*packet*/packet, /*pair<Ptr<Socket> , Ipv4InterfaceAddress>*/ *j, /*dst*/iface.GetBroadcast (), /*TTL*/ ttl, /*id*/0);
     }
   ScheduleRreqRetry (dst, ttl);
   htimer.Cancel ();
@@ -717,7 +716,7 @@
       packet->AddHeader (rreqHeader);
       TypeHeader tHeader (AODVTYPE_RREQ);
       packet->AddHeader (tHeader);
-      SendPacketFromRawSocket (/*packet*/packet, /*pair<Ptr<Socket> , Ipv4InterfaceAddress>*/ *j, /*dst*/iface.GetBroadcast (),
+      SendPacketViaRawSocket (/*packet*/packet, /*pair<Ptr<Socket> , Ipv4InterfaceAddress>*/ *j, /*dst*/iface.GetBroadcast (),
                                /*TTL*/ ipv4Header.GetTtl () - 1, /*id*/ipv4Header.GetIdentification ());
     }
 
@@ -750,9 +749,9 @@
   packet->AddHeader (rrepHeader);
   TypeHeader tHeader (AODVTYPE_RREP);
   packet->AddHeader (tHeader);
-  Ptr<Socket> socket = FindSocketWithInterfaceAddress (toOrigin.GetInterface ().GetLocal ());
+  Ptr<Socket> socket = FindSocketWithInterfaceAddress (toOrigin.GetInterface ());
   NS_ASSERT (socket);
-  SendPacketFromRawSocket (/*packet*/packet, /*pair<Ptr<Socket> , Ipv4InterfaceAddress>*/ std::make_pair(socket, toOrigin.GetInterface ()),
+  SendPacketViaRawSocket (/*packet*/packet, /*pair<Ptr<Socket> , Ipv4InterfaceAddress>*/ std::make_pair(socket, toOrigin.GetInterface ()),
                            /*dst*/toOrigin.GetNextHop (), /*TTL*/ toOrigin.GetHop (), /*id*/0);
 }
 
@@ -772,9 +771,9 @@
   packet->AddHeader (rrepHeader);
   TypeHeader tHeader (AODVTYPE_RREP);
   packet->AddHeader (tHeader);
-  Ptr<Socket> socket = FindSocketWithInterfaceAddress (toOrigin.GetInterface ().GetLocal ());
+  Ptr<Socket> socket = FindSocketWithInterfaceAddress (toOrigin.GetInterface ());
   NS_ASSERT (socket);
-  SendPacketFromRawSocket (/*packet*/packet, /*pair<Ptr<Socket> , Ipv4InterfaceAddress>*/ std::make_pair(socket, toOrigin.GetInterface ()),
+  SendPacketViaRawSocket (/*packet*/packet, /*pair<Ptr<Socket> , Ipv4InterfaceAddress>*/ std::make_pair(socket, toOrigin.GetInterface ()),
                            /*dst*/toOrigin.GetNextHop (), /*TTL*/ toOrigin.GetHop (), /*id*/0);
 
   // Generating gratuitous RREPs
@@ -786,9 +785,9 @@
       Ptr<Packet> packetToDst = Create<Packet> ();
       packetToDst->AddHeader (rrepHeader);
       packetToDst->AddHeader (tHeader);
-      Ptr<Socket> socket = FindSocketWithInterfaceAddress (toDst.GetInterface ().GetLocal ());
+      Ptr<Socket> socket = FindSocketWithInterfaceAddress (toDst.GetInterface ());
       NS_ASSERT (socket);
-      SendPacketFromRawSocket (/*packet*/packet, /*pair<Ptr<Socket> , Ipv4InterfaceAddress>*/ std::make_pair(socket, toDst.GetInterface ()),
+      SendPacketViaRawSocket (/*packet*/packet, /*pair<Ptr<Socket> , Ipv4InterfaceAddress>*/ std::make_pair(socket, toDst.GetInterface ()),
                                /*dst*/toDst.GetNextHop (), /*TTL*/ toDst.GetHop (), /*id*/0);
     }
 }
@@ -804,9 +803,9 @@
   packet->AddHeader (typeHeader);
   RoutingTableEntry toNeighbor;
   m_routingTable.LookupRoute (neighbor, toNeighbor);
-  Ptr<Socket> socket = FindSocketWithInterfaceAddress (toNeighbor.GetInterface ().GetLocal ());
+  Ptr<Socket> socket = FindSocketWithInterfaceAddress (toNeighbor.GetInterface ());
   NS_ASSERT (socket);
-  SendPacketFromRawSocket (/*packet*/packet, /*pair<Ptr<Socket> , Ipv4InterfaceAddress>*/ std::make_pair(socket, toNeighbor.GetInterface ()),
+  SendPacketViaRawSocket (/*packet*/packet, /*pair<Ptr<Socket> , Ipv4InterfaceAddress>*/ std::make_pair(socket, toNeighbor.GetInterface ()),
                            /*dst*/neighbor, /*TTL*/ 1, /*id*/0);
 }
 
@@ -883,7 +882,7 @@
   if (rrepHeader.GetAckRequired ())
     SendReplyAck (sender);
   NS_LOG_LOGIC ("receiver " << receiver << " origin " << rrepHeader.GetOrigin ());
-  if (FindSocketWithInterfaceAddress (rrepHeader.GetOrigin ()) != 0)
+  if (IsMyOwnAddress (rrepHeader.GetOrigin ()))
     {
       if (toDst.GetFlag () == RTF_IN_SEARCH)
         {
@@ -917,9 +916,9 @@
   packet->AddHeader (rrepHeader);
   TypeHeader tHeader (AODVTYPE_RREP);
   packet->AddHeader (tHeader);
-  Ptr<Socket> socket = FindSocketWithInterfaceAddress (toOrigin.GetInterface ().GetLocal ());
+  Ptr<Socket> socket = FindSocketWithInterfaceAddress (toOrigin.GetInterface ());
   NS_ASSERT (socket);
-  SendPacketFromRawSocket (/*packet*/packet, /*pair<Ptr<Socket> , Ipv4InterfaceAddress>*/ std::make_pair(socket, toOrigin.GetInterface ()),
+  SendPacketViaRawSocket (/*packet*/packet, /*pair<Ptr<Socket> , Ipv4InterfaceAddress>*/ std::make_pair(socket, toOrigin.GetInterface ()),
                            /*dst*/toOrigin.GetNextHop (), /*TTL*/ ipv4Header.GetTtl () - 1, /*id*/0);
 }
 
@@ -1105,13 +1104,13 @@
       packet->AddHeader (helloHeader);
       TypeHeader tHeader (AODVTYPE_RREP);
       packet->AddHeader (tHeader);
-      SendPacketFromRawSocket (/*packet*/packet, /*pair<Ptr<Socket> , Ipv4InterfaceAddress>*/ *j,
+      SendPacketViaRawSocket (/*packet*/packet, /*pair<Ptr<Socket> , Ipv4InterfaceAddress>*/ *j,
                                /*dst*/iface.GetBroadcast (), /*TTL*/ 1, /*id*/0);
     }
 }
 
 void
-RoutingProtocol::SendPacketFromRawSocket (Ptr<Packet> packet, std::pair<Ptr<Socket> , Ipv4InterfaceAddress> socketAddress, Ipv4Address dst,
+RoutingProtocol::SendPacketViaRawSocket (Ptr<Packet> packet, std::pair<Ptr<Socket> , Ipv4InterfaceAddress> socketAddress, Ipv4Address dst,
     uint16_t ttl, uint16_t id )
 {
   UdpHeader udpHeader;
@@ -1208,49 +1207,49 @@
     {
       RoutingTableEntry toPrecursor;
       m_routingTable.LookupRoute (precursors.front (), toPrecursor);
-      Ptr<Socket> socket = FindSocketWithInterfaceAddress (toPrecursor.GetInterface ().GetLocal ());
+      Ptr<Socket> socket = FindSocketWithInterfaceAddress (toPrecursor.GetInterface ());
       NS_ASSERT (socket);
-      SendPacketFromRawSocket (/*packet*/packet, /*pair<Ptr<Socket> , Ipv4InterfaceAddress>*/ std::make_pair(socket, toPrecursor.GetInterface ()),
+      SendPacketViaRawSocket (/*packet*/packet, /*pair<Ptr<Socket> , Ipv4InterfaceAddress>*/ std::make_pair(socket, toPrecursor.GetInterface ()),
                                /*dst*/precursors.front (), /*TTL*/ 1, /*id*/0);
       return;
     }
 
   //  Should only transmit RERR on those interfaces which have precursor nodes for the broken route
-  std::vector<Ipv4Address> ifaces;
+  std::vector<Ipv4InterfaceAddress> ifaces;
   RoutingTableEntry toPrecursor;
   for (std::vector<Ipv4Address>::const_iterator i = precursors.begin (); i != precursors.end (); ++i)
     {
       if (!m_routingTable.LookupRoute (*i, toPrecursor))
         break;
       bool result = true;
-      for (std::vector<Ipv4Address>::const_iterator i = ifaces.begin (); i != ifaces.end (); ++i)
-        if (*i == toPrecursor.GetInterface ().GetLocal ())
+      for (std::vector<Ipv4InterfaceAddress>::const_iterator i = ifaces.begin (); i != ifaces.end (); ++i)
+        if (*i == toPrecursor.GetInterface ())
           {
             result = false;
             break;
           }
       if (result)
-        ifaces.push_back (toPrecursor.GetInterface ().GetLocal ());
+        ifaces.push_back (toPrecursor.GetInterface ());
     }
 
-  for (std::vector<Ipv4Address>::const_iterator i = ifaces.begin (); i != ifaces.end (); ++i)
+  for (std::vector<Ipv4InterfaceAddress>::const_iterator i = ifaces.begin (); i != ifaces.end (); ++i)
     {
       Ptr<Socket> socket = FindSocketWithInterfaceAddress (*i);
       NS_ASSERT (socket);
-      SendPacketFromRawSocket (/*packet*/packet, /*pair<Ptr<Socket> , Ipv4InterfaceAddress>*/ std::make_pair(socket, toPrecursor.GetInterface ()),
+      SendPacketViaRawSocket (/*packet*/packet, /*pair<Ptr<Socket> , Ipv4InterfaceAddress>*/ std::make_pair(socket, toPrecursor.GetInterface ()),
                                /*dst*/m_socketAddresses[socket].GetBroadcast (), /*TTL*/ 1, /*id*/0);
     }
 
 }
 
 Ptr<Socket>
-RoutingProtocol::FindSocketWithInterfaceAddress (Ipv4Address addr ) const
+RoutingProtocol::FindSocketWithInterfaceAddress (Ipv4InterfaceAddress addr ) const
 {
   for (std::map<Ptr<Socket> , Ipv4InterfaceAddress>::const_iterator j = m_socketAddresses.begin (); j != m_socketAddresses.end (); ++j)
     {
       Ptr<Socket> socket = j->first;
       Ipv4InterfaceAddress iface = j->second;
-      if (iface.GetLocal () == addr)
+      if (iface == addr)
         return socket;
     }
   Ptr<Socket> socket;
--- a/src/routing/aodv/aodv-routing-protocol.h	Wed Aug 05 23:04:55 2009 +0400
+++ b/src/routing/aodv/aodv-routing-protocol.h	Wed Aug 05 23:35:50 2009 +0400
@@ -169,9 +169,9 @@
   /// Update neighbor record. \param receiver is supposed to be my interface
   void UpdateRouteToNeighbor (Ipv4Address sender, Ipv4Address receiver);
   /// Check that packet is send from own interface
-  bool IsMyOwnPacket(Ipv4Address src);
+  bool IsMyOwnAddress(Ipv4Address src);
   /// Find socket with local interface address iface
-  Ptr<Socket> FindSocketWithInterfaceAddress(Ipv4Address iface) const;
+  Ptr<Socket> FindSocketWithInterfaceAddress (Ipv4InterfaceAddress iface) const;
   /// Process hello message
   void ProcessHello(RrepHeader const & rrepHeader, Ipv4Address receiverIfaceAddr);
   
@@ -214,14 +214,9 @@
   /// Forward RERR
   void SendRerrMessage(Ptr<Packet> packet,  std::vector<Ipv4Address> precursors);
   /**
-  * Add UDP and IP header to packet.
-  * \param sport - source port number
-  * \param dport - destination port number
-  * \param src - source IP address
-  * \param dst - destination IP address
-  * \param identification - used as sequence number for broadcast traffic
+  * Add UDP, IP headers to packet and send it via raw socket
   */
-  void SendPacketFromRawSocket (Ptr<Packet> packet, std::pair<Ptr<Socket> , Ipv4InterfaceAddress> socketAddress, Ipv4Address dst, uint16_t ttl, uint16_t id);
+  void SendPacketViaRawSocket (Ptr<Packet> packet, std::pair<Ptr<Socket> , Ipv4InterfaceAddress> socketAddress, Ipv4Address dst, uint16_t ttl, uint16_t id);
   //\}
   
   /// Notify that packet is dropped for some reason