X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;ds=sidebyside;f=bgp%2Frib-impl%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fprotocol%2Fbgp%2Frib%2Fimpl%2Fspi%2FRIB.java;h=9896ba8e7236f1fc4594ef48e5762eb3ce113ad9;hb=61e4a03e5554241bcb21dce49abe3e089e6e0237;hp=96ac30dfcb8fece25c2d96e6505cf41a1bc111af;hpb=fd80cb50f061daab9c6e884523be65ebeae80cfe;p=bgpcep.git diff --git a/bgp/rib-impl/src/main/java/org/opendaylight/protocol/bgp/rib/impl/spi/RIB.java b/bgp/rib-impl/src/main/java/org/opendaylight/protocol/bgp/rib/impl/spi/RIB.java index 96ac30dfcb..9896ba8e72 100644 --- a/bgp/rib-impl/src/main/java/org/opendaylight/protocol/bgp/rib/impl/spi/RIB.java +++ b/bgp/rib-impl/src/main/java/org/opendaylight/protocol/bgp/rib/impl/spi/RIB.java @@ -7,29 +7,104 @@ */ package org.opendaylight.protocol.bgp.rib.impl.spi; -import java.util.List; - -import org.opendaylight.protocol.bgp.rib.spi.Peer; -import org.opendaylight.protocol.framework.ReconnectStrategyFactory; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.AsNumber; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.Ipv4Address; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev130919.Update; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.multiprotocol.rev130919.BgpTableType; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.rib.rev130925.rib.TablesKey; +import java.util.Set; +import org.eclipse.jdt.annotation.NonNull; +import org.opendaylight.mdsal.dom.api.DOMDataBroker.DataTreeChangeExtension; +import org.opendaylight.mdsal.dom.api.DOMTransactionChain; +import org.opendaylight.protocol.bgp.rib.RibReference; +import org.opendaylight.protocol.bgp.rib.spi.BGPPeerTracker; +import org.opendaylight.protocol.bgp.rib.spi.RIBExtensionConsumerContext; +import org.opendaylight.protocol.bgp.rib.spi.policy.BGPRibRoutingPolicy; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.AsNumber; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.multiprotocol.rev180329.BgpTableType; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.rib.rev180329.rib.TablesKey; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev200120.BgpId; +import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; /** * Internal reference to a RIB instance. */ -public interface RIB { - AsNumber getLocalAs(); - Ipv4Address getBgpIdentifier(); - List getLocalTables(); - - void initTable(Peer bgpPeer, TablesKey key); - void clearTable(Peer bgpPeer, TablesKey key); - void updateTables(Peer bgpPeer, Update message); - - BGPDispatcher getDispatcher(); - ReconnectStrategyFactory getTcpStrategyFactory(); - ReconnectStrategyFactory getSessionStrategyFactory(); +public interface RIB extends RibReference, RibOutRefresh { + /** + * RIB AS. + * + * @return AS + */ + AsNumber getLocalAs(); + + BgpId getBgpIdentifier(); + + /** + * Return the set of table identifiers which are accepted and advertised + * by this RIB instance. + * + * @return A set of identifiers. + */ + @NonNull Set getLocalTables(); + + BGPDispatcher getDispatcher(); + + /** + * Allocate a new transaction chain for use with a peer. + * + * @return A new transaction chain. + */ + DOMTransactionChain createPeerDOMChain(); + + /** + * Return the RIB extensions available to the RIB instance. + * + * @return RIB extensions handle. + */ + RIBExtensionConsumerContext getRibExtensions(); + + /** + * Return the RIB extensions available to the RIB instance + * with additional RIB specific context such as + * translation between DOM and Binding. + * + * @return RIB extensions handle. + */ + RIBSupportContextRegistry getRibSupportContext(); + + /** + * Return YangInstanceIdentifier of BGP Rib with its RibId. + * + * @return YangInstanceIdentifier + */ + YangInstanceIdentifier getYangRibId(); + + CodecsRegistry getCodecsRegistry(); + + /** + * Return instance of DOMDataTreeChangeService, where consumer can register to + * listen on DOM data changes. + * + * @return DOMDataTreeChangeService + */ + DataTreeChangeExtension getService(); + + /** + * Returns true if RIB supports table. + * + * @param tableKey table + * @return true if supported + */ + boolean supportsTable(TablesKey tableKey); + + Set getLocalTablesKeys(); + + /** + * Return Policies Container. + * + * @return policies + */ + BGPRibRoutingPolicy getRibPolicies(); + + /** + * Returns peer tracker for the rib. + * + * @return peer tracker + */ + BGPPeerTracker getPeerTracker(); }