<mdsal.version>1.2.0-SNAPSHOT</mdsal.version>
<openflowplugin.version>0.1.0-SNAPSHOT</openflowplugin.version>
<yangtools.version>0.7.0-SNAPSHOT</yangtools.version>
+ <mdsalutil.version>0.0.1-SNAPSHOT</mdsalutil.version>
<vpnmanager.version>0.0.1-SNAPSHOT</vpnmanager.version>
<interfacemgr.version>0.0.1-SNAPSHOT</interfacemgr.version>
<nexthopmgr.version>0.0.1-SNAPSHOT</nexthopmgr.version>
<version>${vpnmanager.version}</version>
<classifier>config</classifier>
<type>xml</type>
+ </dependency><dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>mdsalutil-impl</artifactId>
+ <version>${mdsalutil.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>mdsalutil-impl</artifactId>
+ <version>${mdsalutil.version}</version>
+ <classifier>config</classifier>
+ <type>xml</type>
+ </dependency>
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>mdsalutil-api</artifactId>
+ <version>${mdsalutil.version}</version>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<feature version='${yangtools.version}'>odl-yangtools-models</feature>
<feature version='${openflowplugin.version}'>odl-openflowplugin-nsf-model</feature>
<bundle>mvn:org.opendaylight.vpnservice/model-bgp/{{VERSION}}</bundle>
- <bundle>mvn:org.opendaylight.vpnservice/vpnmanager-api/${vpnmanager.version}</bundle>
+ <bundle>mvn:org.opendaylight.vpnservice/vpnmanager-api/${vpnmanager.version}</bundle>
<bundle>mvn:org.opendaylight.vpnservice/nexthopmgr-api/${nexthopmgr.version}</bundle>
<bundle>mvn:org.opendaylight.vpnservice/idmanager-api/${idmanager.version}</bundle>
<bundle>mvn:org.opendaylight.vpnservice/fibmanager-api/${fibmanager.version}</bundle>
<feature version='${project.version}'>odl-vpnservice-api</feature>
<bundle>mvn:org.opendaylight.vpnservice/bgpmanager-api/${project.version}</bundle>
<bundle>mvn:org.opendaylight.vpnservice/bgpmanager-impl/${project.version}</bundle>
+ <bundle>mvn:org.opendaylight.vpnservice/mdsalutil-api/${interfacemgr.version}</bundle>
+ <bundle>mvn:org.opendaylight.vpnservice/mdsalutil-impl/${interfacemgr.version}</bundle>
<bundle>mvn:org.opendaylight.vpnservice/vpnmanager-impl/${vpnmanager.version}</bundle>
<bundle>mvn:org.opendaylight.vpnservice/interfacemgr-api/${interfacemgr.version}</bundle>
<bundle>mvn:org.opendaylight.vpnservice/interfacemgr-impl/${interfacemgr.version}</bundle>
<bundle>wrap:mvn:org.apache.thrift/libthrift/0.9.1$overwrite=merge&Bundle-Version=0.9.1&Export-Package=*;-noimport:=true;version="0.9.1"</bundle>
<!--<bundle>wrap:mvn:javax.servlet/servlet-api/2.5</bundle>-->
<configfile finalname="bgpmanager-impl-default-config.xml">mvn:org.opendaylight.vpnservice/bgpmanager-impl/${project.version}/xml/config</configfile>
+ <configfile finalname="mdsalutil-impl-default-config.xml">mvn:org.opendaylight.vpnservice/mdsalutil-impl/${interfacemgr.version}/xml/config</configfile>
<configfile finalname="vpnmanager-impl-default-config.xml">mvn:org.opendaylight.vpnservice/vpnmanager-impl/${vpnmanager.version}/xml/config</configfile>
<configfile finalname="interfacemgr-impl-default-config.xml">mvn:org.opendaylight.vpnservice/interfacemgr-impl/${interfacemgr.version}/xml/config</configfile>
<configfile finalname="nexthopmgr-impl-default-config.xml">mvn:org.opendaylight.vpnservice/nexthopmgr-impl/${nexthopmgr.version}/xml/config</configfile>
<version>0.0.1-SNAPSHOT</version>
<packaging>bundle</packaging>
+ <properties>
+ <!-- ODL -->
+ <openflowplugin.version>0.1.0-SNAPSHOT</openflowplugin.version>
+ </properties>
+
<build>
<plugins>
+ <!--
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
org.opendaylight.vpnservice.mdsalutil,
org.opendaylight.vpnservice.mdsalutil.interfaces
</Export-Package>
- <!--Import-Package>
+ <Import-Package>
com.google.common.*,
org.opendaylight.yang.*,
org.opendaylight.yangtools.*,
org.opendaylight.controller.sal.binding.api.*,
org.opendaylight.controller.md.sal.common.api.*,
org.opendaylight.controller.sal.common
- </Import-Package-->
+ </Import-Package
</instructions>
<manifestLocation>${project.basedir}/META-INF</manifestLocation>
</configuration>
</plugin>
+ -->
+ <plugin>
+ <groupId>org.opendaylight.yangtools</groupId>
+ <artifactId>yang-maven-plugin</artifactId>
+ <executions>
+ <execution>
+ <goals>
+ <goal>generate-sources</goal>
+ </goals>
+ <configuration>
+ <codeGenerators>
+ <generator>
+ <codeGeneratorClass>org.opendaylight.yangtools.maven.sal.api.gen.plugin.CodeGeneratorImpl</codeGeneratorClass>
+ <outputBaseDir>${salGeneratorPath}</outputBaseDir>
+ </generator>
+ <generator>
+ <codeGeneratorClass>org.opendaylight.controller.config.yangjmxgenerator.plugin.JMXGenerator</codeGeneratorClass>
+ <outputBaseDir>${jmxGeneratorPath}</outputBaseDir>
+ <additionalConfiguration>
+ <namespaceToPackage1>urn:opendaylight:params:xml:ns:yang==org.opendaylight.controller.config.yang</namespaceToPackage1>
+ </additionalConfiguration>
+ </generator>
+ <generator>
+ <codeGeneratorClass>org.opendaylight.yangtools.yang.unified.doc.generator.maven.DocumentationGeneratorImpl</codeGeneratorClass>
+ <outputBaseDir>target/site/models</outputBaseDir>
+ </generator>
+ </codeGenerators>
+ <inspectDependencies>true</inspectDependencies>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
</plugins>
</build>
<dependencies>
+ <dependency>
+ <groupId>org.opendaylight.openflowplugin.model</groupId>
+ <artifactId>model-flow-base</artifactId>
+ <version>${openflowplugin.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.opendaylight.openflowplugin.model</groupId>
+ <artifactId>model-flow-service</artifactId>
+ <version>${openflowplugin.version}</version>
+ </dependency>
+ <!--
<dependency>
<groupId>org.opendaylight.controller</groupId>
<artifactId>sal-binding-api</artifactId>
</dependency>
+ -->
+ <!-- removed due to missing constraint
<dependency>
<groupId>org.opendaylight.controller.model</groupId>
<artifactId>model-flow-service</artifactId>
<groupId>org.opendaylight.controller.model</groupId>
<artifactId>model-flow-base</artifactId>
</dependency>
+ -->
<!-- <dependency>
<groupId>org.opendaylight.controller.model</groupId>
<artifactId>model-flow-management</artifactId>
- </dependency>-->
+ </dependency>
<dependency>
<groupId>org.opendaylight.controller.model</groupId>
<artifactId>model-inventory</artifactId>
</dependency>
+ -->
+ <!--
<dependency>
<groupId>org.opendaylight.controller.model</groupId>
<artifactId>model-flow-statistics</artifactId>
</dependency>
- <!--
+
<dependency>
<groupId>org.opendaylight.controller.adsal</groupId>
<artifactId>sal</artifactId>
</dependency>
-->
+ <dependency>
+ <groupId>org.opendaylight.controller</groupId>
+ <artifactId>config-api</artifactId>
+ </dependency>
<dependency>
<groupId>org.opendaylight.controller</groupId>
<artifactId>sal-common</artifactId>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
</dependency>
+ <!--
<dependency>
<groupId>org.opendaylight.controller.model</groupId>
<artifactId>model-topology</artifactId>
</dependency>
-
+ -->
</dependencies>
</project>
import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tables.table.Flow;
import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tables.table.FlowBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tables.table.FlowKey;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.statistics.rev130819.GetFlowStatisticsFromFlowTableInput;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.statistics.rev130819.GetFlowStatisticsFromFlowTableInputBuilder;
+//import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.statistics.rev130819.GetFlowStatisticsFromFlowTableInput;
+//import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.statistics.rev130819.GetFlowStatisticsFromFlowTableInputBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.FlowModFlags;
import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.flow.Instructions;
import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.flow.InstructionsBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.flow.Match;
import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.flow.MatchBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instruction.list.Instruction;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.group.statistics.rev131111.GetGroupStatisticsInput;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.group.statistics.rev131111.GetGroupStatisticsInputBuilder;
+//import org.opendaylight.yang.gen.v1.urn.opendaylight.group.statistics.rev131111.GetGroupStatisticsInput;
+//import org.opendaylight.yang.gen.v1.urn.opendaylight.group.statistics.rev131111.GetGroupStatisticsInputBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.BucketId;
import org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.GroupId;
import org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.GroupTypes;
.setGroupName(groupName).setResyncFlag(isResync).build();
}
*/
+ // Removing --Missing Constraint
+ /*
public static GetFlowStatisticsFromFlowTableInput buildGetFlowStatisticsFromFlowTableInput(short tableId,
List<MatchInfo> listMatchInfo, long dpnId) {
return new GetFlowStatisticsFromFlowTableInputBuilder()
new NodeRef(InstanceIdentifier.builder(Nodes.class)
.child(Node.class, new NodeKey(new NodeId("openflow:" + dpnId))).toInstance())).build();
}
+ */
public static TransmitPacketInput getPacketOutDefault(List<ActionInfo> actionInfos, byte[] payload, long dpnId) {
return new TransmitPacketInputBuilder()
public void sendPacketOutWithActions(long lDpnId, long groupId, byte[] payload, List<ActionInfo> actionInfos);
public void sendARPPacketOutWithActions(long dpid, byte[] payload, List<ActionInfo> action_info);
+
+ public void printTest() ;
}
--- /dev/null
+module odl-mdsalutil {
+ yang-version 1;
+ namespace "urn:opendaylight:params:xml:ns:yang:mdsalutil:api";
+ prefix "odl-mdsal";
+
+ import config { prefix config; revision-date 2013-04-05; }
+
+ description
+ "Service definition for MD-SAL Util.";
+
+ revision "2015-04-10" {
+ description
+ "Initial revision";
+ }
+
+ identity odl-mdsalutil {
+ base "config:service-type";
+ config:java-class "org.opendaylight.vpnservice.mdsalutil.interfaces.IMdsalApiManager";
+ }
+}
\ No newline at end of file
<artifactId>sal-binding-api</artifactId>
</dependency>
<dependency>
- <groupId>org.opendaylight.controller.model</groupId>
- <artifactId>model-flow-service</artifactId>
+ <groupId>org.opendaylight.openflowplugin.model</groupId>
+ <artifactId>model-flow-base</artifactId>
+ <version>0.1.0-SNAPSHOT</version>
</dependency>
<dependency>
- <groupId>org.opendaylight.controller.model</groupId>
- <artifactId>model-flow-base</artifactId>
+ <groupId>org.opendaylight.openflowplugin.model</groupId>
+ <artifactId>model-flow-service</artifactId>
+ <version>0.1.0-SNAPSHOT</version>
</dependency>
<!--<dependency>
<groupId>org.opendaylight.controller.model</groupId>
<artifactId>model-flow-management</artifactId>
</dependency>-->
+ <!-- Commenting due to missing constraint error
<dependency>
<groupId>org.opendaylight.controller.model</groupId>
<artifactId>model-inventory</artifactId>
</dependency>
+ -->
<!--<dependency>
<groupId>org.eclipse.xtend</groupId>
<artifactId>org.eclipse.xtend.lib</artifactId>
-->
<snapshot>
<required-capabilities>
+ <capability>urn:opendaylight:params:xml:ns:yang:mdsalutil:api?module=odl-mdsalutil&revision=2015-04-10</capability>
<capability>urn:opendaylight:params:xml:ns:yang:mdsalutil:impl?module=mdsalutil-impl&revision=2015-04-03</capability>
<capability>urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding?module=opendaylight-md-sal-binding&revision=2013-10-28</capability>
</required-capabilities>
</broker>
</module>
</modules>
+ <services xmlns="urn:opendaylight:params:xml:ns:yang:controller:config">
+ <service>
+ <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:mdsalutil:api">prefix:odl-mdsalutil</type>
+ <instance>
+ <name>mdsalutil-service</name>
+ <provider>/modules/module[type='mdsalutil-impl'][name='mdsalutil-default']</provider>
+ </instance>
+ </service>
+ </services>
</data>
</configuration>
</snapshot>
import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tables.table.Flow;
import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tables.table.FlowKey;
import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.service.rev130819.FlowTableRef;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.transaction.rev131103.TransactionId;
+// Missing constraint
+//import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.transaction.rev131103.TransactionId;
import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.FlowRef;
import org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.GroupId;
import org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.groups.Group;
private DataBroker m_dataBroker;
- // TODO: CHECK IF RQD
-
private ConsumerContext m_consumerContext = null;
-
- // TODO Remove this later
- private DataBrokerService m_dataBrokerService;
-
+
private PacketProcessingService m_packetProcessingService;
-
private final AtomicInteger m_atomicInteger = new AtomicInteger();
//TODO : IF ID MANAGER IS RQD
- public void setDataProvider(final DataBroker salDataProvider) {
- this.m_dataBroker = salDataProvider;
-
- }
-
-
@Override
public void onSessionInitialized(ConsumerContext session) {
- s_logger.debug( " Session Initiated for MD SAL Manager") ;
+ s_logger.info( " Session Initiated for MD SAL Manager") ;
m_consumerContext = session;
m_dataBroker = session.getSALService(DataBroker.class);
// TODO - Verify this.
- // m_packetProcessingService = session.getRpcService(PacketProcessingService.class);
+ m_packetProcessingService = session.getRpcService(PacketProcessingService.class);
}
s_logger.info("MDSAL Manager Closed");
}
-
+ @Override
+ public void printTest() {
+
+ s_logger.info(" INTER MODULECOMMUNICATION IS WORKING!!!!");
+ }
@Override
public void installFlow(FlowEntity flowEntity) {
try {
package org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.mdsalutil.impl.rev150403;
+
+import org.opendaylight.vpnservice.mdsalutil.internal.MDSALManager;
+
public class MdsaluttilimplModule extends org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.mdsalutil.impl.rev150403.AbstractMdsaluttilimplModule {
public MdsaluttilimplModule(org.opendaylight.controller.config.api.ModuleIdentifier identifier, org.opendaylight.controller.config.api.DependencyResolver dependencyResolver) {
super(identifier, dependencyResolver);
@Override
public java.lang.AutoCloseable createInstance() {
- // TODO:implement
- throw new java.lang.UnsupportedOperationException();
- }
+ // TODO:implement
+// Can use the following to get a handle to data broker
+
+ MDSALManager mdsalUtilMgr = new MDSALManager();
+ getBrokerDependency().registerConsumer(mdsalUtilMgr);
+ //DataBroker dataBrokerService = getDataBrokerDependency();
+ //mdsalUtilMgr.setDataProvider(dataBrokerService);
+ return mdsalUtilMgr ;
+ }
}
import config { prefix config; revision-date 2013-04-05; }
import opendaylight-md-sal-binding { prefix md-sal-binding; revision-date 2013-10-28;}
+ import odl-mdsalutil { prefix odl-mdsal; revision-date 2015-04-10;}
description
"Service definition for mdsal project";
}
identity mdsalutil-impl {
- base config:module-type;
- config:java-name-prefix mdsaluttilimpl;
+ base config:module-type;
+ config:provided-service odl-mdsal:odl-mdsalutil;
+ config:java-name-prefix Mdsaluttilimpl;
}
augment "/config:modules/config:module/config:configuration" {
</prerequisites>
<modules>
<module>model-bgp</module>
+ <module>mdsalutil</module>
<module>vpnmanager</module>
<module>interfacemgr</module>
<module>nexthopmgr</module>
<module>idmanager</module>
<module>fibmanager</module>
- <module>mdsalutil</module>
<module>bgpmanager</module>
<module>distribution/karaf</module>
<module>features</module>