blob: 349e8f5466dfd173e313aaf258a4783e3916fb0e [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
50 boolean createLinkBetweenCellIdUeId(String cellId, long euId, String type);
51
52 RnibLink getLink(ECGI ecgi, MMEUES1APID mme);
53
slowr8ddc2b12017-08-14 14:13:38 -070054 void modifyLinkRrmConf(RnibLink link, JsonNode rrmConf);
55
slowr13fa5b02017-08-08 16:32:31 -070056 void storeLink(RnibLink link);
57
58 boolean removeLink(LinkId link);
59
60 // NODES
61
62 List<Object> getNodes();
63
64 List<RnibCell> getCellNodes();
65
66 List<RnibUe> getUeNodes();
67
68 Object getByNodeId(String nodeId);
69
70 // CELL
71
72 RnibCell getCell(String eci);
73
74 RnibCell getCell(ECGI cellId);
75
slowr8ddc2b12017-08-14 14:13:38 -070076 void modifyCellRrmConf(RnibCell cell, JsonNode rrmConf);
slowr13fa5b02017-08-08 16:32:31 -070077
78 void storeCell(RnibCell cell);
79
80 boolean removeCell(ECGI ecgi);
81
82 // SLICE
83
84 RnibSlice getSlice(long sliceId);
85
86 boolean createSlice(ObjectNode attributes);
87
88 boolean removeCell(long sliceId);
89
90 // CONTROLLER
91
92 XranController getController();
93
94 void setController(XranController controller);
95
96 // UE
97
98 RnibUe getUe(long euId);
99
100 RnibUe getUe(MMEUES1APID mme);
101
102 void storeUe(RnibUe ue);
103
104 boolean removeUe(MMEUES1APID mme);
105}