#include <LSA.h>
Inheritance diagram for OSPF::SummaryLSA:

Public Member Functions | |
| SummaryLSA (void) | |
| SummaryLSA (const OSPFSummaryLSA &lsa) | |
| SummaryLSA (const SummaryLSA &lsa) | |
| virtual | ~SummaryLSA (void) |
| bool | GetPurgeable (void) const |
| void | SetPurgeable (bool purge=true) |
| bool | ValidateLSChecksum () const |
| bool | Update (const OSPFSummaryLSA *lsa) |
| bool | DiffersFrom (const OSPFSummaryLSA *summaryLSA) const |
Protected Attributes | |
| bool | purgeable |
|
|
00103 : OSPFSummaryLSA (), RoutingInfo (), LSATrackingInfo (), purgeable (false) {}
|
|
|
00104 : OSPFSummaryLSA (lsa), RoutingInfo (), LSATrackingInfo (), purgeable (false) {}
|
|
|
00105 : OSPFSummaryLSA (lsa), RoutingInfo (lsa), LSATrackingInfo (lsa), purgeable (lsa.purgeable) {}
|
|
|
00106 {}
|
|
|
00017 {
00018 const OSPFLSAHeader& lsaHeader = summaryLSA->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 != summaryLSA->getNetworkMask ()) ||
00027 (routeCost_var != summaryLSA->getRouteCost ()) ||
00028 (tosData_arraysize != summaryLSA->getTosDataArraySize ()));
00029
00030 if (!differentBody) {
00031 unsigned int tosCount = tosData_arraysize;
00032 for (unsigned int i = 0; i < tosCount; i++) {
00033 if ((tosData_var[i].tos != summaryLSA->getTosData (i).tos) ||
00034 (tosData_var[i].tosMetric[0] != summaryLSA->getTosData (i).tosMetric[0]) ||
00035 (tosData_var[i].tosMetric[1] != summaryLSA->getTosData (i).tosMetric[1]) ||
00036 (tosData_var[i].tosMetric[2] != summaryLSA->getTosData (i).tosMetric[2]))
00037 {
00038 differentBody = true;
00039 break;
00040 }
00041 }
00042 }
00043 }
00044
00045 return (differentHeader || differentBody);
00046 }
|
|
|
00108 { return purgeable; }
|
|
|
00109 { purgeable = purge; }
|
|
|
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 }
|
|
|
00111 { return true; } // not implemented
|
|
|
|
1.4.1