@Test public void testNegotiationDone() throws Exception { ospfLsaList = new ArrayList(); RouterLsa routerLsa = new RouterLsa(); routerLsa.setLsType(OspfLsaType.ROUTER.value()); ospfLsaList.add(routerLsa); DdPacket ddPacket = new DdPacket(); ddPacket.setIsOpaqueCapable(true); ospfMessage = ddPacket; ospfNbr.setState(OspfNeighborState.EXSTART); ospfNbr.setIsOpaqueCapable(true); channel = null; channel = EasyMock.createMock(Channel.class); ospfNbr.negotiationDone(ospfMessage, true, ospfLsaList, channel); channel1 = EasyMock.createMock(Channel.class); ospfNbr.negotiationDone(ospfMessage, false, ospfLsaList, channel1); assertThat(ospfNbr, is(notNullValue())); }
public void negotiationDone(OspfMessage ospfMessage, boolean neighborIsMaster, List payload, Channel ch) throws Exception { stopRxMtDdTimer(); OspfPacketHeader packet = (OspfPacketHeader) ospfMessage; DdPacket ddPacketForCheck = (DdPacket) packet; if (ddPacketForCheck.isOpaqueCapable()) { OspfLsdb database = ospfArea.database(); List opaqueLsas = database.getAllLsaHeaders(true, true); Iterator iterator = opaqueLsas.iterator(); while (iterator.hasNext()) { OspfLsa ospfLsa = (OspfLsa) iterator.next(); if (ospfLsa.getOspfLsaType() == OspfLsaType.AREA_LOCAL_OPAQUE_LSA) { OpaqueLsa10 opaqueLsa10 = (OpaqueLsa10) ospfLsa; topLevelTlvs = opaqueLsa10.topLevelValues(); } } } if (state == OspfNeighborState.EXSTART) { state = OspfNeighborState.EXCHANGE; boolean excludeMaxAgeLsa = true; ddSummaryList = (CopyOnWriteArrayList) ospfArea.getLsaHeaders(excludeMaxAgeLsa, isOpaqueCapable); if (neighborIsMaster) { processLsas(payload); DdPacket ddPacket = new DdPacket(); ddPacket.setOspfVer(OspfUtil.OSPF_VERSION); ddPacket.setOspftype(OspfPacketType.DD.value()); ddPacket.setRouterId(ospfArea.routerId()); ddPacket.setAreaId(ospfArea.areaId()); ddPacket.setAuthType(OspfUtil.NOT_ASSIGNED); ddPacket.setAuthentication(OspfUtil.NOT_ASSIGNED); ddPacket.setOspfPacLength(OspfUtil.NOT_ASSIGNED); ddPacket.setChecksum(OspfUtil.NOT_ASSIGNED); boolean isOpaqueEnabled = ospfArea.isOpaqueEnabled(); if (isOpaqueEnabled && isOpaqueCapable) { ddPacket.setOptions(ospfArea.opaqueEnabledOptions()); } else { ddPacket.setOptions(ospfArea.options()); } ddPacket.setIsInitialize(OspfUtil.INITIALIZE_NOTSET); ddPacket.setIsMore(OspfUtil.MORE_NOTSET); ddPacket.setIsMaster(OspfUtil.NOT_MASTER); ddPacket.setImtu(ospfInterface.mtu()); ddPacket.setSequenceNo(ddSeqNum); ddPacket.setDestinationIp(packet.sourceIp()); setLastSentDdPacket(ddPacket); getIsMoreBit(); byte[] messageToWrite = getMessage(lastSentDdPacket); ch.write(messageToWrite); } else { processLsas(payload); DdPacket ddPacket = new DdPacket(); ddPacket.setOspfVer(OspfUtil.OSPF_VERSION); ddPacket.setOspftype(OspfPacketType.DD.value()); ddPacket.setRouterId(ospfArea.routerId()); ddPacket.setAreaId(ospfArea.areaId()); ddPacket.setAuthType(OspfUtil.NOT_ASSIGNED); ddPacket.setAuthentication(OspfUtil.NOT_ASSIGNED); ddPacket.setOspfPacLength(OspfUtil.NOT_ASSIGNED); ddPacket.setChecksum(OspfUtil.NOT_ASSIGNED); boolean isOpaqueEnabled = ospfArea.isOpaqueEnabled(); if (isOpaqueEnabled && isOpaqueCapable) { ddPacket.setOptions(ospfArea.opaqueEnabledOptions()); } else { ddPacket.setOptions(ospfArea.options()); } ddPacket.setIsInitialize(OspfUtil.INITIALIZE_NOTSET); ddPacket.setIsMore(OspfUtil.MORE_NOTSET); ddPacket.setIsMaster(OspfUtil.IS_MASTER); ddPacket.setImtu(ospfInterface.mtu()); ddPacket.setSequenceNo(ddSeqNum); setLastSentDdPacket(ddPacket); getIsMoreBit(); ddPacket.setDestinationIp(packet.sourceIp()); byte[] messageToWrite = getMessage(lastSentDdPacket); ch.write(messageToWrite); startRxMtDdTimer(ch); } } }
OspfNbrImpl implements OspfNbr { public void negotiationDone(OspfMessage ospfMessage, boolean neighborIsMaster, List payload, Channel ch) throws Exception { stopRxMtDdTimer(); OspfPacketHeader packet = (OspfPacketHeader) ospfMessage; DdPacket ddPacketForCheck = (DdPacket) packet; if (ddPacketForCheck.isOpaqueCapable()) { OspfLsdb database = ospfArea.database(); List opaqueLsas = database.getAllLsaHeaders(true, true); Iterator iterator = opaqueLsas.iterator(); while (iterator.hasNext()) { OspfLsa ospfLsa = (OspfLsa) iterator.next(); if (ospfLsa.getOspfLsaType() == OspfLsaType.AREA_LOCAL_OPAQUE_LSA) { OpaqueLsa10 opaqueLsa10 = (OpaqueLsa10) ospfLsa; topLevelTlvs = opaqueLsa10.topLevelValues(); } } } if (state == OspfNeighborState.EXSTART) { state = OspfNeighborState.EXCHANGE; boolean excludeMaxAgeLsa = true; ddSummaryList = (CopyOnWriteArrayList) ospfArea.getLsaHeaders(excludeMaxAgeLsa, isOpaqueCapable); if (neighborIsMaster) { processLsas(payload); DdPacket ddPacket = new DdPacket(); ddPacket.setOspfVer(OspfUtil.OSPF_VERSION); ddPacket.setOspftype(OspfPacketType.DD.value()); ddPacket.setRouterId(ospfArea.routerId()); ddPacket.setAreaId(ospfArea.areaId()); ddPacket.setAuthType(OspfUtil.NOT_ASSIGNED); ddPacket.setAuthentication(OspfUtil.NOT_ASSIGNED); ddPacket.setOspfPacLength(OspfUtil.NOT_ASSIGNED); ddPacket.setChecksum(OspfUtil.NOT_ASSIGNED); boolean isOpaqueEnabled = ospfArea.isOpaqueEnabled(); if (isOpaqueEnabled && isOpaqueCapable) { ddPacket.setOptions(ospfArea.opaqueEnabledOptions()); } else { ddPacket.setOptions(ospfArea.options()); } ddPacket.setIsInitialize(OspfUtil.INITIALIZE_NOTSET); ddPacket.setIsMore(OspfUtil.MORE_NOTSET); ddPacket.setIsMaster(OspfUtil.NOT_MASTER); ddPacket.setImtu(ospfInterface.mtu()); ddPacket.setSequenceNo(ddSeqNum); ddPacket.setDestinationIp(packet.sourceIp()); setLastSentDdPacket(ddPacket); getIsMoreBit(); byte[] messageToWrite = getMessage(lastSentDdPacket); ch.write(messageToWrite); } else { processLsas(payload); DdPacket ddPacket = new DdPacket(); ddPacket.setOspfVer(OspfUtil.OSPF_VERSION); ddPacket.setOspftype(OspfPacketType.DD.value()); ddPacket.setRouterId(ospfArea.routerId()); ddPacket.setAreaId(ospfArea.areaId()); ddPacket.setAuthType(OspfUtil.NOT_ASSIGNED); ddPacket.setAuthentication(OspfUtil.NOT_ASSIGNED); ddPacket.setOspfPacLength(OspfUtil.NOT_ASSIGNED); ddPacket.setChecksum(OspfUtil.NOT_ASSIGNED); boolean isOpaqueEnabled = ospfArea.isOpaqueEnabled(); if (isOpaqueEnabled && isOpaqueCapable) { ddPacket.setOptions(ospfArea.opaqueEnabledOptions()); } else { ddPacket.setOptions(ospfArea.options()); } ddPacket.setIsInitialize(OspfUtil.INITIALIZE_NOTSET); ddPacket.setIsMore(OspfUtil.MORE_NOTSET); ddPacket.setIsMaster(OspfUtil.IS_MASTER); ddPacket.setImtu(ospfInterface.mtu()); ddPacket.setSequenceNo(ddSeqNum); setLastSentDdPacket(ddPacket); getIsMoreBit(); ddPacket.setDestinationIp(packet.sourceIp()); byte[] messageToWrite = getMessage(lastSentDdPacket); ch.write(messageToWrite); startRxMtDdTimer(ch); } } } }
OspfNbrImpl implements OspfNbr { public void negotiationDone(OspfMessage ospfMessage, boolean neighborIsMaster, List payload, Channel ch) throws Exception { stopRxMtDdTimer(); OspfPacketHeader packet = (OspfPacketHeader) ospfMessage; DdPacket ddPacketForCheck = (DdPacket) packet; if (ddPacketForCheck.isOpaqueCapable()) { OspfLsdb database = ospfArea.database(); List opaqueLsas = database.getAllLsaHeaders(true, true); Iterator iterator = opaqueLsas.iterator(); while (iterator.hasNext()) { OspfLsa ospfLsa = (OspfLsa) iterator.next(); if (ospfLsa.getOspfLsaType() == OspfLsaType.AREA_LOCAL_OPAQUE_LSA) { OpaqueLsa10 opaqueLsa10 = (OpaqueLsa10) ospfLsa; topLevelTlvs = opaqueLsa10.topLevelValues(); } } } if (state == OspfNeighborState.EXSTART) { state = OspfNeighborState.EXCHANGE; boolean excludeMaxAgeLsa = true; ddSummaryList = (CopyOnWriteArrayList) ospfArea.getLsaHeaders(excludeMaxAgeLsa, isOpaqueCapable); if (neighborIsMaster) { processLsas(payload); DdPacket ddPacket = new DdPacket(); ddPacket.setOspfVer(OspfUtil.OSPF_VERSION); ddPacket.setOspftype(OspfPacketType.DD.value()); ddPacket.setRouterId(ospfArea.routerId()); ddPacket.setAreaId(ospfArea.areaId()); ddPacket.setAuthType(OspfUtil.NOT_ASSIGNED); ddPacket.setAuthentication(OspfUtil.NOT_ASSIGNED); ddPacket.setOspfPacLength(OspfUtil.NOT_ASSIGNED); ddPacket.setChecksum(OspfUtil.NOT_ASSIGNED); boolean isOpaqueEnabled = ospfArea.isOpaqueEnabled(); if (isOpaqueEnabled && isOpaqueCapable) { ddPacket.setOptions(ospfArea.opaqueEnabledOptions()); } else { ddPacket.setOptions(ospfArea.options()); } ddPacket.setIsInitialize(OspfUtil.INITIALIZE_NOTSET); ddPacket.setIsMore(OspfUtil.MORE_NOTSET); ddPacket.setIsMaster(OspfUtil.NOT_MASTER); ddPacket.setImtu(ospfInterface.mtu()); ddPacket.setSequenceNo(ddSeqNum); ddPacket.setDestinationIp(packet.sourceIp()); setLastSentDdPacket(ddPacket); getIsMoreBit(); byte[] messageToWrite = getMessage(lastSentDdPacket); ch.write(messageToWrite); } else { processLsas(payload); DdPacket ddPacket = new DdPacket(); ddPacket.setOspfVer(OspfUtil.OSPF_VERSION); ddPacket.setOspftype(OspfPacketType.DD.value()); ddPacket.setRouterId(ospfArea.routerId()); ddPacket.setAreaId(ospfArea.areaId()); ddPacket.setAuthType(OspfUtil.NOT_ASSIGNED); ddPacket.setAuthentication(OspfUtil.NOT_ASSIGNED); ddPacket.setOspfPacLength(OspfUtil.NOT_ASSIGNED); ddPacket.setChecksum(OspfUtil.NOT_ASSIGNED); boolean isOpaqueEnabled = ospfArea.isOpaqueEnabled(); if (isOpaqueEnabled && isOpaqueCapable) { ddPacket.setOptions(ospfArea.opaqueEnabledOptions()); } else { ddPacket.setOptions(ospfArea.options()); } ddPacket.setIsInitialize(OspfUtil.INITIALIZE_NOTSET); ddPacket.setIsMore(OspfUtil.MORE_NOTSET); ddPacket.setIsMaster(OspfUtil.IS_MASTER); ddPacket.setImtu(ospfInterface.mtu()); ddPacket.setSequenceNo(ddSeqNum); setLastSentDdPacket(ddPacket); getIsMoreBit(); ddPacket.setDestinationIp(packet.sourceIp()); byte[] messageToWrite = getMessage(lastSentDdPacket); ch.write(messageToWrite); startRxMtDdTimer(ch); } } } OspfNbrImpl(OspfArea paramOspfArea, OspfInterface paramOspfInterface,
                       Ip4Address ipAddr, Ip4Address routerId, int options,
                       TopologyForDeviceAndLink topologyForDeviceAndLinkCommon); }
