A Discrete-Event Network Simulator
API
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
ns3::Ipv6EndPointDemux Class Reference

Demultiplexor for end points. More...

#include <ipv6-end-point-demux.h>

Public Types

typedef std::list< Ipv6EndPoint * > EndPoints
 
typedef std::list
< Ipv6EndPoint * >::iterator 
EndPointsI
 

Public Member Functions

 Ipv6EndPointDemux ()
 Constructor.
 
 ~Ipv6EndPointDemux ()
 Destructor.
 
Ipv6EndPointAllocate (void)
 Allocate a Ipv6EndPoint. More...
 
Ipv6EndPointAllocate (Ipv6Address address)
 Allocate a Ipv6EndPoint. More...
 
Ipv6EndPointAllocate (uint16_t port)
 Allocate a Ipv6EndPoint. More...
 
Ipv6EndPointAllocate (Ipv6Address address, uint16_t port)
 Allocate a Ipv6EndPoint. More...
 
Ipv6EndPointAllocate (Ipv6Address localAddress, uint16_t localPort, Ipv6Address peerAddress, uint16_t peerPort)
 Allocate a Ipv6EndPoint. More...
 
void DeAllocate (Ipv6EndPoint *endPoint)
 Remove a end point. More...
 
EndPoints GetEndPoints () const
 Get the entire list of end points registered. More...
 
EndPoints Lookup (Ipv6Address dst, uint16_t dport, Ipv6Address src, uint16_t sport, Ptr< Ipv6Interface > incomingInterface)
 lookup for a match with all the parameters. More...
 
bool LookupLocal (Ipv6Address addr, uint16_t port)
 Lookup for address and port. More...
 
bool LookupPortLocal (uint16_t port)
 Lookup for port local. More...
 
Ipv6EndPointSimpleLookup (Ipv6Address dst, uint16_t dport, Ipv6Address src, uint16_t sport)
 Simple lookup for a four-tuple match. More...
 

Private Member Functions

uint16_t AllocateEphemeralPort ()
 Allocate a ephemeral port. More...
 

Private Attributes

EndPoints m_endPoints
 A list of IPv6 end points.
 
uint16_t m_ephemeral
 The ephemeral port.
 
uint16_t m_portFirst
 The first ephemeral port.
 
uint16_t m_portLast
 The last ephemeral port.
 

Detailed Description

Demultiplexor for end points.

Definition at line 37 of file ipv6-end-point-demux.h.

Member Function Documentation

Ipv6EndPoint * ns3::Ipv6EndPointDemux::Allocate ( void  )

Allocate a Ipv6EndPoint.

Returns
an empty Ipv6EndPoint instance

Definition at line 75 of file ipv6-end-point-demux.cc.

References AllocateEphemeralPort(), ns3::Ipv6Address::GetAny(), m_endPoints, NS_LOG_DEBUG, NS_LOG_FUNCTION_NOARGS, and NS_LOG_WARN.

Referenced by Allocate().

Ipv6EndPoint * ns3::Ipv6EndPointDemux::Allocate ( Ipv6Address  address)

Allocate a Ipv6EndPoint.

Parameters
addressIPv6 address
Returns
an Ipv6EndPoint instance

Definition at line 90 of file ipv6-end-point-demux.cc.

References AllocateEphemeralPort(), m_endPoints, NS_LOG_DEBUG, NS_LOG_FUNCTION, and NS_LOG_WARN.

Ipv6EndPoint * ns3::Ipv6EndPointDemux::Allocate ( uint16_t  port)

Allocate a Ipv6EndPoint.

Parameters
portlocal port
Returns
an Ipv6EndPoint instance

Definition at line 105 of file ipv6-end-point-demux.cc.

References Allocate(), ns3::Ipv6Address::GetAny(), and NS_LOG_FUNCTION.

Ipv6EndPoint * ns3::Ipv6EndPointDemux::Allocate ( Ipv6Address  address,
uint16_t  port 
)

Allocate a Ipv6EndPoint.

Parameters
addresslocal address
portlocal port
Returns
an Ipv6EndPoint instance

Definition at line 112 of file ipv6-end-point-demux.cc.

