Small fix to handle the fact that ovsdb sometimes returns ofport of -1 94/17794/2
authorEd Warnicke <eaw@cisco.com>
Mon, 6 Apr 2015 16:30:41 +0000 (09:30 -0700)
committerEd Warnicke <eaw@cisco.com>
Mon, 6 Apr 2015 17:19:13 +0000 (10:19 -0700)
It turns out that sometimes ovsdb returns an ofport of -1 to indicate that
there is no associated ofport value.  We should represent that by *not*
having an ofport value

Change-Id: I2a28a34333ff1b92728286672499714079346444
Signed-off-by: Ed Warnicke <eaw@cisco.com>
southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/transactions/md/OvsdbPortUpdateCommand.java

index a0ecb9096e9d0d3cb456d8a37c14963bc7b7f2b0..f69b7458cc97d99027992eb801d5e4ef4b929464 100644 (file)
@@ -135,15 +135,27 @@ public class OvsdbPortUpdateCommand extends AbstractTransactionCommand {
                                         Set<Long> ofPorts = interfIter.getOpenFlowPortColumn().getData();
                                         if (ofPorts != null && !ofPorts.isEmpty()) {
                                             Iterator<Long> ofPortsIter = ofPorts.iterator();
-                                            ovsdbTerminationPointBuilder
-                                                .setOfport(ofPortsIter.next().intValue());
+                                            int ofPort = ofPortsIter.next().intValue();
+                                            if (ofPort >= 0) {
+                                                ovsdbTerminationPointBuilder
+                                                    .setOfport(ofPort);
+                                            } else {
+                                                LOG.debug("Received negative value for ofPort from ovsdb for {} {} {}",
+                                                        bridge.getName(), interfIter.getName(),ofPort);
+                                            }
                                         }
                                         Set<Long> ofPortRequests = interfIter
                                                 .getOpenFlowPortRequestColumn().getData();
                                         if (ofPortRequests != null && !ofPortRequests.isEmpty()) {
                                             Iterator<Long> ofPortRequestsIter = ofPortRequests.iterator();
-                                            ovsdbTerminationPointBuilder
-                                                .setOfportRequest(ofPortRequestsIter.next().intValue());
+                                            int ofPort = ofPortRequestsIter.next().intValue();
+                                            if (ofPort >= 0) {
+                                                ovsdbTerminationPointBuilder
+                                                    .setOfportRequest(ofPort);
+                                            } else {
+                                                LOG.debug("Received negative value for ofPort from ovsdb for {} {} {}",
+                                                        bridge.getName(), interfIter.getName(),ofPort);
+                                            }
                                         }
 
                                         Map<String, String> externalIds = interfIter.getExternalIdsColumn().getData();