1 /* 2 * Copyright (c) 2015 Cisco Systems, Inc. All rights reserved. 3 * 4 * This program and the accompanying materials are made available under the 5 * terms of the Eclipse Public License v1.0 which accompanies this distribution, 6 * and is available at http://www.eclipse.org/legal/epl-v10.html 7 */ 8 9 package org.opendaylight.lispflowmapping.interfaces.mappingservice; 10 11 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.eid.container.Eid; 12 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.mappingservice.rev150906.MappingOrigin; 13 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.mappingservice.rev150906.SiteId; 14 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.mappingservice.rev150906.mapping.authkey.container.MappingAuthkey; 15 16 /** 17 * 18 * Mapping Service Java API 19 * 20 * @author Florin Coras 21 * 22 */ 23 24 public interface IMappingService { 25 /** 26 * Add mapping 27 * 28 * @param origin 29 * Table where mapping should be added 30 * @param key 31 * Key of the mapping 32 * @param siteId 33 * Site that stores the mapping 34 * @param data 35 * Value to be stored 36 */ 37 void addMapping(MappingOrigin origin, Eid key, SiteId siteId, Object data); 38 39 /** 40 * Retrieves mapping with given origin for the provided key. The lookup policy for the key is defined in the Mapping 41 * System 42 * 43 * @param origin 44 * Table where the mapping should be looked up. 45 * @param key 46 * Key to be looked up 47 * @return Returns the object found in the Mapping System or null if nothing is found. 48 */ 49 Object getMapping(MappingOrigin origin, Eid key); 50 51 /** 52 * Retrieves mapping for given key.The lookup policy for the key is defined in the Mapping 53 * System 54 * 55 * @param key 56 * Key to be looked up 57 * @return Returns the object found in the Mapping System or null if nothing is found. 58 */ 59 Object getMapping(Eid key); 60 61 /** 62 * Retrieves mapping with a Source/Dest policy. This method is meant to avoid the overhead of building 63 * LcafSourceDest addresses. 64 * 65 * @param srcKey 66 * Source key being looked up 67 * @param dstKey 68 * Destination key being looked up 69 * @return Returns the object found in the Mapping System or null if nothing is found. 70 */ 71 Object getMapping(Eid srcKey, Eid dstKey); 72 73 /** 74 * Remove mapping 75 * 76 * @param origin 77 * Table from where the mapping should be removed 78 * @param key 79 * Key to be removed 80 */ 81 void removeMapping(MappingOrigin origin, Eid key); 82 83 /** 84 * Add authentication key 85 * 86 * @param key 87 * The key for which the authentication key is added 88 * @param authKey 89 * The authentication key 90 */ 91 void addAuthenticationKey(Eid key, MappingAuthkey authKey); 92 93 /** 94 * Retrieve authentication key 95 * 96 * @param key 97 * The key for which the authentication key is being looked up. 98 * @return The authentication key. 99 */ 100 MappingAuthkey getAuthenticationKey(Eid key); 101 102 /** 103 * Remove authentication key 104 * 105 * @param key 106 * Key for which the authentication key should be removed. 107 */ 108 void removeAuthenticationKey(Eid key); 109 110 /** 111 * Generic addition of data. Not stored in MD-SAL datastore! 112 * 113 * @param origin 114 * Table where data should be inserted 115 * @param key 116 * The key where data should be inserted 117 * @param subKey 118 * The subKey where data should be inserted 119 * @param data 120 * The data to be stored 121 */ 122 void addData(MappingOrigin origin, Eid key, String subKey, Object data); 123 124 /** 125 * Generic retrieval of data 126 * 127 * @param origin 128 * Table from where the data should be read 129 * @param key 130 * The key where the data is stored 131 * @param subKey 132 * The subKey where data is stored 133 * @return The data 134 */ 135 Object getData(MappingOrigin origin, Eid key, String subKey); 136 137 /** 138 * Generic removal of data 139 * 140 * @param origin 141 * The table from where the data should be removed 142 * @param key 143 * The key of the data to be removed 144 * @param subKey 145 * The subKey of the data to be removed 146 */ 147 void removeData(MappingOrigin origin, Eid key, String subKey); 148 149 /** 150 * Configures Mapping Service mapping overwrite option. If set to true, mappings with the same key are overwritten, 151 * otherwise, mappings with the same key but from different xTR-IDs are all stored 152 * 153 * @param overwrite 154 * enables or disables mapping overwrite 155 */ 156 void setMappingOverwrite(boolean overwrite); 157 158 /** 159 * Print all mappings. Used for testing, debugging and the karaf shell 160 * 161 * @return String consisting of all mappings 162 */ 163 String printMappings(); 164 165 /** 166 * Cleans all cached mappings.Used for testing. 167 */ 168 void cleanCachedMappings(); 169 }