21 #include "ipv4-end-point.h"
22 #include "ns3/packet.h"
24 #include "ns3/simulator.h"
30 Ipv4EndPoint::Ipv4EndPoint (Ipv4Address address, uint16_t port)
31 : m_localAddr (address),
33 m_peerAddr (Ipv4Address::GetAny ()),
38 Ipv4EndPoint::~Ipv4EndPoint ()
41 if (!m_destroyCallback.IsNull ())
45 m_rxCallback.Nullify ();
46 m_icmpCallback.Nullify ();
47 m_destroyCallback.Nullify ();
51 Ipv4EndPoint::GetLocalAddress (
void)
58 Ipv4EndPoint::SetLocalAddress (Ipv4Address address)
61 m_localAddr = address;
65 Ipv4EndPoint::GetLocalPort (
void)
71 Ipv4EndPoint::GetPeerAddress (
void)
77 Ipv4EndPoint::GetPeerPort (
void)
83 Ipv4EndPoint::SetPeer (Ipv4Address address, uint16_t port)
91 Ipv4EndPoint::BindToNetDevice (Ptr<NetDevice> netdevice)
94 m_boundnetdevice = netdevice;
99 Ipv4EndPoint::GetBoundNetDevice (
void)
102 return m_boundnetdevice;
106 Ipv4EndPoint::SetRxCallback (Callback<
void,Ptr<Packet>, Ipv4Header, uint16_t, Ptr<Ipv4Interface> > callback)
109 m_rxCallback = callback;
112 Ipv4EndPoint::SetIcmpCallback (Callback<void,Ipv4Address,uint8_t,uint8_t,uint8_t,uint32_t> callback)
115 m_icmpCallback = callback;
119 Ipv4EndPoint::SetDestroyCallback (Callback<void> callback)
122 m_destroyCallback = callback;
126 Ipv4EndPoint::ForwardUp (Ptr<Packet> p,
const Ipv4Header& header, uint16_t sport,
127 Ptr<Ipv4Interface> incomingInterface)
131 if (!m_rxCallback.IsNull ())
138 Ipv4EndPoint::DoForwardUp (Ptr<Packet> p,
const Ipv4Header& header, uint16_t sport,
139 Ptr<Ipv4Interface> incomingInterface)
143 if (!m_rxCallback.IsNull ())
145 m_rxCallback (p, header, sport, incomingInterface);
150 Ipv4EndPoint::ForwardIcmp (Ipv4Address icmpSource, uint8_t icmpTtl,
151 uint8_t icmpType, uint8_t icmpCode,
154 NS_LOG_FUNCTION (
this << icmpSource << (uint32_t)icmpTtl << (uint32_t)icmpType <<
155 (uint32_t)icmpCode << icmpInfo);
156 if (!m_icmpCallback.IsNull ())
159 icmpSource, icmpTtl, icmpType, icmpCode, icmpInfo);
163 Ipv4EndPoint::DoForwardIcmp (Ipv4Address icmpSource, uint8_t icmpTtl,
164 uint8_t icmpType, uint8_t icmpCode,
167 NS_LOG_FUNCTION (
this << icmpSource << static_cast<uint32_t> (icmpTtl) << static_cast<uint32_t> (icmpType) << static_cast<uint32_t> (icmpCode) << icmpInfo);
169 if (!m_icmpCallback.IsNull ())
171 m_icmpCallback (icmpSource,icmpTtl,icmpType,icmpCode,icmpInfo);
#define NS_LOG_FUNCTION(parameters)
#define NS_LOG_COMPONENT_DEFINE(name)
static EventId ScheduleNow(MEM mem_ptr, OBJ obj)