Interface RouteEntry

All Superinterfaces:
org.opendaylight.yangtools.concepts.Mutable

@NonNullByDefault public interface RouteEntry extends org.opendaylight.yangtools.concepts.Mutable
A single route entry, identified by a route key, inside a route table, supported by a RIBSupport. Maintains the attributes of from all contributing peers. The information is stored in arrays with a shared map of offsets for peers to allow lookups. This is needed to maintain low memory overhead in face of large number of routes and peers, where individual object overhead becomes the dominating factor.

RouteEntry objects are inherently mutable with no inter-thread synchronization guarantees. The intended contract is that a controller can either:

  • Method Summary

    Modifier and Type
    Method
    Description
    actualBestPaths(RIBSupport ribSupport, String routeKey)
    Returns collections of present selected best path.
    boolean
    putRoute(RouterId routerId, org.opendaylight.yangtools.yang.common.Uint32 remotePathId, org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode route)
    Put a route.
    boolean
    removeRoute(RouterId routerId, org.opendaylight.yangtools.yang.common.Uint32 remotePathId)
    Remove a route.
    @Nullable BestPathUpdate
    selectBest(RIBSupport ribSupport, long localAs, String routeKey)
    Run best path selection and indicate its impact on propagation of this entry.
  • Method Details

    • putRoute

      boolean putRoute(RouterId routerId, org.opendaylight.yangtools.yang.common.Uint32 remotePathId, org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode route)
      Put a route.
      Parameters:
      routerId - router ID in unsigned integer format from an Ipv4Address
      remotePathId - remote path Id received
      route - route Data change
      Returns:
      true if a new route was introduced, false if a route was replaced
    • removeRoute

      boolean removeRoute(RouterId routerId, org.opendaylight.yangtools.yang.common.Uint32 remotePathId)
      Remove a route.
      Parameters:
      routerId - router ID in unsigned integer format from an Ipv4Address
      remotePathId - remote path Id received
      Returns:
      true if it was the last route on entry
    • selectBest

      @CheckReturnValue @Nullable BestPathUpdate selectBest(RIBSupport ribSupport, long localAs, String routeKey)
      Run best path selection and indicate its impact on propagation of this entry.
      Parameters:
      ribSupport - RIB Support
      localAs - The local autonomous system number
      routeKey - route key
      Returns:
      an BestPathUpdate if selection results in a change in how this entry should be adverized
    • actualBestPaths

      @CheckReturnValue List<ActualBestPathRoutes> actualBestPaths(RIBSupport ribSupport, String routeKey)
      Returns collections of present selected best path.
      Parameters:
      ribSupport - RIB Support
      routeKey - route key
      Returns:
      collections of present selected best path