blob: b08c71450dca0b1c5f35c12e4bf76f0330710e4f [file] [log] [blame]
slowr13fa5b02017-08-08 16:32:31 -07001/*
slowr577f3222017-08-28 10:49:08 -07002 * Copyright 2015-present Open Networking Foundation
slowr13fa5b02017-08-08 16:32:31 -07003 *
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.controller;
18
slowr8ddc2b12017-08-14 14:13:38 -070019import org.onosproject.xran.codecs.pdu.RRMConfig;
slowr67d05e42017-08-11 20:37:22 -070020import org.onosproject.xran.entities.RnibLink;
slowr13fa5b02017-08-08 16:32:31 -070021import org.onosproject.xran.providers.XranDeviceListener;
22import org.onosproject.xran.providers.XranHostListener;
23
slowr67d05e42017-08-11 20:37:22 -070024import java.util.concurrent.SynchronousQueue;
25
slowr13fa5b02017-08-08 16:32:31 -070026/**
27 * Created by dimitris on 7/27/17.
28 */
29public interface XranController {
30
slowr577f3222017-08-28 10:49:08 -070031 /**
32 * Send a HandOff request from one link to another.
33 *
34 * @param newLink target LINK entity
35 * @param oldLink source LINK entity
36 * @return blocking queue for RESPONSE
37 * @throws InterruptedException interrupted exception
38 */
slowrc86750e2017-08-22 17:26:47 -070039 SynchronousQueue<String> sendHORequest(RnibLink newLink, RnibLink oldLink) throws InterruptedException;
slowr67d05e42017-08-11 20:37:22 -070040
slowr577f3222017-08-28 10:49:08 -070041 /**
42 * Add a device listener for CELL connections.
43 *
44 * @param listener listener
45 */
slowr13fa5b02017-08-08 16:32:31 -070046 void addListener(XranDeviceListener listener);
47
slowr577f3222017-08-28 10:49:08 -070048 /**
49 * Add a host listener for UE connections.
50 *
51 * @param listener listener
52 */
slowr13fa5b02017-08-08 16:32:31 -070053 void addListener(XranHostListener listener);
54
slowr577f3222017-08-28 10:49:08 -070055 /**
56 * Remove a CELL device listener.
57 *
58 * @param listener listener
59 */
slowr13fa5b02017-08-08 16:32:31 -070060 void removeListener(XranDeviceListener listener);
61
slowr577f3222017-08-28 10:49:08 -070062 /**
63 * Remove a UE host listener.
64 *
65 * @param listener listener
66 */
slowr13fa5b02017-08-08 16:32:31 -070067 void removeListener(XranHostListener listener);
slowr67d05e42017-08-11 20:37:22 -070068
slowr577f3222017-08-28 10:49:08 -070069 /**
70 * Send modified RRM configuration or xICICConfing.
71 *
72 * @param rrmConfig configuration fields to send
73 * @param xicic if true sends xicic else it sends RRM
74 * @return blocking queue for RESPONSE
75 */
76 SynchronousQueue<String> sendmodifiedrrmconf(RRMConfig rrmConfig, boolean xicic);
slowr89c2ac12017-08-15 16:20:06 -070077
slowr577f3222017-08-28 10:49:08 -070078 /**
79 * Send scell add packet for specified LINK.
80 *
81 * @param link LINK entity
82 * @return blocking queue for RESPONSE
83 */
slowr89c2ac12017-08-15 16:20:06 -070084 SynchronousQueue<String> sendScellAdd(RnibLink link);
85
slowr577f3222017-08-28 10:49:08 -070086 /**
87 * Send scell delete for specified LINK.
88 *
89 * @param link LINK entity
90 * @return true if sent correctly
91 */
slowr89c2ac12017-08-15 16:20:06 -070092 boolean sendScellDelete(RnibLink link);
slowrc86750e2017-08-22 17:26:47 -070093
slowr577f3222017-08-28 10:49:08 -070094 /**
95 * Get northbound timeout.
96 *
97 * @return interval in milliseconds
98 */
99 int getNorthboundTimeout();
slowr13fa5b02017-08-08 16:32:31 -0700100}