Update ovssfc to use latest mdsal broker APIs 95/9895/2
authorSam Hague <shague@redhat.com>
Tue, 12 Aug 2014 18:38:05 +0000 (14:38 -0400)
committerSam Hague <shague@redhat.com>
Wed, 13 Aug 2014 19:06:34 +0000 (15:06 -0400)
First pass: supported SFF Data Listener
Second pass:
- Added Abstract Data Listener to support more listeners
- Added SFC and SFP listeners.

Change-Id: Ia8c8d11ea0712e4654a20b8c4badb011feeb8bcb
Signed-off-by: Sam Hague <shague@redhat.com>
ovs-sfc/pom.xml
ovs-sfc/src/main/java/org/opendaylight/controller/config/yang/config/ovssfc_provider/impl/OvsSfcProviderModule.java [new file with mode: 0644]
ovs-sfc/src/main/java/org/opendaylight/controller/config/yang/config/ovssfc_provider/impl/OvsSfcProviderModuleFactory.java [new file with mode: 0644]
ovs-sfc/src/main/java/org/opendaylight/ovsdb/ovssfc/AbstractDataListener.java [new file with mode: 0644]
ovs-sfc/src/main/java/org/opendaylight/ovsdb/ovssfc/OvsSfcProvider.java [new file with mode: 0644]
ovs-sfc/src/main/java/org/opendaylight/ovsdb/ovssfc/SfcDataListener.java [new file with mode: 0644]
ovs-sfc/src/main/java/org/opendaylight/ovsdb/ovssfc/SffDataListener.java [new file with mode: 0644]
ovs-sfc/src/main/java/org/opendaylight/ovsdb/ovssfc/SfpDataListener.java [new file with mode: 0644]
ovs-sfc/src/main/java/org/opendaylight/ovsdb/ovssfc/internal/Activator.java [deleted file]
ovs-sfc/src/main/resources/initial/05-ovssfc-provider.xml [new file with mode: 0644]
ovs-sfc/src/main/yang/ovssfc-provider-impl.yang [new file with mode: 0644]

index e27a690c1d9aac9fbc44d4e20a2ea38f01aa7380..ca1435b8c95c29c4ebb37b7e4046a14311127c0e 100644 (file)
@@ -2,6 +2,7 @@
 <project xmlns="http://maven.apache.org/POM/4.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>org.opendaylight.ovsdb</groupId>
         <version>1.2.0-SNAPSHOT</version>
         <relativePath>../commons/parent</relativePath>
     </parent>
-
-    <artifactId>ovs-sfc</artifactId>
-    <version>1.0.0-SNAPSHOT</version>
-    <name>Opendaylight OVS SFC Plugin</name>
+    <artifactId>ovssfc</artifactId>
+    <version>0.0.1-SNAPSHOT</version>
     <packaging>bundle</packaging>
 
+    <properties>
+        <sfc-model.version>0.0.1-SNAPSHOT</sfc-model.version>
+        <jmxGeneratorPath>target/generated-sources/config</jmxGeneratorPath>
+    </properties>
+
     <dependencies>
-        <dependency>
-            <groupId>junit</groupId>
-            <artifactId>junit</artifactId>
-            <scope>test</scope>
-        </dependency>
         <dependency>
             <groupId>org.opendaylight.controller</groupId>
-            <artifactId>sal</artifactId>
+            <artifactId>sal-binding-config</artifactId>
+            <version>${mdsal.version}</version>
         </dependency>
         <dependency>
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-api</artifactId>
+            <groupId>org.opendaylight.sfc</groupId>
+            <artifactId>sfc-model</artifactId>
+            <version>${sfc-model.version}</version>
         </dependency>
     </dependencies>
 
             <plugin>
                 <groupId>org.apache.felix</groupId>
                 <artifactId>maven-bundle-plugin</artifactId>
-                <version>2.3.6</version>
+                <version>${bundle.plugin.version}</version>
                 <extensions>true</extensions>
                 <configuration>
-                    <instructions>
-                        <Import-Package>
-                            org.opendaylight.controller.sal.core,
-                            org.slf4j
-                        </Import-Package>
-                        <Export-Package>
-                            org.opendaylight.ovsdb.ovssfc
-                        </Export-Package>
-                        <Bundle-Activator>org.opendaylight.ovsdb.ovssfc.internal.Activator</Bundle-Activator>
-                    </instructions>
                     <manifestLocation>${project.basedir}/META-INF</manifestLocation>
                 </configuration>
             </plugin>
             <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-checkstyle-plugin</artifactId>
