NS-3
ns3::Ipv6L4Protocol Class Reference

IPv6 L4 protocol abstract class. More...

#include <ipv6-l4-protocol.h>

Inheritance diagram for ns3::Ipv6L4Protocol:
Collaboration diagram for ns3::Ipv6L4Protocol:

List of all members.

Public Types

enum  RxStatus_e { RX_OK, RX_CSUM_FAILED, RX_ENDPOINT_UNREACH }
 Status of receive. More...

Public Member Functions

virtual ~Ipv6L4Protocol ()
 Destructor.
virtual int GetProtocolNumber () const =0
 Get the protocol number.
virtual enum RxStatus_e Receive (Ptr< Packet > p, Ipv6Address const &src, Ipv6Address const &dst, Ptr< Ipv6Interface > incomingInterface)=0
 Receive method.
virtual void ReceiveIcmp (Ipv6Address icmpSource, uint8_t icmpTtl, uint8_t icmpType, uint8_t icmpCode, uint32_t icmpInfo, Ipv6Address payloadSource, Ipv6Address payloadDestination, const uint8_t *payload)
 ICMPv6 receive method.

Static Public Member Functions

static TypeId GetTypeId (void)
 Get the type identifier.

Detailed Description

IPv6 L4 protocol abstract class.


Member Enumeration Documentation

Status of receive.

Enumerator:
RX_OK 

Receive OK

RX_CSUM_FAILED 

Checksum of layer 4 protocol failed

RX_ENDPOINT_UNREACH 

Destination unreachable


Member Function Documentation

virtual int ns3::Ipv6L4Protocol::GetProtocolNumber ( ) const [pure virtual]

Get the protocol number.

Returns:
protocol number

Implemented in ns3::Icmpv6L4Protocol.

static TypeId ns3::Ipv6L4Protocol::GetTypeId ( void  ) [static]

Get the type identifier.

This method returns the TypeId associated to ns3::Ipv6L4Protocol.

Returns:
type identifier

This object is accessible through the following paths with Config::Set and Config::Connect:

  • /NodeList/[i]/DeviceList/[i]/$ns3::AlohaNoackNetDevice/Phy/$ns3::Ipv6L4Protocol
  • /NodeList/[i]/DeviceList/[i]/$ns3::BaseStationNetDevice/BsIpcsPacketClassifier/$ns3::Ipv6L4Protocol
  • /NodeList/[i]/DeviceList/[i]/$ns3::BaseStationNetDevice/LinkManager/$ns3::Ipv6L4Protocol
  • /NodeList/[i]/DeviceList/[i]/$ns3::BaseStationNetDevice/SSManager/$ns3::Ipv6L4Protocol
  • /NodeList/[i]/DeviceList/[i]/$ns3::BaseStationNetDevice/ServiceFlowManager/$ns3::Ipv6L4Protocol
  • /NodeList/[i]/DeviceList/[i]/$ns3::NonCommunicatingNetDevice/Phy/$ns3::Ipv6L4Protocol
  • /NodeList/[i]/DeviceList/[i]/$ns3::SubscriberStationNetDevice/Classifier/$ns3::Ipv6L4Protocol
  • /NodeList/[i]/DeviceList/[i]/$ns3::SubscriberStationNetDevice/LinkManager/$ns3::Ipv6L4Protocol
  • /NodeList/[i]/DeviceList/[i]/$ns3::SubscriberStationNetDevice/SSScheduler/$ns3::Ipv6L4Protocol
  • /NodeList/[i]/DeviceList/[i]/$ns3::UanNetDevice/Channel/NoiseModel/$ns3::Ipv6L4Protocol
  • /NodeList/[i]/DeviceList/[i]/$ns3::UanNetDevice/Channel/PropagationModel/$ns3::Ipv6L4Protocol
  • /NodeList/[i]/DeviceList/[i]/$ns3::UanNetDevice/Mac/$ns3::Ipv6L4Protocol
  • /NodeList/[i]/DeviceList/[i]/$ns3::UanNetDevice/Phy/$ns3::Ipv6L4Protocol
  • /NodeList/[i]/DeviceList/[i]/$ns3::UanNetDevice/Transducer/$ns3::Ipv6L4Protocol
  • /NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/$ns3::BaseStationNetDevice/BsIpcsPacketClassifier/$ns3::Ipv6L4Protocol
  • /NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/$ns3::BaseStationNetDevice/LinkManager/$ns3::Ipv6L4Protocol
  • /NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/$ns3::BaseStationNetDevice/SSManager/$ns3::Ipv6L4Protocol
  • /NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/$ns3::BaseStationNetDevice/ServiceFlowManager/$ns3::Ipv6L4Protocol
  • /NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/$ns3::SubscriberStationNetDevice/Classifier/$ns3::Ipv6L4Protocol
  • /NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/$ns3::SubscriberStationNetDevice/LinkManager/$ns3::Ipv6L4Protocol
  • /NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/$ns3::SubscriberStationNetDevice/SSScheduler/$ns3::Ipv6L4Protocol
  • /NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/BandwidthManager/$ns3::Ipv6L4Protocol
  • /NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/BurstProfileManager/$ns3::Ipv6L4Protocol
  • /NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/Channel/$ns3::UanChannel/NoiseModel/$ns3::Ipv6L4Protocol
  • /NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/Channel/$ns3::UanChannel/PropagationModel/$ns3::Ipv6L4Protocol
  • /NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/ConnectionManager/$ns3::Ipv6L4Protocol
  • /NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/Phy/Channel/$ns3::UanChannel/NoiseModel/$ns3::Ipv6L4Protocol
  • /NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/Phy/Channel/$ns3::UanChannel/PropagationModel/$ns3::Ipv6L4Protocol

Attributes defined for this type:

  • ProtocolNumber: The IPv6 protocol number.

No TraceSources defined for this type.

Reimplemented from ns3::Object.

Reimplemented in ns3::Icmpv6L4Protocol.

virtual enum RxStatus_e ns3::Ipv6L4Protocol::Receive ( Ptr< Packet p,
Ipv6Address const &  src,
Ipv6Address const &  dst,
Ptr< Ipv6Interface incomingInterface 
) [pure virtual]

Receive method.

Called from lower-level layers to send the packet up in the stack.

Parameters:
ppacket to forward up
srcsource address of packet received
dstaddress of packet received
incomingInterfacethe Ipv6Interface on which the packet arrived
Returns:
status (OK, destination unreachable or checksum failed)

Implemented in ns3::Icmpv6L4Protocol.

virtual void ns3::Ipv6L4Protocol::ReceiveIcmp ( Ipv6Address  icmpSource,
uint8_t  icmpTtl,
uint8_t  icmpType,
uint8_t  icmpCode,
uint32_t  icmpInfo,
Ipv6Address  payloadSource,
Ipv6Address  payloadDestination,
const uint8_t *  payload 
) [virtual]

ICMPv6 receive method.

Parameters:
icmpSourcethe source address of the ICMPv6 message
icmpTtlthe ttl of the ICMPv6 message
icmpTypethe 'type' field of the ICMPv6 message
icmpCodethe 'code' field of the ICMPv6 message
icmpInfoextra information dependent on the ICMPv6 message generated by Icmpv6L4Protocol
payloadSourcethe source address of the packet which triggered the ICMPv6 message
payloadDestinationthe destination address of the packet which triggered the ICMPv6 message.
payloadthe first 8 bytes of the UDP header of the packet which triggered the ICMPv6 message.

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