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

An IPv6 end point, four tuples identification. More...

#include <ipv6-end-point.h>

+ Collaboration diagram for ns3::Ipv6EndPoint:

Public Member Functions

 Ipv6EndPoint (Ipv6Address addr, uint16_t port)
 Constructor.
 ~Ipv6EndPoint ()
 Destructor.
void ForwardIcmp (Ipv6Address src, uint8_t ttl, uint8_t type, uint8_t code, uint32_t info)
 Function called from an L4Protocol implementation to notify an endpoint of an icmp message reception.
void ForwardUp (Ptr< Packet > p, Ipv6Address srcAddr, Ipv6Address dstAddr, uint16_t port)
 Forward the packet to the upper level.
Ipv6Address GetLocalAddress ()
 Get the local address.
uint16_t GetLocalPort ()
 Get the local port.
Ipv6Address GetPeerAddress ()
 Get the peer address.
uint16_t GetPeerPort ()
 Get the peer port.
void SetDestroyCallback (Callback< void > callback)
 Set the default destroy callback.
void SetIcmpCallback (Callback< void, Ipv6Address, uint8_t, uint8_t, uint8_t, uint32_t > callback)
 Set the ICMP callback.
void SetLocalAddress (Ipv6Address addr)
 Set the local address.
void SetLocalPort (uint16_t port)
 Set the local port.
void SetPeer (Ipv6Address addr, uint16_t port)
 Set the peer informations (address and port).
void SetRxCallback (Callback< void, Ptr< Packet >, Ipv6Address, Ipv6Address, uint16_t > callback)
 Set the reception callback.

Private Member Functions

void DoForwardIcmp (Ipv6Address src, uint8_t ttl, uint8_t type, uint8_t code, uint32_t info)
 ForwardIcmp wrapper.
void DoForwardUp (Ptr< Packet > p, Ipv6Address saddr, Ipv6Address daddr, uint16_t sport)
 ForwardUp wrapper.

Private Attributes

Callback< void > m_destroyCallback
 The destroy callback.
Callback< void, Ipv6Address,
uint8_t, uint8_t, uint8_t,
uint32_t > 
m_icmpCallback
 The ICMPv6 callback.
Ipv6Address m_localAddr
 The local address.
uint16_t m_localPort
 The local port.
Ipv6Address m_peerAddr
 The peer address.
uint16_t m_peerPort
 The peer port.
Callback< void, Ptr< Packet >
, Ipv6Address, Ipv6Address,
uint16_t > 
m_rxCallback
 The RX callback.

Detailed Description

An IPv6 end point, four tuples identification.

Definition at line 39 of file ipv6-end-point.h.

Constructor & Destructor Documentation

ns3::Ipv6EndPoint::Ipv6EndPoint ( Ipv6Address  addr,
uint16_t  port 
)

Constructor.

Parameters
addrthe IPv6 address
portthe port

Definition at line 32 of file ipv6-end-point.cc.

ns3::Ipv6EndPoint::~Ipv6EndPoint ( )

Member Function Documentation

void ns3::Ipv6EndPoint::DoForwardIcmp ( Ipv6Address  src,
uint8_t  ttl,
uint8_t  type,
uint8_t  code,
uint32_t  info 
)
private

ForwardIcmp wrapper.

Parameters
srcsource IPv6 address
ttltime-to-live
typeICMPv6 type
codeICMPv6 code
infoICMPv6 info

Definition at line 125 of file ipv6-end-point.cc.

References m_icmpCallback.

Referenced by ForwardIcmp().

+ Here is the caller graph for this function:

void ns3::Ipv6EndPoint::DoForwardUp ( Ptr< Packet p,
Ipv6Address  saddr,
Ipv6Address  daddr,
uint16_t  sport 
)
private

ForwardUp wrapper.

Parameters
ppacket
saddrsource IPv6 address
daddrdest IPv6 address
sportsource port

Definition at line 120 of file ipv6-end-point.cc.

References m_rxCallback.

void ns3::Ipv6EndPoint::ForwardIcmp ( Ipv6Address  src,
uint8_t  ttl,
uint8_t  type,
uint8_t  code,
uint32_t  info 
)

Function called from an L4Protocol implementation to notify an endpoint of an icmp message reception.

Parameters
srcsource IPv6 address
ttltime-to-live
typeICMPv6 type
codeICMPv6 code
infoICMPv6 info

Definition at line 110 of file ipv6-end-point.cc.

References DoForwardIcmp(), ns3::Callback< R, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::IsNull(), m_icmpCallback, and ns3::Simulator::ScheduleNow().

Referenced by ns3::UdpL4Protocol::ReceiveIcmp().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::Ipv6EndPoint::ForwardUp ( Ptr< Packet p,
Ipv6Address  srcAddr,
Ipv6Address  dstAddr,
uint16_t  port 
)

