|
INET Framework for OMNeT++/OMNEST
|
#include <Ospfv3Neighbor.h>
|
| enum | Ospfv3NeighborEventType {
HELLO_RECEIVED = 0,
START = 1,
TWOWAY_RECEIVED = 2,
NEGOTIATION_DONE = 3,
EXCHANGE_DONE = 4,
BAD_LINK_STATE_REQUEST = 5,
LOADING_DONE = 6,
IS_ADJACENCY_OK = 7,
SEQUENCE_NUMBER_MISMATCH = 8,
ONEWAY_RECEIVED = 9,
KILL_NEIGHBOR = 10,
INACTIVITY_TIMER = 11,
POLL_TIMER = 12,
LINK_DOWN = 13,
DD_RETRANSMISSION_TIMER = 14,
UPDATE_RETRANSMISSION_TIMER = 15,
REQUEST_RETRANSMISSION_TIMER = 16
} |
| |
| enum | Ospfv3NeighborStateType {
DOWN_STATE = 0,
ATTEMPT_STATE = 1,
INIT_STATE = 2,
TWOWAY_STATE = 4,
EXCHANGE_START_STATE = 8,
EXCHANGE_STATE = 16,
LOADING_STATE = 32,
FULL_STATE = 64
} |
| |
| enum | Ospfv3DatabaseExchangeRelationshipType { MASTER = 0,
SLAVE = 1
} |
| |
◆ Ospfv3DatabaseExchangeRelationshipType
◆ Ospfv3NeighborEventType
| Enumerator |
|---|
| HELLO_RECEIVED | |
| START | |
| TWOWAY_RECEIVED | |
| NEGOTIATION_DONE | |
| EXCHANGE_DONE | |
| BAD_LINK_STATE_REQUEST | |
| LOADING_DONE | |
| IS_ADJACENCY_OK | |
| SEQUENCE_NUMBER_MISMATCH | |
| ONEWAY_RECEIVED | |
| KILL_NEIGHBOR | |
| INACTIVITY_TIMER | |
| POLL_TIMER | |
| LINK_DOWN | |
| DD_RETRANSMISSION_TIMER | |
| UPDATE_RETRANSMISSION_TIMER | |
| REQUEST_RETRANSMISSION_TIMER | |
◆ Ospfv3NeighborStateType
| Enumerator |
|---|
| DOWN_STATE | |
| ATTEMPT_STATE | |
| INIT_STATE | |
| TWOWAY_STATE | |
| EXCHANGE_START_STATE | |
| EXCHANGE_STATE | |
| LOADING_STATE | |
| FULL_STATE | |
◆ Ospfv3Neighbor()
13 EV_DEBUG <<
"$$$$$$ New Ospfv3Neighbor has been created\n";
15 this->
state =
new Ospfv3NeighborStateDown;
◆ ~Ospfv3Neighbor()
| inet::ospfv3::Ospfv3Neighbor::~Ospfv3Neighbor |
( |
| ) |
|
|
virtual |
◆ addToRequestList()
| void inet::ospfv3::Ospfv3Neighbor::addToRequestList |
( |
const Ospfv3LsaHeader * |
lsaHeader | ) |
|
630 EV_DEBUG <<
"Currently on request list:\n";
632 EV_DEBUG <<
"\tType: " << (*it)->getLsaType() <<
", ID: " << (*it)->getLinkStateID() <<
", Adv: " << (*it)->getAdvertisingRouter() <<
"\n";
Referenced by inet::ospfv3::Ospfv3Interface::preProcessDDPacket().
◆ addToRetransmissionList()
| void inet::ospfv3::Ospfv3Neighbor::addToRetransmissionList |
( |
const Ospfv3Lsa * |
lsaC | ) |
|
522 if (((*it)->getHeader().getLinkStateID() == lsa->getHeader().getLinkStateID()) &&
523 ((*it)->getHeader().getAdvertisingRouter().getInt() == lsa->getHeader().getAdvertisingRouter().getInt()))
529 Ospfv3Lsa *lsaCopy = lsa->dup();
562 *it =
static_cast<Ospfv3Lsa *
>(lsaCopy);
◆ addToTransmittedLSAList()
| void inet::ospfv3::Ospfv3Neighbor::addToTransmittedLSAList |
( |
LSAKeyType |
lsaKey | ) |
|
◆ ageTransmittedLSAList()
| void inet::ospfv3::Ospfv3Neighbor::ageTransmittedLSAList |
( |
| ) |
|
◆ changeState()
◆ clearRequestRetransmissionTimer()
| void inet::ospfv3::Ospfv3Neighbor::clearRequestRetransmissionTimer |
( |
| ) |
|
◆ clearUpdateRetransmissionTimer()
| void inet::ospfv3::Ospfv3Neighbor::clearUpdateRetransmissionTimer |
( |
| ) |
|
◆ createDatabaseSummary()
| void inet::ospfv3::Ospfv3Neighbor::createDatabaseSummary |
( |
| ) |
|
295 for (
int i = 0; i < routerLSACount; i++) {
296 Ospfv3LsaHeader *lsaHeader =
new Ospfv3LsaHeader(area->getRouterLSA(i)->getHeader());
300 int networkLSACount = area->getNetworkLSACount();
301 for (
int i = 0; i < networkLSACount; i++) {
302 Ospfv3LsaHeader *lsaHeader =
new Ospfv3LsaHeader(area->getNetworkLSA(i)->getHeader());
306 int interAreaPrefixCount = area->getInterAreaPrefixLSACount();
307 for (
int i = 0; i < interAreaPrefixCount; i++) {
308 Ospfv3LsaHeader *lsaHeader =
new Ospfv3LsaHeader(area->getInterAreaPrefixLSA(i)->getHeader());
313 for (
int i = 0; i < linkLsaCount; i++) {
314 Ospfv3LsaHeader *lsaHeader =
new Ospfv3LsaHeader(this->
getInterface()->getLinkLSA(i)->getHeader());
318 int intraAreaPrefixCnt = area->getIntraAreaPrefixLSACount();
319 for (
int i = 0; i < intraAreaPrefixCnt; i++) {
320 Ospfv3LsaHeader *lsaHeader =
new Ospfv3LsaHeader(area->getIntraAreaPrefixLSA(i)->getHeader());
Referenced by inet::ospfv3::Ospfv3NeighborStateExStart::processEvent().
◆ deleteLastSentDDPacket()
| void inet::ospfv3::Ospfv3Neighbor::deleteLastSentDDPacket |
( |
| ) |
|
◆ designatedRoutersAreSetUp()
| bool inet::ospfv3::Ospfv3Neighbor::designatedRoutersAreSetUp |
( |
| ) |
const |
|
inline |
◆ findOnRequestList()
648 if (((*it)->getLinkStateID() == lsaKey.linkStateID) &&
649 ((*it)->getAdvertisingRouter() == lsaKey.advertisingRouter))
Referenced by isLSAOnRequestList().
◆ findOnRetransmissionList()
◆ getDatabaseExchangeRelationship()
◆ getDatabaseSummaryListCount()
| unsigned long inet::ospfv3::Ospfv3Neighbor::getDatabaseSummaryListCount |
( |
| ) |
const |
|
inline |
◆ getDDRetransmissionTimer()
| cMessage* inet::ospfv3::Ospfv3Neighbor::getDDRetransmissionTimer |
( |
| ) |
|
|
inline |
◆ getDDSequenceNumber()
| unsigned long inet::ospfv3::Ospfv3Neighbor::getDDSequenceNumber |
( |
| ) |
|
|
inline |
◆ getInactivityTimer()
| cMessage* inet::ospfv3::Ospfv3Neighbor::getInactivityTimer |
( |
| ) |
|
|
inline |
◆ getInterface()
Referenced by inet::ospfv3::Ospfv3Interface::addNeighbor(), inet::ospfv3::Ospfv3NeighborState::changeState(), clearRequestRetransmissionTimer(), clearUpdateRetransmissionTimer(), createDatabaseSummary(), inet::ospfv3::Ospfv3Process::handleTimer(), needAdjacency(), Ospfv3Neighbor(), inet::ospfv3::Ospfv3NeighborStateAttempt::processEvent(), inet::ospfv3::Ospfv3NeighborStateFull::processEvent(), inet::ospfv3::Ospfv3NeighborStateLoading::processEvent(), inet::ospfv3::Ospfv3NeighborState2Way::processEvent(), inet::ospfv3::Ospfv3NeighborStateDown::processEvent(), inet::ospfv3::Ospfv3NeighborStateExchange::processEvent(), inet::ospfv3::Ospfv3NeighborStateInit::processEvent(), inet::ospfv3::Ospfv3NeighborStateExStart::processEvent(), reset(), retransmitDatabaseDescriptionPacket(), retransmitUpdatePacket(), sendDDPacket(), sendLinkStateRequestPacket(), startRequestRetransmissionTimer(), startUpdateRetransmissionTimer(), and ~Ospfv3Neighbor().
◆ getLastHelloTime()
| int inet::ospfv3::Ospfv3Neighbor::getLastHelloTime |
( |
| ) |
|
|
inline |
◆ getLastReceivedDDPacket()
◆ getNeighborBackupIP()
| L3Address inet::ospfv3::Ospfv3Neighbor::getNeighborBackupIP |
( |
| ) |
|
|
inline |
◆ getNeighborDeadInterval()
| unsigned short inet::ospfv3::Ospfv3Neighbor::getNeighborDeadInterval |
( |
| ) |
|
|
inline |
◆ getNeighborDesignatedIP()
| L3Address inet::ospfv3::Ospfv3Neighbor::getNeighborDesignatedIP |
( |
| ) |
|
|
inline |
◆ getNeighborID()
| Ipv4Address inet::ospfv3::Ospfv3Neighbor::getNeighborID |
( |
| ) |
|
|
inline |
Referenced by inet::ospfv3::Ospfv3Interface::addNeighbor(), inet::ospfv3::Ospfv3InterfaceState::calculateDesignatedRouter(), inet::ospfv3::Ospfv3Area::calculateNextHops(), inet::ospfv3::Ospfv3NeighborState::changeState(), inet::ospfv3::Ospfv3Instance::detailedInfo(), inet::ospfv3::Ospfv3Interface::floodLSA(), inet::ospfv3::Ospfv3Process::handleTimer(), needAdjacency(), inet::ospfv3::Ospfv3Area::originateNetworkLSA(), inet::ospfv3::Ospfv3Area::originateRouterLSA(), inet::ospfv3::Ospfv3Interface::processDDPacket(), inet::ospfv3::Ospfv3NeighborStateExStart::processEvent(), inet::ospfv3::Ospfv3Interface::processHelloPacket(), inet::ospfv3::Ospfv3Interface::removeNeighborByID(), and reset().
◆ getNeighborInterfaceID()
| uint32_t inet::ospfv3::Ospfv3Neighbor::getNeighborInterfaceID |
( |
| ) |
|
|
inline |
◆ getNeighborIP()
| Ipv6Address inet::ospfv3::Ospfv3Neighbor::getNeighborIP |
( |
| ) |
|
|
inline |
Referenced by inet::ospfv3::Ospfv3Interface::acknowledgeLSA(), inet::ospfv3::Ospfv3InterfaceState::calculateDesignatedRouter(), inet::ospfv3::Ospfv3NeighborStateDown::processEvent(), inet::ospfv3::Ospfv3InterfaceStateDrOther::processEvent(), inet::ospfv3::Ospfv3InterfaceStateDr::processEvent(), inet::ospfv3::Ospfv3InterfaceStateWaiting::processEvent(), inet::ospfv3::Ospfv3InterfaceStatePointToPoint::processEvent(), inet::ospfv3::Ospfv3InterfaceStateBackup::processEvent(), inet::ospfv3::Ospfv3Interface::processHelloPacket(), inet::ospfv3::Ospfv3Interface::processLSR(), inet::ospfv3::Ospfv3Interface::processLSU(), retransmitDatabaseDescriptionPacket(), retransmitUpdatePacket(), sendDDPacket(), and sendLinkStateRequestPacket().
◆ getNeighborPriority()
| unsigned short inet::ospfv3::Ospfv3Neighbor::getNeighborPriority |
( |
| ) |
|
|
inline |
◆ getNeighborsBackup()
| Ipv4Address inet::ospfv3::Ospfv3Neighbor::getNeighborsBackup |
( |
| ) |
|
|
inline |
◆ getNeighborsDR()
| Ipv4Address inet::ospfv3::Ospfv3Neighbor::getNeighborsDR |
( |
| ) |
|
|
inline |
◆ getOptions()
◆ getPollTimer()
| cMessage* inet::ospfv3::Ospfv3Neighbor::getPollTimer |
( |
| ) |
|
|
inline |
◆ getRequestRetransmissionTimer()
| cMessage* inet::ospfv3::Ospfv3Neighbor::getRequestRetransmissionTimer |
( |
| ) |
|
|
inline |
◆ getState()
◆ getUniqueULong()
| unsigned long inet::ospfv3::Ospfv3Neighbor::getUniqueULong |
( |
| ) |
|
◆ getUpdateRetransmissionTimer()
| cMessage* inet::ospfv3::Ospfv3Neighbor::getUpdateRetransmissionTimer |
( |
| ) |
|
|
inline |
◆ incrementDDSequenceNumber()
| void inet::ospfv3::Ospfv3Neighbor::incrementDDSequenceNumber |
( |
| ) |
|
|
inline |
◆ initFirstAdjacency()
| void inet::ospfv3::Ospfv3Neighbor::initFirstAdjacency |
( |
| ) |
|
◆ isFirstAdjacencyInited()
| bool inet::ospfv3::Ospfv3Neighbor::isFirstAdjacencyInited |
( |
| ) |
const |
|
inline |
◆ isLinkStateRequestListEmpty() [1/2]
| bool inet::ospfv3::Ospfv3Neighbor::isLinkStateRequestListEmpty |
( |
| ) |
|
|
inline |
◆ isLinkStateRequestListEmpty() [2/2]
| bool inet::ospfv3::Ospfv3Neighbor::isLinkStateRequestListEmpty |
( |
LSAKeyType |
lsaKey | ) |
const |
592 if ((lsa->getHeader().getLinkStateID() == lsaKey.linkStateID) &&
593 (lsa->getHeader().getAdvertisingRouter() == lsaKey.advertisingRouter))
◆ isLSAOnRequestList()
| bool inet::ospfv3::Ospfv3Neighbor::isLSAOnRequestList |
( |
LSAKeyType |
lsaKey | ) |
|
◆ isOnTransmittedLSAList()
| bool inet::ospfv3::Ospfv3Neighbor::isOnTransmittedLSAList |
( |
LSAKeyType |
lsaKey | ) |
const |
690 if ((it->lsaKey.linkStateID == lsaKey.linkStateID) &&
691 (it->lsaKey.advertisingRouter == lsaKey.advertisingRouter))
◆ isRequestRetransmissionTimerActive()
| bool inet::ospfv3::Ospfv3Neighbor::isRequestRetransmissionTimerActive |
( |
| ) |
|
|
inline |
◆ isRetransmissionListEmpty()
| bool inet::ospfv3::Ospfv3Neighbor::isRetransmissionListEmpty |
( |
| ) |
const |
|
inline |
◆ isUpdateRetransmissionTimerActive()
| bool inet::ospfv3::Ospfv3Neighbor::isUpdateRetransmissionTimerActive |
( |
| ) |
const |
|
inline |
◆ needAdjacency()
| bool inet::ospfv3::Ospfv3Neighbor::needAdjacency |
( |
| ) |
|
◆ processEvent()
◆ removeFromRequestList()
| void inet::ospfv3::Ospfv3Neighbor::removeFromRequestList |
( |
LSAKeyType |
lsaKey | ) |
|
◆ removeFromRetransmissionList()
| void inet::ospfv3::Ospfv3Neighbor::removeFromRetransmissionList |
( |
LSAKeyType |
lsaKey | ) |
|
◆ reset()
| void inet::ospfv3::Ospfv3Neighbor::reset |
( |
| ) |
|
◆ retransmitDatabaseDescriptionPacket()
| bool inet::ospfv3::Ospfv3Neighbor::retransmitDatabaseDescriptionPacket |
( |
| ) |
|
◆ retransmitUpdatePacket()
| void inet::ospfv3::Ospfv3Neighbor::retransmitUpdatePacket |
( |
| ) |
|
327 EV_DEBUG <<
"Retransmitting update packet\n";
328 const auto& updatePacket = makeShared<Ospfv3LinkStateUpdatePacket>();
331 updatePacket->setRouterID(this->
getInterface()->getArea()->getInstance()->getProcess()->getRouterID());
332 updatePacket->setAreaID(this->
getInterface()->getArea()->getAreaID());
333 updatePacket->setInstanceID(this->
getInterface()->getArea()->getInstance()->getInstanceID());
335 bool packetFull =
false;
336 unsigned short lsaCount = 0;
341 uint16_t lsaType = (*it)->getHeader().getLsaType();
342 const Ospfv3RouterLsa *routerLSA = (lsaType ==
ROUTER_LSA) ?
dynamic_cast<Ospfv3RouterLsa *
>(*it) :
nullptr;
343 const Ospfv3NetworkLsa *networkLSA = (lsaType ==
NETWORK_LSA) ?
dynamic_cast<Ospfv3NetworkLsa *
>(*it) :
nullptr;
344 const Ospfv3LinkLsa *linkLSA = (lsaType ==
LINK_LSA) ?
dynamic_cast<Ospfv3LinkLsa *
>(*it) :
nullptr;
345 const Ospfv3InterAreaPrefixLsa *interAreaPrefixLSA = (lsaType ==
INTER_AREA_PREFIX_LSA) ?
dynamic_cast<Ospfv3InterAreaPrefixLsa *
>(*it) :
nullptr;
346 const Ospfv3IntraAreaPrefixLsa *intraAreaPrefixLSA = (lsaType ==
INTRA_AREA_PREFIX_LSA) ?
dynamic_cast<Ospfv3IntraAreaPrefixLsa *
>(*it) :
nullptr;
349 bool includeLSA =
false;
353 if (routerLSA !=
nullptr) {
359 if (networkLSA !=
nullptr) {
364 if (interAreaPrefixLSA !=
nullptr) {
377 if (linkLSA !=
nullptr)
381 if (intraAreaPrefixLSA !=
nullptr) {
387 if (
B(packetLength + lsaSize).get() < this->
getInterface()->getInterfaceMTU()) {
400 packetLength += lsaSize;
403 if (routerLSA !=
nullptr) {
404 unsigned int routerLSACount = updatePacket->getRouterLSAsArraySize();
406 updatePacket->setRouterLSAsArraySize(routerLSACount + 1);
407 updatePacket->setRouterLSAs(routerLSACount, *routerLSA);
409 unsigned short lsAge = updatePacket->getRouterLSAs(routerLSACount).getHeader().getLsaAge();
410 if (lsAge < MAX_AGE - this->
getInterface()->getTransDelayInterval()) {
411 updatePacket->getRouterLSAsForUpdate(routerLSACount).getHeaderForUpdate().setLsaAge(lsAge + this->
getInterface()->getTransDelayInterval());
414 updatePacket->getRouterLSAsForUpdate(routerLSACount).getHeaderForUpdate().setLsaAge(
MAX_AGE);
420 if (networkLSA !=
nullptr) {
421 unsigned int networkLSACount = updatePacket->getNetworkLSAsArraySize();
423 updatePacket->setNetworkLSAsArraySize(networkLSACount + 1);
424 updatePacket->setNetworkLSAs(networkLSACount, *networkLSA);
426 unsigned short lsAge = updatePacket->getNetworkLSAs(networkLSACount).getHeader().getLsaAge();
427 if (lsAge < MAX_AGE - this->
getInterface()->getTransDelayInterval()) {
428 updatePacket->getNetworkLSAsForUpdate(networkLSACount).getHeaderForUpdate().setLsaAge(lsAge + this->
getInterface()->getTransDelayInterval());
431 updatePacket->getNetworkLSAsForUpdate(networkLSACount).getHeaderForUpdate().setLsaAge(
MAX_AGE);
436 if (interAreaPrefixLSA !=
nullptr) {
437 unsigned int interAreaPrefixLSACount = updatePacket->getInterAreaPrefixLSAsArraySize();
439 updatePacket->setInterAreaPrefixLSAsArraySize(interAreaPrefixLSACount + 1);
440 updatePacket->setInterAreaPrefixLSAs(interAreaPrefixLSACount, *interAreaPrefixLSA);
442 unsigned short lsAge = updatePacket->getInterAreaPrefixLSAs(interAreaPrefixLSACount).getHeader().getLsaAge();
443 if (lsAge < MAX_AGE - this->
getInterface()->getTransDelayInterval()) {
444 updatePacket->getInterAreaPrefixLSAsForUpdate(interAreaPrefixLSACount).getHeaderForUpdate().setLsaAge(lsAge + this->
getInterface()->getTransDelayInterval());
447 updatePacket->getInterAreaPrefixLSAsForUpdate(interAreaPrefixLSACount).getHeaderForUpdate().setLsaAge(
MAX_AGE);
468 if (linkLSA !=
nullptr) {
469 unsigned int linkLSACount = updatePacket->getLinkLSAsArraySize();
471 updatePacket->setLinkLSAsArraySize(linkLSACount + 1);
472 updatePacket->setLinkLSAs(linkLSACount, *linkLSA);
474 unsigned short lsAge = updatePacket->getLinkLSAs(linkLSACount).getHeader().getLsaAge();
475 if (lsAge < MAX_AGE - this->
getInterface()->getTransDelayInterval()) {
476 updatePacket->getLinkLSAsForUpdate(linkLSACount).getHeaderForUpdate().setLsaAge(lsAge + this->
getInterface()->getTransDelayInterval());
479 updatePacket->getLinkLSAsForUpdate(linkLSACount).getHeaderForUpdate().setLsaAge(
MAX_AGE);
484 if (intraAreaPrefixLSA !=
nullptr) {
485 unsigned int intraAreaPrefixLSACount = updatePacket->getIntraAreaPrefixLSAsArraySize();
487 updatePacket->setIntraAreaPrefixLSAsArraySize(intraAreaPrefixLSACount + 1);
488 updatePacket->setIntraAreaPrefixLSAs(intraAreaPrefixLSACount, *intraAreaPrefixLSA);
490 unsigned short lsAge = updatePacket->getIntraAreaPrefixLSAs(intraAreaPrefixLSACount).getHeader().getLsaAge();
491 if (lsAge < MAX_AGE - this->
getInterface()->getTransDelayInterval()) {
492 updatePacket->getIntraAreaPrefixLSAsForUpdate(intraAreaPrefixLSACount).getHeaderForUpdate().setLsaAge(lsAge + this->
getInterface()->getTransDelayInterval());
495 updatePacket->getIntraAreaPrefixLSAsForUpdate(intraAreaPrefixLSACount).getHeaderForUpdate().setLsaAge(
MAX_AGE);
507 EV_DEBUG <<
"Retransmit - packet length: " << packetLength <<
"\n";
508 updatePacket->setChunkLength(
B(packetLength));
509 Packet *pk =
new Packet();
510 pk->insertAtBack(updatePacket);
Referenced by inet::ospfv3::Ospfv3NeighborStateFull::processEvent(), inet::ospfv3::Ospfv3NeighborStateLoading::processEvent(), and inet::ospfv3::Ospfv3NeighborStateExchange::processEvent().
◆ sendDDPacket()
| void inet::ospfv3::Ospfv3Neighbor::sendDDPacket |
( |
bool |
init = false | ) |
|
◆ sendLinkStateRequestPacket()
| void inet::ospfv3::Ospfv3Neighbor::sendLinkStateRequestPacket |
( |
| ) |
|
243 const auto& requestPacket = makeShared<Ospfv3LinkStateRequestPacket>();
245 requestPacket->setRouterID(this->
getInterface()->getArea()->getInstance()->getProcess()->getRouterID());
246 requestPacket->setAreaID(this->
getInterface()->getArea()->getAreaID());
247 requestPacket->setInstanceID(this->
getInterface()->getArea()->getInstance()->getInstanceID());
255 requestPacket->setRequestsArraySize(0);
261 unsigned long requestCount = requestPacket->getRequestsArraySize();
262 Ospfv3LsaHeader *requestHeader = (*it);
263 Ospfv3LsRequest request;
265 request.lsaType = requestHeader->getLsaType();
266 request.lsaID = requestHeader->getLinkStateID();
267 request.advertisingRouter = requestHeader->getAdvertisingRouter();
269 requestPacket->setRequestsArraySize(requestCount + 1);
270 requestPacket->setRequests(requestCount, request);
277 requestPacket->setChunkLength(packetSize);
280 Packet *pk =
new Packet();
281 pk->insertAtBack(requestPacket);
Referenced by inet::ospfv3::Ospfv3Interface::processDDPacket(), inet::ospfv3::Ospfv3NeighborStateLoading::processEvent(), and inet::ospfv3::Ospfv3NeighborStateExchange::processEvent().
◆ setBackupDesignatedRouterID()
| void inet::ospfv3::Ospfv3Neighbor::setBackupDesignatedRouterID |
( |
Ipv4Address |
newId | ) |
|
|
inline |
◆ setDatabaseExchangeRelationship()
◆ setDDSequenceNumber()
| void inet::ospfv3::Ospfv3Neighbor::setDDSequenceNumber |
( |
unsigned long |
newSequenceNmr | ) |
|
|
inline |
◆ setDesignatedRouterID()
| void inet::ospfv3::Ospfv3Neighbor::setDesignatedRouterID |
( |
Ipv4Address |
newId | ) |
|
|
inline |
◆ setLastHelloTime()
| void inet::ospfv3::Ospfv3Neighbor::setLastHelloTime |
( |
int |
time | ) |
|
|
inline |
◆ setLastReceivedDDPacket()
| void inet::ospfv3::Ospfv3Neighbor::setLastReceivedDDPacket |
( |
Ospfv3DdPacketId |
packetID | ) |
|
|
inline |
◆ setNeighborAddress()
| void inet::ospfv3::Ospfv3Neighbor::setNeighborAddress |
( |
Ipv6Address |
newAddress | ) |
|
|
inline |
◆ setNeighborDeadInterval()
| void inet::ospfv3::Ospfv3Neighbor::setNeighborDeadInterval |
( |
int |
newInterval | ) |
|
|
inline |
◆ setNeighborID()
| void inet::ospfv3::Ospfv3Neighbor::setNeighborID |
( |
Ipv4Address |
newId | ) |
|
|
inline |
◆ setNeighborInterfaceID()
| void inet::ospfv3::Ospfv3Neighbor::setNeighborInterfaceID |
( |
uint32_t |
newID | ) |
|
|
inline |
◆ setNeighborPriority()
| void inet::ospfv3::Ospfv3Neighbor::setNeighborPriority |
( |
int |
newPriority | ) |
|
|
inline |
◆ setOptions()
| void inet::ospfv3::Ospfv3Neighbor::setOptions |
( |
Ospfv3Options |
options | ) |
|
|
inline |
◆ setupDesignatedRouters()
| void inet::ospfv3::Ospfv3Neighbor::setupDesignatedRouters |
( |
bool |
setUp | ) |
|
|
inline |
◆ startRequestRetransmissionTimer()
| void inet::ospfv3::Ospfv3Neighbor::startRequestRetransmissionTimer |
( |
| ) |
|
◆ startUpdateRetransmissionTimer()
| void inet::ospfv3::Ospfv3Neighbor::startUpdateRetransmissionTimer |
( |
| ) |
|
◆ containingInterface
| Ospfv3Interface* inet::ospfv3::Ospfv3Neighbor::containingInterface = nullptr |
|
private |
◆ databaseExchangeRelationship
◆ databaseSummaryList
| std::list<Ospfv3LsaHeader *> inet::ospfv3::Ospfv3Neighbor::databaseSummaryList |
|
private |
◆ ddRetransmissionTimer
| cMessage* inet::ospfv3::Ospfv3Neighbor::ddRetransmissionTimer = nullptr |
|
private |
◆ ddSequenceNumber
| unsigned long inet::ospfv3::Ospfv3Neighbor::ddSequenceNumber |
|
private |
◆ ddSequenceNumberInitSeed
| unsigned long inet::ospfv3::Ospfv3Neighbor::ddSequenceNumberInitSeed = 0 |
|
staticprivate |
◆ designatedRoutersSetUp
| bool inet::ospfv3::Ospfv3Neighbor::designatedRoutersSetUp = false |
|
private |
◆ firstAdjacencyInited
| bool inet::ospfv3::Ospfv3Neighbor::firstAdjacencyInited = false |
|
private |
◆ inactivityTimer
| cMessage* inet::ospfv3::Ospfv3Neighbor::inactivityTimer = nullptr |
|
private |
◆ last_hello_received
| int inet::ospfv3::Ospfv3Neighbor::last_hello_received = 0 |
|
private |
◆ lastReceivedDDPacket
◆ lastTransmittedDDPacket
| Packet* inet::ospfv3::Ospfv3Neighbor::lastTransmittedDDPacket = nullptr |
|
private |
◆ linkStateRequestList
| std::list<Ospfv3LsaHeader *> inet::ospfv3::Ospfv3Neighbor::linkStateRequestList |
|
private |
◆ linkStateRetransmissionList
| std::list<Ospfv3Lsa *> inet::ospfv3::Ospfv3Neighbor::linkStateRetransmissionList |
|
private |
◆ neighborId
◆ neighborInterfaceID
| uint32_t inet::ospfv3::Ospfv3Neighbor::neighborInterfaceID |
|
private |
◆ neighborIPAddress
| Ipv6Address inet::ospfv3::Ospfv3Neighbor::neighborIPAddress |
|
private |
◆ neighborOptions
◆ neighborRtrPriority
| unsigned short inet::ospfv3::Ospfv3Neighbor::neighborRtrPriority |
|
private |
◆ neighborsBackupDesignatedRouter
| Ipv4Address inet::ospfv3::Ospfv3Neighbor::neighborsBackupDesignatedRouter |
|
private |
◆ neighborsBackupIP
| L3Address inet::ospfv3::Ospfv3Neighbor::neighborsBackupIP |
|
private |
◆ neighborsDesignatedIP
| L3Address inet::ospfv3::Ospfv3Neighbor::neighborsDesignatedIP |
|
private |
◆ neighborsDesignatedRouter
| Ipv4Address inet::ospfv3::Ospfv3Neighbor::neighborsDesignatedRouter |
|
private |
◆ neighborsRouterDeadInterval
| short inet::ospfv3::Ospfv3Neighbor::neighborsRouterDeadInterval = 0 |
|
private |
◆ pollTimer
| cMessage* inet::ospfv3::Ospfv3Neighbor::pollTimer = nullptr |
|
private |
◆ previousState
◆ requestRetransmissionTimer
| cMessage* inet::ospfv3::Ospfv3Neighbor::requestRetransmissionTimer = nullptr |
|
private |
◆ requestRetransmissionTimerActive
| bool inet::ospfv3::Ospfv3Neighbor::requestRetransmissionTimerActive = false |
|
private |
◆ state
◆ transmittedLSAs
| std::list<TransmittedLSA> inet::ospfv3::Ospfv3Neighbor::transmittedLSAs |
|
private |
◆ updateRetransmissionTimer
| cMessage* inet::ospfv3::Ospfv3Neighbor::updateRetransmissionTimer = nullptr |
|
private |
◆ updateRetransmissionTimerActive
| bool inet::ospfv3::Ospfv3Neighbor::updateRetransmissionTimerActive = false |
|
private |
The documentation for this class was generated from the following files:
unsigned short neighborRtrPriority
Definition: Ospfv3Neighbor.h:158
cMessage * inactivityTimer
Definition: Ospfv3Neighbor.h:147
@ TWOWAY_STATE
Definition: Ospfv3Neighbor.h:46
cMessage * requestRetransmissionTimer
Definition: Ospfv3Neighbor.h:152
void processEvent(Ospfv3Neighbor::Ospfv3NeighborEventType event)
Definition: Ospfv3Neighbor.cc:68
const B IPV6_DATAGRAM_LENGTH
Definition: Ospfv3Common.h:56
@ TWOWAY_RECEIVED
Definition: Ospfv3Neighbor.h:25
Ipv4Address getNeighborID()
Definition: Ospfv3Neighbor.h:79
@ FULL_STATE
Definition: Ospfv3Neighbor.h:50
cMessage * getRequestRetransmissionTimer()
Definition: Ospfv3Neighbor.h:100
Ospfv3InterfaceType
Definition: Ospfv3Interface.h:50
@ DOWN_STATE
Definition: Ospfv3Neighbor.h:43
Ospfv3InterfaceType getType() const
Definition: Ospfv3Interface.h:129
Ospfv3Process * getProcess() const
Definition: Ospfv3Instance.h:32
@ LINKSTATE_REQUEST_PACKET
Definition: OspfPacketBase_m.h:67
short neighborsRouterDeadInterval
Definition: Ospfv3Neighbor.h:169
std::list< Ospfv3LsaHeader * > databaseSummaryList
Definition: Ospfv3Neighbor.h:171
cMessage * updateRetransmissionTimer
Definition: Ospfv3Neighbor.h:150
@ NEIGHBOR_UPDATE_RETRANSMISSION_TIMER
Definition: Ospfv3Timers.h:14
@ EXCHANGE_START_STATE
Definition: Ospfv3Neighbor.h:47
std::list< Ospfv3Lsa * > linkStateRetransmissionList
Definition: Ospfv3Neighbor.h:170
@ SLAVE
Definition: Ospfv3Neighbor.h:55
@ NEIGHBOR_REQUEST_RETRANSMISSION_TIMER
Definition: Ospfv3Timers.h:15
@ ATTEMPT_STATE
Definition: Ospfv3Neighbor.h:44
unsigned long getUniqueULong()
Definition: Ospfv3Neighbor.cc:145
@ ONEWAY_RECEIVED
Definition: Ospfv3Neighbor.h:32
const B OSPFV3_LSR_LENGTH
Definition: Ospfv3Common.h:60
void sendPacket(Packet *packet, Ipv6Address destination, const char *ifName, short hopLimit=1)
Definition: Ospfv3Process.cc:690
@ INACTIVITY_TIMER
Definition: Ospfv3Neighbor.h:34
#define MAX_AGE
Definition: Ospfv2Common.h:27
Ospfv3NeighborState * previousState
Definition: Ospfv3Neighbor.h:146
@ INTRA_AREA_PREFIX_LSA
Definition: Ospfv3Packet_m.h:404
@ NETWORK_LSA
Definition: Ospfv3Packet_m.h:397
Ospfv3Options neighborOptions
Definition: Ospfv3Neighbor.h:162
Ipv4Address getDesignatedID() const
Definition: Ospfv3Interface.h:133
unsigned long ddSequenceNumber
Definition: Ospfv3Neighbor.h:156
@ LINKSTATE_UPDATE_PACKET
Definition: OspfPacketBase_m.h:68
Ospfv3Instance * getInstance() const
Definition: Ospfv3Area.h:41
@ LINK_LSA
Definition: Ospfv3Packet_m.h:403
Ipv4Address neighborsBackupDesignatedRouter
Definition: Ospfv3Neighbor.h:164
@ UPDATE_RETRANSMISSION_TIMER
Definition: Ospfv3Neighbor.h:38
@ SEQUENCE_NUMBER_MISMATCH
Definition: Ospfv3Neighbor.h:31
bool updateRetransmissionTimerActive
Definition: Ospfv3Neighbor.h:151
bool firstAdjacencyInited
Definition: Ospfv3Neighbor.h:155
Ipv4Address getBackupID() const
Definition: Ospfv3Interface.h:134
Ipv4Address getRouterID()
Definition: Ospfv3Process.h:40
intscale< b, 1, 8 > B
Definition: Units.h:1168
@ NEGOTIATION_DONE
Definition: Ospfv3Neighbor.h:26
B calculateLSASize(const Ospfv3RouterLsa *routerLSA)
Definition: Ospfv3Lsa.cc:19
cMessage * getUpdateRetransmissionTimer()
Definition: Ospfv3Neighbor.h:99
static const Ipv6Address UNSPECIFIED_ADDRESS
The unspecified address.
Definition: Ipv6Address.h:54
Ospfv3DdPacketId lastReceivedDDPacket
Definition: Ospfv3Neighbor.h:157
@ HELLO_RECEIVED
Definition: Ospfv3Neighbor.h:23
@ DATABASE_DESCRIPTION_PACKET
Definition: OspfPacketBase_m.h:66
@ MASTER
Definition: Ospfv3Neighbor.h:54
Ipv6Address neighborIPAddress
Definition: Ospfv3Neighbor.h:161
L3Address neighborsDesignatedIP
Definition: Ospfv3Neighbor.h:166
@ POINTTOMULTIPOINT_TYPE
Definition: Ospfv3Interface.h:55
@ EXCHANGE_DONE
Definition: Ospfv3Neighbor.h:27
@ NEIGHBOR_DD_RETRANSMISSION_TIMER
Definition: Ospfv3Timers.h:13
#define IPV6INSTANCE
Definition: Ospfv3Common.h:21
@ BAD_LINK_STATE_REQUEST
Definition: Ospfv3Neighbor.h:28
bool requestRetransmissionTimerActive
Definition: Ospfv3Neighbor.h:153
Ospfv3NeighborStateType getState() const
Definition: Ospfv3Neighbor.cc:63
const B OSPFV3_LSA_HEADER_LENGTH
Definition: Ospfv3Common.h:59
@ REQUEST_RETRANSMISSION_TIMER
Definition: Ospfv3Neighbor.h:39
@ LINK_DOWN
Definition: Ospfv3Neighbor.h:36
@ POINTTOPOINT_TYPE
Definition: Ospfv3Interface.h:52
@ START
Definition: Ospfv3Neighbor.h:24
@ LOADING_DONE
Definition: Ospfv3Neighbor.h:29
void clearRequestRetransmissionTimer()
Definition: Ospfv3Neighbor.cc:169
@ INTER_AREA_PREFIX_LSA
Definition: Ospfv3Packet_m.h:398
void setTimer(cMessage *msg, double delay)
Definition: Ospfv3Process.cc:654
cMessage * pollTimer
Definition: Ospfv3Neighbor.h:148
Ospfv3NeighborState * state
Definition: Ospfv3Neighbor.h:145
void clearUpdateRetransmissionTimer()
Definition: Ospfv3Neighbor.cc:157
@ POLL_TIMER
Definition: Ospfv3Neighbor.h:35
@ IS_ADJACENCY_OK
Definition: Ospfv3Neighbor.h:30
unsigned long getDatabaseSummaryListCount() const
Definition: Ospfv3Neighbor.h:120
@ VIRTUAL_TYPE
Definition: Ospfv3Interface.h:56
Packet * lastTransmittedDDPacket
Definition: Ospfv3Neighbor.h:174
L3Address neighborsBackupIP
Backup advertised by the router.
Definition: Ospfv3Neighbor.h:165
const B OSPFV3_HEADER_LENGTH
Definition: Ospfv3Common.h:57
static const Ipv4Address UNSPECIFIED_ADDRESS
0.0.0.0
Definition: Ipv4Address.h:91
Ospfv3LsaHeader * findOnRequestList(LSAKeyType lsaKey)
Definition: Ospfv3Neighbor.cc:644
@ EXCHANGE_STATE
Definition: Ospfv3Neighbor.h:48
@ NEIGHBOR_POLL_TIMER
Definition: Ospfv3Timers.h:12
void reset()
Definition: Ospfv3Neighbor.cc:84
bool designatedRoutersSetUp
Definition: Ospfv3Neighbor.h:168
Ipv4Address neighborsDesignatedRouter
Definition: Ospfv3Neighbor.h:163
@ INIT_STATE
Definition: Ospfv3Neighbor.h:45
virtual void processEvent(Ospfv3Neighbor *neighbor, Ospfv3Neighbor::Ospfv3NeighborEventType event)=0
int last_hello_received
Definition: Ospfv3Neighbor.h:179
Ospfv3DatabaseExchangeRelationshipType databaseExchangeRelationship
Definition: Ospfv3Neighbor.h:154
#define MIN_LS_ARRIVAL
Definition: Ospfv2Common.h:26
const B OSPFV3_DD_HEADER_LENGTH
Definition: Ospfv3Common.h:58
@ DD_RETRANSMISSION_TIMER
Definition: Ospfv3Neighbor.h:37
Ospfv3Area * getArea() const
Definition: Ospfv3Interface.h:142
@ NEIGHBOR_INACTIVITY_TIMER
Definition: Ospfv3Timers.h:11
static const Ipv6Address ALL_OSPF_ROUTERS_MCAST
OSPF multicast address for listening.
Definition: Ipv6Address.h:84
Ipv6Address getNeighborIP()
Definition: Ospfv3Neighbor.h:82
int getLinkLSACount()
Definition: Ospfv3Interface.h:177
std::list< Ospfv3LsaHeader * > linkStateRequestList
Definition: Ospfv3Neighbor.h:172
@ ROUTER_LSA
Definition: Ospfv3Packet_m.h:396
void clearTimer(cMessage *msg)
Definition: Ospfv3Process.h:44
uint32_t neighborInterfaceID
Definition: Ospfv3Neighbor.h:167
bool getExternalRoutingCapability()
Definition: Ospfv3Area.h:48
Ospfv3Interface * containingInterface
Definition: Ospfv3Neighbor.h:176
virtual Ospfv3Neighbor::Ospfv3NeighborStateType getState() const =0
#define DEFAULT_DEAD_INTERVAL
Definition: Ospfv3Common.h:14
const Ipv4Address NULL_IPV4ADDRESS(0, 0, 0, 0)
Ospfv3Interface * getInterface()
Definition: Ospfv3Neighbor.h:78
@ KILL_NEIGHBOR
Definition: Ospfv3Neighbor.h:33
@ LOADING_STATE
Definition: Ospfv3Neighbor.h:49
cMessage * ddRetransmissionTimer
Definition: Ospfv3Neighbor.h:149
std::list< TransmittedLSA > transmittedLSAs
Definition: Ospfv3Neighbor.h:173
Ipv4Address neighborId
Definition: Ospfv3Neighbor.h:159
static unsigned long ddSequenceNumberInitSeed
Definition: Ospfv3Neighbor.h:177
int getRouterLSACount()
Definition: Ospfv3Area.h:64