Fix gre tunnel connectivity 41/29941/3
authormelserngawy <melserngawy@inocybe.com>
Thu, 19 Nov 2015 19:48:51 +0000 (14:48 -0500)
committerMohamed El-Serngawy <melserngawy@inocybe.com>
Mon, 23 Nov 2015 16:00:25 +0000 (11:00 -0500)
Change-Id: I8e0579c14a9d1afc6a4e3f7cabafbffaa4d92f25
Signed-off-by: melserngawy <melserngawy@inocybe.com>
impl/src/main/java/org/opendaylight/unimgr/command/EvcCreateCommand.java
impl/src/main/java/org/opendaylight/unimgr/impl/UnimgrConstants.java
impl/src/main/java/org/opendaylight/unimgr/impl/UnimgrUtils.java

index d4ccafb75513ee630ff07bf32556884bd98e1bbd..e7dfdf69a27bc3e8b21d995ee88f42bb12f3f0f5 100644 (file)
@@ -41,9 +41,6 @@ public class EvcCreateCommand extends AbstractCreateCommand {
             if (created.getValue() != null && created.getValue() instanceof EvcAugmentation) {
                 EvcAugmentation evc = (EvcAugmentation) created.getValue();
                 InstanceIdentifier<?> evcKey = created.getKey();
-                LOG.trace("New EVC created, source IP: {} destination IP {}.",
-                        evc.getUniSource().iterator().next().getIpAddress().getIpv4Address(),
-                        evc.getUniDest().iterator().next().getIpAddress().getIpv4Address());
                 // For now, we assume that there is 1 uni per source/destination
                 if (evc.getUniDest() == null || evc.getUniDest().isEmpty()) {
                     LOG.error("Destination UNI cannot be null.");
@@ -53,19 +50,24 @@ public class EvcCreateCommand extends AbstractCreateCommand {
                     LOG.error("Source UNI cannot be null.");
                     break;
                 }
+                LOG.trace("New EVC created, source IP: {} destination IP {}.",
+                        evc.getUniSource().iterator().next().getIpAddress().getIpv4Address(),
+                        evc.getUniDest().iterator().next().getIpAddress().getIpv4Address());
                 InstanceIdentifier<Node> sourceUniIid;
                 InstanceIdentifier<Node> destinationUniIid;
                 //FIXME we are assuming that there is only 1 UNI source and destination
                 // per evc
-                if (evc.getUniSource().iterator().next().getUni() != null) {
-                    sourceUniIid = evc.getUniSource().iterator().next().getUni().firstIdentifierOf(Node.class);
+                InstanceIdentifier<?> iidSource = evc.getUniSource().iterator().next().getUni();
+                if (iidSource != null) {
+                    sourceUniIid = iidSource.firstIdentifierOf(Node.class);
                 } else {
                     sourceUniIid = UnimgrMapper.getUniIid(dataBroker,
                                                           evc.getUniSource().iterator().next().getIpAddress(),
                                                           LogicalDatastoreType.OPERATIONAL);
                 }
-                if (evc.getUniDest().iterator().next().getUni() != null) {
-                    destinationUniIid = evc.getUniDest().iterator().next().getUni().firstIdentifierOf(Node.class);
+                InstanceIdentifier<?> iidDest = evc.getUniDest().iterator().next().getUni();
+                if (iidDest != null) {
+                    destinationUniIid = iidDest.firstIdentifierOf(Node.class);
                 } else {
                     destinationUniIid = UnimgrMapper.getUniIid(dataBroker,
                                                                evc.getUniDest().iterator().next().getIpAddress(),
@@ -120,25 +122,23 @@ public class EvcCreateCommand extends AbstractCreateCommand {
                                                                    uniSource.getAugmentation(UniAugmentation.class),
                                                                    sourceBr,
                                                                    UnimgrConstants.DEFAULT_BRIDGE_NAME,
-                                                                   UnimgrConstants.DEFAULT_TUNNEL_IFACE,
-                                                                   UnimgrConstants.DEFAULT_GRE_NAME);
+                                                                   UnimgrConstants.DEFAULT_TUNNEL_IFACE);
                             UnimgrUtils.createGreTunnel(dataBroker,
                                                         uniSource.getAugmentation(UniAugmentation.class),
                                                         uniDestination.getAugmentation(UniAugmentation.class),
                                                         sourceBr,
                                                         UnimgrConstants.DEFAULT_BRIDGE_NAME,
-                                                        "gre0");
-                            UnimgrUtils.createTerminationPointNode(dataBroker, 
+                                                        UnimgrConstants.DEFAULT_GRE_TUNNEL_NAME);
+                            UnimgrUtils.createTerminationPointNode(dataBroker,
                                                                    uniSource.getAugmentation(UniAugmentation.class),
                                                                    destinationBr,
                                                                    UnimgrConstants.DEFAULT_BRIDGE_NAME,
-                                                                   UnimgrConstants.DEFAULT_TUNNEL_IFACE,
-                                                                   UnimgrConstants.DEFAULT_GRE_NAME);
+                                                                   UnimgrConstants.DEFAULT_TUNNEL_IFACE);
                             UnimgrUtils.createGreTunnel(dataBroker,
                                                         uniDestination.getAugmentation(UniAugmentation.class),
                                                         uniSource.getAugmentation(UniAugmentation.class), destinationBr,
                                                         UnimgrConstants.DEFAULT_BRIDGE_NAME,
-                                                        "gre0");
+                                                        UnimgrConstants.DEFAULT_GRE_TUNNEL_NAME);
                             UnimgrUtils.updateEvcNode(LogicalDatastoreType.CONFIGURATION,
                                                       evcKey,
                                                       evc,
index 38fd796b94b00b7d162e0adbad20b1c98b975a14..13ca596780e921e354e9eb5e8063c58d4f2a48b4 100644 (file)
@@ -29,7 +29,7 @@ public class UnimgrConstants {
 
     public static final Ipv4Address LOCAL_IP = new Ipv4Address("127.0.0.1");
 
-    public static final String DEFAULT_BRIDGE_NAME = "br0";
+    public static final String DEFAULT_BRIDGE_NAME = "ovsbr0";
 
 //    public static final String DEFAULT_BRIDGE2_NAME = "br2";
 
@@ -40,4 +40,6 @@ public class UnimgrConstants {
     public static final String DEFAULT_TUNNEL_IFACE = "eth1";
 
     public static final String DEFAULT_GRE_NAME = "gre";
+
+    public static final String DEFAULT_GRE_TUNNEL_NAME = "gre1";
 }
index 6b0ee47421dd5f348c02f1e6c5552bacb1fb965c..3bb5f3cd3b85ffeb9ea5893ee1718d63c28b62b7 100644 (file)
@@ -432,6 +432,37 @@ public class UnimgrUtils {
         transaction.submit();
     }
 
+    /**
+     * Creates and Submit a termination point Node without specifying its interface type.
+     * @param dataBroker The instance of the data broker to create transactions
+     * @param uni The UNI's data
+     * @param bridgeNode The Bridge node
+     * @param bridgeName The Bridge name (example: br0)
+     * @param portName The Port name (example: eth0)
+     */
+    public static void createTerminationPointNode(DataBroker dataBroker,
+                                                  Uni uni,
+                                                  Node bridgeNode,
+                                                  String bridgeName,
+                                                  String portName) {
+        InstanceIdentifier<TerminationPoint> tpIid = UnimgrMapper
+                                                        .getTerminationPointIid(bridgeNode,
+                                                                                portName);
+        OvsdbTerminationPointAugmentationBuilder tpAugmentationBuilder =
+                                                     new OvsdbTerminationPointAugmentationBuilder();
+        tpAugmentationBuilder.setName(portName);
+        tpAugmentationBuilder.setInterfaceType(null);
+        TerminationPointBuilder tpBuilder = new TerminationPointBuilder();
+        tpBuilder.setKey(InstanceIdentifier.keyOf(tpIid));
+        tpBuilder.addAugmentation(OvsdbTerminationPointAugmentation.class,
+                                  tpAugmentationBuilder.build());
+        WriteTransaction transaction = dataBroker.newWriteOnlyTransaction();
+        transaction.put(LogicalDatastoreType.CONFIGURATION,
+                        tpIid,
+                        tpBuilder.build());
+        transaction.submit();
+    }
+
     /**
      * Deletes a generic node
      * @param dataBroker The instance of the data broker to create transactions