Added check for tunPort existance and made non-null precondition for adding a flow... 62/18162/1
authorKeith Burns (alagalah) <alagalah@gmail.com>
Sun, 12 Apr 2015 07:59:22 +0000 (00:59 -0700)
committerKeith Burns (alagalah) <alagalah@gmail.com>
Sun, 12 Apr 2015 07:59:22 +0000 (00:59 -0700)
Change-Id: Id0c9de5195efab5687cef7e4ea7bdfca54c6021a
Signed-off-by: Keith Burns (alagalah) <alagalah@gmail.com>
renderers/ofoverlay/src/main/java/org/opendaylight/groupbasedpolicy/renderer/ofoverlay/PolicyManager.java
renderers/ofoverlay/src/main/java/org/opendaylight/groupbasedpolicy/renderer/ofoverlay/flow/PolicyEnforcer.java

index 0a5c1d2d6b85fb536e0f5c21b51de9e52c5ddd12..65b45a9727a07586ada6dc8811aa3a331a0b44f9 100644 (file)
@@ -51,6 +51,7 @@ import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import com.google.common.base.Preconditions;
 import com.google.common.collect.ImmutableList;
 import com.google.common.util.concurrent.CheckedFuture;
 import com.google.common.util.concurrent.FutureCallback;
@@ -241,7 +242,7 @@ public class PolicyManager
         public void writeFlow(NodeId nodeId,short tableId, Flow flow) {
             TableBuilder tableBuilder = this.getTableForNode(nodeId, tableId);
             if (!tableBuilder.getFlow().contains(flow)) {
-                tableBuilder.getFlow().add(flow);
+                tableBuilder.getFlow().add(Preconditions.checkNotNull(flow));
             }
         }
 
index 8c5c8a7e09a6e6f3747d6f9973cb67d019fad010..6125f7a901bffd175f0493b253da2d1c38b3a9e9 100644 (file)
@@ -95,7 +95,10 @@ public class PolicyEnforcer extends FlowTable {
 
         flowMap.writeFlow(nodeId, TABLE_ID, dropFlow(Integer.valueOf(1), null));
 
-        flowMap.writeFlow(nodeId, TABLE_ID, allowFromTunnel(nodeId));
+        NodeConnectorId tunPort = ctx.getSwitchManager().getTunnelPort(nodeId);
+        if (tunPort != null) {
+            flowMap.writeFlow(nodeId, TABLE_ID, allowFromTunnel(tunPort));
+        }
 
         HashSet<CgPair> visitedPairs = new HashSet<>();
 
@@ -182,11 +185,8 @@ public class PolicyEnforcer extends FlowTable {
             return flow.build();
     }
 
-    private Flow allowFromTunnel(NodeId nodeId) {
-        NodeConnectorId tunPort =
-                ctx.getSwitchManager().getTunnelPort(nodeId);
-        if (tunPort == null)
-            return null;
+    private Flow allowFromTunnel(NodeConnectorId tunPort) {
+
 
         FlowId flowId = new FlowId("tunnelallow");
         MatchBuilder mb = new MatchBuilder()