Main Page | Namespace List | Class Hierarchy | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

OSPF::NetworkLSA Class Reference

#include <LSA.h>

Inheritance diagram for OSPF::NetworkLSA:

OSPF::RoutingInfo OSPF::LSATrackingInfo List of all members.

Public Member Functions

 NetworkLSA (void)
 NetworkLSA (const OSPFNetworkLSA &lsa)
 NetworkLSA (const NetworkLSA &lsa)
virtual ~NetworkLSA (void)
bool ValidateLSChecksum () const
bool Update (const OSPFNetworkLSA *lsa)
bool DiffersFrom (const OSPFNetworkLSA *networkLSA) const

Constructor & Destructor Documentation

OSPF::NetworkLSA::NetworkLSA void   )  [inline]
 

00085 : OSPFNetworkLSA (), RoutingInfo (), LSATrackingInfo () {}

OSPF::NetworkLSA::NetworkLSA const OSPFNetworkLSA &  lsa  )  [inline]
 

00086 : OSPFNetworkLSA (lsa), RoutingInfo (), LSATrackingInfo () {}

OSPF::NetworkLSA::NetworkLSA const NetworkLSA lsa  )  [inline]
 

00087 : OSPFNetworkLSA (lsa), RoutingInfo (lsa), LSATrackingInfo (lsa) {}

virtual OSPF::NetworkLSA::~NetworkLSA void   )  [inline, virtual]
 

00088 {}


Member Function Documentation

bool OSPF::NetworkLSA::DiffersFrom const OSPFNetworkLSA *  networkLSA  )  const
 

00017 {
00018     const OSPFLSAHeader& lsaHeader = networkLSA->getHeader ();
00019     bool differentHeader = ((header_var.getLsOptions () != lsaHeader.getLsOptions ()) ||
00020                             ((header_var.getLsAge () == MAX_AGE) && (lsaHeader.getLsAge () != MAX_AGE)) ||
00021                             ((header_var.getLsAge () != MAX_AGE) && (lsaHeader.getLsAge () == MAX_AGE)) ||
00022                             (header_var.getLength () != lsaHeader.getLength ()));
00023     bool differentBody   = false;
00024 
00025     if (!differentHeader) {
00026         differentBody = ((networkMask_var != networkLSA->getNetworkMask ()) ||
00027                          (attachedRouters_arraysize != networkLSA->getAttachedRoutersArraySize ()));
00028 
00029         if (!differentBody) {
00030             unsigned int routerCount = attachedRouters_arraysize;
00031             for (unsigned int i = 0; i < routerCount; i++) {
00032                 if (attachedRouters_var[i] != networkLSA->getAttachedRouters (i)) {
00033                     differentBody = true;
00034                     break;
00035                 }
00036             }
00037         }
00038     }
00039 
00040     return (differentHeader || differentBody);
00041 }

bool OSPF::NetworkLSA::Update const OSPFNetworkLSA *  lsa  ) 
 

00004 {
00005     bool different = DiffersFrom (lsa);
00006     (*this) = (*lsa);
00007     ResetInstallTime ();
00008     if (different) {
00009         ClearNextHops ();
00010         return true;
00011     } else {
00012         return false;
00013     }
00014 }

bool OSPF::NetworkLSA::ValidateLSChecksum  )  const [inline]
 

00090 { return true; } // not implemented


The documentation for this class was generated from the following files:
Generated on Sat Apr 1 20:52:25 2006 for INET Framework for OMNeT++/OMNEST by  doxygen 1.4.1