Forward the packet to the upper level.

Parameters
pthe packet
srcAddrsource address
dstAddrsource address
portsource port

Definition at line 102 of file ipv6-end-point.cc.

References ns3::Callback< R, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::IsNull(), and m_rxCallback.

+ Here is the call graph for this function:

Ipv6Address ns3::Ipv6EndPoint::GetLocalAddress ( void  )
uint16_t ns3::Ipv6EndPoint::GetLocalPort ( void  )
Ipv6Address ns3::Ipv6EndPoint::GetPeerAddress ( void  )
uint16_t ns3::Ipv6EndPoint::GetPeerPort ( void  )
void ns3::Ipv6EndPoint::SetDestroyCallback ( Callback< void >  callback)

Set the default destroy callback.

Parameters
callbackcallback function

Definition at line 97 of file ipv6-end-point.cc.

References m_destroyCallback.

Referenced by ns3::TcpSocketBase::DeallocateEndPoint(), ns3::UdpSocketImpl::FinishBind(), and ns3::TcpSocketBase::SetupCallback().

+ Here is the caller graph for this function:

void ns3::Ipv6EndPoint::SetIcmpCallback ( Callback< void, Ipv6Address, uint8_t, uint8_t, uint8_t, uint32_t >  callback)

Set the ICMP callback.

Parameters
callbackcallback function

Definition at line 92 of file ipv6-end-point.cc.

References m_icmpCallback.

Referenced by ns3::UdpSocketImpl::FinishBind().

+ Here is the caller graph for this function:

void ns3::Ipv6EndPoint::SetLocalAddress ( Ipv6Address  addr)

Set the local address.

Parameters
addrthe address to set

Definition at line 56 of file ipv6-end-point.cc.

References m_localAddr.

Referenced by ns3::TcpSocketBase::SetupEndpoint6().

+ Here is the caller graph for this function:

void ns3::Ipv6EndPoint::SetLocalPort ( uint16_t  port)

Set the local port.

Parameters
portthe port to set

Definition at line 66 of file ipv6-end-point.cc.

References m_localPort, and port.

void ns3::Ipv6EndPoint::SetPeer ( Ipv6Address  addr,
uint16_t  port 
)

Set the peer informations (address and port).

Parameters
addrpeer address
portpeer port

Definition at line 81 of file ipv6-end-point.cc.

References m_peerAddr, m_peerPort, and port.

Referenced by ns3::Ipv6EndPointDemux::Allocate(), ns3::TcpSocketBase::Connect(), and ns3::TcpSocketBase::ProcessSynRcvd().

+ Here is the caller graph for this function:

void ns3::Ipv6EndPoint::SetRxCallback ( Callback< void, Ptr< Packet >, Ipv6Address, Ipv6Address, uint16_t >  callback)

Set the reception callback.

Parameters
callbackcallback function

Definition at line 87 of file ipv6-end-point.cc.

References m_rxCallback.

Referenced by ns3::UdpSocketImpl::FinishBind(), and ns3::TcpSocketBase::SetupCallback().

+ Here is the caller graph for this function:

Member Data Documentation

Callback<void> ns3::Ipv6EndPoint::m_destroyCallback
private

The destroy callback.

Definition at line 190 of file ipv6-end-point.h.

Referenced by SetDestroyCallback(), and ~Ipv6EndPoint().

Callback<void, Ipv6Address, uint8_t, uint8_t, uint8_t, uint32_t> ns3::Ipv6EndPoint::m_icmpCallback
private

The ICMPv6 callback.

Definition at line 185 of file ipv6-end-point.h.

Referenced by DoForwardIcmp(), ForwardIcmp(), SetIcmpCallback(), and ~Ipv6EndPoint().

Ipv6Address ns3::Ipv6EndPoint::m_localAddr
private

The local address.

Definition at line 160 of file ipv6-end-point.h.

Referenced by GetLocalAddress(), and SetLocalAddress().

uint16_t ns3::Ipv6EndPoint::m_localPort
private

The local port.

Definition at line 165 of file ipv6-end-point.h.

Referenced by GetLocalPort(), and SetLocalPort().

Ipv6Address ns3::Ipv6EndPoint::m_peerAddr
private

The peer address.

Definition at line 170 of file ipv6-end-point.h.

Referenced by GetPeerAddress(), and SetPeer().

uint16_t ns3::Ipv6EndPoint::m_peerPort
private

The peer port.

Definition at line 175 of file ipv6-end-point.h.

Referenced by GetPeerPort(), and SetPeer().

Callback<void, Ptr<Packet>, Ipv6Address, Ipv6Address, uint16_t> ns3::Ipv6EndPoint::m_rxCallback
private

The RX callback.

Definition at line 180 of file ipv6-end-point.h.

Referenced by DoForwardUp(), ForwardUp(), SetRxCallback(), and ~Ipv6EndPoint().


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