Public Member Functions | Static Public Member Functions | Protected Attributes

ns3::Ipv6Extension Class Reference

IPv6 Extension base If you want to implement a new IPv6 extension, all you have to do is implement a subclass of this class and add it to an Ipv6ExtensionDemux. More...

#include <ipv6-extension.h>

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

List of all members.

Public Member Functions

virtual ~Ipv6Extension ()
 Destructor.
void SetNode (Ptr< Node > node)
 Set the node.
Ptr< NodeGetNode () const
 Get the node.
virtual uint8_t GetExtensionNumber () const =0
 Get the extension number.
virtual uint8_t Process (Ptr< Packet > &packet, uint8_t offset, Ipv6Header const &ipv6Header, Ipv6Address dst, uint8_t *nextHeader, bool &isDropped)=0
 Process method Called from Ipv6L3Protocol::Receive.
virtual uint8_t ProcessOptions (Ptr< Packet > &packet, uint8_t offset, uint8_t length, Ipv6Header const &ipv6Header, Ipv6Address dst, uint8_t *nextHeader, bool &isDropped)
 Process options Called by implementing classes to process the options.

Static Public Member Functions

static TypeId GetTypeId ()
 Get the type identificator.

Protected Attributes

TracedCallback< Ptr< const
Packet > > 
m_dropTrace
 Drop trace callback.

Detailed Description

IPv6 Extension base If you want to implement a new IPv6 extension, all you have to do is implement a subclass of this class and add it to an Ipv6ExtensionDemux.


Member Function Documentation

virtual uint8_t ns3::Ipv6Extension::GetExtensionNumber (  )  const [pure virtual]
Ptr<Node> ns3::Ipv6Extension::GetNode (  )  const

Get the node.

Returns:
the node
static TypeId ns3::Ipv6Extension::GetTypeId ( void   )  [static]

Get the type identificator.

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

Returns:
type identificator

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

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

Attributes defined for this type:

TraceSources defined for this type:

  • Drop: Drop ipv6 packet

Reimplemented from ns3::Object.

Reimplemented in ns3::Ipv6ExtensionHopByHop, ns3::Ipv6ExtensionDestination, ns3::Ipv6ExtensionFragment, ns3::Ipv6ExtensionRouting, ns3::Ipv6ExtensionLooseRouting, ns3::Ipv6ExtensionESP, and ns3::Ipv6ExtensionAH.

virtual uint8_t ns3::Ipv6Extension::Process ( Ptr< Packet > &  packet,
uint8_t  offset,
Ipv6Header const &  ipv6Header,
Ipv6Address  dst,
uint8_t *  nextHeader,
bool &  isDropped 
) [pure virtual]

Process method Called from Ipv6L3Protocol::Receive.

Parameters:
packet the packet
offset the offset of the extension to process
ipv6Header the IPv6 header of packet received
dst destination address of the packet received (i.e. us)
nextHeader the next header
isDropped if the packet must be dropped
Returns:
the size processed

Implemented in ns3::Ipv6ExtensionHopByHop, ns3::Ipv6ExtensionDestination, ns3::Ipv6ExtensionFragment, ns3::Ipv6ExtensionRouting, ns3::Ipv6ExtensionLooseRouting, ns3::Ipv6ExtensionESP, and ns3::Ipv6ExtensionAH.

virtual uint8_t ns3::Ipv6Extension::ProcessOptions ( Ptr< Packet > &  packet,
uint8_t  offset,
uint8_t  length,
Ipv6Header const &  ipv6Header,
Ipv6Address  dst,
uint8_t *  nextHeader,
bool &  isDropped 
) [virtual]

Process options Called by implementing classes to process the options.

Parameters:
packet the packet
offset the offset of the first option to process
length the total length of all options (as specified in the extension header)
ipv6Header the IPv6 header of packet received
dst destination address of the packet received (i.e. us)
nextHeader the next header
isDropped if the packet must be dropped
Returns:
the size processed
void ns3::Ipv6Extension::SetNode ( Ptr< Node node  ) 

Set the node.

Parameters:
node the node to set

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