RPC registration for nexthop & actionbucket change 17/20217/1
authorAbhinav Gupta <abhi3123@gmail.com>
Wed, 13 May 2015 06:31:21 +0000 (12:01 +0530)
committerAbhinav Gupta <abhi3123@gmail.com>
Wed, 13 May 2015 06:38:13 +0000 (12:08 +0530)
Change-Id: I587edbb8f8465666c48f9cf1789c2e81c47f5d64
Signed-off-by: Abhinav Gupta <abhi3123@gmail.com>
nexthopmgr/nexthopmgr-impl/src/main/config/default-config.xml
nexthopmgr/nexthopmgr-impl/src/main/java/org/opendaylight/vpnservice/nexthopmgr/NexthopManager.java
nexthopmgr/nexthopmgr-impl/src/main/java/org/opendaylight/vpnservice/nexthopmgr/NexthopmgrProvider.java
nexthopmgr/nexthopmgr-impl/src/main/java/org/opendaylight/yang/gen/v1/urn/opendaylight/params/xml/ns/yang/nexthopmgr/impl/rev150325/NexthopmgrImplModule.java
nexthopmgr/nexthopmgr-impl/src/main/yang/nexthopmgr-impl.yang

index 18c12e6176a418225d97c27a43dff7b2b516fb4a..5df30835bbada9d6395ea798b6a6908019769f7c 100644 (file)
@@ -33,6 +33,10 @@ and is available at http://www.eclipse.org/legal/epl-v10.html
             <type xmlns:odlif="urn:opendaylight:vpnservice:interfacemgr">odlif:odl-interface</type>
             <name>interfacemgr-service</name>
           </odlinterface>
+          <rpc-registry>
+            <type xmlns:binding="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding">binding:binding-rpc-registry</type>
+            <name>binding-rpc-broker</name>
+          </rpc-registry>
         </module>
       </modules>
     </data>
index ce11c4d4b19367b93502dac4193f2c93b98d2318..ab5b2772b4be21531ae5fe18df8d525712806c46 100644 (file)
@@ -165,7 +165,7 @@ public class NexthopManager implements L3nexthopService, AutoCloseable {
             BucketInfo bucket = new BucketInfo(listActionInfo);
             // MAC re-write
             if (macAddress != null) {
-                listActionInfo.add(new ActionInfo(ActionType.set_field_eth_dest, new String[]{macAddress}));
+               listActionInfo.add(0, new ActionInfo(ActionType.set_field_eth_dest, new String[]{macAddress}));
             } else {
                 //FIXME: Log message here.
             }
index 2e1456622e0494d19ff069a05af40e0b824873a9..51494d92efcbffdea25f8bf7a76cf1712d792718 100644 (file)
@@ -8,13 +8,15 @@
 package org.opendaylight.vpnservice.nexthopmgr;
 
 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
+import org.opendaylight.controller.sal.binding.api.BindingAwareBroker;
 import org.opendaylight.controller.sal.binding.api.BindingAwareBroker.ProviderContext;
 import org.opendaylight.controller.sal.binding.api.BindingAwareProvider;
 import org.opendaylight.vpnservice.nexthopmgr.NexthopManager;
 import org.opendaylight.vpnservice.interfacemgr.interfaces.IInterfaceManager;
 import org.opendaylight.vpnservice.mdsalutil.interfaces.IMdsalApiManager;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.vpnservice.l3nexthop.rev150409.L3nexthopService;
 import org.opendaylight.idmanager.IdManager;
-
+import org.opendaylight.controller.sal.binding.api.RpcProviderRegistry;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -27,6 +29,15 @@ public class NexthopmgrProvider implements BindingAwareProvider, AutoCloseable {
     private IMdsalApiManager mdsalManager;
     private IInterfaceManager interfaceManager;
     private IdManager idManager;
+    private RpcProviderRegistry rpcProviderRegistry;
+
+    public RpcProviderRegistry getRpcProviderRegistry() {
+        return rpcProviderRegistry;
+    }
+
+    public void setRpcProviderRegistry(RpcProviderRegistry rpcProviderRegistry) {
+        this.rpcProviderRegistry = rpcProviderRegistry;
+    }
 
     @Override
     public void onSessionInitiated(ProviderContext session) {
@@ -35,6 +46,7 @@ public class NexthopmgrProvider implements BindingAwareProvider, AutoCloseable {
         vpnIfListener = new VpnInterfaceChangeListener(dbx, nhManager);
         odlIfListener = new OdlInterfaceChangeListener(dbx, nhManager, interfaceManager);
         idManager = new IdManager(dbx);
+        final BindingAwareBroker.RpcRegistration<L3nexthopService> rpcRegistration = getRpcProviderRegistry().addRpcImplementation(L3nexthopService.class, nhManager);
         nhManager.setMdsalManager(mdsalManager);
         nhManager.setInterfaceManager(interfaceManager);
         nhManager.setIdManager(idManager);
@@ -50,6 +62,10 @@ public class NexthopmgrProvider implements BindingAwareProvider, AutoCloseable {
         this.interfaceManager = interfaceManager;
     }
 
+    public NexthopmgrProvider(RpcProviderRegistry rpcRegistry) {
+        this.rpcProviderRegistry = rpcRegistry;
+    }
+
     @Override
     public void close() throws Exception {
         vpnIfListener.close();
index 4b7d4aeac0b4b6383594d0cf477110b95f8df7fe..7d2a8f28cfb21795778a6a96fbae8c08f06c868a 100644 (file)
@@ -18,10 +18,9 @@ public class NexthopmgrImplModule extends org.opendaylight.yang.gen.v1.urn.opend
 
     @Override
     public java.lang.AutoCloseable createInstance() {
-        NexthopmgrProvider provider = new NexthopmgrProvider();
+        NexthopmgrProvider provider = new NexthopmgrProvider(getRpcRegistryDependency());
         provider.setMdsalManager(getMdsalutilDependency());
         provider.setInterfaceManager(getOdlinterfaceDependency());
-
         getBrokerDependency().registerProvider(provider);
         return provider;
     }
index 3b50fdaf2309b1cb021c1babc642d4e3075bdf59..6e29481b8d9c53a8580797a1cc1a1e1f7c3082e4 100644 (file)
@@ -48,6 +48,14 @@ module nexthopmgr-impl {
                     }
                 }
             }
+            container rpc-registry {
+                 uses config:service-ref {
+                      refine type {
+                         mandatory true;
+                         config:required-identity md-sal-binding:binding-rpc-registry;
+                      }
+                 }
+            }
         }
     }
 }