From c3571cac0b746ac1c554b220959a3205c4a84e20 Mon Sep 17 00:00:00 2001 From: Florin Coras Date: Wed, 19 Aug 2015 02:54:24 +0200 Subject: [PATCH] Reorganize mappingservice.implementation This consists of a number of incremental changes ultimately meant to ensure the clear separation between the components implementing the LISP control plane logic (MapServer/MapResolver) and the logic used to manipulate the database that stores mapping state. This should give us better isolation (i.e, should help testing) but also opens the possibility to better optimize DAO/map-cache implementation for specific use-cases, if needed. Noteworthy changes: - Move out code concerning logic behind CRUD operations on DAO from MapServer and MapResolver to DAOMappingUtil. In future patches the latter will be converted to a MapCache class instead of a helper class. - Move serializer and LISP protocol utility functions from mappingservice.implementation to yangmodel. - Remove bundle dependencies on mappingservice.implementation. Bundles should be importing mappingservice.api. - Cleanup pom files Change-Id: I199b8d2162cd2ab2b54cd3340eb24811fd6cd5be Signed-off-by: Florin Coras --- ...appingServiceKey.java => IMappingKey.java} | 2 +- ...ngServiceRLOCGroup.java => RLOCGroup.java} | 18 +- ...ubscriberRLOC.java => SubscriberRLOC.java} | 8 +- .../clusterdao/ClusterDAOService.java | 8 +- mappingservice/implementation/pom.xml | 19 - .../implementation/LfmMappingDatabaseRpc.java | 2 +- .../implementation/LispMappingService.java | 22 +- .../authentication/LispMACAuthentication.java | 4 +- ...MappingServiceKey.java => MappingKey.java} | 8 +- ...erviceKeyUtil.java => MappingKeyUtil.java} | 24 +- ...ceNoMaskKey.java => MappingNoMaskKey.java} | 10 +- .../lisp/AbstractLispComponent.java | 112 ----- .../implementation/lisp/MapResolver.java | 102 ++-- .../implementation/lisp/MapServer.java | 221 ++------- .../mdsal/DataStoreBackEnd.java | 2 +- .../mdsal/MappingDataListener.java | 2 +- .../implementation/util/DAOMappingUtil.java | 439 +++++++++++++++--- .../implementation/util/DAOSubKeys.java | 39 ++ .../util/InstanceIdentifierUtil.java | 1 + .../util/LispNotificationHelper.java | 67 +-- .../implementation/util/MaskUtil.java | 1 + .../util/RPCInputConvertorUtil.java | 1 + .../LispAuthenticationTest.java | 4 +- .../implementation/lisp/MapResolverTest.java | 41 +- .../implementation/lisp/MapServerTest.java | 69 +-- .../lispflowmapping/inmemorydb/HashMapDb.java | 8 +- .../MappingServiceIntegrationTest.java | 16 +- mappingservice/neutron/pom.xml | 4 - .../neutron/LispNeutronPortHandler.java | 2 +- .../neutron/LispNeutronSubnetHandler.java | 2 +- mappingservice/southbound/pom.xml | 4 +- .../southbound/LfmControlPlaneRpc.java | 8 +- .../southbound/LispSouthboundPlugin.java | 2 +- .../lisp/LispSouthboundService.java | 18 +- .../lisp/LispXtrSouthboundService.java | 14 +- .../util/LispNotificationHelper.java | 70 +++ .../lisp/LispSouthboundServiceTest.java | 16 +- mappingservice/yangmodel/pom.xml | 9 + .../lisp}/serializer/EidRecordSerializer.java | 8 +- .../EidToLocatorRecordSerializer.java | 10 +- .../serializer/LocatorRecordSerializer.java | 12 +- .../lisp}/serializer/MapNotifySerializer.java | 17 +- .../serializer/MapRegisterSerializer.java | 9 +- .../lisp}/serializer/MapReplySerializer.java | 7 +- .../serializer/MapRequestSerializer.java | 13 +- .../address/LispAddressSerializer.java | 8 +- ...pApplicationDataLCAFAddressSerializer.java | 12 +- ...ispDistinguishedNameAddressSerializer.java | 4 +- .../address/LispIpv4AddressSerializer.java | 4 +- .../address/LispIpv6AddressSerializer.java | 4 +- .../address/LispKeyValueLCAFSerializer.java | 8 +- .../address/LispLCAFAddressSerializer.java | 10 +- .../LispListLCAFAddressSerializer.java | 8 +- .../address/LispMACAddressSerializer.java | 2 +- .../address/LispNoAddressSerializer.java | 4 +- .../LispSegmentLCAFAddressSerializer.java | 12 +- .../LispSourceDestLCAFAddressSerializer.java | 10 +- ...afficEngineeringLCAFAddressSerializer.java | 10 +- .../LispAFIAddressSerializerFactory.java | 18 +- .../LispLCAFAddressSerializerFactory.java | 18 +- .../exception/LispSerializationException.java | 2 +- .../lisp}/type/AddressFamilyNumberEnum.java | 2 +- .../type/LispCanonicalAddressFormatEnum.java | 2 +- .../lisp/type}/LispMessage.java | 2 +- .../lisp/type}/LispMessageEnum.java | 2 +- .../lispflowmapping/lisp}/util/ByteUtil.java | 2 +- .../lisp}/util/LispAFIConvertor.java | 6 +- .../lisp}/util/LispAddressStringifier.java | 2 +- .../util/LispPrimitiveAddressStringifier.java | 4 +- .../lisp}/util/MapNotifyBuilderHelper.java | 2 +- .../lisp}/util/MapRequestUtil.java | 27 +- .../lisp}/util/MapServerMapResolverUtil.java | 2 +- .../lisp}/util/NumberUtil.java | 2 +- .../MapNotifySerializationTest.java | 9 +- .../MapRegisterSerializationTest.java | 11 +- .../serializer/MapReplySerializationTest.java | 5 +- .../MapRequestSerializationTest.java | 7 +- .../LispApplicationDataLCAFAddressTest.java | 13 +- ...istinguishedNameAddressSerializerTest.java | 11 +- .../address/LispIpv6AddressTest.java | 7 +- .../address/LispKeyValueLCAFAddressTest.java | 11 +- .../address/LispListLCAFAddressTest.java | 11 +- .../address/LispSegmentLCAFAddressTest.java | 11 +- .../LispSourceDestLCAFAddressTest.java | 11 +- ...LispTrafficEngineeringLCAFAddressTest.java | 11 +- 85 files changed, 952 insertions(+), 830 deletions(-) rename mappingservice/api/src/main/java/org/opendaylight/lispflowmapping/interfaces/dao/{IMappingServiceKey.java => IMappingKey.java} (94%) rename mappingservice/api/src/main/java/org/opendaylight/lispflowmapping/interfaces/dao/{MappingServiceRLOCGroup.java => RLOCGroup.java} (83%) rename mappingservice/api/src/main/java/org/opendaylight/lispflowmapping/interfaces/dao/{MappingServiceSubscriberRLOC.java => SubscriberRLOC.java} (88%) rename mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/dao/{MappingServiceKey.java => MappingKey.java} (85%) rename mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/dao/{MappingServiceKeyUtil.java => MappingKeyUtil.java} (56%) rename mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/dao/{MappingServiceNoMaskKey.java => MappingNoMaskKey.java} (82%) create mode 100644 mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/util/DAOSubKeys.java create mode 100644 mappingservice/southbound/src/main/java/org/opendaylight/lispflowmapping/southbound/util/LispNotificationHelper.java rename mappingservice/{implementation/src/main/java/org/opendaylight/lispflowmapping/implementation => yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp}/serializer/EidRecordSerializer.java (81%) rename mappingservice/{implementation/src/main/java/org/opendaylight/lispflowmapping/implementation => yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp}/serializer/EidToLocatorRecordSerializer.java (92%) rename mappingservice/{implementation/src/main/java/org/opendaylight/lispflowmapping/implementation => yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp}/serializer/LocatorRecordSerializer.java (88%) rename mappingservice/{implementation/src/main/java/org/opendaylight/lispflowmapping/implementation => yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp}/serializer/MapNotifySerializer.java (87%) rename mappingservice/{implementation/src/main/java/org/opendaylight/lispflowmapping/implementation => yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp}/serializer/MapRegisterSerializer.java (94%) rename mappingservice/{implementation/src/main/java/org/opendaylight/lispflowmapping/implementation => yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp}/serializer/MapReplySerializer.java (93%) rename mappingservice/{implementation/src/main/java/org/opendaylight/lispflowmapping/implementation => yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp}/serializer/MapRequestSerializer.java (94%) rename mappingservice/{implementation/src/main/java/org/opendaylight/lispflowmapping/implementation => yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp}/serializer/address/LispAddressSerializer.java (88%) rename mappingservice/{implementation/src/main/java/org/opendaylight/lispflowmapping/implementation => yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp}/serializer/address/LispApplicationDataLCAFAddressSerializer.java (91%) rename mappingservice/{implementation/src/main/java/org/opendaylight/lispflowmapping/implementation => yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp}/serializer/address/LispDistinguishedNameAddressSerializer.java (93%) rename mappingservice/{implementation/src/main/java/org/opendaylight/lispflowmapping/implementation => yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp}/serializer/address/LispIpv4AddressSerializer.java (93%) rename mappingservice/{implementation/src/main/java/org/opendaylight/lispflowmapping/implementation => yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp}/serializer/address/LispIpv6AddressSerializer.java (93%) rename mappingservice/{implementation/src/main/java/org/opendaylight/lispflowmapping/implementation => yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp}/serializer/address/LispKeyValueLCAFSerializer.java (91%) rename mappingservice/{implementation/src/main/java/org/opendaylight/lispflowmapping/implementation => yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp}/serializer/address/LispLCAFAddressSerializer.java (88%) rename mappingservice/{implementation/src/main/java/org/opendaylight/lispflowmapping/implementation => yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp}/serializer/address/LispListLCAFAddressSerializer.java (90%) rename mappingservice/{implementation/src/main/java/org/opendaylight/lispflowmapping/implementation => yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp}/serializer/address/LispMACAddressSerializer.java (96%) rename mappingservice/{implementation/src/main/java/org/opendaylight/lispflowmapping/implementation => yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp}/serializer/address/LispNoAddressSerializer.java (91%) rename mappingservice/{implementation/src/main/java/org/opendaylight/lispflowmapping/implementation => yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp}/serializer/address/LispSegmentLCAFAddressSerializer.java (87%) rename mappingservice/{implementation/src/main/java/org/opendaylight/lispflowmapping/implementation => yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp}/serializer/address/LispSourceDestLCAFAddressSerializer.java (91%) rename mappingservice/{implementation/src/main/java/org/opendaylight/lispflowmapping/implementation => yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp}/serializer/address/LispTrafficEngineeringLCAFAddressSerializer.java (92%) rename mappingservice/{implementation/src/main/java/org/opendaylight/lispflowmapping/implementation => yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp}/serializer/address/factory/LispAFIAddressSerializerFactory.java (63%) rename mappingservice/{implementation/src/main/java/org/opendaylight/lispflowmapping/implementation => yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp}/serializer/address/factory/LispLCAFAddressSerializerFactory.java (64%) rename mappingservice/{implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/lisp => yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp/serializer}/exception/LispSerializationException.java (89%) rename mappingservice/{api/src/main/java/org/opendaylight/lispflowmapping => yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp}/type/AddressFamilyNumberEnum.java (95%) rename mappingservice/{api/src/main/java/org/opendaylight/lispflowmapping => yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp}/type/LispCanonicalAddressFormatEnum.java (95%) rename mappingservice/{implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/serializer => yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp/type}/LispMessage.java (86%) rename mappingservice/{implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/serializer => yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp/type}/LispMessageEnum.java (93%) rename mappingservice/{implementation/src/main/java/org/opendaylight/lispflowmapping/implementation => yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp}/util/ByteUtil.java (97%) rename mappingservice/{implementation/src/main/java/org/opendaylight/lispflowmapping/implementation => yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp}/util/LispAFIConvertor.java (99%) rename mappingservice/{implementation/src/main/java/org/opendaylight/lispflowmapping/implementation => yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp}/util/LispAddressStringifier.java (99%) rename mappingservice/{implementation/src/main/java/org/opendaylight/lispflowmapping/implementation => yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp}/util/LispPrimitiveAddressStringifier.java (95%) rename mappingservice/{implementation/src/main/java/org/opendaylight/lispflowmapping/implementation => yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp}/util/MapNotifyBuilderHelper.java (96%) rename mappingservice/{implementation/src/main/java/org/opendaylight/lispflowmapping/implementation => yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp}/util/MapRequestUtil.java (59%) rename mappingservice/{implementation/src/main/java/org/opendaylight/lispflowmapping/implementation => yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp}/util/MapServerMapResolverUtil.java (98%) rename mappingservice/{implementation/src/main/java/org/opendaylight/lispflowmapping/implementation => yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp}/util/NumberUtil.java (93%) rename mappingservice/{implementation/src/test/java/org/opendaylight/lispflowmapping/implementation => yangmodel/src/test/java/org/opendaylight/lispflowmapping}/serializer/MapNotifySerializationTest.java (98%) rename mappingservice/{implementation/src/test/java/org/opendaylight/lispflowmapping/implementation => yangmodel/src/test/java/org/opendaylight/lispflowmapping}/serializer/MapRegisterSerializationTest.java (98%) rename mappingservice/{implementation/src/test/java/org/opendaylight/lispflowmapping/implementation => yangmodel/src/test/java/org/opendaylight/lispflowmapping}/serializer/MapReplySerializationTest.java (98%) rename mappingservice/{implementation/src/test/java/org/opendaylight/lispflowmapping/implementation => yangmodel/src/test/java/org/opendaylight/lispflowmapping}/serializer/MapRequestSerializationTest.java (98%) rename mappingservice/{implementation/src/test/java/org/opendaylight/lispflowmapping/implementation => yangmodel/src/test/java/org/opendaylight/lispflowmapping}/serializer/address/LispApplicationDataLCAFAddressTest.java (91%) rename mappingservice/{implementation/src/test/java/org/opendaylight/lispflowmapping/implementation => yangmodel/src/test/java/org/opendaylight/lispflowmapping}/serializer/address/LispDistinguishedNameAddressSerializerTest.java (90%) rename mappingservice/{implementation/src/test/java/org/opendaylight/lispflowmapping/implementation => yangmodel/src/test/java/org/opendaylight/lispflowmapping}/serializer/address/LispIpv6AddressTest.java (83%) rename mappingservice/{implementation/src/test/java/org/opendaylight/lispflowmapping/implementation => yangmodel/src/test/java/org/opendaylight/lispflowmapping}/serializer/address/LispKeyValueLCAFAddressTest.java (90%) rename mappingservice/{implementation/src/test/java/org/opendaylight/lispflowmapping/implementation => yangmodel/src/test/java/org/opendaylight/lispflowmapping}/serializer/address/LispListLCAFAddressTest.java (93%) rename mappingservice/{implementation/src/test/java/org/opendaylight/lispflowmapping/implementation => yangmodel/src/test/java/org/opendaylight/lispflowmapping}/serializer/address/LispSegmentLCAFAddressTest.java (90%) rename mappingservice/{implementation/src/test/java/org/opendaylight/lispflowmapping/implementation => yangmodel/src/test/java/org/opendaylight/lispflowmapping}/serializer/address/LispSourceDestLCAFAddressTest.java (91%) rename mappingservice/{implementation/src/test/java/org/opendaylight/lispflowmapping/implementation => yangmodel/src/test/java/org/opendaylight/lispflowmapping}/serializer/address/LispTrafficEngineeringLCAFAddressTest.java (93%) diff --git a/mappingservice/api/src/main/java/org/opendaylight/lispflowmapping/interfaces/dao/IMappingServiceKey.java b/mappingservice/api/src/main/java/org/opendaylight/lispflowmapping/interfaces/dao/IMappingKey.java similarity index 94% rename from mappingservice/api/src/main/java/org/opendaylight/lispflowmapping/interfaces/dao/IMappingServiceKey.java rename to mappingservice/api/src/main/java/org/opendaylight/lispflowmapping/interfaces/dao/IMappingKey.java index cc2b9e8d1..0ffeed90d 100644 --- a/mappingservice/api/src/main/java/org/opendaylight/lispflowmapping/interfaces/dao/IMappingServiceKey.java +++ b/mappingservice/api/src/main/java/org/opendaylight/lispflowmapping/interfaces/dao/IMappingKey.java @@ -13,7 +13,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314 /** * The mapping service key in the DAO. */ -public interface IMappingServiceKey { +public interface IMappingKey { /** * @return The eid of the key diff --git a/mappingservice/api/src/main/java/org/opendaylight/lispflowmapping/interfaces/dao/MappingServiceRLOCGroup.java b/mappingservice/api/src/main/java/org/opendaylight/lispflowmapping/interfaces/dao/RLOCGroup.java similarity index 83% rename from mappingservice/api/src/main/java/org/opendaylight/lispflowmapping/interfaces/dao/MappingServiceRLOCGroup.java rename to mappingservice/api/src/main/java/org/opendaylight/lispflowmapping/interfaces/dao/RLOCGroup.java index 438e867b8..5707339c5 100644 --- a/mappingservice/api/src/main/java/org/opendaylight/lispflowmapping/interfaces/dao/MappingServiceRLOCGroup.java +++ b/mappingservice/api/src/main/java/org/opendaylight/lispflowmapping/interfaces/dao/RLOCGroup.java @@ -17,7 +17,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314 /** * A RLOC in the mapping service with it's properties. */ -public class MappingServiceRLOCGroup { +public class RLOCGroup { private List records; private int ttl; @@ -25,11 +25,11 @@ public class MappingServiceRLOCGroup { private boolean authoritative; private Date registerdDate; - public MappingServiceRLOCGroup(int ttl, Action action, boolean authoritative) { + public RLOCGroup(int ttl, Action action, boolean authoritative) { this(ttl, action, authoritative, new Date(System.currentTimeMillis())); } - public MappingServiceRLOCGroup(int ttl, Action action, boolean authoritative, Date registerdDate) { + public RLOCGroup(int ttl, Action action, boolean authoritative, Date registerdDate) { super(); this.records = new ArrayList<>(); this.ttl = ttl; @@ -42,7 +42,7 @@ public class MappingServiceRLOCGroup { return records; } - public MappingServiceRLOCGroup addRecord(LocatorRecord record) { + public RLOCGroup addRecord(LocatorRecord record) { this.records.add(record); return this; } @@ -51,7 +51,7 @@ public class MappingServiceRLOCGroup { return ttl; } - public MappingServiceRLOCGroup setTtl(int ttl) { + public RLOCGroup setTtl(int ttl) { this.ttl = ttl; return this; } @@ -60,7 +60,7 @@ public class MappingServiceRLOCGroup { return action; } - public MappingServiceRLOCGroup setAction(Action action) { + public RLOCGroup setAction(Action action) { this.action = action; return this; } @@ -69,7 +69,7 @@ public class MappingServiceRLOCGroup { return authoritative; } - public MappingServiceRLOCGroup setAuthoritative(boolean authoritative) { + public RLOCGroup setAuthoritative(boolean authoritative) { this.authoritative = authoritative; return this; } @@ -78,7 +78,7 @@ public class MappingServiceRLOCGroup { return registerdDate; } - public MappingServiceRLOCGroup setRegisterdDate(Date registerdDate) { + public RLOCGroup setRegisterdDate(Date registerdDate) { this.registerdDate = registerdDate; return this; } @@ -103,7 +103,7 @@ public class MappingServiceRLOCGroup { return false; if (getClass() != obj.getClass()) return false; - MappingServiceRLOCGroup other = (MappingServiceRLOCGroup) obj; + RLOCGroup other = (RLOCGroup) obj; if (action != other.action) return false; if (authoritative != other.authoritative) diff --git a/mappingservice/api/src/main/java/org/opendaylight/lispflowmapping/interfaces/dao/MappingServiceSubscriberRLOC.java b/mappingservice/api/src/main/java/org/opendaylight/lispflowmapping/interfaces/dao/SubscriberRLOC.java similarity index 88% rename from mappingservice/api/src/main/java/org/opendaylight/lispflowmapping/interfaces/dao/MappingServiceSubscriberRLOC.java rename to mappingservice/api/src/main/java/org/opendaylight/lispflowmapping/interfaces/dao/SubscriberRLOC.java index 3923a99ef..70f18d23b 100644 --- a/mappingservice/api/src/main/java/org/opendaylight/lispflowmapping/interfaces/dao/MappingServiceSubscriberRLOC.java +++ b/mappingservice/api/src/main/java/org/opendaylight/lispflowmapping/interfaces/dao/SubscriberRLOC.java @@ -14,17 +14,17 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314 /** * Request source RLOC in the mapping service with it's properties. */ -public class MappingServiceSubscriberRLOC { +public class SubscriberRLOC { private LispAddressContainer rloc; private LispAddressContainer eid; private Date lastRequestDate; private static final long SUBSCRIBER_TIMEOUT = 600000; /* milliseconds */ - public MappingServiceSubscriberRLOC(LispAddressContainer srcRloc, LispAddressContainer srcEid) { + public SubscriberRLOC(LispAddressContainer srcRloc, LispAddressContainer srcEid) { this(srcRloc, srcEid, new Date(System.currentTimeMillis())); } - public MappingServiceSubscriberRLOC(LispAddressContainer srcRloc, LispAddressContainer srcEid, + public SubscriberRLOC(LispAddressContainer srcRloc, LispAddressContainer srcEid, Date lastRequestDate) { super(); this.rloc = srcRloc; @@ -77,7 +77,7 @@ public class MappingServiceSubscriberRLOC { return false; if (getClass() != obj.getClass()) return false; - MappingServiceSubscriberRLOC other = (MappingServiceSubscriberRLOC) obj; + SubscriberRLOC other = (SubscriberRLOC) obj; if (!rloc.equals(other.rloc)) return false; return true; diff --git a/mappingservice/clusterdao/src/main/java/org/opendaylight/lispflowmapping/clusterdao/ClusterDAOService.java b/mappingservice/clusterdao/src/main/java/org/opendaylight/lispflowmapping/clusterdao/ClusterDAOService.java index 2e4e5f20a..157b23f75 100644 --- a/mappingservice/clusterdao/src/main/java/org/opendaylight/lispflowmapping/clusterdao/ClusterDAOService.java +++ b/mappingservice/clusterdao/src/main/java/org/opendaylight/lispflowmapping/clusterdao/ClusterDAOService.java @@ -23,7 +23,7 @@ import org.opendaylight.controller.clustering.services.IClusterServices; import org.opendaylight.lispflowmapping.interfaces.dao.ILispDAO; import org.opendaylight.lispflowmapping.interfaces.dao.IRowVisitor; import org.opendaylight.lispflowmapping.interfaces.dao.MappingEntry; -import org.opendaylight.lispflowmapping.interfaces.dao.MappingServiceRLOCGroup; +import org.opendaylight.lispflowmapping.interfaces.dao.RLOCGroup; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -109,15 +109,15 @@ public class ClusterDAOService implements ILispDAO { public void cleanOld() { getAll(new IRowVisitor() { public void visitRow(Object keyId, String valueKey, Object value) { - if (value instanceof MappingServiceRLOCGroup) { - MappingServiceRLOCGroup rloc = (MappingServiceRLOCGroup) value; + if (value instanceof RLOCGroup) { + RLOCGroup rloc = (RLOCGroup) value; if (isExpired(rloc)) { removeSpecific(keyId, valueKey); } } } - private boolean isExpired(MappingServiceRLOCGroup rloc) { + private boolean isExpired(RLOCGroup rloc) { return System.currentTimeMillis() - rloc.getRegisterdDate().getTime() > TimeUnit.MILLISECONDS.convert(recordTimeOut, timeUnit); } }); diff --git a/mappingservice/implementation/pom.xml b/mappingservice/implementation/pom.xml index 8376d852a..e4d62c38b 100644 --- a/mappingservice/implementation/pom.xml +++ b/mappingservice/implementation/pom.xml @@ -35,23 +35,4 @@ org.eclipse.osgi - - - - - org.apache.felix - maven-bundle-plugin - true - - - - org.opendaylight.lispflowmapping.implementation, - org.opendaylight.lispflowmapping.implementation.serializer, - org.opendaylight.lispflowmapping.implementation.util - - - - - - diff --git a/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/LfmMappingDatabaseRpc.java b/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/LfmMappingDatabaseRpc.java index f10af6afe..e82006b75 100644 --- a/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/LfmMappingDatabaseRpc.java +++ b/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/LfmMappingDatabaseRpc.java @@ -11,8 +11,8 @@ import java.util.concurrent.Future; import org.opendaylight.controller.md.sal.binding.api.DataBroker; import org.opendaylight.lispflowmapping.implementation.mdsal.DataStoreBackEnd; -import org.opendaylight.lispflowmapping.implementation.util.MapServerMapResolverUtil; import org.opendaylight.lispflowmapping.implementation.util.RPCInputConvertorUtil; +import org.opendaylight.lispflowmapping.lisp.util.MapServerMapResolverUtil; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.MapReply; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.MapRequest; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.mapping.database.rev150314.AddKeyInput; diff --git a/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/LispMappingService.java b/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/LispMappingService.java index dc3c74fd4..be9e877ca 100644 --- a/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/LispMappingService.java +++ b/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/LispMappingService.java @@ -20,19 +20,16 @@ import org.opendaylight.controller.sal.binding.api.NotificationListener; import org.opendaylight.controller.sal.binding.api.NotificationService; import org.opendaylight.controller.sal.binding.api.RpcProviderRegistry; import org.opendaylight.lispflowmapping.implementation.config.ConfigIni; -import org.opendaylight.lispflowmapping.implementation.dao.MappingServiceKey; -import org.opendaylight.lispflowmapping.implementation.dao.MappingServiceNoMaskKey; -import org.opendaylight.lispflowmapping.implementation.lisp.AbstractLispComponent; +import org.opendaylight.lispflowmapping.implementation.dao.MappingKey; +import org.opendaylight.lispflowmapping.implementation.dao.MappingNoMaskKey; import org.opendaylight.lispflowmapping.implementation.lisp.MapResolver; import org.opendaylight.lispflowmapping.implementation.lisp.MapServer; import org.opendaylight.lispflowmapping.implementation.mdsal.AuthenticationKeyDataListener; import org.opendaylight.lispflowmapping.implementation.mdsal.DataStoreBackEnd; import org.opendaylight.lispflowmapping.implementation.mdsal.MappingDataListener; -import org.opendaylight.lispflowmapping.implementation.serializer.LispMessage; -import org.opendaylight.lispflowmapping.implementation.util.LispAFIConvertor; -import org.opendaylight.lispflowmapping.implementation.util.LispAddressStringifier; +import org.opendaylight.lispflowmapping.implementation.util.DAOSubKeys; import org.opendaylight.lispflowmapping.implementation.util.LispNotificationHelper; -import org.opendaylight.lispflowmapping.implementation.util.MapServerMapResolverUtil; +import org.opendaylight.lispflowmapping.lisp.type.LispMessage; import org.opendaylight.lispflowmapping.interfaces.dao.ILispDAO; import org.opendaylight.lispflowmapping.interfaces.dao.ILispTypeConverter; import org.opendaylight.lispflowmapping.interfaces.dao.IRowVisitor; @@ -42,6 +39,9 @@ import org.opendaylight.lispflowmapping.interfaces.lisp.IMapNotifyHandler; import org.opendaylight.lispflowmapping.interfaces.lisp.IMapRequestResultHandler; import org.opendaylight.lispflowmapping.interfaces.lisp.IMapResolverAsync; import org.opendaylight.lispflowmapping.interfaces.lisp.IMapServerAsync; +import org.opendaylight.lispflowmapping.lisp.util.LispAFIConvertor; +import org.opendaylight.lispflowmapping.lisp.util.LispAddressStringifier; +import org.opendaylight.lispflowmapping.lisp.util.MapServerMapResolverUtil; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.AddMapping; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.LfmControlPlaneService; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.MapNotify; @@ -141,10 +141,10 @@ public class LispMappingService implements IFlowMapping, IFlowMappingShell, Bind class LispIpv6AddressInMemoryConverter implements ILispTypeConverter { } - class MappingServiceKeyConvertor implements ILispTypeConverter { + class MappingServiceKeyConvertor implements ILispTypeConverter { } - class MappingServiceNoMaskKeyConvertor implements ILispTypeConverter { + class MappingServiceNoMaskKeyConvertor implements ILispTypeConverter { } public static LispMappingService getLispMappingService() { @@ -214,7 +214,7 @@ public class LispMappingService implements IFlowMapping, IFlowMappingShell, Bind if (!lastKey.equals(key)) { sb.append(key + "\t"); } - if (!(valueKey.equals(AbstractLispComponent.LCAF_SRCDST_SUBKEY))) { + if (!(valueKey.equals(DAOSubKeys.LCAF_SRCDST_SUBKEY.toString()))) { sb.append(valueKey + "=" + value + "\t"); } lastKey = key; @@ -228,7 +228,7 @@ public class LispMappingService implements IFlowMapping, IFlowMappingShell, Bind if (!lastKey.equals(key)) { sb.append("\n" + key + "\t"); } - if (valueKey.equals(AbstractLispComponent.LCAF_SRCDST_SUBKEY)) { + if (valueKey.equals(DAOSubKeys.LCAF_SRCDST_SUBKEY.toString())) { sb.append(valueKey + "= { "); ((ILispDAO)value).getAll(innerVisitor); sb.append("}\t"); diff --git a/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/authentication/LispMACAuthentication.java b/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/authentication/LispMACAuthentication.java index bf611f1e3..c79cbb516 100644 --- a/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/authentication/LispMACAuthentication.java +++ b/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/authentication/LispMACAuthentication.java @@ -15,8 +15,8 @@ import java.util.Arrays; import javax.crypto.Mac; import javax.crypto.spec.SecretKeySpec; -import org.opendaylight.lispflowmapping.implementation.serializer.MapNotifySerializer; -import org.opendaylight.lispflowmapping.implementation.serializer.MapRegisterSerializer; +import org.opendaylight.lispflowmapping.lisp.serializer.MapNotifySerializer; +import org.opendaylight.lispflowmapping.lisp.serializer.MapRegisterSerializer; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.MapNotify; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.MapRegister; import org.slf4j.Logger; diff --git a/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/dao/MappingServiceKey.java b/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/dao/MappingKey.java similarity index 85% rename from mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/dao/MappingServiceKey.java rename to mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/dao/MappingKey.java index 062aad7e1..3492c126c 100644 --- a/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/dao/MappingServiceKey.java +++ b/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/dao/MappingKey.java @@ -7,15 +7,15 @@ */ package org.opendaylight.lispflowmapping.implementation.dao; -import org.opendaylight.lispflowmapping.interfaces.dao.IMappingServiceKey; +import org.opendaylight.lispflowmapping.interfaces.dao.IMappingKey; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.lispaddress.LispAddressContainer; -public class MappingServiceKey implements IMappingServiceKey { +public class MappingKey implements IMappingKey { private LispAddressContainer EID; private int mask; - public MappingServiceKey(LispAddressContainer lispAddressContainer, int mask) { + public MappingKey(LispAddressContainer lispAddressContainer, int mask) { this.EID = lispAddressContainer; this.mask = mask; } @@ -45,7 +45,7 @@ public class MappingServiceKey implements IMappingServiceKey { return false; if (getClass() != obj.getClass()) return false; - MappingServiceKey other = (MappingServiceKey) obj; + MappingKey other = (MappingKey) obj; if (EID == null) { if (other.EID != null) return false; diff --git a/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/dao/MappingServiceKeyUtil.java b/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/dao/MappingKeyUtil.java similarity index 56% rename from mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/dao/MappingServiceKeyUtil.java rename to mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/dao/MappingKeyUtil.java index 5dc7a139b..ea635232c 100644 --- a/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/dao/MappingServiceKeyUtil.java +++ b/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/dao/MappingKeyUtil.java @@ -7,38 +7,38 @@ */ package org.opendaylight.lispflowmapping.implementation.dao; -import org.opendaylight.lispflowmapping.implementation.util.LispAFIConvertor; import org.opendaylight.lispflowmapping.implementation.util.MaskUtil; -import org.opendaylight.lispflowmapping.interfaces.dao.IMappingServiceKey; +import org.opendaylight.lispflowmapping.interfaces.dao.IMappingKey; +import org.opendaylight.lispflowmapping.lisp.util.LispAFIConvertor; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.LispAFIAddress; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.lispaddress.LispAddressContainer; -public class MappingServiceKeyUtil { +public class MappingKeyUtil { - public static IMappingServiceKey generateMappingServiceKey(LispAddressContainer lispAddressContainer, int mask) { + public static IMappingKey generateMappingKey(LispAddressContainer lispAddressContainer, int mask) { LispAFIAddress address = LispAFIConvertor.toAFI(lispAddressContainer); if (MaskUtil.isMaskable(address)) { LispAddressContainer normalizedAddress = LispAFIConvertor.toContainer(MaskUtil.normalize(address, mask)); - return new MappingServiceKey(normalizedAddress, mask); + return new MappingKey(normalizedAddress, mask); } else { - return new MappingServiceNoMaskKey(lispAddressContainer); + return new MappingNoMaskKey(lispAddressContainer); } } - public static IMappingServiceKey generateMappingServiceKey(LispAFIAddress address, int mask) { + public static IMappingKey generateMappingKey(LispAFIAddress address, int mask) { if (MaskUtil.isMaskable(address)) { LispAddressContainer normalizedAddress = LispAFIConvertor.toContainer(MaskUtil.normalize(address, mask)); - return new MappingServiceKey(normalizedAddress, mask); + return new MappingKey(normalizedAddress, mask); } else { - return new MappingServiceNoMaskKey(LispAFIConvertor.toContainer(address)); + return new MappingNoMaskKey(LispAFIConvertor.toContainer(address)); } } - public static IMappingServiceKey generateMappingServiceKey(LispAddressContainer lispAddressContainer) { + public static IMappingKey generateMappingKey(LispAddressContainer lispAddressContainer) { LispAFIAddress address = LispAFIConvertor.toAFI(lispAddressContainer); if (MaskUtil.isMaskable(address)) { - return generateMappingServiceKey(lispAddressContainer, MaskUtil.getMaxMask(address)); + return generateMappingKey(lispAddressContainer, MaskUtil.getMaxMask(address)); } else - return generateMappingServiceKey(lispAddressContainer, 0); + return generateMappingKey(lispAddressContainer, 0); } } diff --git a/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/dao/MappingServiceNoMaskKey.java b/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/dao/MappingNoMaskKey.java similarity index 82% rename from mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/dao/MappingServiceNoMaskKey.java rename to mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/dao/MappingNoMaskKey.java index 6e34d42f1..0b76d788f 100644 --- a/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/dao/MappingServiceNoMaskKey.java +++ b/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/dao/MappingNoMaskKey.java @@ -7,17 +7,17 @@ */ package org.opendaylight.lispflowmapping.implementation.dao; -import org.opendaylight.lispflowmapping.implementation.util.LispAFIConvertor; import org.opendaylight.lispflowmapping.implementation.util.MaskUtil; -import org.opendaylight.lispflowmapping.interfaces.dao.IMappingServiceKey; +import org.opendaylight.lispflowmapping.interfaces.dao.IMappingKey; +import org.opendaylight.lispflowmapping.lisp.util.LispAFIConvertor; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.LispAFIAddress; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.lispaddress.LispAddressContainer; -public class MappingServiceNoMaskKey implements IMappingServiceKey { +public class MappingNoMaskKey implements IMappingKey { private LispAddressContainer EID; - public MappingServiceNoMaskKey(LispAddressContainer lispAddressContainer) { + public MappingNoMaskKey(LispAddressContainer lispAddressContainer) { this.EID = lispAddressContainer; } @@ -50,7 +50,7 @@ public class MappingServiceNoMaskKey implements IMappingServiceKey { return false; if (getClass() != obj.getClass()) return false; - MappingServiceNoMaskKey other = (MappingServiceNoMaskKey) obj; + MappingNoMaskKey other = (MappingNoMaskKey) obj; if (EID == null) { if (other.EID != null) return false; diff --git a/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/lisp/AbstractLispComponent.java b/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/lisp/AbstractLispComponent.java index b07ea551e..fbee4c7b1 100644 --- a/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/lisp/AbstractLispComponent.java +++ b/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/lisp/AbstractLispComponent.java @@ -7,28 +7,12 @@ */ package org.opendaylight.lispflowmapping.implementation.lisp; -import java.util.Set; -import org.opendaylight.lispflowmapping.implementation.dao.MappingServiceKeyUtil; -import org.opendaylight.lispflowmapping.implementation.util.LispAFIConvertor; -import org.opendaylight.lispflowmapping.implementation.util.MaskUtil; -import org.opendaylight.lispflowmapping.inmemorydb.HashMapDb; import org.opendaylight.lispflowmapping.interfaces.dao.ILispDAO; -import org.opendaylight.lispflowmapping.interfaces.dao.IMappingServiceKey; -import org.opendaylight.lispflowmapping.interfaces.dao.MappingEntry; -import org.opendaylight.lispflowmapping.interfaces.dao.MappingServiceSubscriberRLOC; -import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.LispAFIAddress; -import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.lispaddress.LispAddressContainer; -import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.lispaddress.lispaddresscontainer.address.LcafSourceDest; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public abstract class AbstractLispComponent { - - public static final String PASSWORD_SUBKEY = "password"; - public static final String ADDRESS_SUBKEY = "address"; - public static final String SUBSCRIBERS_SUBKEY = "subscribers"; - public static final String LCAF_SRCDST_SUBKEY = "lcaf_srcdst"; public static final Logger LOG = LoggerFactory.getLogger(AbstractLispComponent.class); protected ILispDAO dao; @@ -56,100 +40,4 @@ public abstract class AbstractLispComponent { public void setShouldAuthenticate(boolean shouldAuthenticate) { this.authenticate = shouldAuthenticate; } - - protected String getPassword(LispAddressContainer prefix, int maskLength) { - if (MaskUtil.isMaskable(LispAFIConvertor.toAFI(prefix))) { - return getPasswordForMaskable(prefix, maskLength, dao); - } else if (prefix.getAddress() instanceof LcafSourceDest) { - ILispDAO srcDstDao = getSrcDstInnerDao(prefix, maskLength); - if (srcDstDao != null) { - return getPasswordForMaskable(LispAFIConvertor.toContainer(getSrcForLcafSrcDst(prefix)), - getSrcMaskForLcafSrcDst(prefix), srcDstDao); - } - return null; - } else { - IMappingServiceKey key = MappingServiceKeyUtil.generateMappingServiceKey(prefix, maskLength); - Object password = dao.getSpecific(key, PASSWORD_SUBKEY); - if (password != null && password instanceof String) { - return (String) password; - } else { - LOG.warn("Failed to find password!"); - return null; - } - } - } - - private String getPasswordForMaskable(LispAddressContainer prefix, int maskLength, ILispDAO db) { - while (maskLength >= 0) { - IMappingServiceKey key = MappingServiceKeyUtil.generateMappingServiceKey(prefix, maskLength); - Object password = db.getSpecific(key, PASSWORD_SUBKEY); - if (password != null && password instanceof String) { - return (String) password; - } else if (shouldIterateMask()) { - maskLength -= 1; - } else { - LOG.warn("Failed to find password!"); - return null; - } - } - return null; - } - - @SuppressWarnings("unchecked") - protected Set getSubscribers(LispAddressContainer prefix, int maskLength) { - Object subscribers; - if (prefix.getAddress() instanceof LcafSourceDest) { - IMappingServiceKey srcKey = MappingServiceKeyUtil.generateMappingServiceKey(getSrcForLcafSrcDst(prefix), - getSrcMaskForLcafSrcDst(prefix)); - ILispDAO srcDstDao = getSrcDstInnerDao(prefix, maskLength); - subscribers = srcDstDao.getSpecific(srcKey, SUBSCRIBERS_SUBKEY); - } else { - IMappingServiceKey key = MappingServiceKeyUtil.generateMappingServiceKey(prefix, maskLength); - subscribers = dao.getSpecific(key, SUBSCRIBERS_SUBKEY); - } - - if (subscribers != null && subscribers instanceof Set) { - return (Set) subscribers; - } - return null; - } - - protected static LispAFIAddress getSrcForLcafSrcDst(LispAddressContainer container) { - return LispAFIConvertor.toAFIfromPrimitive(((LcafSourceDest) container.getAddress()).getLcafSourceDestAddr(). - getSrcAddress().getPrimitiveAddress()); - } - - protected static LispAFIAddress getDstForLcafSrcDst(LispAddressContainer container) { - return LispAFIConvertor.toAFIfromPrimitive(((LcafSourceDest) container.getAddress()).getLcafSourceDestAddr(). - getDstAddress().getPrimitiveAddress()); - } - - protected static short getSrcMaskForLcafSrcDst(LispAddressContainer container) { - return ((LcafSourceDest) container.getAddress()).getLcafSourceDestAddr().getSrcMaskLength(); - } - - protected static short getDstMaskForLcafSrcDst(LispAddressContainer container) { - return ((LcafSourceDest) container.getAddress()).getLcafSourceDestAddr().getDstMaskLength(); - } - - // SrcDst LCAFs are stored in a 2-tier DAO with dst having priority over src. This method returns the DAO - // associated to a dst or creates it if it doesn't exist. - protected ILispDAO getOrInstantiateSrcDstInnerDao(LispAddressContainer address, int maskLen) { - IMappingServiceKey dstKey = MappingServiceKeyUtil.generateMappingServiceKey(getDstForLcafSrcDst(address), - getDstMaskForLcafSrcDst(address)); - ILispDAO srcDstDao = (ILispDAO) dao.getSpecific(dstKey, LCAF_SRCDST_SUBKEY); - if (srcDstDao == null) { - srcDstDao = new HashMapDb(); - dao.put(dstKey, new MappingEntry<>(LCAF_SRCDST_SUBKEY, srcDstDao)); - } - return srcDstDao; - } - - // SrcDst LCAFs are stored in a 2-tier DAO with dst having priority over src. This method returns the DAO - // associated to a dst or null if it doesn't exist. - protected ILispDAO getSrcDstInnerDao(LispAddressContainer address, int maskLen) { - IMappingServiceKey dstKey = MappingServiceKeyUtil.generateMappingServiceKey(getDstForLcafSrcDst(address), - getDstMaskForLcafSrcDst(address)); - return (ILispDAO) dao.getSpecific(dstKey, LCAF_SRCDST_SUBKEY); - } } diff --git a/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/lisp/MapResolver.java b/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/lisp/MapResolver.java index 2a214c4a1..6b41e8047 100644 --- a/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/lisp/MapResolver.java +++ b/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/lisp/MapResolver.java @@ -15,16 +15,14 @@ import java.util.Set; import org.apache.commons.lang3.exception.ExceptionUtils; import org.opendaylight.lispflowmapping.implementation.config.ConfigIni; -import org.opendaylight.lispflowmapping.implementation.dao.MappingServiceKeyUtil; import org.opendaylight.lispflowmapping.implementation.util.DAOMappingUtil; -import org.opendaylight.lispflowmapping.implementation.util.LispAFIConvertor; import org.opendaylight.lispflowmapping.interfaces.dao.ILispDAO; -import org.opendaylight.lispflowmapping.interfaces.dao.IMappingServiceKey; -import org.opendaylight.lispflowmapping.interfaces.dao.MappingEntry; -import org.opendaylight.lispflowmapping.interfaces.dao.MappingServiceRLOCGroup; -import org.opendaylight.lispflowmapping.interfaces.dao.MappingServiceSubscriberRLOC; +import org.opendaylight.lispflowmapping.interfaces.dao.IMappingKey; +import org.opendaylight.lispflowmapping.interfaces.dao.RLOCGroup; +import org.opendaylight.lispflowmapping.interfaces.dao.SubscriberRLOC; import org.opendaylight.lispflowmapping.interfaces.lisp.IMapRequestResultHandler; import org.opendaylight.lispflowmapping.interfaces.lisp.IMapResolverAsync; +import org.opendaylight.lispflowmapping.lisp.util.LispAFIConvertor; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.EidToLocatorRecord.Action; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.LcafTrafficEngineeringAddress; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.LispAFIAddress; @@ -43,6 +41,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314 import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import com.google.common.base.Preconditions; import com.google.common.collect.Sets; public class MapResolver extends AbstractLispComponent implements IMapResolverAsync { @@ -63,10 +62,7 @@ public class MapResolver extends AbstractLispComponent implements IMapResolverAs } public void handleMapRequest(MapRequest request, boolean smr, IMapRequestResultHandler callback) { - if (dao == null) { - LOG.warn("handleMapRequest called while dao is uninitialized"); - return; - } + Preconditions.checkNotNull(dao); LispAddressContainer srcEid = null; LispAFIAddress srcEidAfi = null; @@ -82,7 +78,7 @@ public class MapResolver extends AbstractLispComponent implements IMapResolverAs builder.setEidToLocatorRecord(new ArrayList()); for (EidRecord eid : request.getEidRecord()) { EidToLocatorRecordBuilder recordBuilder = new EidToLocatorRecordBuilder(); - Entry> mapping = + Entry> mapping = DAOMappingUtil.getMapping(srcEidAfi, eid, dao); recordBuilder.setRecordTtl(0); recordBuilder.setAction(Action.NoAction); @@ -91,35 +87,34 @@ public class MapResolver extends AbstractLispComponent implements IMapResolverAs recordBuilder.setMaskLength((short) mapping.getKey().getMask()); recordBuilder.setLispAddressContainer(mapping.getKey().getEID()); recordBuilder.setLocatorRecord(new ArrayList()); - List locators = mapping.getValue(); + List locators = mapping.getValue(); if (locators != null && locators.size() > 0) { List itrRlocs = request.getItrRloc(); addLocatorGroups(recordBuilder, locators, itrRlocs); - if (srcEid != null && !(srcEid.getAddress() instanceof No) && itrRlocs != null && itrRlocs.size() > 0) { + if (srcEid != null && !(srcEid.getAddress() instanceof No) && itrRlocs != null + && itrRlocs.size() > 0) { LispAddressContainer itrRloc = itrRlocs.get(0).getLispAddressContainer(); - MappingServiceSubscriberRLOC subscriberRloc = new MappingServiceSubscriberRLOC(itrRloc, srcEid); - Set subscribers = getSubscribers(mapping.getKey().getEID(), mapping.getKey().getMask()); + SubscriberRLOC subscriberRloc = new SubscriberRLOC(itrRloc, srcEid); + Set subscribers = DAOMappingUtil.getSubscribers(mapping.getKey().getEID(), + mapping.getKey().getMask(), dao); if (subscribers == null) { subscribers = Sets.newConcurrentHashSet(); } else if (subscribers.contains(subscriberRloc)) { - /* - * If there is an entry already for this - * subscriberRloc, remove it, so that it gets the - * new timestamp - */ + // If there is an entry already for this subscriberRloc, remove it, so that it gets the new + // timestamp subscribers.remove(subscriberRloc); } if (smr) { - IMappingServiceKey key = MappingServiceKeyUtil.generateMappingServiceKey(mapping.getKey().getEID(), - mapping.getKey().getMask()); LOG.trace("Adding new subscriber: " + subscriberRloc.toString()); subscribers.add(subscriberRloc); - dao.put(key, new MappingEntry>(SUBSCRIBERS_SUBKEY, subscribers)); + DAOMappingUtil.addSubscribers(mapping.getKey().getEID(), mapping.getKey().getMask(), + subscribers, dao); } } } else { recordBuilder.setAction(Action.NativelyForward); - if (shouldAuthenticate() && getPassword(eid.getLispAddressContainer(), eid.getMask()) != null) { + if (shouldAuthenticate() && DAOMappingUtil.getPassword(eid.getLispAddressContainer(), eid.getMask(), + dao, shouldIterateMask()) != null) { recordBuilder.setRecordTtl(TTL_RLOC_TIMED_OUT); } else { recordBuilder.setRecordTtl(TTL_NO_RLOC_KNOWN); @@ -128,22 +123,20 @@ public class MapResolver extends AbstractLispComponent implements IMapResolverAs } builder.getEidToLocatorRecord().add(recordBuilder.build()); } - callback.handleMapReply(builder.build()); - } - private void addLocatorGroups(EidToLocatorRecordBuilder recordBuilder, List rlocs, List itrRlocs) { - for (MappingServiceRLOCGroup rloc : rlocs) { + private void addLocatorGroups(EidToLocatorRecordBuilder recordBuilder, List rlocs, + List itrRlocs) { + for (RLOCGroup rloc : rlocs) { addLocators(recordBuilder, rloc, itrRlocs); recordBuilder.setRecordTtl(rloc.getTtl()); } } - private void addLocators(EidToLocatorRecordBuilder recordBuilder, MappingServiceRLOCGroup locatorObject, List itrRlocs) { - if (locatorObject == null) { - return; - } + private void addLocators(EidToLocatorRecordBuilder recordBuilder, RLOCGroup locatorObject, + List itrRlocs) { + Preconditions.checkNotNull(locatorObject); recordBuilder.setAction(locatorObject.getAction()); recordBuilder.setAuthoritative(locatorObject.isAuthoritative()); @@ -153,26 +146,33 @@ public class MapResolver extends AbstractLispComponent implements IMapResolverAs for (LocatorRecord record : locatorObject.getRecords()) { LispAddressContainer container = record.getLispAddressContainer(); - // For non-ELP RLOCs, or when ELP policy is default, or itrRlocs is null, just add the locator and be done - if ((!(container.getAddress() instanceof LcafTrafficEngineering)) || elpPolicy.equalsIgnoreCase("default") || itrRlocs == null) { + // For non-ELP RLOCs, or when ELP policy is default, or itrRlocs is null, just add the locator and be + // done + if ((!(container.getAddress() instanceof LcafTrafficEngineering)) + || elpPolicy.equalsIgnoreCase("default") || itrRlocs == null) { recordBuilder.getLocatorRecord().add( - new LocatorRecordBuilder().setLocalLocator(record.isLocalLocator()).setRlocProbed(record.isRlocProbed()) - .setWeight(record.getWeight()).setPriority(record.getPriority()).setMulticastWeight(record.getMulticastWeight()) + new LocatorRecordBuilder().setLocalLocator(record.isLocalLocator()) + .setRlocProbed(record.isRlocProbed()).setWeight(record.getWeight()) + .setPriority(record.getPriority()).setMulticastWeight(record.getMulticastWeight()) .setMulticastPriority(record.getMulticastPriority()).setRouted(record.isRouted()) .setLispAddressContainer(container).setName(record.getName()).build()); continue; } - LcafTrafficEngineeringAddress teAddress = ((LcafTrafficEngineering) container.getAddress()).getLcafTrafficEngineeringAddr(); + LcafTrafficEngineeringAddress teAddress = ((LcafTrafficEngineering) container.getAddress()) + .getLcafTrafficEngineeringAddr(); LispAddressContainer nextHop = getNextELPHop(teAddress, itrRlocs); if (nextHop != null) { java.lang.Short priority = record.getPriority(); if (elpPolicy.equalsIgnoreCase("both")) { recordBuilder.getLocatorRecord().add( - new LocatorRecordBuilder().setLocalLocator(record.isLocalLocator()).setRlocProbed(record.isRlocProbed()) - .setWeight(record.getWeight()).setPriority(record.getPriority()).setMulticastWeight(record.getMulticastWeight()) - .setMulticastPriority(record.getMulticastPriority()).setRouted(record.isRouted()) - .setLispAddressContainer(container).setName(record.getName()).build()); + new LocatorRecordBuilder().setLocalLocator(record.isLocalLocator()) + .setRlocProbed(record.isRlocProbed()).setWeight(record.getWeight()) + .setPriority(record.getPriority()) + .setMulticastWeight(record.getMulticastWeight()) + .setMulticastPriority(record.getMulticastPriority()) + .setRouted(record.isRouted()).setLispAddressContainer(container) + .setName(record.getName()).build()); // Make the priority of the added simple locator lower so that ELP is used by default if // the xTR understands ELP. Exclude 255, since that means don't use for unicast forwarding // XXX Complex cases like several ELPs with different priorities are not handled @@ -182,10 +182,11 @@ public class MapResolver extends AbstractLispComponent implements IMapResolverAs } // Build and add the simple RLOC recordBuilder.getLocatorRecord().add( - new LocatorRecordBuilder().setLocalLocator(record.isLocalLocator()).setRlocProbed(record.isRlocProbed()) - .setWeight(record.getWeight()).setPriority(priority).setMulticastWeight(record.getMulticastWeight()) - .setMulticastPriority(record.getMulticastPriority()).setRouted(record.isRouted()) - .setLispAddressContainer(nextHop).setName(record.getName()).build()); + new LocatorRecordBuilder().setLocalLocator(record.isLocalLocator()) + .setRlocProbed(record.isRlocProbed()).setWeight(record.getWeight()) + .setPriority(priority).setMulticastWeight(record.getMulticastWeight()) + .setMulticastPriority(record.getMulticastPriority()).setRouted(record.isRouted()) + .setLispAddressContainer(nextHop).setName(record.getName()).build()); } } } catch (ClassCastException cce) { @@ -199,14 +200,17 @@ public class MapResolver extends AbstractLispComponent implements IMapResolverAs if (hops != null && hops.size() > 0) { // By default we return the first hop - nextHop = LispAFIConvertor.toContainer(LispAFIConvertor.toAFIfromPrimitive(hops.get(0).getHop().getPrimitiveAddress())); + nextHop = LispAFIConvertor.toContainer(LispAFIConvertor.toAFIfromPrimitive(hops.get(0).getHop() + .getPrimitiveAddress())); for (Hops hop : hops) { - LispAddressContainer hopContainer = LispAFIConvertor.toContainer(LispAFIConvertor.toAFIfromPrimitive(hop.getHop().getPrimitiveAddress())); + LispAddressContainer hopContainer = LispAFIConvertor.toContainer(LispAFIConvertor + .toAFIfromPrimitive(hop.getHop().getPrimitiveAddress())); for (ItrRloc itrRloc : itrRlocs) { if (itrRloc.getLispAddressContainer().equals(hopContainer)) { int i = hops.indexOf(hop); if (i < hops.size() - 1) { - nextHop = LispAFIConvertor.toContainer(LispAFIConvertor.toAFIfromPrimitive(hops.get(i+1).getHop().getPrimitiveAddress())); + nextHop = LispAFIConvertor.toContainer(LispAFIConvertor.toAFIfromPrimitive(hops.get(i + 1) + .getHop().getPrimitiveAddress())); return nextHop; } } @@ -217,4 +221,4 @@ public class MapResolver extends AbstractLispComponent implements IMapResolverAs return nextHop; } -} +} \ No newline at end of file diff --git a/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/lisp/MapServer.java b/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/lisp/MapServer.java index 3bdbe904b..45275b545 100644 --- a/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/lisp/MapServer.java +++ b/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/lisp/MapServer.java @@ -13,45 +13,29 @@ import java.net.NetworkInterface; import java.net.SocketException; import java.util.ArrayList; import java.util.Enumeration; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Random; -import java.util.Map.Entry; import java.util.Set; import org.apache.commons.lang3.BooleanUtils; import org.apache.commons.lang3.exception.ExceptionUtils; import org.opendaylight.lispflowmapping.implementation.authentication.LispAuthenticationUtil; import org.opendaylight.lispflowmapping.implementation.config.ConfigIni; -import org.opendaylight.lispflowmapping.implementation.dao.MappingServiceKeyUtil; import org.opendaylight.lispflowmapping.implementation.util.DAOMappingUtil; -import org.opendaylight.lispflowmapping.implementation.util.LispAFIConvertor; -import org.opendaylight.lispflowmapping.implementation.util.MapNotifyBuilderHelper; -import org.opendaylight.lispflowmapping.inmemorydb.HashMapDb; import org.opendaylight.lispflowmapping.implementation.util.MaskUtil; import org.opendaylight.lispflowmapping.interfaces.dao.ILispDAO; -import org.opendaylight.lispflowmapping.interfaces.dao.IMappingServiceKey; -import org.opendaylight.lispflowmapping.interfaces.dao.MappingEntry; -import org.opendaylight.lispflowmapping.interfaces.dao.MappingServiceRLOCGroup; -import org.opendaylight.lispflowmapping.interfaces.dao.MappingServiceSubscriberRLOC; +import org.opendaylight.lispflowmapping.interfaces.dao.SubscriberRLOC; import org.opendaylight.lispflowmapping.interfaces.lisp.IMapNotifyHandler; import org.opendaylight.lispflowmapping.interfaces.lisp.IMapServerAsync; -import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.LispAFIAddress; +import org.opendaylight.lispflowmapping.lisp.util.LispAFIConvertor; +import org.opendaylight.lispflowmapping.lisp.util.MapNotifyBuilderHelper; +import org.opendaylight.lispflowmapping.lisp.util.MapRequestUtil; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.MapRegister; +import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.eidrecords.EidRecord; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.eidrecords.EidRecordBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.eidtolocatorrecords.EidToLocatorRecord; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.eidtolocatorrecords.EidToLocatorRecordBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.lispaddress.LispAddressContainer; -import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.lispaddress.lispaddresscontainer.Address; -import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.lispaddress.lispaddresscontainer.address.LcafKeyValue; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.lispaddress.lispaddresscontainer.address.LcafSourceDest; -import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.lispsimpleaddress.primitiveaddress.DistinguishedName; -import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.locatorrecords.LocatorRecord; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.mapnotifymessage.MapNotifyBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.maprequest.ItrRloc; -import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.maprequest.ItrRlocBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.maprequest.SourceEidBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.maprequestnotification.MapRequestBuilder; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -104,24 +88,6 @@ public class MapServer extends AbstractLispComponent implements IMapServerAsync return null; } - private static MapRequestBuilder buildSMR(LispAddressContainer srcEid) { - MapRequestBuilder builder = new MapRequestBuilder(); - builder.setAuthoritative(false); - builder.setMapDataPresent(false); - builder.setPitr(false); - builder.setProbe(false); - builder.setSmr(true); - builder.setSmrInvoked(false); - - builder.setSourceEid(new SourceEidBuilder().setLispAddressContainer(srcEid).build()); - builder.setItrRloc(new ArrayList()); - builder.getItrRloc().add(new ItrRlocBuilder().setLispAddressContainer(LispAFIConvertor.toContainer(getLocalAddress())).build()); - builder.setMapReply(null); - builder.setNonce(new Random().nextLong()); - - return builder; - } - public void handleMapRegister(MapRegister mapRegister, boolean smr, IMapNotifyHandler callback) { if (dao == null) { LOG.warn("handleMapRegister called while dao is uninitialized"); @@ -130,16 +96,20 @@ public class MapServer extends AbstractLispComponent implements IMapServerAsync String password = null; for (EidToLocatorRecord eidRecord : mapRegister.getEidToLocatorRecord()) { if (shouldAuthenticate()) { - password = getPassword(eidRecord.getLispAddressContainer(), eidRecord.getMaskLength()); + password = DAOMappingUtil.getPassword(eidRecord.getLispAddressContainer(), + eidRecord.getMaskLength(), dao, shouldIterateMask()); if (!LispAuthenticationUtil.validate(mapRegister, password)) { LOG.warn("Authentication failed"); failed = true; break; } } - boolean mappingChanged = saveRlocs(eidRecord, smr); + boolean mappingChanged = DAOMappingUtil.saveRlocs(eidRecord, smr, dao, shouldIterateMask(), + shouldOverwrite()); if (smr && mappingChanged) { - sendSmrs(eidRecord, callback); + Set subscribers = DAOMappingUtil.getSubscribers( + eidRecord.getLispAddressContainer(), eidRecord.getMaskLength(), dao); + sendSmrs(eidRecord, subscribers, callback); } } if (!failed) { @@ -148,7 +118,8 @@ public class MapServer extends AbstractLispComponent implements IMapServerAsync LOG.trace("MapRegister wants MapNotify"); MapNotifyBuilderHelper.setFromMapRegister(builder, mapRegister); if (shouldAuthenticate()) { - builder.setAuthenticationData(LispAuthenticationUtil.createAuthenticationData(builder.build(), password)); + builder.setAuthenticationData(LispAuthenticationUtil.createAuthenticationData(builder.build(), + password)); } callback.handleMapNotify(builder.build()); } @@ -156,154 +127,37 @@ public class MapServer extends AbstractLispComponent implements IMapServerAsync } } - public boolean saveRlocs(EidToLocatorRecord eidRecord, boolean checkForChanges) { - Map rlocGroups = new HashMap(); - if (eidRecord.getLocatorRecord() != null) { - for (LocatorRecord locatorRecord : eidRecord.getLocatorRecord()) { - String subkey = getAddressKey(locatorRecord.getLispAddressContainer().getAddress()); - if (!rlocGroups.containsKey(subkey)) { - rlocGroups.put(subkey, new MappingServiceRLOCGroup(eidRecord.getRecordTtl(), eidRecord.getAction(), eidRecord.isAuthoritative())); - } - rlocGroups.get(subkey).addRecord(locatorRecord); - } - } else { - rlocGroups.put(ADDRESS_SUBKEY, new MappingServiceRLOCGroup(eidRecord.getRecordTtl(), eidRecord.getAction(), eidRecord.isAuthoritative())); - } - List> entries = new ArrayList<>(); - for (String subkey : rlocGroups.keySet()) { - entries.add(new MappingEntry<>(subkey, rlocGroups.get(subkey))); - } - - if (eidRecord.getLispAddressContainer().getAddress() instanceof LcafSourceDest) { - Entry> oldMapping= null, newMapping = null; - LispAFIAddress srcAddr = getSrcForLcafSrcDst(eidRecord.getLispAddressContainer()); - LispAFIAddress dstAddr = getDstForLcafSrcDst(eidRecord.getLispAddressContainer()); - short srcMask = getSrcMaskForLcafSrcDst(eidRecord.getLispAddressContainer()); - short dstMask = getDstMaskForLcafSrcDst(eidRecord.getLispAddressContainer()); - - if (checkForChanges) { - oldMapping = DAOMappingUtil.getMappingExact(srcAddr, dstAddr, srcMask, dstMask, dao); - } - IMappingServiceKey dstKey = MappingServiceKeyUtil.generateMappingServiceKey(dstAddr, dstMask); - ILispDAO srcDstDao = (ILispDAO) dao.getSpecific(dstKey, LCAF_SRCDST_SUBKEY); - if (srcDstDao == null) { - srcDstDao = new HashMapDb(); - dao.put(dstKey, new MappingEntry<>(LCAF_SRCDST_SUBKEY, srcDstDao)); - } - IMappingServiceKey srcKey = MappingServiceKeyUtil.generateMappingServiceKey(srcAddr, srcMask); - srcDstDao.put(srcKey, entries.toArray(new MappingEntry[entries.size()])); - if (checkForChanges) { - newMapping = DAOMappingUtil.getMappingExact(srcAddr, dstAddr, srcMask, dstMask, dao); - return (newMapping.getValue() == null) ? oldMapping.getValue() != null : - !newMapping.getValue().equals(oldMapping.getValue()); - } - } else { - List oldLocators = null, newLocators = null; - if (checkForChanges) { - oldLocators = DAOMappingUtil.getLocatorsByEidToLocatorRecord(eidRecord, dao, shouldIterateMask()); - } - IMappingServiceKey key = MappingServiceKeyUtil.generateMappingServiceKey(eidRecord.getLispAddressContainer(), - eidRecord.getMaskLength()); - dao.put(key, entries.toArray(new MappingEntry[entries.size()])); - if (checkForChanges) { - newLocators = DAOMappingUtil.getLocatorsByEidToLocatorRecord(eidRecord, dao, shouldIterateMask()); - return (newLocators == null) ? oldLocators != null : !newLocators.equals(oldLocators); - } - } - return false; - } - - private String getAddressKey(Address address) { - if (address instanceof LcafKeyValue) { - LcafKeyValue keyVal = (LcafKeyValue) address; - if (keyVal.getLcafKeyValueAddressAddr().getKey().getPrimitiveAddress() instanceof DistinguishedName) { - return ((DistinguishedName) keyVal.getLcafKeyValueAddressAddr().getKey().getPrimitiveAddress()).getDistinguishedNameAddress().getDistinguishedName(); - } - } - if (shouldOverwrite()) { - return ADDRESS_SUBKEY; - } else { - return String.valueOf(address.hashCode()); - } - } - public String getAuthenticationKey(LispAddressContainer address, int maskLen) { - return getPassword(address, maskLen); + return DAOMappingUtil.getPassword(address, maskLen, dao, shouldIterateMask()); } public void removeAuthenticationKey(LispAddressContainer address, int maskLen) { - if (address.getAddress() instanceof LcafSourceDest) { - ILispDAO srcDstDao = getSrcDstInnerDao(address, maskLen); - if (srcDstDao != null) { - IMappingServiceKey srcKey = MappingServiceKeyUtil.generateMappingServiceKey(getSrcForLcafSrcDst(address), - getSrcMaskForLcafSrcDst(address)); - srcDstDao.removeSpecific(srcKey, PASSWORD_SUBKEY); - } - } else { - IMappingServiceKey key = MappingServiceKeyUtil.generateMappingServiceKey(address, maskLen); - dao.removeSpecific(key, PASSWORD_SUBKEY); - } - } - - public void addAuthenticationKey(LispAddressContainer address, int maskLen, String key) { - IMappingServiceKey mappingServiceKey = MappingServiceKeyUtil.generateMappingServiceKey(address, maskLen); - if (address.getAddress() instanceof LcafSourceDest) { - IMappingServiceKey srcKey = MappingServiceKeyUtil.generateMappingServiceKey(getSrcForLcafSrcDst(address), - getSrcMaskForLcafSrcDst(address)); - ILispDAO srcDstDao = getOrInstantiateSrcDstInnerDao(address, maskLen); - srcDstDao.put(srcKey, new MappingEntry(PASSWORD_SUBKEY, key)); - } else { - dao.put(mappingServiceKey, new MappingEntry(PASSWORD_SUBKEY, key)); - } + DAOMappingUtil.removeAuthenticationKey(address, maskLen, dao); } public void removeMapping(LispAddressContainer address, int maskLen, boolean smr, IMapNotifyHandler callback) { - Entry> mapping; - ILispDAO db; - if (address.getAddress() instanceof LcafSourceDest) { - db = getSrcDstInnerDao(address, maskLen); - LispAFIAddress srcAddr = getSrcForLcafSrcDst(address); - short srcMask = getSrcMaskForLcafSrcDst(address); - mapping = DAOMappingUtil.getMappingForEid(srcAddr, srcMask, db); - } else { - db = dao; - mapping = DAOMappingUtil.getMappingForEid(LispAFIConvertor.toAFI(address), maskLen, db); - } if (smr) { // mapping is removed before first SMR is sent to avoid inconsistent replies - removeMappingRlocs(mapping, db); + DAOMappingUtil.removeMapping(address, maskLen, dao, shouldOverwrite()); + Set subscribers = DAOMappingUtil.getSubscribers(address, maskLen, dao); sendSmrs(new EidToLocatorRecordBuilder().setLispAddressContainer(address). - setMaskLength((short) maskLen).build(), callback); - db.removeSpecific(mapping.getKey(), SUBSCRIBERS_SUBKEY); + setMaskLength((short) maskLen).build(), subscribers, callback); + DAOMappingUtil.removeSubscribers(address, maskLen, dao, shouldOverwrite()); } else { - removeMappingRlocs(mapping, db); - db.removeSpecific(mapping.getKey(), SUBSCRIBERS_SUBKEY); + DAOMappingUtil.removeMapping(address, maskLen, dao, shouldOverwrite()); + DAOMappingUtil.removeSubscribers(address, maskLen, dao, shouldOverwrite()); } } - private void removeMappingRlocs(Entry> mapping, ILispDAO db) { - if (mapping == null || mapping.getValue() == null) { - return; - } - for (MappingServiceRLOCGroup group : mapping.getValue()) { - for (LocatorRecord record : group.getRecords()) { - db.removeSpecific(mapping.getKey(), getAddressKey(record.getLispAddressContainer().getAddress())); - } - } - } - - private void sendSmrs(EidToLocatorRecord record, IMapNotifyHandler callback) { + private void sendSmrs(EidToLocatorRecord record, Set subscribers, IMapNotifyHandler callback) { LispAddressContainer eid = record.getLispAddressContainer(); - Set subscribers; - - subscribers = getSubscribers(eid, record.getMaskLength()); handleSmr(record, subscribers, callback); // For SrcDst LCAF also send SMRs to Dst prefix if (eid.getAddress() instanceof LcafSourceDest) { - LispAddressContainer dstAddr = LispAFIConvertor.toContainer(getDstForLcafSrcDst(eid)); - short dstMask = getDstMaskForLcafSrcDst(eid); - subscribers = getSubscribers(dstAddr, dstMask); + LispAddressContainer dstAddr = LispAFIConvertor.toContainer(DAOMappingUtil.getDstForLcafSrcDst(eid)); + short dstMask = DAOMappingUtil.getDstMaskForLcafSrcDst(eid); + subscribers = DAOMappingUtil.getSubscribers(dstAddr, dstMask, dao); EidToLocatorRecord newRecord = new EidToLocatorRecordBuilder().setAction(record.getAction()). setAuthoritative(record.isAuthoritative()).setLocatorRecord(record.getLocatorRecord()). setMapVersion(record.getMapVersion()).setRecordTtl(record.getRecordTtl()). @@ -312,22 +166,22 @@ public class MapServer extends AbstractLispComponent implements IMapServerAsync } } - private void handleSmr(EidToLocatorRecord record, Set subscribers, - IMapNotifyHandler callback) { + private void handleSmr(EidToLocatorRecord record, Set subscribers, IMapNotifyHandler callback) { if (subscribers == null) { return; } - MapRequestBuilder mrb = buildSMR(record.getLispAddressContainer()); + MapRequestBuilder mrb = MapRequestUtil.prepareSMR(record.getLispAddressContainer(), + LispAFIConvertor.toContainer(getLocalAddress())); LOG.trace("Built SMR packet: " + mrb.build().toString()); - for (MappingServiceSubscriberRLOC subscriber : subscribers) { + for (SubscriberRLOC subscriber : subscribers) { if (subscriber.timedOut()) { LOG.trace("Lazy removing expired subscriber entry " + subscriber.toString()); subscribers.remove(subscriber); } else { try { - // The address stored in the SMR's EID record is used as Source EID in the SMR-invoked Map-Request. To - // ensure consistent behavior it is set to the value used to originally request a given mapping - mrb.setEidRecord(new ArrayList()); + // The address stored in the SMR's EID record is used as Source EID in the SMR-invoked Map-Request. + // To ensure consistent behavior it is set to the value used to originally request a given mapping + mrb.setEidRecord(new ArrayList()); mrb.getEidRecord().add(new EidRecordBuilder() .setMask((short)MaskUtil.getMaxMask(LispAFIConvertor.toAFI(subscriber.getSrcEid()))) .setLispAddressContainer(subscriber.getSrcEid()).build()); @@ -337,9 +191,7 @@ public class MapServer extends AbstractLispComponent implements IMapServerAsync } } } - IMappingServiceKey key = MappingServiceKeyUtil.generateMappingServiceKey(record.getLispAddressContainer(), - record.getMaskLength()); - dao.put(key, new MappingEntry>(SUBSCRIBERS_SUBKEY, subscribers)); + DAOMappingUtil.addSubscribers(record.getLispAddressContainer(), record.getMaskLength(), subscribers, dao); } public boolean shouldOverwrite() { @@ -350,4 +202,9 @@ public class MapServer extends AbstractLispComponent implements IMapServerAsync this.overwrite = overwrite; } + @Override + public void addAuthenticationKey(LispAddressContainer address, int maskLen, String key) { + DAOMappingUtil.addAuthenticationKey(address, maskLen, key, dao); + } + } diff --git a/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/mdsal/DataStoreBackEnd.java b/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/mdsal/DataStoreBackEnd.java index ef05bf01f..7a72da377 100644 --- a/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/mdsal/DataStoreBackEnd.java +++ b/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/mdsal/DataStoreBackEnd.java @@ -17,7 +17,7 @@ import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType; import org.opendaylight.controller.md.sal.common.api.data.ReadFailedException; import org.opendaylight.controller.md.sal.common.api.data.TransactionCommitFailedException; import org.opendaylight.lispflowmapping.implementation.util.InstanceIdentifierUtil; -import org.opendaylight.lispflowmapping.implementation.util.LispAddressStringifier; +import org.opendaylight.lispflowmapping.lisp.util.LispAddressStringifier; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.mapping.database.rev150314.MappingDatabase; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.mapping.database.rev150314.db.instance.AuthenticationKey; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.mapping.database.rev150314.db.instance.Mapping; diff --git a/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/mdsal/MappingDataListener.java b/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/mdsal/MappingDataListener.java index 6f16351d8..4c46a21d6 100644 --- a/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/mdsal/MappingDataListener.java +++ b/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/mdsal/MappingDataListener.java @@ -14,7 +14,7 @@ import org.opendaylight.controller.md.sal.binding.api.DataBroker; import org.opendaylight.controller.md.sal.common.api.data.AsyncDataChangeEvent; import org.opendaylight.lispflowmapping.implementation.LispMappingService; import org.opendaylight.lispflowmapping.implementation.config.ConfigIni; -import org.opendaylight.lispflowmapping.implementation.util.MapServerMapResolverUtil; +import org.opendaylight.lispflowmapping.lisp.util.MapServerMapResolverUtil; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.MapRegister; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.mapping.database.rev150314.MappingDatabase; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.mapping.database.rev150314.MappingOrigin; diff --git a/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/util/DAOMappingUtil.java b/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/util/DAOMappingUtil.java index f56054063..e486e51cb 100644 --- a/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/util/DAOMappingUtil.java +++ b/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/util/DAOMappingUtil.java @@ -10,49 +10,65 @@ package org.opendaylight.lispflowmapping.implementation.util; import java.util.AbstractMap; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.Set; import java.util.Map.Entry; -import org.opendaylight.lispflowmapping.implementation.dao.MappingServiceKeyUtil; +import org.opendaylight.lispflowmapping.implementation.dao.MappingKeyUtil; import org.opendaylight.lispflowmapping.interfaces.dao.ILispDAO; -import org.opendaylight.lispflowmapping.interfaces.dao.IMappingServiceKey; -import org.opendaylight.lispflowmapping.interfaces.dao.MappingServiceRLOCGroup; +import org.opendaylight.lispflowmapping.interfaces.dao.IMappingKey; +import org.opendaylight.lispflowmapping.interfaces.dao.MappingEntry; +import org.opendaylight.lispflowmapping.interfaces.dao.RLOCGroup; +import org.opendaylight.lispflowmapping.interfaces.dao.SubscriberRLOC; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.LispAFIAddress; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.eidrecords.EidRecord; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.eidtolocatorrecords.EidToLocatorRecord; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.lcafsourcedestaddress.DstAddressBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.lcafsourcedestaddress.SrcAddressBuilder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.lispaddress.LispAddressContainer; +import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.lispaddress.lispaddresscontainer.Address; +import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.lispaddress.lispaddresscontainer.address.LcafKeyValue; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.lispaddress.lispaddresscontainer.address.LcafSourceDest; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.lispaddress.lispaddresscontainer.address.lcafsourcedest.LcafSourceDestAddr; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.lispaddress.lispaddresscontainer.address.lcafsourcedest.LcafSourceDestAddrBuilder; -import org.opendaylight.lispflowmapping.implementation.lisp.AbstractLispComponent; +import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.lispsimpleaddress.primitiveaddress.DistinguishedName; +import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.locatorrecords.LocatorRecord; +import org.opendaylight.lispflowmapping.inmemorydb.HashMapDb; +import org.opendaylight.lispflowmapping.lisp.util.LispAFIConvertor; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; public class DAOMappingUtil { + private static final Logger LOG = LoggerFactory.getLogger(DAOMappingUtil.class); - public static List getLocatorsByEidRecord(EidRecord eid, ILispDAO dao, boolean iterateMask) { - IMappingServiceKey key = MappingServiceKeyUtil.generateMappingServiceKey(eid.getLispAddressContainer(), eid.getMask()); + public static List getLocatorsByEidRecord(EidRecord eid, ILispDAO dao, boolean iterateMask) { + IMappingKey key = MappingKeyUtil.generateMappingKey(eid.getLispAddressContainer(), eid.getMask()); return getLocators(key, dao, iterateMask); } - public static Object getLocatorsSpecificByEidRecord(EidRecord eid, ILispDAO dao, String subkey, boolean iterateMask) { - IMappingServiceKey key = MappingServiceKeyUtil.generateMappingServiceKey(eid.getLispAddressContainer(), eid.getMask()); + public static Object getLocatorsSpecificByEidRecord(EidRecord eid, ILispDAO dao, String subkey, + boolean iterateMask) { + IMappingKey key = MappingKeyUtil.generateMappingKey(eid.getLispAddressContainer(), eid.getMask()); return getLocatorsSpecific(key, dao, subkey, iterateMask); } - public static List getLocatorsByEidToLocatorRecord(EidToLocatorRecord eid, ILispDAO dao, boolean iterateMask) { - IMappingServiceKey key = MappingServiceKeyUtil.generateMappingServiceKey(eid.getLispAddressContainer(), eid.getMaskLength()); + public static List getLocatorsByEidToLocatorRecord(EidToLocatorRecord eid, ILispDAO dao, + boolean iterateMask) { + IMappingKey key = MappingKeyUtil.generateMappingKey(eid.getLispAddressContainer(), eid.getMaskLength()); return getLocators(key, dao, iterateMask); } - public static Object getLocatorsSpecificByEidtoLocatorRecord(EidToLocatorRecord eid, ILispDAO dao, String subkey, boolean iterateMask) { - IMappingServiceKey key = MappingServiceKeyUtil.generateMappingServiceKey(eid.getLispAddressContainer(), eid.getMaskLength()); + public static Object getLocatorsSpecificByEidtoLocatorRecord(EidToLocatorRecord eid, ILispDAO dao, String subkey, + boolean iterateMask) { + IMappingKey key = MappingKeyUtil.generateMappingKey(eid.getLispAddressContainer(), eid.getMaskLength()); return getLocatorsSpecific(key, dao, subkey, iterateMask); } - public static List getLocators(IMappingServiceKey key, ILispDAO dao, boolean iterateMask) { + public static List getLocators(IMappingKey key, ILispDAO dao, boolean iterateMask) { Map locators = dao.get(key); - List result = aggregateLocators(locators); + List result = aggregateLocators(locators); LispAFIAddress eid = LispAFIConvertor.toAFI(key.getEID()); if (iterateMask && result.isEmpty() && MaskUtil.isMaskable(eid)) { result = findMaskLocators(dao, key); @@ -60,19 +76,19 @@ public class DAOMappingUtil { return result; } - private static List aggregateLocators(Map locators) { - List result = new ArrayList(); + private static List aggregateLocators(Map locators) { + List result = new ArrayList(); if (locators != null) { for (Object value : locators.values()) { - if (value != null && value instanceof MappingServiceRLOCGroup) { - result.add((MappingServiceRLOCGroup) value); + if (value != null && value instanceof RLOCGroup) { + result.add((RLOCGroup) value); } } } return result; } - public static Object getLocatorsSpecific(IMappingServiceKey key, ILispDAO dao, String subkey, boolean iterateMask) { + public static Object getLocatorsSpecific(IMappingKey key, ILispDAO dao, String subkey, boolean iterateMask) { Object locators = dao.getSpecific(key, subkey); LispAFIAddress eid = LispAFIConvertor.toAFI(key.getEID()); if (iterateMask && locators == null && MaskUtil.isMaskable(eid)) { @@ -81,12 +97,11 @@ public class DAOMappingUtil { return locators; } - private static Object findMaskLocatorsSpecific(IMappingServiceKey key, ILispDAO dao, String subkey) { + private static Object findMaskLocatorsSpecific(IMappingKey key, ILispDAO dao, String subkey) { int mask = key.getMask(); while (mask > 0) { LispAFIAddress eid = LispAFIConvertor.toAFI(key.getEID()); - key = MappingServiceKeyUtil.generateMappingServiceKey( - LispAFIConvertor.toContainer(MaskUtil.normalize(eid, mask)), mask); + key = MappingKeyUtil.generateMappingKey(LispAFIConvertor.toContainer(MaskUtil.normalize(eid, mask)), mask); mask--; Object locators = dao.getSpecific(key, subkey); if (locators != null) { @@ -96,16 +111,15 @@ public class DAOMappingUtil { return null; } - private static List findMaskLocators(ILispDAO dao, IMappingServiceKey key) { + private static List findMaskLocators(ILispDAO dao, IMappingKey key) { int mask = key.getMask(); while (mask > 0) { LispAFIAddress eid = LispAFIConvertor.toAFI(key.getEID()); - key = MappingServiceKeyUtil.generateMappingServiceKey( - LispAFIConvertor.toContainer(MaskUtil.normalize(eid, mask)), mask); + key = MappingKeyUtil.generateMappingKey(LispAFIConvertor.toContainer(MaskUtil.normalize(eid, mask)), mask); mask--; Map locators = dao.get(key); if (locators != null) { - List result = aggregateLocators(locators); + List result = aggregateLocators(locators); if (result != null && !result.isEmpty()) { return result; } @@ -114,51 +128,59 @@ public class DAOMappingUtil { return null; } - public static Entry> getMapping(LispAFIAddress srcEid, EidRecord eid, + public static Entry> getMapping(LispAFIAddress srcEid, EidRecord eidRecord, ILispDAO dao) { // a map-request for an actual SrcDst LCAF, ignore src eid - if (eid.getLispAddressContainer().getAddress() instanceof LcafSourceDest) { - LcafSourceDestAddr eidAddr = ((LcafSourceDest) eid.getLispAddressContainer().getAddress()).getLcafSourceDestAddr(); - LispAFIAddress srcAddr = LispAFIConvertor.toAFIfromPrimitive(eidAddr.getSrcAddress().getPrimitiveAddress()); - LispAFIAddress dstAddr = LispAFIConvertor.toAFIfromPrimitive(eidAddr.getDstAddress().getPrimitiveAddress()); - return getMapping(srcAddr, dstAddr, eidAddr.getSrcMaskLength(), eidAddr.getDstMaskLength(), dao); + if (eidRecord.getLispAddressContainer().getAddress() instanceof LcafSourceDest) { + LcafSourceDestAddr eid = ((LcafSourceDest) eidRecord.getLispAddressContainer().getAddress()) + .getLcafSourceDestAddr(); + LispAFIAddress srcAddr = LispAFIConvertor.toAFIfromPrimitive(eid.getSrcAddress().getPrimitiveAddress()); + LispAFIAddress dstAddr = LispAFIConvertor.toAFIfromPrimitive(eid.getDstAddress().getPrimitiveAddress()); + return getMapping(srcAddr, dstAddr, eid.getSrcMaskLength(), eid.getDstMaskLength(), dao); } // potential map-request for SrcDst LCAF from non SrcDst capable devices - Entry> mapping = getMapping(srcEid, - LispAFIConvertor.toAFI(eid.getLispAddressContainer()), (short) MaskUtil.getMaxMask(srcEid), eid.getMask(), dao); + Entry> mapping = getMapping(srcEid, + LispAFIConvertor.toAFI(eidRecord.getLispAddressContainer()), (short) MaskUtil.getMaxMask(srcEid), + eidRecord.getMask(), dao); // if indeed SrcDst LCAF change the key to matched dst eid if (mapping.getKey().getEID().getAddress() instanceof LcafSourceDest) { - LcafSourceDestAddr srcDst = ((LcafSourceDest)mapping.getKey().getEID().getAddress()).getLcafSourceDestAddr(); - IMappingServiceKey newKey = MappingServiceKeyUtil.generateMappingServiceKey(LispAFIConvertor. - toAFIfromPrimitive(srcDst.getDstAddress().getPrimitiveAddress()), srcDst.getDstMaskLength()); + LcafSourceDestAddr srcDst = ((LcafSourceDest) mapping.getKey().getEID().getAddress()) + .getLcafSourceDestAddr(); + IMappingKey newKey = MappingKeyUtil.generateMappingKey( + LispAFIConvertor.toAFIfromPrimitive(srcDst.getDstAddress().getPrimitiveAddress()), + srcDst.getDstMaskLength()); return new AbstractMap.SimpleImmutableEntry<>(newKey, mapping.getValue()); } return mapping; } - public static Entry> getMapping(LispAFIAddress srcEid, - LispAFIAddress dstEid, short srcMask, short dstMask, ILispDAO dao) { - IMappingServiceKey key = MappingServiceKeyUtil.generateMappingServiceKey(dstEid, dstMask); - Entry> daoEntry = getDaoEntry(key, dao); + public static Entry> getMapping(LispAFIAddress srcEid, LispAFIAddress dstEid, + short srcMask, short dstMask, ILispDAO dao) { + IMappingKey key = MappingKeyUtil.generateMappingKey(dstEid, dstMask); + Entry> daoEntry = getDaoEntry(key, dao); if (daoEntry != null) { // try SrcDst eid lookup - ILispDAO srcDstDao = (ILispDAO) daoEntry.getValue().get(AbstractLispComponent.LCAF_SRCDST_SUBKEY); + ILispDAO srcDstDao = (ILispDAO) daoEntry.getValue().get(DAOSubKeys.LCAF_SRCDST_SUBKEY.toString()); if (srcDstDao != null) { - Entry> mapping = getMappingForEid(srcEid, srcMask, srcDstDao); + Entry> mapping = getMappingForEid(srcEid, srcMask, srcDstDao); // if lookup fails, return whatever is found for dst eid if (mapping.getValue() != null) { LispAFIAddress newDst = LispAFIConvertor.toAFI(daoEntry.getKey().getEID()); LispAFIAddress newSrc = LispAFIConvertor.toAFI(mapping.getKey().getEID()); LispAFIAddress newEid = new LcafSourceDestAddrBuilder() - .setDstAddress(new DstAddressBuilder().setPrimitiveAddress(LispAFIConvertor.toPrimitive(newDst)).build()) - .setSrcAddress(new SrcAddressBuilder().setPrimitiveAddress(LispAFIConvertor.toPrimitive(newSrc)).build()) - .setDstMaskLength((short)daoEntry.getKey().getMask()).setSrcMaskLength((short)mapping.getKey().getMask()) - .setAfi((short)16387).setLcafType((short)12).build(); - IMappingServiceKey newKey = MappingServiceKeyUtil.generateMappingServiceKey(newEid, dstMask); + .setDstAddress( + new DstAddressBuilder().setPrimitiveAddress(LispAFIConvertor.toPrimitive(newDst)) + .build()) + .setSrcAddress( + new SrcAddressBuilder().setPrimitiveAddress(LispAFIConvertor.toPrimitive(newSrc)) + .build()).setDstMaskLength((short) daoEntry.getKey().getMask()) + .setSrcMaskLength((short) mapping.getKey().getMask()).setAfi((short) 16387) + .setLcafType((short) 12).build(); + IMappingKey newKey = MappingKeyUtil.generateMappingKey(newEid, dstMask); return new AbstractMap.SimpleImmutableEntry<>(newKey, mapping.getValue()); } } @@ -169,23 +191,26 @@ public class DAOMappingUtil { return new AbstractMap.SimpleImmutableEntry<>(key, null); } - public static Entry> getMappingExact(LispAFIAddress srcEid, - LispAFIAddress dstEid, short srcMask, short dstMask, ILispDAO dao) { - IMappingServiceKey dstKey = MappingServiceKeyUtil.generateMappingServiceKey(dstEid, dstMask); + public static Entry> getMappingExact(LispAFIAddress srcEid, LispAFIAddress dstEid, + short srcMask, short dstMask, ILispDAO dao) { + IMappingKey dstKey = MappingKeyUtil.generateMappingKey(dstEid, dstMask); Map daoEntry = dao.get(dstKey); if (daoEntry != null) { // try SrcDst eid lookup - ILispDAO srcDstDao = (ILispDAO) daoEntry.get(AbstractLispComponent.LCAF_SRCDST_SUBKEY); + ILispDAO srcDstDao = (ILispDAO) daoEntry.get(DAOSubKeys.LCAF_SRCDST_SUBKEY.toString()); // if lookup fails, return whatever is found for dst eid if (srcDstDao != null) { - IMappingServiceKey srcKey = MappingServiceKeyUtil.generateMappingServiceKey(srcEid, srcMask); + IMappingKey srcKey = MappingKeyUtil.generateMappingKey(srcEid, srcMask); Map mapping = srcDstDao.get(srcKey); LispAFIAddress newEid = new LcafSourceDestAddrBuilder() - .setDstAddress(new DstAddressBuilder().setPrimitiveAddress(LispAFIConvertor.toPrimitive(dstEid)).build()) - .setSrcAddress(new SrcAddressBuilder().setPrimitiveAddress(LispAFIConvertor.toPrimitive(srcEid)).build()) - .setDstMaskLength((short)dstMask).setSrcMaskLength((short)srcMask) - .setAfi((short)16387).setLcafType((short)12).build(); - IMappingServiceKey newKey = MappingServiceKeyUtil.generateMappingServiceKey(newEid, dstMask); + .setDstAddress( + new DstAddressBuilder().setPrimitiveAddress(LispAFIConvertor.toPrimitive(dstEid)) + .build()) + .setSrcAddress( + new SrcAddressBuilder().setPrimitiveAddress(LispAFIConvertor.toPrimitive(srcEid)) + .build()).setDstMaskLength((short) dstMask).setSrcMaskLength((short) srcMask) + .setAfi((short) 16387).setLcafType((short) 12).build(); + IMappingKey newKey = MappingKeyUtil.generateMappingKey(newEid, dstMask); return makeMappingEntry(newKey, mapping); } @@ -195,13 +220,13 @@ public class DAOMappingUtil { return new AbstractMap.SimpleImmutableEntry<>(dstKey, null); } - public static Entry> getMappingForEidRecord(EidRecord eid, ILispDAO dao) { + public static Entry> getMappingForEidRecord(EidRecord eid, ILispDAO dao) { return getMappingForEid(LispAFIConvertor.toAFI(eid.getLispAddressContainer()), eid.getMask(), dao); } - private static Entry> makeMappingEntry(IMappingServiceKey key, Map locators) { + private static Entry> makeMappingEntry(IMappingKey key, Map locators) { if (locators != null) { - List locatorsList = aggregateLocators(locators); + List locatorsList = aggregateLocators(locators); if (locatorsList != null && !locatorsList.isEmpty()) { return new AbstractMap.SimpleImmutableEntry<>(key, locatorsList); } @@ -209,17 +234,18 @@ public class DAOMappingUtil { return new AbstractMap.SimpleImmutableEntry<>(key, null); } - public static Entry> getMappingForEid(LispAFIAddress eid, - int maskLen, ILispDAO dao) { + public static Entry> getMappingForEid(LispAFIAddress eid, int maskLen, ILispDAO dao) { if (eid instanceof LcafSourceDestAddr) { - LispAFIAddress srcAddr = LispAFIConvertor.toAFIfromPrimitive(((LcafSourceDestAddr) eid).getSrcAddress().getPrimitiveAddress()); - LispAFIAddress dstAddr = LispAFIConvertor.toAFIfromPrimitive(((LcafSourceDestAddr) eid).getDstAddress().getPrimitiveAddress()); + LispAFIAddress srcAddr = LispAFIConvertor.toAFIfromPrimitive(((LcafSourceDestAddr) eid).getSrcAddress() + .getPrimitiveAddress()); + LispAFIAddress dstAddr = LispAFIConvertor.toAFIfromPrimitive(((LcafSourceDestAddr) eid).getDstAddress() + .getPrimitiveAddress()); return getMapping(srcAddr, dstAddr, ((LcafSourceDestAddr) eid).getSrcMaskLength(), ((LcafSourceDestAddr) eid).getDstMaskLength(), dao); } - IMappingServiceKey key = MappingServiceKeyUtil.generateMappingServiceKey(eid, maskLen); - Entry> entry = getDaoEntry(key, dao); + IMappingKey key = MappingKeyUtil.generateMappingKey(eid, maskLen); + Entry> entry = getDaoEntry(key, dao); if (entry == null) { return makeMappingEntry(key, null); } else { @@ -227,28 +253,297 @@ public class DAOMappingUtil { } } - public static Entry> getDaoEntry(IMappingServiceKey lookupKey, ILispDAO dao) { + public static Entry> getDaoEntry(IMappingKey lookupKey, ILispDAO dao) { LispAFIAddress eidAddress = LispAFIConvertor.toAFI(lookupKey.getEID()); if (MaskUtil.isMaskable(eidAddress)) { - IMappingServiceKey key; + IMappingKey key; int mask = lookupKey.getMask(); while (mask > 0) { - key = MappingServiceKeyUtil.generateMappingServiceKey(eidAddress, mask); + key = MappingKeyUtil.generateMappingKey(eidAddress, mask); mask--; Map entry = dao.get(key); if (entry != null) { - return new AbstractMap.SimpleImmutableEntry>(key, entry); + return new AbstractMap.SimpleImmutableEntry>(key, entry); } } return null; } else { Map entry = dao.get(lookupKey); if (entry != null) { - return new AbstractMap.SimpleImmutableEntry>(lookupKey, + return new AbstractMap.SimpleImmutableEntry>(lookupKey, dao.get(lookupKey)); } else { return null; } } } + + public static void addSubscribers(LispAddressContainer eid, int mask, Set subscribers, + ILispDAO dao) { + IMappingKey key = MappingKeyUtil.generateMappingKey(eid, mask); + dao.put(key, new MappingEntry>(DAOSubKeys.SUBSCRIBERS_SUBKEY.toString(), subscribers)); + } + + public static void addAuthenticationKey(LispAddressContainer address, int maskLen, String key, ILispDAO dao) { + IMappingKey mappingServiceKey = MappingKeyUtil.generateMappingKey(address, maskLen); + if (address.getAddress() instanceof LcafSourceDest) { + IMappingKey srcKey = MappingKeyUtil.generateMappingKey(getSrcForLcafSrcDst(address), + getSrcMaskForLcafSrcDst(address)); + ILispDAO srcDstDao = getOrInstantiateSrcDstInnerDao(address, maskLen, dao); + srcDstDao.put(srcKey, new MappingEntry(DAOSubKeys.PASSWORD_SUBKEY.toString(), key)); + } else { + dao.put(mappingServiceKey, new MappingEntry(DAOSubKeys.PASSWORD_SUBKEY.toString(), key)); + } + } + + public static String getPasswordForMaskable(LispAddressContainer prefix, int maskLength, ILispDAO db, + boolean shouldIterate) { + while (maskLength >= 0) { + IMappingKey key = MappingKeyUtil.generateMappingKey(prefix, maskLength); + Object password = db.getSpecific(key, DAOSubKeys.PASSWORD_SUBKEY.toString()); + if (password != null && password instanceof String) { + return (String) password; + } else if (shouldIterate) { + maskLength -= 1; + } else { + LOG.warn("Failed to find password!"); + return null; + } + } + return null; + } + + public static String getPassword(LispAddressContainer prefix, int maskLength, ILispDAO dao, boolean iterate) { + if (MaskUtil.isMaskable(LispAFIConvertor.toAFI(prefix))) { + return getPasswordForMaskable(prefix, maskLength, dao, iterate); + } else if (prefix.getAddress() instanceof LcafSourceDest) { + ILispDAO srcDstDao = getSrcDstInnerDao(prefix, maskLength, dao); + if (srcDstDao != null) { + return getPasswordForMaskable(LispAFIConvertor.toContainer(getSrcForLcafSrcDst(prefix)), + getSrcMaskForLcafSrcDst(prefix), srcDstDao, iterate); + } + return null; + } else { + IMappingKey key = MappingKeyUtil.generateMappingKey(prefix, maskLength); + Object password = dao.getSpecific(key, DAOSubKeys.PASSWORD_SUBKEY.toString()); + if (password != null && password instanceof String) { + return (String) password; + } else { + LOG.warn("Failed to find password!"); + return null; + } + } + } + + @SuppressWarnings("unchecked") + public static Set getSubscribers(LispAddressContainer prefix, int maskLength, ILispDAO dao) { + Object subscribers; + if (prefix.getAddress() instanceof LcafSourceDest) { + IMappingKey srcKey = MappingKeyUtil.generateMappingKey(getSrcForLcafSrcDst(prefix), + getSrcMaskForLcafSrcDst(prefix)); + ILispDAO srcDstDao = getSrcDstInnerDao(prefix, maskLength, dao); + subscribers = srcDstDao.getSpecific(srcKey, DAOSubKeys.SUBSCRIBERS_SUBKEY.toString()); + } else { + IMappingKey key = MappingKeyUtil.generateMappingKey(prefix, maskLength); + subscribers = dao.getSpecific(key, DAOSubKeys.SUBSCRIBERS_SUBKEY.toString()); + } + + if (subscribers != null && subscribers instanceof Set) { + return (Set) subscribers; + } + return null; + } + + // SrcDst LCAFs are stored in a 2-tier DAO with dst having priority over + // src. This method returns the DAO + // associated to a dst or creates it if it doesn't exist. + public static ILispDAO getOrInstantiateSrcDstInnerDao(LispAddressContainer address, int maskLen, ILispDAO dao) { + IMappingKey dstKey = MappingKeyUtil.generateMappingKey(getDstForLcafSrcDst(address), + getDstMaskForLcafSrcDst(address)); + ILispDAO srcDstDao = (ILispDAO) dao.getSpecific(dstKey, DAOSubKeys.LCAF_SRCDST_SUBKEY.toString()); + if (srcDstDao == null) { + srcDstDao = new HashMapDb(); + dao.put(dstKey, new MappingEntry<>(DAOSubKeys.LCAF_SRCDST_SUBKEY.toString(), srcDstDao)); + } + return srcDstDao; + } + + // SrcDst LCAFs are stored in a 2-tier DAO with dst having priority over + // src. This method returns the DAO + // associated to a dst or null if it doesn't exist. + public static ILispDAO getSrcDstInnerDao(LispAddressContainer address, int maskLen, ILispDAO dao) { + IMappingKey dstKey = MappingKeyUtil.generateMappingKey(getDstForLcafSrcDst(address), + getDstMaskForLcafSrcDst(address)); + return (ILispDAO) dao.getSpecific(dstKey, DAOSubKeys.LCAF_SRCDST_SUBKEY.toString()); + } + + public static boolean saveRlocs(EidToLocatorRecord eidRecord, boolean checkForChanges, ILispDAO dao, + boolean shouldIterate, boolean shouldOverwrite) { + Map rlocGroups = new HashMap(); + if (eidRecord.getLocatorRecord() != null) { + for (LocatorRecord locatorRecord : eidRecord.getLocatorRecord()) { + String subkey = getAddressKey(locatorRecord.getLispAddressContainer().getAddress(), shouldOverwrite); + if (!rlocGroups.containsKey(subkey)) { + rlocGroups + .put(subkey, + new RLOCGroup(eidRecord.getRecordTtl(), eidRecord.getAction(), eidRecord + .isAuthoritative())); + } + rlocGroups.get(subkey).addRecord(locatorRecord); + } + } else { + rlocGroups.put(DAOSubKeys.ADDRESS_SUBKEY.toString(), + new RLOCGroup(eidRecord.getRecordTtl(), eidRecord.getAction(), eidRecord.isAuthoritative())); + } + List> entries = new ArrayList<>(); + for (String subkey : rlocGroups.keySet()) { + entries.add(new MappingEntry<>(subkey, rlocGroups.get(subkey))); + } + + if (eidRecord.getLispAddressContainer().getAddress() instanceof LcafSourceDest) { + Entry> oldMapping = null, newMapping = null; + LispAFIAddress srcAddr = getSrcForLcafSrcDst(eidRecord.getLispAddressContainer()); + LispAFIAddress dstAddr = getDstForLcafSrcDst(eidRecord.getLispAddressContainer()); + short srcMask = getSrcMaskForLcafSrcDst(eidRecord.getLispAddressContainer()); + short dstMask = getDstMaskForLcafSrcDst(eidRecord.getLispAddressContainer()); + + if (checkForChanges) { + oldMapping = DAOMappingUtil.getMappingExact(srcAddr, dstAddr, srcMask, dstMask, dao); + } + IMappingKey dstKey = MappingKeyUtil.generateMappingKey(dstAddr, dstMask); + ILispDAO srcDstDao = (ILispDAO) dao.getSpecific(dstKey, DAOSubKeys.LCAF_SRCDST_SUBKEY.toString()); + if (srcDstDao == null) { + srcDstDao = new HashMapDb(); + dao.put(dstKey, new MappingEntry<>(DAOSubKeys.LCAF_SRCDST_SUBKEY.toString(), srcDstDao)); + } + IMappingKey srcKey = MappingKeyUtil.generateMappingKey(srcAddr, srcMask); + srcDstDao.put(srcKey, entries.toArray(new MappingEntry[entries.size()])); + if (checkForChanges) { + newMapping = DAOMappingUtil.getMappingExact(srcAddr, dstAddr, srcMask, dstMask, dao); + return (newMapping.getValue() == null) ? oldMapping.getValue() != null : !newMapping.getValue() + .equals(oldMapping.getValue()); + } + } else { + List oldLocators = null, newLocators = null; + if (checkForChanges) { + oldLocators = DAOMappingUtil.getLocatorsByEidToLocatorRecord(eidRecord, dao, shouldIterate); + } + IMappingKey key = MappingKeyUtil.generateMappingKey(eidRecord.getLispAddressContainer(), + eidRecord.getMaskLength()); + dao.put(key, entries.toArray(new MappingEntry[entries.size()])); + if (checkForChanges) { + newLocators = DAOMappingUtil.getLocatorsByEidToLocatorRecord(eidRecord, dao, shouldIterate); + return (newLocators == null) ? oldLocators != null : !newLocators.equals(oldLocators); + } + } + return false; + } + + public static String getAddressKey(Address address, boolean shouldOverwrite) { + if (address instanceof LcafKeyValue) { + LcafKeyValue keyVal = (LcafKeyValue) address; + if (keyVal.getLcafKeyValueAddressAddr().getKey().getPrimitiveAddress() instanceof DistinguishedName) { + return ((DistinguishedName) keyVal.getLcafKeyValueAddressAddr().getKey().getPrimitiveAddress()) + .getDistinguishedNameAddress().getDistinguishedName(); + } + } + if (shouldOverwrite) { + return DAOSubKeys.ADDRESS_SUBKEY.toString(); + } else { + return String.valueOf(address.hashCode()); + } + } + + public static void removeAuthenticationKey(LispAddressContainer address, int maskLen, ILispDAO dao) { + if (address.getAddress() instanceof LcafSourceDest) { + ILispDAO srcDstDao = getSrcDstInnerDao(address, maskLen, dao); + if (srcDstDao != null) { + IMappingKey srcKey = MappingKeyUtil.generateMappingKey(getSrcForLcafSrcDst(address), + getSrcMaskForLcafSrcDst(address)); + srcDstDao.removeSpecific(srcKey, DAOSubKeys.PASSWORD_SUBKEY.toString()); + } + } else { + IMappingKey key = MappingKeyUtil.generateMappingKey(address, maskLen); + dao.removeSpecific(key, DAOSubKeys.PASSWORD_SUBKEY.toString()); + } + } + + private static void removeMappingRlocs(Entry> mapping, ILispDAO db, + boolean shouldOverwrite) { + if (mapping == null || mapping.getValue() == null) { + return; + } + for (RLOCGroup group : mapping.getValue()) { + for (LocatorRecord record : group.getRecords()) { + db.removeSpecific(mapping.getKey(), + DAOMappingUtil.getAddressKey(record.getLispAddressContainer().getAddress(), shouldOverwrite)); + } + } + } + + public static void removeMapping(LispAddressContainer address, int maskLen, ILispDAO dao, boolean oerwrite) { + Entry> mapping; + ILispDAO db; + if (address.getAddress() instanceof LcafSourceDest) { + db = getSrcDstInnerDao(address, maskLen, dao); + LispAFIAddress srcAddr = getSrcForLcafSrcDst(address); + short srcMask = getSrcMaskForLcafSrcDst(address); + mapping = DAOMappingUtil.getMappingForEid(srcAddr, srcMask, db); + } else { + db = dao; + mapping = DAOMappingUtil.getMappingForEid(LispAFIConvertor.toAFI(address), maskLen, db); + } + removeMappingRlocs(mapping, db, oerwrite); + } + + public static void removeSubscribers(LispAddressContainer address, int maskLen, ILispDAO dao, + boolean shouldOverwrite) { + Entry> mapping; + ILispDAO db; + if (address.getAddress() instanceof LcafSourceDest) { + db = getSrcDstInnerDao(address, maskLen, dao); + LispAFIAddress srcAddr = getSrcForLcafSrcDst(address); + short srcMask = getSrcMaskForLcafSrcDst(address); + mapping = DAOMappingUtil.getMappingForEid(srcAddr, srcMask, db); + } else { + db = dao; + mapping = DAOMappingUtil.getMappingForEid(LispAFIConvertor.toAFI(address), maskLen, db); + } + db.removeSpecific(mapping.getKey(), DAOSubKeys.SUBSCRIBERS_SUBKEY.toString()); + } + + public static void removeEntry(LispAddressContainer address, int maskLen, ILispDAO dao, boolean shouldOverwrite) { + Entry> mapping; + ILispDAO db; + if (address.getAddress() instanceof LcafSourceDest) { + db = getSrcDstInnerDao(address, maskLen, dao); + LispAFIAddress srcAddr = getSrcForLcafSrcDst(address); + short srcMask = getSrcMaskForLcafSrcDst(address); + mapping = DAOMappingUtil.getMappingForEid(srcAddr, srcMask, db); + } else { + db = dao; + mapping = DAOMappingUtil.getMappingForEid(LispAFIConvertor.toAFI(address), maskLen, db); + } + + db.remove(mapping.getKey()); + } + + public static LispAFIAddress getSrcForLcafSrcDst(LispAddressContainer container) { + return LispAFIConvertor.toAFIfromPrimitive(((LcafSourceDest) container.getAddress()).getLcafSourceDestAddr() + .getSrcAddress().getPrimitiveAddress()); + } + + public static LispAFIAddress getDstForLcafSrcDst(LispAddressContainer container) { + return LispAFIConvertor.toAFIfromPrimitive(((LcafSourceDest) container.getAddress()).getLcafSourceDestAddr() + .getDstAddress().getPrimitiveAddress()); + } + + public static short getSrcMaskForLcafSrcDst(LispAddressContainer container) { + return ((LcafSourceDest) container.getAddress()).getLcafSourceDestAddr().getSrcMaskLength(); + } + + public static short getDstMaskForLcafSrcDst(LispAddressContainer container) { + return ((LcafSourceDest) container.getAddress()).getLcafSourceDestAddr().getDstMaskLength(); + } + } diff --git a/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/util/DAOSubKeys.java b/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/util/DAOSubKeys.java new file mode 100644 index 000000000..d5c8e5606 --- /dev/null +++ b/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/util/DAOSubKeys.java @@ -0,0 +1,39 @@ +/* + * Copyright (c) 2015 Cisco Systems, Inc. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ + +package org.opendaylight.lispflowmapping.implementation.util; + +/** + * Defines DAO Subkeys + * + * @author Florin Coras + * + */ +public enum DAOSubKeys { + PASSWORD_SUBKEY("password"), + ADDRESS_SUBKEY("address"), + SUBSCRIBERS_SUBKEY("subscribers"), + LCAF_SRCDST_SUBKEY("lcaf_srcdst"), + UNKOWN("-1"); + + private String key; + + private DAOSubKeys(String key) { + this.key = key; + } + + public String getKey() { + return key; + } + + @Override + public String toString() { + return key; + } + +} diff --git a/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/util/InstanceIdentifierUtil.java b/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/util/InstanceIdentifierUtil.java index 544f50ef8..f413d7714 100644 --- a/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/util/InstanceIdentifierUtil.java +++ b/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/util/InstanceIdentifierUtil.java @@ -7,6 +7,7 @@ */ package org.opendaylight.lispflowmapping.implementation.util; +import org.opendaylight.lispflowmapping.lisp.util.LispAddressStringifier; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.mapping.database.rev150314.EidUri; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.mapping.database.rev150314.IidUri; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.mapping.database.rev150314.MappingDatabase; diff --git a/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/util/LispNotificationHelper.java b/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/util/LispNotificationHelper.java index fcaf0c29f..67cabb542 100644 --- a/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/util/LispNotificationHelper.java +++ b/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/util/LispNotificationHelper.java @@ -7,13 +7,14 @@ */ package org.opendaylight.lispflowmapping.implementation.util; -import java.net.Inet4Address; import java.net.InetAddress; import java.net.UnknownHostException; import java.util.ArrayList; import java.util.List; -import org.opendaylight.lispflowmapping.implementation.serializer.LispMessage; +import org.opendaylight.lispflowmapping.lisp.type.LispMessage; +import org.opendaylight.lispflowmapping.lisp.util.LispAFIConvertor; +import org.opendaylight.lispflowmapping.lisp.util.LispAddressStringifier; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.AddMapping; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.EidToLocatorRecord; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.LcafApplicationDataAddress; @@ -23,14 +24,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.lispaddress.lispaddresscontainer.address.distinguishedname.DistinguishedName; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.lispaddress.lispaddresscontainer.address.lcafkeyvalue.LcafKeyValueAddressAddr; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.lispsimpleaddress.PrimitiveAddress; -import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.mapnotifynotification.MapNotify; -import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.mapnotifynotification.MapNotifyBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.mapregisternotification.MapRegister; -import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.mapregisternotification.MapRegisterBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.mapreplynotification.MapReply; -import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.mapreplynotification.MapReplyBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.maprequestnotification.MapRequest; -import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.maprequestnotification.MapRequestBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.transportaddress.TransportAddress; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.transportaddress.TransportAddressBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.mapping.database.rev150314.EidUri; @@ -38,65 +32,10 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.mapping.database.rev150 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.mapping.database.rev150314.SiteId; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.mapping.database.rev150314.db.instance.Mapping; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.mapping.database.rev150314.db.instance.MappingBuilder; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.IpAddress; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.IpAddressBuilder; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.Ipv4Address; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.Ipv6Address; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.PortNumber; public class LispNotificationHelper { - - public static MapRegister convertMapRegister(org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.MapRegister mapRegister) { - return new MapRegisterBuilder().setAuthenticationData(mapRegister.getAuthenticationData()) - .setEidToLocatorRecord(mapRegister.getEidToLocatorRecord()).setKeyId(mapRegister.getKeyId()).setNonce(mapRegister.getNonce()) - .setProxyMapReply(mapRegister.isProxyMapReply()).setWantMapNotify(mapRegister.isWantMapNotify()) - .setXtrSiteIdPresent(mapRegister.isXtrSiteIdPresent()).setXtrId(mapRegister.getXtrId()).setSiteId(mapRegister.getSiteId()).build(); - } - - public static MapNotify convertMapNotify(org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.MapNotify mapNotify) { - return new MapNotifyBuilder().setAuthenticationData(mapNotify.getAuthenticationData()) - .setEidToLocatorRecord(mapNotify.getEidToLocatorRecord()).setKeyId(mapNotify.getKeyId()).setNonce(mapNotify.getNonce()) - .setXtrSiteIdPresent(mapNotify.isXtrSiteIdPresent()).setXtrId(mapNotify.getXtrId()).setSiteId(mapNotify.getSiteId()).build(); - } - - public static MapRequest convertMapRequest(org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.MapRequest mapRequest) { - return new MapRequestBuilder().setAuthoritative(mapRequest.isAuthoritative()).setEidRecord(mapRequest.getEidRecord()) - .setItrRloc(mapRequest.getItrRloc()).setMapDataPresent(mapRequest.isMapDataPresent()).setMapReply(mapRequest.getMapReply()) - .setNonce(mapRequest.getNonce()).setPitr(mapRequest.isPitr()).setProbe(mapRequest.isProbe()).setSmr(mapRequest.isSmr()) - .setSmrInvoked(mapRequest.isSmrInvoked()).setSourceEid(mapRequest.getSourceEid()).build(); - } - - public static MapReply convertMapReply(org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.MapReply mapReply) { - return new MapReplyBuilder().setEchoNonceEnabled(mapReply.isEchoNonceEnabled()).setEidToLocatorRecord(mapReply.getEidToLocatorRecord()) - .setNonce(mapReply.getNonce()).setProbe(mapReply.isProbe()).setSecurityEnabled(mapReply.isSecurityEnabled()).build(); - } - - public static IpAddress getIpAddressFromInetAddress(InetAddress inetAddress) { - if (inetAddress == null) { - inetAddress = InetAddress.getLoopbackAddress(); - } - if (inetAddress instanceof Inet4Address) { - return new IpAddress(new Ipv4Address(inetAddress.getHostAddress())); - } else { - return new IpAddress(new Ipv6Address(inetAddress.getHostAddress())); - } - } - - public static InetAddress getInetAddressFromIpAddress(IpAddress ipAddress) { - InetAddress address = null; - if (ipAddress != null) { - if (ipAddress.getIpv4Address() != null) { - address = getAddressByName(ipAddress.getIpv4Address().getValue()); - } else if (ipAddress.getIpv6Address() != null) { - address = getAddressByName(ipAddress.getIpv6Address().getValue()); - } - } - if (address == null) { - address = InetAddress.getLoopbackAddress(); - } - return address; - } - public static TransportAddress getTransportAddressFromContainer(LispAddressContainer container) { TransportAddressBuilder tab = new TransportAddressBuilder(); LispAFIAddress address = LispAFIConvertor.toAFI(container); diff --git a/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/util/MaskUtil.java b/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/util/MaskUtil.java index ce3139230..fca031c10 100644 --- a/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/util/MaskUtil.java +++ b/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/util/MaskUtil.java @@ -14,6 +14,7 @@ import java.net.UnknownHostException; import java.nio.ByteBuffer; import org.apache.commons.lang3.exception.ExceptionUtils; +import org.opendaylight.lispflowmapping.lisp.util.LispAFIConvertor; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.LispAFIAddress; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.lcafsegmentaddress.AddressBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.lcafsegmentaddress.Address; diff --git a/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/util/RPCInputConvertorUtil.java b/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/util/RPCInputConvertorUtil.java index b0294fe04..ed33f0074 100644 --- a/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/util/RPCInputConvertorUtil.java +++ b/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/util/RPCInputConvertorUtil.java @@ -7,6 +7,7 @@ */ package org.opendaylight.lispflowmapping.implementation.util; +import org.opendaylight.lispflowmapping.lisp.util.LispAddressStringifier; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.mapping.database.rev150314.AddKeyInput; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.mapping.database.rev150314.AddMappingInput; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.mapping.database.rev150314.EidUri; diff --git a/mappingservice/implementation/src/test/java/org/opendaylight/lispflowmapping/implementation/authentication/LispAuthenticationTest.java b/mappingservice/implementation/src/test/java/org/opendaylight/lispflowmapping/implementation/authentication/LispAuthenticationTest.java index 4e5421d8f..4e00c6b97 100644 --- a/mappingservice/implementation/src/test/java/org/opendaylight/lispflowmapping/implementation/authentication/LispAuthenticationTest.java +++ b/mappingservice/implementation/src/test/java/org/opendaylight/lispflowmapping/implementation/authentication/LispAuthenticationTest.java @@ -15,8 +15,8 @@ import java.util.ArrayList; import junitx.framework.ArrayAssert; import org.junit.Test; -import org.opendaylight.lispflowmapping.implementation.serializer.MapRegisterSerializer; -import org.opendaylight.lispflowmapping.implementation.util.LispAFIConvertor; +import org.opendaylight.lispflowmapping.lisp.util.LispAFIConvertor; +import org.opendaylight.lispflowmapping.lisp.serializer.MapRegisterSerializer; import org.opendaylight.lispflowmapping.tools.junit.BaseTestCase; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.MapRegister; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.eidtolocatorrecords.EidToLocatorRecord; diff --git a/mappingservice/implementation/src/test/java/org/opendaylight/lispflowmapping/implementation/lisp/MapResolverTest.java b/mappingservice/implementation/src/test/java/org/opendaylight/lispflowmapping/implementation/lisp/MapResolverTest.java index 8c4d66cdf..040a9c2fd 100644 --- a/mappingservice/implementation/src/test/java/org/opendaylight/lispflowmapping/implementation/lisp/MapResolverTest.java +++ b/mappingservice/implementation/src/test/java/org/opendaylight/lispflowmapping/implementation/lisp/MapResolverTest.java @@ -19,11 +19,12 @@ import org.junit.Assert; import org.junit.Before; import org.junit.Test; import org.opendaylight.lispflowmapping.implementation.LispMappingService; -import org.opendaylight.lispflowmapping.implementation.dao.MappingServiceKeyUtil; -import org.opendaylight.lispflowmapping.implementation.util.LispAFIConvertor; +import org.opendaylight.lispflowmapping.implementation.dao.MappingKeyUtil; +import org.opendaylight.lispflowmapping.implementation.util.DAOSubKeys; import org.opendaylight.lispflowmapping.interfaces.dao.ILispDAO; -import org.opendaylight.lispflowmapping.interfaces.dao.IMappingServiceKey; -import org.opendaylight.lispflowmapping.interfaces.dao.MappingServiceRLOCGroup; +import org.opendaylight.lispflowmapping.interfaces.dao.IMappingKey; +import org.opendaylight.lispflowmapping.interfaces.dao.RLOCGroup; +import org.opendaylight.lispflowmapping.lisp.util.LispAFIConvertor; import org.opendaylight.lispflowmapping.tools.junit.BaseTestCase; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.EidToLocatorRecord.Action; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.LispAFIAddress; @@ -49,7 +50,7 @@ public class MapResolverTest extends BaseTestCase { private LispAFIAddress v4Address; private LispAFIAddress v6Address; - private HashMap> daoResults; + private HashMap> daoResults; @Override @Before @@ -62,7 +63,7 @@ public class MapResolverTest extends BaseTestCase { mapRequest = new MapRequestBuilder(); v4Address = LispAFIConvertor.asIPAfiAddress("1.2.3.4"); v6Address = LispAFIConvertor.asIPv6AfiAddress("0:0:0:0:0:0:0:1"); - daoResults = new HashMap>(); + daoResults = new HashMap>(); } @Test @@ -203,8 +204,8 @@ public class MapResolverTest extends BaseTestCase { public void handleMapRequest_VerifyNativelyForwardAutherized() { MapRequest mr = getDefaultMapRequest(); - Map> result = new HashMap>(); - result.put(AbstractLispComponent.ADDRESS_SUBKEY, new ArrayList()); + Map> result = new HashMap>(); + result.put(DAOSubKeys.ADDRESS_SUBKEY.toString(), new ArrayList()); MapReply mapReply = getNativelyForwardMapReply(mr, result); @@ -213,10 +214,10 @@ public class MapResolverTest extends BaseTestCase { assertEquals(Action.NativelyForward, eidToLocators.getAction()); } - private MapReply getNativelyForwardMapReply(MapRequest mr, Map> result) { - allowing(lispDAO).get(wany(IMappingServiceKey.class)); + private MapReply getNativelyForwardMapReply(MapRequest mr, Map> result) { + allowing(lispDAO).get(wany(IMappingKey.class)); ret(result); - allowing(lispDAO).getSpecific(wany(IMappingServiceKey.class), with(AbstractLispComponent.PASSWORD_SUBKEY)); + allowing(lispDAO).getSpecific(wany(IMappingKey.class), with(DAOSubKeys.PASSWORD_SUBKEY.toString())); ret("pass"); MapReply mapReply = testedMapResolver.handleMapRequest(mr); return mapReply; @@ -331,26 +332,26 @@ public class MapResolverTest extends BaseTestCase { Assert.assertTrue(locatorRecord.isRouted()); } - private Map prepareMapping(EidToLocatorRecord... records) { + private Map prepareMapping(EidToLocatorRecord... records) { if (records.length > 0) { for (EidToLocatorRecord eidToLocatorRecord : records) { - Map result = new HashMap(); - MappingServiceRLOCGroup rlocs = new MappingServiceRLOCGroup(eidToLocatorRecord.getRecordTtl(), eidToLocatorRecord.getAction(), + Map result = new HashMap(); + RLOCGroup rlocs = new RLOCGroup(eidToLocatorRecord.getRecordTtl(), eidToLocatorRecord.getAction(), eidToLocatorRecord.isAuthoritative()); for (LocatorRecord locator : eidToLocatorRecord.getLocatorRecord()) { rlocs.addRecord(locator); } - result.put(AbstractLispComponent.ADDRESS_SUBKEY, rlocs); + result.put(DAOSubKeys.ADDRESS_SUBKEY.toString(), rlocs); daoResults.put( - MappingServiceKeyUtil.generateMappingServiceKey(eidToLocatorRecord.getLispAddressContainer(), + MappingKeyUtil.generateMappingKey(eidToLocatorRecord.getLispAddressContainer(), (short) eidToLocatorRecord.getMaskLength()), result); } } - ValueSaverAction daoGetSaverAction = new ValueSaverAction() { + ValueSaverAction daoGetSaverAction = new ValueSaverAction() { @Override - protected boolean validate(IMappingServiceKey value) { + protected boolean validate(IMappingKey value) { return true; } @@ -362,9 +363,9 @@ public class MapResolverTest extends BaseTestCase { allowing(lispDAO).get(with(daoGetSaverAction)); will(daoGetSaverAction); - allowing(lispDAO).getSpecific(wany(IMappingServiceKey.class), with(AbstractLispComponent.PASSWORD_SUBKEY)); + allowing(lispDAO).getSpecific(wany(IMappingKey.class), with(DAOSubKeys.PASSWORD_SUBKEY.toString())); - return daoResults.get(MappingServiceKeyUtil.generateMappingServiceKey(LispAFIConvertor.toContainer(v4Address))); + return daoResults.get(MappingKeyUtil.generateMappingKey(LispAFIConvertor.toContainer(v4Address))); } private MapRequestBuilder getDefaultMapRequestBuilder() { diff --git a/mappingservice/implementation/src/test/java/org/opendaylight/lispflowmapping/implementation/lisp/MapServerTest.java b/mappingservice/implementation/src/test/java/org/opendaylight/lispflowmapping/implementation/lisp/MapServerTest.java index 775639180..351bb5320 100644 --- a/mappingservice/implementation/src/test/java/org/opendaylight/lispflowmapping/implementation/lisp/MapServerTest.java +++ b/mappingservice/implementation/src/test/java/org/opendaylight/lispflowmapping/implementation/lisp/MapServerTest.java @@ -18,13 +18,14 @@ import junitx.framework.ArrayAssert; import org.junit.Before; import org.junit.Test; import org.opendaylight.lispflowmapping.implementation.LispMappingService; -import org.opendaylight.lispflowmapping.implementation.dao.MappingServiceKeyUtil; -import org.opendaylight.lispflowmapping.implementation.serializer.MapRegisterSerializer; -import org.opendaylight.lispflowmapping.implementation.util.LispAFIConvertor; +import org.opendaylight.lispflowmapping.implementation.dao.MappingKeyUtil; +import org.opendaylight.lispflowmapping.implementation.util.DAOSubKeys; import org.opendaylight.lispflowmapping.interfaces.dao.ILispDAO; -import org.opendaylight.lispflowmapping.interfaces.dao.IMappingServiceKey; +import org.opendaylight.lispflowmapping.interfaces.dao.IMappingKey; import org.opendaylight.lispflowmapping.interfaces.dao.MappingEntry; -import org.opendaylight.lispflowmapping.interfaces.dao.MappingServiceRLOCGroup; +import org.opendaylight.lispflowmapping.interfaces.dao.RLOCGroup; +import org.opendaylight.lispflowmapping.lisp.util.LispAFIConvertor; +import org.opendaylight.lispflowmapping.lisp.serializer.MapRegisterSerializer; import org.opendaylight.lispflowmapping.tools.junit.BaseTestCase; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.EidToLocatorRecord.Action; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.LispAFIAddress; @@ -86,9 +87,9 @@ public class MapServerTest extends BaseTestCase { MappingEntry[] entries = mappingEntriesSaver.lastValue; assertEquals(1, entries.length); - assertEquals(AbstractLispComponent.ADDRESS_SUBKEY, entries[0].getKey()); - assertEquals(1, ((MappingServiceRLOCGroup) entries[0].getValue()).getRecords().size()); - assertEquals(rloc, LispAFIConvertor.toAFI(((MappingServiceRLOCGroup) entries[0].getValue()).getRecords().get(0).getLispAddressContainer())); + assertEquals(DAOSubKeys.ADDRESS_SUBKEY.toString(), entries[0].getKey()); + assertEquals(1, ((RLOCGroup) entries[0].getValue()).getRecords().size()); + assertEquals(rloc, LispAFIConvertor.toAFI(((RLOCGroup) entries[0].getValue()).getRecords().get(0).getLispAddressContainer())); } @Test @@ -409,10 +410,10 @@ public class MapServerTest extends BaseTestCase { MappingEntry[] entries = mappingEntriesSaver.lastValue; assertEquals(1, entries.length); - assertEquals(AbstractLispComponent.ADDRESS_SUBKEY, entries[0].getKey()); - assertEquals(LispAFIConvertor.toContainer(rloc0), ((MappingServiceRLOCGroup) entries[0].getValue()).getRecords().get(0) + assertEquals(DAOSubKeys.ADDRESS_SUBKEY.toString(), entries[0].getKey()); + assertEquals(LispAFIConvertor.toContainer(rloc0), ((RLOCGroup) entries[0].getValue()).getRecords().get(0) .getLispAddressContainer()); - assertEquals(LispAFIConvertor.toContainer(rloc1), ((MappingServiceRLOCGroup) entries[0].getValue()).getRecords().get(1) + assertEquals(LispAFIConvertor.toContainer(rloc1), ((RLOCGroup) entries[0].getValue()).getRecords().get(1) .getLispAddressContainer()); } @@ -444,11 +445,11 @@ public class MapServerTest extends BaseTestCase { MappingEntry[] entries = mappingEntriesSaver.lastValue; assertEquals(2, entries.length); - assertEquals(AbstractLispComponent.ADDRESS_SUBKEY, entries[0].getKey()); + assertEquals(DAOSubKeys.ADDRESS_SUBKEY.toString(), entries[0].getKey()); assertEquals(subkey, entries[1].getKey()); - assertEquals(LispAFIConvertor.toContainer(rloc0), ((MappingServiceRLOCGroup) entries[0].getValue()).getRecords().get(0) + assertEquals(LispAFIConvertor.toContainer(rloc0), ((RLOCGroup) entries[0].getValue()).getRecords().get(0) .getLispAddressContainer()); - assertEquals(LispAFIConvertor.toContainer(rloc1), ((MappingServiceRLOCGroup) entries[1].getValue()).getRecords().get(0) + assertEquals(LispAFIConvertor.toContainer(rloc1), ((RLOCGroup) entries[1].getValue()).getRecords().get(0) .getLispAddressContainer()); } @@ -462,8 +463,8 @@ public class MapServerTest extends BaseTestCase { MappingEntry[] entries = mappingEntriesSaver.lastValue; assertEquals(1, entries.length); - assertEquals(AbstractLispComponent.ADDRESS_SUBKEY, entries[0].getKey()); - assertEquals(LispAFIConvertor.toContainer(rloc), ((MappingServiceRLOCGroup) entries[0].getValue()).getRecords().get(0) + assertEquals(DAOSubKeys.ADDRESS_SUBKEY.toString(), entries[0].getKey()); + assertEquals(LispAFIConvertor.toContainer(rloc), ((RLOCGroup) entries[0].getValue()).getRecords().get(0) .getLispAddressContainer()); } @@ -480,7 +481,7 @@ public class MapServerTest extends BaseTestCase { assertEquals(1, entries.length); assertEquals(String.valueOf(hc), entries[0].getKey()); - assertEquals(LispAFIConvertor.toContainer(rloc), ((MappingServiceRLOCGroup) entries[0].getValue()).getRecords().get(0) + assertEquals(LispAFIConvertor.toContainer(rloc), ((RLOCGroup) entries[0].getValue()).getRecords().get(0) .getLispAddressContainer()); } @@ -571,16 +572,16 @@ public class MapServerTest extends BaseTestCase { @Test public void handleAddAuthenticationKey() throws Exception { String password = "pass"; - IMappingServiceKey key = getDefualtKey(); + IMappingKey key = getDefualtKey(); oneOf(lispDAO).put(weq(key), - weq((MappingEntry[]) (Arrays.asList(new MappingEntry(AbstractLispComponent.PASSWORD_SUBKEY, password)).toArray()))); + weq((MappingEntry[]) (Arrays.asList(new MappingEntry(DAOSubKeys.PASSWORD_SUBKEY.toString(), password)).toArray()))); testedMapServer.addAuthenticationKey(LispAFIConvertor.toContainer(eid), key.getMask(), password); } @Test public void handleGetAuthenticationKey() throws Exception { - IMappingServiceKey key = getDefualtKey(); - oneOf(lispDAO).getSpecific(weq(key), with(AbstractLispComponent.PASSWORD_SUBKEY)); + IMappingKey key = getDefualtKey(); + oneOf(lispDAO).getSpecific(weq(key), with(DAOSubKeys.PASSWORD_SUBKEY.toString())); ret("password"); assertEquals("password", testedMapServer.getAuthenticationKey(LispAFIConvertor.toContainer(eid), key.getMask())); } @@ -588,18 +589,18 @@ public class MapServerTest extends BaseTestCase { @Test public void handleGetAuthenticationKeyNoIteration() throws Exception { testedMapServer.setShouldIterateMask(false); - IMappingServiceKey key = getDefualtKey(); - IMappingServiceKey passKey = getKey(30); - oneOf(lispDAO).getSpecific(weq(key), with(AbstractLispComponent.PASSWORD_SUBKEY)); - allowing(lispDAO).getSpecific(weq(passKey), with(AbstractLispComponent.PASSWORD_SUBKEY)); + IMappingKey key = getDefualtKey(); + IMappingKey passKey = getKey(30); + oneOf(lispDAO).getSpecific(weq(key), with(DAOSubKeys.PASSWORD_SUBKEY.toString())); + allowing(lispDAO).getSpecific(weq(passKey), with(DAOSubKeys.PASSWORD_SUBKEY.toString())); ret("password"); assertEquals(null, testedMapServer.getAuthenticationKey(LispAFIConvertor.toContainer(eid), key.getMask())); } @Test public void handleRemoveAuthenticationKey() throws Exception { - IMappingServiceKey key = getDefualtKey(); - oneOf(lispDAO).removeSpecific(weq(key), with(AbstractLispComponent.PASSWORD_SUBKEY)); + IMappingKey key = getDefualtKey(); + oneOf(lispDAO).removeSpecific(weq(key), with(DAOSubKeys.PASSWORD_SUBKEY.toString())); testedMapServer.removeAuthenticationKey(LispAFIConvertor.toContainer(eid), key.getMask()); } @@ -613,7 +614,7 @@ public class MapServerTest extends BaseTestCase { } private void addPutExpectations(LispAFIAddress address, int mask) { - oneOf(lispDAO).put(weq(MappingServiceKeyUtil.generateMappingServiceKey(LispAFIConvertor.toContainer(address), mask)), + oneOf(lispDAO).put(weq(MappingKeyUtil.generateMappingKey(LispAFIConvertor.toContainer(address), mask)), with(mappingEntriesSaver)); } @@ -622,29 +623,29 @@ public class MapServerTest extends BaseTestCase { String result = null; result = null; allowing(lispDAO).getSpecific( - with(MappingServiceKeyUtil.generateMappingServiceKey(LispAFIConvertor.toContainer(address), withoutPassword)), with("password")); + with(MappingKeyUtil.generateMappingKey(LispAFIConvertor.toContainer(address), withoutPassword)), with("password")); ret(result); } if (withPassword > 0) { String result = null; result = password; - allowing(lispDAO).getSpecific(with(MappingServiceKeyUtil.generateMappingServiceKey(LispAFIConvertor.toContainer(address), withPassword)), + allowing(lispDAO).getSpecific(with(MappingKeyUtil.generateMappingKey(LispAFIConvertor.toContainer(address), withPassword)), with("password")); ret(result); } for (int i = mask; i >= 0; i--) { - allowing(lispDAO).getSpecific(with(MappingServiceKeyUtil.generateMappingServiceKey(LispAFIConvertor.toContainer(address), i)), + allowing(lispDAO).getSpecific(with(MappingKeyUtil.generateMappingKey(LispAFIConvertor.toContainer(address), i)), with("password")); ret(null); } } - private IMappingServiceKey getDefualtKey() { + private IMappingKey getDefualtKey() { return getKey(32); } - private IMappingServiceKey getKey(int mask) { - IMappingServiceKey key = MappingServiceKeyUtil.generateMappingServiceKey(LispAFIConvertor.toContainer(eid), mask); + private IMappingKey getKey(int mask) { + IMappingKey key = MappingKeyUtil.generateMappingKey(LispAFIConvertor.toContainer(eid), mask); return key; } diff --git a/mappingservice/inmemorydb/src/main/java/org/opendaylight/lispflowmapping/inmemorydb/HashMapDb.java b/mappingservice/inmemorydb/src/main/java/org/opendaylight/lispflowmapping/inmemorydb/HashMapDb.java index 32a8801ac..1fa6b2ce4 100644 --- a/mappingservice/inmemorydb/src/main/java/org/opendaylight/lispflowmapping/inmemorydb/HashMapDb.java +++ b/mappingservice/inmemorydb/src/main/java/org/opendaylight/lispflowmapping/inmemorydb/HashMapDb.java @@ -16,7 +16,7 @@ import java.util.concurrent.TimeUnit; import org.opendaylight.lispflowmapping.interfaces.dao.ILispDAO; import org.opendaylight.lispflowmapping.interfaces.dao.IRowVisitor; import org.opendaylight.lispflowmapping.interfaces.dao.MappingEntry; -import org.opendaylight.lispflowmapping.interfaces.dao.MappingServiceRLOCGroup; +import org.opendaylight.lispflowmapping.interfaces.dao.RLOCGroup; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -80,15 +80,15 @@ public class HashMapDb implements ILispDAO, AutoCloseable { public void cleanOld() { getAll(new IRowVisitor() { public void visitRow(Object keyId, String valueKey, Object value) { - if (value instanceof MappingServiceRLOCGroup) { - MappingServiceRLOCGroup rloc = (MappingServiceRLOCGroup) value; + if (value instanceof RLOCGroup) { + RLOCGroup rloc = (RLOCGroup) value; if (isExpired(rloc)) { removeSpecific(keyId, valueKey); } } } - private boolean isExpired(MappingServiceRLOCGroup rloc) { + private boolean isExpired(RLOCGroup rloc) { return System.currentTimeMillis() - rloc.getRegisterdDate().getTime() > TimeUnit.MILLISECONDS.convert(recordTimeOut, timeUnit); } }); diff --git a/mappingservice/integrationtest/src/test/java/org/opendaylight/lispflowmapping/integrationtest/MappingServiceIntegrationTest.java b/mappingservice/integrationtest/src/test/java/org/opendaylight/lispflowmapping/integrationtest/MappingServiceIntegrationTest.java index 44cdff885..888045ae4 100644 --- a/mappingservice/integrationtest/src/test/java/org/opendaylight/lispflowmapping/integrationtest/MappingServiceIntegrationTest.java +++ b/mappingservice/integrationtest/src/test/java/org/opendaylight/lispflowmapping/integrationtest/MappingServiceIntegrationTest.java @@ -50,15 +50,15 @@ import org.junit.runner.RunWith; import org.opendaylight.controller.mdsal.it.base.AbstractMdsalTestBase; import org.opendaylight.controller.sal.binding.api.NotificationListener; import org.opendaylight.lispflowmapping.implementation.LispMappingService; -import org.opendaylight.lispflowmapping.implementation.serializer.LispMessage; -import org.opendaylight.lispflowmapping.implementation.serializer.MapNotifySerializer; -import org.opendaylight.lispflowmapping.implementation.serializer.MapRegisterSerializer; -import org.opendaylight.lispflowmapping.implementation.serializer.MapReplySerializer; -import org.opendaylight.lispflowmapping.implementation.serializer.MapRequestSerializer; -import org.opendaylight.lispflowmapping.implementation.util.LispAFIConvertor; import org.opendaylight.lispflowmapping.interfaces.lisp.IFlowMapping; -import org.opendaylight.lispflowmapping.type.AddressFamilyNumberEnum; -import org.opendaylight.lispflowmapping.type.LispCanonicalAddressFormatEnum; +import org.opendaylight.lispflowmapping.lisp.type.AddressFamilyNumberEnum; +import org.opendaylight.lispflowmapping.lisp.type.LispCanonicalAddressFormatEnum; +import org.opendaylight.lispflowmapping.lisp.util.LispAFIConvertor; +import org.opendaylight.lispflowmapping.lisp.type.LispMessage; +import org.opendaylight.lispflowmapping.lisp.serializer.MapNotifySerializer; +import org.opendaylight.lispflowmapping.lisp.serializer.MapRegisterSerializer; +import org.opendaylight.lispflowmapping.lisp.serializer.MapReplySerializer; +import org.opendaylight.lispflowmapping.lisp.serializer.MapRequestSerializer; import org.opendaylight.lispflowmapping.type.sbplugin.IConfigLispSouthboundPlugin; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.EidToLocatorRecord.Action; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.LcafApplicationDataAddress; diff --git a/mappingservice/neutron/pom.xml b/mappingservice/neutron/pom.xml index 08dabed63..562bdbf59 100644 --- a/mappingservice/neutron/pom.xml +++ b/mappingservice/neutron/pom.xml @@ -19,10 +19,6 @@ org.opendaylight.lispflowmapping mappingservice.api - - org.opendaylight.lispflowmapping - mappingservice.implementation - org.opendaylight.lispflowmapping mappingservice.yangmodel diff --git a/mappingservice/neutron/src/main/java/org/opendaylight/lispflowmapping/neutron/LispNeutronPortHandler.java b/mappingservice/neutron/src/main/java/org/opendaylight/lispflowmapping/neutron/LispNeutronPortHandler.java index 6df87d191..c98c79c2e 100644 --- a/mappingservice/neutron/src/main/java/org/opendaylight/lispflowmapping/neutron/LispNeutronPortHandler.java +++ b/mappingservice/neutron/src/main/java/org/opendaylight/lispflowmapping/neutron/LispNeutronPortHandler.java @@ -13,7 +13,7 @@ import java.util.List; import java.util.concurrent.Future; import org.apache.commons.lang3.exception.ExceptionUtils; -import org.opendaylight.lispflowmapping.implementation.util.LispAFIConvertor; +import org.opendaylight.lispflowmapping.lisp.util.LispAFIConvertor; import org.opendaylight.neutron.spi.INeutronPortAware; import org.opendaylight.neutron.spi.NeutronPort; import org.opendaylight.neutron.spi.Neutron_IPs; diff --git a/mappingservice/neutron/src/main/java/org/opendaylight/lispflowmapping/neutron/LispNeutronSubnetHandler.java b/mappingservice/neutron/src/main/java/org/opendaylight/lispflowmapping/neutron/LispNeutronSubnetHandler.java index 5d55ef581..f3058bb0c 100644 --- a/mappingservice/neutron/src/main/java/org/opendaylight/lispflowmapping/neutron/LispNeutronSubnetHandler.java +++ b/mappingservice/neutron/src/main/java/org/opendaylight/lispflowmapping/neutron/LispNeutronSubnetHandler.java @@ -13,7 +13,7 @@ import java.net.HttpURLConnection; import org.apache.commons.lang3.exception.ExceptionUtils; import org.apache.commons.net.util.SubnetUtils; import org.apache.commons.net.util.SubnetUtils.SubnetInfo; -import org.opendaylight.lispflowmapping.implementation.util.LispAFIConvertor; +import org.opendaylight.lispflowmapping.lisp.util.LispAFIConvertor; import org.opendaylight.neutron.spi.INeutronSubnetAware; import org.opendaylight.neutron.spi.NeutronSubnet; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.LispAFIAddress; diff --git a/mappingservice/southbound/pom.xml b/mappingservice/southbound/pom.xml index fc4ea7bbd..e311d24f3 100644 --- a/mappingservice/southbound/pom.xml +++ b/mappingservice/southbound/pom.xml @@ -8,9 +8,7 @@ 1.3.0-SNAPSHOT - org.opendaylight.lispflowmapping mappingservice.southbound - 1.3.0-SNAPSHOT bundle Mapping Service Southbound Plugin @@ -22,7 +20,7 @@ ${project.groupId} - mappingservice.implementation + mappingservice.yangmodel ${project.version} diff --git a/mappingservice/southbound/src/main/java/org/opendaylight/lispflowmapping/southbound/LfmControlPlaneRpc.java b/mappingservice/southbound/src/main/java/org/opendaylight/lispflowmapping/southbound/LfmControlPlaneRpc.java index 38f000d42..873465566 100644 --- a/mappingservice/southbound/src/main/java/org/opendaylight/lispflowmapping/southbound/LfmControlPlaneRpc.java +++ b/mappingservice/southbound/src/main/java/org/opendaylight/lispflowmapping/southbound/LfmControlPlaneRpc.java @@ -11,10 +11,10 @@ package org.opendaylight.lispflowmapping.southbound; import java.nio.ByteBuffer; import java.util.concurrent.Future; -import org.opendaylight.lispflowmapping.implementation.serializer.MapNotifySerializer; -import org.opendaylight.lispflowmapping.implementation.serializer.MapRegisterSerializer; -import org.opendaylight.lispflowmapping.implementation.serializer.MapReplySerializer; -import org.opendaylight.lispflowmapping.implementation.serializer.MapRequestSerializer; +import org.opendaylight.lispflowmapping.lisp.serializer.MapNotifySerializer; +import org.opendaylight.lispflowmapping.lisp.serializer.MapRegisterSerializer; +import org.opendaylight.lispflowmapping.lisp.serializer.MapReplySerializer; +import org.opendaylight.lispflowmapping.lisp.serializer.MapRequestSerializer; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.LfmControlPlaneService; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.SendMapNotifyInput; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.SendMapRegisterInput; diff --git a/mappingservice/southbound/src/main/java/org/opendaylight/lispflowmapping/southbound/LispSouthboundPlugin.java b/mappingservice/southbound/src/main/java/org/opendaylight/lispflowmapping/southbound/LispSouthboundPlugin.java index 0cbee80ba..e02fa8eb5 100644 --- a/mappingservice/southbound/src/main/java/org/opendaylight/lispflowmapping/southbound/LispSouthboundPlugin.java +++ b/mappingservice/southbound/src/main/java/org/opendaylight/lispflowmapping/southbound/LispSouthboundPlugin.java @@ -23,7 +23,7 @@ import org.opendaylight.controller.sal.binding.api.BindingAwareBroker.ProviderCo import org.opendaylight.controller.sal.binding.api.BindingAwareProvider; import org.opendaylight.controller.sal.binding.api.NotificationProviderService; import org.opendaylight.controller.sal.binding.api.RpcProviderRegistry; -import org.opendaylight.lispflowmapping.implementation.serializer.LispMessage; +import org.opendaylight.lispflowmapping.lisp.type.LispMessage; import org.opendaylight.lispflowmapping.southbound.lisp.ILispSouthboundService; import org.opendaylight.lispflowmapping.southbound.lisp.LispSouthboundService; import org.opendaylight.lispflowmapping.southbound.lisp.LispXtrSouthboundService; diff --git a/mappingservice/southbound/src/main/java/org/opendaylight/lispflowmapping/southbound/lisp/LispSouthboundService.java b/mappingservice/southbound/src/main/java/org/opendaylight/lispflowmapping/southbound/lisp/LispSouthboundService.java index c69ccec6c..53bc37977 100644 --- a/mappingservice/southbound/src/main/java/org/opendaylight/lispflowmapping/southbound/lisp/LispSouthboundService.java +++ b/mappingservice/southbound/src/main/java/org/opendaylight/lispflowmapping/southbound/lisp/LispSouthboundService.java @@ -13,15 +13,15 @@ import java.net.InetAddress; import java.nio.ByteBuffer; import org.opendaylight.controller.sal.binding.api.NotificationProviderService; -import org.opendaylight.lispflowmapping.implementation.serializer.LispMessage; -import org.opendaylight.lispflowmapping.implementation.serializer.LispMessageEnum; -import org.opendaylight.lispflowmapping.implementation.serializer.MapNotifySerializer; -import org.opendaylight.lispflowmapping.implementation.serializer.MapRegisterSerializer; -import org.opendaylight.lispflowmapping.implementation.serializer.MapReplySerializer; -import org.opendaylight.lispflowmapping.implementation.serializer.MapRequestSerializer; -import org.opendaylight.lispflowmapping.implementation.util.ByteUtil; -import org.opendaylight.lispflowmapping.implementation.util.LispNotificationHelper; -import org.opendaylight.lispflowmapping.implementation.util.MapRequestUtil; +import org.opendaylight.lispflowmapping.southbound.util.LispNotificationHelper; +import org.opendaylight.lispflowmapping.lisp.type.LispMessage; +import org.opendaylight.lispflowmapping.lisp.type.LispMessageEnum; +import org.opendaylight.lispflowmapping.lisp.util.ByteUtil; +import org.opendaylight.lispflowmapping.lisp.util.MapRequestUtil; +import org.opendaylight.lispflowmapping.lisp.serializer.MapNotifySerializer; +import org.opendaylight.lispflowmapping.lisp.serializer.MapRegisterSerializer; +import org.opendaylight.lispflowmapping.lisp.serializer.MapReplySerializer; +import org.opendaylight.lispflowmapping.lisp.serializer.MapRequestSerializer; import org.opendaylight.lispflowmapping.southbound.lisp.exception.LispMalformedPacketException; import org.opendaylight.lispflowmapping.southbound.lisp.network.PacketHeader; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.AddMappingBuilder; diff --git a/mappingservice/southbound/src/main/java/org/opendaylight/lispflowmapping/southbound/lisp/LispXtrSouthboundService.java b/mappingservice/southbound/src/main/java/org/opendaylight/lispflowmapping/southbound/lisp/LispXtrSouthboundService.java index a97bd612e..4a6126dca 100644 --- a/mappingservice/southbound/src/main/java/org/opendaylight/lispflowmapping/southbound/lisp/LispXtrSouthboundService.java +++ b/mappingservice/southbound/src/main/java/org/opendaylight/lispflowmapping/southbound/lisp/LispXtrSouthboundService.java @@ -13,13 +13,13 @@ import java.net.InetAddress; import java.nio.ByteBuffer; import org.opendaylight.controller.sal.binding.api.NotificationProviderService; -import org.opendaylight.lispflowmapping.implementation.serializer.LispMessage; -import org.opendaylight.lispflowmapping.implementation.serializer.LispMessageEnum; -import org.opendaylight.lispflowmapping.implementation.serializer.MapReplySerializer; -import org.opendaylight.lispflowmapping.implementation.serializer.MapRequestSerializer; -import org.opendaylight.lispflowmapping.implementation.util.ByteUtil; -import org.opendaylight.lispflowmapping.implementation.util.LispNotificationHelper; -import org.opendaylight.lispflowmapping.implementation.util.MapRequestUtil; +import org.opendaylight.lispflowmapping.southbound.util.LispNotificationHelper; +import org.opendaylight.lispflowmapping.lisp.type.LispMessage; +import org.opendaylight.lispflowmapping.lisp.type.LispMessageEnum; +import org.opendaylight.lispflowmapping.lisp.util.ByteUtil; +import org.opendaylight.lispflowmapping.lisp.util.MapRequestUtil; +import org.opendaylight.lispflowmapping.lisp.serializer.MapReplySerializer; +import org.opendaylight.lispflowmapping.lisp.serializer.MapRequestSerializer; import org.opendaylight.lispflowmapping.southbound.lisp.exception.LispMalformedPacketException; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.MapReply; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.MapRequest; diff --git a/mappingservice/southbound/src/main/java/org/opendaylight/lispflowmapping/southbound/util/LispNotificationHelper.java b/mappingservice/southbound/src/main/java/org/opendaylight/lispflowmapping/southbound/util/LispNotificationHelper.java new file mode 100644 index 000000000..b145fa484 --- /dev/null +++ b/mappingservice/southbound/src/main/java/org/opendaylight/lispflowmapping/southbound/util/LispNotificationHelper.java @@ -0,0 +1,70 @@ +/* + * Copyright (c) 2014 Contextream, Inc. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ +package org.opendaylight.lispflowmapping.southbound.util; + +import java.net.Inet4Address; +import java.net.InetAddress; + +import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.mapnotifynotification.MapNotify; +import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.mapnotifynotification.MapNotifyBuilder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.mapregisternotification.MapRegister; +import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.mapregisternotification.MapRegisterBuilder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.mapreplynotification.MapReply; +import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.mapreplynotification.MapReplyBuilder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.maprequestnotification.MapRequest; +import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.maprequestnotification.MapRequestBuilder; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.IpAddress; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.Ipv4Address; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.Ipv6Address; + +public class LispNotificationHelper { + public static MapRegister convertMapRegister( + org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.MapRegister mapRegister) { + return new MapRegisterBuilder().setAuthenticationData(mapRegister.getAuthenticationData()) + .setEidToLocatorRecord(mapRegister.getEidToLocatorRecord()).setKeyId(mapRegister.getKeyId()) + .setNonce(mapRegister.getNonce()).setProxyMapReply(mapRegister.isProxyMapReply()) + .setWantMapNotify(mapRegister.isWantMapNotify()).setXtrSiteIdPresent(mapRegister.isXtrSiteIdPresent()) + .setXtrId(mapRegister.getXtrId()).setSiteId(mapRegister.getSiteId()).build(); + } + + public static MapNotify convertMapNotify( + org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.MapNotify mapNotify) { + return new MapNotifyBuilder().setAuthenticationData(mapNotify.getAuthenticationData()) + .setEidToLocatorRecord(mapNotify.getEidToLocatorRecord()).setKeyId(mapNotify.getKeyId()) + .setNonce(mapNotify.getNonce()).setXtrSiteIdPresent(mapNotify.isXtrSiteIdPresent()) + .setXtrId(mapNotify.getXtrId()).setSiteId(mapNotify.getSiteId()).build(); + } + + public static MapRequest convertMapRequest( + org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.MapRequest mapRequest) { + return new MapRequestBuilder().setAuthoritative(mapRequest.isAuthoritative()) + .setEidRecord(mapRequest.getEidRecord()).setItrRloc(mapRequest.getItrRloc()) + .setMapDataPresent(mapRequest.isMapDataPresent()).setMapReply(mapRequest.getMapReply()) + .setNonce(mapRequest.getNonce()).setPitr(mapRequest.isPitr()).setProbe(mapRequest.isProbe()) + .setSmr(mapRequest.isSmr()).setSmrInvoked(mapRequest.isSmrInvoked()) + .setSourceEid(mapRequest.getSourceEid()).build(); + } + + public static MapReply convertMapReply( + org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.MapReply mapReply) { + return new MapReplyBuilder().setEchoNonceEnabled(mapReply.isEchoNonceEnabled()) + .setEidToLocatorRecord(mapReply.getEidToLocatorRecord()).setNonce(mapReply.getNonce()) + .setProbe(mapReply.isProbe()).setSecurityEnabled(mapReply.isSecurityEnabled()).build(); + } + + public static IpAddress getIpAddressFromInetAddress(InetAddress inetAddress) { + if (inetAddress == null) { + inetAddress = InetAddress.getLoopbackAddress(); + } + if (inetAddress instanceof Inet4Address) { + return new IpAddress(new Ipv4Address(inetAddress.getHostAddress())); + } else { + return new IpAddress(new Ipv6Address(inetAddress.getHostAddress())); + } + } +} diff --git a/mappingservice/southbound/src/test/java/org/opendaylight/lispflowmapping/southbound/lisp/LispSouthboundServiceTest.java b/mappingservice/southbound/src/test/java/org/opendaylight/lispflowmapping/southbound/lisp/LispSouthboundServiceTest.java index 0cdc90cd9..d0f3570ef 100644 --- a/mappingservice/southbound/src/test/java/org/opendaylight/lispflowmapping/southbound/lisp/LispSouthboundServiceTest.java +++ b/mappingservice/southbound/src/test/java/org/opendaylight/lispflowmapping/southbound/lisp/LispSouthboundServiceTest.java @@ -27,16 +27,16 @@ import org.junit.Before; import org.junit.Ignore; import org.junit.Test; import org.opendaylight.controller.sal.binding.api.NotificationProviderService; -import org.opendaylight.lispflowmapping.implementation.serializer.LispMessage; -import org.opendaylight.lispflowmapping.implementation.serializer.LispMessageEnum; -import org.opendaylight.lispflowmapping.implementation.serializer.MapNotifySerializer; -import org.opendaylight.lispflowmapping.implementation.serializer.MapReplySerializer; -import org.opendaylight.lispflowmapping.implementation.util.ByteUtil; -import org.opendaylight.lispflowmapping.implementation.util.LispAFIConvertor; -import org.opendaylight.lispflowmapping.implementation.util.MapNotifyBuilderHelper; +import org.opendaylight.lispflowmapping.lisp.type.AddressFamilyNumberEnum; +import org.opendaylight.lispflowmapping.lisp.type.LispMessage; +import org.opendaylight.lispflowmapping.lisp.type.LispMessageEnum; +import org.opendaylight.lispflowmapping.lisp.util.ByteUtil; +import org.opendaylight.lispflowmapping.lisp.util.LispAFIConvertor; +import org.opendaylight.lispflowmapping.lisp.util.MapNotifyBuilderHelper; +import org.opendaylight.lispflowmapping.lisp.serializer.MapNotifySerializer; +import org.opendaylight.lispflowmapping.lisp.serializer.MapReplySerializer; import org.opendaylight.lispflowmapping.southbound.lisp.exception.LispMalformedPacketException; import org.opendaylight.lispflowmapping.tools.junit.BaseTestCase; -import org.opendaylight.lispflowmapping.type.AddressFamilyNumberEnum; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.AddMapping; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.EidToLocatorRecord.Action; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.LispAFIAddress; diff --git a/mappingservice/yangmodel/pom.xml b/mappingservice/yangmodel/pom.xml index b4e62d4e4..c1c665ffb 100644 --- a/mappingservice/yangmodel/pom.xml +++ b/mappingservice/yangmodel/pom.xml @@ -35,5 +35,14 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.yangtools.model yang-ext + + org.apache.commons + commons-lang3 + + + org.opendaylight.lispflowmapping + common.unittest.tools + ${project.version} + diff --git a/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/serializer/EidRecordSerializer.java b/mappingservice/yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp/serializer/EidRecordSerializer.java similarity index 81% rename from mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/serializer/EidRecordSerializer.java rename to mappingservice/yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp/serializer/EidRecordSerializer.java index 4b5e26d21..de1917322 100644 --- a/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/serializer/EidRecordSerializer.java +++ b/mappingservice/yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp/serializer/EidRecordSerializer.java @@ -5,13 +5,13 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ -package org.opendaylight.lispflowmapping.implementation.serializer; +package org.opendaylight.lispflowmapping.lisp.serializer; import java.nio.ByteBuffer; -import org.opendaylight.lispflowmapping.implementation.serializer.address.LispAddressSerializer; -import org.opendaylight.lispflowmapping.implementation.util.ByteUtil; -import org.opendaylight.lispflowmapping.implementation.util.LispAFIConvertor; +import org.opendaylight.lispflowmapping.lisp.serializer.address.LispAddressSerializer; +import org.opendaylight.lispflowmapping.lisp.util.ByteUtil; +import org.opendaylight.lispflowmapping.lisp.util.LispAFIConvertor; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.LispAFIAddress; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.eidrecords.EidRecord; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.eidrecords.EidRecordBuilder; diff --git a/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/serializer/EidToLocatorRecordSerializer.java b/mappingservice/yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp/serializer/EidToLocatorRecordSerializer.java similarity index 92% rename from mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/serializer/EidToLocatorRecordSerializer.java rename to mappingservice/yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp/serializer/EidToLocatorRecordSerializer.java index f24e95ee0..affc658f5 100644 --- a/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/serializer/EidToLocatorRecordSerializer.java +++ b/mappingservice/yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp/serializer/EidToLocatorRecordSerializer.java @@ -5,16 +5,16 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ -package org.opendaylight.lispflowmapping.implementation.serializer; +package org.opendaylight.lispflowmapping.lisp.serializer; import java.nio.ByteBuffer; import java.util.ArrayList; import org.apache.commons.lang3.BooleanUtils; -import org.opendaylight.lispflowmapping.implementation.serializer.address.LispAddressSerializer; -import org.opendaylight.lispflowmapping.implementation.util.ByteUtil; -import org.opendaylight.lispflowmapping.implementation.util.LispAFIConvertor; -import org.opendaylight.lispflowmapping.implementation.util.NumberUtil; +import org.opendaylight.lispflowmapping.lisp.serializer.address.LispAddressSerializer; +import org.opendaylight.lispflowmapping.lisp.util.ByteUtil; +import org.opendaylight.lispflowmapping.lisp.util.LispAFIConvertor; +import org.opendaylight.lispflowmapping.lisp.util.NumberUtil; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.EidToLocatorRecord; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.EidToLocatorRecord.Action; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.LispAFIAddress; diff --git a/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/serializer/LocatorRecordSerializer.java b/mappingservice/yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp/serializer/LocatorRecordSerializer.java similarity index 88% rename from mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/serializer/LocatorRecordSerializer.java rename to mappingservice/yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp/serializer/LocatorRecordSerializer.java index f06dfea22..e370bd1a5 100644 --- a/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/serializer/LocatorRecordSerializer.java +++ b/mappingservice/yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp/serializer/LocatorRecordSerializer.java @@ -5,16 +5,16 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ -package org.opendaylight.lispflowmapping.implementation.serializer; +package org.opendaylight.lispflowmapping.lisp.serializer; import java.nio.ByteBuffer; import org.apache.commons.lang3.BooleanUtils; -import org.opendaylight.lispflowmapping.implementation.serializer.address.LispAddressSerializer; -import org.opendaylight.lispflowmapping.implementation.util.ByteUtil; -import org.opendaylight.lispflowmapping.implementation.util.LispAFIConvertor; -import org.opendaylight.lispflowmapping.implementation.util.LispAddressStringifier; -import org.opendaylight.lispflowmapping.implementation.util.NumberUtil; +import org.opendaylight.lispflowmapping.lisp.serializer.address.LispAddressSerializer; +import org.opendaylight.lispflowmapping.lisp.util.ByteUtil; +import org.opendaylight.lispflowmapping.lisp.util.LispAFIConvertor; +import org.opendaylight.lispflowmapping.lisp.util.LispAddressStringifier; +import org.opendaylight.lispflowmapping.lisp.util.NumberUtil; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.LispAFIAddress; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.lispaddress.LispAddressContainer; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.locatorrecords.LocatorRecord; diff --git a/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/serializer/MapNotifySerializer.java b/mappingservice/yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp/serializer/MapNotifySerializer.java similarity index 87% rename from mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/serializer/MapNotifySerializer.java rename to mappingservice/yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp/serializer/MapNotifySerializer.java index dc813237a..93fd85de9 100644 --- a/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/serializer/MapNotifySerializer.java +++ b/mappingservice/yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp/serializer/MapNotifySerializer.java @@ -5,14 +5,15 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ -package org.opendaylight.lispflowmapping.implementation.serializer; +package org.opendaylight.lispflowmapping.lisp.serializer; import java.nio.ByteBuffer; import java.util.ArrayList; -import org.opendaylight.lispflowmapping.implementation.lisp.exception.LispSerializationException; -import org.opendaylight.lispflowmapping.implementation.util.ByteUtil; -import org.opendaylight.lispflowmapping.implementation.util.NumberUtil; +import org.opendaylight.lispflowmapping.lisp.serializer.exception.LispSerializationException; +import org.opendaylight.lispflowmapping.lisp.type.LispMessageEnum; +import org.opendaylight.lispflowmapping.lisp.util.ByteUtil; +import org.opendaylight.lispflowmapping.lisp.util.NumberUtil; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.MapNotify; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.eidtolocatorrecords.EidToLocatorRecord; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.eidtolocatorrecords.EidToLocatorRecordBuilder; @@ -39,8 +40,8 @@ public class MapNotifySerializer { size += mapNotify.getAuthenticationData().length; } if (mapNotify.isXtrSiteIdPresent() != null && mapNotify.isXtrSiteIdPresent()) { - size += org.opendaylight.lispflowmapping.implementation.serializer.MapRegisterSerializer.Length.XTRID_SIZE + - org.opendaylight.lispflowmapping.implementation.serializer.MapRegisterSerializer.Length.SITEID_SIZE; + size += org.opendaylight.lispflowmapping.lisp.serializer.MapRegisterSerializer.Length.XTRID_SIZE + + org.opendaylight.lispflowmapping.lisp.serializer.MapRegisterSerializer.Length.SITEID_SIZE; } for (EidToLocatorRecord eidToLocatorRecord : mapNotify.getEidToLocatorRecord()) { size += EidToLocatorRecordSerializer.getInstance().getSerializationSize(eidToLocatorRecord); @@ -102,9 +103,9 @@ public class MapNotifySerializer { } if (xtrSiteIdPresent) { - byte[] xtrId = new byte[org.opendaylight.lispflowmapping.implementation.serializer.MapRegisterSerializer.Length.XTRID_SIZE]; + byte[] xtrId = new byte[org.opendaylight.lispflowmapping.lisp.serializer.MapRegisterSerializer.Length.XTRID_SIZE]; notifyBuffer.get(xtrId); - byte[] siteId = new byte[org.opendaylight.lispflowmapping.implementation.serializer.MapRegisterSerializer.Length.SITEID_SIZE]; + byte[] siteId = new byte[org.opendaylight.lispflowmapping.lisp.serializer.MapRegisterSerializer.Length.SITEID_SIZE]; notifyBuffer.get(siteId); builder.setXtrId(xtrId); builder.setSiteId(siteId); diff --git a/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/serializer/MapRegisterSerializer.java b/mappingservice/yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp/serializer/MapRegisterSerializer.java similarity index 94% rename from mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/serializer/MapRegisterSerializer.java rename to mappingservice/yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp/serializer/MapRegisterSerializer.java index 543647f43..3858dd37e 100644 --- a/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/serializer/MapRegisterSerializer.java +++ b/mappingservice/yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp/serializer/MapRegisterSerializer.java @@ -5,15 +5,16 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ -package org.opendaylight.lispflowmapping.implementation.serializer; +package org.opendaylight.lispflowmapping.lisp.serializer; import java.nio.ByteBuffer; import java.util.ArrayList; import org.apache.commons.lang3.BooleanUtils; -import org.opendaylight.lispflowmapping.implementation.lisp.exception.LispSerializationException; -import org.opendaylight.lispflowmapping.implementation.util.ByteUtil; -import org.opendaylight.lispflowmapping.implementation.util.NumberUtil; +import org.opendaylight.lispflowmapping.lisp.serializer.exception.LispSerializationException; +import org.opendaylight.lispflowmapping.lisp.type.LispMessageEnum; +import org.opendaylight.lispflowmapping.lisp.util.ByteUtil; +import org.opendaylight.lispflowmapping.lisp.util.NumberUtil; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.MapRegister; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.eidtolocatorrecords.EidToLocatorRecord; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.eidtolocatorrecords.EidToLocatorRecordBuilder; diff --git a/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/serializer/MapReplySerializer.java b/mappingservice/yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp/serializer/MapReplySerializer.java similarity index 93% rename from mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/serializer/MapReplySerializer.java rename to mappingservice/yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp/serializer/MapReplySerializer.java index 6aa8c2461..ba42cfff1 100644 --- a/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/serializer/MapReplySerializer.java +++ b/mappingservice/yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp/serializer/MapReplySerializer.java @@ -5,14 +5,15 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ -package org.opendaylight.lispflowmapping.implementation.serializer; +package org.opendaylight.lispflowmapping.lisp.serializer; import java.nio.ByteBuffer; import java.util.ArrayList; import org.apache.commons.lang3.BooleanUtils; -import org.opendaylight.lispflowmapping.implementation.util.ByteUtil; -import org.opendaylight.lispflowmapping.implementation.util.NumberUtil; +import org.opendaylight.lispflowmapping.lisp.type.LispMessageEnum; +import org.opendaylight.lispflowmapping.lisp.util.ByteUtil; +import org.opendaylight.lispflowmapping.lisp.util.NumberUtil; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.MapReply; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.eidtolocatorrecords.EidToLocatorRecord; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.eidtolocatorrecords.EidToLocatorRecordBuilder; diff --git a/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/serializer/MapRequestSerializer.java b/mappingservice/yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp/serializer/MapRequestSerializer.java similarity index 94% rename from mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/serializer/MapRequestSerializer.java rename to mappingservice/yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp/serializer/MapRequestSerializer.java index ef3ef1a4e..7f05899e2 100644 --- a/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/serializer/MapRequestSerializer.java +++ b/mappingservice/yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp/serializer/MapRequestSerializer.java @@ -5,17 +5,18 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ -package org.opendaylight.lispflowmapping.implementation.serializer; +package org.opendaylight.lispflowmapping.lisp.serializer; import java.nio.ByteBuffer; import java.util.ArrayList; import org.apache.commons.lang3.BooleanUtils; -import org.opendaylight.lispflowmapping.implementation.lisp.exception.LispSerializationException; -import org.opendaylight.lispflowmapping.implementation.serializer.address.LispAddressSerializer; -import org.opendaylight.lispflowmapping.implementation.util.ByteUtil; -import org.opendaylight.lispflowmapping.implementation.util.LispAFIConvertor; -import org.opendaylight.lispflowmapping.implementation.util.NumberUtil; +import org.opendaylight.lispflowmapping.lisp.serializer.address.LispAddressSerializer; +import org.opendaylight.lispflowmapping.lisp.serializer.exception.LispSerializationException; +import org.opendaylight.lispflowmapping.lisp.type.LispMessageEnum; +import org.opendaylight.lispflowmapping.lisp.util.ByteUtil; +import org.opendaylight.lispflowmapping.lisp.util.LispAFIConvertor; +import org.opendaylight.lispflowmapping.lisp.util.NumberUtil; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.MapRequest; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.eidrecords.EidRecord; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.eidtolocatorrecords.EidToLocatorRecordBuilder; diff --git a/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/serializer/address/LispAddressSerializer.java b/mappingservice/yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp/serializer/address/LispAddressSerializer.java similarity index 88% rename from mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/serializer/address/LispAddressSerializer.java rename to mappingservice/yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp/serializer/address/LispAddressSerializer.java index d6a70616f..3db93f858 100644 --- a/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/serializer/address/LispAddressSerializer.java +++ b/mappingservice/yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp/serializer/address/LispAddressSerializer.java @@ -5,13 +5,13 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ -package org.opendaylight.lispflowmapping.implementation.serializer.address; +package org.opendaylight.lispflowmapping.lisp.serializer.address; import java.nio.ByteBuffer; -import org.opendaylight.lispflowmapping.implementation.lisp.exception.LispSerializationException; -import org.opendaylight.lispflowmapping.implementation.serializer.address.factory.LispAFIAddressSerializerFactory; -import org.opendaylight.lispflowmapping.type.AddressFamilyNumberEnum; +import org.opendaylight.lispflowmapping.lisp.serializer.address.factory.LispAFIAddressSerializerFactory; +import org.opendaylight.lispflowmapping.lisp.serializer.exception.LispSerializationException; +import org.opendaylight.lispflowmapping.lisp.type.AddressFamilyNumberEnum; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.LispAFIAddress; public class LispAddressSerializer { diff --git a/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/serializer/address/LispApplicationDataLCAFAddressSerializer.java b/mappingservice/yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp/serializer/address/LispApplicationDataLCAFAddressSerializer.java similarity index 91% rename from mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/serializer/address/LispApplicationDataLCAFAddressSerializer.java rename to mappingservice/yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp/serializer/address/LispApplicationDataLCAFAddressSerializer.java index a7f815d3d..ed9da17d1 100644 --- a/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/serializer/address/LispApplicationDataLCAFAddressSerializer.java +++ b/mappingservice/yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp/serializer/address/LispApplicationDataLCAFAddressSerializer.java @@ -5,15 +5,15 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ -package org.opendaylight.lispflowmapping.implementation.serializer.address; +package org.opendaylight.lispflowmapping.lisp.serializer.address; import java.nio.ByteBuffer; -import org.opendaylight.lispflowmapping.implementation.util.ByteUtil; -import org.opendaylight.lispflowmapping.implementation.util.LispAFIConvertor; -import org.opendaylight.lispflowmapping.implementation.util.NumberUtil; -import org.opendaylight.lispflowmapping.type.AddressFamilyNumberEnum; -import org.opendaylight.lispflowmapping.type.LispCanonicalAddressFormatEnum; +import org.opendaylight.lispflowmapping.lisp.type.AddressFamilyNumberEnum; +import org.opendaylight.lispflowmapping.lisp.type.LispCanonicalAddressFormatEnum; +import org.opendaylight.lispflowmapping.lisp.util.ByteUtil; +import org.opendaylight.lispflowmapping.lisp.util.LispAFIConvertor; +import org.opendaylight.lispflowmapping.lisp.util.NumberUtil; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.LcafApplicationDataAddress; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.LispAFIAddress; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.lcafapplicationdataaddress.AddressBuilder; diff --git a/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/serializer/address/LispDistinguishedNameAddressSerializer.java b/mappingservice/yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp/serializer/address/LispDistinguishedNameAddressSerializer.java similarity index 93% rename from mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/serializer/address/LispDistinguishedNameAddressSerializer.java rename to mappingservice/yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp/serializer/address/LispDistinguishedNameAddressSerializer.java index 08caf637a..e0e42b3a9 100644 --- a/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/serializer/address/LispDistinguishedNameAddressSerializer.java +++ b/mappingservice/yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp/serializer/address/LispDistinguishedNameAddressSerializer.java @@ -5,11 +5,11 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ -package org.opendaylight.lispflowmapping.implementation.serializer.address; +package org.opendaylight.lispflowmapping.lisp.serializer.address; import java.nio.ByteBuffer; -import org.opendaylight.lispflowmapping.type.AddressFamilyNumberEnum; +import org.opendaylight.lispflowmapping.lisp.type.AddressFamilyNumberEnum; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.LispAFIAddress; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.LispDistinguishedNameAddress; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.lispaddress.lispaddresscontainer.address.distinguishedname.DistinguishedNameBuilder; diff --git a/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/serializer/address/LispIpv4AddressSerializer.java b/mappingservice/yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp/serializer/address/LispIpv4AddressSerializer.java similarity index 93% rename from mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/serializer/address/LispIpv4AddressSerializer.java rename to mappingservice/yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp/serializer/address/LispIpv4AddressSerializer.java index b09c389c5..d1b4b6e41 100644 --- a/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/serializer/address/LispIpv4AddressSerializer.java +++ b/mappingservice/yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp/serializer/address/LispIpv4AddressSerializer.java @@ -5,14 +5,14 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ -package org.opendaylight.lispflowmapping.implementation.serializer.address; +package org.opendaylight.lispflowmapping.lisp.serializer.address; import java.net.Inet4Address; import java.net.InetAddress; import java.net.UnknownHostException; import java.nio.ByteBuffer; -import org.opendaylight.lispflowmapping.type.AddressFamilyNumberEnum; +import org.opendaylight.lispflowmapping.lisp.type.AddressFamilyNumberEnum; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.LispAFIAddress; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.LispIpv4Address; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.lispaddress.lispaddresscontainer.address.ipv4.Ipv4AddressBuilder; diff --git a/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/serializer/address/LispIpv6AddressSerializer.java b/mappingservice/yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp/serializer/address/LispIpv6AddressSerializer.java similarity index 93% rename from mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/serializer/address/LispIpv6AddressSerializer.java rename to mappingservice/yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp/serializer/address/LispIpv6AddressSerializer.java index c15e73f4b..13a1bb827 100644 --- a/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/serializer/address/LispIpv6AddressSerializer.java +++ b/mappingservice/yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp/serializer/address/LispIpv6AddressSerializer.java @@ -5,14 +5,14 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ -package org.opendaylight.lispflowmapping.implementation.serializer.address; +package org.opendaylight.lispflowmapping.lisp.serializer.address; import java.net.Inet6Address; import java.net.InetAddress; import java.net.UnknownHostException; import java.nio.ByteBuffer; -import org.opendaylight.lispflowmapping.type.AddressFamilyNumberEnum; +import org.opendaylight.lispflowmapping.lisp.type.AddressFamilyNumberEnum; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.LispAFIAddress; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.LispIpv6Address; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.lispaddress.lispaddresscontainer.address.ipv6.Ipv6AddressBuilder; diff --git a/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/serializer/address/LispKeyValueLCAFSerializer.java b/mappingservice/yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp/serializer/address/LispKeyValueLCAFSerializer.java similarity index 91% rename from mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/serializer/address/LispKeyValueLCAFSerializer.java rename to mappingservice/yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp/serializer/address/LispKeyValueLCAFSerializer.java index 5ce0d84f4..69f03dc7e 100644 --- a/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/serializer/address/LispKeyValueLCAFSerializer.java +++ b/mappingservice/yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp/serializer/address/LispKeyValueLCAFSerializer.java @@ -5,13 +5,13 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ -package org.opendaylight.lispflowmapping.implementation.serializer.address; +package org.opendaylight.lispflowmapping.lisp.serializer.address; import java.nio.ByteBuffer; -import org.opendaylight.lispflowmapping.implementation.util.LispAFIConvertor; -import org.opendaylight.lispflowmapping.type.AddressFamilyNumberEnum; -import org.opendaylight.lispflowmapping.type.LispCanonicalAddressFormatEnum; +import org.opendaylight.lispflowmapping.lisp.type.AddressFamilyNumberEnum; +import org.opendaylight.lispflowmapping.lisp.type.LispCanonicalAddressFormatEnum; +import org.opendaylight.lispflowmapping.lisp.util.LispAFIConvertor; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.LcafKeyValueAddress; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.LispAFIAddress; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.lcafkeyvalueaddress.KeyBuilder; diff --git a/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/serializer/address/LispLCAFAddressSerializer.java b/mappingservice/yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp/serializer/address/LispLCAFAddressSerializer.java similarity index 88% rename from mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/serializer/address/LispLCAFAddressSerializer.java rename to mappingservice/yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp/serializer/address/LispLCAFAddressSerializer.java index 41bfd3904..392af33c1 100644 --- a/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/serializer/address/LispLCAFAddressSerializer.java +++ b/mappingservice/yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp/serializer/address/LispLCAFAddressSerializer.java @@ -5,14 +5,14 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ -package org.opendaylight.lispflowmapping.implementation.serializer.address; +package org.opendaylight.lispflowmapping.lisp.serializer.address; import java.nio.ByteBuffer; -import org.opendaylight.lispflowmapping.implementation.lisp.exception.LispSerializationException; -import org.opendaylight.lispflowmapping.implementation.serializer.address.factory.LispLCAFAddressSerializerFactory; -import org.opendaylight.lispflowmapping.implementation.util.ByteUtil; -import org.opendaylight.lispflowmapping.type.LispCanonicalAddressFormatEnum; +import org.opendaylight.lispflowmapping.lisp.serializer.address.factory.LispLCAFAddressSerializerFactory; +import org.opendaylight.lispflowmapping.lisp.serializer.exception.LispSerializationException; +import org.opendaylight.lispflowmapping.lisp.type.LispCanonicalAddressFormatEnum; +import org.opendaylight.lispflowmapping.lisp.util.ByteUtil; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.LispAFIAddress; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.LispLcafAddress; diff --git a/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/serializer/address/LispListLCAFAddressSerializer.java b/mappingservice/yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp/serializer/address/LispListLCAFAddressSerializer.java similarity index 90% rename from mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/serializer/address/LispListLCAFAddressSerializer.java rename to mappingservice/yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp/serializer/address/LispListLCAFAddressSerializer.java index e81b73430..6aa6b346e 100644 --- a/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/serializer/address/LispListLCAFAddressSerializer.java +++ b/mappingservice/yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp/serializer/address/LispListLCAFAddressSerializer.java @@ -5,15 +5,15 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ -package org.opendaylight.lispflowmapping.implementation.serializer.address; +package org.opendaylight.lispflowmapping.lisp.serializer.address; import java.nio.ByteBuffer; import java.util.ArrayList; import java.util.List; -import org.opendaylight.lispflowmapping.implementation.util.LispAFIConvertor; -import org.opendaylight.lispflowmapping.type.AddressFamilyNumberEnum; -import org.opendaylight.lispflowmapping.type.LispCanonicalAddressFormatEnum; +import org.opendaylight.lispflowmapping.lisp.type.AddressFamilyNumberEnum; +import org.opendaylight.lispflowmapping.lisp.type.LispCanonicalAddressFormatEnum; +import org.opendaylight.lispflowmapping.lisp.util.LispAFIConvertor; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.LcafListAddress; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.LispAFIAddress; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.lcaflistaddress.Addresses; diff --git a/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/serializer/address/LispMACAddressSerializer.java b/mappingservice/yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp/serializer/address/LispMACAddressSerializer.java similarity index 96% rename from mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/serializer/address/LispMACAddressSerializer.java rename to mappingservice/yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp/serializer/address/LispMACAddressSerializer.java index d0bc4bc8a..0e15d3e8c 100644 --- a/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/serializer/address/LispMACAddressSerializer.java +++ b/mappingservice/yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp/serializer/address/LispMACAddressSerializer.java @@ -5,7 +5,7 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ -package org.opendaylight.lispflowmapping.implementation.serializer.address; +package org.opendaylight.lispflowmapping.lisp.serializer.address; import java.nio.ByteBuffer; diff --git a/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/serializer/address/LispNoAddressSerializer.java b/mappingservice/yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp/serializer/address/LispNoAddressSerializer.java similarity index 91% rename from mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/serializer/address/LispNoAddressSerializer.java rename to mappingservice/yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp/serializer/address/LispNoAddressSerializer.java index ffcd416d4..e43fb1d3e 100644 --- a/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/serializer/address/LispNoAddressSerializer.java +++ b/mappingservice/yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp/serializer/address/LispNoAddressSerializer.java @@ -5,11 +5,11 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ -package org.opendaylight.lispflowmapping.implementation.serializer.address; +package org.opendaylight.lispflowmapping.lisp.serializer.address; import java.nio.ByteBuffer; -import org.opendaylight.lispflowmapping.type.AddressFamilyNumberEnum; +import org.opendaylight.lispflowmapping.lisp.type.AddressFamilyNumberEnum; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.LispAFIAddress; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.LispNoAddress; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.lispaddress.lispaddresscontainer.address.no.NoAddressBuilder; diff --git a/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/serializer/address/LispSegmentLCAFAddressSerializer.java b/mappingservice/yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp/serializer/address/LispSegmentLCAFAddressSerializer.java similarity index 87% rename from mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/serializer/address/LispSegmentLCAFAddressSerializer.java rename to mappingservice/yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp/serializer/address/LispSegmentLCAFAddressSerializer.java index c073c64c1..ea3520522 100644 --- a/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/serializer/address/LispSegmentLCAFAddressSerializer.java +++ b/mappingservice/yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp/serializer/address/LispSegmentLCAFAddressSerializer.java @@ -5,15 +5,15 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ -package org.opendaylight.lispflowmapping.implementation.serializer.address; +package org.opendaylight.lispflowmapping.lisp.serializer.address; import java.nio.ByteBuffer; -import org.opendaylight.lispflowmapping.implementation.lisp.exception.LispSerializationException; -import org.opendaylight.lispflowmapping.implementation.util.ByteUtil; -import org.opendaylight.lispflowmapping.implementation.util.LispAFIConvertor; -import org.opendaylight.lispflowmapping.type.AddressFamilyNumberEnum; -import org.opendaylight.lispflowmapping.type.LispCanonicalAddressFormatEnum; +import org.opendaylight.lispflowmapping.lisp.serializer.exception.LispSerializationException; +import org.opendaylight.lispflowmapping.lisp.type.AddressFamilyNumberEnum; +import org.opendaylight.lispflowmapping.lisp.type.LispCanonicalAddressFormatEnum; +import org.opendaylight.lispflowmapping.lisp.util.ByteUtil; +import org.opendaylight.lispflowmapping.lisp.util.LispAFIConvertor; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.LcafSegmentAddress; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.LispAFIAddress; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.lcafsegmentaddress.AddressBuilder; diff --git a/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/serializer/address/LispSourceDestLCAFAddressSerializer.java b/mappingservice/yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp/serializer/address/LispSourceDestLCAFAddressSerializer.java similarity index 91% rename from mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/serializer/address/LispSourceDestLCAFAddressSerializer.java rename to mappingservice/yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp/serializer/address/LispSourceDestLCAFAddressSerializer.java index 479635d9f..aa926b24b 100644 --- a/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/serializer/address/LispSourceDestLCAFAddressSerializer.java +++ b/mappingservice/yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp/serializer/address/LispSourceDestLCAFAddressSerializer.java @@ -5,14 +5,14 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ -package org.opendaylight.lispflowmapping.implementation.serializer.address; +package org.opendaylight.lispflowmapping.lisp.serializer.address; import java.nio.ByteBuffer; -import org.opendaylight.lispflowmapping.implementation.util.ByteUtil; -import org.opendaylight.lispflowmapping.implementation.util.LispAFIConvertor; -import org.opendaylight.lispflowmapping.type.AddressFamilyNumberEnum; -import org.opendaylight.lispflowmapping.type.LispCanonicalAddressFormatEnum; +import org.opendaylight.lispflowmapping.lisp.type.AddressFamilyNumberEnum; +import org.opendaylight.lispflowmapping.lisp.type.LispCanonicalAddressFormatEnum; +import org.opendaylight.lispflowmapping.lisp.util.ByteUtil; +import org.opendaylight.lispflowmapping.lisp.util.LispAFIConvertor; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.LcafSourceDestAddress; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.LispAFIAddress; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.lcafsourcedestaddress.DstAddressBuilder; diff --git a/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/serializer/address/LispTrafficEngineeringLCAFAddressSerializer.java b/mappingservice/yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp/serializer/address/LispTrafficEngineeringLCAFAddressSerializer.java similarity index 92% rename from mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/serializer/address/LispTrafficEngineeringLCAFAddressSerializer.java rename to mappingservice/yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp/serializer/address/LispTrafficEngineeringLCAFAddressSerializer.java index b676a8241..bfa338bd4 100644 --- a/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/serializer/address/LispTrafficEngineeringLCAFAddressSerializer.java +++ b/mappingservice/yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp/serializer/address/LispTrafficEngineeringLCAFAddressSerializer.java @@ -5,17 +5,17 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ -package org.opendaylight.lispflowmapping.implementation.serializer.address; +package org.opendaylight.lispflowmapping.lisp.serializer.address; import java.nio.ByteBuffer; import java.util.ArrayList; import java.util.List; import org.apache.commons.lang3.BooleanUtils; -import org.opendaylight.lispflowmapping.implementation.util.ByteUtil; -import org.opendaylight.lispflowmapping.implementation.util.LispAFIConvertor; -import org.opendaylight.lispflowmapping.type.AddressFamilyNumberEnum; -import org.opendaylight.lispflowmapping.type.LispCanonicalAddressFormatEnum; +import org.opendaylight.lispflowmapping.lisp.type.AddressFamilyNumberEnum; +import org.opendaylight.lispflowmapping.lisp.type.LispCanonicalAddressFormatEnum; +import org.opendaylight.lispflowmapping.lisp.util.ByteUtil; +import org.opendaylight.lispflowmapping.lisp.util.LispAFIConvertor; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.LcafTrafficEngineeringAddress; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.LispAFIAddress; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.lcaftrafficengineeringaddress.Hops; diff --git a/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/serializer/address/factory/LispAFIAddressSerializerFactory.java b/mappingservice/yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp/serializer/address/factory/LispAFIAddressSerializerFactory.java similarity index 63% rename from mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/serializer/address/factory/LispAFIAddressSerializerFactory.java rename to mappingservice/yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp/serializer/address/factory/LispAFIAddressSerializerFactory.java index 3f1141070..e99568df0 100644 --- a/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/serializer/address/factory/LispAFIAddressSerializerFactory.java +++ b/mappingservice/yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp/serializer/address/factory/LispAFIAddressSerializerFactory.java @@ -5,19 +5,19 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ -package org.opendaylight.lispflowmapping.implementation.serializer.address.factory; +package org.opendaylight.lispflowmapping.lisp.serializer.address.factory; import java.util.HashMap; import java.util.Map; -import org.opendaylight.lispflowmapping.implementation.serializer.address.LispAddressSerializer; -import org.opendaylight.lispflowmapping.implementation.serializer.address.LispDistinguishedNameAddressSerializer; -import org.opendaylight.lispflowmapping.implementation.serializer.address.LispIpv4AddressSerializer; -import org.opendaylight.lispflowmapping.implementation.serializer.address.LispIpv6AddressSerializer; -import org.opendaylight.lispflowmapping.implementation.serializer.address.LispLCAFAddressSerializer; -import org.opendaylight.lispflowmapping.implementation.serializer.address.LispMACAddressSerializer; -import org.opendaylight.lispflowmapping.implementation.serializer.address.LispNoAddressSerializer; -import org.opendaylight.lispflowmapping.type.AddressFamilyNumberEnum; +import org.opendaylight.lispflowmapping.lisp.serializer.address.LispAddressSerializer; +import org.opendaylight.lispflowmapping.lisp.serializer.address.LispDistinguishedNameAddressSerializer; +import org.opendaylight.lispflowmapping.lisp.serializer.address.LispIpv4AddressSerializer; +import org.opendaylight.lispflowmapping.lisp.serializer.address.LispIpv6AddressSerializer; +import org.opendaylight.lispflowmapping.lisp.serializer.address.LispLCAFAddressSerializer; +import org.opendaylight.lispflowmapping.lisp.serializer.address.LispMACAddressSerializer; +import org.opendaylight.lispflowmapping.lisp.serializer.address.LispNoAddressSerializer; +import org.opendaylight.lispflowmapping.lisp.type.AddressFamilyNumberEnum; public class LispAFIAddressSerializerFactory { diff --git a/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/serializer/address/factory/LispLCAFAddressSerializerFactory.java b/mappingservice/yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp/serializer/address/factory/LispLCAFAddressSerializerFactory.java similarity index 64% rename from mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/serializer/address/factory/LispLCAFAddressSerializerFactory.java rename to mappingservice/yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp/serializer/address/factory/LispLCAFAddressSerializerFactory.java index 051bac6eb..12664c90f 100644 --- a/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/serializer/address/factory/LispLCAFAddressSerializerFactory.java +++ b/mappingservice/yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp/serializer/address/factory/LispLCAFAddressSerializerFactory.java @@ -5,19 +5,19 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ -package org.opendaylight.lispflowmapping.implementation.serializer.address.factory; +package org.opendaylight.lispflowmapping.lisp.serializer.address.factory; import java.util.HashMap; import java.util.Map; -import org.opendaylight.lispflowmapping.implementation.serializer.address.LispApplicationDataLCAFAddressSerializer; -import org.opendaylight.lispflowmapping.implementation.serializer.address.LispKeyValueLCAFSerializer; -import org.opendaylight.lispflowmapping.implementation.serializer.address.LispLCAFAddressSerializer; -import org.opendaylight.lispflowmapping.implementation.serializer.address.LispListLCAFAddressSerializer; -import org.opendaylight.lispflowmapping.implementation.serializer.address.LispSegmentLCAFAddressSerializer; -import org.opendaylight.lispflowmapping.implementation.serializer.address.LispSourceDestLCAFAddressSerializer; -import org.opendaylight.lispflowmapping.implementation.serializer.address.LispTrafficEngineeringLCAFAddressSerializer; -import org.opendaylight.lispflowmapping.type.LispCanonicalAddressFormatEnum; +import org.opendaylight.lispflowmapping.lisp.serializer.address.LispApplicationDataLCAFAddressSerializer; +import org.opendaylight.lispflowmapping.lisp.serializer.address.LispKeyValueLCAFSerializer; +import org.opendaylight.lispflowmapping.lisp.serializer.address.LispLCAFAddressSerializer; +import org.opendaylight.lispflowmapping.lisp.serializer.address.LispListLCAFAddressSerializer; +import org.opendaylight.lispflowmapping.lisp.serializer.address.LispSegmentLCAFAddressSerializer; +import org.opendaylight.lispflowmapping.lisp.serializer.address.LispSourceDestLCAFAddressSerializer; +import org.opendaylight.lispflowmapping.lisp.serializer.address.LispTrafficEngineeringLCAFAddressSerializer; +import org.opendaylight.lispflowmapping.lisp.type.LispCanonicalAddressFormatEnum; public class LispLCAFAddressSerializerFactory { diff --git a/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/lisp/exception/LispSerializationException.java b/mappingservice/yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp/serializer/exception/LispSerializationException.java similarity index 89% rename from mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/lisp/exception/LispSerializationException.java rename to mappingservice/yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp/serializer/exception/LispSerializationException.java index 67709089e..d3b230420 100644 --- a/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/lisp/exception/LispSerializationException.java +++ b/mappingservice/yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp/serializer/exception/LispSerializationException.java @@ -5,7 +5,7 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ -package org.opendaylight.lispflowmapping.implementation.lisp.exception; +package org.opendaylight.lispflowmapping.lisp.serializer.exception; public class LispSerializationException extends RuntimeException { diff --git a/mappingservice/api/src/main/java/org/opendaylight/lispflowmapping/type/AddressFamilyNumberEnum.java b/mappingservice/yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp/type/AddressFamilyNumberEnum.java similarity index 95% rename from mappingservice/api/src/main/java/org/opendaylight/lispflowmapping/type/AddressFamilyNumberEnum.java rename to mappingservice/yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp/type/AddressFamilyNumberEnum.java index 67da57985..dd22eb936 100644 --- a/mappingservice/api/src/main/java/org/opendaylight/lispflowmapping/type/AddressFamilyNumberEnum.java +++ b/mappingservice/yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp/type/AddressFamilyNumberEnum.java @@ -6,7 +6,7 @@ * and is available at http://www.eclipse.org/legal/epl-v10.html */ -package org.opendaylight.lispflowmapping.type; +package org.opendaylight.lispflowmapping.lisp.type; /** * The AFI enum: diff --git a/mappingservice/api/src/main/java/org/opendaylight/lispflowmapping/type/LispCanonicalAddressFormatEnum.java b/mappingservice/yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp/type/LispCanonicalAddressFormatEnum.java similarity index 95% rename from mappingservice/api/src/main/java/org/opendaylight/lispflowmapping/type/LispCanonicalAddressFormatEnum.java rename to mappingservice/yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp/type/LispCanonicalAddressFormatEnum.java index 05ce54cd3..4fe863716 100644 --- a/mappingservice/api/src/main/java/org/opendaylight/lispflowmapping/type/LispCanonicalAddressFormatEnum.java +++ b/mappingservice/yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp/type/LispCanonicalAddressFormatEnum.java @@ -6,7 +6,7 @@ * and is available at http://www.eclipse.org/legal/epl-v10.html */ -package org.opendaylight.lispflowmapping.type; +package org.opendaylight.lispflowmapping.lisp.type; /** * The LCAF enum. http://tools.ietf.org/html/draft-ietf-lisp-lcaf-03 diff --git a/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/serializer/LispMessage.java b/mappingservice/yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp/type/LispMessage.java similarity index 86% rename from mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/serializer/LispMessage.java rename to mappingservice/yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp/type/LispMessage.java index 69585eb56..e339fa385 100644 --- a/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/serializer/LispMessage.java +++ b/mappingservice/yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp/type/LispMessage.java @@ -6,7 +6,7 @@ * and is available at http://www.eclipse.org/legal/epl-v10.html */ -package org.opendaylight.lispflowmapping.implementation.serializer; +package org.opendaylight.lispflowmapping.lisp.type; public interface LispMessage { int PORT_NUM = 4342; diff --git a/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/serializer/LispMessageEnum.java b/mappingservice/yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp/type/LispMessageEnum.java similarity index 93% rename from mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/serializer/LispMessageEnum.java rename to mappingservice/yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp/type/LispMessageEnum.java index d0c90c8cd..5f8e64dd0 100644 --- a/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/serializer/LispMessageEnum.java +++ b/mappingservice/yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp/type/LispMessageEnum.java @@ -6,7 +6,7 @@ * and is available at http://www.eclipse.org/legal/epl-v10.html */ -package org.opendaylight.lispflowmapping.implementation.serializer; +package org.opendaylight.lispflowmapping.lisp.type; public enum LispMessageEnum { MapRequest((byte) 1), // diff --git a/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/util/ByteUtil.java b/mappingservice/yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp/util/ByteUtil.java similarity index 97% rename from mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/util/ByteUtil.java rename to mappingservice/yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp/util/ByteUtil.java index 6d347e47d..b46c8fe37 100644 --- a/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/util/ByteUtil.java +++ b/mappingservice/yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp/util/ByteUtil.java @@ -6,7 +6,7 @@ * and is available at http://www.eclipse.org/legal/epl-v10.html */ -package org.opendaylight.lispflowmapping.implementation.util; +package org.opendaylight.lispflowmapping.lisp.util; import java.nio.ByteBuffer; diff --git a/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/util/LispAFIConvertor.java b/mappingservice/yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp/util/LispAFIConvertor.java similarity index 99% rename from mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/util/LispAFIConvertor.java rename to mappingservice/yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp/util/LispAFIConvertor.java index a630dcf25..232444596 100644 --- a/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/util/LispAFIConvertor.java +++ b/mappingservice/yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp/util/LispAFIConvertor.java @@ -5,14 +5,14 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ -package org.opendaylight.lispflowmapping.implementation.util; +package org.opendaylight.lispflowmapping.lisp.util; import java.net.Inet4Address; import java.net.Inet6Address; import java.net.InetAddress; -import org.opendaylight.lispflowmapping.type.AddressFamilyNumberEnum; -import org.opendaylight.lispflowmapping.type.LispCanonicalAddressFormatEnum; +import org.opendaylight.lispflowmapping.lisp.type.AddressFamilyNumberEnum; +import org.opendaylight.lispflowmapping.lisp.type.LispCanonicalAddressFormatEnum; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.LispAFIAddress; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.lcafkeyvalueaddress.KeyBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.lcafkeyvalueaddress.ValueBuilder; diff --git a/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/util/LispAddressStringifier.java b/mappingservice/yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp/util/LispAddressStringifier.java similarity index 99% rename from mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/util/LispAddressStringifier.java rename to mappingservice/yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp/util/LispAddressStringifier.java index 4c3c6c73e..9d5f7760e 100644 --- a/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/util/LispAddressStringifier.java +++ b/mappingservice/yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp/util/LispAddressStringifier.java @@ -5,7 +5,7 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ -package org.opendaylight.lispflowmapping.implementation.util; +package org.opendaylight.lispflowmapping.lisp.util; import java.util.List; diff --git a/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/util/LispPrimitiveAddressStringifier.java b/mappingservice/yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp/util/LispPrimitiveAddressStringifier.java similarity index 95% rename from mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/util/LispPrimitiveAddressStringifier.java rename to mappingservice/yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp/util/LispPrimitiveAddressStringifier.java index a238ab076..39f67824c 100644 --- a/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/util/LispPrimitiveAddressStringifier.java +++ b/mappingservice/yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp/util/LispPrimitiveAddressStringifier.java @@ -5,9 +5,9 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ -package org.opendaylight.lispflowmapping.implementation.util; +package org.opendaylight.lispflowmapping.lisp.util; -import org.opendaylight.lispflowmapping.implementation.util.LispAddressStringifier.Destination; +import org.opendaylight.lispflowmapping.lisp.util.LispAddressStringifier.Destination; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.lispsimpleaddress.PrimitiveAddress; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.lispsimpleaddress.primitiveaddress.AS; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.lispsimpleaddress.primitiveaddress.DistinguishedName; diff --git a/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/util/MapNotifyBuilderHelper.java b/mappingservice/yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp/util/MapNotifyBuilderHelper.java similarity index 96% rename from mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/util/MapNotifyBuilderHelper.java rename to mappingservice/yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp/util/MapNotifyBuilderHelper.java index 03c8a35e2..0c7fb5700 100644 --- a/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/util/MapNotifyBuilderHelper.java +++ b/mappingservice/yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp/util/MapNotifyBuilderHelper.java @@ -5,7 +5,7 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ -package org.opendaylight.lispflowmapping.implementation.util; +package org.opendaylight.lispflowmapping.lisp.util; import java.util.ArrayList; import java.util.Arrays; diff --git a/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/util/MapRequestUtil.java b/mappingservice/yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp/util/MapRequestUtil.java similarity index 59% rename from mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/util/MapRequestUtil.java rename to mappingservice/yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp/util/MapRequestUtil.java index dab186459..8a325cf7c 100644 --- a/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/util/MapRequestUtil.java +++ b/mappingservice/yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp/util/MapRequestUtil.java @@ -5,16 +5,22 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ -package org.opendaylight.lispflowmapping.implementation.util; +package org.opendaylight.lispflowmapping.lisp.util; import java.net.InetAddress; import java.net.UnknownHostException; +import java.util.ArrayList; +import java.util.Random; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.MapRequest; +import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.lispaddress.LispAddressContainer; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.lispaddress.lispaddresscontainer.Address; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.lispaddress.lispaddresscontainer.address.Ipv4; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.lispaddress.lispaddresscontainer.address.Ipv6; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.maprequest.ItrRloc; +import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.maprequest.ItrRlocBuilder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.maprequest.SourceEidBuilder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.maprequestnotification.MapRequestBuilder; public class MapRequestUtil { public static InetAddress selectItrRloc(MapRequest request) { @@ -41,4 +47,23 @@ public class MapRequestUtil { } return selectedItrRloc; } + + public static MapRequestBuilder prepareSMR(LispAddressContainer srcEid, LispAddressContainer itrRloc) { + MapRequestBuilder builder = new MapRequestBuilder(); + builder.setAuthoritative(false); + builder.setMapDataPresent(false); + builder.setPitr(false); + builder.setProbe(false); + builder.setSmr(true); + builder.setSmrInvoked(false); + + builder.setSourceEid(new SourceEidBuilder().setLispAddressContainer(srcEid).build()); + builder.setItrRloc(new ArrayList()); + builder.getItrRloc().add(new ItrRlocBuilder().setLispAddressContainer(itrRloc).build()); + builder.setMapReply(null); + builder.setNonce(new Random().nextLong()); + + return builder; + } + } diff --git a/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/util/MapServerMapResolverUtil.java b/mappingservice/yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp/util/MapServerMapResolverUtil.java similarity index 98% rename from mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/util/MapServerMapResolverUtil.java rename to mappingservice/yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp/util/MapServerMapResolverUtil.java index 73225c68f..24508ec0c 100644 --- a/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/util/MapServerMapResolverUtil.java +++ b/mappingservice/yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp/util/MapServerMapResolverUtil.java @@ -5,7 +5,7 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ -package org.opendaylight.lispflowmapping.implementation.util; +package org.opendaylight.lispflowmapping.lisp.util; import java.util.ArrayList; import java.util.List; diff --git a/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/util/NumberUtil.java b/mappingservice/yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp/util/NumberUtil.java similarity index 93% rename from mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/util/NumberUtil.java rename to mappingservice/yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp/util/NumberUtil.java index b8e621931..610df5c7f 100644 --- a/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/util/NumberUtil.java +++ b/mappingservice/yangmodel/src/main/java/org/opendaylight/lispflowmapping/lisp/util/NumberUtil.java @@ -5,7 +5,7 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ -package org.opendaylight.lispflowmapping.implementation.util; +package org.opendaylight.lispflowmapping.lisp.util; public class NumberUtil { diff --git a/mappingservice/implementation/src/test/java/org/opendaylight/lispflowmapping/implementation/serializer/MapNotifySerializationTest.java b/mappingservice/yangmodel/src/test/java/org/opendaylight/lispflowmapping/serializer/MapNotifySerializationTest.java similarity index 98% rename from mappingservice/implementation/src/test/java/org/opendaylight/lispflowmapping/implementation/serializer/MapNotifySerializationTest.java rename to mappingservice/yangmodel/src/test/java/org/opendaylight/lispflowmapping/serializer/MapNotifySerializationTest.java index a995197e9..212e1dd60 100644 --- a/mappingservice/implementation/src/test/java/org/opendaylight/lispflowmapping/implementation/serializer/MapNotifySerializationTest.java +++ b/mappingservice/yangmodel/src/test/java/org/opendaylight/lispflowmapping/serializer/MapNotifySerializationTest.java @@ -6,7 +6,7 @@ * and is available at http://www.eclipse.org/legal/epl-v10.html */ -package org.opendaylight.lispflowmapping.implementation.serializer; +package org.opendaylight.lispflowmapping.serializer; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; @@ -18,10 +18,11 @@ import java.util.ArrayList; import junitx.framework.ArrayAssert; import org.junit.Test; -import org.opendaylight.lispflowmapping.implementation.lisp.exception.LispSerializationException; -import org.opendaylight.lispflowmapping.implementation.util.LispAFIConvertor; +import org.opendaylight.lispflowmapping.lisp.serializer.MapNotifySerializer; +import org.opendaylight.lispflowmapping.lisp.serializer.exception.LispSerializationException; +import org.opendaylight.lispflowmapping.lisp.type.AddressFamilyNumberEnum; +import org.opendaylight.lispflowmapping.lisp.util.LispAFIConvertor; import org.opendaylight.lispflowmapping.tools.junit.BaseTestCase; -import org.opendaylight.lispflowmapping.type.AddressFamilyNumberEnum; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.EidToLocatorRecord.Action; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.MapNotify; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.eidtolocatorrecords.EidToLocatorRecord; diff --git a/mappingservice/implementation/src/test/java/org/opendaylight/lispflowmapping/implementation/serializer/MapRegisterSerializationTest.java b/mappingservice/yangmodel/src/test/java/org/opendaylight/lispflowmapping/serializer/MapRegisterSerializationTest.java similarity index 98% rename from mappingservice/implementation/src/test/java/org/opendaylight/lispflowmapping/implementation/serializer/MapRegisterSerializationTest.java rename to mappingservice/yangmodel/src/test/java/org/opendaylight/lispflowmapping/serializer/MapRegisterSerializationTest.java index c2ac27e9a..8c86fdda6 100644 --- a/mappingservice/implementation/src/test/java/org/opendaylight/lispflowmapping/implementation/serializer/MapRegisterSerializationTest.java +++ b/mappingservice/yangmodel/src/test/java/org/opendaylight/lispflowmapping/serializer/MapRegisterSerializationTest.java @@ -6,7 +6,7 @@ * and is available at http://www.eclipse.org/legal/epl-v10.html */ -package org.opendaylight.lispflowmapping.implementation.serializer; +package org.opendaylight.lispflowmapping.serializer; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; @@ -18,11 +18,12 @@ import java.util.ArrayList; import junitx.framework.ArrayAssert; import org.junit.Test; -import org.opendaylight.lispflowmapping.implementation.lisp.exception.LispSerializationException; -import org.opendaylight.lispflowmapping.implementation.serializer.MapRegisterSerializer.Length; -import org.opendaylight.lispflowmapping.implementation.util.LispAFIConvertor; +import org.opendaylight.lispflowmapping.lisp.serializer.MapRegisterSerializer; +import org.opendaylight.lispflowmapping.lisp.serializer.MapRegisterSerializer.Length; +import org.opendaylight.lispflowmapping.lisp.serializer.exception.LispSerializationException; +import org.opendaylight.lispflowmapping.lisp.type.AddressFamilyNumberEnum; +import org.opendaylight.lispflowmapping.lisp.util.LispAFIConvertor; import org.opendaylight.lispflowmapping.tools.junit.BaseTestCase; -import org.opendaylight.lispflowmapping.type.AddressFamilyNumberEnum; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.EidToLocatorRecord.Action; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.MapRegister; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.eidtolocatorrecords.EidToLocatorRecord; diff --git a/mappingservice/implementation/src/test/java/org/opendaylight/lispflowmapping/implementation/serializer/MapReplySerializationTest.java b/mappingservice/yangmodel/src/test/java/org/opendaylight/lispflowmapping/serializer/MapReplySerializationTest.java similarity index 98% rename from mappingservice/implementation/src/test/java/org/opendaylight/lispflowmapping/implementation/serializer/MapReplySerializationTest.java rename to mappingservice/yangmodel/src/test/java/org/opendaylight/lispflowmapping/serializer/MapReplySerializationTest.java index 8c1206028..3e060e904 100644 --- a/mappingservice/implementation/src/test/java/org/opendaylight/lispflowmapping/implementation/serializer/MapReplySerializationTest.java +++ b/mappingservice/yangmodel/src/test/java/org/opendaylight/lispflowmapping/serializer/MapReplySerializationTest.java @@ -6,7 +6,7 @@ * and is available at http://www.eclipse.org/legal/epl-v10.html */ -package org.opendaylight.lispflowmapping.implementation.serializer; +package org.opendaylight.lispflowmapping.serializer; import static org.junit.Assert.assertEquals; @@ -17,7 +17,8 @@ import junitx.framework.ArrayAssert; import org.junit.Ignore; import org.junit.Test; -import org.opendaylight.lispflowmapping.implementation.util.LispAFIConvertor; +import org.opendaylight.lispflowmapping.lisp.serializer.MapReplySerializer; +import org.opendaylight.lispflowmapping.lisp.util.LispAFIConvertor; import org.opendaylight.lispflowmapping.tools.junit.BaseTestCase; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.EidToLocatorRecord.Action; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.MapReply; diff --git a/mappingservice/implementation/src/test/java/org/opendaylight/lispflowmapping/implementation/serializer/MapRequestSerializationTest.java b/mappingservice/yangmodel/src/test/java/org/opendaylight/lispflowmapping/serializer/MapRequestSerializationTest.java similarity index 98% rename from mappingservice/implementation/src/test/java/org/opendaylight/lispflowmapping/implementation/serializer/MapRequestSerializationTest.java rename to mappingservice/yangmodel/src/test/java/org/opendaylight/lispflowmapping/serializer/MapRequestSerializationTest.java index 8c4aac615..cee6b7597 100644 --- a/mappingservice/implementation/src/test/java/org/opendaylight/lispflowmapping/implementation/serializer/MapRequestSerializationTest.java +++ b/mappingservice/yangmodel/src/test/java/org/opendaylight/lispflowmapping/serializer/MapRequestSerializationTest.java @@ -6,7 +6,7 @@ * and is available at http://www.eclipse.org/legal/epl-v10.html */ -package org.opendaylight.lispflowmapping.implementation.serializer; +package org.opendaylight.lispflowmapping.serializer; import static org.junit.Assert.assertArrayEquals; import static org.junit.Assert.assertEquals; @@ -17,9 +17,10 @@ import java.nio.ByteBuffer; import java.util.ArrayList; import org.junit.Test; -import org.opendaylight.lispflowmapping.implementation.util.LispAFIConvertor; +import org.opendaylight.lispflowmapping.lisp.serializer.MapRequestSerializer; +import org.opendaylight.lispflowmapping.lisp.type.AddressFamilyNumberEnum; +import org.opendaylight.lispflowmapping.lisp.util.LispAFIConvertor; import org.opendaylight.lispflowmapping.tools.junit.BaseTestCase; -import org.opendaylight.lispflowmapping.type.AddressFamilyNumberEnum; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.EidToLocatorRecord.Action; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.MapRequest; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.eidrecords.EidRecord; diff --git a/mappingservice/implementation/src/test/java/org/opendaylight/lispflowmapping/implementation/serializer/address/LispApplicationDataLCAFAddressTest.java b/mappingservice/yangmodel/src/test/java/org/opendaylight/lispflowmapping/serializer/address/LispApplicationDataLCAFAddressTest.java similarity index 91% rename from mappingservice/implementation/src/test/java/org/opendaylight/lispflowmapping/implementation/serializer/address/LispApplicationDataLCAFAddressTest.java rename to mappingservice/yangmodel/src/test/java/org/opendaylight/lispflowmapping/serializer/address/LispApplicationDataLCAFAddressTest.java index a39a912f0..05702dd00 100644 --- a/mappingservice/implementation/src/test/java/org/opendaylight/lispflowmapping/implementation/serializer/address/LispApplicationDataLCAFAddressTest.java +++ b/mappingservice/yangmodel/src/test/java/org/opendaylight/lispflowmapping/serializer/address/LispApplicationDataLCAFAddressTest.java @@ -5,7 +5,7 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ -package org.opendaylight.lispflowmapping.implementation.serializer.address; +package org.opendaylight.lispflowmapping.serializer.address; import static org.junit.Assert.assertEquals; @@ -14,12 +14,13 @@ import java.nio.ByteBuffer; import junitx.framework.ArrayAssert; import org.junit.Test; -import org.opendaylight.lispflowmapping.implementation.lisp.exception.LispSerializationException; -import org.opendaylight.lispflowmapping.implementation.util.ByteUtil; -import org.opendaylight.lispflowmapping.implementation.util.LispAFIConvertor; +import org.opendaylight.lispflowmapping.lisp.serializer.address.LispAddressSerializer; +import org.opendaylight.lispflowmapping.lisp.serializer.exception.LispSerializationException; +import org.opendaylight.lispflowmapping.lisp.type.AddressFamilyNumberEnum; +import org.opendaylight.lispflowmapping.lisp.type.LispCanonicalAddressFormatEnum; +import org.opendaylight.lispflowmapping.lisp.util.ByteUtil; +import org.opendaylight.lispflowmapping.lisp.util.LispAFIConvertor; import org.opendaylight.lispflowmapping.tools.junit.BaseTestCase; -import org.opendaylight.lispflowmapping.type.AddressFamilyNumberEnum; -import org.opendaylight.lispflowmapping.type.LispCanonicalAddressFormatEnum; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.LcafApplicationDataAddress; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.LispAFIAddress; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.lcafapplicationdataaddress.AddressBuilder; diff --git a/mappingservice/implementation/src/test/java/org/opendaylight/lispflowmapping/implementation/serializer/address/LispDistinguishedNameAddressSerializerTest.java b/mappingservice/yangmodel/src/test/java/org/opendaylight/lispflowmapping/serializer/address/LispDistinguishedNameAddressSerializerTest.java similarity index 90% rename from mappingservice/implementation/src/test/java/org/opendaylight/lispflowmapping/implementation/serializer/address/LispDistinguishedNameAddressSerializerTest.java rename to mappingservice/yangmodel/src/test/java/org/opendaylight/lispflowmapping/serializer/address/LispDistinguishedNameAddressSerializerTest.java index 4d1696c47..d6fd5d6ac 100644 --- a/mappingservice/implementation/src/test/java/org/opendaylight/lispflowmapping/implementation/serializer/address/LispDistinguishedNameAddressSerializerTest.java +++ b/mappingservice/yangmodel/src/test/java/org/opendaylight/lispflowmapping/serializer/address/LispDistinguishedNameAddressSerializerTest.java @@ -5,7 +5,7 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ -package org.opendaylight.lispflowmapping.implementation.serializer.address; +package org.opendaylight.lispflowmapping.serializer.address; import static org.junit.Assert.assertEquals; @@ -14,11 +14,12 @@ import java.nio.ByteBuffer; import junitx.framework.ArrayAssert; import org.junit.Test; -import org.opendaylight.lispflowmapping.implementation.lisp.exception.LispSerializationException; -import org.opendaylight.lispflowmapping.implementation.util.LispAFIConvertor; +import org.opendaylight.lispflowmapping.lisp.serializer.address.LispAddressSerializer; +import org.opendaylight.lispflowmapping.lisp.serializer.exception.LispSerializationException; +import org.opendaylight.lispflowmapping.lisp.type.AddressFamilyNumberEnum; +import org.opendaylight.lispflowmapping.lisp.type.LispCanonicalAddressFormatEnum; +import org.opendaylight.lispflowmapping.lisp.util.LispAFIConvertor; import org.opendaylight.lispflowmapping.tools.junit.BaseTestCase; -import org.opendaylight.lispflowmapping.type.AddressFamilyNumberEnum; -import org.opendaylight.lispflowmapping.type.LispCanonicalAddressFormatEnum; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.LcafListAddress; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.LispAFIAddress; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.LispDistinguishedNameAddress; diff --git a/mappingservice/implementation/src/test/java/org/opendaylight/lispflowmapping/implementation/serializer/address/LispIpv6AddressTest.java b/mappingservice/yangmodel/src/test/java/org/opendaylight/lispflowmapping/serializer/address/LispIpv6AddressTest.java similarity index 83% rename from mappingservice/implementation/src/test/java/org/opendaylight/lispflowmapping/implementation/serializer/address/LispIpv6AddressTest.java rename to mappingservice/yangmodel/src/test/java/org/opendaylight/lispflowmapping/serializer/address/LispIpv6AddressTest.java index b0f78bc3b..0a46cbdd7 100644 --- a/mappingservice/implementation/src/test/java/org/opendaylight/lispflowmapping/implementation/serializer/address/LispIpv6AddressTest.java +++ b/mappingservice/yangmodel/src/test/java/org/opendaylight/lispflowmapping/serializer/address/LispIpv6AddressTest.java @@ -6,14 +6,15 @@ * and is available at http://www.eclipse.org/legal/epl-v10.html */ -package org.opendaylight.lispflowmapping.implementation.serializer.address; +package org.opendaylight.lispflowmapping.serializer.address; import static org.junit.Assert.assertEquals; import org.junit.Test; -import org.opendaylight.lispflowmapping.implementation.util.LispAFIConvertor; +import org.opendaylight.lispflowmapping.lisp.serializer.address.LispAddressSerializer; +import org.opendaylight.lispflowmapping.lisp.type.AddressFamilyNumberEnum; +import org.opendaylight.lispflowmapping.lisp.util.LispAFIConvertor; import org.opendaylight.lispflowmapping.tools.junit.BaseTestCase; -import org.opendaylight.lispflowmapping.type.AddressFamilyNumberEnum; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.lispaddress.lispaddresscontainer.address.ipv6.Ipv6Address; public class LispIpv6AddressTest extends BaseTestCase { diff --git a/mappingservice/implementation/src/test/java/org/opendaylight/lispflowmapping/implementation/serializer/address/LispKeyValueLCAFAddressTest.java b/mappingservice/yangmodel/src/test/java/org/opendaylight/lispflowmapping/serializer/address/LispKeyValueLCAFAddressTest.java similarity index 90% rename from mappingservice/implementation/src/test/java/org/opendaylight/lispflowmapping/implementation/serializer/address/LispKeyValueLCAFAddressTest.java rename to mappingservice/yangmodel/src/test/java/org/opendaylight/lispflowmapping/serializer/address/LispKeyValueLCAFAddressTest.java index fc6d2a00d..96511dc92 100644 --- a/mappingservice/implementation/src/test/java/org/opendaylight/lispflowmapping/implementation/serializer/address/LispKeyValueLCAFAddressTest.java +++ b/mappingservice/yangmodel/src/test/java/org/opendaylight/lispflowmapping/serializer/address/LispKeyValueLCAFAddressTest.java @@ -5,7 +5,7 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ -package org.opendaylight.lispflowmapping.implementation.serializer.address; +package org.opendaylight.lispflowmapping.serializer.address; import static org.junit.Assert.assertEquals; @@ -14,11 +14,12 @@ import java.nio.ByteBuffer; import junitx.framework.ArrayAssert; import org.junit.Test; -import org.opendaylight.lispflowmapping.implementation.lisp.exception.LispSerializationException; -import org.opendaylight.lispflowmapping.implementation.util.LispAFIConvertor; +import org.opendaylight.lispflowmapping.lisp.serializer.address.LispAddressSerializer; +import org.opendaylight.lispflowmapping.lisp.serializer.exception.LispSerializationException; +import org.opendaylight.lispflowmapping.lisp.type.AddressFamilyNumberEnum; +import org.opendaylight.lispflowmapping.lisp.type.LispCanonicalAddressFormatEnum; +import org.opendaylight.lispflowmapping.lisp.util.LispAFIConvertor; import org.opendaylight.lispflowmapping.tools.junit.BaseTestCase; -import org.opendaylight.lispflowmapping.type.AddressFamilyNumberEnum; -import org.opendaylight.lispflowmapping.type.LispCanonicalAddressFormatEnum; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.LcafKeyValueAddress; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.LispAFIAddress; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.lcafkeyvalueaddress.KeyBuilder; diff --git a/mappingservice/implementation/src/test/java/org/opendaylight/lispflowmapping/implementation/serializer/address/LispListLCAFAddressTest.java b/mappingservice/yangmodel/src/test/java/org/opendaylight/lispflowmapping/serializer/address/LispListLCAFAddressTest.java similarity index 93% rename from mappingservice/implementation/src/test/java/org/opendaylight/lispflowmapping/implementation/serializer/address/LispListLCAFAddressTest.java rename to mappingservice/yangmodel/src/test/java/org/opendaylight/lispflowmapping/serializer/address/LispListLCAFAddressTest.java index 7b9f7fed5..fb849bcfc 100644 --- a/mappingservice/implementation/src/test/java/org/opendaylight/lispflowmapping/implementation/serializer/address/LispListLCAFAddressTest.java +++ b/mappingservice/yangmodel/src/test/java/org/opendaylight/lispflowmapping/serializer/address/LispListLCAFAddressTest.java @@ -5,7 +5,7 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ -package org.opendaylight.lispflowmapping.implementation.serializer.address; +package org.opendaylight.lispflowmapping.serializer.address; import static org.junit.Assert.assertEquals; @@ -17,11 +17,12 @@ import junitx.framework.ArrayAssert; import junitx.framework.Assert; import org.junit.Test; -import org.opendaylight.lispflowmapping.implementation.lisp.exception.LispSerializationException; -import org.opendaylight.lispflowmapping.implementation.util.LispAFIConvertor; +import org.opendaylight.lispflowmapping.lisp.serializer.address.LispAddressSerializer; +import org.opendaylight.lispflowmapping.lisp.serializer.exception.LispSerializationException; +import org.opendaylight.lispflowmapping.lisp.type.AddressFamilyNumberEnum; +import org.opendaylight.lispflowmapping.lisp.type.LispCanonicalAddressFormatEnum; +import org.opendaylight.lispflowmapping.lisp.util.LispAFIConvertor; import org.opendaylight.lispflowmapping.tools.junit.BaseTestCase; -import org.opendaylight.lispflowmapping.type.AddressFamilyNumberEnum; -import org.opendaylight.lispflowmapping.type.LispCanonicalAddressFormatEnum; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.LcafListAddress; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.LispAFIAddress; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.lcaflistaddress.Addresses; diff --git a/mappingservice/implementation/src/test/java/org/opendaylight/lispflowmapping/implementation/serializer/address/LispSegmentLCAFAddressTest.java b/mappingservice/yangmodel/src/test/java/org/opendaylight/lispflowmapping/serializer/address/LispSegmentLCAFAddressTest.java similarity index 90% rename from mappingservice/implementation/src/test/java/org/opendaylight/lispflowmapping/implementation/serializer/address/LispSegmentLCAFAddressTest.java rename to mappingservice/yangmodel/src/test/java/org/opendaylight/lispflowmapping/serializer/address/LispSegmentLCAFAddressTest.java index 7201fc67c..7830708b6 100644 --- a/mappingservice/implementation/src/test/java/org/opendaylight/lispflowmapping/implementation/serializer/address/LispSegmentLCAFAddressTest.java +++ b/mappingservice/yangmodel/src/test/java/org/opendaylight/lispflowmapping/serializer/address/LispSegmentLCAFAddressTest.java @@ -5,7 +5,7 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ -package org.opendaylight.lispflowmapping.implementation.serializer.address; +package org.opendaylight.lispflowmapping.serializer.address; import static org.junit.Assert.assertEquals; @@ -14,11 +14,12 @@ import java.nio.ByteBuffer; import junitx.framework.ArrayAssert; import org.junit.Test; -import org.opendaylight.lispflowmapping.implementation.lisp.exception.LispSerializationException; -import org.opendaylight.lispflowmapping.implementation.util.LispAFIConvertor; +import org.opendaylight.lispflowmapping.lisp.serializer.address.LispAddressSerializer; +import org.opendaylight.lispflowmapping.lisp.serializer.exception.LispSerializationException; +import org.opendaylight.lispflowmapping.lisp.type.AddressFamilyNumberEnum; +import org.opendaylight.lispflowmapping.lisp.type.LispCanonicalAddressFormatEnum; +import org.opendaylight.lispflowmapping.lisp.util.LispAFIConvertor; import org.opendaylight.lispflowmapping.tools.junit.BaseTestCase; -import org.opendaylight.lispflowmapping.type.AddressFamilyNumberEnum; -import org.opendaylight.lispflowmapping.type.LispCanonicalAddressFormatEnum; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.LcafSegmentAddress; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.LispAFIAddress; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.lcafsegmentaddress.AddressBuilder; diff --git a/mappingservice/implementation/src/test/java/org/opendaylight/lispflowmapping/implementation/serializer/address/LispSourceDestLCAFAddressTest.java b/mappingservice/yangmodel/src/test/java/org/opendaylight/lispflowmapping/serializer/address/LispSourceDestLCAFAddressTest.java similarity index 91% rename from mappingservice/implementation/src/test/java/org/opendaylight/lispflowmapping/implementation/serializer/address/LispSourceDestLCAFAddressTest.java rename to mappingservice/yangmodel/src/test/java/org/opendaylight/lispflowmapping/serializer/address/LispSourceDestLCAFAddressTest.java index f8d67b189..2ff860440 100644 --- a/mappingservice/implementation/src/test/java/org/opendaylight/lispflowmapping/implementation/serializer/address/LispSourceDestLCAFAddressTest.java +++ b/mappingservice/yangmodel/src/test/java/org/opendaylight/lispflowmapping/serializer/address/LispSourceDestLCAFAddressTest.java @@ -5,7 +5,7 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ -package org.opendaylight.lispflowmapping.implementation.serializer.address; +package org.opendaylight.lispflowmapping.serializer.address; import static org.junit.Assert.assertEquals; @@ -14,11 +14,12 @@ import java.nio.ByteBuffer; import junitx.framework.ArrayAssert; import org.junit.Test; -import org.opendaylight.lispflowmapping.implementation.lisp.exception.LispSerializationException; -import org.opendaylight.lispflowmapping.implementation.util.LispAFIConvertor; +import org.opendaylight.lispflowmapping.lisp.serializer.address.LispAddressSerializer; +import org.opendaylight.lispflowmapping.lisp.serializer.exception.LispSerializationException; +import org.opendaylight.lispflowmapping.lisp.type.AddressFamilyNumberEnum; +import org.opendaylight.lispflowmapping.lisp.type.LispCanonicalAddressFormatEnum; +import org.opendaylight.lispflowmapping.lisp.util.LispAFIConvertor; import org.opendaylight.lispflowmapping.tools.junit.BaseTestCase; -import org.opendaylight.lispflowmapping.type.AddressFamilyNumberEnum; -import org.opendaylight.lispflowmapping.type.LispCanonicalAddressFormatEnum; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.LcafSourceDestAddress; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.LispAFIAddress; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.lcafsourcedestaddress.DstAddressBuilder; diff --git a/mappingservice/implementation/src/test/java/org/opendaylight/lispflowmapping/implementation/serializer/address/LispTrafficEngineeringLCAFAddressTest.java b/mappingservice/yangmodel/src/test/java/org/opendaylight/lispflowmapping/serializer/address/LispTrafficEngineeringLCAFAddressTest.java similarity index 93% rename from mappingservice/implementation/src/test/java/org/opendaylight/lispflowmapping/implementation/serializer/address/LispTrafficEngineeringLCAFAddressTest.java rename to mappingservice/yangmodel/src/test/java/org/opendaylight/lispflowmapping/serializer/address/LispTrafficEngineeringLCAFAddressTest.java index d1847d7ea..9920e9572 100644 --- a/mappingservice/implementation/src/test/java/org/opendaylight/lispflowmapping/implementation/serializer/address/LispTrafficEngineeringLCAFAddressTest.java +++ b/mappingservice/yangmodel/src/test/java/org/opendaylight/lispflowmapping/serializer/address/LispTrafficEngineeringLCAFAddressTest.java @@ -5,7 +5,7 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ -package org.opendaylight.lispflowmapping.implementation.serializer.address; +package org.opendaylight.lispflowmapping.serializer.address; import static org.junit.Assert.assertEquals; @@ -16,11 +16,12 @@ import java.util.List; import junitx.framework.ArrayAssert; import org.junit.Test; -import org.opendaylight.lispflowmapping.implementation.lisp.exception.LispSerializationException; -import org.opendaylight.lispflowmapping.implementation.util.LispAFIConvertor; +import org.opendaylight.lispflowmapping.lisp.serializer.address.LispAddressSerializer; +import org.opendaylight.lispflowmapping.lisp.serializer.exception.LispSerializationException; +import org.opendaylight.lispflowmapping.lisp.type.AddressFamilyNumberEnum; +import org.opendaylight.lispflowmapping.lisp.type.LispCanonicalAddressFormatEnum; +import org.opendaylight.lispflowmapping.lisp.util.LispAFIConvertor; import org.opendaylight.lispflowmapping.tools.junit.BaseTestCase; -import org.opendaylight.lispflowmapping.type.AddressFamilyNumberEnum; -import org.opendaylight.lispflowmapping.type.LispCanonicalAddressFormatEnum; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.LcafTrafficEngineeringAddress; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.LispAFIAddress; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.lcaftrafficengineeringaddress.Hops; -- 2.36.6