Interface IMappingSystem

  • All Known Implementing Classes:
    MappingSystem

    public interface IMappingSystem
    Mapping System interface.
    Author:
    Florin Coras
    • Method Detail

      • addMapping

        void addMapping​(MappingOrigin origin,
                        Eid key,
                        MappingData mapping)
        Add mapping.
        Parameters:
        origin - Table where mapping should be added
        key - Key of the mapping
        mapping - Mapping to be stored
      • addNegativeMapping

        MappingData addNegativeMapping​(Eid key)
        Generate and add a negative mapping entry originated from the southbound, and return the generated mapping.
        Parameters:
        key - Key of the mapping
        Returns:
        Returns the generated negative mapping (which is never null).
      • updateMapping

        void updateMapping​(MappingOrigin origin,
                           Eid key,
                           MappingData mapping)
        Update mapping.
        Parameters:
        origin - Table where mapping should be added
        key - Key of the mapping
        mapping - Mapping to be stored
      • getMapping

        MappingData getMapping​(Eid src,
                               Eid dst)
        Retrieves mapping for the provided src and dst key.
        Parameters:
        src - Source Key to be looked up
        dst - Destination Key to be looked up
        Returns:
        Returns the mapping found in the MappingSystem or null if nothing is found.
      • getMapping

        MappingData getMapping​(Eid dst)
        Retrieves mapping for the provided dst key.
        Parameters:
        dst - Destination Key to be looked up
        Returns:
        Returns the mapping found in the Mapping System or null if nothing is found.
      • getMapping

        MappingData getMapping​(Eid src,
                               Eid dst,
                               XtrId xtrId)
        Retrieves mapping for the provided dst key for a particular xtr id.
        Parameters:
        src - Source Key to be looked up.
        dst - Destination Key to be looked up.
        xtrId - Xtr Id for which this look to be done. If null, this method works like regular getMapping(src, dst)
        Returns:
        Returns the mapping found in the simple map cache or null if nothing is found.
      • getMapping

        MappingData getMapping​(MappingOrigin origin,
                               Eid key)
        Retrieves mapping from table for provided key.
        Parameters:
        origin - Table where mapping should be looked up
        key - Key to be looked up
        Returns:
        Returns the mapping found in the cache or null if nothing is found.
      • getWidestNegativePrefix

        Eid getWidestNegativePrefix​(Eid key)
        Retrieves widest negative prefix from table for provided key.
        Parameters:
        key - Key to be looked up
        Returns:
        Returns the prefix found in the cache or null if nothing is found.
      • getSubtree

        java.util.Set<Eid> getSubtree​(MappingOrigin origin,
                                      Eid key)
        Retrieves the subtree of a maskable prefix from the given map-cache.
        Parameters:
        origin - Table where the key should be looked up
        key - Key to be looked up
        Returns:
        The child prefixes of the prefix, including the prefix itself if present
      • refreshMappingRegistration

        void refreshMappingRegistration​(Eid key,
                                        XtrId xtrId,
                                        java.lang.Long timestamp)
        Refresh southbound mapping registration timestamp.
        Parameters:
        key - The EID whose registration must be refreshed
        xtrId - xTR-ID of the mapping to be refreshed
        timestamp - New timestamp for the mapping
      • removeMapping

        void removeMapping​(MappingOrigin origin,
                           Eid key)
        Remove mapping.
        Parameters:
        origin - Table for mapping that should be removed
        key - Key to be removed
      • subscribe

        void subscribe​(Subscriber subscriber,
                       Eid subscribedEid)
        Subscribe a Subscriber to receive updates about mapping changes for an EID.
        Parameters:
        subscriber - The Subscriber object with information about the subscriber
        subscribedEid - The EID for which the subscriber will receive updates
      • getSubscribers

        java.util.Set<Subscriber> getSubscribers​(Eid eid)
        Retrieves the subscribers for an EID.
        Parameters:
        eid - The EID to be looked up
        Returns:
        The set of subscribers for the EID
      • addAuthenticationKey

        void addAuthenticationKey​(Eid key,
                                  MappingAuthkey authKey)
        Add authentication key.
        Parameters:
        key - The key for which the authentication key is added
        authKey - The authentication key
      • getAuthenticationKey

        MappingAuthkey getAuthenticationKey​(Eid key)
        Retrieve authentication key.
        Parameters:
        key - The key for which the authentication key is being looked up.
        Returns:
        The authentication key.
      • removeAuthenticationKey

        void removeAuthenticationKey​(Eid key)
        Remove authentication key.
        Parameters:
        key - Key for which the authentication key should be removed.
      • addData

        void addData​(MappingOrigin origin,
                     Eid key,
                     java.lang.String subKey,
                     java.lang.Object data)
        Add data for key.
        Parameters:
        origin - Table for data that should be added
        key - The key for which data is inserted
        subKey - The subKey where data should be inserted
        data - The data to be stored
      • getData

        java.lang.Object getData​(MappingOrigin origin,
                                 Eid key,
                                 java.lang.String subKey)
        Generic retrieval of data.
        Parameters:
        origin - Table from where data should be retrieved
        key - The key where the data is stored
        subKey - The subKey where data is stored
        Returns:
        The data
      • removeData

        void removeData​(MappingOrigin origin,
                        Eid key,
                        java.lang.String subKey)
        Generic removal of data.
        Parameters:
        origin - Table from where data should be removed
        key - The key of the data to be removed
        subKey - The subKey of the data to be removed
      • getParentPrefix

        Eid getParentPrefix​(Eid key)
        Returns the parent prefix for given key.
        Parameters:
        key - The key which parent is to be returned.
        Returns:
        The parent perfix of a specific key.
      • setIterateMask

        void setIterateMask​(boolean iterate)
        Sets iterateMask. If set to true, longest prefix matching for IP keys is used.
        Parameters:
        iterate - Value to configure
      • setMappingMerge

        void setMappingMerge​(boolean mappingMerge)
        Configure merge policy. If set to true, mappings are merged.
        Parameters:
        mappingMerge - Value to configure
      • printMappings

        java.lang.String printMappings()
        Print all mappings. Used for testing, debugging and the karaf shell.
        Returns:
        String consisting of all mappings
      • prettyPrintMappings

        java.lang.String prettyPrintMappings()
        Print mappings in cache in a human friendly format.
        Returns:
        a String consisting of all the mappings in the cache
      • printKeys

        java.lang.String printKeys()
        Print all authentication keys. Used for testing, debugging and the karaf shell.
        Returns:
        String consisting of all mappings
      • prettyPrintKeys

        java.lang.String prettyPrintKeys()
        Print keys in cache in a human friendly format.
        Returns:
        a String consisting of all the keys in the cache
      • setIsMaster

        void setIsMaster​(boolean isMaster)
        Set cluster master status.
        Parameters:
        isMaster - is|isn't master
      • isMaster

        boolean isMaster()
        Get cluster master status.
        Returns:
        isMaster is|isn't master