|
INET Framework for OMNeT++/OMNEST
|
#include <Ospfv2Interface.h>
|
| enum | Ospfv2InterfaceType {
UNKNOWN_TYPE = 0,
POINTTOPOINT = 1,
BROADCAST = 2,
NBMA = 3,
POINTTOMULTIPOINT = 4,
VIRTUAL = 5
} |
| |
| enum | Ospfv2InterfaceEventType {
INTERFACE_UP = 0,
HELLO_TIMER = 1,
WAIT_TIMER = 2,
ACKNOWLEDGEMENT_TIMER = 3,
BACKUP_SEEN = 4,
NEIGHBOR_CHANGE = 5,
LOOP_INDICATION = 6,
UNLOOP_INDICATION = 7,
INTERFACE_DOWN = 8
} |
| |
| enum | Ospfv2InterfaceStateType {
DOWN_STATE = 0,
LOOPBACK_STATE = 1,
WAITING_STATE = 2,
POINTTOPOINT_STATE = 3,
NOT_DESIGNATED_ROUTER_STATE = 4,
BACKUP_STATE = 5,
DESIGNATED_ROUTER_STATE = 6
} |
| |
| enum | Ospfv2InterfaceMode { ACTIVE = 0,
PASSIVE = 1,
NO_OSPF = 2
} |
| |
◆ Ospfv2InterfaceEventType
| Enumerator |
|---|
| INTERFACE_UP | |
| HELLO_TIMER | |
| WAIT_TIMER | |
| ACKNOWLEDGEMENT_TIMER | |
| BACKUP_SEEN | |
| NEIGHBOR_CHANGE | |
| LOOP_INDICATION | |
| UNLOOP_INDICATION | |
| INTERFACE_DOWN | |
◆ Ospfv2InterfaceMode
| Enumerator |
|---|
| ACTIVE | |
| PASSIVE | |
| NO_OSPF | |
◆ Ospfv2InterfaceStateType
| Enumerator |
|---|
| DOWN_STATE | |
| LOOPBACK_STATE | |
| WAITING_STATE | |
| POINTTOPOINT_STATE | |
| NOT_DESIGNATED_ROUTER_STATE | |
| BACKUP_STATE | |
| DESIGNATED_ROUTER_STATE | |
◆ Ospfv2InterfaceType
| Enumerator |
|---|
| UNKNOWN_TYPE | |
| POINTTOPOINT | |
| BROADCAST | |
| NBMA | |
| POINTTOMULTIPOINT | |
| VIRTUAL | |
◆ Ospfv2Interface()
53 state =
new InterfaceStateDown;
◆ ~Ospfv2Interface()
| inet::ospfv2::Ospfv2Interface::~Ospfv2Interface |
( |
| ) |
|
|
virtual |
◆ addDelayedAcknowledgement()
| void inet::ospfv2::Ospfv2Interface::addDelayedAcknowledgement |
( |
const Ospfv2LsaHeader & |
lsaHeader | ) |
|
◆ addNeighbor()
| void inet::ospfv2::Ospfv2Interface::addNeighbor |
( |
Neighbor * |
neighbor | ) |
|
◆ ageTransmittedLsaLists()
| void inet::ospfv2::Ospfv2Interface::ageTransmittedLsaLists |
( |
| ) |
|
617 for (
long i = 0; i < neighborCount; i++) {
◆ changeState()
◆ createUpdatePacket()
| Packet * inet::ospfv2::Ospfv2Interface::createUpdatePacket |
( |
const Ospfv2Lsa * |
lsa | ) |
|
475 const auto& updatePacket = makeShared<Ospfv2LinkStateUpdatePacket>();
480 updatePacket->setAreaID(Ipv4Address(
areaID));
489 updatePacket->setOspfLSAsArraySize(1);
490 updatePacket->setOspfLSAs(0, lsa->dup());
491 auto lsa = updatePacket->getOspfLSAsForUpdate(0);
492 auto& lsaHeader = lsa->getHeaderForUpdate();
493 unsigned short lsAge = lsaHeader.getLsAge();
500 lsaHeader.setLsAge(lsAge);
502 ASSERT(lsaSize ==
B(lsaHeader.getLsaLength()));
504 packetLength += lsaSize;
509 throw cRuntimeError(
"Invalid LSA type: %d", lsaType);
512 updatePacket->setPacketLengthField(
B(packetLength).get());
513 updatePacket->setChunkLength(packetLength);
515 for (
int j = 0; j < 8; j++) {
521 Packet *pk =
new Packet();
522 pk->insertAtBack(updatePacket);
Referenced by floodLsa(), inet::ospfv2::LinkStateRequestHandler::processPacket(), and inet::ospfv2::LinkStateUpdateHandler::processPacket().
◆ floodLsa()
- See also
- RFC2328 Section 13.3.
341 bool floodedBackOut =
false;
362 bool lsaAddedToRetransmissionList =
false;
363 LinkStateId linkStateID = lsa->getHeader().getLinkStateID();
366 lsaKey.linkStateID = linkStateID;
367 lsaKey.advertisingRouter = lsa->getHeader().getAdvertisingRouter();
369 for (
long i = 0; i < neighborCount; i++) {
375 if (requestLSAHeader !=
nullptr) {
377 if (lsa->getHeader() < (*requestLSAHeader)) {
380 if (
operator==(lsa->getHeader(), (*requestLSAHeader))) {
391 lsaAddedToRetransmissionList =
true;
393 if (lsaAddedToRetransmissionList) {
394 if ((intf !=
this) ||
395 ((neighbor !=
nullptr) &&
402 if (updatePacket !=
nullptr) {
412 for (
long k = 0;
k < neighborCount;
k++) {
423 if (dRouter !=
nullptr) {
424 dRouter->addToTransmittedLSAList(lsaKey);
425 if (!dRouter->isUpdateRetransmissionTimerActive()) {
426 dRouter->startUpdateRetransmissionTimer();
429 if (backupDRouter !=
nullptr) {
430 backupDRouter->addToTransmittedLSAList(lsaKey);
431 if (!backupDRouter->isUpdateRetransmissionTimerActive()) {
432 backupDRouter->startUpdateRetransmissionTimer();
440 if (neighborCount > 0) {
448 for (
long m = 0;
m < neighborCount;
m++) {
461 floodedBackOut =
true;
469 return floodedBackOut;
◆ getAcknowledgementDelay()
| short inet::ospfv2::Ospfv2Interface::getAcknowledgementDelay |
( |
| ) |
const |
|
inline |
◆ getAcknowledgementTimer()
| cMessage* inet::ospfv2::Ospfv2Interface::getAcknowledgementTimer |
( |
| ) |
|
|
inline |
◆ getAddressRange()
◆ getArea() [1/2]
| Ospfv2Area* inet::ospfv2::Ospfv2Interface::getArea |
( |
| ) |
|
|
inline |
Referenced by inet::ospfv2::LinkStateUpdateHandler::acknowledgeLSA(), inet::ospfv2::Ospfv2InterfaceState::changeState(), inet::ospfv2::NeighborState::changeState(), inet::ospfv2::Neighbor::clearRequestRetransmissionTimer(), inet::ospfv2::Neighbor::clearUpdateRetransmissionTimer(), inet::ospfv2::Neighbor::createDatabaseSummary(), inet::ospfv2::Neighbor::needAdjacency(), inet::ospfv2::DatabaseDescriptionHandler::processDDPacket(), inet::ospfv2::NeighborStateExchangeStart::processEvent(), inet::ospfv2::InterfaceStateDown::processEvent(), inet::ospfv2::NeighborStateLoading::processEvent(), inet::ospfv2::InterfaceStateNotDesignatedRouter::processEvent(), inet::ospfv2::InterfaceStateWaiting::processEvent(), inet::ospfv2::NeighborStateInit::processEvent(), inet::ospfv2::InterfaceStatePointToPoint::processEvent(), inet::ospfv2::NeighborStateTwoWay::processEvent(), inet::ospfv2::InterfaceStateBackup::processEvent(), inet::ospfv2::NeighborStateAttempt::processEvent(), inet::ospfv2::NeighborStateDown::processEvent(), inet::ospfv2::NeighborStateFull::processEvent(), inet::ospfv2::InterfaceStateDesignatedRouter::processEvent(), inet::ospfv2::NeighborStateExchange::processEvent(), inet::ospfv2::HelloHandler::processPacket(), inet::ospfv2::LinkStateRequestHandler::processPacket(), inet::ospfv2::Neighbor::reset(), inet::ospfv2::Neighbor::retransmitDatabaseDescriptionPacket(), inet::ospfv2::Neighbor::retransmitUpdatePacket(), inet::ospfv2::Neighbor::sendDatabaseDescriptionPacket(), inet::ospfv2::Neighbor::sendLinkStateRequestPacket(), inet::ospfv2::Neighbor::startRequestRetransmissionTimer(), inet::ospfv2::Neighbor::startUpdateRetransmissionTimer(), inet::ospfv2::NeighborState::updateLsa(), and inet::ospfv2::Neighbor::~Neighbor().
◆ getArea() [2/2]
| const Ospfv2Area* inet::ospfv2::Ospfv2Interface::getArea |
( |
| ) |
const |
|
inline |
◆ getAreaId()
| AreaId inet::ospfv2::Ospfv2Interface::getAreaId |
( |
| ) |
const |
|
inline |
◆ getAuthenticationKey()
◆ getAuthenticationType()
◆ getBackupDesignatedRouter()
◆ getCrcMode()
| CrcMode inet::ospfv2::Ospfv2Interface::getCrcMode |
( |
| ) |
const |
|
inline |
◆ getDesignatedRouter()
◆ getHelloInterval()
| short inet::ospfv2::Ospfv2Interface::getHelloInterval |
( |
| ) |
const |
|
inline |
◆ getHelloTimer()
| cMessage* inet::ospfv2::Ospfv2Interface::getHelloTimer |
( |
| ) |
|
|
inline |
◆ getIfIndex()
| int inet::ospfv2::Ospfv2Interface::getIfIndex |
( |
| ) |
const |
|
inline |
◆ getInterfaceName()
| std::string inet::ospfv2::Ospfv2Interface::getInterfaceName |
( |
| ) |
const |
|
inline |
◆ getMode()
◆ getModeString()
◆ getMtu()
| unsigned short inet::ospfv2::Ospfv2Interface::getMtu |
( |
| ) |
const |
|
inline |
◆ getNeighbor() [1/2]
| Neighbor* inet::ospfv2::Ospfv2Interface::getNeighbor |
( |
unsigned long |
i | ) |
|
|
inline |
◆ getNeighbor() [2/2]
| const Neighbor* inet::ospfv2::Ospfv2Interface::getNeighbor |
( |
unsigned long |
i | ) |
const |
|
inline |
◆ getNeighborByAddress()
◆ getNeighborById()
| Neighbor * inet::ospfv2::Ospfv2Interface::getNeighborById |
( |
RouterId |
neighborID | ) |
|
◆ getNeighborCount()
| unsigned long inet::ospfv2::Ospfv2Interface::getNeighborCount |
( |
| ) |
const |
|
inline |
◆ getOutputCost()
| Metric inet::ospfv2::Ospfv2Interface::getOutputCost |
( |
| ) |
const |
|
inline |
◆ getPollInterval()
| short inet::ospfv2::Ospfv2Interface::getPollInterval |
( |
| ) |
const |
|
inline |
◆ getRetransmissionInterval()
| short inet::ospfv2::Ospfv2Interface::getRetransmissionInterval |
( |
| ) |
const |
|
inline |
◆ getRouterDeadInterval()
| short inet::ospfv2::Ospfv2Interface::getRouterDeadInterval |
( |
| ) |
const |
|
inline |
◆ getRouterPriority()
| unsigned char inet::ospfv2::Ospfv2Interface::getRouterPriority |
( |
| ) |
const |
|
inline |
◆ getState()
Referenced by inet::ospfv2::LinkStateUpdateHandler::acknowledgeLSA(), addDelayedAcknowledgement(), inet::ospfv2::Ospfv2Area::ageDatabase(), inet::ospfv2::Ospfv2InterfaceState::calculateDesignatedRouter(), inet::ospfv2::Ospfv2Area::calculateShortestPathTree(), floodLsa(), inet::ospfv2::Ospfv2Area::originateRouterLSA(), inet::ospfv2::Ospfv2InterfaceState::printElectionResult(), inet::ospfv2::MessageHandler::printEvent(), inet::ospfv2::NeighborStateFull::processEvent(), inet::ospfv2::HelloHandler::processPacket(), inet::ospfv2::LinkStateRequestHandler::processPacket(), inet::ospfv2::LinkStateUpdateHandler::processPacket(), inet::ospfv2::MessageHandler::processPacket(), sendDelayedAcknowledgements(), sendHelloPacket(), and inet::ospfv2::NeighborState::updateLsa().
◆ getStateString()
◆ getTransitAreaId()
| AreaId inet::ospfv2::Ospfv2Interface::getTransitAreaId |
( |
| ) |
const |
|
inline |
◆ getTransmissionDelay()
| short inet::ospfv2::Ospfv2Interface::getTransmissionDelay |
( |
| ) |
const |
|
inline |
◆ getType()
Referenced by inet::ospfv2::LinkStateUpdateHandler::acknowledgeLSA(), inet::ospfv2::Ospfv2InterfaceState::changeState(), inet::ospfv2::Neighbor::createDatabaseSummary(), inet::ospfv2::Neighbor::needAdjacency(), inet::ospfv2::Ospfv2Area::originateRouterLSA(), inet::ospfv2::Ospfv2InterfaceState::printElectionResult(), inet::ospfv2::MessageHandler::printEvent(), inet::ospfv2::NeighborStateDown::processEvent(), inet::ospfv2::NeighborStateAttempt::processEvent(), inet::ospfv2::NeighborStateExchangeStart::processEvent(), inet::ospfv2::NeighborStateInit::processEvent(), inet::ospfv2::NeighborStateTwoWay::processEvent(), inet::ospfv2::NeighborStateLoading::processEvent(), inet::ospfv2::InterfaceStateBackup::processEvent(), inet::ospfv2::InterfaceStateDesignatedRouter::processEvent(), inet::ospfv2::InterfaceStateWaiting::processEvent(), inet::ospfv2::InterfaceStatePointToPoint::processEvent(), inet::ospfv2::InterfaceStateNotDesignatedRouter::processEvent(), inet::ospfv2::InterfaceStateDown::processEvent(), inet::ospfv2::NeighborStateExchange::processEvent(), inet::ospfv2::NeighborStateFull::processEvent(), inet::ospfv2::LinkStateRequestHandler::processPacket(), inet::ospfv2::HelloHandler::processPacket(), inet::ospfv2::LinkStateUpdateHandler::processPacket(), inet::ospfv2::MessageHandler::processPacket(), inet::ospfv2::Neighbor::retransmitDatabaseDescriptionPacket(), inet::ospfv2::Neighbor::retransmitUpdatePacket(), inet::ospfv2::Neighbor::sendDatabaseDescriptionPacket(), and inet::ospfv2::Neighbor::sendLinkStateRequestPacket().
◆ getTypeString()
◆ getWaitTimer()
| cMessage* inet::ospfv2::Ospfv2Interface::getWaitTimer |
( |
| ) |
|
|
inline |
◆ hasAnyNeighborInStates()
| bool inet::ospfv2::Ospfv2Interface::hasAnyNeighborInStates |
( |
int |
states | ) |
const |
◆ isOnAnyRetransmissionList()
| bool inet::ospfv2::Ospfv2Interface::isOnAnyRetransmissionList |
( |
LsaKeyType |
lsaKey | ) |
const |
◆ processEvent()
◆ removeFromAllRetransmissionLists()
| void inet::ospfv2::Ospfv2Interface::removeFromAllRetransmissionLists |
( |
LsaKeyType |
lsaKey | ) |
|
◆ reset()
| void inet::ospfv2::Ospfv2Interface::reset |
( |
| ) |
|
◆ sendDelayedAcknowledgements()
| void inet::ospfv2::Ospfv2Interface::sendDelayedAcknowledgements |
( |
| ) |
|
◆ sendHelloPacket()
| void inet::ospfv2::Ospfv2Interface::sendHelloPacket |
( |
Ipv4Address |
destination, |
|
|
short |
ttl = 1 |
|
) |
| |
◆ sendLsAcknowledgement()
228 Ospfv2Options options;
229 const auto& lsAckPacket = makeShared<Ospfv2LinkStateAcknowledgementPacket>();
236 lsAckPacket->setLsaHeadersArraySize(1);
237 lsAckPacket->setLsaHeaders(0, *lsaHeader);
240 lsAckPacket->setChunkLength(
B(lsAckPacket->getPacketLengthField()));
242 for (
int i = 0; i < 8; i++) {
248 Packet *pk =
new Packet();
249 pk->insertAtBack(lsAckPacket);
Referenced by inet::ospfv2::LinkStateUpdateHandler::processPacket().
◆ setAcknowledgementDelay()
| void inet::ospfv2::Ospfv2Interface::setAcknowledgementDelay |
( |
short |
delay | ) |
|
|
inline |
◆ setAddressRange()
◆ setArea()
| void inet::ospfv2::Ospfv2Interface::setArea |
( |
Ospfv2Area * |
area | ) |
|
|
inline |
◆ setAreaId()
| void inet::ospfv2::Ospfv2Interface::setAreaId |
( |
AreaId |
areaId | ) |
|
|
inline |
◆ setAuthenticationKey()
◆ setAuthenticationType()
◆ setCrcMode()
| void inet::ospfv2::Ospfv2Interface::setCrcMode |
( |
CrcMode |
crcMode | ) |
|
|
inline |
◆ setHelloInterval()
| void inet::ospfv2::Ospfv2Interface::setHelloInterval |
( |
short |
interval | ) |
|
|
inline |
◆ setIfIndex()
| void inet::ospfv2::Ospfv2Interface::setIfIndex |
( |
IInterfaceTable * |
ift, |
|
|
int |
index |
|
) |
| |
◆ setInterfaceName()
| void inet::ospfv2::Ospfv2Interface::setInterfaceName |
( |
std::string |
ifName | ) |
|
|
inline |
◆ setMode()
◆ setMtu()
| void inet::ospfv2::Ospfv2Interface::setMtu |
( |
unsigned short |
ifMTU | ) |
|
|
inline |
◆ setOutputCost()
| void inet::ospfv2::Ospfv2Interface::setOutputCost |
( |
Metric |
cost | ) |
|
|
inline |
◆ setPollInterval()
| void inet::ospfv2::Ospfv2Interface::setPollInterval |
( |
short |
interval | ) |
|
|
inline |
◆ setRetransmissionInterval()
| void inet::ospfv2::Ospfv2Interface::setRetransmissionInterval |
( |
short |
interval | ) |
|
|
inline |
◆ setRouterDeadInterval()
| void inet::ospfv2::Ospfv2Interface::setRouterDeadInterval |
( |
short |
interval | ) |
|
|
inline |
◆ setRouterPriority()
| void inet::ospfv2::Ospfv2Interface::setRouterPriority |
( |
unsigned char |
priority | ) |
|
|
inline |
◆ setTransitAreaId()
| void inet::ospfv2::Ospfv2Interface::setTransitAreaId |
( |
AreaId |
areaId | ) |
|
|
inline |
◆ setTransmissionDelay()
| void inet::ospfv2::Ospfv2Interface::setTransmissionDelay |
( |
short |
delay | ) |
|
|
inline |
◆ setType()
◆ operator<<
| std::ostream& operator<< |
( |
std::ostream & |
stream, |
|
|
const Ospfv2Interface & |
intf |
|
) |
| |
|
friend |
624 std::string neighbors =
"";
625 for (
auto& neighbor : intf.neighboringRoutersByID) {
627 neighbors = neighbors + (neighbor.first).str() +
"(" + neighborState +
") ";
630 return stream <<
"name: " << intf.getInterfaceName() <<
" "
631 <<
"index: " << intf.ifIndex <<
" "
632 <<
"type: '" << intf.getTypeString(intf.interfaceType) <<
"' "
633 <<
"MTU: " << intf.mtu <<
" "
634 <<
"state: '" << intf.getStateString(intf.state->getState()) <<
"' "
635 <<
"mode: '" << intf.getModeString(intf.interfaceMode) <<
"' "
636 <<
"cost: " << intf.interfaceOutputCost <<
" "
638 <<
"area: " << intf.areaID.str(
false) <<
" "
639 <<
"transitArea: " << intf.transitAreaID.str(
false) <<
" "
641 <<
"helloInterval: " << intf.helloInterval <<
" "
642 <<
"pollInterval: " << intf.pollInterval <<
" "
643 <<
"routerDeadInterval: " << intf.routerDeadInterval <<
" "
644 <<
"retransmissionInterval: " << intf.retransmissionInterval <<
" "
646 <<
"acknowledgementDelay: " << intf.acknowledgementDelay <<
" "
647 <<
"interfaceTransmissionDelay: " << intf.interfaceTransmissionDelay <<
" "
649 <<
"neighboringRouters: " << ((neighbors ==
"") ?
"<none>(down)" : neighbors) <<
" "
651 <<
"routerPriority: " << (int)(intf.routerPriority) <<
" "
652 <<
"designatedRouterID: " << intf.designatedRouter.routerID <<
" "
653 <<
"designatedRouterInterface: " << intf.designatedRouter.ipInterfaceAddress <<
" "
654 <<
"backupDesignatedRouterID: " << intf.backupDesignatedRouter.routerID <<
" "
655 <<
"backupDesignatedRouterInterface: " << intf.backupDesignatedRouter.ipInterfaceAddress;
◆ Ospfv2InterfaceState
◆ acknowledgementDelay
| short inet::ospfv2::Ospfv2Interface::acknowledgementDelay |
|
private |
◆ acknowledgementTimer
| cMessage* inet::ospfv2::Ospfv2Interface::acknowledgementTimer |
|
private |
◆ areaID
| AreaId inet::ospfv2::Ospfv2Interface::areaID |
|
private |
◆ authenticationKey
◆ authenticationType
◆ backupDesignatedRouter
◆ crcMode
| CrcMode inet::ospfv2::Ospfv2Interface::crcMode |
|
private |
◆ delayedAcknowledgements
◆ designatedRouter
◆ helloInterval
| short inet::ospfv2::Ospfv2Interface::helloInterval |
|
private |
◆ helloTimer
| cMessage* inet::ospfv2::Ospfv2Interface::helloTimer |
|
private |
◆ ifIndex
| int inet::ospfv2::Ospfv2Interface::ifIndex |
|
private |
◆ interfaceAddressRange
◆ interfaceMode
◆ interfaceName
| std::string inet::ospfv2::Ospfv2Interface::interfaceName |
|
private |
◆ interfaceOutputCost
| Metric inet::ospfv2::Ospfv2Interface::interfaceOutputCost |
|
private |
◆ interfaceTransmissionDelay
| short inet::ospfv2::Ospfv2Interface::interfaceTransmissionDelay |
|
private |
◆ interfaceType
◆ mtu
| unsigned short inet::ospfv2::Ospfv2Interface::mtu |
|
private |
◆ neighboringRouters
| std::vector<Neighbor *> inet::ospfv2::Ospfv2Interface::neighboringRouters |
|
private |
Referenced by addDelayedAcknowledgement(), addNeighbor(), ageTransmittedLsaLists(), inet::ospfv2::Ospfv2InterfaceState::calculateDesignatedRouter(), floodLsa(), hasAnyNeighborInStates(), isOnAnyRetransmissionList(), removeFromAllRetransmissionLists(), reset(), sendHelloPacket(), and ~Ospfv2Interface().
◆ neighboringRoutersByAddress
◆ neighboringRoutersByID
| std::map<RouterId, Neighbor *> inet::ospfv2::Ospfv2Interface::neighboringRoutersByID |
|
private |
◆ parentArea
| Ospfv2Area* inet::ospfv2::Ospfv2Interface::parentArea |
|
private |
◆ pollInterval
| short inet::ospfv2::Ospfv2Interface::pollInterval |
|
private |
◆ previousState
◆ retransmissionInterval
| short inet::ospfv2::Ospfv2Interface::retransmissionInterval |
|
private |
◆ routerDeadInterval
| short inet::ospfv2::Ospfv2Interface::routerDeadInterval |
|
private |
◆ routerPriority
| unsigned char inet::ospfv2::Ospfv2Interface::routerPriority |
|
private |
◆ state
◆ transitAreaID
| AreaId inet::ospfv2::Ospfv2Interface::transitAreaID |
|
private |
◆ waitTimer
| cMessage* inet::ospfv2::Ospfv2Interface::waitTimer |
|
private |
The documentation for this class was generated from the following files:
@ INIT_STATE
Definition: Ospfv2Neighbor.h:52
#define VIRTUAL_LINK_TTL
Definition: Ospfv2Common.h:36
short routerDeadInterval
Definition: Ospfv2Interface.h:81
@ FULL_STATE
Definition: Ospfv2Neighbor.h:57
int ifIndex
Definition: Ospfv2Interface.h:74
AuthenticationType authenticationType
Definition: Ospfv2Interface.h:96
AreaId transitAreaID
Definition: Ospfv2Interface.h:78
CrcMode crcMode
Definition: Ospfv2Interface.h:70
@ LINKSTATE_ACKNOWLEDGEMENT_PACKET
Definition: OspfPacketBase_m.h:69
@ POINTTOPOINT
Definition: Ospfv2Interface.h:32
NeighborStateType
Definition: Ospfv2Neighbor.h:49
Ospfv2InterfaceState * previousState
Definition: Ospfv2Interface.h:72
@ INTERFACE_HELLO_TIMER
Definition: Ospfv2Packet_m.h:93
cMessage * acknowledgementTimer
Definition: Ospfv2Interface.h:86
@ WAITING_STATE
Definition: Ospfv2Interface.h:54
Ospfv2Area * parentArea
Definition: Ospfv2Interface.h:99
@ WAIT_TIMER
Definition: Ospfv2Interface.h:42
unsigned char routerPriority
Definition: Ospfv2Interface.h:83
@ SUMMARYLSA_NETWORKS_TYPE
Definition: Ospfv2Packet_m.h:285
DesignatedRouterId designatedRouter
Definition: Ospfv2Interface.h:91
B calculateLSASize(const Ospfv2Lsa *lsa)
Definition: Lsa.cc:66
short pollInterval
Definition: Ospfv2Interface.h:80
@ INTERFACE_UP
Definition: Ospfv2Interface.h:40
@ DESIGNATED_ROUTER_STATE
Definition: Ospfv2Interface.h:58
void setOspfCrc(const Ptr< Ospfv2Packet > &ospfPacket, CrcMode crcMode)
Definition: Ospfv2Crc.cc:17
const B IPV4_DATAGRAM_LENGTH
Definition: Ospfv2Common.h:38
Ospfv2LsaType
Enum generated from inet/routing/ospfv2/Ospfv2Packet.msg:78 by opp_msgtool.
Definition: Ospfv2Packet_m.h:282
@ NEIGHBOR_CHANGE
Definition: Ospfv2Interface.h:45
@ LOOP_INDICATION
Definition: Ospfv2Interface.h:46
bool getExternalRoutingCapability() const
Definition: Ospfv2Area.h:61
static const char * getStateString(NeighborStateType stateType)
Definition: Ospfv2Neighbor.cc:132
MessageHandler * getMessageHandler()
Definition: Ospfv2Router.h:66
const Ipv4AddressRange NULL_IPV4ADDRESSRANGE(Ipv4Address(0, 0, 0, 0), Ipv4Address(0, 0, 0, 0))
@ ROUTERLSA_TYPE
Definition: Ospfv2Packet_m.h:283
@ UNKNOWN_TYPE
Definition: Ospfv2Interface.h:31
Neighbor * getNeighborById(RouterId neighborID)
Definition: Ospfv2Interface.cc:255
#define MAX_AGE
Definition: Ospfv2Common.h:27
@ CRC_MODE_UNDEFINED
Definition: CrcMode_m.h:55
@ ACKNOWLEDGEMENT_TIMER
Definition: Ospfv2Interface.h:43
const Ipv4Address NULL_IPV4ADDRESS(0, 0, 0, 0)
@ ACTIVE
Definition: Ospfv2Interface.h:62
@ LINKSTATE_UPDATE_PACKET
Definition: OspfPacketBase_m.h:68
@ NULL_TYPE
Definition: Ospfv2Common.h:59
const DesignatedRouterId NULL_DESIGNATEDROUTERID
Definition: Ospfv2Common.h:156
Ipv4Address mask
Definition: Ospfv2Common.h:72
AreaId getAreaID() const
Definition: Ospfv2Area.h:53
@ SUMMARYLSA_ASBOUNDARYROUTERS_TYPE
Definition: Ospfv2Packet_m.h:286
cMessage * waitTimer
Definition: Ospfv2Interface.h:85
std::map< RouterId, Neighbor * > neighboringRoutersByID
Definition: Ospfv2Interface.h:87
short helloInterval
Definition: Ospfv2Interface.h:79
std::string interfaceName
Definition: Ospfv2Interface.h:73
const AreaId BACKBONE_AREAID(0, 0, 0, 0)
short retransmissionInterval
Definition: Ospfv2Interface.h:94
Ospfv2InterfaceType interfaceType
Definition: Ospfv2Interface.h:68
intscale< b, 1, 8 > B
Definition: Units.h:1168
cMessage * helloTimer
Definition: Ospfv2Interface.h:84
@ BACKUP_SEEN
Definition: Ospfv2Interface.h:44
std::vector< Neighbor * > neighboringRouters
Definition: Ospfv2Interface.h:89
@ VIRTUAL
Definition: Ospfv2Interface.h:36
Router * getRouter()
Definition: Ospfv2Area.h:69
@ AS_EXTERNAL_LSA_TYPE
Definition: Ospfv2Packet_m.h:287
static const Ipv4Address ALL_OSPF_DESIGNATED_ROUTERS_MCAST
224.0.0.6 All OSPF Designated Routers
Definition: Ipv4Address.h:100
const B OSPFv2_LSA_HEADER_LENGTH
Definition: Ospfv2Common.h:40
Ospfv2InterfaceMode interfaceMode
Definition: Ospfv2Interface.h:69
DesignatedRouterId backupDesignatedRouter
Definition: Ospfv2Interface.h:92
@ HELLO_TIMER
Definition: Ospfv2Interface.h:41
@ INTERFACE_DOWN
Definition: Ospfv2Interface.h:48
removed type
Definition: IUdp-gates.txt:7
@ INTERFACE_ACKNOWLEDGEMENT_TIMER
Definition: Ospfv2Packet_m.h:95
const B OSPFv2_HEADER_LENGTH
Definition: Ospfv2Common.h:39
@ NBMA
Definition: Ospfv2Interface.h:34
virtual void processEvent(Ospfv2Interface *intf, Ospfv2Interface::Ospfv2InterfaceEventType event)=0
Ipv4Address LinkStateId
Definition: Ospfv2Common.h:131
void sendPacket(Packet *packet, Ipv4Address destination, Ospfv2Interface *outputIf, short ttl=1)
Definition: MessageHandler.cc:303
@ NOT_DESIGNATED_ROUTER_STATE
Definition: Ospfv2Interface.h:56
@ EXCHANGE_STATE
Definition: Ospfv2Neighbor.h:55
@ PASSIVE
Definition: Ospfv2Interface.h:63
char bytes[8]
Definition: Ospfv2Common.h:66
Ipv4Address ipInterfaceAddress
Definition: Ospfv2Common.h:148
std::map< Ipv4Address, Neighbor * > neighboringRoutersByAddress
Definition: Ospfv2Interface.h:88
std::map< Ipv4Address, std::list< Ospfv2LsaHeader > > delayedAcknowledgements
Definition: Ospfv2Interface.h:90
RouterId getRouterID() const
Definition: Ospfv2Router.h:60
@ POINTTOMULTIPOINT
Definition: Ospfv2Interface.h:35
const double k
Definition: Qam1024Modulation.cc:14
void setLsaCrc(Ospfv2Lsa &lsa, CrcMode crcMode)
Definition: Ospfv2Crc.cc:49
Metric interfaceOutputCost
Definition: Ospfv2Interface.h:93
const B IPv4_MAX_HEADER_LENGTH
Definition: Ipv4Header_m.h:71
@ LOOPBACK_STATE
Definition: Ospfv2Interface.h:53
@ POINTTOPOINT_STATE
Definition: Ospfv2Interface.h:55
short acknowledgementDelay
Definition: Ospfv2Interface.h:95
Ipv4AddressRange interfaceAddressRange
Definition: Ospfv2Interface.h:76
@ UNLOOP_INDICATION
Definition: Ospfv2Interface.h:47
Packet * createUpdatePacket(const Ospfv2Lsa *lsa)
Definition: Ospfv2Interface.cc:472
Ipv4Address address
Definition: Ospfv2Common.h:71
unsigned short mtu
Definition: Ospfv2Interface.h:75
@ NETWORKLSA_TYPE
Definition: Ospfv2Packet_m.h:284
Ospfv2InterfaceStateType getState() const
Definition: Ospfv2Interface.cc:275
@ BROADCAST
Definition: Ospfv2Interface.h:33
value< double, units::m > m
Definition: Units.h:1233
static const char * getStateString(Ospfv2InterfaceStateType stateType)
Definition: Ospfv2Interface.cc:280
@ NO_OSPF
Definition: Ospfv2Interface.h:64
@ DOWN_STATE
Definition: Ospfv2Interface.h:52
Ospfv2InterfaceState * state
Definition: Ospfv2Interface.h:71
RouterId routerID
Definition: Ospfv2Common.h:147
AuthenticationKeyType authenticationKey
Definition: Ospfv2Interface.h:97
@ BACKUP_STATE
Definition: Ospfv2Interface.h:57
const B OSPFv2_HELLO_HEADER_LENGTH
Definition: Ospfv2Common.h:41
@ INTERFACE_WAIT_TIMER
Definition: Ospfv2Packet_m.h:94
virtual Ospfv2Interface::Ospfv2InterfaceStateType getState() const =0
void clearTimer(cMessage *timer)
Definition: MessageHandler.cc:370
short interfaceTransmissionDelay
Definition: Ospfv2Interface.h:82
AreaId areaID
Definition: Ospfv2Interface.h:77
static const Ipv4Address ALL_OSPF_ROUTERS_MCAST
224.0.0.5 All OSPF routers (DR Others)
Definition: Ipv4Address.h:99
@ KILL_NEIGHBOR
Definition: Ospfv2Neighbor.h:40
int getIfIndex() const
Definition: Ospfv2Interface.h:137