blob: eb5dfc66ac6ab92a63aaa97fade3b63775969a24 [file] [log] [blame]
slowr13fa5b02017-08-08 16:32:31 -07001/*
2 * Copyright 2015-present Open Networking Laboratory
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17package org.onosproject.xran;
18
19import com.fasterxml.jackson.databind.JsonNode;
20import com.fasterxml.jackson.databind.node.ObjectNode;
21import org.onosproject.store.Store;
22import org.onosproject.xran.codecs.api.ECGI;
23import org.onosproject.xran.codecs.api.MMEUES1APID;
24import org.onosproject.xran.controller.XranController;
25import org.onosproject.xran.entities.RnibCell;
26import org.onosproject.xran.entities.RnibLink;
27import org.onosproject.xran.entities.RnibSlice;
28import org.onosproject.xran.entities.RnibUe;
29import org.onosproject.xran.identifiers.LinkId;
30
31import java.util.List;
32
33/**
34 * Created by dimitris on 7/22/17.
35 */
36public interface XranStore extends Store {
37
38 // LINKS STORE
39
40 List<RnibLink> getLinks();
41
42 List<RnibLink> getLinksByECGI(ECGI ecgi);
43
44 List<RnibLink> getLinksByCellId(String eciHex);
45
46 List<RnibLink> getLinksByUeId(long euId);
47
48 RnibLink getLinkBetweenCellIdUeId(String cellId, long euId);
49
slowr13fa5b02017-08-08 16:32:31 -070050 RnibLink getLink(ECGI ecgi, MMEUES1APID mme);
51
slowr8ddc2b12017-08-14 14:13:38 -070052 void modifyLinkRrmConf(RnibLink link, JsonNode rrmConf);
53
slowr13fa5b02017-08-08 16:32:31 -070054 void storeLink(RnibLink link);
55
56 boolean removeLink(LinkId link);
57
58 // NODES
59
60 List<Object> getNodes();
61
slowr60d4d102017-08-16 18:33:58 -070062 List<Object> getCellNodes();
slowr13fa5b02017-08-08 16:32:31 -070063
slowr60d4d102017-08-16 18:33:58 -070064 List<Object> getUeNodes();
slowr13fa5b02017-08-08 16:32:31 -070065
66 Object getByNodeId(String nodeId);
67
68 // CELL
69
70 RnibCell getCell(String eci);
71
72 RnibCell getCell(ECGI cellId);
73
slowr8ddc2b12017-08-14 14:13:38 -070074 void modifyCellRrmConf(RnibCell cell, JsonNode rrmConf);
slowr13fa5b02017-08-08 16:32:31 -070075
76 void storeCell(RnibCell cell);
77
78 boolean removeCell(ECGI ecgi);
79
80 // SLICE
81
82 RnibSlice getSlice(long sliceId);
83
84 boolean createSlice(ObjectNode attributes);
85
86 boolean removeCell(long sliceId);
87
88 // CONTROLLER
89
90 XranController getController();
91
92 void setController(XranController controller);
93
94 // UE
95
96 RnibUe getUe(long euId);
97
98 RnibUe getUe(MMEUES1APID mme);
99
100 void storeUe(RnibUe ue);
101
102 boolean removeUe(MMEUES1APID mme);
103}