|
INET Framework for OMNeT++/OMNEST
|
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_