Class MappingService
- java.lang.Object
-
- org.opendaylight.lispflowmapping.implementation.MappingService
-
- All Implemented Interfaces:
java.lang.AutoCloseable,IMappingService,OdlMappingserviceService,org.opendaylight.yangtools.yang.binding.RpcService
public class MappingService extends java.lang.Object implements OdlMappingserviceService, IMappingService, java.lang.AutoCloseable
Dispatcher of API calls that implements the RPC and Java APIs in mappingservice.yang and IMappingService respectively. It also coordinates and acts as container for all objects in charge of - saving and updating md-sal datastore stored mappings - monitoring md-sal datastore mapping updates and pushing them to the in memory mapping-system - in memory mapping-system- Author:
- Lorand Jakab, Florin Coras
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.opendaylight.lispflowmapping.interfaces.mappingservice.IMappingService
IMappingService.LookupPolicy
-
-
Constructor Summary
Constructors Constructor Description MappingService(org.opendaylight.mdsal.binding.api.DataBroker broker, org.opendaylight.mdsal.binding.api.NotificationPublishService notificationPublishService, ILispDAO lispDAO)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddAuthenticationKey(Eid key, MappingAuthkey authKey)Add authentication key.voidaddData(MappingOrigin origin, Eid key, java.lang.String subKey, java.lang.Object data)Generic addition of data.com.google.common.util.concurrent.ListenableFuture<org.opendaylight.yangtools.yang.common.RpcResult<AddKeyOutput>>addKey(AddKeyInput input)com.google.common.util.concurrent.ListenableFuture<org.opendaylight.yangtools.yang.common.RpcResult<AddKeysOutput>>addKeys(AddKeysInput input)com.google.common.util.concurrent.ListenableFuture<org.opendaylight.yangtools.yang.common.RpcResult<AddMappingOutput>>addMapping(AddMappingInput input)voidaddMapping(MappingOrigin origin, Eid key, SiteId siteId, MappingData mappingData)Add mapping.com.google.common.util.concurrent.ListenableFuture<org.opendaylight.yangtools.yang.common.RpcResult<AddMappingsOutput>>addMappings(AddMappingsInput input)MappingDataaddNegativeMapping(Eid key)Generate and add a negative mapping entry originated from the southbound, and return the generated mapping.voidcleanCachedMappings()Cleans all cached mappings.Used for testing.voidclose()com.google.common.util.concurrent.ListenableFuture<org.opendaylight.yangtools.yang.common.RpcResult<GetAllKeysOutput>>getAllKeys(GetAllKeysInput input)com.google.common.util.concurrent.ListenableFuture<org.opendaylight.yangtools.yang.common.RpcResult<GetAllMappingsOutput>>getAllMappings(GetAllMappingsInput input)MappingAuthkeygetAuthenticationKey(Eid key)Retrieve authentication key.java.lang.ObjectgetData(MappingOrigin origin, Eid key, java.lang.String subKey)Generic retrieval of data.com.google.common.util.concurrent.ListenableFuture<org.opendaylight.yangtools.yang.common.RpcResult<GetKeyOutput>>getKey(GetKeyInput input)com.google.common.util.concurrent.ListenableFuture<org.opendaylight.yangtools.yang.common.RpcResult<GetKeysOutput>>getKeys(GetKeysInput input)MappingDatagetMapping(Eid key)Retrieves mapping for given key.The lookup policy for the key is defined in the Mapping System.MappingDatagetMapping(Eid srcKey, Eid dstKey)Retrieves mapping with a Source/Dest policy.com.google.common.util.concurrent.ListenableFuture<org.opendaylight.yangtools.yang.common.RpcResult<GetMappingOutput>>getMapping(GetMappingInput input)MappingDatagetMapping(MappingOrigin origin, Eid key)Retrieves mapping with given origin for the provided key.com.google.common.util.concurrent.ListenableFuture<org.opendaylight.yangtools.yang.common.RpcResult<GetMappingsOutput>>getMappings(GetMappingsInput input)com.google.common.util.concurrent.ListenableFuture<org.opendaylight.yangtools.yang.common.RpcResult<GetMappingWithXtrIdOutput>>getMappingWithXtrId(GetMappingWithXtrIdInput input)EidgetParentPrefix(Eid key)Returns the parent prefix for given key.java.util.Set<Subscriber>getSubscribers(Eid eid)Retrieves the subscribers for an EID.java.util.Set<Eid>getSubtree(MappingOrigin origin, Eid key)Retrieves the subtree of a maskable prefix from the given map-cache.EidgetWidestNegativePrefix(Eid key)Retrieves widest negative prefix found in the Mapping System for given key.voidinitialize()booleanisMaster()Get cluster master status.java.lang.StringprettyPrintKeys()Print keys in cache in a human friendly format.java.lang.StringprettyPrintMappings()Print mappings in cache in a human friendly format.java.lang.StringprintKeys()Print all authentication keys.java.lang.StringprintMappings()Print all mappings.voidrefreshMappingRegistration(Eid key, XtrId xtrId, java.lang.Long timestamp)Refresh southbound mapping registration timestamp.com.google.common.util.concurrent.ListenableFuture<org.opendaylight.yangtools.yang.common.RpcResult<RemoveAllKeysOutput>>removeAllKeys(RemoveAllKeysInput input)com.google.common.util.concurrent.ListenableFuture<org.opendaylight.yangtools.yang.common.RpcResult<RemoveAllMappingsOutput>>removeAllMappings(RemoveAllMappingsInput input)com.google.common.util.concurrent.ListenableFuture<org.opendaylight.yangtools.yang.common.RpcResult<RemoveAllOperationalContentOutput>>removeAllOperationalContent(RemoveAllOperationalContentInput input)voidremoveAuthenticationKey(Eid key)Remove authentication key.voidremoveData(MappingOrigin origin, Eid key, java.lang.String subKey)Generic removal of data.com.google.common.util.concurrent.ListenableFuture<org.opendaylight.yangtools.yang.common.RpcResult<RemoveKeyOutput>>removeKey(RemoveKeyInput input)com.google.common.util.concurrent.ListenableFuture<org.opendaylight.yangtools.yang.common.RpcResult<RemoveKeysOutput>>removeKeys(RemoveKeysInput input)voidremoveMapping(MappingOrigin origin, Eid key)Remove mapping.com.google.common.util.concurrent.ListenableFuture<org.opendaylight.yangtools.yang.common.RpcResult<RemoveMappingOutput>>removeMapping(RemoveMappingInput input)com.google.common.util.concurrent.ListenableFuture<org.opendaylight.yangtools.yang.common.RpcResult<RemoveMappingsOutput>>removeMappings(RemoveMappingsInput input)voidsetIsMaster(boolean isMaster)Set cluster master status.voidsetLookupPolicy(IMappingService.LookupPolicy policy)Configures Mapping Service mapping lookup policy option.voidsetMappingMerge(boolean mergeMapping)Configures Mapping Service mapping merge option.voidsubscribe(Subscriber subscriber, Eid subscribedEid)Subscribe a Subscriber to receive updates about mapping changes for an EID.com.google.common.util.concurrent.ListenableFuture<org.opendaylight.yangtools.yang.common.RpcResult<UpdateKeyOutput>>updateKey(UpdateKeyInput input)com.google.common.util.concurrent.ListenableFuture<org.opendaylight.yangtools.yang.common.RpcResult<UpdateKeysOutput>>updateKeys(UpdateKeysInput input)com.google.common.util.concurrent.ListenableFuture<org.opendaylight.yangtools.yang.common.RpcResult<UpdateMappingOutput>>updateMapping(UpdateMappingInput input)com.google.common.util.concurrent.ListenableFuture<org.opendaylight.yangtools.yang.common.RpcResult<UpdateMappingsOutput>>updateMappings(UpdateMappingsInput input)
-
-
-
Constructor Detail
-
MappingService
public MappingService(org.opendaylight.mdsal.binding.api.DataBroker broker, org.opendaylight.mdsal.binding.api.NotificationPublishService notificationPublishService, ILispDAO lispDAO)
-
-
Method Detail
-
setMappingMerge
public void setMappingMerge(boolean mergeMapping)
Description copied from interface:IMappingServiceConfigures Mapping Service mapping merge option. If set to false, mappings with the same key are overwritten, otherwise, mappings with the same key but from different xTR-IDs are all stored.- Specified by:
setMappingMergein interfaceIMappingService- Parameters:
mergeMapping- enables or disables mapping merge
-
setLookupPolicy
public void setLookupPolicy(IMappingService.LookupPolicy policy)
Description copied from interface:IMappingServiceConfigures Mapping Service mapping lookup policy option.- Specified by:
setLookupPolicyin interfaceIMappingService- Parameters:
policy- the policy to be activated
-
initialize
public void initialize()
-
addKey
public com.google.common.util.concurrent.ListenableFuture<org.opendaylight.yangtools.yang.common.RpcResult<AddKeyOutput>> addKey(AddKeyInput input)
- Specified by:
addKeyin interfaceOdlMappingserviceService
-
addMapping
public com.google.common.util.concurrent.ListenableFuture<org.opendaylight.yangtools.yang.common.RpcResult<AddMappingOutput>> addMapping(AddMappingInput input)
- Specified by:
addMappingin interfaceOdlMappingserviceService
-
addMapping
public void addMapping(MappingOrigin origin, Eid key, SiteId siteId, MappingData mappingData)
Description copied from interface:IMappingServiceAdd mapping.- Specified by:
addMappingin interfaceIMappingService- Parameters:
origin- Table where mapping should be addedkey- Key of the mappingsiteId- Site that stores the mappingmappingData- Mapping to be stored
-
addNegativeMapping
public MappingData addNegativeMapping(Eid key)
Description copied from interface:IMappingServiceGenerate and add a negative mapping entry originated from the southbound, and return the generated mapping.- Specified by:
addNegativeMappingin interfaceIMappingService- Parameters:
key- Key of the mapping- Returns:
- Returns the generated negative mapping (which is never null).
-
refreshMappingRegistration
public void refreshMappingRegistration(Eid key, XtrId xtrId, java.lang.Long timestamp)
Description copied from interface:IMappingServiceRefresh southbound mapping registration timestamp.- Specified by:
refreshMappingRegistrationin interfaceIMappingService- Parameters:
key- The EID whose registration must be refreshedxtrId- xTR-ID of the mapping to be refreshedtimestamp- New timestamp for the mapping
-
getKey
public com.google.common.util.concurrent.ListenableFuture<org.opendaylight.yangtools.yang.common.RpcResult<GetKeyOutput>> getKey(GetKeyInput input)
- Specified by:
getKeyin interfaceOdlMappingserviceService
-
getMapping
public com.google.common.util.concurrent.ListenableFuture<org.opendaylight.yangtools.yang.common.RpcResult<GetMappingOutput>> getMapping(GetMappingInput input)
- Specified by:
getMappingin interfaceOdlMappingserviceService
-
getMapping
public MappingData getMapping(MappingOrigin origin, Eid key)
Description copied from interface:IMappingServiceRetrieves mapping with given origin for the provided key. The lookup policy for the key is defined in the Mapping System.- Specified by:
getMappingin interfaceIMappingService- Parameters:
origin- Table where the mapping should be looked up.key- Key to be looked up- Returns:
- Returns the mapping found in the Mapping System or null if nothing is found.
-
getMapping
public MappingData getMapping(Eid key)
Description copied from interface:IMappingServiceRetrieves mapping for given key.The lookup policy for the key is defined in the Mapping System.- Specified by:
getMappingin interfaceIMappingService- Parameters:
key- Key to be looked up- Returns:
- Returns the mapping found in the Mapping System or null if nothing is found.
-
getMapping
public MappingData getMapping(Eid srcKey, Eid dstKey)
Description copied from interface:IMappingServiceRetrieves mapping with a Source/Dest policy. This method is meant to avoid the overhead of building LcafSourceDest addresses.- Specified by:
getMappingin interfaceIMappingService- Parameters:
srcKey- Source key being looked updstKey- Destination key being looked up- Returns:
- Returns the mapping found in the Mapping System or null if nothing is found.
-
subscribe
public void subscribe(Subscriber subscriber, Eid subscribedEid)
Description copied from interface:IMappingServiceSubscribe a Subscriber to receive updates about mapping changes for an EID.- Specified by:
subscribein interfaceIMappingService- Parameters:
subscriber- The Subscriber object with information about the subscribersubscribedEid- The EID for which the subscriber will receive updates
-
getSubscribers
public java.util.Set<Subscriber> getSubscribers(Eid eid)
Description copied from interface:IMappingServiceRetrieves the subscribers for an EID.- Specified by:
getSubscribersin interfaceIMappingService- Parameters:
eid- The EID to be looked up- Returns:
- The set of subscribers for the EID
-
getMappingWithXtrId
public com.google.common.util.concurrent.ListenableFuture<org.opendaylight.yangtools.yang.common.RpcResult<GetMappingWithXtrIdOutput>> getMappingWithXtrId(GetMappingWithXtrIdInput input)
- Specified by:
getMappingWithXtrIdin interfaceOdlMappingserviceService
-
removeKey
public com.google.common.util.concurrent.ListenableFuture<org.opendaylight.yangtools.yang.common.RpcResult<RemoveKeyOutput>> removeKey(RemoveKeyInput input)
- Specified by:
removeKeyin interfaceOdlMappingserviceService
-
removeMapping
public com.google.common.util.concurrent.ListenableFuture<org.opendaylight.yangtools.yang.common.RpcResult<RemoveMappingOutput>> removeMapping(RemoveMappingInput input)
- Specified by:
removeMappingin interfaceOdlMappingserviceService
-
removeMapping
public void removeMapping(MappingOrigin origin, Eid key)
Description copied from interface:IMappingServiceRemove mapping.- Specified by:
removeMappingin interfaceIMappingService- Parameters:
origin- Table from where the mapping should be removedkey- Key to be removed
-
updateKey
public com.google.common.util.concurrent.ListenableFuture<org.opendaylight.yangtools.yang.common.RpcResult<UpdateKeyOutput>> updateKey(UpdateKeyInput input)
- Specified by:
updateKeyin interfaceOdlMappingserviceService
-
updateMapping
public com.google.common.util.concurrent.ListenableFuture<org.opendaylight.yangtools.yang.common.RpcResult<UpdateMappingOutput>> updateMapping(UpdateMappingInput input)
- Specified by:
updateMappingin interfaceOdlMappingserviceService
-
removeKeys
public com.google.common.util.concurrent.ListenableFuture<org.opendaylight.yangtools.yang.common.RpcResult<RemoveKeysOutput>> removeKeys(RemoveKeysInput input)
- Specified by:
removeKeysin interfaceOdlMappingserviceService
-
removeMappings
public com.google.common.util.concurrent.ListenableFuture<org.opendaylight.yangtools.yang.common.RpcResult<RemoveMappingsOutput>> removeMappings(RemoveMappingsInput input)
- Specified by:
removeMappingsin interfaceOdlMappingserviceService
-
getKeys
public com.google.common.util.concurrent.ListenableFuture<org.opendaylight.yangtools.yang.common.RpcResult<GetKeysOutput>> getKeys(GetKeysInput input)
- Specified by:
getKeysin interfaceOdlMappingserviceService
-
addMappings
public com.google.common.util.concurrent.ListenableFuture<org.opendaylight.yangtools.yang.common.RpcResult<AddMappingsOutput>> addMappings(AddMappingsInput input)
- Specified by:
addMappingsin interfaceOdlMappingserviceService
-
updateKeys
public com.google.common.util.concurrent.ListenableFuture<org.opendaylight.yangtools.yang.common.RpcResult<UpdateKeysOutput>> updateKeys(UpdateKeysInput input)
- Specified by:
updateKeysin interfaceOdlMappingserviceService
-
removeAllMappings
public com.google.common.util.concurrent.ListenableFuture<org.opendaylight.yangtools.yang.common.RpcResult<RemoveAllMappingsOutput>> removeAllMappings(RemoveAllMappingsInput input)
- Specified by:
removeAllMappingsin interfaceOdlMappingserviceService
-
removeAllKeys
public com.google.common.util.concurrent.ListenableFuture<org.opendaylight.yangtools.yang.common.RpcResult<RemoveAllKeysOutput>> removeAllKeys(RemoveAllKeysInput input)
- Specified by:
removeAllKeysin interfaceOdlMappingserviceService
-
getAllKeys
public com.google.common.util.concurrent.ListenableFuture<org.opendaylight.yangtools.yang.common.RpcResult<GetAllKeysOutput>> getAllKeys(GetAllKeysInput input)
- Specified by:
getAllKeysin interfaceOdlMappingserviceService
-
updateMappings
public com.google.common.util.concurrent.ListenableFuture<org.opendaylight.yangtools.yang.common.RpcResult<UpdateMappingsOutput>> updateMappings(UpdateMappingsInput input)
- Specified by:
updateMappingsin interfaceOdlMappingserviceService
-
addKeys
public com.google.common.util.concurrent.ListenableFuture<org.opendaylight.yangtools.yang.common.RpcResult<AddKeysOutput>> addKeys(AddKeysInput input)
- Specified by:
addKeysin interfaceOdlMappingserviceService
-
getAllMappings
public com.google.common.util.concurrent.ListenableFuture<org.opendaylight.yangtools.yang.common.RpcResult<GetAllMappingsOutput>> getAllMappings(GetAllMappingsInput input)
- Specified by:
getAllMappingsin interfaceOdlMappingserviceService
-
getMappings
public com.google.common.util.concurrent.ListenableFuture<org.opendaylight.yangtools.yang.common.RpcResult<GetMappingsOutput>> getMappings(GetMappingsInput input)
- Specified by:
getMappingsin interfaceOdlMappingserviceService
-
removeAllOperationalContent
public com.google.common.util.concurrent.ListenableFuture<org.opendaylight.yangtools.yang.common.RpcResult<RemoveAllOperationalContentOutput>> removeAllOperationalContent(RemoveAllOperationalContentInput input)
- Specified by:
removeAllOperationalContentin interfaceOdlMappingserviceService
-
getWidestNegativePrefix
public Eid getWidestNegativePrefix(Eid key)
Description copied from interface:IMappingServiceRetrieves widest negative prefix found in the Mapping System for given key.- Specified by:
getWidestNegativePrefixin interfaceIMappingService- Parameters:
key- Key being looked up- Returns:
- Returns the widest negative prefix or null if nothing is found.
-
getSubtree
public java.util.Set<Eid> getSubtree(MappingOrigin origin, Eid key)
Description copied from interface:IMappingServiceRetrieves the subtree of a maskable prefix from the given map-cache.- Specified by:
getSubtreein interfaceIMappingService- Parameters:
origin- Table where the key should be looked upkey- Key to be looked up- Returns:
- The child prefixes of the prefix, including the prefix itself if present
-
addAuthenticationKey
public void addAuthenticationKey(Eid key, MappingAuthkey authKey)
Description copied from interface:IMappingServiceAdd authentication key.- Specified by:
addAuthenticationKeyin interfaceIMappingService- Parameters:
key- The key for which the authentication key is addedauthKey- The authentication key
-
getAuthenticationKey
public MappingAuthkey getAuthenticationKey(Eid key)
Description copied from interface:IMappingServiceRetrieve authentication key.- Specified by:
getAuthenticationKeyin interfaceIMappingService- Parameters:
key- The key for which the authentication key is being looked up.- Returns:
- The authentication key.
-
removeAuthenticationKey
public void removeAuthenticationKey(Eid key)
Description copied from interface:IMappingServiceRemove authentication key.- Specified by:
removeAuthenticationKeyin interfaceIMappingService- Parameters:
key- Key for which the authentication key should be removed.
-
addData
public void addData(MappingOrigin origin, Eid key, java.lang.String subKey, java.lang.Object data)
Description copied from interface:IMappingServiceGeneric addition of data. Not stored in MD-SAL datastore!- Specified by:
addDatain interfaceIMappingService- Parameters:
origin- Table where data should be insertedkey- The key where data should be insertedsubKey- The subKey where data should be inserteddata- The data to be stored
-
getData
public java.lang.Object getData(MappingOrigin origin, Eid key, java.lang.String subKey)
Description copied from interface:IMappingServiceGeneric retrieval of data.- Specified by:
getDatain interfaceIMappingService- Parameters:
origin- Table from where the data should be readkey- The key where the data is storedsubKey- The subKey where data is stored- Returns:
- The data
-
removeData
public void removeData(MappingOrigin origin, Eid key, java.lang.String subKey)
Description copied from interface:IMappingServiceGeneric removal of data.- Specified by:
removeDatain interfaceIMappingService- Parameters:
origin- The table from where the data should be removedkey- The key of the data to be removedsubKey- The subKey of the data to be removed
-
getParentPrefix
public Eid getParentPrefix(Eid key)
Description copied from interface:IMappingServiceReturns the parent prefix for given key.- Specified by:
getParentPrefixin interfaceIMappingService- Parameters:
key- The key which parent is to be returned.- Returns:
- The parent perfix of a specific key.
-
printMappings
public java.lang.String printMappings()
Description copied from interface:IMappingServicePrint all mappings. Used for testing, debugging and the karaf shell.- Specified by:
printMappingsin interfaceIMappingService- Returns:
- String consisting of all mappings
-
prettyPrintMappings
public java.lang.String prettyPrintMappings()
Description copied from interface:IMappingServicePrint mappings in cache in a human friendly format.- Specified by:
prettyPrintMappingsin interfaceIMappingService- Returns:
- a String consisting of all the mappings in the cache
-
printKeys
public java.lang.String printKeys()
Description copied from interface:IMappingServicePrint all authentication keys. Used for testing, debugging and the karaf shell.- Specified by:
printKeysin interfaceIMappingService- Returns:
- String consisting of all mappings
-
prettyPrintKeys
public java.lang.String prettyPrintKeys()
Description copied from interface:IMappingServicePrint keys in cache in a human friendly format.- Specified by:
prettyPrintKeysin interfaceIMappingService- Returns:
- a String consisting of all the keys in the cache
-
close
public void close() throws java.lang.Exception- Specified by:
closein interfacejava.lang.AutoCloseable- Throws:
java.lang.Exception
-
cleanCachedMappings
public void cleanCachedMappings()
Description copied from interface:IMappingServiceCleans all cached mappings.Used for testing.- Specified by:
cleanCachedMappingsin interfaceIMappingService
-
setIsMaster
public void setIsMaster(boolean isMaster)
Description copied from interface:IMappingServiceSet cluster master status.- Specified by:
setIsMasterin interfaceIMappingService- Parameters:
isMaster- is|isn't master
-
isMaster
public boolean isMaster()
Description copied from interface:IMappingServiceGet cluster master status.- Specified by:
isMasterin interfaceIMappingService- Returns:
- isMaster is|isn't master
-
-