IPv6 Extension Routing If you want to implement a new IPv6 routing extension, all you have to do is implement a subclass of this class and add it to an Ipv6ExtensionRoutingDemux. More...
#include <ipv6-extension.h>
Public Member Functions | |
Ipv6ExtensionRouting () | |
Constructor. | |
~Ipv6ExtensionRouting () | |
Destructor. | |
virtual uint8_t | GetExtensionNumber () const |
Get the extension number. | |
virtual uint8_t | GetTypeRouting () const |
Get the type of routing. | |
virtual uint8_t | Process (Ptr< Packet > &packet, uint8_t offset, Ipv6Header const &ipv6Header, Ipv6Address dst, uint8_t *nextHeader, bool &isDropped) |
Process method. | |
![]() | |
Ipv6Extension () | |
Constructor. | |
virtual | ~Ipv6Extension () |
Destructor. | |
int64_t | AssignStreams (int64_t stream) |
Ptr< Node > | GetNode () const |
Get the node. | |
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. | |
void | SetNode (Ptr< Node > node) |
Set the node. | |
![]() | |
Object () | |
virtual | ~Object () |
void | AggregateObject (Ptr< Object > other) |
void | Dispose (void) |
AggregateIterator | GetAggregateIterator (void) const |
virtual TypeId | GetInstanceTypeId (void) const |
template<typename T > | |
Ptr< T > | GetObject (void) const |
template<typename T > | |
Ptr< T > | GetObject (TypeId tid) const |
void | Initialize (void) |
![]() | |
SimpleRefCount () | |
SimpleRefCount (const SimpleRefCount &o) | |
uint32_t | GetReferenceCount (void) const |
SimpleRefCount & | operator= (const SimpleRefCount &o) |
void | Ref (void) const |
void | Unref (void) const |
![]() | |
virtual | ~ObjectBase () |
void | GetAttribute (std::string name, AttributeValue &value) const |
bool | GetAttributeFailSafe (std::string name, AttributeValue &attribute) const |
void | SetAttribute (std::string name, const AttributeValue &value) |
bool | SetAttributeFailSafe (std::string name, const AttributeValue &value) |
bool | TraceConnect (std::string name, std::string context, const CallbackBase &cb) |
bool | TraceConnectWithoutContext (std::string name, const CallbackBase &cb) |
bool | TraceDisconnect (std::string name, std::string context, const CallbackBase &cb) |
bool | TraceDisconnectWithoutContext (std::string name, const CallbackBase &cb) |
Static Public Member Functions | |
static TypeId | GetTypeId () |
Get the type identificator. |
Static Public Attributes | |
static const uint8_t | EXT_NUMBER = 43 |
Routing extension number. |
Additional Inherited Members | |
![]() | |
Object (const Object &o) | |
virtual void | DoDispose (void) |
virtual void | DoInitialize (void) |
virtual void | NotifyNewAggregate (void) |
![]() | |
TracedCallback< Ptr< const Packet > > | m_dropTrace |
Drop trace callback. | |
Ptr< UniformRandomVariable > | m_uvar |
Provides uniform random variables. |
IPv6 Extension Routing If you want to implement a new IPv6 routing extension, all you have to do is implement a subclass of this class and add it to an Ipv6ExtensionRoutingDemux.
Doxygen introspection did not find any typical Config paths.
No Attributes are defined for this type.
No TraceSources are defined for this type.
Definition at line 418 of file ipv6-extension.h.
ns3::Ipv6ExtensionRouting::Ipv6ExtensionRouting | ( | ) |
ns3::Ipv6ExtensionRouting::~Ipv6ExtensionRouting | ( | ) |
|
virtual |
Get the extension number.
Implements ns3::Ipv6Extension.
Definition at line 719 of file ipv6-extension.cc.
References ns3::Ipv6ExtensionFragment::EXT_NUMBER, and NS_LOG_FUNCTION_NOARGS.
|
static |
Get the type identificator.
Reimplemented from ns3::Ipv6Extension.
Reimplemented in ns3::Ipv6ExtensionLooseRouting.
Definition at line 700 of file ipv6-extension.cc.
References ns3::TypeId::SetParent().
|
virtual |
Get the type of routing.
Reimplemented in ns3::Ipv6ExtensionLooseRouting.
Definition at line 726 of file ipv6-extension.cc.
References NS_LOG_FUNCTION_NOARGS.
|
virtual |
Process method.
Called from Ipv6L3Protocol::Receive.
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 |
Implements ns3::Ipv6Extension.
Reimplemented in ns3::Ipv6ExtensionLooseRouting.
Definition at line 732 of file ipv6-extension.cc.
References ns3::Packet::AddHeader(), ns3::Packet::Copy(), ns3::Packet::CopyData(), ns3::Ipv6Extension::GetNode(), ns3::Object::GetObject(), ns3::Ipv6Header::GetSourceAddress(), ns3::Icmpv6Header::ICMPV6_MALFORMED_HEADER, ns3::Ipv6Extension::m_dropTrace, NS_LOG_FUNCTION, NS_LOG_LOGIC, and ns3::Packet::RemoveAtStart().
|
static |
Routing extension number.
Definition at line 424 of file ipv6-extension.h.