import com.google.common.util.concurrent.ListenableFuture;
import java.util.List;
import java.util.Map;
-import java.util.Optional;
import java.util.Set;
import java.util.stream.Collectors;
+import org.opendaylight.controller.md.sal.binding.api.BindingTransactionChain;
+import org.opendaylight.controller.md.sal.binding.api.DataBroker;
import org.opendaylight.controller.md.sal.common.api.data.TransactionChainListener;
import org.opendaylight.controller.md.sal.dom.api.DOMDataBroker;
import org.opendaylight.controller.md.sal.dom.api.DOMDataTreeChangeService;
import org.opendaylight.controller.md.sal.dom.api.DOMTransactionChain;
import org.opendaylight.mdsal.binding.dom.codec.api.BindingCodecTreeFactory;
-import org.opendaylight.mdsal.binding.dom.codec.api.BindingNormalizedNodeSerializer;
import org.opendaylight.mdsal.dom.api.DOMSchemaService;
import org.opendaylight.protocol.bgp.mode.api.PathSelectionMode;
import org.opendaylight.protocol.bgp.openconfig.routing.policy.spi.BGPRibRoutingPolicyFactory;
import org.opendaylight.protocol.bgp.rib.spi.BGPPeerTracker;
import org.opendaylight.protocol.bgp.rib.spi.ExportPolicyPeerTracker;
import org.opendaylight.protocol.bgp.rib.spi.RIBExtensionConsumerContext;
-import org.opendaylight.protocol.bgp.rib.spi.RIBSupport;
import org.opendaylight.protocol.bgp.rib.spi.policy.BGPRibRoutingPolicy;
import org.opendaylight.protocol.bgp.rib.spi.state.BGPRIBState;
import org.opendaylight.protocol.bgp.rib.spi.state.BGPRIBStateConsumer;
import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.rev151009.bgp.top.bgp.Global;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.AsNumber;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Address;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev171207.path.attributes.Attributes;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.multiprotocol.rev171207.BgpTableType;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.rib.rev171207.RibId;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.rib.rev171207.bgp.rib.Rib;
import org.opendaylight.yangtools.concepts.ListenerRegistration;
import org.opendaylight.yangtools.yang.binding.KeyedInstanceIdentifier;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
-import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates;
-import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
-import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
import org.opendaylight.yangtools.yang.model.api.SchemaContextListener;
import org.osgi.framework.ServiceRegistration;
import org.slf4j.Logger;
private final DOMDataBroker domBroker;
private final DOMSchemaService domSchemaService;
private final BGPRibRoutingPolicyFactory policyProvider;
- private final BindingNormalizedNodeSerializer bindingSerializer;
private RIBImpl ribImpl;
private ServiceRegistration<?> serviceRegistration;
private ListenerRegistration<SchemaContextListener> schemaContextRegistration;
private Ipv4Address routerId;
private ClusterIdentifier clusterId;
+ private DataBroker dataBroker;
public RibImpl(
final RIBExtensionConsumerContext contextProvider,
final BGPRibRoutingPolicyFactory policyProvider,
final BindingCodecTreeFactory codecTreeFactory,
final DOMDataBroker domBroker,
- final DOMSchemaService domSchemaService,
- final BindingNormalizedNodeSerializer bindingSerializer
+ final DataBroker dataBroker,
+ final DOMSchemaService domSchemaService
) {
this.extensions = contextProvider;
this.dispatcher = dispatcher;
this.codecTreeFactory = codecTreeFactory;
this.domBroker = domBroker;
+ this.dataBroker = dataBroker;
this.domSchemaService = domSchemaService;
this.policyProvider = policyProvider;
- this.bindingSerializer = bindingSerializer;
}
void start(final Global global, final String instanceName, final BGPTableTypeRegistryConsumer tableTypeRegistry) {
}
@Override
- public DOMTransactionChain createPeerChain(final TransactionChainListener listener) {
+ public BindingTransactionChain createPeerChain(final TransactionChainListener listener) {
return this.ribImpl.createPeerChain(listener);
}
+ @Override
+ public DOMTransactionChain createPeerDOMChain(final TransactionChainListener listener) {
+ return this.ribImpl.createPeerDOMChain(listener);
+ }
+
@Override
public RIBExtensionConsumerContext getRibExtensions() {
return this.ribImpl.getRibExtensions();
return this.ribImpl.getService();
}
+ @Override
+ public DataBroker getDataBroker() {
+ return this.ribImpl.getDataBroker();
+ }
+
ListenableFuture<Void> closeServiceInstance() {
if (this.ribImpl != null) {
return this.ribImpl.closeServiceInstance();
this.dispatcher,
codecsRegistry,
this.domBroker,
+ this.dataBroker,
ribPolicy,
peerTracker,
toTableTypes(this.afiSafi, tableTypeRegistry),
- pathSelectionModes,
- this.bindingSerializer);
+ pathSelectionModes);
}
@Override
this.ribImpl.instantiateServiceInstance();
}
}
-
- @Override
- public Optional<Attributes> getAttributes(
- RIBSupport ribSupport,
- NodeIdentifierWithPredicates routeIdentifier, NormalizedNode<?, ?> route) {
- return this.ribImpl.getAttributes(ribSupport, routeIdentifier, route);
- }
-
- @Override
- public Optional<ContainerNode> toNormalizedNodeAttribute(
- final RIBSupport ribSupport,
- final NodeIdentifierWithPredicates routeIdentifier,
- final Optional<Attributes> attributes) {
- return this.ribImpl.toNormalizedNodeAttribute(ribSupport, routeIdentifier, attributes);
- }
}