public interface RIBSupport
Modifier and Type | Interface and Description |
---|---|
static interface |
RIBSupport.ApplyRoute |
Modifier and Type | Method and Description |
---|---|
Update |
buildUpdate(Collection<org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode> advertised,
Collection<org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode> withdrawn,
Attributes attr)
To send routes out, we'd need to transform the DOM representation of route to
binding-aware format.
|
com.google.common.collect.ImmutableCollection<Class<? extends org.opendaylight.yangtools.yang.binding.DataObject>> |
cacheableAttributeObjects() |
com.google.common.collect.ImmutableCollection<Class<? extends org.opendaylight.yangtools.yang.binding.DataObject>> |
cacheableNlriObjects() |
Collection<org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidateNode> |
changedRoutes(org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidateNode routes)
Returns routes that were modified within this RIB support instance.
|
default org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument |
createRouteKeyPathArgument(org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument routeKeyPathArgument)
Create a new Path Argument for route Key removing remove Path Id from key
For non extension which doesnt support Multiple Path this step is not required
|
void |
deleteRoutes(org.opendaylight.controller.md.sal.dom.api.DOMDataWriteTransaction tx,
org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier tablePath,
org.opendaylight.yangtools.yang.data.api.schema.ContainerNode nlri)
Given the NLRI as ContainerNode, this method should extract withdrawn routes
from the DOM model and delete them from RIBs.
|
void |
deleteRoutes(org.opendaylight.controller.md.sal.dom.api.DOMDataWriteTransaction tx,
org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier tablePath,
org.opendaylight.yangtools.yang.data.api.schema.ContainerNode nlri,
org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier routesNodeId)
Given the NLRI as ContainerNode, this method should extract withdrawn routes
from the DOM model and delete them from RIBs.
|
org.opendaylight.yangtools.yang.data.api.schema.ChoiceNode |
emptyRoutes()
Return the table-type-specific empty routes container, as augmented into the
bgp-rib model under /rib/tables/routes choice node.
|
default Long |
extractPathId(org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode<?,?> normalizedNode)
Extract PathId from route change received
|
Class<? extends AddressFamily> |
getAfi() |
default org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument |
getRouteIdAddPath(long pathId,
org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument routeId)
Construct a PathArgument to an AddPathRoute
|
Class<? extends SubsequentAddressFamily> |
getSafi() |
boolean |
isComplexRoute()
Indicate whether this AFI/SAFI combination is a complex route.
|
void |
putRoutes(org.opendaylight.controller.md.sal.dom.api.DOMDataWriteTransaction tx,
org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier tablePath,
org.opendaylight.yangtools.yang.data.api.schema.ContainerNode nlri,
org.opendaylight.yangtools.yang.data.api.schema.ContainerNode attributes)
Given the NLRI as ContainerNode, this method should extract advertised routes
from the DOM model and put them into RIBs.
|
void |
putRoutes(org.opendaylight.controller.md.sal.dom.api.DOMDataWriteTransaction tx,
org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier tablePath,
org.opendaylight.yangtools.yang.data.api.schema.ContainerNode nlri,
org.opendaylight.yangtools.yang.data.api.schema.ContainerNode attributes,
org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier routesNodeId)
Given the NLRI as ContainerNode, this method should extract advertised routes
from the DOM model and put them into RIBs.
|
org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier |
routeAttributesIdentifier()
Return the localized identifier of the attributes route member, as expanded
from the route grouping in the specific augmentation of the base routes choice.
|
org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier |
routePath(org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier routesPath,
org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument routeId)
Constructs an instance identifier path to routeId.
|
Class<? extends Routes> |
routesCaseClass()
Return class object of the Routes Case statement.
|
Class<? extends org.opendaylight.yangtools.yang.binding.DataObject> |
routesContainerClass()
Return class object of the Routes Container statement.
|
Class<? extends Route> |
routesListClass()
Return class object of the Routes List statement.
|
@Nonnull org.opendaylight.yangtools.yang.data.api.schema.ChoiceNode emptyRoutes()
@Nonnull org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier routeAttributesIdentifier()
@Nonnull Class<? extends Routes> routesCaseClass()
@Nonnull Class<? extends org.opendaylight.yangtools.yang.binding.DataObject> routesContainerClass()
@Nonnull Class<? extends Route> routesListClass()
@Nonnull com.google.common.collect.ImmutableCollection<Class<? extends org.opendaylight.yangtools.yang.binding.DataObject>> cacheableAttributeObjects()
@Nonnull com.google.common.collect.ImmutableCollection<Class<? extends org.opendaylight.yangtools.yang.binding.DataObject>> cacheableNlriObjects()
void deleteRoutes(@Nonnull org.opendaylight.controller.md.sal.dom.api.DOMDataWriteTransaction tx, @Nonnull org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier tablePath, @Nonnull org.opendaylight.yangtools.yang.data.api.schema.ContainerNode nlri)
tx
- DOMDataWriteTransactiontablePath
- YangInstanceIdentifiernlri
- ContainerNode DOM representation of NLRI in Update messagevoid deleteRoutes(@Nonnull org.opendaylight.controller.md.sal.dom.api.DOMDataWriteTransaction tx, @Nonnull org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier tablePath, @Nonnull org.opendaylight.yangtools.yang.data.api.schema.ContainerNode nlri, @Nonnull org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier routesNodeId)
Use this method when removing routes stored in RIBs out of the "bgp-rib" module.
Provide YangInstanceIdentifier.NodeIdentifier
with customized "routes" QName.
For default "bgp-rib" RIBs use deleteRoutes(org.opendaylight.controller.md.sal.dom.api.DOMDataWriteTransaction, org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier, org.opendaylight.yangtools.yang.data.api.schema.ContainerNode)
tx
- DOMDataWriteTransactiontablePath
- YangInstanceIdentifiernlri
- ContainerNode DOM representation of NLRI in Update messageroutesNodeId
- NodeIdentifier of "routes" data nodevoid putRoutes(@Nonnull org.opendaylight.controller.md.sal.dom.api.DOMDataWriteTransaction tx, @Nonnull org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier tablePath, @Nonnull org.opendaylight.yangtools.yang.data.api.schema.ContainerNode nlri, @Nonnull org.opendaylight.yangtools.yang.data.api.schema.ContainerNode attributes)
tx
- DOMDataWriteTransactiontablePath
- YangInstanceIdentifiernlri
- ContainerNode DOM representation of NLRI in Update messageattributes
- ContainerNodevoid putRoutes(@Nonnull org.opendaylight.controller.md.sal.dom.api.DOMDataWriteTransaction tx, @Nonnull org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier tablePath, @Nonnull org.opendaylight.yangtools.yang.data.api.schema.ContainerNode nlri, @Nonnull org.opendaylight.yangtools.yang.data.api.schema.ContainerNode attributes, @Nonnull org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier routesNodeId)
Use this method when putting routes stored in RIBs out of the "bgp-rib" module.
Provide YangInstanceIdentifier.NodeIdentifier
with customized "routes" QName.
For default "bgp-rib" RIBs use putRoutes(org.opendaylight.controller.md.sal.dom.api.DOMDataWriteTransaction, org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier, org.opendaylight.yangtools.yang.data.api.schema.ContainerNode, org.opendaylight.yangtools.yang.data.api.schema.ContainerNode)
tx
- DOMDataWriteTransactiontablePath
- YangInstanceIdentifiernlri
- ContainerNode DOM representation of NLRI in Update messageattributes
- ContainerNoderoutesNodeId
- NodeIdentifier of "routes" data node@Nonnull Collection<org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidateNode> changedRoutes(@Nonnull org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidateNode routes)
routes
- DataTreeCandidateNode@Nonnull org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier routePath(@Nonnull org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier routesPath, @Nonnull org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument routeId)
routesPath
- YangInstanceIdentifier base pathrouteId
- PathArgument leaf pathboolean isComplexRoute()
@Nonnull Update buildUpdate(@Nonnull Collection<org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode> advertised, @Nonnull Collection<org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode> withdrawn, @Nonnull Attributes attr)
advertised
- Collection of advertised routes in DOM formatwithdrawn
- Collection of withdrawn routes in DOM formatattr
- Attributes MpReach is part of Attributes so we need to pass
it as argument, create new AttributesBuilder with existing
attributes and add MpReach@Nonnull Class<? extends AddressFamily> getAfi()
@Nonnull Class<? extends SubsequentAddressFamily> getSafi()
default Long extractPathId(org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode<?,?> normalizedNode)
normalizedNode
- Path Id Container@Nullable default org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument getRouteIdAddPath(long pathId, org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument routeId)
pathId
- The path identifierrouteId
- PathArgument leaf pathdefault org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument createRouteKeyPathArgument(org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument routeKeyPathArgument)
routeKeyPathArgument
- routeKey Path ArgumentCopyright © 2018 OpenDaylight. All rights reserved.