From 3ac18f4e62f8a873f27f61ca4688ed9d48631845 Mon Sep 17 00:00:00 2001 From: Lorand Jakab Date: Fri, 29 Jun 2018 20:13:29 +0200 Subject: [PATCH] Add missing list keys where necessary Change-Id: Ibbb006dcceb03a5cd7d47a8b09187bd8c766fbaf Signed-off-by: Lorand Jakab --- .../lisp/serializer/MapNotifySerializer.java | 14 ++++++++---- .../serializer/MapRegisterSerializer.java | 14 ++++++++---- .../lisp/serializer/MapRequestSerializer.java | 17 ++++++++++---- .../lisp/LispXtrSouthboundHandlerTest.java | 22 +++++++++++++------ 4 files changed, 48 insertions(+), 19 deletions(-) diff --git a/mappingservice/lisp-proto/src/main/java/org/opendaylight/lispflowmapping/lisp/serializer/MapNotifySerializer.java b/mappingservice/lisp-proto/src/main/java/org/opendaylight/lispflowmapping/lisp/serializer/MapNotifySerializer.java index 24a2c709c..4a7cb3008 100644 --- a/mappingservice/lisp-proto/src/main/java/org/opendaylight/lispflowmapping/lisp/serializer/MapNotifySerializer.java +++ b/mappingservice/lisp-proto/src/main/java/org/opendaylight/lispflowmapping/lisp/serializer/MapNotifySerializer.java @@ -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()); } } diff --git a/mappingservice/lisp-proto/src/main/java/org/opendaylight/lispflowmapping/lisp/serializer/MapRegisterSerializer.java b/mappingservice/lisp-proto/src/main/java/org/opendaylight/lispflowmapping/lisp/serializer/MapRegisterSerializer.java index ab2bb32d3..cac0bbd6f 100644 --- a/mappingservice/lisp-proto/src/main/java/org/opendaylight/lispflowmapping/lisp/serializer/MapRegisterSerializer.java +++ b/mappingservice/lisp-proto/src/main/java/org/opendaylight/lispflowmapping/lisp/serializer/MapRegisterSerializer.java @@ -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()); } } diff --git a/mappingservice/lisp-proto/src/main/java/org/opendaylight/lispflowmapping/lisp/serializer/MapRequestSerializer.java b/mappingservice/lisp-proto/src/main/java/org/opendaylight/lispflowmapping/lisp/serializer/MapRequestSerializer.java index 449f9f9a5..868a1a625 100644 --- a/mappingservice/lisp-proto/src/main/java/org/opendaylight/lispflowmapping/lisp/serializer/MapRequestSerializer.java +++ b/mappingservice/lisp-proto/src/main/java/org/opendaylight/lispflowmapping/lisp/serializer/MapRequestSerializer.java @@ -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()); } 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()); } 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 { diff --git a/mappingservice/southbound/src/test/java/org/opendaylight/lispflowmapping/southbound/lisp/LispXtrSouthboundHandlerTest.java b/mappingservice/southbound/src/test/java/org/opendaylight/lispflowmapping/southbound/lisp/LispXtrSouthboundHandlerTest.java index 00ed431bc..5259536c0 100644 --- a/mappingservice/southbound/src/test/java/org/opendaylight/lispflowmapping/southbound/lisp/LispXtrSouthboundHandlerTest.java +++ b/mappingservice/southbound/src/test/java/org/opendaylight/lispflowmapping/southbound/lisp/LispXtrSouthboundHandlerTest.java @@ -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)) -- 2.36.6