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>
List of all members.
Public Member Functions |
virtual | ~Ipv6Extension () |
| Destructor.
|
void | SetNode (Ptr< Node > node) |
| Set the node.
|
Ptr< Node > | GetNode () 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:
-
ExtensionNumber: The IPv6 extension number.
TraceSources defined for this type:
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] |
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:
-
The documentation for this class was generated from the following files:
- src/internet-stack/ipv6-extension.h
- doc/introspected-doxygen.h