BUG-3839 : fixed various minor bugs related to AS Path BPS 67/23167/5
authorDana Kutenicsova <dkutenic@cisco.com>
Tue, 23 Jun 2015 13:38:02 +0000 (15:38 +0200)
committerGerrit Code Review <gerrit@opendaylight.org>
Mon, 29 Jun 2015 11:37:05 +0000 (11:37 +0000)
- fixed classcast from Long to String
- fixed wrong NodeIdentifier
- fixed wrong algorithm in BPS

Change-Id: I7d87534d4e027d62a13fca7da13af81cb5f89caa
Signed-off-by: Dana Kutenicsova <dkutenic@cisco.com>
bgp/rib-impl/src/main/java/org/opendaylight/protocol/bgp/rib/impl/AttributeOperations.java
bgp/rib-impl/src/main/java/org/opendaylight/protocol/bgp/rib/impl/BestPathSelector.java
bgp/rib-impl/src/main/java/org/opendaylight/protocol/bgp/rib/impl/BestPathState.java
bgp/rib-impl/src/test/java/org/opendaylight/protocol/bgp/rib/impl/BestPathSelectorTest.java

index 6992b7ffbee9d3e69d385b142ef6f7b5c49fe3e4..470acbf57041170af0227fa201b2718c52443fe9 100644 (file)
@@ -151,7 +151,7 @@ final class AttributeOperations {
         if (maybeOldAsSegments.isPresent() && !((UnkeyedListNode) maybeOldAsSegments.get()).getValue().isEmpty()) {
             // Builder of inner list
             final CollectionNodeBuilder<UnkeyedListEntryNode, UnkeyedListNode> ilb = Builders.unkeyedListBuilder();
-            ilb.withNodeIdentifier(this.asPathSegments);
+            ilb.withNodeIdentifier(this.asPathSequence);
             ilb.withChild(Builders.unkeyedListEntryBuilder().withNodeIdentifier(this.asPathSequence).withChild(ImmutableNodes.leafNode(this.asPathId, localAs)).build());
 
             /*
@@ -258,13 +258,13 @@ final class AttributeOperations {
             final AugmentationIdentifier ai = (AugmentationIdentifier) child.getIdentifier();
             for (final QName name : ai.getPossibleChildNames()) {
                 LOG.trace("Augmented QNAME {}", name);
-                if (transitiveCollection.contains(name)) {
+                if (this.transitiveCollection.contains(name)) {
                     return true;
                 }
             }
             return false;
         }
-        if (transitiveCollection.contains(child.getNodeType())) {
+        if (this.transitiveCollection.contains(child.getNodeType())) {
             return true;
         }
         if (UnrecognizedAttributes.QNAME.equals(child.getNodeType())) {
index 62f48296d1a46f147fb8d670cd396543efe411d5..b062bca98673bd1a0a352fdaabcf565e8562af62 100644 (file)
@@ -104,8 +104,8 @@ final class BestPathSelector {
         // - we assume that all paths are learned
 
         // 4. prefer the path with the shortest AS_PATH.
-        if (this.bestState.getAsPathLength() > state.getAsPathLength()) {
-            return true;
+        if (this.bestState.getAsPathLength() != state.getAsPathLength()) {
+            return this.bestState.getAsPathLength() < state.getAsPathLength();
         }
 
         // 5. prefer the path with the lowest origin type
index d77590c1d8af11e58f093e205340aa1142e8ae8b..41dafa04151410868a51a747c9abca0be1e60ab8 100644 (file)
@@ -294,7 +294,7 @@ final class BestPathState {
         if (maybeSet.isPresent()) {
             final LeafSetNode<?> list = (LeafSetNode<?>)maybeSet.get();
             for (final LeafSetEntryNode<?> as : list.getValue())  {
-                ases.add(new AsNumber(Long.valueOf((String)as.getValue())));
+                ases.add(new AsNumber((Long)as.getValue()));
             }
         }
         return new ASetCaseBuilder().setASet(new ASetBuilder().setAsSet(ases).build()).build();
@@ -312,7 +312,7 @@ final class BestPathState {
                 final Optional<NormalizedNode<?, ?>> maybeAsSeq = NormalizedNodes.findNode(as, this.ids.getAs());
                 if (maybeAsSeq.isPresent()) {
                     final LeafNode<?> asLeaf = (LeafNode<?>)maybeAsSeq.get();
-                    ases.add(new AsSequenceBuilder().setAs(new AsNumber(Long.valueOf((String)asLeaf.getValue()))).build());
+                    ases.add(new AsSequenceBuilder().setAs(new AsNumber((Long)asLeaf.getValue())).build());
                 }
             }
         }
index dfcac0ae1c42d95e1629d0a7a66c491d3d84da56..c0271c974a562eb7549b306ca62dbde6f62e86b4 100644 (file)
@@ -13,10 +13,8 @@ import static org.junit.Assert.assertNotEquals;
 import com.google.common.collect.Lists;
 import com.google.common.collect.Sets;
 import com.google.common.primitives.UnsignedInteger;
-
 import java.util.ArrayList;
 import java.util.List;
-
 import org.junit.Test;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.AsNumber;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev130919.path.attributes.attributes.as.path.Segments;
@@ -166,8 +164,8 @@ public class BestPathSelectorTest {
             .addChild(Builders.choiceBuilder().withNodeIdentifier(cSegmentsNid)
                 .addChild(Builders.containerBuilder().withNodeIdentifier(aSetNid)
                     .addChild(Builders.leafSetBuilder().withNodeIdentifier(asSetNid)
-                        .addChild(Builders.leafSetEntryBuilder().withNodeIdentifier(new NodeWithValue(asNumberQ, "10")).withValue("10").build())
-                        .addChild(Builders.leafSetEntryBuilder().withNodeIdentifier(new NodeWithValue(asNumberQ, "11")).withValue("11").build())
+                        .addChild(Builders.leafSetEntryBuilder().withNodeIdentifier(new NodeWithValue(asNumberQ, 10L)).withValue(10L).build())
+                        .addChild(Builders.leafSetEntryBuilder().withNodeIdentifier(new NodeWithValue(asNumberQ, 11L)).withValue(11L).build())
                     .build())
                 .build())
             .build())
@@ -177,13 +175,13 @@ public class BestPathSelectorTest {
                 .addChild(Builders.containerBuilder().withNodeIdentifier(aListNid)
                     .addChild(Builders.unkeyedListBuilder().withNodeIdentifier(asSeqNid)
                         .addChild(Builders.unkeyedListEntryBuilder().withNodeIdentifier(asSeqNid)
-                            .addChild(Builders.leafBuilder().withNodeIdentifier(asNid).withValue("1").build())
+                            .addChild(Builders.leafBuilder().withNodeIdentifier(asNid).withValue(1L).build())
                         .build())
                         .addChild(Builders.unkeyedListEntryBuilder().withNodeIdentifier(asSeqNid)
-                            .addChild(Builders.leafBuilder().withNodeIdentifier(asNid).withValue("2").build())
+                            .addChild(Builders.leafBuilder().withNodeIdentifier(asNid).withValue(2L).build())
                         .build())
                         .addChild(Builders.unkeyedListEntryBuilder().withNodeIdentifier(asSeqNid)
-                            .addChild(Builders.leafBuilder().withNodeIdentifier(asNid).withValue("3").build())
+                            .addChild(Builders.leafBuilder().withNodeIdentifier(asNid).withValue(3L).build())
                         .build())
                     .build())
                 .build())