OspfNbrImpl implements OspfNbr { public void negotiationDone(OspfMessage ospfMessage, boolean neighborIsMaster, List payload, Channel ch) throws Exception { stopRxMtDdTimer(); OspfPacketHeader packet = (OspfPacketHeader) ospfMessage; DdPacket ddPacketForCheck = (DdPacket) packet; if (ddPacketForCheck.isOpaqueCapable()) { OspfLsdb database = ospfArea.database(); List opaqueLsas = database.getAllLsaHeaders(true, true); Iterator iterator = opaqueLsas.iterator(); while (iterator.hasNext()) { OspfLsa ospfLsa = (OspfLsa) iterator.next(); if (ospfLsa.getOspfLsaType() == OspfLsaType.AREA_LOCAL_OPAQUE_LSA) { OpaqueLsa10 opaqueLsa10 = (OpaqueLsa10) ospfLsa; topLevelTlvs = opaqueLsa10.topLevelValues(); } } } if (state == OspfNeighborState.EXSTART) { state = OspfNeighborState.EXCHANGE; boolean excludeMaxAgeLsa = true; ddSummaryList = (CopyOnWriteArrayList) ospfArea.getLsaHeaders(excludeMaxAgeLsa, isOpaqueCapable); if (neighborIsMaster) { processLsas(payload); DdPacket ddPacket = new DdPacket(); ddPacket.setOspfVer(OspfUtil.OSPF_VERSION); ddPacket.setOspftype(OspfPacketType.DD.value()); ddPacket.setRouterId(ospfArea.routerId()); ddPacket.setAreaId(ospfArea.areaId()); ddPacket.setAuthType(OspfUtil.NOT_ASSIGNED); ddPacket.setAuthentication(OspfUtil.NOT_ASSIGNED); ddPacket.setOspfPacLength(OspfUtil.NOT_ASSIGNED); ddPacket.setChecksum(OspfUtil.NOT_ASSIGNED); boolean isOpaqueEnabled = ospfArea.isOpaqueEnabled(); if (isOpaqueEnabled && isOpaqueCapable) { ddPacket.setOptions(ospfArea.opaqueEnabledOptions()); } else { ddPacket.setOptions(ospfArea.options()); } ddPacket.setIsInitialize(OspfUtil.INITIALIZE_NOTSET); ddPacket.setIsMore(OspfUtil.MORE_NOTSET); ddPacket.setIsMaster(OspfUtil.NOT_MASTER); ddPacket.setImtu(ospfInterface.mtu()); ddPacket.setSequenceNo(ddSeqNum); ddPacket.setDestinationIp(packet.sourceIp()); setLastSentDdPacket(ddPacket); getIsMoreBit(); byte[] messageToWrite = getMessage(lastSentDdPacket); ch.write(messageToWrite); } else { processLsas(payload); DdPacket ddPacket = new DdPacket(); ddPacket.setOspfVer(OspfUtil.OSPF_VERSION); ddPacket.setOspftype(OspfPacketType.DD.value()); ddPacket.setRouterId(ospfArea.routerId()); ddPacket.setAreaId(ospfArea.areaId()); ddPacket.setAuthType(OspfUtil.NOT_ASSIGNED); ddPacket.setAuthentication(OspfUtil.NOT_ASSIGNED); ddPacket.setOspfPacLength(OspfUtil.NOT_ASSIGNED); ddPacket.setChecksum(OspfUtil.NOT_ASSIGNED); boolean isOpaqueEnabled = ospfArea.isOpaqueEnabled(); if (isOpaqueEnabled && isOpaqueCapable) { ddPacket.setOptions(ospfArea.opaqueEnabledOptions()); } else { ddPacket.setOptions(ospfArea.options()); } ddPacket.setIsInitialize(OspfUtil.INITIALIZE_NOTSET); ddPacket.setIsMore(OspfUtil.MORE_NOTSET); ddPacket.setIsMaster(OspfUtil.IS_MASTER); ddPacket.setImtu(ospfInterface.mtu()); ddPacket.setSequenceNo(ddSeqNum); setLastSentDdPacket(ddPacket); getIsMoreBit(); ddPacket.setDestinationIp(packet.sourceIp()); byte[] messageToWrite = getMessage(lastSentDdPacket); ch.write(messageToWrite); startRxMtDdTimer(ch); } } } OspfNbrImpl(OspfArea paramOspfArea, OspfInterface paramOspfInterface,
                       Ip4Address ipAddr, Ip4Address routerId, int options,
                       TopologyForDeviceAndLink topologyForDeviceAndLinkCommon); Ip4Address neighborIpAddr(); boolean isOpaqueCapable(); void setIsOpaqueCapable(boolean isOpaqueCapable); void setRouterDeadInterval(int routerDeadInterval); void oneWayReceived(OspfMessage ospfHello, Channel channel); void twoWayReceived(OspfMessage ospfMessage, Channel channel); void negotiationDone(OspfMessage ospfMessage,
                                boolean neighborIsMaster, List payload, Channel ch); void processLsas(List ddPayload); OspfMessage seqNumMismatch(String reason); void badLSReq(Channel ch); void processDdPacket(boolean neighborIsMaster, DdPacket dataDescPkt,
                                Channel ch); void exchangeDone(OspfMessage message, Channel ch); void adjOk(Channel ch); void processLsUpdate(LsUpdate lsUpdPkt, Channel ch); void loadingDone(); boolean processReceivedLsa(LsaHeader recLsa,
                                      boolean receivedViaFlooding, Channel ch, Ip4Address sourceIp); String isNullorLatest(LsaWrapper lsWrapper, LsaHeader recLsa); void processSelfOriginatedLsa(); void sendLsa(LsaHeader lsa, Ip4Address destination, Channel ch); void directAcknowledge(LsaHeader ackLsa, Channel ch, Ip4Address sourceIp); void neighborDown(); void startInactivityTimeCheck(); void stopInactivityTimeCheck(); void startFloodingTimer(Channel channel); void stopFloodingTimer(); void stopRxMtDdTimer(); void stopRxMtLsrTimer(); DdPacket lastDdPacket(); void setLastDdPacket(DdPacket lastDdPacket); Ip4Address neighborId(); void setNeighborId(Ip4Address neighborId); Ip4Address neighborDr(); void setNeighborDr(Ip4Address neighborDr); Ip4Address neighborBdr(); void setNeighborBdr(Ip4Address neighborBdr); int routerPriority(); void setRouterPriority(int routerPriority); int options(); void setOptions(int options); long ddSeqNum(); void setDdSeqNum(long ddSeqNum); int isMaster(); DdPacket lastSentDdPacket(); void setLastSentDdPacket(DdPacket lastSentDdPacket); LsRequest getLastSentLsrPacket(); void setLastSentLsrPacket(LsRequest lastSentLsrPacket); OspfNeighborState getState(); void setState(OspfNeighborState state); void setIsMaster(int isMaster); Hashtable getLsReqList(); Map getReTxList(); Map<String, OspfLsa> getPendingReTxList(); }
