import org.opendaylight.mdsal.binding.spec.reflect.BindingReflections;
import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
import org.opendaylight.mdsal.dom.api.DOMDataTreeWriteTransaction;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev180329.Update;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev180329.UpdateBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev180329.path.attributes.Attributes;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev180329.path.attributes.AttributesBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.multiprotocol.rev180329.Attributes1;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev200120.Update;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev200120.UpdateBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev200120.path.attributes.Attributes;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev200120.path.attributes.AttributesBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.multiprotocol.rev180329.Attributes1Builder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.multiprotocol.rev180329.Attributes2;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.multiprotocol.rev180329.Attributes2Builder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.multiprotocol.rev180329.destination.DestinationType;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.multiprotocol.rev180329.update.attributes.MpReachNlri;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.rib.rev180329.rib.TablesBuilder;
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.rib.rev180329.rib.tables.Routes;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev180329.AddressFamily;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev180329.RouteDistinguisher;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev180329.RouteDistinguisherBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev180329.SubsequentAddressFamily;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev180329.next.hop.CNextHop;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev200120.AddressFamily;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev200120.RouteDistinguisher;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev200120.RouteDistinguisherBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev200120.SubsequentAddressFamily;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev200120.next.hop.CNextHop;
import org.opendaylight.yangtools.util.ImmutableOffsetMapTemplate;
import org.opendaylight.yangtools.yang.binding.ChildOf;
import org.opendaylight.yangtools.yang.binding.ChoiceIn;
final QName destContainerQname) {
final QNameModule module = BindingReflections.getQNameModule(cazeClass);
this.routesContainerIdentifier = NodeIdentifier.create(
- BindingReflections.findQName(containerClass).withModule(module));
- this.routeAttributesIdentifier = NodeIdentifier.create(Attributes.QNAME.withModule(module));
+ BindingReflections.findQName(containerClass).bindTo(module));
+ this.routeAttributesIdentifier = NodeIdentifier.create(Attributes.QNAME.bindTo(module));
this.cazeClass = requireNonNull(cazeClass);
this.mappingService = requireNonNull(mappingService);
this.containerClass = requireNonNull(containerClass);
this.listClass = requireNonNull(listClass);
- this.routeQname = BindingReflections.findQName(listClass).withModule(module);
+ this.routeQname = BindingReflections.findQName(listClass).bindTo(module);
this.routesListIdentifier = NodeIdentifier.create(this.routeQname);
this.tk = new TablesKey(afiClass, safiClass);
this.emptyTable = (MapEntryNode) this.mappingService
return putRoutes(tx, tablePath, nlri, attributes, ROUTES_NID);
}
+ @Override
+ public final Collection<NodeIdentifierWithPredicates> putRoutes(final DOMDataTreeWriteTransaction tx,
+ final YangInstanceIdentifier tablePath,
+ final ContainerNode nlri,
+ final ContainerNode attributes,
+ final NodeIdentifier routesNodeId) {
+ final Optional<DataContainerChild<? extends PathArgument, ?>> maybeRoutes = nlri.getChild(ADVERTISED_ROUTES);
+ if (maybeRoutes.isPresent()) {
+ final ContainerNode destination = getDestination(maybeRoutes.get(), destinationContainerIdentifier());
+ if (destination != null) {
+ return putDestinationRoutes(tx, tablePath, destination, attributes, routesNodeId);
+ }
+ } else {
+ LOG.debug("Advertized routes are not present in NLRI {}", nlri);
+ }
+ return Collections.emptyList();
+ }
+
@Override
public final Update buildUpdate(final Collection<MapEntryNode> advertised, final Collection<MapEntryNode> withdrawn,
final Attributes attr) {
if (!advertised.isEmpty()) {
final MpReachNlri mb = buildReach(advertised, hop);
- ab.addAugmentation(Attributes1.class, new Attributes1Builder().setMpReachNlri(mb).build());
+ ab.addAugmentation(new Attributes1Builder().setMpReachNlri(mb).build());
LOG.debug("mpreach nexthop={}", mb);
}
if (!withdrawn.isEmpty()) {
final MpUnreachNlri mb = buildUnreach(withdrawn);
- ab.addAugmentation(Attributes2.class, new Attributes2Builder().setMpUnreachNlri(mb).build());
+ ab.addAugmentation(new Attributes2Builder().setMpUnreachNlri(mb).build());
LOG.debug("mpunrach mb={}", mb);
}
}
}
- @Override
- public final Collection<NodeIdentifierWithPredicates> putRoutes(final DOMDataTreeWriteTransaction tx,
- final YangInstanceIdentifier tablePath,
- final ContainerNode nlri,
- final ContainerNode attributes,
- final NodeIdentifier routesNodeId) {
- final Optional<DataContainerChild<? extends PathArgument, ?>> maybeRoutes = nlri.getChild(ADVERTISED_ROUTES);
- if (maybeRoutes.isPresent()) {
- final ContainerNode destination = getDestination(maybeRoutes.get(), destinationContainerIdentifier());
- if (destination != null) {
- return putDestinationRoutes(tx, tablePath, destination, attributes, routesNodeId);
- }
- } else {
- LOG.debug("Advertized routes are not present in NLRI {}", nlri);
- }
- return Collections.emptyList();
- }
-
private static final class DeleteRoute implements ApplyRoute {
@Override
public void apply(final DOMDataTreeWriteTransaction tx, final YangInstanceIdentifier base,