use of org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev171207.PathId in project bgpcep by opendaylight.
the class LocRibWriter method updateRoutesEntries.
@SuppressWarnings("unchecked")
private void updateRoutesEntries(final Collection<DataObjectModification<? extends DataObject>> routeChanges, final UnsignedInteger routerId, final Map<RouteUpdateKey, RouteEntry> routes) {
for (final DataObjectModification<? extends DataObject> route : routeChanges) {
final Identifier routeKey = ((InstanceIdentifier.IdentifiableItem) route.getIdentifier()).getKey();
RouteEntry entry = this.routeEntries.get(routeKey);
final Route newRoute = (Route) route.getDataAfter();
final Route oldRoute = (Route) route.getDataBefore();
if (newRoute != null) {
if (entry == null) {
entry = createEntry(routeKey);
}
final long pathId = this.ribSupport.extractPathId(newRoute);
entry.addRoute(routerId, pathId, newRoute);
this.totalPathsCounter.increment();
} else if (oldRoute != null && entry != null) {
this.totalPathsCounter.decrement();
final long pathId = this.ribSupport.extractPathId(oldRoute);
if (entry.removeRoute(routerId, pathId)) {
this.routeEntries.remove(routeKey);
this.totalPrefixesCounter.decrement();
LOG.trace("Removed route from {}", routerId);
}
}
final RouteUpdateKey routeUpdateKey = new RouteUpdateKey(routerId, routeKey);
LOG.debug("Updated route {} entry {}", routeKey, entry);
routes.put(routeUpdateKey, entry);
}
}
use of org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev171207.PathId in project bgpcep by opendaylight.
the class PathIdUtilTest method testReadPathId.
@Test
public void testReadPathId() {
final long expected = 10L;
ByteBufWriteUtil.writeUnsignedInt(expected, this.buffer);
final PathId pathId = PathIdUtil.readPathId(this.buffer);
Assert.assertEquals(expected, pathId.getValue().longValue());
}
use of org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev171207.PathId in project bgpcep by opendaylight.
the class PathIdUtilTest method testWritePathId.
@Test
public void testWritePathId() {
PathIdUtil.writePathId(new PathId(10L), this.buffer);
Assert.assertEquals(Integer.BYTES, this.buffer.readableBytes());
}
use of org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev171207.PathId in project bgpcep by opendaylight.
the class ComplexRouteEntry method createRoute.
@Override
public Route createRoute(final RIBSupport ribSup, final Identifier routeKey, final long pathId, final AddPathBestPath path) {
final OffsetMap map = getOffsets();
final Route route = map.getValue(this.values, map.offsetOf(path.getRouteKey()));
return ribSup.createRoute(route, routeKey, pathId, path.getAttributes());
}
use of org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev171207.PathId in project bgpcep by opendaylight.
the class ComplexRouteEntry method createRoute.
@Override
public Route createRoute(final RIBSupport ribSup, Identifier routeKey, final long pathId, final BaseBestPath path) {
final OffsetMap map = getOffsets();
final Route route = map.getValue(this.values, map.offsetOf(path.getRouterId()));
return ribSup.createRoute(route, routeKey, pathId, path.getAttributes());
}
Aggregations