OspfNbrImpl implements OspfNbr { public void negotiationDone(OspfMessage ospfMessage, boolean neighborIsMaster, List payload, Channel ch) throws Exception { stopRxMtDdTimer(); OspfPacketHeader packet = (OspfPacketHeader) ospfMessage; DdPacket ddPacketForCheck = (DdPacket) packet; if (ddPacketForCheck.isOpaqueCapable()) { OspfLsdb database = ospfArea.database(); List opaqueLsas = database.getAllLsaHeaders(true, true); Iterator iterator = opaqueLsas.iterator(); while (iterator.hasNext()) { OspfLsa ospfLsa = (OspfLsa) iterator.next(); if (ospfLsa.getOspfLsaType() == OspfLsaType.AREA_LOCAL_OPAQUE_LSA) { OpaqueLsa10 opaqueLsa10 = (OpaqueLsa10) ospfLsa; topLevelTlvs = opaqueLsa10.topLevelValues(); } } } if (state == OspfNeighborState.EXSTART) { state = OspfNeighborState.EXCHANGE; boolean excludeMaxAgeLsa = true; ddSummaryList = (CopyOnWriteArrayList) ospfArea.getLsaHeaders(excludeMaxAgeLsa, isOpaqueCapable); if (neighborIsMaster) { processLsas(payload); DdPacket ddPacket = new DdPacket(); ddPacket.setOspfVer(OspfUtil.OSPF_VERSION); ddPacket.setOspftype(OspfPacketType.DD.value()); ddPacket.setRouterId(ospfArea.routerId()); ddPacket.setAreaId(ospfArea.areaId()); ddPacket.setAuthType(OspfUtil.NOT_ASSIGNED); ddPacket.setAuthentication(OspfUtil.NOT_ASSIGNED); ddPacket.setOspfPacLength(OspfUtil.NOT_ASSIGNED); ddPacket.setChecksum(OspfUtil.NOT_ASSIGNED); boolean isOpaqueEnabled = ospfArea.isOpaqueEnabled(); if (isOpaqueEnabled && isOpaqueCapable) { ddPacket.setOptions(ospfArea.opaqueEnabledOptions()); } else { ddPacket.setOptions(ospfArea.options()); } ddPacket.setIsInitialize(OspfUtil.INITIALIZE_NOTSET); ddPacket.setIsMore(OspfUtil.MORE_NOTSET); ddPacket.setIsMaster(OspfUtil.NOT_MASTER); ddPacket.setImtu(ospfInterface.mtu()); ddPacket.setSequenceNo(ddSeqNum); ddPacket.setDestinationIp(packet.sourceIp()); setLastSentDdPacket(ddPacket); getIsMoreBit(); byte[] messageToWrite = getMessage(lastSentDdPacket); ch.write(messageToWrite); } else { processLsas(payload); DdPacket ddPacket = new DdPacket(); ddPacket.setOspfVer(OspfUtil.OSPF_VERSION); ddPacket.setOspftype(OspfPacketType.DD.value()); ddPacket.setRouterId(ospfArea.routerId()); ddPacket.setAreaId(ospfArea.areaId()); ddPacket.setAuthType(OspfUtil.NOT_ASSIGNED); ddPacket.setAuthentication(OspfUtil.NOT_ASSIGNED); ddPacket.setOspfPacLength(OspfUtil.NOT_ASSIGNED); ddPacket.setChecksum(OspfUtil.NOT_ASSIGNED); boolean isOpaqueEnabled = ospfArea.isOpaqueEnabled(); if (isOpaqueEnabled && isOpaqueCapable) { ddPacket.setOptions(ospfArea.opaqueEnabledOptions()); } else { ddPacket.setOptions(ospfArea.options()); } ddPacket.setIsInitialize(OspfUtil.INITIALIZE_NOTSET); ddPacket.setIsMore(OspfUtil.MORE_NOTSET); ddPacket.setIsMaster(OspfUtil.IS_MASTER); ddPacket.setImtu(ospfInterface.mtu()); ddPacket.setSequenceNo(ddSeqNum); setLastSentDdPacket(ddPacket); getIsMoreBit(); ddPacket.setDestinationIp(packet.sourceIp()); byte[] messageToWrite = getMessage(lastSentDdPacket); ch.write(messageToWrite); startRxMtDdTimer(ch); } } } OspfNbrImpl(OspfArea paramOspfArea, OspfInterface paramOspfInterface,
                       Ip4Address ipAddr, Ip4Address routerId, int options,
                       TopologyForDeviceAndLink topologyForDeviceAndLinkCommon); Ip4Address neighborIpAddr(); boolean isOpaqueCapable(); void setIsOpaqueCapable(boolean isOpaqueCapable); void setRouterDeadInterval(int routerDeadInterval); void oneWayReceived(OspfMessage ospfHello, Channel channel); void twoWayReceived(OspfMessage ospfMessage, Channel channel); void negotiationDone(OspfMessage ospfMessage,
                                boolean neighborIsMaster, List payload, Channel ch); void processLsas(List ddPayload); OspfMessage seqNumMismatch(String reason); void badLSReq(Channel ch); void processDdPacket(boolean neighborIsMaster, DdPacket dataDescPkt,
                                Channel ch); void exchangeDone(OspfMessage message, Channel ch); void adjOk(Channel ch); void processLsUpdate(LsUpdate lsUpdPkt, Channel ch); void loadingDone(); boolean processReceivedLsa(LsaHeader recLsa,
                                      boolean receivedViaFlooding, Channel ch, Ip4Address sourceIp); String isNullorLatest(LsaWrapper lsWrapper, LsaHeader recLsa); void processSelfOriginatedLsa(); void sendLsa(LsaHeader lsa, Ip4Address destination, Channel ch); void directAcknowledge(LsaHeader ackLsa, Channel ch, Ip4Address sourceIp); void neighborDown(); void startInactivityTimeCheck(); void stopInactivityTimeCheck(); void startFloodingTimer(Channel channel); void stopFloodingTimer(); void stopRxMtDdTimer(); void stopRxMtLsrTimer(); DdPacket lastDdPacket(); void setLastDdPacket(DdPacket lastDdPacket); Ip4Address neighborId(); void setNeighborId(Ip4Address neighborId); Ip4Address neighborDr(); void setNeighborDr(Ip4Address neighborDr); Ip4Address neighborBdr(); void setNeighborBdr(Ip4Address neighborBdr); int routerPriority(); void setRouterPriority(int routerPriority); int options(); void setOptions(int options); long ddSeqNum(); void setDdSeqNum(long ddSeqNum); int isMaster(); DdPacket lastSentDdPacket(); void setLastSentDdPacket(DdPacket lastSentDdPacket); LsRequest getLastSentLsrPacket(); void setLastSentLsrPacket(LsRequest lastSentLsrPacket); OspfNeighborState getState(); void setState(OspfNeighborState state); void setIsMaster(int isMaster); Hashtable getLsReqList(); Map getReTxList(); Map<String, OspfLsa> getPendingReTxList();  }