Public Types | Public Member Functions | Static Public Member Functions

ns3::Ipv6L4Protocol Class Reference

IPv6 L4 protocol abstract class. More...

#include <ipv6-l4-protocol.h>

Inheritance diagram for ns3::Ipv6L4Protocol:
Inheritance graph
[legend]
Collaboration diagram for ns3::Ipv6L4Protocol:
Collaboration graph
[legend]

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:
p packet to forward up
src source address of packet received
dst address of packet received
incomingInterface the 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:
icmpSource the source address of the ICMPv6 message
icmpTtl the ttl of the ICMPv6 message
icmpType the 'type' field of the ICMPv6 message
icmpCode the 'code' field of the ICMPv6 message
icmpInfo extra information dependent on the ICMPv6 message generated by Icmpv6L4Protocol
payloadSource the source address of the packet which triggered the ICMPv6 message
payloadDestination the destination address of the packet which triggered the ICMPv6 message.
payload the 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: