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 }