INET Framework for OMNeT++/OMNEST
|
Class generated from inet/networklayer/ipv6/IPv6Datagram.msg:52
by nedtool.
More...
#include <IPv6Datagram_m.h>
Public Member Functions | |
virtual | ~IPv6Datagram_Base () |
virtual IPv6Datagram_Base * | dup () const override |
virtual void | parsimPack (omnetpp::cCommBuffer *b) const override |
virtual void | parsimUnpack (omnetpp::cCommBuffer *b) override |
virtual IPv6Address & | getSrcAddress () |
virtual const IPv6Address & | getSrcAddress () const |
virtual void | setSrcAddress (const IPv6Address &srcAddress) |
virtual IPv6Address & | getDestAddress () |
virtual const IPv6Address & | getDestAddress () const |
virtual void | setDestAddress (const IPv6Address &destAddress) |
virtual unsigned char | getTrafficClass () const |
virtual void | setTrafficClass (unsigned char trafficClass) |
virtual int | getDiffServCodePoint () const =0 |
virtual void | setDiffServCodePoint (int diffServCodePoint)=0 |
virtual int | getExplicitCongestionNotification () const =0 |
virtual void | setExplicitCongestionNotification (int explicitCongestionNotification)=0 |
virtual unsigned int | getFlowLabel () const |
virtual void | setFlowLabel (unsigned int flowLabel) |
virtual short | getHopLimit () const |
virtual void | setHopLimit (short hopLimit) |
virtual int | getTransportProtocol () const |
virtual void | setTransportProtocol (int transportProtocol) |
virtual void | setExtensionHeaderArraySize (unsigned int size)=0 |
virtual unsigned int | getExtensionHeaderArraySize () const =0 |
virtual IPv6ExtensionHeaderPtr & | getExtensionHeader (unsigned int k)=0 |
virtual const IPv6ExtensionHeaderPtr & | getExtensionHeader (unsigned int k) const |
virtual void | setExtensionHeader (unsigned int k, const IPv6ExtensionHeaderPtr &extensionHeader)=0 |
Protected Member Functions | |
bool | operator== (const IPv6Datagram_Base &) |
IPv6Datagram_Base (const char *name=nullptr, short kind=0) | |
IPv6Datagram_Base (const IPv6Datagram_Base &other) | |
IPv6Datagram_Base & | operator= (const IPv6Datagram_Base &other) |
Protected Attributes | |
IPv6Address | srcAddress |
IPv6Address | destAddress |
unsigned char | trafficClass |
unsigned int | flowLabel |
short | hopLimit |
int | transportProtocol |
Private Member Functions | |
void | copy (const IPv6Datagram_Base &other) |
Class generated from inet/networklayer/ipv6/IPv6Datagram.msg:52
by nedtool.
// // IPv6 datagram. RFC 2460 Section 3. // // Header fields not explicitly modelled: // - version (=6): represented by the class name itself // - payload length: will be calculated from encapsulated message length // and extension headers' length // packet IPv6Datagram { @customize(true); IPv6Address srcAddress; IPv6Address destAddress; unsigned char trafficClass; abstract int diffServCodePoint; // maps to bits 0-5 of trafficClass abstract int explicitCongestionNotification; // maps to bits 6-7 of trafficClass unsigned int flowLabel; short hopLimit = 0; int transportProtocol @enum(IPProtocolId);
abstract IPv6ExtensionHeaderPtr extensionHeader[]; // array of extension headers, subclassed from ~IPv6ExtensionHeader }
IPv6Datagram_Base is only useful if it gets subclassed, and IPv6Datagram is derived from it. The minimum code to be written for IPv6Datagram is the following:
class INET_API IPv6Datagram : public IPv6Datagram_Base { private: void copy(const IPv6Datagram& other) { ... }
public: IPv6Datagram(const char *name=nullptr, short kind=0) : IPv6Datagram_Base(name,kind) {} IPv6Datagram(const IPv6Datagram& other) : IPv6Datagram_Base(other) {copy(other);} IPv6Datagram& operator=(const IPv6Datagram& other) {if (this==&other) return *this; IPv6Datagram_Base::operator=(other); copy(other); return *this;} virtual IPv6Datagram *dup() const override {return new IPv6Datagram(*this);} // ADD CODE HERE to redefine and implement pure virtual functions from IPv6Datagram_Base };
The following should go into a .cc (.cpp) file:
Register_Class(IPv6Datagram)
|
protected |
|
protected |
|
virtual |
|
private |
|
inlineoverridevirtual |
Reimplemented in inet::IPv6Datagram.
|
virtual |
Referenced by inet::IPv6FragBuf::addFragment(), inet::IPv6::datagramLocalOut(), inet::IPv6::decapsulate(), inet::PacketDump::dumpIPv6(), inet::IPv6Tunneling::encapsulateDatagram(), inet::IPv6::fragmentAndSend(), inet::IPv6::handleMessageFromHL(), inet::MultiFieldClassifier::Filter::matches(), inet::IPv6::preroutingFinish(), inet::UDP::processICMPError(), inet::IPv6::resolveMACAddressAndSendPacket(), inet::IPv6::routeMulticastPacket(), inet::IPv6::routePacket(), inet::serializer::IPv6Serializer::serialize(), and inet::ICMPv6::validateDatagramPromptingError().
|
inlinevirtual |
Referenced by getDestAddress().
|
pure virtual |
Implemented in inet::IPv6Datagram.
|
pure virtual |
Implemented in inet::IPv6Datagram.
|
pure virtual |
Implemented in inet::IPv6Datagram.
|
inlinevirtual |
Reimplemented in inet::IPv6Datagram.
Referenced by getExtensionHeader().
|
pure virtual |
Implemented in inet::IPv6Datagram.
|
virtual |
Referenced by inet::serializer::IPv6Serializer::serialize().
|
virtual |
|
virtual |
Referenced by inet::IPv6FragBuf::addFragment(), inet::IPv6::decapsulate(), inet::IPv6Tunneling::decapsulateDatagram(), inet::PacketDump::dumpIPv6(), inet::IPv6Tunneling::encapsulateDatagram(), inet::IPv6::fragmentAndSend(), inet::IPv6::ScheduledDatagram::getSrcAddress(), inet::IPv6::handleMessageFromHL(), inet::MultiFieldClassifier::Filter::matches(), inet::xMIPv6::processHoAOpt(), inet::UDP::processICMPError(), inet::IPv6::resolveMACAddressAndSendPacket(), inet::IPv6::routePacket(), inet::ICMPv6::sendErrorMessage(), inet::serializer::IPv6Serializer::serialize(), and inet::xMIPv6::validateType2RH().
|
inlinevirtual |
Referenced by getSrcAddress().
|
virtual |
|
virtual |
Reimplemented in inet::IPv6Datagram.
Referenced by inet::IPv6Datagram::getTransportProtocol().
|
protected |
Referenced by inet::IPv6Datagram::operator=().
|
protected |
|
overridevirtual |
|
overridevirtual |
|
virtual |
Referenced by inet::IPv6::encapsulate(), and inet::xMIPv6::processType2RH().
|
pure virtual |
Implemented in inet::IPv6Datagram.
|
pure virtual |
Implemented in inet::IPv6Datagram.
|
pure virtual |
Implemented in inet::IPv6Datagram.
|
pure virtual |
Implemented in inet::IPv6Datagram.
|
virtual |
|
virtual |
Referenced by inet::IPv6::encapsulate(), inet::IPv6::routeMulticastPacket(), and inet::IPv6::routePacket().
|
virtual |
|
virtual |
Referenced by inet::IPv6::encapsulate().
|
virtual |
Reimplemented in inet::IPv6Datagram.
Referenced by inet::IPv6Datagram::setTransportProtocol().
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |