INET Framework for OMNeT++/OMNEST
inet::ospfv3 Namespace Reference

Classes

class  ASExternalLSA
 
class  InterAreaPrefixLSA
 
class  InterAreaRouterLSA
 
class  IntraAreaPrefixLSA
 
struct  Ipv4AddressRange
 
struct  Ipv6AddressRange
 
class  LinkLSA
 
struct  LSAKeyType
 
class  LSATrackingInfo
 
class  NetworkLSA
 
struct  NextHop
 
class  NssaLSA
 
class  Ospfv3Area
 
class  Ospfv3AsExternalLsa
 Class generated from inet/routing/ospfv3/Ospfv3Packet.msg:244 by opp_msgtool. More...
 
class  Ospfv3DatabaseDescriptionPacket
 Class generated from inet/routing/ospfv3/Ospfv3Packet.msg:316 by opp_msgtool. More...
 
struct  Ospfv3DdOptions
 Struct generated from inet/routing/ospfv3/Ospfv3Packet.msg:304 by opp_msgtool. More...
 
struct  Ospfv3DdPacketId
 
class  Ospfv3HelloPacket
 Class generated from inet/routing/ospfv3/Ospfv3Packet.msg:56 by opp_msgtool. More...
 
class  Ospfv3Instance
 
class  Ospfv3InterAreaPrefixLsa
 Class generated from inet/routing/ospfv3/Ospfv3Packet.msg:228 by opp_msgtool. More...
 
class  Ospfv3InterAreaRouterLsa
 Class generated from inet/routing/ospfv3/Ospfv3Packet.msg:236 by opp_msgtool. More...
 
class  Ospfv3Interface
 
class  Ospfv3InterfacePassive
 
class  Ospfv3InterfaceState
 
class  Ospfv3InterfaceStateBackup
 
class  Ospfv3InterfaceStateDown
 
class  Ospfv3InterfaceStateDr
 
class  Ospfv3InterfaceStateDrOther
 
class  Ospfv3InterfaceStateLoopback
 
class  Ospfv3InterfaceStatePointToPoint
 
class  Ospfv3InterfaceStateWaiting
 
class  Ospfv3IntraAreaPrefixLsa
 Class generated from inet/routing/ospfv3/Ospfv3Packet.msg:293 by opp_msgtool. More...
 
class  Ospfv3Ipv4RoutingTableEntry
 
class  Ospfv3LinkLsa
 Class generated from inet/routing/ospfv3/Ospfv3Packet.msg:281 by opp_msgtool. More...
 
class  Ospfv3LinkStateAcknowledgementPacket
 Class generated from inet/routing/ospfv3/Ospfv3Packet.msg:370 by opp_msgtool. More...
 
class  Ospfv3LinkStateRequestPacket
 Class generated from inet/routing/ospfv3/Ospfv3Packet.msg:342 by opp_msgtool. More...
 
class  Ospfv3LinkStateUpdatePacket
 Class generated from inet/routing/ospfv3/Ospfv3Packet.msg:352 by opp_msgtool. More...
 
class  Ospfv3Lsa
 Class generated from inet/routing/ospfv3/Ospfv3Packet.msg:96 by opp_msgtool. More...
 
class  Ospfv3LsaHeader
 Class generated from inet/routing/ospfv3/Ospfv3Packet.msg:82 by opp_msgtool. More...
 
struct  Ospfv3LsaPrefix0
 Struct generated from inet/routing/ospfv3/Ospfv3Packet.msg:153 by opp_msgtool. More...
 
struct  Ospfv3LsaPrefixMetric
 Struct generated from inet/routing/ospfv3/Ospfv3Packet.msg:117 by opp_msgtool. More...
 
struct  Ospfv3LsRequest
 Struct generated from inet/routing/ospfv3/Ospfv3Packet.msg:333 by opp_msgtool. More...
 
class  Ospfv3Neighbor
 
class  Ospfv3NeighborState
 
class  Ospfv3NeighborState2Way
 
class  Ospfv3NeighborStateAttempt
 
class  Ospfv3NeighborStateDown
 
class  Ospfv3NeighborStateExchange
 
class  Ospfv3NeighborStateExStart
 
class  Ospfv3NeighborStateFull
 
class  Ospfv3NeighborStateInit
 
class  Ospfv3NeighborStateLoading
 
class  Ospfv3NetworkLsa
 Class generated from inet/routing/ospfv3/Ospfv3Packet.msg:220 by opp_msgtool. More...
 
class  Ospfv3NssaLsa
 Class generated from inet/routing/ospfv3/Ospfv3Packet.msg:263 by opp_msgtool. More...
 
struct  Ospfv3Options
 Struct generated from inet/routing/ospfv3/Ospfv3Packet.msg:39 by opp_msgtool. More...
 
class  Ospfv3Packet
 Class generated from inet/routing/ospfv3/Ospfv3Packet.msg:17 by opp_msgtool. More...
 
class  Ospfv3Process
 
class  Ospfv3RouterLsa
 Class generated from inet/routing/ospfv3/Ospfv3Packet.msg:207 by opp_msgtool. More...
 
struct  Ospfv3RouterLsaBody
 Struct generated from inet/routing/ospfv3/Ospfv3Packet.msg:196 by opp_msgtool. More...
 
class  Ospfv3RoutingTableEntry
 
class  Ospfv3SpfVertex
 
class  Ospfv3Splitter
 
class  RouterLSA
 
class  RoutingInfo
 
struct  VertexID
 
struct  VertexLSA
 

Typedefs

typedef Ipv4Address AreaID
 
typedef unsigned int Metric
 

Enumerations

enum  InstallSource { ORIGINATED = 0, FLOODED = 1 }
 
enum  Ospfv3LsaFunctionCode {
  ROUTER_LSA = 1, NETWORK_LSA = 2, INTER_AREA_PREFIX_LSA = 3, INTER_AREA_ROUTER_LSA = 4,
  AS_EXTERNAL_LSA = 5, DEPRECATED = 6, NSSA_LSA = 7, LINK_LSA = 8,
  INTRA_AREA_PREFIX_LSA = 9
}
 Enum generated from inet/routing/ospfv3/Ospfv3Packet.msg:103 by opp_msgtool. More...
 
enum  Ospfv3RouterLsaType { POINT_TO_POINT = 1, TRANSIT_NETWORK = 2, RESERVED = 3, VIRTUAL_LINK = 4 }
 Enum generated from inet/routing/ospfv3/Ospfv3Packet.msg:188 by opp_msgtool. More...
 
enum  Ospfv3Timers {
  INIT_PROCESS = 0, HELLO_TIMER = 1, WAIT_TIMER = 2, NEIGHBOR_INACTIVITY_TIMER = 3,
  NEIGHBOR_POLL_TIMER = 4, NEIGHBOR_DD_RETRANSMISSION_TIMER = 5, NEIGHBOR_UPDATE_RETRANSMISSION_TIMER = 6, NEIGHBOR_REQUEST_RETRANSMISSION_TIMER = 7,
  ACKNOWLEDGEMENT_TIMER = 8, DATABASE_AGE_TIMER = 9, HELLO_TIMER_INIT = 10
}
 
enum  Ospfv3AreaType {
  NORMAL = 0, STUB, TOTALLY_STUBBY, NSSA,
  NSSA_TOTALLY_STUB
}
 

Functions

std::ostream & operator<< (std::ostream &ostr, const Ospfv3Interface &interface)
 
const Ipv4Address NULL_ROUTERID (0, 0, 0, 0)
 
const Ipv4Address BACKBONE_AREAID (0, 0, 0, 0)
 
const Ipv4Address NULL_LINKSTATEID (0, 0, 0, 0)
 
const Ipv4Address NULL_IPV4ADDRESS (0, 0, 0, 0)
 
const Ipv6AddressRange NULL_IPV6ADDRESSRANGE (Ipv6Address(0, 0, 0, 0), 0)
 
bool isSameNetwork (Ipv6Address address1, int prefixLen1, Ipv6Address address2, int prefixLen2)
 
const Ipv4AddressRange NULL_IPV4ADDRESSRANGE (Ipv4Address(0, 0, 0, 0), Ipv4Address(0, 0, 0, 0))
 
Ipv4Address operator& (Ipv4Address address, Ipv4Address mask)
 
Ipv4Address operator| (Ipv4Address address, Ipv4Address match)
 
bool isSameNetwork (Ipv4Address address1, Ipv4Address mask1, Ipv4Address address2, Ipv4Address mask2)
 
bool operator== (const VertexID &leftID, const VertexID &rightID)
 
bool operator== (const NextHop &leftHop, const NextHop &rightHop)
 
bool operator!= (const NextHop &leftHop, const NextHop &rightHop)
 
bool operator!= (Ospfv3DdOptions leftID, Ospfv3DdOptions rightID)
 
bool operator== (Ospfv3Options leftID, Ospfv3Options rightID)
 
bool operator!= (Ospfv3Options leftID, Ospfv3Options rightID)
 
bool operator!= (Ospfv3DdPacketId leftID, Ospfv3DdPacketId rightID)
 
bool operator< (Ospfv3LsaHeader &leftLSA, Ospfv3LsaHeader &rightLSA)
 
bool operator< (const Ospfv3LsaHeader &leftLSA, const Ospfv3LsaHeader &rightLSA)
 
bool operator== (Ospfv3LsaHeader &leftLSA, Ospfv3LsaHeader &rightLSA)
 
bool operator== (const Ospfv3LsaHeader &leftLSA, const Ospfv3LsaHeader &rightLSA)
 
void doParsimPacking (omnetpp::cCommBuffer *b, const Ospfv3Packet &obj)
 
void doParsimUnpacking (omnetpp::cCommBuffer *b, Ospfv3Packet &obj)
 
void INET_API __doPacking (omnetpp::cCommBuffer *b, const Ospfv3Options &a)
 
void INET_API __doUnpacking (omnetpp::cCommBuffer *b, Ospfv3Options &a)
 
void doParsimPacking (omnetpp::cCommBuffer *b, const Ospfv3Options &obj)
 
void doParsimUnpacking (omnetpp::cCommBuffer *b, Ospfv3Options &obj)
 
void doParsimPacking (omnetpp::cCommBuffer *b, const Ospfv3HelloPacket &obj)
 
void doParsimUnpacking (omnetpp::cCommBuffer *b, Ospfv3HelloPacket &obj)
 
void doParsimPacking (omnetpp::cCommBuffer *b, const Ospfv3LsaHeader &obj)
 
void doParsimUnpacking (omnetpp::cCommBuffer *b, Ospfv3LsaHeader &obj)
 
void doParsimPacking (omnetpp::cCommBuffer *b, const Ospfv3Lsa &obj)
 
void doParsimUnpacking (omnetpp::cCommBuffer *b, Ospfv3Lsa &obj)
 
void doParsimPacking (omnetpp::cCommBuffer *b, const Ospfv3LsaFunctionCode &e)
 
void doParsimUnpacking (omnetpp::cCommBuffer *b, Ospfv3LsaFunctionCode &e)
 
void INET_API __doPacking (omnetpp::cCommBuffer *b, const Ospfv3LsaPrefixMetric &a)
 
void INET_API __doUnpacking (omnetpp::cCommBuffer *b, Ospfv3LsaPrefixMetric &a)
 
void doParsimPacking (omnetpp::cCommBuffer *b, const Ospfv3LsaPrefixMetric &obj)
 
void doParsimUnpacking (omnetpp::cCommBuffer *b, Ospfv3LsaPrefixMetric &obj)
 
void INET_API __doPacking (omnetpp::cCommBuffer *b, const Ospfv3LsaPrefix0 &a)
 
void INET_API __doUnpacking (omnetpp::cCommBuffer *b, Ospfv3LsaPrefix0 &a)
 
void doParsimPacking (omnetpp::cCommBuffer *b, const Ospfv3LsaPrefix0 &obj)
 
void doParsimUnpacking (omnetpp::cCommBuffer *b, Ospfv3LsaPrefix0 &obj)
 
void doParsimPacking (omnetpp::cCommBuffer *b, const Ospfv3RouterLsaType &e)
 
void doParsimUnpacking (omnetpp::cCommBuffer *b, Ospfv3RouterLsaType &e)
 
void INET_API __doPacking (omnetpp::cCommBuffer *b, const Ospfv3RouterLsaBody &a)
 
void INET_API __doUnpacking (omnetpp::cCommBuffer *b, Ospfv3RouterLsaBody &a)
 
void doParsimPacking (omnetpp::cCommBuffer *b, const Ospfv3RouterLsaBody &obj)
 
void doParsimUnpacking (omnetpp::cCommBuffer *b, Ospfv3RouterLsaBody &obj)
 
void doParsimPacking (omnetpp::cCommBuffer *b, const Ospfv3RouterLsa &obj)
 
void doParsimUnpacking (omnetpp::cCommBuffer *b, Ospfv3RouterLsa &obj)
 
void doParsimPacking (omnetpp::cCommBuffer *b, const Ospfv3NetworkLsa &obj)
 
void doParsimUnpacking (omnetpp::cCommBuffer *b, Ospfv3NetworkLsa &obj)
 
void doParsimPacking (omnetpp::cCommBuffer *b, const Ospfv3InterAreaPrefixLsa &obj)
 
void doParsimUnpacking (omnetpp::cCommBuffer *b, Ospfv3InterAreaPrefixLsa &obj)
 
void doParsimPacking (omnetpp::cCommBuffer *b, const Ospfv3InterAreaRouterLsa &obj)
 
void doParsimUnpacking (omnetpp::cCommBuffer *b, Ospfv3InterAreaRouterLsa &obj)
 
void doParsimPacking (omnetpp::cCommBuffer *b, const Ospfv3AsExternalLsa &obj)
 
void doParsimUnpacking (omnetpp::cCommBuffer *b, Ospfv3AsExternalLsa &obj)
 
void doParsimPacking (omnetpp::cCommBuffer *b, const Ospfv3NssaLsa &obj)
 
void doParsimUnpacking (omnetpp::cCommBuffer *b, Ospfv3NssaLsa &obj)
 
void doParsimPacking (omnetpp::cCommBuffer *b, const Ospfv3LinkLsa &obj)
 
void doParsimUnpacking (omnetpp::cCommBuffer *b, Ospfv3LinkLsa &obj)
 
void doParsimPacking (omnetpp::cCommBuffer *b, const Ospfv3IntraAreaPrefixLsa &obj)
 
void doParsimUnpacking (omnetpp::cCommBuffer *b, Ospfv3IntraAreaPrefixLsa &obj)
 
void INET_API __doPacking (omnetpp::cCommBuffer *b, const Ospfv3DdOptions &a)
 
void INET_API __doUnpacking (omnetpp::cCommBuffer *b, Ospfv3DdOptions &a)
 
void doParsimPacking (omnetpp::cCommBuffer *b, const Ospfv3DdOptions &obj)
 
void doParsimUnpacking (omnetpp::cCommBuffer *b, Ospfv3DdOptions &obj)
 
void doParsimPacking (omnetpp::cCommBuffer *b, const Ospfv3DatabaseDescriptionPacket &obj)
 
void doParsimUnpacking (omnetpp::cCommBuffer *b, Ospfv3DatabaseDescriptionPacket &obj)
 
void INET_API __doPacking (omnetpp::cCommBuffer *b, const Ospfv3LsRequest &a)
 
void INET_API __doUnpacking (omnetpp::cCommBuffer *b, Ospfv3LsRequest &a)
 
void doParsimPacking (omnetpp::cCommBuffer *b, const Ospfv3LsRequest &obj)
 
void doParsimUnpacking (omnetpp::cCommBuffer *b, Ospfv3LsRequest &obj)
 
void doParsimPacking (omnetpp::cCommBuffer *b, const Ospfv3LinkStateRequestPacket &obj)
 
void doParsimUnpacking (omnetpp::cCommBuffer *b, Ospfv3LinkStateRequestPacket &obj)
 
void doParsimPacking (omnetpp::cCommBuffer *b, const Ospfv3LinkStateUpdatePacket &obj)
 
void doParsimUnpacking (omnetpp::cCommBuffer *b, Ospfv3LinkStateUpdatePacket &obj)
 
void doParsimPacking (omnetpp::cCommBuffer *b, const Ospfv3LinkStateAcknowledgementPacket &obj)
 
void doParsimUnpacking (omnetpp::cCommBuffer *b, Ospfv3LinkStateAcknowledgementPacket &obj)
 
 Define_Module (Ospfv3Splitter)
 
std::ostream & operator<< (std::ostream &ostr, const Ospfv3Area &area)
 
std::ostream & operator<< (std::ostream &ostr, const Ospfv3Instance &instance)
 
B calculateLSASize (const Ospfv3RouterLsa *routerLSA)
 
B calculateLSASize (const Ospfv3NetworkLsa *networkLSA)
 
B calculateLSASize (const Ospfv3InterAreaPrefixLsa *prefixLSA)
 
B calculateLSASize (const Ospfv3LinkLsa *linkLSA)
 
B calculateLSASize (const Ospfv3IntraAreaPrefixLsa *prefixLSA)
 
std::ostream & operator<< (std::ostream &ostr, const Ospfv3LsaHeader &lsaHeader)
 
std::ostream & operator<< (std::ostream &ostr, const Ospfv3NetworkLsa &lsa)
 
std::ostream & operator<< (std::ostream &ostr, const Ospfv3RouterLsa &lsa)
 
std::ostream & operator<< (std::ostream &ostr, const Ospfv3InterAreaPrefixLsa &lsa)
 
std::ostream & operator<< (std::ostream &ostr, const Ospfv3AsExternalLsa &lsa)
 
std::ostream & operator<< (std::ostream &ostr, const Ospfv3Lsa &lsa)
 
 Define_Module (Ospfv3Process)
 
std::ostream & operator<< (std::ostream &out, const Ospfv3RoutingTableEntry &entry)
 
std::ostream & operator<< (std::ostream &out, const Ospfv3Ipv4RoutingTableEntry &entry)
 

Variables

const B IPV6_DATAGRAM_LENGTH = B(65535)
 
const B OSPFV3_HEADER_LENGTH = B(16)
 
const B OSPFV3_DD_HEADER_LENGTH = B(12)
 
const B OSPFV3_LSA_HEADER_LENGTH = B(20)
 
const B OSPFV3_LSR_LENGTH = B(12)
 
const B OSPFV3_ROUTER_LSA_HEADER_LENGTH = B(4)
 
const B OSPFV3_ROUTER_LSA_BODY_LENGTH = B(16)
 
const B OSPFV3_NETWORK_LSA_HEADER_LENGTH = B(4)
 
const B OSPFV3_NETWORK_LSA_ATTACHED_LENGTH = B(4)
 
const B OSPFV3_INTER_AREA_PREFIX_LSA_HEADER_LENGTH = B(4)
 
const B OSPFV3_INTER_AREA_PREFIX_LSA_BODY_LENGTH = B(24)
 
const B OSPFV3_INTRA_AREA_PREFIX_LSA_HEADER_LENGTH = B(12)
 
const B OSPFV3_INTRA_AREA_PREFIX_LSA_PREFIX_LENGTH = B(20)
 
const B OSPFV3_LINK_LSA_BODY_LENGTH = B(24)
 
const B OSPFV3_LINK_LSA_PREFIX_LENGTH = B(20)
 
const B OSPFV3_LSA_PREFIX_HEADER_LENGTH = B(4)
 
int ospfv3InterfaceIndex = 1
 

Typedef Documentation

◆ AreaID

◆ Metric

typedef unsigned int inet::ospfv3::Metric

Enumeration Type Documentation

◆ InstallSource

Enumerator
ORIGINATED 
FLOODED 
256  {
257  ORIGINATED = 0,
258  FLOODED = 1
259 };

◆ Ospfv3AreaType

Enumerator
NORMAL 
STUB 
TOTALLY_STUBBY 
NSSA 
NSSA_TOTALLY_STUB 
19  {
20  NORMAL = 0,
21  STUB,
23  NSSA,
25 };

◆ Ospfv3LsaFunctionCode

Enum generated from inet/routing/ospfv3/Ospfv3Packet.msg:103 by opp_msgtool.

//LSA Function Code
enum Ospfv3LsaFunctionCode
{
    ROUTER_LSA = 1;
    NETWORK_LSA = 2;
    INTER_AREA_PREFIX_LSA = 3;
    INTER_AREA_ROUTER_LSA = 4;
    AS_EXTERNAL_LSA = 5;
    DEPRECATED = 6;
    NSSA_LSA = 7;
    LINK_LSA = 8;
    INTRA_AREA_PREFIX_LSA = 9;
}
Enumerator
ROUTER_LSA 
NETWORK_LSA 
INTER_AREA_PREFIX_LSA 
INTER_AREA_ROUTER_LSA 
AS_EXTERNAL_LSA 
DEPRECATED 
NSSA_LSA 
LINK_LSA 
INTRA_AREA_PREFIX_LSA 
395  {
396  ROUTER_LSA = 1,
397  NETWORK_LSA = 2,
400  AS_EXTERNAL_LSA = 5,
401  DEPRECATED = 6,
402  NSSA_LSA = 7,
403  LINK_LSA = 8,
405 };

◆ Ospfv3RouterLsaType

Enum generated from inet/routing/ospfv3/Ospfv3Packet.msg:188 by opp_msgtool.

//Router LSA
enum Ospfv3RouterLsaType
{
    POINT_TO_POINT = 1;
    TRANSIT_NETWORK = 2;
    RESERVED = 3;
    VIRTUAL_LINK = 4;
}
Enumerator
POINT_TO_POINT 
TRANSIT_NETWORK 
RESERVED 
VIRTUAL_LINK 
506  {
507  POINT_TO_POINT = 1,
508  TRANSIT_NETWORK = 2,
509  RESERVED = 3,
510  VIRTUAL_LINK = 4
511 };

◆ Ospfv3Timers

Enumerator
INIT_PROCESS 
HELLO_TIMER 
WAIT_TIMER 
NEIGHBOR_INACTIVITY_TIMER 
NEIGHBOR_POLL_TIMER 
NEIGHBOR_DD_RETRANSMISSION_TIMER 
NEIGHBOR_UPDATE_RETRANSMISSION_TIMER 
NEIGHBOR_REQUEST_RETRANSMISSION_TIMER 
ACKNOWLEDGEMENT_TIMER 
DATABASE_AGE_TIMER 
HELLO_TIMER_INIT 
7  {
8  INIT_PROCESS = 0,
9  HELLO_TIMER = 1,
10  WAIT_TIMER = 2,
18  HELLO_TIMER_INIT = 10 // timer set by process, for initialisation of hello msgs
19 };

Function Documentation

◆ __doPacking() [1/6]

void INET_API inet::ospfv3::__doPacking ( omnetpp::cCommBuffer *  b,
const Ospfv3DdOptions a 
)

◆ __doPacking() [2/6]

void INET_API inet::ospfv3::__doPacking ( omnetpp::cCommBuffer *  b,
const Ospfv3LsaPrefix0 a 
)

◆ __doPacking() [3/6]

void INET_API inet::ospfv3::__doPacking ( omnetpp::cCommBuffer *  b,
const Ospfv3LsaPrefixMetric a 
)

◆ __doPacking() [4/6]

void INET_API inet::ospfv3::__doPacking ( omnetpp::cCommBuffer *  b,
const Ospfv3LsRequest a 
)

◆ __doPacking() [5/6]

void INET_API inet::ospfv3::__doPacking ( omnetpp::cCommBuffer *  b,
const Ospfv3Options a 
)

Referenced by doParsimPacking().

◆ __doPacking() [6/6]

void INET_API inet::ospfv3::__doPacking ( omnetpp::cCommBuffer *  b,
const Ospfv3RouterLsaBody a 
)

◆ __doUnpacking() [1/6]

void INET_API inet::ospfv3::__doUnpacking ( omnetpp::cCommBuffer *  b,
Ospfv3DdOptions a 
)

◆ __doUnpacking() [2/6]

void INET_API inet::ospfv3::__doUnpacking ( omnetpp::cCommBuffer *  b,
Ospfv3LsaPrefix0 a 
)

◆ __doUnpacking() [3/6]

void INET_API inet::ospfv3::__doUnpacking ( omnetpp::cCommBuffer *  b,
Ospfv3LsaPrefixMetric a 
)

◆ __doUnpacking() [4/6]

void INET_API inet::ospfv3::__doUnpacking ( omnetpp::cCommBuffer *  b,
Ospfv3LsRequest a 
)

◆ __doUnpacking() [5/6]

void INET_API inet::ospfv3::__doUnpacking ( omnetpp::cCommBuffer *  b,
Ospfv3Options a 
)

Referenced by doParsimUnpacking().

◆ __doUnpacking() [6/6]

void INET_API inet::ospfv3::__doUnpacking ( omnetpp::cCommBuffer *  b,
Ospfv3RouterLsaBody a 
)

◆ BACKBONE_AREAID()

◆ calculateLSASize() [1/5]

B inet::ospfv3::calculateLSASize ( const Ospfv3InterAreaPrefixLsa prefixLSA)
34 {
35 // return OSPFV3_LSA_HEADER_LENGTH + OSPFV3_INTER_AREA_PREFIX_LSA_HEADER_LENGTH + OSPFV3_INTER_AREA_PREFIX_LSA_BODY_LENGTH;
36  return OSPFV3_LSA_HEADER_LENGTH + OSPFV3_INTER_AREA_PREFIX_LSA_HEADER_LENGTH + OSPFV3_LSA_PREFIX_HEADER_LENGTH + B(((prefixLSA->getPrefix().prefixLen + 31) / 32) * 4);
37 }

◆ calculateLSASize() [2/5]

B inet::ospfv3::calculateLSASize ( const Ospfv3IntraAreaPrefixLsa prefixLSA)
53 {
55 
56  uint32_t prefixCount = prefixLSA->getNumPrefixes();
57  for (uint32_t i = 0; i < prefixCount; i++) {
59  lsaLength += B(((prefixLSA->getPrefixes(i).prefixLen + 31) / 32) * 4);
60  }
61  return lsaLength;
62 }

◆ calculateLSASize() [3/5]

B inet::ospfv3::calculateLSASize ( const Ospfv3LinkLsa linkLSA)
41 {
43  uint32_t prefixCount = linkLSA->getNumPrefixes();
44  for (uint32_t i = 0; i < prefixCount; i++) {
46  lsaLength += B(((linkLSA->getPrefixes(i).prefixLen + 31) / 32) * 4);
47  }
48  return lsaLength;
49 }

◆ calculateLSASize() [4/5]

B inet::ospfv3::calculateLSASize ( const Ospfv3NetworkLsa networkLSA)
27 {
29  (OSPFV3_NETWORK_LSA_ATTACHED_LENGTH * networkLSA->getAttachedRouterArraySize());
30 }

◆ calculateLSASize() [5/5]

◆ Define_Module() [1/2]

inet::ospfv3::Define_Module ( Ospfv3Process  )

◆ Define_Module() [2/2]

inet::ospfv3::Define_Module ( Ospfv3Splitter  )

◆ doParsimPacking() [1/24]

void inet::ospfv3::doParsimPacking ( omnetpp::cCommBuffer *  b,
const Ospfv3AsExternalLsa obj 
)
inline
832 {obj.parsimPack(b);}

◆ doParsimPacking() [2/24]

void inet::ospfv3::doParsimPacking ( omnetpp::cCommBuffer *  b,
const Ospfv3DatabaseDescriptionPacket obj 
)
inline
1155 {obj.parsimPack(b);}

◆ doParsimPacking() [3/24]

void inet::ospfv3::doParsimPacking ( omnetpp::cCommBuffer *  b,
const Ospfv3DdOptions obj 
)
inline
1075 { __doPacking(b, obj); }

◆ doParsimPacking() [4/24]

void inet::ospfv3::doParsimPacking ( omnetpp::cCommBuffer *  b,
const Ospfv3HelloPacket obj 
)
inline
255 {obj.parsimPack(b);}

◆ doParsimPacking() [5/24]

void inet::ospfv3::doParsimPacking ( omnetpp::cCommBuffer *  b,
const Ospfv3InterAreaPrefixLsa obj 
)
inline
709 {obj.parsimPack(b);}

◆ doParsimPacking() [6/24]

void inet::ospfv3::doParsimPacking ( omnetpp::cCommBuffer *  b,
const Ospfv3InterAreaRouterLsa obj 
)
inline
757 {obj.parsimPack(b);}

◆ doParsimPacking() [7/24]

void inet::ospfv3::doParsimPacking ( omnetpp::cCommBuffer *  b,
const Ospfv3IntraAreaPrefixLsa obj 
)
inline
1056 {obj.parsimPack(b);}

◆ doParsimPacking() [8/24]

void inet::ospfv3::doParsimPacking ( omnetpp::cCommBuffer *  b,
const Ospfv3LinkLsa obj 
)
inline
988 {obj.parsimPack(b);}

◆ doParsimPacking() [9/24]

void inet::ospfv3::doParsimPacking ( omnetpp::cCommBuffer *  b,
const Ospfv3LinkStateAcknowledgementPacket obj 
)
inline
1376 {obj.parsimPack(b);}

◆ doParsimPacking() [10/24]

void inet::ospfv3::doParsimPacking ( omnetpp::cCommBuffer *  b,
const Ospfv3LinkStateRequestPacket obj 
)
inline
1222 {obj.parsimPack(b);}

◆ doParsimPacking() [11/24]

void inet::ospfv3::doParsimPacking ( omnetpp::cCommBuffer *  b,
const Ospfv3LinkStateUpdatePacket obj 
)
inline
1331 {obj.parsimPack(b);}

◆ doParsimPacking() [12/24]

void inet::ospfv3::doParsimPacking ( omnetpp::cCommBuffer *  b,
const Ospfv3Lsa obj 
)
inline
374 {obj.parsimPack(b);}

◆ doParsimPacking() [13/24]

void inet::ospfv3::doParsimPacking ( omnetpp::cCommBuffer *  b,
const Ospfv3LsaFunctionCode e 
)
inline
407 { b->pack(static_cast<int>(e)); }

◆ doParsimPacking() [14/24]

void inet::ospfv3::doParsimPacking ( omnetpp::cCommBuffer *  b,
const Ospfv3LsaHeader obj 
)
inline
336 {obj.parsimPack(b);}

◆ doParsimPacking() [15/24]

void inet::ospfv3::doParsimPacking ( omnetpp::cCommBuffer *  b,
const Ospfv3LsaPrefix0 obj 
)
inline
490 { __doPacking(b, obj); }

◆ doParsimPacking() [16/24]

void inet::ospfv3::doParsimPacking ( omnetpp::cCommBuffer *  b,
const Ospfv3LsaPrefixMetric obj 
)
inline
449 { __doPacking(b, obj); }

◆ doParsimPacking() [17/24]

void inet::ospfv3::doParsimPacking ( omnetpp::cCommBuffer *  b,
const Ospfv3LsRequest obj 
)
inline
1173 { __doPacking(b, obj); }

◆ doParsimPacking() [18/24]

void inet::ospfv3::doParsimPacking ( omnetpp::cCommBuffer *  b,
const Ospfv3NetworkLsa obj 
)
inline
661 {obj.parsimPack(b);}

◆ doParsimPacking() [19/24]

void inet::ospfv3::doParsimPacking ( omnetpp::cCommBuffer *  b,
const Ospfv3NssaLsa obj 
)
inline
917 {obj.parsimPack(b);}

◆ doParsimPacking() [20/24]

void inet::ospfv3::doParsimPacking ( omnetpp::cCommBuffer *  b,
const Ospfv3Options obj 
)
inline
158 { __doPacking(b, obj); }

◆ doParsimPacking() [21/24]

void inet::ospfv3::doParsimPacking ( omnetpp::cCommBuffer *  b,
const Ospfv3Packet obj 
)
inline
134 {obj.parsimPack(b);}

◆ doParsimPacking() [22/24]

void inet::ospfv3::doParsimPacking ( omnetpp::cCommBuffer *  b,
const Ospfv3RouterLsa obj 
)
inline
609 {obj.parsimPack(b);}

◆ doParsimPacking() [23/24]

void inet::ospfv3::doParsimPacking ( omnetpp::cCommBuffer *  b,
const Ospfv3RouterLsaBody obj 
)
inline
533 { __doPacking(b, obj); }

◆ doParsimPacking() [24/24]

void inet::ospfv3::doParsimPacking ( omnetpp::cCommBuffer *  b,
const Ospfv3RouterLsaType e 
)
inline
513 { b->pack(static_cast<int>(e)); }

◆ doParsimUnpacking() [1/24]

void inet::ospfv3::doParsimUnpacking ( omnetpp::cCommBuffer *  b,
Ospfv3AsExternalLsa obj 
)
inline
833 {obj.parsimUnpack(b);}

◆ doParsimUnpacking() [2/24]

void inet::ospfv3::doParsimUnpacking ( omnetpp::cCommBuffer *  b,
Ospfv3DatabaseDescriptionPacket obj 
)
inline
1156 {obj.parsimUnpack(b);}

◆ doParsimUnpacking() [3/24]

void inet::ospfv3::doParsimUnpacking ( omnetpp::cCommBuffer *  b,
Ospfv3DdOptions obj 
)
inline
1076 { __doUnpacking(b, obj); }

◆ doParsimUnpacking() [4/24]

void inet::ospfv3::doParsimUnpacking ( omnetpp::cCommBuffer *  b,
Ospfv3HelloPacket obj 
)
inline
256 {obj.parsimUnpack(b);}

◆ doParsimUnpacking() [5/24]

void inet::ospfv3::doParsimUnpacking ( omnetpp::cCommBuffer *  b,
Ospfv3InterAreaPrefixLsa obj 
)
inline
710 {obj.parsimUnpack(b);}

◆ doParsimUnpacking() [6/24]

void inet::ospfv3::doParsimUnpacking ( omnetpp::cCommBuffer *  b,
Ospfv3InterAreaRouterLsa obj 
)
inline
758 {obj.parsimUnpack(b);}

◆ doParsimUnpacking() [7/24]

void inet::ospfv3::doParsimUnpacking ( omnetpp::cCommBuffer *  b,
Ospfv3IntraAreaPrefixLsa obj 
)
inline
1057 {obj.parsimUnpack(b);}

◆ doParsimUnpacking() [8/24]

void inet::ospfv3::doParsimUnpacking ( omnetpp::cCommBuffer *  b,
Ospfv3LinkLsa obj 
)
inline
989 {obj.parsimUnpack(b);}

◆ doParsimUnpacking() [9/24]

void inet::ospfv3::doParsimUnpacking ( omnetpp::cCommBuffer *  b,
Ospfv3LinkStateAcknowledgementPacket obj 
)
inline
1377 {obj.parsimUnpack(b);}

◆ doParsimUnpacking() [10/24]

void inet::ospfv3::doParsimUnpacking ( omnetpp::cCommBuffer *  b,
Ospfv3LinkStateRequestPacket obj 
)
inline
1223 {obj.parsimUnpack(b);}

◆ doParsimUnpacking() [11/24]

void inet::ospfv3::doParsimUnpacking ( omnetpp::cCommBuffer *  b,
Ospfv3LinkStateUpdatePacket obj 
)
inline
1332 {obj.parsimUnpack(b);}

◆ doParsimUnpacking() [12/24]

void inet::ospfv3::doParsimUnpacking ( omnetpp::cCommBuffer *  b,
Ospfv3Lsa obj 
)
inline
375 {obj.parsimUnpack(b);}

◆ doParsimUnpacking() [13/24]

void inet::ospfv3::doParsimUnpacking ( omnetpp::cCommBuffer *  b,
Ospfv3LsaFunctionCode e 
)
inline
408 { int n; b->unpack(n); e = static_cast<Ospfv3LsaFunctionCode>(n); }

◆ doParsimUnpacking() [14/24]

void inet::ospfv3::doParsimUnpacking ( omnetpp::cCommBuffer *  b,
Ospfv3LsaHeader obj 
)
inline
337 {obj.parsimUnpack(b);}

◆ doParsimUnpacking() [15/24]

void inet::ospfv3::doParsimUnpacking ( omnetpp::cCommBuffer *  b,
Ospfv3LsaPrefix0 obj 
)
inline
491 { __doUnpacking(b, obj); }

◆ doParsimUnpacking() [16/24]

void inet::ospfv3::doParsimUnpacking ( omnetpp::cCommBuffer *  b,
Ospfv3LsaPrefixMetric obj 
)
inline
450 { __doUnpacking(b, obj); }

◆ doParsimUnpacking() [17/24]

void inet::ospfv3::doParsimUnpacking ( omnetpp::cCommBuffer *  b,
Ospfv3LsRequest obj 
)
inline
1174 { __doUnpacking(b, obj); }

◆ doParsimUnpacking() [18/24]

void inet::ospfv3::doParsimUnpacking ( omnetpp::cCommBuffer *  b,
Ospfv3NetworkLsa obj 
)
inline
662 {obj.parsimUnpack(b);}

◆ doParsimUnpacking() [19/24]

void inet::ospfv3::doParsimUnpacking ( omnetpp::cCommBuffer *  b,
Ospfv3NssaLsa obj 
)
inline
918 {obj.parsimUnpack(b);}

◆ doParsimUnpacking() [20/24]

void inet::ospfv3::doParsimUnpacking ( omnetpp::cCommBuffer *  b,
Ospfv3Options obj 
)
inline
159 { __doUnpacking(b, obj); }

◆ doParsimUnpacking() [21/24]

void inet::ospfv3::doParsimUnpacking ( omnetpp::cCommBuffer *  b,
Ospfv3Packet obj 
)
inline
135 {obj.parsimUnpack(b);}

◆ doParsimUnpacking() [22/24]

void inet::ospfv3::doParsimUnpacking ( omnetpp::cCommBuffer *  b,
Ospfv3RouterLsa obj 
)
inline
610 {obj.parsimUnpack(b);}

◆ doParsimUnpacking() [23/24]

void inet::ospfv3::doParsimUnpacking ( omnetpp::cCommBuffer *  b,
Ospfv3RouterLsaBody obj 
)
inline
534 { __doUnpacking(b, obj); }

◆ doParsimUnpacking() [24/24]

void inet::ospfv3::doParsimUnpacking ( omnetpp::cCommBuffer *  b,
Ospfv3RouterLsaType e 
)
inline
514 { int n; b->unpack(n); e = static_cast<Ospfv3RouterLsaType>(n); }

◆ isSameNetwork() [1/2]

bool inet::ospfv3::isSameNetwork ( Ipv4Address  address1,
Ipv4Address  mask1,
Ipv4Address  address2,
Ipv4Address  mask2 
)
inline
222 {
223  return (mask1 == mask2) && ((address1 & mask1) == (address2 & mask2));
224 }

◆ isSameNetwork() [2/2]

bool inet::ospfv3::isSameNetwork ( Ipv6Address  address1,
int  prefixLen1,
Ipv6Address  address2,
int  prefixLen2 
)
inline
146 {
147  return (prefixLen1 == prefixLen2) && (address1.getPrefix(prefixLen1) == address2.getPrefix(prefixLen2));
148 }

Referenced by inet::ospfv3::Ospfv3Area::findSameOrWorseCostRoute().

◆ NULL_IPV4ADDRESS()

◆ NULL_IPV4ADDRESSRANGE()

const Ipv4AddressRange inet::ospfv3::NULL_IPV4ADDRESSRANGE ( Ipv4Address(0, 0, 0, 0)  ,
Ipv4Address(0, 0, 0, 0)   
)

◆ NULL_IPV6ADDRESSRANGE()

const Ipv6AddressRange inet::ospfv3::NULL_IPV6ADDRESSRANGE ( Ipv6Address(0, 0, 0, 0)  ,
 
)

◆ NULL_LINKSTATEID()

const Ipv4Address inet::ospfv3::NULL_LINKSTATEID ( ,
,
,
 
)

◆ NULL_ROUTERID()

const Ipv4Address inet::ospfv3::NULL_ROUTERID ( ,
,
,
 
)

◆ operator!=() [1/4]

bool inet::ospfv3::operator!= ( const NextHop leftHop,
const NextHop rightHop 
)
inline
275 {
276  return !(leftHop == rightHop);
277 }

◆ operator!=() [2/4]

bool inet::ospfv3::operator!= ( Ospfv3DdOptions  leftID,
Ospfv3DdOptions  rightID 
)
inline
287 {
288  return (leftID.iBit != rightID.iBit) ||
289  (leftID.mBit != rightID.mBit) ||
290  (leftID.msBit != rightID.msBit);
291 }

◆ operator!=() [3/4]

bool inet::ospfv3::operator!= ( Ospfv3DdPacketId  leftID,
Ospfv3DdPacketId  rightID 
)
inline
309 {
310  return (leftID.ddOptions.iBit != rightID.ddOptions.iBit) ||
311  (leftID.ddOptions.mBit != rightID.ddOptions.mBit) ||
312  (leftID.ddOptions.msBit != rightID.ddOptions.msBit) ||
313  (leftID.options.dcBit != rightID.options.dcBit) ||
314  (leftID.options.eBit != rightID.options.eBit) ||
315  (leftID.options.nBit != rightID.options.nBit) ||
316  (leftID.options.rBit != rightID.options.rBit) ||
317  (leftID.options.v6Bit != rightID.options.v6Bit) ||
318  (leftID.options.xBit != rightID.options.xBit) ||
319  (leftID.sequenceNumber != rightID.sequenceNumber);
320 }

◆ operator!=() [4/4]

bool inet::ospfv3::operator!= ( Ospfv3Options  leftID,
Ospfv3Options  rightID 
)
inline
304 {
305  return !(leftID == rightID);
306 }

◆ operator&()

Ipv4Address inet::ospfv3::operator& ( Ipv4Address  address,
Ipv4Address  mask 
)
inline
208 {
209  Ipv4Address maskedAddress;
210  maskedAddress.set(address.getInt() & mask.getInt());
211  return maskedAddress;
212 }

◆ operator<() [1/2]

bool inet::ospfv3::operator< ( const Ospfv3LsaHeader leftLSA,
const Ospfv3LsaHeader rightLSA 
)
inline
348 {
349  long leftSequenceNumber = leftLSA.getLsaSequenceNumber();
350  long rightSequenceNumber = rightLSA.getLsaSequenceNumber();
351 
352  if (leftSequenceNumber < rightSequenceNumber) {
353  return true;
354  }
355  if (leftSequenceNumber == rightSequenceNumber) {
356  unsigned short leftAge = leftLSA.getLsaAge();
357  unsigned short rightAge = rightLSA.getLsaAge();
358 
359  if ((leftAge != MAX_AGE) && (rightAge == MAX_AGE)) {
360  return true;
361  }
362  if ((leftAge == MAX_AGE) && (rightAge != MAX_AGE)) {
363  return false;
364  }
365  if ((abs(leftAge - rightAge) > MAX_AGE_DIFF) && (leftAge > rightAge)) {
366  return true;
367  }
368  }
369  return false;
370 }

◆ operator<() [2/2]

bool inet::ospfv3::operator< ( Ospfv3LsaHeader leftLSA,
Ospfv3LsaHeader rightLSA 
)
inline
323 {
324  long leftSequenceNumber = leftLSA.getLsaSequenceNumber();
325  long rightSequenceNumber = rightLSA.getLsaSequenceNumber();
326 
327  if (leftSequenceNumber < rightSequenceNumber) {
328  return true;
329  }
330  if (leftSequenceNumber == rightSequenceNumber) {
331  unsigned short leftAge = leftLSA.getLsaAge();
332  unsigned short rightAge = rightLSA.getLsaAge();
333 
334  if ((leftAge != MAX_AGE) && (rightAge == MAX_AGE)) {
335  return true;
336  }
337  if ((leftAge == MAX_AGE) && (rightAge != MAX_AGE)) {
338  return false;
339  }
340  if ((abs(leftAge - rightAge) > MAX_AGE_DIFF) && (leftAge > rightAge)) {
341  return true;
342  }
343  }
344  return false;
345 }

◆ operator<<() [1/11]

std::ostream& inet::ospfv3::operator<< ( std::ostream &  ostr,
const Ospfv3Area area 
)
inline
216 {
217  ostr << area.detailedInfo();
218  return ostr;
219 }

◆ operator<<() [2/11]

std::ostream & inet::ospfv3::operator<< ( std::ostream &  ostr,
const Ospfv3AsExternalLsa lsa 
)
149 {
150  if (lsa.getEBit())
151  ostr << "E, ";
152  if (lsa.getTBit())
153  ostr << "T, ";
154  if (lsa.getFBit())
155  ostr << "F, ";
156 
157  ostr << "Referenced LSA Type: " << lsa.getReferencedLSType()
158  << ", Cost: " << lsa.getMetric()
159  << ", Forward: " << lsa.getForwardingAddress()
160  << ", ExtRouteTag: " << lsa.getExternalRouteTag()
161  << ", Referenced LSID: " << lsa.getReferencedLSID()
162  << ", ";
163 
164  ostr << lsa.getHeader();
165  return ostr;
166 }

◆ operator<<() [3/11]

std::ostream& inet::ospfv3::operator<< ( std::ostream &  ostr,
const Ospfv3Instance instance 
)
inline
62 {
63  ostr << instance.detailedInfo();
64  return ostr;
65 }

◆ operator<<() [4/11]

std::ostream & inet::ospfv3::operator<< ( std::ostream &  ostr,
const Ospfv3InterAreaPrefixLsa lsa 
)
141 {
142  ostr << "Mask: " << lsa.getPrefix().prefixLen
143  << ", Cost: " << lsa.getMetric() << ", ";
144  ostr << lsa.getHeader();
145  return ostr;
146 }

◆ operator<<() [5/11]

std::ostream& inet::ospfv3::operator<< ( std::ostream &  ostr,
const Ospfv3Interface interface 
)
inline
249 {
250  ostr << interface.detailedInfo();
251  return ostr;
252 }

◆ operator<<() [6/11]

std::ostream& inet::ospfv3::operator<< ( std::ostream &  ostr,
const Ospfv3Lsa lsa 
)
inline
192 { ostr << lsa.getHeader(); return ostr; }

◆ operator<<() [7/11]

std::ostream & inet::ospfv3::operator<< ( std::ostream &  ostr,
const Ospfv3LsaHeader lsaHeader 
)
65 {
66  ostr << "LSAHeader: age=" << lsaHeader.getLsaAge()
67  << ", type=";
68  switch (lsaHeader.getLsaType()) {
69  case ROUTER_LSA:
70  ostr << "RouterLSA";
71  break;
72 
73  case NETWORK_LSA:
74  ostr << "NetworkLSA";
75  break;
76 
78  ostr << "InterAreaPrefixLSA";
79  break;
80 
82  ostr << "InterAreaRouterLSA";
83  break;
84 
85  case AS_EXTERNAL_LSA:
86  ostr << "ASExternalLSA";
87  break;
88  case LINK_LSA:
89  ostr << "LinkLSA";
90  break;
92  ostr << "IntraAreaPrefixLSA";
93  break;
94 
95  default:
96  ostr << "Unknown";
97  break;
98  }
99  ostr << ", LSID=" << lsaHeader.getLinkStateID().str(false)
100  << ", advertisingRouter=" << lsaHeader.getAdvertisingRouter().str(false)
101  << ", seqNumber=" << lsaHeader.getLsaSequenceNumber()
102  << endl;
103  return ostr;
104 }

◆ operator<<() [8/11]

std::ostream & inet::ospfv3::operator<< ( std::ostream &  ostr,
const Ospfv3NetworkLsa lsa 
)
107 {
108  unsigned int cnt = lsa.getAttachedRouterArraySize();
109  if (cnt) {
110  ostr << ", Attached routers:";
111  for (unsigned int i = 0; i < cnt; i++) {
112  ostr << " " << lsa.getAttachedRouter(i);
113  }
114  }
115  ostr << ", " << lsa.getHeader();
116  return ostr;
117 }

◆ operator<<() [9/11]

std::ostream & inet::ospfv3::operator<< ( std::ostream &  ostr,
const Ospfv3RouterLsa lsa 
)
120 {
121  if (lsa.getVBit())
122  ostr << "V, ";
123  if (lsa.getEBit())
124  ostr << "E, ";
125  if (lsa.getBBit())
126  ostr << "B, ";
127  ostr << "numberOfLinks: " << lsa.getRoutersArraySize() << ", ";
128  unsigned int cnt = lsa.getRoutersArraySize();
129  if (cnt) {
130  ostr << "Links: {";
131  for (unsigned int i = 0; i < cnt; i++) {
132  ostr << " {" << lsa.getRouters(i).neighborRouterID << "}";
133  }
134  ostr << "}, ";
135  }
136  ostr << lsa.getHeader();
137  return ostr;
138 }

◆ operator<<() [10/11]

std::ostream & inet::ospfv3::operator<< ( std::ostream &  out,
const Ospfv3Ipv4RoutingTableEntry entry 
)
302 {
303  out << "Destination: " << entry.getDestinationAsGeneric() << "/" << entry.getPrefixLength() << " (";
304  if (entry.getDestinationType() == Ospfv3Ipv4RoutingTableEntry::NETWORK_DESTINATION) {
305  out << "Network";
306  }
307  else {
308  if ((entry.getDestinationType() & Ospfv3Ipv4RoutingTableEntry::AREA_BORDER_ROUTER_DESTINATION) != 0) {
309  out << "AreaBorderRouter";
310  }
311  if ((entry.getDestinationType() & Ospfv3Ipv4RoutingTableEntry::AS_BOUNDARY_ROUTER_DESTINATION) != 0) {
312  if ((entry.getDestinationType() & Ospfv3Ipv4RoutingTableEntry::AREA_BORDER_ROUTER_DESTINATION) != 0) {
313  out << "+";
314  }
315  out << "ASBoundaryRouter";
316  }
317  }
318  out << "), Area: "
319  << entry.getArea().str(false)
320  << ", PathType: ";
321  switch (entry.getPathType()) {
322  case Ospfv3Ipv4RoutingTableEntry::INTRAAREA:
323  out << "IntraArea";
324  break;
325 
326  case Ospfv3Ipv4RoutingTableEntry::INTERAREA:
327  out << "InterArea";
328  break;
329 
330  case Ospfv3Ipv4RoutingTableEntry::TYPE1_EXTERNAL:
331  out << "Type1External";
332  break;
333 
334  case Ospfv3Ipv4RoutingTableEntry::TYPE2_EXTERNAL:
335  out << "Type2External";
336  break;
337 
338  default:
339  out << "Unknown";
340  break;
341  }
342  out << ", iface: " << entry.getInterface()->getNedTypeName();
343  out << ", Cost: " << entry.getCost()
344  << ", Type2Cost: " << entry.getType2Cost()
345  << ", Origin: ["; // << entry.getLinkStateOrigin()->getHeader().getLinkStateID()
346 
347  Ospfv3LsaHeader lsaHeader = entry.getLinkStateOrigin()->getHeader();
348  out << "LSAHeader: age=" << lsaHeader.getLsaAge()
349  << ", type=";
350  switch (lsaHeader.getLsaType()) {
351  case ROUTER_LSA:
352  out << "RouterLSA";
353  break;
354 
355  case NETWORK_LSA:
356  out << "NetworkLSA";
357  break;
358 
360  out << "InterAreaPrefixLSA_Networks";
361  break;
362 
364  out << "InterAreaRouterLSA_ASBoundaryRouters";
365  break;
366 
367  case AS_EXTERNAL_LSA:
368  out << "ASExternalLSA";
369  break;
370 
371  default:
372  out << "Unknown";
373  break;
374  }
375  out << ", LSID=" << lsaHeader.getLinkStateID().str(false)
376  << ", advertisingRouter=" << lsaHeader.getAdvertisingRouter().str(false)
377  << ", seqNumber=" << lsaHeader.getLsaSequenceNumber()
378  << endl
379  << "], NextHops: ";
380 
381  unsigned int hopCount = entry.getNextHopCount();
382  for (unsigned int i = 0; i < hopCount; i++) {
383  out << entry.getNextHop(i).hopAddress << "/" << entry.getNextHop(i).advertisingRouter << "/" << entry.getNextHop(i).ifIndex << " ";
384  }
385 
386  return out;
387 }

◆ operator<<() [11/11]

std::ostream & inet::ospfv3::operator<< ( std::ostream &  out,
const Ospfv3RoutingTableEntry entry 
)
109 {
110  out << "Destination: " << entry.getDestinationAsGeneric() << "/" << entry.getPrefixLength() << " (";
111  if (entry.getDestinationType() == Ospfv3RoutingTableEntry::NETWORK_DESTINATION) {
112  out << "Network";
113  }
114  else {
115  if ((entry.getDestinationType() & Ospfv3RoutingTableEntry::AREA_BORDER_ROUTER_DESTINATION) != 0) {
116  out << "AreaBorderRouter";
117  }
118  if ((entry.getDestinationType() & Ospfv3RoutingTableEntry::AS_BOUNDARY_ROUTER_DESTINATION) != 0) {
119  if ((entry.getDestinationType() & Ospfv3RoutingTableEntry::AREA_BORDER_ROUTER_DESTINATION) != 0) {
120  out << "+";
121  }
122  out << "ASBoundaryRouter";
123  }
124  }
125  out << "), Area: "
126  << entry.getArea().str(false)
127  << ", PathType: ";
128  switch (entry.getPathType()) {
129  case Ospfv3RoutingTableEntry::INTRAAREA:
130  out << "IntraArea";
131  break;
132 
133  case Ospfv3RoutingTableEntry::INTERAREA:
134  out << "InterArea";
135  break;
136 
137  case Ospfv3RoutingTableEntry::TYPE1_EXTERNAL:
138  out << "Type1External";
139  break;
140 
141  case Ospfv3RoutingTableEntry::TYPE2_EXTERNAL:
142  out << "Type2External";
143  break;
144 
145  default:
146  out << "Unknown";
147  break;
148  }
149  out << ", iface: " << entry.getInterface()->getNedTypeName();
150  out << ", Cost: " << entry.getCost()
151  << ", Type2Cost: " << entry.getType2Cost()
152  << ", Origin: ["; // << entry.getLinkStateOrigin()->getHeader().getLinkStateID()
153 
154  Ospfv3LsaHeader lsaHeader = entry.getLinkStateOrigin()->getHeader();
155  out << "LSAHeader: age=" << lsaHeader.getLsaAge()
156  << ", type=";
157  switch (lsaHeader.getLsaType()) {
158  case ROUTER_LSA:
159  out << "RouterLSA";
160  break;
161 
162  case NETWORK_LSA:
163  out << "NetworkLSA";
164  break;
165 
167  out << "InterAreaPrefixLSA_Networks";
168  break;
169 
171  out << "InterAreaRouterLSA_ASBoundaryRouters";
172  break;
173 
174  case AS_EXTERNAL_LSA:
175  out << "ASExternalLSA";
176  break;
177 
178  default:
179  out << "Unknown";
180  break;
181  }
182  out << ", LSID=" << lsaHeader.getLinkStateID().str(false)
183  << ", advertisingRouter=" << lsaHeader.getAdvertisingRouter().str(false)
184  << ", seqNumber=" << lsaHeader.getLsaSequenceNumber()
185  << endl
186  << "], NextHops: ";
187 
188  unsigned int hopCount = entry.getNextHopCount();
189  for (unsigned int i = 0; i < hopCount; i++) {
190  out << entry.getNextHop(i).hopAddress << "/" << entry.getNextHop(i).advertisingRouter << "/" << entry.getNextHop(i).ifIndex << " ";
191  }
192 
193  return out;
194 }

◆ operator==() [1/5]

bool inet::ospfv3::operator== ( const NextHop leftHop,
const NextHop rightHop 
)
inline
268 {
269  return (leftHop.ifIndex == rightHop.ifIndex) &&
270  (leftHop.hopAddress == rightHop.hopAddress) &&
271  (leftHop.advertisingRouter == rightHop.advertisingRouter);
272 }

◆ operator==() [2/5]

bool inet::ospfv3::operator== ( const Ospfv3LsaHeader leftLSA,
const Ospfv3LsaHeader rightLSA 
)
inline
392 {
393  long leftSequenceNumber = leftLSA.getLsaSequenceNumber();
394  long rightSequenceNumber = rightLSA.getLsaSequenceNumber();
395  unsigned short leftAge = leftLSA.getLsaAge();
396  unsigned short rightAge = rightLSA.getLsaAge();
397 
398  if ((leftSequenceNumber == rightSequenceNumber) &&
399  (((leftAge == MAX_AGE) && (rightAge == MAX_AGE)) ||
400  (((leftAge != MAX_AGE) && (rightAge != MAX_AGE)) &&
401  (abs(leftAge - rightAge) <= MAX_AGE_DIFF))))
402  {
403  return true;
404  }
405  else {
406  return false;
407  }
408 }

◆ operator==() [3/5]

bool inet::ospfv3::operator== ( const VertexID leftID,
const VertexID rightID 
)
inline
251 {
252  return (leftID.interfaceID == rightID.interfaceID)
253  && (leftID.routerID == rightID.routerID);
254 }

Referenced by inet::ospfv3::Ospfv3Interface::processLSU().

◆ operator==() [4/5]

bool inet::ospfv3::operator== ( Ospfv3LsaHeader leftLSA,
Ospfv3LsaHeader rightLSA 
)
inline
373 {
374  long leftSequenceNumber = leftLSA.getLsaSequenceNumber();
375  long rightSequenceNumber = rightLSA.getLsaSequenceNumber();
376  unsigned short leftAge = leftLSA.getLsaAge();
377  unsigned short rightAge = rightLSA.getLsaAge();
378 
379  if ((leftSequenceNumber == rightSequenceNumber) &&
380  (((leftAge == MAX_AGE) && (rightAge == MAX_AGE)) ||
381  (((leftAge != MAX_AGE) && (rightAge != MAX_AGE)) &&
382  (abs(leftAge - rightAge) <= MAX_AGE_DIFF))))
383  {
384  return true;
385  }
386  else {
387  return false;
388  }
389 }

◆ operator==() [5/5]

bool inet::ospfv3::operator== ( Ospfv3Options  leftID,
Ospfv3Options  rightID 
)
inline
294 {
295  return (leftID.dcBit == rightID.dcBit) ||
296  (leftID.eBit == rightID.eBit) ||
297  (leftID.nBit == rightID.nBit) ||
298  (leftID.rBit == rightID.rBit) ||
299  (leftID.v6Bit == rightID.v6Bit) ||
300  (leftID.xBit == rightID.xBit);
301 }

◆ operator|()

Ipv4Address inet::ospfv3::operator| ( Ipv4Address  address,
Ipv4Address  match 
)
inline
215 {
216  Ipv4Address matchAddress;
217  matchAddress.set(address.getInt() | match.getInt());
218  return matchAddress;
219 }

Variable Documentation

◆ IPV6_DATAGRAM_LENGTH

const B inet::ospfv3::IPV6_DATAGRAM_LENGTH = B(65535)

◆ OSPFV3_DD_HEADER_LENGTH

const B inet::ospfv3::OSPFV3_DD_HEADER_LENGTH = B(12)

◆ OSPFV3_HEADER_LENGTH

◆ OSPFV3_INTER_AREA_PREFIX_LSA_BODY_LENGTH

const B inet::ospfv3::OSPFV3_INTER_AREA_PREFIX_LSA_BODY_LENGTH = B(24)

◆ OSPFV3_INTER_AREA_PREFIX_LSA_HEADER_LENGTH

const B inet::ospfv3::OSPFV3_INTER_AREA_PREFIX_LSA_HEADER_LENGTH = B(4)

◆ OSPFV3_INTRA_AREA_PREFIX_LSA_HEADER_LENGTH

const B inet::ospfv3::OSPFV3_INTRA_AREA_PREFIX_LSA_HEADER_LENGTH = B(12)

◆ OSPFV3_INTRA_AREA_PREFIX_LSA_PREFIX_LENGTH

const B inet::ospfv3::OSPFV3_INTRA_AREA_PREFIX_LSA_PREFIX_LENGTH = B(20)

◆ OSPFV3_LINK_LSA_BODY_LENGTH

const B inet::ospfv3::OSPFV3_LINK_LSA_BODY_LENGTH = B(24)

◆ OSPFV3_LINK_LSA_PREFIX_LENGTH

const B inet::ospfv3::OSPFV3_LINK_LSA_PREFIX_LENGTH = B(20)

◆ OSPFV3_LSA_HEADER_LENGTH

◆ OSPFV3_LSA_PREFIX_HEADER_LENGTH

◆ OSPFV3_LSR_LENGTH

const B inet::ospfv3::OSPFV3_LSR_LENGTH = B(12)

◆ OSPFV3_NETWORK_LSA_ATTACHED_LENGTH

const B inet::ospfv3::OSPFV3_NETWORK_LSA_ATTACHED_LENGTH = B(4)

Referenced by calculateLSASize().

◆ OSPFV3_NETWORK_LSA_HEADER_LENGTH

const B inet::ospfv3::OSPFV3_NETWORK_LSA_HEADER_LENGTH = B(4)

Referenced by calculateLSASize().

◆ OSPFV3_ROUTER_LSA_BODY_LENGTH

const B inet::ospfv3::OSPFV3_ROUTER_LSA_BODY_LENGTH = B(16)

Referenced by calculateLSASize().

◆ OSPFV3_ROUTER_LSA_HEADER_LENGTH

const B inet::ospfv3::OSPFV3_ROUTER_LSA_HEADER_LENGTH = B(4)

Referenced by calculateLSASize().

◆ ospfv3InterfaceIndex

int inet::ospfv3::ospfv3InterfaceIndex = 1
inet::ospfv3::Ospfv3LsaFunctionCode
Ospfv3LsaFunctionCode
Enum generated from inet/routing/ospfv3/Ospfv3Packet.msg:103 by opp_msgtool.
Definition: Ospfv3Packet_m.h:395
inet::ospfv3::ORIGINATED
@ ORIGINATED
Definition: Ospfv3Common.h:257
inet::ospfv3::HELLO_TIMER_INIT
@ HELLO_TIMER_INIT
Definition: Ospfv3Timers.h:18
inet::ospfv3::NSSA
@ NSSA
Definition: Ospfv3Area.h:23
inet::ospfv3::OSPFV3_LINK_LSA_BODY_LENGTH
const B OSPFV3_LINK_LSA_BODY_LENGTH
Definition: Ospfv3Common.h:74
inet::ospfv3::NEIGHBOR_UPDATE_RETRANSMISSION_TIMER
@ NEIGHBOR_UPDATE_RETRANSMISSION_TIMER
Definition: Ospfv3Timers.h:14
inet::ospfv3::NEIGHBOR_REQUEST_RETRANSMISSION_TIMER
@ NEIGHBOR_REQUEST_RETRANSMISSION_TIMER
Definition: Ospfv3Timers.h:15
inet::units::constants::e
const value< double, units::C > e(1.602176487e-19)
inet::ospfv3::POINT_TO_POINT
@ POINT_TO_POINT
Definition: Ospfv3Packet_m.h:507
inet::ospfv3::HELLO_TIMER
@ HELLO_TIMER
Definition: Ospfv3Timers.h:9
inet::ospfv3::__doPacking
void INET_API __doPacking(omnetpp::cCommBuffer *b, const Ospfv3LsRequest &a)
inet::ospfv3::TRANSIT_NETWORK
@ TRANSIT_NETWORK
Definition: Ospfv3Packet_m.h:508
inet::ospfv3::NSSA_TOTALLY_STUB
@ NSSA_TOTALLY_STUB
Definition: Ospfv3Area.h:24
MAX_AGE
#define MAX_AGE
Definition: Ospfv3Common.h:23
inet::ospfv3::INTRA_AREA_PREFIX_LSA
@ INTRA_AREA_PREFIX_LSA
Definition: Ospfv3Packet_m.h:404
inet::ospfv3::OSPFV3_INTRA_AREA_PREFIX_LSA_HEADER_LENGTH
const B OSPFV3_INTRA_AREA_PREFIX_LSA_HEADER_LENGTH
Definition: Ospfv3Common.h:71
inet::ospfv3::NETWORK_LSA
@ NETWORK_LSA
Definition: Ospfv3Packet_m.h:397
inet::ospfv3::STUB
@ STUB
Definition: Ospfv3Area.h:21
inet::ospfv3::ACKNOWLEDGEMENT_TIMER
@ ACKNOWLEDGEMENT_TIMER
Definition: Ospfv3Timers.h:16
inet::ospfv3::LINK_LSA
@ LINK_LSA
Definition: Ospfv3Packet_m.h:403
inet::ospfv3::FLOODED
@ FLOODED
Definition: Ospfv3Common.h:258
inet::ospfv3::TOTALLY_STUBBY
@ TOTALLY_STUBBY
Definition: Ospfv3Area.h:22
inet::units::units::B
intscale< b, 1, 8 > B
Definition: Units.h:1168
inet::ospfv3::NSSA_LSA
@ NSSA_LSA
Definition: Ospfv3Packet_m.h:402
inet::ospfv3::AS_EXTERNAL_LSA
@ AS_EXTERNAL_LSA
Definition: Ospfv3Packet_m.h:400
inet::ospfv3::WAIT_TIMER
@ WAIT_TIMER
Definition: Ospfv3Timers.h:10
inet::ospfv3::NEIGHBOR_DD_RETRANSMISSION_TIMER
@ NEIGHBOR_DD_RETRANSMISSION_TIMER
Definition: Ospfv3Timers.h:13
MAX_AGE_DIFF
#define MAX_AGE_DIFF
Definition: Ospfv3Common.h:24
inet::ospfv3::RESERVED
@ RESERVED
Definition: Ospfv3Packet_m.h:509
inet::ospfv3::OSPFV3_LSA_HEADER_LENGTH
const B OSPFV3_LSA_HEADER_LENGTH
Definition: Ospfv3Common.h:59
inet::ospfv3::OSPFV3_INTER_AREA_PREFIX_LSA_HEADER_LENGTH
const B OSPFV3_INTER_AREA_PREFIX_LSA_HEADER_LENGTH
Definition: Ospfv3Common.h:67
inet::ospfv3::VIRTUAL_LINK
@ VIRTUAL_LINK
Definition: Ospfv3Packet_m.h:510
inet::ospfv3::DATABASE_AGE_TIMER
@ DATABASE_AGE_TIMER
Definition: Ospfv3Timers.h:17
inet::ospfv3::INTER_AREA_PREFIX_LSA
@ INTER_AREA_PREFIX_LSA
Definition: Ospfv3Packet_m.h:398
inet::units::values::b
value< int64_t, units::b > b
Definition: Units.h:1241
inet::ospfv3::__doUnpacking
void INET_API __doUnpacking(omnetpp::cCommBuffer *b, Ospfv3LsRequest &a)
inet::ospfv3::OSPFV3_NETWORK_LSA_HEADER_LENGTH
const B OSPFV3_NETWORK_LSA_HEADER_LENGTH
Definition: Ospfv3Common.h:64
inet::ospfv3::Ospfv3RouterLsaType
Ospfv3RouterLsaType
Enum generated from inet/routing/ospfv3/Ospfv3Packet.msg:188 by opp_msgtool.
Definition: Ospfv3Packet_m.h:506
inet::ospfv3::NORMAL
@ NORMAL
Definition: Ospfv3Area.h:20
inet::ospfv3::OSPFV3_ROUTER_LSA_HEADER_LENGTH
const B OSPFV3_ROUTER_LSA_HEADER_LENGTH
Definition: Ospfv3Common.h:61
inet::ospfv3::NEIGHBOR_POLL_TIMER
@ NEIGHBOR_POLL_TIMER
Definition: Ospfv3Timers.h:12
inet::ospfv3::INIT_PROCESS
@ INIT_PROCESS
Definition: Ospfv3Timers.h:8
inet::ospfv3::INTER_AREA_ROUTER_LSA
@ INTER_AREA_ROUTER_LSA
Definition: Ospfv3Packet_m.h:399
inet::ospfv3::OSPFV3_ROUTER_LSA_BODY_LENGTH
const B OSPFV3_ROUTER_LSA_BODY_LENGTH
Definition: Ospfv3Common.h:62
inet::ospfv3::NEIGHBOR_INACTIVITY_TIMER
@ NEIGHBOR_INACTIVITY_TIMER
Definition: Ospfv3Timers.h:11
inet::ospfv3::OSPFV3_LSA_PREFIX_HEADER_LENGTH
const B OSPFV3_LSA_PREFIX_HEADER_LENGTH
Definition: Ospfv3Common.h:77
inet::ospfv3::ROUTER_LSA
@ ROUTER_LSA
Definition: Ospfv3Packet_m.h:396
inet::ospfv3::OSPFV3_NETWORK_LSA_ATTACHED_LENGTH
const B OSPFV3_NETWORK_LSA_ATTACHED_LENGTH
Definition: Ospfv3Common.h:65
inet::ospfv3::DEPRECATED
@ DEPRECATED
Definition: Ospfv3Packet_m.h:401