INET Framework for OMNeT++/OMNEST
OSPFPacket_m.h
Go to the documentation of this file.
00001 //
00002 // Generated file, do not edit! Created by opp_msgc 4.2 from networklayer/ospfv2/OSPFPacket.msg.
00003 //
00004 
00005 #ifndef _OSPFPACKET_M_H_
00006 #define _OSPFPACKET_M_H_
00007 
00008 #include <omnetpp.h>
00009 
00010 // opp_msgc version check
00011 #define MSGC_VERSION 0x0402
00012 #if (MSGC_VERSION!=OMNETPP_VERSION)
00013 #    error Version mismatch! Probably this file was generated by an earlier version of opp_msgc: 'make clean' should help.
00014 #endif
00015 
00016 // cplusplus {{
00017 #include "IPAddress.h"
00018 // }}
00019 
00020 
00021 
00036 enum OSPFPacketType {
00037     HelloPacket = 1,
00038     DatabaseDescriptionPacket = 2,
00039     LinkStateRequestPacket = 3,
00040     LinkStateUpdatePacket = 4,
00041     LinkStateAcknowledgementPacket = 5
00042 };
00043 
00058 enum LSAType {
00059     RouterLSAType = 1,
00060     NetworkLSAType = 2,
00061     SummaryLSA_NetworksType = 3,
00062     SummaryLSA_ASBoundaryRoutersType = 4,
00063     ASExternalLSAType = 5
00064 };
00065 
00079 enum LinkType {
00080     PointToPointLink = 1,
00081     TransitLink = 2,
00082     StubLink = 3,
00083     VirtualLink = 4
00084 };
00085 
00089 struct OSPFOptions
00090 {
00091     OSPFOptions();
00092     bool unused_1;
00093     bool E_ExternalRoutingCapability;
00094     bool MC_MulticastForwarding;
00095     bool NP_Type7LSA;
00096     bool EA_ForwardExternalLSAs;
00097     bool DC_DemandCircuits;
00098     bool unused_2;
00099     bool unused_3;
00100 };
00101 
00102 void doPacking(cCommBuffer *b, OSPFOptions& a);
00103 void doUnpacking(cCommBuffer *b, OSPFOptions& a);
00104 
00123 class OSPFPacket : public ::cPacket
00124 {
00125   protected:
00126     char version_var;
00127     char type_var;
00128     short packetLength_var;
00129     IPAddress routerID_var;
00130     IPAddress areaID_var;
00131     short checksum_var;
00132     short authenticationType_var;
00133     char authentication_var[8];
00134 
00135   private:
00136     void copy(const OSPFPacket& other);
00137 
00138   protected:
00139     // protected and unimplemented operator==(), to prevent accidental usage
00140     bool operator==(const OSPFPacket&);
00141 
00142   public:
00143     OSPFPacket(const char *name=NULL, int kind=0);
00144     OSPFPacket(const OSPFPacket& other);
00145     virtual ~OSPFPacket();
00146     OSPFPacket& operator=(const OSPFPacket& other);
00147     virtual OSPFPacket *dup() const {return new OSPFPacket(*this);}
00148     virtual void parsimPack(cCommBuffer *b);
00149     virtual void parsimUnpack(cCommBuffer *b);
00150 
00151     // field getter/setter methods
00152     virtual char getVersion() const;
00153     virtual void setVersion(char version);
00154     virtual char getType() const;
00155     virtual void setType(char type);
00156     virtual short getPacketLength() const;
00157     virtual void setPacketLength(short packetLength);
00158     virtual IPAddress& getRouterID();
00159     virtual const IPAddress& getRouterID() const {return const_cast<OSPFPacket*>(this)->getRouterID();}
00160     virtual void setRouterID(const IPAddress& routerID);
00161     virtual IPAddress& getAreaID();
00162     virtual const IPAddress& getAreaID() const {return const_cast<OSPFPacket*>(this)->getAreaID();}
00163     virtual void setAreaID(const IPAddress& areaID);
00164     virtual short getChecksum() const;
00165     virtual void setChecksum(short checksum);
00166     virtual short getAuthenticationType() const;
00167     virtual void setAuthenticationType(short authenticationType);
00168     virtual unsigned int getAuthenticationArraySize() const;
00169     virtual char getAuthentication(unsigned int k) const;
00170     virtual void setAuthentication(unsigned int k, char authentication);
00171 };
00172 
00173 inline void doPacking(cCommBuffer *b, OSPFPacket& obj) {obj.parsimPack(b);}
00174 inline void doUnpacking(cCommBuffer *b, OSPFPacket& obj) {obj.parsimUnpack(b);}
00175 
00196 class OSPFHelloPacket : public ::OSPFPacket
00197 {
00198   protected:
00199     IPAddress networkMask_var;
00200     short helloInterval_var;
00201     OSPFOptions options_var;
00202     char routerPriority_var;
00203     long routerDeadInterval_var;
00204     IPAddress designatedRouter_var;
00205     IPAddress backupDesignatedRouter_var;
00206     IPAddress *neighbor_var; // array ptr
00207     unsigned int neighbor_arraysize;
00208 
00209   private:
00210     void copy(const OSPFHelloPacket& other);
00211 
00212   protected:
00213     // protected and unimplemented operator==(), to prevent accidental usage
00214     bool operator==(const OSPFHelloPacket&);
00215 
00216   public:
00217     OSPFHelloPacket(const char *name=NULL, int kind=0);
00218     OSPFHelloPacket(const OSPFHelloPacket& other);
00219     virtual ~OSPFHelloPacket();
00220     OSPFHelloPacket& operator=(const OSPFHelloPacket& other);
00221     virtual OSPFHelloPacket *dup() const {return new OSPFHelloPacket(*this);}
00222     virtual void parsimPack(cCommBuffer *b);
00223     virtual void parsimUnpack(cCommBuffer *b);
00224 
00225     // field getter/setter methods
00226     virtual IPAddress& getNetworkMask();
00227     virtual const IPAddress& getNetworkMask() const {return const_cast<OSPFHelloPacket*>(this)->getNetworkMask();}
00228     virtual void setNetworkMask(const IPAddress& networkMask);
00229     virtual short getHelloInterval() const;
00230     virtual void setHelloInterval(short helloInterval);
00231     virtual OSPFOptions& getOptions();
00232     virtual const OSPFOptions& getOptions() const {return const_cast<OSPFHelloPacket*>(this)->getOptions();}
00233     virtual void setOptions(const OSPFOptions& options);
00234     virtual char getRouterPriority() const;
00235     virtual void setRouterPriority(char routerPriority);
00236     virtual long getRouterDeadInterval() const;
00237     virtual void setRouterDeadInterval(long routerDeadInterval);
00238     virtual IPAddress& getDesignatedRouter();
00239     virtual const IPAddress& getDesignatedRouter() const {return const_cast<OSPFHelloPacket*>(this)->getDesignatedRouter();}
00240     virtual void setDesignatedRouter(const IPAddress& designatedRouter);
00241     virtual IPAddress& getBackupDesignatedRouter();
00242     virtual const IPAddress& getBackupDesignatedRouter() const {return const_cast<OSPFHelloPacket*>(this)->getBackupDesignatedRouter();}
00243     virtual void setBackupDesignatedRouter(const IPAddress& backupDesignatedRouter);
00244     virtual void setNeighborArraySize(unsigned int size);
00245     virtual unsigned int getNeighborArraySize() const;
00246     virtual IPAddress& getNeighbor(unsigned int k);
00247     virtual const IPAddress& getNeighbor(unsigned int k) const {return const_cast<OSPFHelloPacket*>(this)->getNeighbor(k);}
00248     virtual void setNeighbor(unsigned int k, const IPAddress& neighbor);
00249 };
00250 
00251 inline void doPacking(cCommBuffer *b, OSPFHelloPacket& obj) {obj.parsimPack(b);}
00252 inline void doUnpacking(cCommBuffer *b, OSPFHelloPacket& obj) {obj.parsimUnpack(b);}
00253 
00270 class OSPFLSAHeader : public ::cObject
00271 {
00272   protected:
00273     unsigned short lsAge_var;
00274     OSPFOptions lsOptions_var;
00275     char lsType_var;
00276     unsigned long linkStateID_var;
00277     IPAddress advertisingRouter_var;
00278     long lsSequenceNumber_var;
00279     short lsChecksum_var;
00280     unsigned short lsaLength_var;
00281 
00282   private:
00283     void copy(const OSPFLSAHeader& other);
00284 
00285   protected:
00286     // protected and unimplemented operator==(), to prevent accidental usage
00287     bool operator==(const OSPFLSAHeader&);
00288 
00289   public:
00290     OSPFLSAHeader();
00291     OSPFLSAHeader(const OSPFLSAHeader& other);
00292     virtual ~OSPFLSAHeader();
00293     OSPFLSAHeader& operator=(const OSPFLSAHeader& other);
00294     virtual OSPFLSAHeader *dup() const {return new OSPFLSAHeader(*this);}
00295     virtual void parsimPack(cCommBuffer *b);
00296     virtual void parsimUnpack(cCommBuffer *b);
00297 
00298     // field getter/setter methods
00299     virtual unsigned short getLsAge() const;
00300     virtual void setLsAge(unsigned short lsAge);
00301     virtual OSPFOptions& getLsOptions();
00302     virtual const OSPFOptions& getLsOptions() const {return const_cast<OSPFLSAHeader*>(this)->getLsOptions();}
00303     virtual void setLsOptions(const OSPFOptions& lsOptions);
00304     virtual char getLsType() const;
00305     virtual void setLsType(char lsType);
00306     virtual unsigned long getLinkStateID() const;
00307     virtual void setLinkStateID(unsigned long linkStateID);
00308     virtual IPAddress& getAdvertisingRouter();
00309     virtual const IPAddress& getAdvertisingRouter() const {return const_cast<OSPFLSAHeader*>(this)->getAdvertisingRouter();}
00310     virtual void setAdvertisingRouter(const IPAddress& advertisingRouter);
00311     virtual long getLsSequenceNumber() const;
00312     virtual void setLsSequenceNumber(long lsSequenceNumber);
00313     virtual short getLsChecksum() const;
00314     virtual void setLsChecksum(short lsChecksum);
00315     virtual unsigned short getLsaLength() const;
00316     virtual void setLsaLength(unsigned short lsaLength);
00317 };
00318 
00319 inline void doPacking(cCommBuffer *b, OSPFLSAHeader& obj) {obj.parsimPack(b);}
00320 inline void doUnpacking(cCommBuffer *b, OSPFLSAHeader& obj) {obj.parsimUnpack(b);}
00321 
00331 class OSPFLSA : public ::cObject
00332 {
00333   protected:
00334     OSPFLSAHeader header_var;
00335 
00336   private:
00337     void copy(const OSPFLSA& other);
00338 
00339   protected:
00340     // protected and unimplemented operator==(), to prevent accidental usage
00341     bool operator==(const OSPFLSA&);
00342 
00343   public:
00344     OSPFLSA();
00345     OSPFLSA(const OSPFLSA& other);
00346     virtual ~OSPFLSA();
00347     OSPFLSA& operator=(const OSPFLSA& other);
00348     virtual OSPFLSA *dup() const {return new OSPFLSA(*this);}
00349     virtual void parsimPack(cCommBuffer *b);
00350     virtual void parsimUnpack(cCommBuffer *b);
00351 
00352     // field getter/setter methods
00353     virtual OSPFLSAHeader& getHeader();
00354     virtual const OSPFLSAHeader& getHeader() const {return const_cast<OSPFLSA*>(this)->getHeader();}
00355     virtual void setHeader(const OSPFLSAHeader& header);
00356 };
00357 
00358 inline void doPacking(cCommBuffer *b, OSPFLSA& obj) {obj.parsimPack(b);}
00359 inline void doUnpacking(cCommBuffer *b, OSPFLSA& obj) {obj.parsimUnpack(b);}
00360 
00364 struct TOSData
00365 {
00366     TOSData();
00367     unsigned char tos;
00368     unsigned char tosMetric[3];
00369 };
00370 
00371 void doPacking(cCommBuffer *b, TOSData& a);
00372 void doUnpacking(cCommBuffer *b, TOSData& a);
00373 
00388 class Link : public ::cObject
00389 {
00390   protected:
00391     IPAddress linkID_var;
00392     unsigned long linkData_var;
00393     unsigned char type_var;
00394     unsigned char numberOfTOS_var;
00395     unsigned long linkCost_var;
00396     TOSData *tosData_var; // array ptr
00397     unsigned int tosData_arraysize;
00398 
00399   private:
00400     void copy(const Link& other);
00401 
00402   protected:
00403     // protected and unimplemented operator==(), to prevent accidental usage
00404     bool operator==(const Link&);
00405 
00406   public:
00407     Link();
00408     Link(const Link& other);
00409     virtual ~Link();
00410     Link& operator=(const Link& other);
00411     virtual Link *dup() const {return new Link(*this);}
00412     virtual void parsimPack(cCommBuffer *b);
00413     virtual void parsimUnpack(cCommBuffer *b);
00414 
00415     // field getter/setter methods
00416     virtual IPAddress& getLinkID();
00417     virtual const IPAddress& getLinkID() const {return const_cast<Link*>(this)->getLinkID();}
00418     virtual void setLinkID(const IPAddress& linkID);
00419     virtual unsigned long getLinkData() const;
00420     virtual void setLinkData(unsigned long linkData);
00421     virtual unsigned char getType() const;
00422     virtual void setType(unsigned char type);
00423     virtual unsigned char getNumberOfTOS() const;
00424     virtual void setNumberOfTOS(unsigned char numberOfTOS);
00425     virtual unsigned long getLinkCost() const;
00426     virtual void setLinkCost(unsigned long linkCost);
00427     virtual void setTosDataArraySize(unsigned int size);
00428     virtual unsigned int getTosDataArraySize() const;
00429     virtual TOSData& getTosData(unsigned int k);
00430     virtual const TOSData& getTosData(unsigned int k) const {return const_cast<Link*>(this)->getTosData(k);}
00431     virtual void setTosData(unsigned int k, const TOSData& tosData);
00432 };
00433 
00434 inline void doPacking(cCommBuffer *b, Link& obj) {obj.parsimPack(b);}
00435 inline void doUnpacking(cCommBuffer *b, Link& obj) {obj.parsimUnpack(b);}
00436 
00450 class OSPFRouterLSA : public ::OSPFLSA
00451 {
00452   protected:
00453     bool V_VirtualLinkEndpoint_var;
00454     bool E_ASBoundaryRouter_var;
00455     bool B_AreaBorderRouter_var;
00456     unsigned short numberOfLinks_var;
00457     Link *links_var; // array ptr
00458     unsigned int links_arraysize;
00459 
00460   private:
00461     void copy(const OSPFRouterLSA& other);
00462 
00463   protected:
00464     // protected and unimplemented operator==(), to prevent accidental usage
00465     bool operator==(const OSPFRouterLSA&);
00466 
00467   public:
00468     OSPFRouterLSA();
00469     OSPFRouterLSA(const OSPFRouterLSA& other);
00470     virtual ~OSPFRouterLSA();
00471     OSPFRouterLSA& operator=(const OSPFRouterLSA& other);
00472     virtual OSPFRouterLSA *dup() const {return new OSPFRouterLSA(*this);}
00473     virtual void parsimPack(cCommBuffer *b);
00474     virtual void parsimUnpack(cCommBuffer *b);
00475 
00476     // field getter/setter methods
00477     virtual bool getV_VirtualLinkEndpoint() const;
00478     virtual void setV_VirtualLinkEndpoint(bool V_VirtualLinkEndpoint);
00479     virtual bool getE_ASBoundaryRouter() const;
00480     virtual void setE_ASBoundaryRouter(bool E_ASBoundaryRouter);
00481     virtual bool getB_AreaBorderRouter() const;
00482     virtual void setB_AreaBorderRouter(bool B_AreaBorderRouter);
00483     virtual unsigned short getNumberOfLinks() const;
00484     virtual void setNumberOfLinks(unsigned short numberOfLinks);
00485     virtual void setLinksArraySize(unsigned int size);
00486     virtual unsigned int getLinksArraySize() const;
00487     virtual Link& getLinks(unsigned int k);
00488     virtual const Link& getLinks(unsigned int k) const {return const_cast<OSPFRouterLSA*>(this)->getLinks(k);}
00489     virtual void setLinks(unsigned int k, const Link& links);
00490 };
00491 
00492 inline void doPacking(cCommBuffer *b, OSPFRouterLSA& obj) {obj.parsimPack(b);}
00493 inline void doUnpacking(cCommBuffer *b, OSPFRouterLSA& obj) {obj.parsimUnpack(b);}
00494 
00505 class OSPFNetworkLSA : public ::OSPFLSA
00506 {
00507   protected:
00508     IPAddress networkMask_var;
00509     IPAddress *attachedRouters_var; // array ptr
00510     unsigned int attachedRouters_arraysize;
00511 
00512   private:
00513     void copy(const OSPFNetworkLSA& other);
00514 
00515   protected:
00516     // protected and unimplemented operator==(), to prevent accidental usage
00517     bool operator==(const OSPFNetworkLSA&);
00518 
00519   public:
00520     OSPFNetworkLSA();
00521     OSPFNetworkLSA(const OSPFNetworkLSA& other);
00522     virtual ~OSPFNetworkLSA();
00523     OSPFNetworkLSA& operator=(const OSPFNetworkLSA& other);
00524     virtual OSPFNetworkLSA *dup() const {return new OSPFNetworkLSA(*this);}
00525     virtual void parsimPack(cCommBuffer *b);
00526     virtual void parsimUnpack(cCommBuffer *b);
00527 
00528     // field getter/setter methods
00529     virtual IPAddress& getNetworkMask();
00530     virtual const IPAddress& getNetworkMask() const {return const_cast<OSPFNetworkLSA*>(this)->getNetworkMask();}
00531     virtual void setNetworkMask(const IPAddress& networkMask);
00532     virtual void setAttachedRoutersArraySize(unsigned int size);
00533     virtual unsigned int getAttachedRoutersArraySize() const;
00534     virtual IPAddress& getAttachedRouters(unsigned int k);
00535     virtual const IPAddress& getAttachedRouters(unsigned int k) const {return const_cast<OSPFNetworkLSA*>(this)->getAttachedRouters(k);}
00536     virtual void setAttachedRouters(unsigned int k, const IPAddress& attachedRouters);
00537 };
00538 
00539 inline void doPacking(cCommBuffer *b, OSPFNetworkLSA& obj) {obj.parsimPack(b);}
00540 inline void doUnpacking(cCommBuffer *b, OSPFNetworkLSA& obj) {obj.parsimUnpack(b);}
00541 
00553 class OSPFSummaryLSA : public ::OSPFLSA
00554 {
00555   protected:
00556     IPAddress networkMask_var;
00557     unsigned long routeCost_var;
00558     TOSData *tosData_var; // array ptr
00559     unsigned int tosData_arraysize;
00560 
00561   private:
00562     void copy(const OSPFSummaryLSA& other);
00563 
00564   protected:
00565     // protected and unimplemented operator==(), to prevent accidental usage
00566     bool operator==(const OSPFSummaryLSA&);
00567 
00568   public:
00569     OSPFSummaryLSA();
00570     OSPFSummaryLSA(const OSPFSummaryLSA& other);
00571     virtual ~OSPFSummaryLSA();
00572     OSPFSummaryLSA& operator=(const OSPFSummaryLSA& other);
00573     virtual OSPFSummaryLSA *dup() const {return new OSPFSummaryLSA(*this);}
00574     virtual void parsimPack(cCommBuffer *b);
00575     virtual void parsimUnpack(cCommBuffer *b);
00576 
00577     // field getter/setter methods
00578     virtual IPAddress& getNetworkMask();
00579     virtual const IPAddress& getNetworkMask() const {return const_cast<OSPFSummaryLSA*>(this)->getNetworkMask();}
00580     virtual void setNetworkMask(const IPAddress& networkMask);
00581     virtual unsigned long getRouteCost() const;
00582     virtual void setRouteCost(unsigned long routeCost);
00583     virtual void setTosDataArraySize(unsigned int size);
00584     virtual unsigned int getTosDataArraySize() const;
00585     virtual TOSData& getTosData(unsigned int k);
00586     virtual const TOSData& getTosData(unsigned int k) const {return const_cast<OSPFSummaryLSA*>(this)->getTosData(k);}
00587     virtual void setTosData(unsigned int k, const TOSData& tosData);
00588 };
00589 
00590 inline void doPacking(cCommBuffer *b, OSPFSummaryLSA& obj) {obj.parsimPack(b);}
00591 inline void doUnpacking(cCommBuffer *b, OSPFSummaryLSA& obj) {obj.parsimUnpack(b);}
00592 
00596 struct ExternalTOSInfo
00597 {
00598     ExternalTOSInfo();
00599     TOSData tosData;
00600     bool E_ExternalMetricType;
00601     IPAddress forwardingAddress;
00602     long externalRouteTag;
00603 };
00604 
00605 void doPacking(cCommBuffer *b, ExternalTOSInfo& a);
00606 void doUnpacking(cCommBuffer *b, ExternalTOSInfo& a);
00607 
00622 class OSPFASExternalLSAContents : public ::cObject
00623 {
00624   protected:
00625     IPAddress networkMask_var;
00626     bool E_ExternalMetricType_var;
00627     unsigned long routeCost_var;
00628     IPAddress forwardingAddress_var;
00629     long externalRouteTag_var;
00630     ExternalTOSInfo *externalTOSInfo_var; // array ptr
00631     unsigned int externalTOSInfo_arraysize;
00632 
00633   private:
00634     void copy(const OSPFASExternalLSAContents& other);
00635 
00636   protected:
00637     // protected and unimplemented operator==(), to prevent accidental usage
00638     bool operator==(const OSPFASExternalLSAContents&);
00639 
00640   public:
00641     OSPFASExternalLSAContents();
00642     OSPFASExternalLSAContents(const OSPFASExternalLSAContents& other);
00643     virtual ~OSPFASExternalLSAContents();
00644     OSPFASExternalLSAContents& operator=(const OSPFASExternalLSAContents& other);
00645     virtual OSPFASExternalLSAContents *dup() const {return new OSPFASExternalLSAContents(*this);}
00646     virtual void parsimPack(cCommBuffer *b);
00647     virtual void parsimUnpack(cCommBuffer *b);
00648 
00649     // field getter/setter methods
00650     virtual IPAddress& getNetworkMask();
00651     virtual const IPAddress& getNetworkMask() const {return const_cast<OSPFASExternalLSAContents*>(this)->getNetworkMask();}
00652     virtual void setNetworkMask(const IPAddress& networkMask);
00653     virtual bool getE_ExternalMetricType() const;
00654     virtual void setE_ExternalMetricType(bool E_ExternalMetricType);
00655     virtual unsigned long getRouteCost() const;
00656     virtual void setRouteCost(unsigned long routeCost);
00657     virtual IPAddress& getForwardingAddress();
00658     virtual const IPAddress& getForwardingAddress() const {return const_cast<OSPFASExternalLSAContents*>(this)->getForwardingAddress();}
00659     virtual void setForwardingAddress(const IPAddress& forwardingAddress);
00660     virtual long getExternalRouteTag() const;
00661     virtual void setExternalRouteTag(long externalRouteTag);
00662     virtual void setExternalTOSInfoArraySize(unsigned int size);
00663     virtual unsigned int getExternalTOSInfoArraySize() const;
00664     virtual ExternalTOSInfo& getExternalTOSInfo(unsigned int k);
00665     virtual const ExternalTOSInfo& getExternalTOSInfo(unsigned int k) const {return const_cast<OSPFASExternalLSAContents*>(this)->getExternalTOSInfo(k);}
00666     virtual void setExternalTOSInfo(unsigned int k, const ExternalTOSInfo& externalTOSInfo);
00667 };
00668 
00669 inline void doPacking(cCommBuffer *b, OSPFASExternalLSAContents& obj) {obj.parsimPack(b);}
00670 inline void doUnpacking(cCommBuffer *b, OSPFASExternalLSAContents& obj) {obj.parsimUnpack(b);}
00671 
00681 class OSPFASExternalLSA : public ::OSPFLSA
00682 {
00683   protected:
00684     OSPFASExternalLSAContents contents_var;
00685 
00686   private:
00687     void copy(const OSPFASExternalLSA& other);
00688 
00689   protected:
00690     // protected and unimplemented operator==(), to prevent accidental usage
00691     bool operator==(const OSPFASExternalLSA&);
00692 
00693   public:
00694     OSPFASExternalLSA();
00695     OSPFASExternalLSA(const OSPFASExternalLSA& other);
00696     virtual ~OSPFASExternalLSA();
00697     OSPFASExternalLSA& operator=(const OSPFASExternalLSA& other);
00698     virtual OSPFASExternalLSA *dup() const {return new OSPFASExternalLSA(*this);}
00699     virtual void parsimPack(cCommBuffer *b);
00700     virtual void parsimUnpack(cCommBuffer *b);
00701 
00702     // field getter/setter methods
00703     virtual OSPFASExternalLSAContents& getContents();
00704     virtual const OSPFASExternalLSAContents& getContents() const {return const_cast<OSPFASExternalLSA*>(this)->getContents();}
00705     virtual void setContents(const OSPFASExternalLSAContents& contents);
00706 };
00707 
00708 inline void doPacking(cCommBuffer *b, OSPFASExternalLSA& obj) {obj.parsimPack(b);}
00709 inline void doUnpacking(cCommBuffer *b, OSPFASExternalLSA& obj) {obj.parsimUnpack(b);}
00710 
00714 struct OSPFDDOptions
00715 {
00716     OSPFDDOptions();
00717     bool unused_1;
00718     bool unused_2;
00719     bool unused_3;
00720     bool unused_4;
00721     bool unused_5;
00722     bool I_Init;
00723     bool M_More;
00724     bool MS_MasterSlave;
00725 };
00726 
00727 void doPacking(cCommBuffer *b, OSPFDDOptions& a);
00728 void doUnpacking(cCommBuffer *b, OSPFDDOptions& a);
00729 
00743 class OSPFDatabaseDescriptionPacket : public ::OSPFPacket
00744 {
00745   protected:
00746     unsigned short interfaceMTU_var;
00747     OSPFOptions options_var;
00748     OSPFDDOptions ddOptions_var;
00749     unsigned long ddSequenceNumber_var;
00750     OSPFLSAHeader *lsaHeaders_var; // array ptr
00751     unsigned int lsaHeaders_arraysize;
00752 
00753   private:
00754     void copy(const OSPFDatabaseDescriptionPacket& other);
00755 
00756   protected:
00757     // protected and unimplemented operator==(), to prevent accidental usage
00758     bool operator==(const OSPFDatabaseDescriptionPacket&);
00759 
00760   public:
00761     OSPFDatabaseDescriptionPacket(const char *name=NULL, int kind=0);
00762     OSPFDatabaseDescriptionPacket(const OSPFDatabaseDescriptionPacket& other);
00763     virtual ~OSPFDatabaseDescriptionPacket();
00764     OSPFDatabaseDescriptionPacket& operator=(const OSPFDatabaseDescriptionPacket& other);
00765     virtual OSPFDatabaseDescriptionPacket *dup() const {return new OSPFDatabaseDescriptionPacket(*this);}
00766     virtual void parsimPack(cCommBuffer *b);
00767     virtual void parsimUnpack(cCommBuffer *b);
00768 
00769     // field getter/setter methods
00770     virtual unsigned short getInterfaceMTU() const;
00771     virtual void setInterfaceMTU(unsigned short interfaceMTU);
00772     virtual OSPFOptions& getOptions();
00773     virtual const OSPFOptions& getOptions() const {return const_cast<OSPFDatabaseDescriptionPacket*>(this)->getOptions();}
00774     virtual void setOptions(const OSPFOptions& options);
00775     virtual OSPFDDOptions& getDdOptions();
00776     virtual const OSPFDDOptions& getDdOptions() const {return const_cast<OSPFDatabaseDescriptionPacket*>(this)->getDdOptions();}
00777     virtual void setDdOptions(const OSPFDDOptions& ddOptions);
00778     virtual unsigned long getDdSequenceNumber() const;
00779     virtual void setDdSequenceNumber(unsigned long ddSequenceNumber);
00780     virtual void setLsaHeadersArraySize(unsigned int size);
00781     virtual unsigned int getLsaHeadersArraySize() const;
00782     virtual OSPFLSAHeader& getLsaHeaders(unsigned int k);
00783     virtual const OSPFLSAHeader& getLsaHeaders(unsigned int k) const {return const_cast<OSPFDatabaseDescriptionPacket*>(this)->getLsaHeaders(k);}
00784     virtual void setLsaHeaders(unsigned int k, const OSPFLSAHeader& lsaHeaders);
00785 };
00786 
00787 inline void doPacking(cCommBuffer *b, OSPFDatabaseDescriptionPacket& obj) {obj.parsimPack(b);}
00788 inline void doUnpacking(cCommBuffer *b, OSPFDatabaseDescriptionPacket& obj) {obj.parsimUnpack(b);}
00789 
00793 struct LSARequest
00794 {
00795     LSARequest();
00796     unsigned long lsType;
00797     unsigned long linkStateID;
00798     IPAddress advertisingRouter;
00799 };
00800 
00801 void doPacking(cCommBuffer *b, LSARequest& a);
00802 void doUnpacking(cCommBuffer *b, LSARequest& a);
00803 
00813 class OSPFLinkStateRequestPacket : public ::OSPFPacket
00814 {
00815   protected:
00816     LSARequest *requests_var; // array ptr
00817     unsigned int requests_arraysize;
00818 
00819   private:
00820     void copy(const OSPFLinkStateRequestPacket& other);
00821 
00822   protected:
00823     // protected and unimplemented operator==(), to prevent accidental usage
00824     bool operator==(const OSPFLinkStateRequestPacket&);
00825 
00826   public:
00827     OSPFLinkStateRequestPacket(const char *name=NULL, int kind=0);
00828     OSPFLinkStateRequestPacket(const OSPFLinkStateRequestPacket& other);
00829     virtual ~OSPFLinkStateRequestPacket();
00830     OSPFLinkStateRequestPacket& operator=(const OSPFLinkStateRequestPacket& other);
00831     virtual OSPFLinkStateRequestPacket *dup() const {return new OSPFLinkStateRequestPacket(*this);}
00832     virtual void parsimPack(cCommBuffer *b);
00833     virtual void parsimUnpack(cCommBuffer *b);
00834 
00835     // field getter/setter methods
00836     virtual void setRequestsArraySize(unsigned int size);
00837     virtual unsigned int getRequestsArraySize() const;
00838     virtual LSARequest& getRequests(unsigned int k);
00839     virtual const LSARequest& getRequests(unsigned int k) const {return const_cast<OSPFLinkStateRequestPacket*>(this)->getRequests(k);}
00840     virtual void setRequests(unsigned int k, const LSARequest& requests);
00841 };
00842 
00843 inline void doPacking(cCommBuffer *b, OSPFLinkStateRequestPacket& obj) {obj.parsimPack(b);}
00844 inline void doUnpacking(cCommBuffer *b, OSPFLinkStateRequestPacket& obj) {obj.parsimUnpack(b);}
00845 
00859 class OSPFLinkStateUpdatePacket : public ::OSPFPacket
00860 {
00861   protected:
00862     unsigned long numberOfLSAs_var;
00863     OSPFRouterLSA *routerLSAs_var; // array ptr
00864     unsigned int routerLSAs_arraysize;
00865     OSPFNetworkLSA *networkLSAs_var; // array ptr
00866     unsigned int networkLSAs_arraysize;
00867     OSPFSummaryLSA *summaryLSAs_var; // array ptr
00868     unsigned int summaryLSAs_arraysize;
00869     OSPFASExternalLSA *asExternalLSAs_var; // array ptr
00870     unsigned int asExternalLSAs_arraysize;
00871 
00872   private:
00873     void copy(const OSPFLinkStateUpdatePacket& other);
00874 
00875   protected:
00876     // protected and unimplemented operator==(), to prevent accidental usage
00877     bool operator==(const OSPFLinkStateUpdatePacket&);
00878 
00879   public:
00880     OSPFLinkStateUpdatePacket(const char *name=NULL, int kind=0);
00881     OSPFLinkStateUpdatePacket(const OSPFLinkStateUpdatePacket& other);
00882     virtual ~OSPFLinkStateUpdatePacket();
00883     OSPFLinkStateUpdatePacket& operator=(const OSPFLinkStateUpdatePacket& other);
00884     virtual OSPFLinkStateUpdatePacket *dup() const {return new OSPFLinkStateUpdatePacket(*this);}
00885     virtual void parsimPack(cCommBuffer *b);
00886     virtual void parsimUnpack(cCommBuffer *b);
00887 
00888     // field getter/setter methods
00889     virtual unsigned long getNumberOfLSAs() const;
00890     virtual void setNumberOfLSAs(unsigned long numberOfLSAs);
00891     virtual void setRouterLSAsArraySize(unsigned int size);
00892     virtual unsigned int getRouterLSAsArraySize() const;
00893     virtual OSPFRouterLSA& getRouterLSAs(unsigned int k);
00894     virtual const OSPFRouterLSA& getRouterLSAs(unsigned int k) const {return const_cast<OSPFLinkStateUpdatePacket*>(this)->getRouterLSAs(k);}
00895     virtual void setRouterLSAs(unsigned int k, const OSPFRouterLSA& routerLSAs);
00896     virtual void setNetworkLSAsArraySize(unsigned int size);
00897     virtual unsigned int getNetworkLSAsArraySize() const;
00898     virtual OSPFNetworkLSA& getNetworkLSAs(unsigned int k);
00899     virtual const OSPFNetworkLSA& getNetworkLSAs(unsigned int k) const {return const_cast<OSPFLinkStateUpdatePacket*>(this)->getNetworkLSAs(k);}
00900     virtual void setNetworkLSAs(unsigned int k, const OSPFNetworkLSA& networkLSAs);
00901     virtual void setSummaryLSAsArraySize(unsigned int size);
00902     virtual unsigned int getSummaryLSAsArraySize() const;
00903     virtual OSPFSummaryLSA& getSummaryLSAs(unsigned int k);
00904     virtual const OSPFSummaryLSA& getSummaryLSAs(unsigned int k) const {return const_cast<OSPFLinkStateUpdatePacket*>(this)->getSummaryLSAs(k);}
00905     virtual void setSummaryLSAs(unsigned int k, const OSPFSummaryLSA& summaryLSAs);
00906     virtual void setAsExternalLSAsArraySize(unsigned int size);
00907     virtual unsigned int getAsExternalLSAsArraySize() const;
00908     virtual OSPFASExternalLSA& getAsExternalLSAs(unsigned int k);
00909     virtual const OSPFASExternalLSA& getAsExternalLSAs(unsigned int k) const {return const_cast<OSPFLinkStateUpdatePacket*>(this)->getAsExternalLSAs(k);}
00910     virtual void setAsExternalLSAs(unsigned int k, const OSPFASExternalLSA& asExternalLSAs);
00911 };
00912 
00913 inline void doPacking(cCommBuffer *b, OSPFLinkStateUpdatePacket& obj) {obj.parsimPack(b);}
00914 inline void doUnpacking(cCommBuffer *b, OSPFLinkStateUpdatePacket& obj) {obj.parsimUnpack(b);}
00915 
00925 class OSPFLinkStateAcknowledgementPacket : public ::OSPFPacket
00926 {
00927   protected:
00928     OSPFLSAHeader *lsaHeaders_var; // array ptr
00929     unsigned int lsaHeaders_arraysize;
00930 
00931   private:
00932     void copy(const OSPFLinkStateAcknowledgementPacket& other);
00933 
00934   protected:
00935     // protected and unimplemented operator==(), to prevent accidental usage
00936     bool operator==(const OSPFLinkStateAcknowledgementPacket&);
00937 
00938   public:
00939     OSPFLinkStateAcknowledgementPacket(const char *name=NULL, int kind=0);
00940     OSPFLinkStateAcknowledgementPacket(const OSPFLinkStateAcknowledgementPacket& other);
00941     virtual ~OSPFLinkStateAcknowledgementPacket();
00942     OSPFLinkStateAcknowledgementPacket& operator=(const OSPFLinkStateAcknowledgementPacket& other);
00943     virtual OSPFLinkStateAcknowledgementPacket *dup() const {return new OSPFLinkStateAcknowledgementPacket(*this);}
00944     virtual void parsimPack(cCommBuffer *b);
00945     virtual void parsimUnpack(cCommBuffer *b);
00946 
00947     // field getter/setter methods
00948     virtual void setLsaHeadersArraySize(unsigned int size);
00949     virtual unsigned int getLsaHeadersArraySize() const;
00950     virtual OSPFLSAHeader& getLsaHeaders(unsigned int k);
00951     virtual const OSPFLSAHeader& getLsaHeaders(unsigned int k) const {return const_cast<OSPFLinkStateAcknowledgementPacket*>(this)->getLsaHeaders(k);}
00952     virtual void setLsaHeaders(unsigned int k, const OSPFLSAHeader& lsaHeaders);
00953 };
00954 
00955 inline void doPacking(cCommBuffer *b, OSPFLinkStateAcknowledgementPacket& obj) {obj.parsimPack(b);}
00956 inline void doUnpacking(cCommBuffer *b, OSPFLinkStateAcknowledgementPacket& obj) {obj.parsimUnpack(b);}
00957 
00958 
00959 #endif // _OSPFPACKET_M_H_