Add missing list keys where necessary 14/73614/1
authorLorand Jakab <lojakab@cisco.com>
Fri, 29 Jun 2018 18:13:29 +0000 (20:13 +0200)
committerLorand Jakab <lojakab@cisco.com>
Fri, 29 Jun 2018 18:13:29 +0000 (20:13 +0200)
Change-Id: Ibbb006dcceb03a5cd7d47a8b09187bd8c766fbaf
Signed-off-by: Lorand Jakab <lojakab@cisco.com>
mappingservice/lisp-proto/src/main/java/org/opendaylight/lispflowmapping/lisp/serializer/MapNotifySerializer.java
mappingservice/lisp-proto/src/main/java/org/opendaylight/lispflowmapping/lisp/serializer/MapRegisterSerializer.java
mappingservice/lisp-proto/src/main/java/org/opendaylight/lispflowmapping/lisp/serializer/MapRequestSerializer.java
mappingservice/southbound/src/test/java/org/opendaylight/lispflowmapping/southbound/lisp/LispXtrSouthboundHandlerTest.java

index 24a2c709c4c00b1308dfe8a15d15ebfb257515ab..4a7cb30087a364350750acab9b98ab6cc90d68fc 100644 (file)
@@ -22,6 +22,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.ma
 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.mapping.record.container.MappingRecordBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.mapping.record.list.MappingRecordItem;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.mapping.record.list.MappingRecordItemBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.mapping.record.list.MappingRecordItemKey;
 
 /**
  * This class deals with serializing map notify from the java object to udp.
@@ -123,16 +124,21 @@ public final class MapNotifySerializer {
                 SiteId siteId = new SiteId(siteIdBuf);
                 builder.setXtrId(xtrId);
                 builder.setSiteId(siteId);
+                int idx = 0;
                 for (MappingRecordBuilder mrb : mrbs) {
                     mrb.setXtrId(xtrId);
                     mrb.setSiteId(siteId);
-                    builder.getMappingRecordItem().add(new MappingRecordItemBuilder().setMappingRecord(
-                            mrb.build()).build());
+                    builder.getMappingRecordItem().add(new MappingRecordItemBuilder()
+                            .withKey(new MappingRecordItemKey(Integer.toString(idx)))
+                            .setMappingRecord(mrb.build()).build());
+                    idx++;
                 }
             } else {
                 for (int i = 0; i < recordCount; i++) {
-                    builder.getMappingRecordItem().add(new MappingRecordItemBuilder().setMappingRecord(
-                            MappingRecordSerializer.getInstance().deserialize(notifyBuffer)).build());
+                    builder.getMappingRecordItem().add(new MappingRecordItemBuilder()
+                            .withKey(new MappingRecordItemKey(Integer.toString(i)))
+                            .setMappingRecord(MappingRecordSerializer.getInstance().deserialize(notifyBuffer))
+                            .build());
                 }
             }
 
index ab2bb32d331c0f427905a5dcba9c67d9c56442e1..cac0bbd6fb778b7be0e914563356814642f6fe17 100644 (file)
@@ -23,6 +23,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.Xt
 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.mapping.record.container.MappingRecordBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.mapping.record.list.MappingRecordItem;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.mapping.record.list.MappingRecordItemBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.mapping.record.list.MappingRecordItemKey;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.mapregisternotification.MapRegisterBuilder;
 
 /**
@@ -123,17 +124,22 @@ public final class MapRegisterSerializer {
                 SiteId siteId = new SiteId(siteIdBuf);
                 builder.setXtrId(xtrId);
                 builder.setSiteId(siteId);
+                int idx = 0;
                 for (MappingRecordBuilder mrb : mrbs) {
                     mrb.setXtrId(xtrId);
                     mrb.setSiteId(siteId);
                     mrb.setSourceRloc(LispAddressUtil.addressBinaryFromInet(sourceRloc));
-                    builder.getMappingRecordItem().add(new MappingRecordItemBuilder().setMappingRecord(
-                            mrb.build()).build());
+                    builder.getMappingRecordItem().add(new MappingRecordItemBuilder()
+                            .withKey(new MappingRecordItemKey(Integer.toString(idx)))
+                            .setMappingRecord(mrb.build()).build());
+                    idx++;
                 }
             } else {
                 for (int i = 0; i < recordCount; i++) {
-                    builder.getMappingRecordItem().add(new MappingRecordItemBuilder().setMappingRecord(
-                            MappingRecordSerializer.getInstance().deserialize(registerBuffer)).build());
+                    builder.getMappingRecordItem().add(new MappingRecordItemBuilder()
+                            .withKey(new MappingRecordItemKey(Integer.toString(i)))
+                            .setMappingRecord(MappingRecordSerializer.getInstance().deserialize(registerBuffer))
+                            .build());
                 }
             }
 
index 449f9f9a587c68a655a01390fae47752c9aeeea0..868a1a625e13f5e8fba457ebc99355570c81d8c5 100644 (file)
@@ -15,17 +15,22 @@ import org.opendaylight.lispflowmapping.lisp.serializer.address.LispAddressSeria
 import org.opendaylight.lispflowmapping.lisp.serializer.address.LispAddressSerializerContext;
 import org.opendaylight.lispflowmapping.lisp.serializer.exception.LispSerializationException;
 import org.opendaylight.lispflowmapping.lisp.util.ByteUtil;
+import org.opendaylight.lispflowmapping.lisp.util.LispAddressStringifier;
 import org.opendaylight.lispflowmapping.lisp.util.LispAddressUtil;
 import org.opendaylight.lispflowmapping.lisp.util.MaskUtil;
 import org.opendaylight.lispflowmapping.lisp.util.NumberUtil;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.MapRequest;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.MessageType;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.eid.container.Eid;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.eid.list.EidItem;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.eid.list.EidItemBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.eid.list.EidItemKey;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.maprequest.ItrRloc;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.maprequest.ItrRlocBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.maprequest.ItrRlocKey;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.maprequest.SourceEidBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.maprequestnotification.MapRequestBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.rloc.container.Rloc;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -147,16 +152,20 @@ public final class MapRequestSerializer {
                 builder.setItrRloc(new ArrayList<ItrRloc>());
             }
             for (int i = 0; i < itrCount; i++) {
-                builder.getItrRloc().add(new ItrRlocBuilder().setRloc(
-                        LispAddressSerializer.getInstance().deserializeRloc(requestBuffer)).build());
+                Rloc rloc = LispAddressSerializer.getInstance().deserializeRloc(requestBuffer);
+                builder.getItrRloc().add(new ItrRlocBuilder()
+                        .withKey(new ItrRlocKey(LispAddressStringifier.getString(rloc)))
+                        .setRloc(rloc).build());
             }
 
             if (builder.getEidItem() == null) {
                 builder.setEidItem(new ArrayList<EidItem>());
             }
             for (int i = 0; i < recordCount; i++) {
-                builder.getEidItem().add(new EidItemBuilder().setEid(
-                        EidRecordSerializer.getInstance().deserialize(requestBuffer)).build());
+                Eid eid = EidRecordSerializer.getInstance().deserialize(requestBuffer);
+                builder.getEidItem().add(new EidItemBuilder()
+                        .withKey(new EidItemKey(LispAddressStringifier.getString(eid)))
+                        .setEid(eid).build());
             }
             if (builder.isMapDataPresent() && requestBuffer.hasRemaining()) {
                 try {
index 00ed431bc342279a37c5dc4b98987949713b2c1a..5259536c02e0221ae5084cf01785e998ba13cd09 100644 (file)
@@ -24,6 +24,7 @@ import org.junit.runner.RunWith;
 import org.mockito.ArgumentCaptor;
 import org.mockito.Mockito;
 import org.mockito.runners.MockitoJUnitRunner;
+import org.opendaylight.lispflowmapping.lisp.util.LispAddressStringifier;
 import org.opendaylight.lispflowmapping.lisp.util.LispAddressUtil;
 import org.opendaylight.lispflowmapping.southbound.LispSouthboundPlugin;
 import org.opendaylight.lispflowmapping.southbound.lisp.exception.LispMalformedPacketException;
@@ -32,13 +33,17 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.binary.address.typ
 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.binary.address.types.rev160504.augmented.lisp.address.address.Ipv4BinaryBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.XtrReplyMapping;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.XtrRequestMapping;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.eid.container.Eid;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.eid.list.EidItem;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.eid.list.EidItemBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.eid.list.EidItemKey;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.maprequest.ItrRloc;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.maprequest.ItrRlocBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.maprequest.ItrRlocKey;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.maprequest.SourceEidBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.maprequestnotification.MapRequest;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.maprequestnotification.MapRequestBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.rloc.container.Rloc;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.rloc.container.RlocBuilder;
 
 @RunWith(MockitoJUnitRunner.class)
@@ -210,16 +215,19 @@ public class LispXtrSouthboundHandlerTest {
     }
 
     private static MapRequestBuilder getDefaultMapRequestBuilder() {
-        final ItrRloc itrRloc = new ItrRlocBuilder()
-                .setRloc(new RlocBuilder()
-                        .setAddressType(Ipv4BinaryAfi.class)
-                        .setAddress(new Ipv4BinaryBuilder()
-                                .setIpv4Binary(new Ipv4AddressBinary(new byte[]{127, 0, 0, 2})).build())
-                        .build())
+        final Rloc rloc = new RlocBuilder()
+                .setAddressType(Ipv4BinaryAfi.class)
+                .setAddress(new Ipv4BinaryBuilder()
+                        .setIpv4Binary(new Ipv4AddressBinary(new byte[]{127, 0, 0, 2})).build())
                 .build();
+        final ItrRloc itrRloc = new ItrRlocBuilder()
+                .withKey(new ItrRlocKey(LispAddressStringifier.getString(rloc)))
+                .setRloc(rloc).build();
 
+        final Eid eid = LispAddressUtil.asIpv4PrefixBinaryEid(IPV4_STRING_2 + IPV4_STRING_PREFIX);
         final EidItem eidItem = new EidItemBuilder()
-                .setEid(LispAddressUtil.asIpv4PrefixBinaryEid(IPV4_STRING_2 + IPV4_STRING_PREFIX)).build();
+                .withKey(new EidItemKey(IPV4_STRING_2 + IPV4_STRING_PREFIX))
+                .setEid(eid).build();
 
         return new MapRequestBuilder()
                 .setItrRloc(Lists.newArrayList(itrRloc))