+                <groupId>org.opendaylight.yangtools</groupId>
+                <artifactId>yang-maven-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <id>config</id>
+                        <goals>
+                            <goal>generate-sources</goal>
+                        </goals>
+                        <configuration>
+                            <codeGenerators>
+                                <generator>
+                                    <codeGeneratorClass>
+                                        org.opendaylight.controller.config.yangjmxgenerator.plugin.JMXGenerator
+                                    </codeGeneratorClass>
+                                    <outputBaseDir>${jmxGeneratorPath}</outputBaseDir>
+                                    <additionalConfiguration>
+                                        <namespaceToPackage1>
+                                            urn:opendaylight:params:xml:ns:yang:controller==org.opendaylight.controller.config.yang
+                                        </namespaceToPackage1>
+                                    </additionalConfiguration>
+                                </generator>
+                            </codeGenerators>
+                            <inspectDependencies>true</inspectDependencies>
+                        </configuration>
+                    </execution>
+                </executions>
+                <dependencies>
+                    <dependency>
+                        <groupId>org.opendaylight.controller</groupId>
+                        <artifactId>yang-jmx-generator-plugin</artifactId>
+                        <version>${controller.config.version}</version>
+                    </dependency>
+                    <dependency>
+                        <groupId>org.opendaylight.yangtools</groupId>
+                        <artifactId>maven-sal-api-gen-plugin</artifactId>
+                        <version>${yangtools.version}</version>
+                    </dependency>
+                </dependencies>
             </plugin>
-            <!--
             <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-failsafe-plugin</artifactId>
+                <groupId>org.codehaus.mojo</groupId>
+                <artifactId>build-helper-maven-plugin</artifactId>
             </plugin>
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-surefire-plugin</artifactId>
-            </plugin>
-            <plugin>
-                <groupId>org.jacoco</groupId>
-                <artifactId>jacoco-maven-plugin</artifactId>
+                <artifactId>maven-checkstyle-plugin</artifactId>
             </plugin>
-            -->
         </plugins>
     </build>
 
