X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=mappingservice%2Fimplementation%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Flispflowmapping%2Fimplementation%2Flisp%2FAbstractLispComponent.java;h=ef4175d079db8a416dc86f6565b7c52f84fd4a35;hb=f2f1be791bbba35c1e50d93b3ee793573f07705f;hp=4ec0dbae529e15a3ec6f3b293fc88606e6f2e2b0;hpb=a2254f26967d996bc20808550b037ba5454e7bdb;p=lispflowmapping.git 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 4ec0dbae5..ef4175d07 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 @@ -96,47 +96,20 @@ public abstract class AbstractLispComponent { } @SuppressWarnings("unchecked") - private HashSet getSubscribers(LispAddressContainer prefix, int maskLength, - ILispDAO dao) { - Object subscribers; - - IMappingServiceKey key = MappingServiceKeyUtil.generateMappingServiceKey(prefix, maskLength); - subscribers = dao.getSpecific(key, SUBSCRIBERS_SUBKEY); - - if (subscribers != null && subscribers instanceof HashSet) { - return (HashSet) subscribers; - } - return null; - } - protected HashSet getSubscribers(LispAddressContainer prefix, int maskLength) { - // For SrcDst we merge the subscriber set from the parent DAO with the source specific DAO + Object subscribers; if (prefix.getAddress() instanceof LcafSourceDest) { - HashSet resultSet = new HashSet(); - boolean haveResult = false; - - LispAddressContainer srcAddr = LispAFIConvertor.toContainer(getSrcForLcafSrcDst(prefix)); - short srcMask = getSrcMaskForLcafSrcDst(prefix); + IMappingServiceKey srcKey = MappingServiceKeyUtil.generateMappingServiceKey(getSrcForLcafSrcDst(prefix), + getSrcMaskForLcafSrcDst(prefix)); ILispDAO srcDstDao = getSrcDstInnerDao(prefix, maskLength); - HashSet srcDstSubscribers = getSubscribers(srcAddr, srcMask, srcDstDao); - if (srcDstSubscribers != null) { - resultSet.addAll(srcDstSubscribers); - haveResult = true; - } - - LispAddressContainer dstAddr = LispAFIConvertor.toContainer(getDstForLcafSrcDst(prefix)); - short dstMask = getDstMaskForLcafSrcDst(prefix); - HashSet subscribers = getSubscribers(dstAddr, dstMask, dao); - if (subscribers != null) { - resultSet.addAll(subscribers); - haveResult = true; - } - - if (haveResult) { - return resultSet; - } + subscribers = srcDstDao.getSpecific(srcKey, SUBSCRIBERS_SUBKEY); } else { - return getSubscribers(prefix, maskLength, dao); + IMappingServiceKey key = MappingServiceKeyUtil.generateMappingServiceKey(prefix, maskLength); + subscribers = dao.getSpecific(key, SUBSCRIBERS_SUBKEY); + } + + if (subscribers != null && subscribers instanceof HashSet) { + return (HashSet) subscribers; } return null; }