#include <ctype.h>
#include <stdio.h>
#include <functional>
#define CHECK_AGE 300 |
Referenced by OSPF::Router::AgeDatabase(), and OSPF::Area::AgeDatabase().
#define DEFAULT_DESTINATION_ADDRESS 0 |
#define DEFAULT_DESTINATION_MASK 0 |
#define INITIAL_SEQUENCE_NUMBER -2147483647 |
#define IPV4_DATAGRAM_LENGTH 65536 |
#define IPV4_HEADER_LENGTH 60 |
#define LS_INFINITY 16777215 |
Referenced by TED::assignIndex(), and TED::calculateShortestPath().
#define LS_REFRESH_TIME 1800 |
Referenced by OSPF::Router::AgeDatabase(), and OSPF::Area::AgeDatabase().
#define MAX_AGE 3600 |
Referenced by OSPF::Router::AgeDatabase(), OSPF::Area::AgeDatabase(), OSPF::NeighborState::ChangeState(), OSPF::InterfaceState::ChangeState(), OSPF::Neighbor::CreateDatabaseSummary(), OSPF::Interface::CreateUpdatePacket(), OSPF::SummaryLSA::DiffersFrom(), OSPF::RouterLSA::DiffersFrom(), OSPF::NetworkLSA::DiffersFrom(), OSPF::ASExternalLSA::DiffersFrom(), OSPF::Router::InstallASExternalLSA(), operator<(), operator==(), OSPF::LinkStateUpdateHandler::ProcessPacket(), OSPF::HelloHandler::ProcessPacket(), OSPF::Router::RemoveExternalRoute(), and OSPF::Neighbor::RetransmitUpdatePacket().
#define MAX_AGE_DIFF 900 |
Referenced by operator<(), and operator==().
#define MAX_SEQUENCE_NUMBER 2147483647 |
Referenced by OSPF::Router::AgeDatabase(), OSPF::Area::AgeDatabase(), OSPF::NeighborState::ChangeState(), OSPF::InterfaceState::ChangeState(), OSPF::Router::GetUniqueLinkStateID(), OSPF::Area::GetUniqueLinkStateID(), OSPF::LinkStateUpdateHandler::ProcessPacket(), and OSPF::HelloHandler::ProcessPacket().
#define MIN_LS_ARRIVAL 1 |
Referenced by OSPF::Neighbor::AgeTransmittedLSAList(), and OSPF::LinkStateUpdateHandler::ProcessPacket().
#define MIN_LS_INTERVAL 5 |
#define OSPF_ASEXTERNALLSA_HEADER_LENGTH 16 |
Referenced by CalculateLSASize().
#define OSPF_ASEXTERNALLSA_TOS_INFO_LENGTH 12 |
Referenced by CalculateLSASize().
#define OSPF_DD_HEADER_LENGTH 8 |
Referenced by OSPF::Neighbor::SendDatabaseDescriptionPacket().
#define OSPF_HEADER_LENGTH 24 |
#define OSPF_LINK_HEADER_LENGTH 12 |
Referenced by CalculateLSASize().
#define OSPF_LSA_HEADER_LENGTH 20 |
#define OSPF_NETWORKLSA_ADDRESS_LENGTH 4 |
Referenced by CalculateLSASize().
#define OSPF_NETWORKLSA_MASK_LENGTH 4 |
Referenced by CalculateLSASize().
#define OSPF_REQUEST_LENGTH 12 |
Referenced by OSPF::Neighbor::SendLinkStateRequestPacket().
#define OSPF_ROUTERLSA_HEADER_LENGTH 4 |
Referenced by CalculateLSASize().
#define OSPF_SUMMARYLSA_HEADER_LENGTH 8 |
Referenced by CalculateLSASize().
#define OSPF_TOS_LENGTH 4 |
Referenced by CalculateLSASize().
#define VIRTUAL_LINK_TTL 32 |
Referenced by OSPF::LinkStateUpdateHandler::AcknowledgeLSA(), OSPF::Interface::FloodLSA(), OSPF::NeighborStateDown::ProcessEvent(), OSPF::InterfaceStateWaiting::ProcessEvent(), OSPF::InterfaceStatePointToPoint::ProcessEvent(), OSPF::InterfaceStateDesignatedRouter::ProcessEvent(), OSPF::InterfaceStateBackup::ProcessEvent(), OSPF::LinkStateUpdateHandler::ProcessPacket(), OSPF::LinkStateRequestHandler::ProcessPacket(), OSPF::Neighbor::RetransmitDatabaseDescriptionPacket(), OSPF::Neighbor::RetransmitUpdatePacket(), OSPF::Neighbor::SendDatabaseDescriptionPacket(), OSPF::Interface::SendDelayedAcknowledgements(), OSPF::Neighbor::SendLinkStateRequestPacket(), and OSPF::Interface::SendLSAcknowledgement().
char* AddressStringFromIPv4Address | ( | char * | buffer, | |
int | bufferLength, | |||
OSPF::IPv4Address | byteForm | |||
) | [inline] |
Referenced by OSPF::Area::detailedInfo(), operator<<(), OSPF::MessageHandler::PrintDatabaseDescriptionPacket(), OSPF::MessageHandler::PrintHelloPacket(), OSPF::MessageHandler::PrintLinkStateAcknowledgementPacket(), OSPF::MessageHandler::PrintLinkStateRequestPacket(), and OSPF::MessageHandler::PrintLinkStateUpdatePacket().
00292 { 00293 if (bufferLength < 16) { 00294 buffer = '\0'; 00295 } 00296 else { 00297 sprintf(buffer, "%d.%d.%d.%d", byteForm.bytes[0], byteForm.bytes[1], byteForm.bytes[2], byteForm.bytes[3]); 00298 } 00299 return buffer; 00300 }
char* AddressStringFromULong | ( | char * | buffer, | |
int | bufferLength, | |||
unsigned long | longForm | |||
) | [inline] |
Referenced by OSPF::Area::detailedInfo(), OSPF::Area::info(), OSPF::MessageHandler::PrintEvent(), OSPF::MessageHandler::PrintHelloPacket(), OSPF::MessageHandler::PrintLinkStateRequestPacket(), OSPF::MessageHandler::PrintLinkStateUpdatePacket(), PrintLSAHeader(), and OSPF::LinkStateRequestHandler::ProcessPacket().
00303 { 00304 if (bufferLength < 16) { 00305 buffer = '\0'; 00306 } 00307 else { 00308 sprintf(buffer, "%d.%d.%d.%d", (int)((longForm & 0xFF000000) >> 24), 00309 (int)((longForm & 0x00FF0000) >> 16), 00310 (int)((longForm & 0x0000FF00) >> 8), 00311 (int)(longForm & 0x000000FF)); 00312 } 00313 return buffer; 00314 }
char HexCharToByte | ( | char | hex | ) | [inline] |
Referenced by HexPairToByte().
00317 { 00318 switch (hex) { 00319 case '0': return 0; 00320 case '1': return 1; 00321 case '2': return 2; 00322 case '3': return 3; 00323 case '4': return 4; 00324 case '5': return 5; 00325 case '6': return 6; 00326 case '7': return 7; 00327 case '8': return 8; 00328 case '9': return 9; 00329 case 'A': return 10; 00330 case 'B': return 11; 00331 case 'C': return 12; 00332 case 'D': return 13; 00333 case 'E': return 14; 00334 case 'F': return 15; 00335 case 'a': return 10; 00336 case 'b': return 11; 00337 case 'c': return 12; 00338 case 'd': return 13; 00339 case 'e': return 14; 00340 case 'f': return 15; 00341 default: return 0; 00342 }; 00343 }
char HexPairToByte | ( | char | upperHex, | |
char | lowerHex | |||
) | [inline] |
Referenced by OSPFRouting::LoadExternalRoute(), OSPFRouting::LoadInterfaceParameters(), and OSPFRouting::LoadVirtualLink().
00346 { 00347 return ((HexCharToByte(upperHex) << 4) & (HexCharToByte(lowerHex))); 00348 }
OSPF::IPv4Address IPv4AddressFromAddressString | ( | const char * | charForm | ) | [inline] |
Referenced by OSPFRouting::LoadAreaFromXML(), OSPFRouting::LoadExternalRoute(), OSPFRouting::LoadHostRoute(), OSPFRouting::LoadInterfaceParameters(), OSPF::Interface::SetIfIndex(), and ULongFromAddressString().
00225 { 00226 OSPF::IPv4Address byteForm = OSPF::NullIPv4Address; 00227 00228 int lastDot = -1; 00229 int byteCount = 0; 00230 for (int i = 0; i < 16; i++) { 00231 if (charForm[i] == '\0') { 00232 if ((byteCount <= 3) && (i - lastDot - 1 <= 3)) { 00233 switch (i - lastDot - 1) { 00234 case 3: byteForm.bytes[byteCount] += (((charForm[i - 3] - '0') < 3) ? (charForm[i - 3] - '0') : 0) * 100; 00235 case 2: byteForm.bytes[byteCount] += (charForm[i - 2] - '0') * 10; 00236 case 1: byteForm.bytes[byteCount] += charForm[i - 1] - '0'; 00237 default: break; 00238 } 00239 } 00240 break; 00241 } 00242 if ((!isdigit(charForm[i])) && (charForm[i] != '.')) { 00243 break; 00244 } 00245 if (charForm[i] == '.') { 00246 if (i == 0) { 00247 break; 00248 } 00249 if (i - lastDot - 1 > 3) { 00250 break; 00251 } 00252 switch (i - lastDot - 1) { 00253 case 3: byteForm.bytes[byteCount] += (((charForm[i - 3] - '0') < 3) ? (charForm[i - 3] - '0') : 0) * 100; 00254 case 2: byteForm.bytes[byteCount] += (charForm[i - 2] - '0') * 10; 00255 case 1: byteForm.bytes[byteCount] += charForm[i - 1] - '0'; 00256 default: break; 00257 } 00258 byteCount++; 00259 lastDot = i; 00260 if (byteCount > 3) { 00261 break; 00262 } 00263 } 00264 } 00265 00266 return byteForm; 00267 }
OSPF::IPv4Address IPv4AddressFromULong | ( | unsigned long | longForm | ) | [inline] |
Referenced by OSPF::Area::AgeDatabase(), OSPF::Area::CalculateNextHops(), OSPF::Area::CreateRoutingTableEntryFromSummaryLSA(), OSPF::Area::FindSameOrWorseCostRoute(), OSPF::Router::GetUniqueLinkStateID(), OSPF::Area::GetUniqueLinkStateID(), OSPF::MessageHandler::ProcessPacket(), OSPF::LinkStateUpdateHandler::ProcessPacket(), and OSPF::HelloHandler::ProcessPacket().
00270 { 00271 00272 OSPF::IPv4Address byteForm; 00273 00274 byteForm.bytes[0] = (longForm & 0xFF000000) >> 24; 00275 byteForm.bytes[1] = (longForm & 0x00FF0000) >> 16; 00276 byteForm.bytes[2] = (longForm & 0x0000FF00) >> 8; 00277 byteForm.bytes[3] = longForm & 0x000000FF; 00278 return byteForm; 00279 }
OSPF::IPv4Address operator & | ( | OSPF::IPv4Address | address, | |
OSPF::IPv4Address | mask | |||
) | [inline] |
00164 { 00165 OSPF::IPv4Address maskedAddress; 00166 maskedAddress.bytes[0] = address.bytes[0] & mask.bytes[0]; 00167 maskedAddress.bytes[1] = address.bytes[1] & mask.bytes[1]; 00168 maskedAddress.bytes[2] = address.bytes[2] & mask.bytes[2]; 00169 maskedAddress.bytes[3] = address.bytes[3] & mask.bytes[3]; 00170 return maskedAddress; 00171 }
bool operator!= | ( | OSPF::DesignatedRouterID | leftID, | |
OSPF::DesignatedRouterID | rightID | |||
) | [inline] |
bool operator!= | ( | OSPF::IPv4AddressRange | leftAddressRange, | |
OSPF::IPv4AddressRange | rightAddressRange | |||
) | [inline] |
bool operator!= | ( | OSPF::IPv4Address | leftAddress, | |
OSPF::IPv4Address | rightAddress | |||
) | [inline] |
bool operator< | ( | OSPF::IPv4Address | leftAddress, | |
OSPF::IPv4Address | rightAddress | |||
) | [inline] |
bool operator<= | ( | OSPF::IPv4Address | leftAddress, | |
OSPF::IPv4Address | rightAddress | |||
) | [inline] |
bool operator== | ( | OSPF::DesignatedRouterID | leftID, | |
OSPF::DesignatedRouterID | rightID | |||
) | [inline] |
00195 { 00196 return (leftID.routerID == rightID.routerID && 00197 leftID.ipInterfaceAddress == rightID.ipInterfaceAddress); 00198 }
bool operator== | ( | OSPF::IPv4AddressRange | leftAddressRange, | |
OSPF::IPv4AddressRange | rightAddressRange | |||
) | [inline] |
bool operator== | ( | OSPF::IPv4Address | leftAddress, | |
OSPF::IPv4Address | rightAddress | |||
) | [inline] |
bool operator> | ( | OSPF::IPv4Address | leftAddress, | |
OSPF::IPv4Address | rightAddress | |||
) | [inline] |
bool operator>= | ( | OSPF::IPv4Address | leftAddress, | |
OSPF::IPv4Address | rightAddress | |||
) | [inline] |
OSPF::IPv4Address operator| | ( | OSPF::IPv4Address | address, | |
OSPF::IPv4Address | match | |||
) | [inline] |
00174 { 00175 OSPF::IPv4Address matchAddress; 00176 matchAddress.bytes[0] = address.bytes[0] | match.bytes[0]; 00177 matchAddress.bytes[1] = address.bytes[1] | match.bytes[1]; 00178 matchAddress.bytes[2] = address.bytes[2] | match.bytes[2]; 00179 matchAddress.bytes[3] = address.bytes[3] | match.bytes[3]; 00180 return matchAddress; 00181 }
unsigned long ULongFromAddressString | ( | const char * | charForm | ) | [inline] |
Referenced by OSPFRouting::LoadAreaFromXML(), OSPFRouting::LoadExternalRoute(), OSPFRouting::LoadHostRoute(), OSPFRouting::LoadInterfaceParameters(), and OSPFRouting::LoadVirtualLink().
00287 { 00288 return ULongFromIPv4Address(IPv4AddressFromAddressString(charForm)); 00289 }
unsigned long ULongFromIPv4Address | ( | OSPF::IPv4Address | byteForm | ) | [inline] |
Referenced by OSPF::Area::CalculateNextHops(), OSPF::NeighborState::ChangeState(), OSPF::InterfaceState::ChangeState(), OSPF::Area::CreateRoutingTableEntryFromSummaryLSA(), OSPF::Area::FindSameOrWorseCostRoute(), OSPF::Router::GetUniqueLinkStateID(), OSPF::Area::GetUniqueLinkStateID(), OSPFRouting::LoadExternalRoute(), OSPF::Area::OriginateNetworkLSA(), OSPF::Area::OriginateRouterLSA(), OSPF::MessageHandler::ProcessPacket(), OSPF::HelloHandler::ProcessPacket(), OSPF::Router::RemoveExternalRoute(), OSPF::Interface::SendHelloPacket(), OSPF::MessageHandler::SendPacket(), ULongFromAddressString(), and OSPF::Router::UpdateExternalRoute().
00282 { 00283 return ((byteForm.bytes[0] << 24) + (byteForm.bytes[1] << 16) + (byteForm.bytes[2] << 8) + byteForm.bytes[3]); 00284 }