References LookupLocal(), m_endPoints, NS_LOG_DEBUG, NS_LOG_FUNCTION, and NS_LOG_WARN.

Ipv6EndPoint * ns3::Ipv6EndPointDemux::Allocate ( Ipv6Address  localAddress,
uint16_t  localPort,
Ipv6Address  peerAddress,
uint16_t  peerPort 
)

Allocate a Ipv6EndPoint.

Parameters
localAddresslocal address
localPortlocal port
peerAddresspeer address
peerPortpeer port
Returns
an Ipv6EndPoint instance

Definition at line 126 of file ipv6-end-point-demux.cc.

References m_endPoints, NS_LOG_DEBUG, NS_LOG_FUNCTION, NS_LOG_WARN, and ns3::Ipv6EndPoint::SetPeer().

uint16_t ns3::Ipv6EndPointDemux::AllocateEphemeralPort ( void  )
private

Allocate a ephemeral port.

Returns
a port

Definition at line 321 of file ipv6-end-point-demux.cc.

References LookupPortLocal(), m_ephemeral, m_portFirst, m_portLast, and NS_LOG_FUNCTION_NOARGS.

Referenced by Allocate().

void ns3::Ipv6EndPointDemux::DeAllocate ( Ipv6EndPoint endPoint)

Remove a end point.

Parameters
endPointthe end point to remove

Definition at line 151 of file ipv6-end-point-demux.cc.

References m_endPoints, and NS_LOG_FUNCTION_NOARGS.

Ipv6EndPointDemux::EndPoints ns3::Ipv6EndPointDemux::GetEndPoints ( ) const

Get the entire list of end points registered.

Returns
list of Ipv6EndPoint

Definition at line 343 of file ipv6-end-point-demux.cc.

References m_endPoints.

Ipv6EndPointDemux::EndPoints ns3::Ipv6EndPointDemux::Lookup ( Ipv6Address  dst,
uint16_t  dport,
Ipv6Address  src,
uint16_t  sport,
Ptr< Ipv6Interface incomingInterface 
)

lookup for a match with all the parameters.

Parameters
dstdestination address to test
dportdestination port to test
srcsource address to test
sportsource port to test
incomingInterfacethe incoming interface
Returns
list en IPv6EndPoints (could be 0 element)

Definition at line 170 of file ipv6-end-point-demux.cc.

References ns3::Ipv6Address::GetAllRoutersMulticast(), ns3::Ipv6Address::GetAny(), ns3::Ipv6EndPoint::GetBoundNetDevice(), ns3::Ipv6Interface::GetDevice(), ns3::Ipv6EndPoint::GetLocalAddress(), ns3::Ipv6EndPoint::GetLocalPort(), ns3::Ipv6EndPoint::GetPeerAddress(), ns3::Ipv6EndPoint::GetPeerPort(), m_endPoints, NS_LOG_DEBUG, NS_LOG_FUNCTION, and NS_LOG_LOGIC.

bool ns3::Ipv6EndPointDemux::LookupLocal ( Ipv6Address  addr,
uint16_t  port 
)

Lookup for address and port.

Parameters
addraddress to test
portport to test
Returns
true if there is a match in EndPoints, false otherwise

Definition at line 61 of file ipv6-end-point-demux.cc.

References m_endPoints, and NS_LOG_FUNCTION.

Referenced by Allocate().

bool ns3::Ipv6EndPointDemux::LookupPortLocal ( uint16_t  port)

Lookup for port local.

Parameters
portport to test
Returns
true if a port local is in EndPoints, false otherwise

Definition at line 48 of file ipv6-end-point-demux.cc.

References m_endPoints, and NS_LOG_FUNCTION.

Referenced by AllocateEphemeralPort().

Ipv6EndPoint * ns3::Ipv6EndPointDemux::SimpleLookup ( Ipv6Address  dst,
uint16_t  dport,
Ipv6Address  src,
uint16_t  sport 
)

Simple lookup for a four-tuple match.

Parameters
dstdestination address to test
dportdestination port to test
srcsource address to test
sportsource port to test
Returns
match or 0 if not found

Definition at line 281 of file ipv6-end-point-demux.cc.

References ns3::Ipv6Address::GetAny(), and m_endPoints.


The documentation for this class was generated from the following files: