src/internet-stack/ipv4-end-point.cc
changeset 3820 c04ecfdce1ef
parent 3260 8c0ab08144e6
child 4022 142c13a3975f
equal deleted inserted replaced
3819:37b316422064 3820:c04ecfdce1ef
    18  * Author: Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
    18  * Author: Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
    19  */
    19  */
    20 
    20 
    21 #include "ipv4-end-point.h"
    21 #include "ipv4-end-point.h"
    22 #include "ns3/packet.h"
    22 #include "ns3/packet.h"
       
    23 #include "ns3/log.h"
       
    24 
       
    25 NS_LOG_COMPONENT_DEFINE ("Ipv4EndPoint");
    23 
    26 
    24 namespace ns3 {
    27 namespace ns3 {
    25 
    28 
    26 Ipv4EndPoint::Ipv4EndPoint (Ipv4Address address, uint16_t port)
    29 Ipv4EndPoint::Ipv4EndPoint (Ipv4Address address, uint16_t port)
    27   : m_localAddr (address), 
    30   : m_localAddr (address), 
    74 void 
    77 void 
    75 Ipv4EndPoint::SetRxCallback (Callback<void,Ptr<Packet>, Ipv4Address, uint16_t> callback)
    78 Ipv4EndPoint::SetRxCallback (Callback<void,Ptr<Packet>, Ipv4Address, uint16_t> callback)
    76 {
    79 {
    77   m_rxCallback = callback;
    80   m_rxCallback = callback;
    78 }
    81 }
       
    82 void 
       
    83 Ipv4EndPoint::SetIcmpCallback (Callback<void,Ipv4Address,uint8_t,uint8_t,uint8_t,uint32_t> callback)
       
    84 {
       
    85   m_icmpCallback = callback;
       
    86 }
    79 
    87 
    80 void 
    88 void 
    81 Ipv4EndPoint::SetDestroyCallback (Callback<void> callback)
    89 Ipv4EndPoint::SetDestroyCallback (Callback<void> callback)
    82 {
    90 {
    83   m_destroyCallback = callback;
    91   m_destroyCallback = callback;
    90   {
    98   {
    91     m_rxCallback (p, saddr, sport);
    99     m_rxCallback (p, saddr, sport);
    92   }
   100   }
    93 }
   101 }
    94 
   102 
    95 
   103 void 
       
   104 Ipv4EndPoint::ForwardIcmp (Ipv4Address icmpSource, uint8_t icmpTtl, 
       
   105                            uint8_t icmpType, uint8_t icmpCode,
       
   106                            uint32_t icmpInfo)
       
   107 {
       
   108   NS_LOG_FUNCTION (this << icmpSource << (uint32_t)icmpTtl << (uint32_t)icmpType <<
       
   109                    (uint32_t)icmpCode << icmpInfo);
       
   110   if (!m_icmpCallback.IsNull ())
       
   111     {
       
   112       m_icmpCallback (icmpSource,icmpTtl,icmpType,icmpCode,icmpInfo);
       
   113     }
       
   114 }
    96 
   115 
    97 }; // namespace ns3
   116 }; // namespace ns3