blob: c9b89fe6a7965c363be07e449a0ed344533175e2 [file] [log] [blame]
slowr13fa5b02017-08-08 16:32:31 -07001/*
Dimitrios Mavrommatis96b255a2017-12-06 13:09:25 -08002 * Copyright 2017-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
Dimitrios Mavrommatis96b255a2017-12-06 13:09:25 -080017package org.onosproject.xran;
slowr13fa5b02017-08-08 16:32:31 -070018
Dimitrios Mavrommatis96b255a2017-12-06 13:09:25 -080019import org.onosproject.xran.asn1lib.pdu.RRMConfig;
20import org.onosproject.xran.impl.entities.RnibLink;
slowr13fa5b02017-08-08 16:32:31 -070021
Dimitrios Mavrommatis96b255a2017-12-06 13:09:25 -080022import java.util.Optional;
slowr67d05e42017-08-11 20:37:22 -070023import java.util.concurrent.SynchronousQueue;
24
slowr13fa5b02017-08-08 16:32:31 -070025/**
26 * Created by dimitris on 7/27/17.
27 */
Dimitrios Mavrommatis96b255a2017-12-06 13:09:25 -080028public interface XranService {
slowr13fa5b02017-08-08 16:32:31 -070029
slowr577f3222017-08-28 10:49:08 -070030 /**
31 * Send a HandOff request from one link to another.
32 *
33 * @param newLink target LINK entity
34 * @param oldLink source LINK entity
35 * @return blocking queue for RESPONSE
36 * @throws InterruptedException interrupted exception
37 */
Dimitrios Mavrommatis96b255a2017-12-06 13:09:25 -080038 Optional<SynchronousQueue<String>> sendHoRequest(RnibLink newLink, RnibLink oldLink);
slowr67d05e42017-08-11 20:37:22 -070039
slowr577f3222017-08-28 10:49:08 -070040 /**
41 * Add a device listener for CELL connections.
42 *
43 * @param listener listener
44 */
slowr13fa5b02017-08-08 16:32:31 -070045 void addListener(XranDeviceListener listener);
46
slowr577f3222017-08-28 10:49:08 -070047 /**
48 * Add a host listener for UE connections.
49 *
50 * @param listener listener
51 */
slowr13fa5b02017-08-08 16:32:31 -070052 void addListener(XranHostListener listener);
53
slowr577f3222017-08-28 10:49:08 -070054 /**
55 * Remove a CELL device listener.
56 *
57 * @param listener listener
58 */
slowr13fa5b02017-08-08 16:32:31 -070059 void removeListener(XranDeviceListener listener);
60
slowr577f3222017-08-28 10:49:08 -070061 /**
62 * Remove a UE host listener.
63 *
64 * @param listener listener
65 */
slowr13fa5b02017-08-08 16:32:31 -070066 void removeListener(XranHostListener listener);
slowr67d05e42017-08-11 20:37:22 -070067
slowr577f3222017-08-28 10:49:08 -070068 /**
Dimitrios Mavrommatis96b255a2017-12-06 13:09:25 -080069 * Send modified RRM configuration.
slowr577f3222017-08-28 10:49:08 -070070 *
71 * @param rrmConfig configuration fields to send
slowr577f3222017-08-28 10:49:08 -070072 * @return blocking queue for RESPONSE
73 */
Dimitrios Mavrommatis96b255a2017-12-06 13:09:25 -080074 Optional<SynchronousQueue<String>> sendModifiedRrm(RRMConfig rrmConfig);
slowr89c2ac12017-08-15 16:20:06 -070075
slowr577f3222017-08-28 10:49:08 -070076 /**
77 * Send scell add packet for specified LINK.
78 *
79 * @param link LINK entity
80 * @return blocking queue for RESPONSE
81 */
Dimitrios Mavrommatis96b255a2017-12-06 13:09:25 -080082 Optional<SynchronousQueue<String>> sendScellAdd(RnibLink link);
slowr89c2ac12017-08-15 16:20:06 -070083
slowr577f3222017-08-28 10:49:08 -070084 /**
85 * Send scell delete for specified LINK.
86 *
87 * @param link LINK entity
88 * @return true if sent correctly
89 */
slowr89c2ac12017-08-15 16:20:06 -070090 boolean sendScellDelete(RnibLink link);
slowrc86750e2017-08-22 17:26:47 -070091
slowr577f3222017-08-28 10:49:08 -070092 /**
93 * Get northbound timeout.
94 *
95 * @return interval in milliseconds
96 */
97 int getNorthboundTimeout();
slowr13fa5b02017-08-08 16:32:31 -070098}