Update DAO API 06/26206/4
authorFlorin Coras <fcoras@cisco.com>
Sun, 23 Aug 2015 15:48:30 +0000 (17:48 +0200)
committerFlorin Coras <fcoras@cisco.com>
Mon, 31 Aug 2015 16:31:19 +0000 (18:31 +0200)
commit970c3dbd56428e43f2c13f7c2fdb13dd0696aeaf
treedf4c0c818951e921c30e30636f314a31ca026401
parentf1ff5b0b502c0cde5172170d65089eef7ea253cf
Update DAO API

The changes are meant to simplify the interaction between
Map-Server/Map-Resolver and DAO but also to avoid expensive data types
conversions. Most notable:

- Use LispAddressContainer instead of IMappingKey as key for DAO. This
  required updating IPv4 and IPv6 addresses, as modeled in
  lisp-proto.yang, to include mask length, needed for longest prefix
  matches. Additionally, 1) for southbound messages, deserializers had to
  be updated to ensure that mask lengths of deserialized EIDs reflect the
  values set in the corresponding LISP messages fields 2) RPC handler
  methods had to be updated to ensure EID mask lengths are equal to those
  set in RPC input objects.
- EidToLocatorRecord is used as value in DAO instead of RLOCGroup. This
  avoids data type conversions when storing and retrieving mappings
  (Map-Register/Map-Reply) but also ensures that the matched EIDs are
  implicitly returned with each lookup. This avoids the overhead
  associated to building on the fly EID-to-RLOCGroup pairing, because of
  longest prefix matching requirements.
- Rename DAOMappingUtil to TopologyMapCache and cleanup of map-cache
  lookup logic
- Introduce new DAO API method for building nested DAOs. Since this
  acts as a factory method, it also avoids TopologyMapCache dependence
  on DAO implementation.

Change-Id: I1ef9c256fc0bf86d82de4d3d1473e7decd47a9e4
Signed-off-by: Florin Coras <fcoras@cisco.com>
45 files changed:
mappingservice/api/src/main/java/org/opendaylight/lispflowmapping/interfaces/dao/ILispDAO.java
mappingservice/api/src/main/java/org/opendaylight/lispflowmapping/interfaces/dao/IMappingKey.java [deleted file]
mappingservice/api/src/main/java/org/opendaylight/lispflowmapping/interfaces/dao/RLOCGroup.java [deleted file]
mappingservice/api/src/main/java/org/opendaylight/lispflowmapping/interfaces/dao/SubKeys.java [new file with mode: 0644]
mappingservice/api/src/main/java/org/opendaylight/lispflowmapping/interfaces/lisp/IFlowMapping.java
mappingservice/api/src/main/java/org/opendaylight/lispflowmapping/interfaces/lisp/IGeneralMapServer.java
mappingservice/api/src/main/java/org/opendaylight/lispflowmapping/interfaces/lisp/IMapServerAsync.java
mappingservice/clusterdao/src/main/java/org/opendaylight/lispflowmapping/clusterdao/ClusterDAOService.java
mappingservice/implementation/pom.xml
mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/LfmMappingDatabaseRpc.java
mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/LispMappingService.java
mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/dao/MappingKey.java [deleted file]
mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/dao/MappingKeyUtil.java [deleted file]
mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/dao/MappingNoMaskKey.java [deleted file]
mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/lisp/MapResolver.java
mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/lisp/MapServer.java
mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/mapcache/TopologyMapCache.java [new file with mode: 0644]
mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/mdsal/AuthenticationKeyDataListener.java
mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/mdsal/DataStoreBackEnd.java
mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/mdsal/MappingDataListener.java
mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/util/DAOMappingUtil.java [deleted file]
mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/util/DAOSubKeys.java [deleted file]
mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/util/InstanceIdentifierUtil.java
mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/util/LispNotificationHelper.java
mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/util/MaskUtil.java [deleted file]
mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/util/RPCInputConvertorUtil.java
mappingservice/implementation/src/test/java/org/opendaylight/lispflowmapping/implementation/lisp/MapResolverTest.java
mappingservice/implementation/src/test/java/org/opendaylight/lispflowmapping/implementation/lisp/MapServerTest.java
mappingservice/inmemorydb/src/main/java/org/opendaylight/lispflowmapping/inmemorydb/HashMapDb.java
mappingservice/integrationtest/src/test/java/org/opendaylight/lispflowmapping/integrationtest/MappingServiceIntegrationTest.java
mappingservice/lisp-proto/src/main/java/org/opendaylight/lispflowmapping/lisp/serializer/EidRecordSerializer.java
mappingservice/lisp-proto/src/main/java/org/opendaylight/lispflowmapping/lisp/serializer/EidToLocatorRecordSerializer.java
mappingservice/lisp-proto/src/main/java/org/opendaylight/lispflowmapping/lisp/serializer/SerializerHelper.java [new file with mode: 0644]
mappingservice/lisp-proto/src/main/java/org/opendaylight/lispflowmapping/lisp/serializer/address/LispSourceDestLCAFAddressSerializer.java
mappingservice/lisp-proto/src/main/java/org/opendaylight/lispflowmapping/lisp/util/LcafSourceDestHelper.java [new file with mode: 0644]
mappingservice/lisp-proto/src/main/java/org/opendaylight/lispflowmapping/lisp/util/LispAFIConvertor.java
mappingservice/lisp-proto/src/main/java/org/opendaylight/lispflowmapping/lisp/util/LispAddressStringifier.java
mappingservice/lisp-proto/src/main/java/org/opendaylight/lispflowmapping/lisp/util/MaskUtil.java [new file with mode: 0644]
mappingservice/lisp-proto/src/main/yang/lisp-proto.yang
mappingservice/lisp-proto/src/test/java/org/opendaylight/lispflowmapping/serializer/MapNotifySerializationTest.java
mappingservice/lisp-proto/src/test/java/org/opendaylight/lispflowmapping/serializer/MapRegisterSerializationTest.java
mappingservice/lisp-proto/src/test/java/org/opendaylight/lispflowmapping/serializer/MapReplySerializationTest.java
mappingservice/lisp-proto/src/test/java/org/opendaylight/lispflowmapping/serializer/MapRequestSerializationTest.java
mappingservice/lisp-proto/src/test/java/org/opendaylight/lispflowmapping/serializer/address/LispSourceDestLCAFAddressTest.java
mappingservice/southbound/src/test/java/org/opendaylight/lispflowmapping/southbound/lisp/LispSouthboundServiceTest.java