public class ApplicationPeer extends BGPPeerStateImpl implements org.opendaylight.mdsal.dom.api.ClusteredDOMDataTreeChangeListener
This peer has it's own RIB, where it stores all user routes. This RIB is located in configurational datastore. Routes are added through RESTCONF.
They are then processed as routes from any other peer, through AdjRib, EffectiveRib,LocRib and if they are advertised further, through AdjRibOut.
For purposed of import policies such as Best Path Selection, application peer needs to have a BGP-ID that is configurable.
| Constructor and Description |
|---|
ApplicationPeer(BGPTableTypeRegistryConsumer tableTypeRegistry,
ApplicationRibId applicationRibId,
org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Address ipAddress,
RIB rib) |
| Modifier and Type | Method and Description |
|---|---|
com.google.common.util.concurrent.FluentFuture<? extends org.opendaylight.mdsal.common.api.CommitInfo> |
close()
Close Peers and performs asynchronously DS clean up.
|
BGPAfiSafiState |
getBGPAfiSafiState()
Afi Safi Operational State.
|
BGPErrorHandlingState |
getBGPErrorHandlingState()
Error Handling State.
|
BGPSessionState |
getBGPSessionState()
BGP Session Operational State.
|
BGPTimersState |
getBGPTimersState()
BGP Operation Timers State.
|
BGPTransportState |
getBGPTransportState()
BGP Operational Transport State.
|
ClusterIdentifier |
getClusterId()
Returns Cluster Id.
|
org.opendaylight.mdsal.dom.api.DOMTransactionChain |
getDomChain()
Returns Peer DOMTransactionChain.
|
ClusterIdentifier |
getFromClusterId()
Peer id of Peer route entry announcer.
|
PeerId |
getFromPeerId()
Peer id of Peer route entry announcer.
|
org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.AsNumber |
getFromPeerLocalAs()
Peer local AS of route entry announcer.
|
PeerRole |
getFromPeerRole()
Peer id of Peer route entry announcer.
|
org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.AsNumber |
getLocalAs()
Returns Local AS.
|
List<RouteTarget> |
getMemberships()
Returns list of Route target advertized per Peer.
|
String |
getName()
Return peer's symbolic name.
|
PeerId |
getPeerId()
Returns Peer id.
|
byte[] |
getRawIdentifier()
Return the peer's BGP identifier as raw byte array.
|
org.opendaylight.yangtools.yang.binding.KeyedInstanceIdentifier<Tables,TablesKey> |
getRibOutIId(TablesKey tablesKey)
Creates Table Adj Rib Out Instance identifier.
|
PeerRole |
getRole()
Returns Peer Role.
|
SendReceive |
getSupportedAddPathTables(TablesKey tableKey)
Returns AddPath support configuration if supported, otherwise null.
|
<C extends Routes & org.opendaylight.yangtools.yang.binding.DataObject & org.opendaylight.yangtools.yang.binding.ChoiceIn<Tables>,S extends org.opendaylight.yangtools.yang.binding.ChildOf<? super C>,R extends Route & org.opendaylight.yangtools.yang.binding.ChildOf<? super S> & org.opendaylight.yangtools.yang.binding.Identifiable<I>,I extends org.opendaylight.yangtools.yang.binding.Identifier<R>> |
initializeRibOut(RouteEntryDependenciesContainer entryDep,
List<ActualBestPathRoutes<C,S,R,I>> routesToStore)
Stores under peers rib Out already present routes, before proceed to process any new route advertizement.
|
void |
instantiateServiceInstance(org.opendaylight.mdsal.dom.api.DOMDataTreeChangeService dataTreeChangeService,
org.opendaylight.mdsal.dom.api.DOMDataTreeIdentifier appPeerDOMId) |
void |
onDataTreeChanged(Collection<org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidate> changes)
Routes come from application RIB that is identified by (configurable) name.
|
void |
onTransactionChainFailed(org.opendaylight.mdsal.dom.api.DOMTransactionChain chain,
org.opendaylight.mdsal.dom.api.DOMDataTreeTransaction transaction,
Throwable cause) |
void |
onTransactionChainFailed(org.opendaylight.mdsal.binding.api.TransactionChain chain,
org.opendaylight.mdsal.binding.api.Transaction transaction,
Throwable cause) |
void |
onTransactionChainSuccessful(org.opendaylight.mdsal.dom.api.DOMTransactionChain chain) |
void |
onTransactionChainSuccessful(org.opendaylight.mdsal.binding.api.TransactionChain chain) |
<C extends Routes & org.opendaylight.yangtools.yang.binding.DataObject & org.opendaylight.yangtools.yang.binding.ChoiceIn<Tables>,S extends org.opendaylight.yangtools.yang.binding.ChildOf<? super C>,R extends Route & org.opendaylight.yangtools.yang.binding.ChildOf<? super S> & org.opendaylight.yangtools.yang.binding.Identifiable<I>,I extends org.opendaylight.yangtools.yang.binding.Identifier<R>> |
reEvaluateAdvertizement(RouteEntryDependenciesContainer entryDep,
List<ActualBestPathRoutes<C,S,R,I>> routesToStore)
Applies all policies through all present routes, and advertize/withdraws based on new results.
|
<C extends Routes & org.opendaylight.yangtools.yang.binding.DataObject & org.opendaylight.yangtools.yang.binding.ChoiceIn<Tables>,S extends org.opendaylight.yangtools.yang.binding.ChildOf<? super C>,R extends Route & org.opendaylight.yangtools.yang.binding.ChildOf<? super S> & org.opendaylight.yangtools.yang.binding.Identifiable<I>,I extends org.opendaylight.yangtools.yang.binding.Identifier<R>> |
refreshRibOut(RouteEntryDependenciesContainer entryDep,
List<StaleBestPathRoute<C,S,R,I>> staleRoutes,
List<AdvertizedRoute<C,S,R,I>> newRoutes)
Update peers ribout after path selection processing.
|
boolean |
supportsAddPathSupported(TablesKey tableKey)
Returns if peer supports Additional Path for specific table.
|
boolean |
supportsTable(TablesKey tableKey)
Returns true if we have advertized support for a table, i.e.
|
getAfiSafisAdvertized, getAfiSafisReceived, getBGPGracelfulRestart, getBGPPeerMessagesState, getErroneousUpdateReceivedCount, getGroupId, getLlGracefulRestartTimer, getMode, getNeighborAddress, getNotificationMessagesReceivedCount, getNotificationMessagesSentCount, getPeerRestartTime, getPeerState, getPrefixesInstalledCount, getPrefixesReceivedCount, getPrefixesSentCount, getTotalPrefixes, getUpdateMessagesReceivedCount, getUpdateMessagesSentCount, isActive, isAfiSafiSupported, isGracefulRestartAdvertized, isGracefulRestartReceived, isLlGracefulRestartAdvertised, isLlGracefulRestartReceived, isLocalRestarting, isPeerRestarting, messageReceived, messageSent, registerPrefixesCounters, registerPrefixesSentCounter, resetState, setActive, setAdvertizedGracefulRestartTableTypes, setAdvertizedLlGracefulRestartTableTypes, setAfiSafiGracefulRestartState, setLocalRestartingState, setRestartingStategetInstanceIdentifierclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitonInitialDatagetTotalPathsCountgetInstanceIdentifierprotected final RIB rib
public ApplicationPeer(BGPTableTypeRegistryConsumer tableTypeRegistry, ApplicationRibId applicationRibId, org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Address ipAddress, RIB rib)
public List<RouteTarget> getMemberships()
RouteTargetMembershipConsumergetMemberships in interface RouteTargetMembershipConsumerpublic void instantiateServiceInstance(org.opendaylight.mdsal.dom.api.DOMDataTreeChangeService dataTreeChangeService,
org.opendaylight.mdsal.dom.api.DOMDataTreeIdentifier appPeerDOMId)
public void onDataTreeChanged(Collection<org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidate> changes)
onDataTreeChanged in interface org.opendaylight.mdsal.dom.api.DOMDataTreeChangeListenerpublic com.google.common.util.concurrent.FluentFuture<? extends org.opendaylight.mdsal.common.api.CommitInfo> close()
Peerpublic boolean supportsAddPathSupported(TablesKey tableKey)
PeerTrackerInformationsupportsAddPathSupported in interface PeerTrackerInformationtableKey - tablepublic SendReceive getSupportedAddPathTables(TablesKey tableKey)
PeerTrackerInformationgetSupportedAddPathTables in interface PeerTrackerInformationtableKey - tablepublic boolean supportsTable(TablesKey tableKey)
PeerTrackerInformationsupportsTable in interface PeerTrackerInformationtableKey - tablepublic org.opendaylight.yangtools.yang.binding.KeyedInstanceIdentifier<Tables,TablesKey> getRibOutIId(TablesKey tablesKey)
PeerTrackerInformationgetRibOutIId in interface PeerTrackerInformationtablesKey - table keypublic void onTransactionChainFailed(org.opendaylight.mdsal.dom.api.DOMTransactionChain chain,
org.opendaylight.mdsal.dom.api.DOMDataTreeTransaction transaction,
Throwable cause)
onTransactionChainFailed in interface org.opendaylight.mdsal.dom.api.DOMTransactionChainListenerpublic void onTransactionChainFailed(org.opendaylight.mdsal.binding.api.TransactionChain chain,
org.opendaylight.mdsal.binding.api.Transaction transaction,
Throwable cause)
onTransactionChainFailed in interface org.opendaylight.mdsal.binding.api.TransactionChainListenerpublic BGPSessionState getBGPSessionState()
BGPPeerStategetBGPSessionState in interface BGPPeerStatepublic BGPTimersState getBGPTimersState()
BGPPeerStategetBGPTimersState in interface BGPPeerStatepublic BGPTransportState getBGPTransportState()
BGPPeerStategetBGPTransportState in interface BGPPeerStatepublic final PeerId getPeerId()
PeerTrackerInformationgetPeerId in interface PeerTrackerInformationpublic final PeerRole getRole()
PeerTrackerInformationgetRole in interface PeerTrackerInformationpublic final byte[] getRawIdentifier()
PeergetRawIdentifier in interface Peerpublic final PeerRole getFromPeerRole()
BGPRouteEntryImportParametersgetFromPeerRole in interface BGPRouteEntryImportParameterspublic final PeerId getFromPeerId()
BGPRouteEntryImportParametersgetFromPeerId in interface BGPRouteEntryImportParameterspublic final ClusterIdentifier getFromClusterId()
BGPRouteEntryImportParametersgetFromClusterId in interface BGPRouteEntryImportParameterspublic final void onTransactionChainSuccessful(org.opendaylight.mdsal.dom.api.DOMTransactionChain chain)
onTransactionChainSuccessful in interface org.opendaylight.mdsal.dom.api.DOMTransactionChainListenerpublic final void onTransactionChainSuccessful(org.opendaylight.mdsal.binding.api.TransactionChain chain)
onTransactionChainSuccessful in interface org.opendaylight.mdsal.binding.api.TransactionChainListenerpublic final BGPErrorHandlingState getBGPErrorHandlingState()
BGPPeerStategetBGPErrorHandlingState in interface BGPPeerStatepublic final BGPAfiSafiState getBGPAfiSafiState()
BGPPeerStategetBGPAfiSafiState in interface BGPPeerStatepublic final org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.AsNumber getFromPeerLocalAs()
BGPRouteEntryImportParametersgetFromPeerLocalAs in interface BGPRouteEntryImportParameterspublic final String getName()
Peerpublic final ClusterIdentifier getClusterId()
PeerTrackerInformationgetClusterId in interface PeerTrackerInformationpublic final org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.AsNumber getLocalAs()
PeerTrackerInformationgetLocalAs in interface PeerTrackerInformationpublic org.opendaylight.mdsal.dom.api.DOMTransactionChain getDomChain()
PeerTransactionChaingetDomChain in interface PeerTransactionChainpublic final <C extends Routes & org.opendaylight.yangtools.yang.binding.DataObject & org.opendaylight.yangtools.yang.binding.ChoiceIn<Tables>,S extends org.opendaylight.yangtools.yang.binding.ChildOf<? super C>,R extends Route & org.opendaylight.yangtools.yang.binding.ChildOf<? super S> & org.opendaylight.yangtools.yang.binding.Identifiable<I>,I extends org.opendaylight.yangtools.yang.binding.Identifier<R>> void initializeRibOut(RouteEntryDependenciesContainer entryDep, List<ActualBestPathRoutes<C,S,R,I>> routesToStore)
PeerinitializeRibOut in interface PeerentryDep - RouteEntryDependenciesContainerroutesToStore - routes to be advertized.public final <C extends Routes & org.opendaylight.yangtools.yang.binding.DataObject & org.opendaylight.yangtools.yang.binding.ChoiceIn<Tables>,S extends org.opendaylight.yangtools.yang.binding.ChildOf<? super C>,R extends Route & org.opendaylight.yangtools.yang.binding.ChildOf<? super S> & org.opendaylight.yangtools.yang.binding.Identifiable<I>,I extends org.opendaylight.yangtools.yang.binding.Identifier<R>> void refreshRibOut(RouteEntryDependenciesContainer entryDep, List<StaleBestPathRoute<C,S,R,I>> staleRoutes, List<AdvertizedRoute<C,S,R,I>> newRoutes)
PeerrefreshRibOut in interface PeerentryDep - RouteEntryDependenciesContainerstaleRoutes - routes to be removed.newRoutes - routes to be advertized.public final <C extends Routes & org.opendaylight.yangtools.yang.binding.DataObject & org.opendaylight.yangtools.yang.binding.ChoiceIn<Tables>,S extends org.opendaylight.yangtools.yang.binding.ChildOf<? super C>,R extends Route & org.opendaylight.yangtools.yang.binding.ChildOf<? super S> & org.opendaylight.yangtools.yang.binding.Identifiable<I>,I extends org.opendaylight.yangtools.yang.binding.Identifier<R>> void reEvaluateAdvertizement(RouteEntryDependenciesContainer entryDep, List<ActualBestPathRoutes<C,S,R,I>> routesToStore)
PeerreEvaluateAdvertizement in interface PeerentryDep - RouteEntryDependenciesContainerroutesToStore - routes to be updated.Copyright © 2020 OpenDaylight. All rights reserved.