diff --git a/ovs-sfc/src/main/java/org/opendaylight/controller/config/yang/config/ovssfc_provider/impl/OvsSfcProviderModule.java b/ovs-sfc/src/main/java/org/opendaylight/controller/config/yang/config/ovssfc_provider/impl/OvsSfcProviderModule.java
new file mode 100644 (file)
index 0000000..14bfb76
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+* Copyright (C) 2014 Red Hat, Inc.
+*
+* This program and the accompanying materials are made available under the
+* terms of the Eclipse Public License v1.0 which accompanies this distribution,
+* and is available at http://www.eclipse.org/legal/epl-v10.html
+*
+* Authors : Sam Hague
+*/
+package org.opendaylight.controller.config.yang.config.ovssfc_provider.impl;
+
+import org.opendaylight.controller.md.sal.binding.api.DataBroker;
+import org.opendaylight.ovsdb.ovssfc.OvsSfcProvider;
+
+public class OvsSfcProviderModule extends org.opendaylight.controller.config.yang.config.ovssfc_provider.impl.AbstractOvsSfcProviderModule {
+    public OvsSfcProviderModule(org.opendaylight.controller.config.api.ModuleIdentifier identifier, org.opendaylight.controller.config.api.DependencyResolver dependencyResolver) {
+        super(identifier, dependencyResolver);
+    }
+
+    public OvsSfcProviderModule(org.opendaylight.controller.config.api.ModuleIdentifier identifier, org.opendaylight.controller.config.api.DependencyResolver dependencyResolver, org.opendaylight.controller.config.yang.config.ovssfc_provider.impl.OvsSfcProviderModule oldModule, java.lang.AutoCloseable oldInstance) {
+        super(identifier, dependencyResolver, oldModule, oldInstance);
+    }
+
+    @Override
+    public void customValidation() {
+        // add custom validation form module attributes here.
+    }
+
+    @Override
+    public java.lang.AutoCloseable createInstance() {
+        DataBroker dataBroker = getDataBrokerDependency();
+        final OvsSfcProvider ovsSfcProvider = new OvsSfcProvider(dataBroker);
+
+        final class AutoCloseableSfc implements AutoCloseable {
+
+            @Override
+            public void close() throws Exception {
+                ovsSfcProvider.close();
+            }
+        }
+
+        AutoCloseable ret = new AutoCloseableSfc();
+        return ret;
+    }
+
+}
diff --git a/ovs-sfc/src/main/java/org/opendaylight/controller/config/yang/config/ovssfc_provider/impl/OvsSfcProviderModuleFactory.java b/ovs-sfc/src/main/java/org/opendaylight/controller/config/yang/config/ovssfc_provider/impl/OvsSfcProviderModuleFactory.java
new file mode 100644 (file)
index 0000000..15a9fff
--- /dev/null
@@ -0,0 +1,13 @@
+/*
+* Generated file
+*
+* Generated from: yang module name: ovssfc-provider-impl yang module local name: ovssfc-provider-impl
+* Generated by: org.opendaylight.controller.config.yangjmxgenerator.plugin.JMXGenerator
+* Generated at: Mon Aug 11 13:45:11 EDT 2014
+*
+* Do not modify this file unless it is present under src/main directory
+*/
+package org.opendaylight.controller.config.yang.config.ovssfc_provider.impl;
+public class OvsSfcProviderModuleFactory extends org.opendaylight.controller.config.yang.config.ovssfc_provider.impl.AbstractOvsSfcProviderModuleFactory {
+
+}
diff --git a/ovs-sfc/src/main/java/org/opendaylight/ovsdb/ovssfc/AbstractDataListener.java b/ovs-sfc/src/main/java/org/opendaylight/ovsdb/ovssfc/AbstractDataListener.java
new file mode 100644 (file)
index 0000000..24d8abc
--- /dev/null
@@ -0,0 +1,39 @@
+/*
+* Copyright (C) 2014 Red Hat, Inc.
+*
+* This program and the accompanying materials are made available under the
+* terms of the Eclipse Public License v1.0 which accompanies this distribution,
+* and is available at http://www.eclipse.org/legal/epl-v10.html
+*
+* Authors : Sam Hague
+*/
+package org.opendaylight.ovsdb.ovssfc;
+
+import org.opendaylight.controller.md.sal.binding.api.DataBroker;
+import org.opendaylight.controller.md.sal.binding.api.DataChangeListener;
+import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
+import org.opendaylight.yangtools.concepts.ListenerRegistration;
+import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+
+public abstract class AbstractDataListener implements DataChangeListener {
+    private DataBroker dataBroker;
+    private InstanceIdentifier<?> iID;
+    private ListenerRegistration<DataChangeListener> dataChangeListenerRegistration;
+
+    public void setDataBroker (DataBroker dataBroker) {
+        this.dataBroker = dataBroker;
+    }
+
+    public void setIID (InstanceIdentifier<?> IID) {
+        this.iID = IID;
+    }
+
+    public void registerAsDataChangeListener () {
+        dataChangeListenerRegistration = dataBroker.registerDataChangeListener( LogicalDatastoreType.CONFIGURATION,
+                iID, this, DataBroker.DataChangeScope.SUBTREE );
+    }
+
+    public void closeDataChangeListener () {
+        dataChangeListenerRegistration.close();
+    }
+}
diff --git a/ovs-sfc/src/main/java/org/opendaylight/ovsdb/ovssfc/OvsSfcProvider.java b/ovs-sfc/src/main/java/org/opendaylight/ovsdb/ovssfc/OvsSfcProvider.java
new file mode 100644 (file)
index 0000000..68febe2
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+* Copyright (C) 2014 Red Hat, Inc.
+*
+* This program and the accompanying materials are made available under the
+* terms of the Eclipse Public License v1.0 which accompanies this distribution,
+* and is available at http://www.eclipse.org/legal/epl-v10.html
+*
+* Authors : Sam Hague
+*/
+package org.opendaylight.ovsdb.ovssfc;
+
+import org.opendaylight.controller.md.sal.binding.api.DataBroker;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class OvsSfcProvider implements AutoCloseable {
+    private static final Logger logger = LoggerFactory.getLogger(OvsSfcProvider.class);
+    private DataBroker dataBroker;
+    private SfcDataListener sfcDataListener;
+    private SffDataListener sffDataListener;
+    private SfpDataListener sfpDataListener;
+
+    public OvsSfcProvider(DataBroker dataBroker) {
+        setDataBroker(dataBroker);
+
+        sfcDataListener = new SfcDataListener(dataBroker);
+        sffDataListener = new SffDataListener(dataBroker);
+        sfpDataListener = new SfpDataListener(dataBroker);
+
+        logger.info("Initialized");
+    }
+
+    public void setDataBroker(DataBroker dataBroker) {
+        this.dataBroker = dataBroker;
+    }
+
+    @Override
+    public void close() throws Exception {
+        sfcDataListener.closeDataChangeListener();
+        sffDataListener.closeDataChangeListener();
+        sfpDataListener.closeDataChangeListener();
+        logger.info("Closed");
+    }
+}
diff --git a/ovs-sfc/src/main/java/org/opendaylight/ovsdb/ovssfc/SfcDataListener.java b/ovs-sfc/src/main/java/org/opendaylight/ovsdb/ovssfc/SfcDataListener.java
new file mode 100644 (file)
index 0000000..c2331dc
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+* Copyright (C) 2014 Red Hat, Inc.
+*
+* This program and the accompanying materials are made available under the
+* terms of the Eclipse Public License v1.0 which accompanies this distribution,
+* and is available at http://www.eclipse.org/legal/epl-v10.html
+*
+* Authors : Sam Hague
+*/
+package org.opendaylight.ovsdb.ovssfc;
+
+import org.opendaylight.controller.md.sal.binding.api.DataBroker;
+import org.opendaylight.controller.md.sal.common.api.data.AsyncDataChangeEvent;
+import org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.sfc.sfc.rev140701.ServiceFunctionChains;
+import org.opendaylight.yangtools.yang.binding.DataObject;
+import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import java.util.Map;
+
+public class SfcDataListener extends AbstractDataListener {
+    private static final Logger logger = LoggerFactory.getLogger(SfcDataListener.class);
+
+    public SfcDataListener(DataBroker dataBroker) {
+        setDataBroker(dataBroker);
+        setIID(InstanceIdentifier.builder(ServiceFunctionChains.class).build());
+        registerAsDataChangeListener();
+    }
+
+    @Override
+    public void onDataChanged(final AsyncDataChangeEvent<InstanceIdentifier<?>, DataObject> change ) {
+        logger.trace("\nOVSSFC Enter: {}", Thread.currentThread().getStackTrace()[1]);
+
+        Map<InstanceIdentifier<?>, DataObject> dataCreatedObject = change.getCreatedData();
+
+        Map<InstanceIdentifier<?>, DataObject> dataUpdatedConfigurationObject = change.getUpdatedData();
+        for (Map.Entry<InstanceIdentifier<?>, DataObject> entry : dataUpdatedConfigurationObject.entrySet()) {
+            if (entry.getValue() instanceof ServiceFunctionChains) {
+                ServiceFunctionChains updatedServiceFunctionChains = (ServiceFunctionChains) entry.getValue();
+                logger.trace("\nOVSSFC sfp:\n   {}", updatedServiceFunctionChains.toString());
+            }
+        }
+
+        logger.trace("\nOVSSFC Exit: {}", Thread.currentThread().getStackTrace()[1]);
+    }
+}
diff --git a/ovs-sfc/src/main/java/org/opendaylight/ovsdb/ovssfc/SffDataListener.java b/ovs-sfc/src/main/java/org/opendaylight/ovsdb/ovssfc/SffDataListener.java
new file mode 100644 (file)
index 0000000..e6f21ac
--- /dev/null
@@ -0,0 +1,62 @@
+/*
+* Copyright (C) 2014 Red Hat, Inc.
+*
+* This program and the accompanying materials are made available under the
+* terms of the Eclipse Public License v1.0 which accompanies this distribution,
+* and is available at http://www.eclipse.org/legal/epl-v10.html
+*
+* Authors : Sam Hague
+*/
+package org.opendaylight.ovsdb.ovssfc;
+
+import org.opendaylight.controller.md.sal.binding.api.DataBroker;
+import org.opendaylight.controller.md.sal.common.api.data.AsyncDataChangeEvent;
+import org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.sfc.sff.rev140701.ServiceFunctionForwarders;
+import org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.sfc.sff.rev140701.service.function.forwarders.ServiceFunctionForwarder;
+import org.opendaylight.yangtools.yang.binding.DataObject;
+import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import java.util.List;
+import java.util.Map;
+
+public class SffDataListener extends AbstractDataListener {
+    private static final Logger logger = LoggerFactory.getLogger(SffDataListener.class);
+
+    public SffDataListener (DataBroker dataBroker) {
+        setDataBroker(dataBroker);
+        setIID(InstanceIdentifier.builder(ServiceFunctionForwarders.class).build());
+        registerAsDataChangeListener();
+    }
+
+    @Override
+    public void onDataChanged(final AsyncDataChangeEvent<InstanceIdentifier<?>, DataObject> change ) {
+        logger.trace("\nOVSSFC Enter: {}", Thread.currentThread().getStackTrace()[1]);
+
+        Map<InstanceIdentifier<?>, DataObject> dataCreatedObject = change.getCreatedData();
+
+        Map<InstanceIdentifier<?>, DataObject> dataUpdatedConfigurationObject = change.getUpdatedData();
+        for (Map.Entry<InstanceIdentifier<?>, DataObject> entry : dataUpdatedConfigurationObject.entrySet()) {
+            if (entry.getValue() instanceof ServiceFunctionForwarders) {
+
+                ServiceFunctionForwarders updatedServiceFunctionForwarders = (ServiceFunctionForwarders) entry.getValue();
+                List<ServiceFunctionForwarder> serviceFunctionForwarderList = updatedServiceFunctionForwarders.getServiceFunctionForwarder();
+                for (ServiceFunctionForwarder serviceFunctionForwarder : serviceFunctionForwarderList) {
+                    logger.trace("\nOVSSFC sff:\n   {}", serviceFunctionForwarder.toString());
+
+                    /*
+                    List<SffDataPlaneLocator> sffDataPlaneLocatorList = serviceFunctionForwarder.getSffDataPlaneLocator();
+                    for (SffDataPlaneLocator sffDataPlaneLocator : sffDataPlaneLocatorList) {
+                        logger.trace("\nsffdpl: {}", sffDataPlaneLocator.toString());
+                        logger.trace("\nsffdpl: name: {}", sffDataPlaneLocator.getName());
+                        logger.trace("\nsffdpl: transport: {}", sffDataPlaneLocator.getTransport().getName());
+                        logger.trace("\nsffdpl: dpl: {}", sffDataPlaneLocator.getDataPlaneLocator().toString());
+                    }
+                    */
+                }
+            }
+        }
+
+        logger.trace("\nOVSSFC Exit: {}", Thread.currentThread().getStackTrace()[1]);
+    }
+}
diff --git a/ovs-sfc/src/main/java/org/opendaylight/ovsdb/ovssfc/SfpDataListener.java b/ovs-sfc/src/main/java/org/opendaylight/ovsdb/ovssfc/SfpDataListener.java
new file mode 100644 (file)
index 0000000..931c9ac
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+* Copyright (C) 2014 Red Hat, Inc.
+*
+* This program and the accompanying materials are made available under the
+* terms of the Eclipse Public License v1.0 which accompanies this distribution,
+* and is available at http://www.eclipse.org/legal/epl-v10.html
+*
+* Authors : Sam Hague
+*/
+package org.opendaylight.ovsdb.ovssfc;
+
+import org.opendaylight.controller.md.sal.binding.api.DataBroker;
+import org.opendaylight.controller.md.sal.common.api.data.AsyncDataChangeEvent;
+import org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.sfc.sfp.rev140701.ServiceFunctionPaths;
+import org.opendaylight.yangtools.yang.binding.DataObject;
+import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import java.util.Map;
+
+public class SfpDataListener extends AbstractDataListener {
+    private static final Logger logger = LoggerFactory.getLogger(SfpDataListener.class);
+
+    public SfpDataListener(DataBroker dataBroker) {
+        setDataBroker(dataBroker);
+        setIID(InstanceIdentifier.builder(ServiceFunctionPaths.class).build());
+        registerAsDataChangeListener();
+    }
+
+    @Override
+    public void onDataChanged(final AsyncDataChangeEvent<InstanceIdentifier<?>, DataObject> change ) {
+        logger.trace("\nOVSSFC Enter: {}", Thread.currentThread().getStackTrace()[1]);
+
+        Map<InstanceIdentifier<?>, DataObject> dataCreatedObject = change.getCreatedData();
+
+        Map<InstanceIdentifier<?>, DataObject> dataUpdatedConfigurationObject = change.getUpdatedData();
+        for (Map.Entry<InstanceIdentifier<?>, DataObject> entry : dataUpdatedConfigurationObject.entrySet()) {
+            if (entry.getValue() instanceof ServiceFunctionPaths) {
+                ServiceFunctionPaths updatedServiceFunctionPaths = (ServiceFunctionPaths) entry.getValue();
+                logger.trace("\nOVSSFC sfp:\n   {}", updatedServiceFunctionPaths.toString());
+            }
+        }
+
+        logger.trace("\nOVSSFC Exit: {}", Thread.currentThread().getStackTrace()[1]);
+    }
+}
diff --git a/ovs-sfc/src/main/java/org/opendaylight/ovsdb/ovssfc/internal/Activator.java b/ovs-sfc/src/main/java/org/opendaylight/ovsdb/ovssfc/internal/Activator.java
deleted file mode 100644 (file)
index 75c82fc..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Copyright (C) 2014 Red Hat, Inc.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- *
- * Authors : Sam Hague
- */
-package org.opendaylight.ovsdb.ovssfc.internal;
-
-import org.opendaylight.controller.sal.core.ComponentActivatorAbstractBase;
-
-public class Activator extends ComponentActivatorAbstractBase {
-
-    /**
-     * Function called when the activator starts just after some initializations
-     * are done by the ComponentActivatorAbstractBase.
-     */
-    @Override
-    public void init() {
-    }
-
-    /**
-     * Function called when the activator stops just before the cleanup done by
-     * ComponentActivatorAbstractBase
-     *
-     */
-    @Override
-    public void destroy() {
-    }
-}
\ No newline at end of file
diff --git a/ovs-sfc/src/main/resources/initial/05-ovssfc-provider.xml b/ovs-sfc/src/main/resources/initial/05-ovssfc-provider.xml
new file mode 100644 (file)
index 0000000..f196113
--- /dev/null
@@ -0,0 +1,27 @@
+<snapshot>
+    <configuration>
+        <data xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
+            <modules xmlns="urn:opendaylight:params:xml:ns:yang:controller:config">
+
+                <module>
+                    <type xmlns:ovssfc="urn:opendaylight:params:xml:ns:yang:controller:config:ovssfc-provider:impl">
+                        ovssfc:ovssfc-provider-impl
+                    </type>
+                    <name>ovssfc-provider-impl</name>
+
+                    <data-broker>
+                        <type xmlns:binding="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding">binding:binding-async-data-broker</type>
+                        <name>binding-data-broker</name>
+                    </data-broker>
+                </module>
+            </modules>
+        </data>
+
+    </configuration>
+
+    <required-capabilities>
+        <capability>urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding?module=opendaylight-md-sal-binding&amp;revision=2013-10-28</capability>
+        <capability>urn:opendaylight:params:xml:ns:yang:controller:config:ovssfc-provider:impl?module=ovssfc-provider-impl&amp;revision=2014-06-30</capability>
+    </required-capabilities>
+
+</snapshot>
diff --git a/ovs-sfc/src/main/yang/ovssfc-provider-impl.yang b/ovs-sfc/src/main/yang/ovssfc-provider-impl.yang
new file mode 100644 (file)
index 0000000..7d10c3b
--- /dev/null
@@ -0,0 +1,42 @@
+// vi: set smarttab et sw=4 tabstop=4:
+module ovssfc-provider-impl {
+
+  yang-version 1;
+  namespace "urn:opendaylight:params:xml:ns:yang:controller:config:ovssfc-provider:impl";
+  prefix "ovssfc-provider-impl";
+
+  import config { prefix config; revision-date 2013-04-05; }
+  import opendaylight-md-sal-binding { prefix mdsal; revision-date 2013-10-28; }
+
+
+  description
+      "This module contains the base YANG definitions for
+      ovssfc-provider impl implementation.";
+
+  revision "2014-06-30" {
+      description
+          "Initial revision.";
+  }
+
+  identity ovssfc-provider-impl {
+      base config:module-type;
+
+      config:java-name-prefix OvsSfcProvider;
+  }
+
+  augment "/config:modules/config:module/config:configuration" {
+    case ovssfc-provider-impl {
+      when "/config:modules/config:module/config:type = 'ovssfc-provider-impl'";
+
+      //wires in the data-broker service
+      container data-broker {
+        uses config:service-ref {
+          refine type {
+              mandatory false;
+              config:required-identity mdsal:binding-async-data-broker;
+          }
+        }
+      }
+    }
+  }
+}