30   : m_ephemeral (49152), m_portLast (65535), m_portFirst (49152)
 
   52       if ((*i)->GetLocalPort  () == 
port) 
 
   66       if ((*i)->GetLocalPort () == port &&
 
   67           (*i)->GetLocalAddress () == addr) 
 
  134   NS_LOG_FUNCTION (
this << localAddress << localPort << peerAddress << peerPort);
 
  137       if ((*i)->GetLocalPort () == localPort &&
 
  138           (*i)->GetLocalAddress () == localAddress &&
 
  139           (*i)->GetPeerPort () == peerPort &&
 
  140           (*i)->GetPeerAddress () == peerAddress) 
 
  142           NS_LOG_WARN (
"No way we can allocate this end-point.");
 
  148   endPoint->
SetPeer (peerAddress, peerPort);
 
  183       ret.push_back (endP);
 
  199   NS_LOG_FUNCTION (
this << daddr << dport << saddr << sport << incomingInterface);
 
  206   NS_LOG_DEBUG (
"Looking up endpoint for destination address " << daddr);
 
  219                         << 
" because endpoint can not receive packets");
 
  226                                              << 
" because endpoint dport " 
  228                                              << 
" does not match packet dport " << dport);
 
  236                                                  << 
" because endpoint is bound to specific device and" 
  238                                                  << 
" does not match packet device " << incomingInterface->
GetDevice ());
 
  242       bool subnetDirected = 
false;
 
  244       for (uint32_t i = 0; i < incomingInterface->
GetNAddresses (); i++)
 
  250               subnetDirected = 
true;
 
  251               incomingInterfaceAddr = addr.
GetLocal ();
 
  254       bool isBroadcast = (daddr.
IsBroadcast () || subnetDirected == 
true);
 
  255       NS_LOG_DEBUG (
"dest addr " << daddr << 
" broadcast? " << isBroadcast);
 
  256       bool localAddressMatchesWildCard = 
 
  268                                       incomingInterfaceAddr);
 
  271       if (!(localAddressMatchesExact || localAddressMatchesWildCard))
 
  273       bool remotePeerMatchesExact = endP->
GetPeerPort () == sport;
 
  274       bool remotePeerMatchesWildCard = endP->
GetPeerPort () == 0;
 
  275       bool remoteAddressMatchesExact = endP->
GetPeerAddress () == saddr;
 
  280       if (!(remotePeerMatchesExact || remotePeerMatchesWildCard))
 
  282       if (!(remoteAddressMatchesExact || remoteAddressMatchesWildCard))
 
  286       if (localAddressMatchesWildCard &&
 
  287           remotePeerMatchesWildCard &&
 
  288           remoteAddressMatchesWildCard)
 
  290           retval1.push_back (endP);
 
  292       if ((localAddressMatchesExact || (isBroadcast && localAddressMatchesWildCard))&&
 
  293           remotePeerMatchesWildCard &&
 
  294           remoteAddressMatchesWildCard)
 
  296           retval2.push_back (endP);
 
  298       if (localAddressMatchesWildCard &&
 
  299           remotePeerMatchesExact &&
 
  300           remoteAddressMatchesExact)
 
  302           retval3.push_back (endP);
 
  304       if (localAddressMatchesExact &&
 
  305           remotePeerMatchesExact &&
 
  306           remoteAddressMatchesExact)
 
  308           retval4.push_back (endP);
 
  313   if (!retval4.empty ()) 
return retval4;
 
  314   if (!retval3.empty ()) 
return retval3;
 
  315   if (!retval2.empty ()) 
return retval2;
 
  329   uint32_t genericity = 3;
 
  333       if ((*i)->GetLocalPort () != dport) 
 
  337       if ((*i)->GetLocalAddress () == daddr &&
 
  338           (*i)->GetPeerPort () == sport &&
 
  339           (*i)->GetPeerAddress () == saddr) 
 
  353       if (tmp < genericity) 
 
static Ipv4Address GetAny(void)
 
#define NS_LOG_FUNCTION(parameters)
If log level LOG_FUNCTION is enabled, this macro will output all input parameters separated by "...
 
Ipv4Mask GetMask(void) const 
Get the network mask. 
 
Ipv4Address GetLocal(void) const 
Get the local address. 
 
bool IsRxEnabled(void)
Checks if the endpoint can receive packets. 
 
EndPoints GetAllEndPoints(void)
Get the entire list of end points registered. 
 
#define NS_LOG_COMPONENT_DEFINE(name)
Define a Log component with a specific name. 
 
uint16_t m_ephemeral
The ephemeral port. 
 
bool LookupPortLocal(uint16_t port)
Lookup for port local. 
 
Ipv4Address CombineMask(Ipv4Mask const &mask) const 
Combine this address with a network mask. 
 
uint16_t m_portFirst
The first ephemeral port. 
 
bool IsSubnetDirectedBroadcast(Ipv4Mask const &mask) const 
Generate subnet-directed broadcast address corresponding to mask. 
 
Ipv4Address GetLocalAddress(void)
Get the local address. 
 
bool IsBroadcast(void) const 
 
#define NS_LOG_LOGIC(msg)
Use NS_LOG to output a message of level LOG_LOGIC. 
 
uint16_t m_portLast
The last ephemeral port. 
 
Ipv4InterfaceAddress GetAddress(uint32_t index) const 
 
Ptr< NetDevice > GetBoundNetDevice(void)
Returns socket's bound netdevice, if any. 
 
Every class exported by the ns3 library is enclosed in the ns3 namespace. 
 
Ipv4EndPoint * SimpleLookup(Ipv4Address daddr, uint16_t dport, Ipv4Address saddr, uint16_t sport)
simple lookup for a match with all the parameters. 
 
bool LookupLocal(Ipv4Address addr, uint16_t port)
Lookup for address and port. 
 
void SetPeer(Ipv4Address address, uint16_t port)
Set the peer informations (address and port). 
 
EndPoints Lookup(Ipv4Address daddr, uint16_t dport, Ipv4Address saddr, uint16_t sport, Ptr< Ipv4Interface > incomingInterface)
lookup for a match with all the parameters. 
 
Ipv4 addresses are stored in host order in this class. 
 
std::list< Ipv4EndPoint * > EndPoints
Container of the IPv4 endpoints. 
 
a class to store IPv4 address information on an interface 
 
uint16_t GetLocalPort(void)
Get the local port. 
 
#define NS_LOG_WARN(msg)
Use NS_LOG to output a message of level LOG_WARN. 
 
Ptr< NetDevice > GetDevice(void) const 
 
#define NS_LOG_DEBUG(msg)
Use NS_LOG to output a message of level LOG_DEBUG. 
 
Ipv4Address GetPeerAddress(void)
Get the peer address. 
 
uint16_t GetPeerPort(void)
Get the peer port. 
 
std::list< Ipv4EndPoint * >::iterator EndPointsI
Iterator to the container of the IPv4 endpoints. 
 
void DeAllocate(Ipv4EndPoint *endPoint)
Remove a end point. 
 
EndPoints m_endPoints
A list of IPv4 end points. 
 
uint32_t GetNAddresses(void) const 
 
uint16_t AllocateEphemeralPort(void)
Allocate an ephemeral port. 
 
A representation of an internet endpoint/connection. 
 
Ipv4EndPoint * Allocate(void)
Allocate a Ipv4EndPoint.