Bug 5457 - BGP-LU update from app peer to exabgp peer: Labels missing 33/36433/3
authorMilos Fabian <milfabia@cisco.com>
Fri, 18 Mar 2016 11:09:47 +0000 (12:09 +0100)
committerRobert Varga <nite@hq.sk>
Mon, 28 Mar 2016 19:40:23 +0000 (19:40 +0000)
Make sure all labels are added into label entry, not only the last one.

Change-Id: I54a28185a46d7757e729be1384485fb610fd8f52
Signed-off-by: Milos Fabian <milfabia@cisco.com>
bgp/labeled-unicast/src/main/java/org/opendaylight/protocol/bgp/labeled/unicast/LabeledUnicastRIBSupport.java

index 01ca1f4d709967911b66dfac19cac6e73a2cb788..9054779307a9f3a06b5436db4c8f1f54ada18171 100644 (file)
@@ -252,16 +252,16 @@ public final class LabeledUnicastRIBSupport extends AbstractRIBSupport {
     public static List<LabelStack> extractLabel(final DataContainerNode<? extends PathArgument> route, final NodeIdentifier labelStackNid, final NodeIdentifier labelValueNid) {
         final List<LabelStack> labels = new ArrayList<>();
         final Optional<DataContainerChild<? extends PathArgument, ?>> labelStacks = route.getChild(labelStackNid);
-        final LabelStackBuilder labelStackbuilder = new LabelStackBuilder();
         if (labelStacks.isPresent()) {
             for(final UnkeyedListEntryNode label : ((UnkeyedListNode)labelStacks.get()).getValue()) {
                 final Optional<DataContainerChild<? extends PathArgument, ?>> labelStack = label.getChild(labelValueNid);
                 if (labelStack.isPresent()) {
+                    final LabelStackBuilder labelStackbuilder = new LabelStackBuilder();
                     labelStackbuilder.setLabelValue(new MplsLabel((Long) labelStack.get().getValue()));
+                    labels.add(labelStackbuilder.build());
                 }
             }
         }
-        labels.add(labelStackbuilder.build());
         return labels;
     }
 }