45 if ((*i)->GetLocalPort() ==
port)
59 if ((*i)->GetLocalPort() ==
port && (*i)->GetLocalAddress() == addr &&
133 if ((*i)->GetLocalPort() ==
localPort && (*i)->GetLocalAddress() == localAddress &&
135 ((*i)->GetBoundNetDevice() ==
boundNetDevice || !(*i)->GetBoundNetDevice()))
190 <<
endP->GetLocalPort() <<
" daddr=" <<
endP->GetLocalAddress()
191 <<
" sport=" <<
endP->GetPeerPort() <<
" saddr=" <<
endP->GetPeerAddress());
193 if (!
endP->IsRxEnabled())
196 <<
" because endpoint can not receive packets");
203 <<
endP->GetLocalPort()
204 <<
" does not match packet dport " <<
dport);
208 if (
endP->GetBoundNetDevice())
217 << &
endP <<
" because endpoint is bound to specific device and"
218 <<
endP->GetBoundNetDevice() <<
" does not match packet device "
294 "Too many endpoints - perhaps you created too many sockets without binding "
295 "them to different NetDevices.");
309 if ((*i)->GetLocalPort() !=
dport)
314 if ((*i)->GetLocalAddress() == dst && (*i)->GetPeerPort() ==
sport &&
315 (*i)->GetPeerAddress() == src)
Describes an IPv6 address.
static Ipv6Address GetAny()
Get the "any" (::) Ipv6Address.
static Ipv6Address GetAllRoutersMulticast()
Get the "all routers multicast" address.
EndPoints Lookup(Ipv6Address dst, uint16_t dport, Ipv6Address src, uint16_t sport, Ptr< Ipv6Interface > incomingInterface)
lookup for a match with all the parameters.
Ipv6EndPoint * Allocate()
Allocate a Ipv6EndPoint.
bool LookupLocal(Ptr< NetDevice > boundNetDevice, Ipv6Address addr, uint16_t port)
Lookup for address and port.
EndPoints m_endPoints
A list of IPv6 end points.
uint16_t m_ephemeral
The ephemeral port.
EndPoints GetEndPoints() const
Get the entire list of end points registered.
Ipv6EndPoint * SimpleLookup(Ipv6Address dst, uint16_t dport, Ipv6Address src, uint16_t sport)
Simple lookup for a four-tuple match.
bool LookupPortLocal(uint16_t port)
Lookup for port local.
uint16_t AllocateEphemeralPort()
Allocate a ephemeral port.
uint16_t m_portFirst
The first ephemeral port.
uint16_t m_portLast
The last ephemeral port.
void DeAllocate(Ipv6EndPoint *endPoint)
Remove a end point.
std::list< Ipv6EndPoint * > EndPoints
Container of the IPv6 endpoints.
A representation of an IPv6 endpoint/connection.
Smart pointer class similar to boost::intrusive_ptr.
#define NS_ABORT_MSG_IF(cond, msg)
Abnormal program termination if a condition is true, with a message.
#define NS_LOG_COMPONENT_DEFINE(name)
Define a Log component with a specific name.
#define NS_LOG_DEBUG(msg)
Use NS_LOG to output a message of level LOG_DEBUG.
#define NS_LOG_LOGIC(msg)
Use NS_LOG to output a message of level LOG_LOGIC.
#define NS_LOG_FUNCTION(parameters)
If log level LOG_FUNCTION is enabled, this macro will output all input parameters separated by ",...
#define NS_LOG_WARN(msg)
Use NS_LOG to output a message of level LOG_WARN.
Ptr< T > Create(Ts &&... args)
Create class instances by constructors with varying numbers of arguments and return them by Ptr.
Every class exported by the ns3 library is enclosed in the ns3 namespace.