blob: cf511b34206e286b3a6fcebea5553c4189cc6959 [file] [log] [blame]
Matteo Scandolo84f7d482019-08-08 19:00:47 -07001// Copyright (c) 2018 Open Networking Foundation
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at:
6//
7// http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
15syntax = "proto3";
16package bbsim;
17
Pragya Arya8bdb4532020-03-02 17:08:09 +053018import "voltha_protos/openolt.proto";
Anand S Katti09541352020-01-29 15:54:01 +053019import "voltha_protos/tech_profile.proto";
Matteo Scandolo10f965c2019-09-24 10:40:46 -070020// Models
21
Matteo Scandolo84f7d482019-08-08 19:00:47 -070022message PONPort {
23 int32 ID = 1;
24 string OperState = 2;
25}
26
27message NNIPort {
28 int32 ID = 1;
29 string OperState = 2;
30}
31
32message Olt {
33 int32 ID = 1;
Matteo Scandolo8df63df2019-09-12 10:34:32 -070034 string SerialNumber = 2;
35 string OperState = 3;
36 string InternalState = 4;
rajeshf921f882020-03-06 18:24:28 +053037 string IP = 7;
Matteo Scandolo8df63df2019-09-12 10:34:32 -070038 repeated NNIPort NNIPorts = 5;
39 repeated PONPort PONPorts = 6;
Matteo Scandolo9a3518c2019-08-13 14:36:01 -070040}
41
42message ONU {
43 int32 ID = 1;
44 string SerialNumber = 2;
45 string OperState = 3;
46 string InternalState = 4;
47 int32 PonPortID = 5;
Matteo Scandolo4b3fc7e2019-09-17 16:49:54 -070048 string HwAddress = 8;
Matteo Scandolo27428702019-10-11 16:21:16 -070049 int32 PortNo = 9;
Matteo Scandolo4a036262020-08-17 15:56:13 -070050 repeated Service services = 10;
Matteo Scandolocedde462021-03-09 17:37:16 -080051 int32 ImageSoftwareExpectedSections = 11;
52 int32 ImageSoftwareReceivedSections = 12;
53 int32 ActiveImageEntityId = 13;
54 int32 CommittedImageEntityId = 14;
Matteo Scandolo4a036262020-08-17 15:56:13 -070055}
56
57message Service {
58 string Name = 1;
59 string HwAddress = 2;
60 string OnuSn = 3;
61 int32 STag = 4;
62 int32 CTag = 5;
63 bool NeedsEapol = 6;
64 bool NeedsDhcp = 7;
65 bool NeedsIgmp = 8;
66 int32 GemPort = 9;
67 string EapolState = 10;
68 string DhcpState = 11;
Matteo Scandolo75ed5b92020-09-03 09:03:16 -070069 string InternalState = 12;
Matteo Scandolo618a6582020-09-09 12:21:29 -070070 string IGMPState = 13;
Matteo Scandolo9a3518c2019-08-13 14:36:01 -070071}
72
Anand S Katti09541352020-01-29 15:54:01 +053073message ONUTrafficSchedulers {
74 tech_profile.TrafficSchedulers traffSchedulers = 1;
75}
76
Matteo Scandolo9a3518c2019-08-13 14:36:01 -070077message ONUs {
78 repeated ONU items = 1;
Matteo Scandolo84f7d482019-08-08 19:00:47 -070079}
80
Matteo Scandolo4a036262020-08-17 15:56:13 -070081message Services {
82 repeated Service items = 1;
83}
84
Matteo Scandolo10f965c2019-09-24 10:40:46 -070085// Inputs
86
87message ONURequest {
88 string SerialNumber = 1;
89}
90
Pragya Aryabd731ec2020-02-11 16:38:17 +053091message PONRequest {
92 uint32 PonPortId = 1;
93}
94
Scott Baker41724b82020-01-21 19:54:53 -080095// Alarms
96
97message AlarmType {
98 // These types correspond to the messages permitted in the oneof
99 // in AlarmIndication in the openolt protos
100 enum Types {
101 LOS = 0; // LOS is an OLT alarm for an entire PON
102 DYING_GASP = 1;
103 ONU_ALARM = 2;
104 ONU_STARTUP_FAILURE = 3;
105 ONU_SIGNAL_DEGRADE = 4;
106 ONU_DRIFT_OF_WINDOW = 5;
107 ONU_LOSS_OF_OMCI_CHANNEL = 6;
108 ONU_SIGNALS_FAILURE = 7;
109 ONU_TRANSMISSION_INTERFERENCE_WARNING = 8;
110 ONU_ACTIVATION_FAILURE = 9;
111 ONU_PROCESSING_ERROR = 10;
112 ONU_LOSS_OF_KEY_SYNC_FAILURE = 11;
113 ONU_ITU_PON_STATS = 12;
114
115 // These break out ONU_ALARM, which is a single message, but
116 // includes statuses for these six alarms.
117 ONU_ALARM_LOS = 13;
118 ONU_ALARM_LOB = 14;
119 ONU_ALARM_LOPC_MISS = 15;
120 ONU_ALARM_LOPC_MIC_ERROR = 16;
121 ONU_ALARM_LOFI = 17;
122 ONU_ALARM_LOAMI = 18;
123 }
124}
125
126message AlarmParameter {
127 string Key = 1;
128 string Value = 2;
129}
130
Anand S Katti86552f92020-03-03 21:56:32 +0530131// ONUAlarmRequest includes fields common to every Onu alarm,
Anand S Katti09541352020-01-29 15:54:01 +0530132// plus an optional list of AlarmParameter list that can be used
Scott Baker41724b82020-01-21 19:54:53 -0800133// to set additional fields in alarms that support them.
Anand S Katti86552f92020-03-03 21:56:32 +0530134message ONUAlarmRequest {
Matteo Scandolo4a036262020-08-17 15:56:13 -0700135 string AlarmType = 1; // name of alarm to raise
136 string SerialNumber = 2; // serial number of ONU
137 string Status = 3; // status of Alarm
Scott Baker41724b82020-01-21 19:54:53 -0800138 repeated AlarmParameter Parameters = 4; // optional list of additional parameters
139}
140
Anand S Katti86552f92020-03-03 21:56:32 +0530141// OLT alarm request
142message OLTAlarmRequest {
Matteo Scandolo4a036262020-08-17 15:56:13 -0700143 uint32 InterfaceID = 1; // Switch Interface Id
144 string InterfaceType = 2; // PON or NNI Type
145 string Status = 3; // Interface Operstatus
Anand S Katti86552f92020-03-03 21:56:32 +0530146}
147
Matteo Scandolo10f965c2019-09-24 10:40:46 -0700148// Utils
149
Matteo Scandolo84f7d482019-08-08 19:00:47 -0700150message VersionNumber {
151 string version = 1;
152 string buildTime = 2;
153 string commitHash = 3;
154 string gitStatus = 4;
155}
156
Matteo Scandolo2bf742a2019-10-01 11:33:34 -0700157message LogLevel {
158 string level = 1;
159 bool caller = 2;
160}
161
Matteo Scandolo10f965c2019-09-24 10:40:46 -0700162message Response {
163 int32 status_code = 1;
164 string message = 2;
165}
166
Arjun E K57a7fcb2020-01-30 06:44:45 +0000167enum SubActionTypes {
168 JOIN = 0;
169 LEAVE = 1;
Arjun E Kdd443f02020-02-07 15:24:01 +0000170 JOINV3 = 2;
Arjun E K57a7fcb2020-01-30 06:44:45 +0000171}
172
173message IgmpRequest {
Matteo Scandolo4a036262020-08-17 15:56:13 -0700174 ONURequest OnuReq = 1;
175 SubActionTypes SubActionVal = 2;
Onur Kalinagac9f9faca2021-01-21 14:04:34 +0000176 string GroupAddress = 3;
Arjun E K57a7fcb2020-01-30 06:44:45 +0000177}
178
Pragya Arya8bdb4532020-03-02 17:08:09 +0530179message Flows {
180 uint32 flow_count = 1;
181 repeated openolt.Flow flows = 2;
182}
183
Matteo Scandolo88c204a2020-11-03 10:34:24 -0800184message Timeout {
185 uint32 delay = 1;
186}
187
Matteo Scandolo4a036262020-08-17 15:56:13 -0700188message Empty {
189}
Matteo Scandolo84f7d482019-08-08 19:00:47 -0700190
191service BBSim {
Pragya Arya3f8fdc62020-03-16 11:12:27 +0530192 // Get BBSim version
Matteo Scandolo4a036262020-08-17 15:56:13 -0700193 rpc Version (Empty) returns (VersionNumber) {
194 }
Pragya Arya3f8fdc62020-03-16 11:12:27 +0530195 // Set BBSim log level
Matteo Scandolo4a036262020-08-17 15:56:13 -0700196 rpc SetLogLevel (LogLevel) returns (LogLevel) {
197 }
Pragya Aryabd731ec2020-02-11 16:38:17 +0530198
Pragya Arya3f8fdc62020-03-16 11:12:27 +0530199 // Get current status of OLT
Matteo Scandolo4a036262020-08-17 15:56:13 -0700200 rpc GetOlt (Empty) returns (Olt) {
201 }
Pragya Arya3f8fdc62020-03-16 11:12:27 +0530202 // Poweron OLT
Matteo Scandolo4a036262020-08-17 15:56:13 -0700203 rpc PoweronOlt (Empty) returns (Response) {
204 }
Pragya Arya3f8fdc62020-03-16 11:12:27 +0530205 // Shutdown OLT
Matteo Scandolo4a036262020-08-17 15:56:13 -0700206 rpc ShutdownOlt (Empty) returns (Response) {
207 }
Pragya Arya3f8fdc62020-03-16 11:12:27 +0530208 // Reboot OLT
Matteo Scandolo4a036262020-08-17 15:56:13 -0700209 rpc RebootOlt (Empty) returns (Response) {
210 }
Matteo Scandolo88c204a2020-11-03 10:34:24 -0800211 // Closes the Openolt gRPC server
212 rpc StopgRPCServer (Empty) returns (Response) {
213 }
214 // Start the Openolt gRPC server
215 rpc StartgRPCServer (Empty) returns (Response) {
216 }
217 // Restart the Openolt gRPC server after the given timeout
218 rpc RestartgRPCServer (Timeout) returns (Response) {
219 }
Pragya Aryabd731ec2020-02-11 16:38:17 +0530220
Pragya Arya3f8fdc62020-03-16 11:12:27 +0530221 // Get status of an ONU by serial number
Matteo Scandolo4a036262020-08-17 15:56:13 -0700222 rpc GetONU (ONURequest) returns (ONU) {
223 }
Pragya Arya3f8fdc62020-03-16 11:12:27 +0530224 // Get status of all ONUs
Matteo Scandolo4a036262020-08-17 15:56:13 -0700225 rpc GetONUs (Empty) returns (ONUs) {
226 }
227
228 // Get all the Services
229 rpc GetServices (Empty) returns (Services) {
230 }
231
232 // Get all the Services of an ONU by serial number
233 rpc GetOnuServices (ONURequest) returns (Services) {
234 }
Pragya Aryabd731ec2020-02-11 16:38:17 +0530235
Pragya Arya3f8fdc62020-03-16 11:12:27 +0530236 // Shutdown an ONU by serial number
Matteo Scandolo4a036262020-08-17 15:56:13 -0700237 rpc ShutdownONU (ONURequest) returns (Response) {
238 }
Pragya Arya3f8fdc62020-03-16 11:12:27 +0530239 // Shutdown all ONUs in OLT
Matteo Scandolo4a036262020-08-17 15:56:13 -0700240 rpc ShutdownAllONUs (Empty) returns (Response) {
241 }
Pragya Arya3f8fdc62020-03-16 11:12:27 +0530242 // Shutdown all ONUs under a PON by pon-port-ID
Matteo Scandolo4a036262020-08-17 15:56:13 -0700243 rpc ShutdownONUsOnPON (PONRequest) returns (Response) {
244 }
Pragya Aryabd731ec2020-02-11 16:38:17 +0530245
Pragya Arya3f8fdc62020-03-16 11:12:27 +0530246 // Poweron an ONU by serial number
Matteo Scandolo4a036262020-08-17 15:56:13 -0700247 rpc PoweronONU (ONURequest) returns (Response) {
248 }
Pragya Arya3f8fdc62020-03-16 11:12:27 +0530249 // Poweron all ONUs in OLT
Matteo Scandolo4a036262020-08-17 15:56:13 -0700250 rpc PoweronAllONUs (Empty) returns (Response) {
251 }
Pragya Arya3f8fdc62020-03-16 11:12:27 +0530252 // Poweron all ONUs under a PON by pon-port-ID
Matteo Scandolo4a036262020-08-17 15:56:13 -0700253 rpc PoweronONUsOnPON (PONRequest) returns (Response) {
254 }
Pragya Aryabd731ec2020-02-11 16:38:17 +0530255
Pragya Arya3f8fdc62020-03-16 11:12:27 +0530256 // Restart EAPOL for ONU
Matteo Scandolo4a036262020-08-17 15:56:13 -0700257 rpc RestartEapol (ONURequest) returns (Response) {
258 }
Onur Kalinagac9f9faca2021-01-21 14:04:34 +0000259 // Restart DHCP for ONU
Matteo Scandolo4a036262020-08-17 15:56:13 -0700260 rpc RestartDhcp (ONURequest) returns (Response) {
261 }
Pragya Arya3f8fdc62020-03-16 11:12:27 +0530262 // Send ONU alarm indication
Matteo Scandolo4a036262020-08-17 15:56:13 -0700263 rpc SetOnuAlarmIndication (ONUAlarmRequest) returns (Response) {
264 }
Pragya Arya3f8fdc62020-03-16 11:12:27 +0530265 // Send OLT alarm indication for Interface type NNI or PON
Matteo Scandolo4a036262020-08-17 15:56:13 -0700266 rpc SetOltAlarmIndication (OLTAlarmRequest) returns (Response) {
267 }
Pragya Arya3f8fdc62020-03-16 11:12:27 +0530268 // Get all flows or ONU specific flows
Matteo Scandolo4a036262020-08-17 15:56:13 -0700269 rpc GetFlows (ONURequest) returns (Flows) {
270 }
Onur Kalinagac9f9faca2021-01-21 14:04:34 +0000271 // Change IGMP state
Matteo Scandolo4a036262020-08-17 15:56:13 -0700272 rpc ChangeIgmpState (IgmpRequest) returns (Response) {
273 }
Pragya Arya3f8fdc62020-03-16 11:12:27 +0530274 // Get Traffic scheduler information for ONU
Matteo Scandolo4a036262020-08-17 15:56:13 -0700275 rpc GetOnuTrafficSchedulers (ONURequest) returns (ONUTrafficSchedulers) {
276 }
Arjun E K57a7fcb2020-01-30 06:44:45 +0000277}