blob: adc5b3100788691ad1b7b586426085c3d7e26089 [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 int32 STag = 6;
49 int32 CTag = 7;
50 string HwAddress = 8;
Matteo Scandolo27428702019-10-11 16:21:16 -070051 int32 PortNo = 9;
Matteo Scandolo9a3518c2019-08-13 14:36:01 -070052}
53
Anand S Katti09541352020-01-29 15:54:01 +053054message ONUTrafficSchedulers {
55 tech_profile.TrafficSchedulers traffSchedulers = 1;
56}
57
Matteo Scandolo9a3518c2019-08-13 14:36:01 -070058message ONUs {
59 repeated ONU items = 1;
Matteo Scandolo84f7d482019-08-08 19:00:47 -070060}
61
Matteo Scandolo10f965c2019-09-24 10:40:46 -070062// Inputs
63
64message ONURequest {
65 string SerialNumber = 1;
66}
67
Pragya Aryabd731ec2020-02-11 16:38:17 +053068message PONRequest {
69 uint32 PonPortId = 1;
70}
71
Scott Baker41724b82020-01-21 19:54:53 -080072// Alarms
73
74message AlarmType {
75 // These types correspond to the messages permitted in the oneof
76 // in AlarmIndication in the openolt protos
77 enum Types {
78 LOS = 0; // LOS is an OLT alarm for an entire PON
79 DYING_GASP = 1;
80 ONU_ALARM = 2;
81 ONU_STARTUP_FAILURE = 3;
82 ONU_SIGNAL_DEGRADE = 4;
83 ONU_DRIFT_OF_WINDOW = 5;
84 ONU_LOSS_OF_OMCI_CHANNEL = 6;
85 ONU_SIGNALS_FAILURE = 7;
86 ONU_TRANSMISSION_INTERFERENCE_WARNING = 8;
87 ONU_ACTIVATION_FAILURE = 9;
88 ONU_PROCESSING_ERROR = 10;
89 ONU_LOSS_OF_KEY_SYNC_FAILURE = 11;
90 ONU_ITU_PON_STATS = 12;
91
92 // These break out ONU_ALARM, which is a single message, but
93 // includes statuses for these six alarms.
94 ONU_ALARM_LOS = 13;
95 ONU_ALARM_LOB = 14;
96 ONU_ALARM_LOPC_MISS = 15;
97 ONU_ALARM_LOPC_MIC_ERROR = 16;
98 ONU_ALARM_LOFI = 17;
99 ONU_ALARM_LOAMI = 18;
100 }
101}
102
103message AlarmParameter {
104 string Key = 1;
105 string Value = 2;
106}
107
Anand S Katti86552f92020-03-03 21:56:32 +0530108// ONUAlarmRequest includes fields common to every Onu alarm,
Anand S Katti09541352020-01-29 15:54:01 +0530109// plus an optional list of AlarmParameter list that can be used
Scott Baker41724b82020-01-21 19:54:53 -0800110// to set additional fields in alarms that support them.
Anand S Katti86552f92020-03-03 21:56:32 +0530111message ONUAlarmRequest {
Pragya Arya694ece02020-02-07 13:03:47 +0530112 string AlarmType = 1; // name of alarm to raise
Scott Baker41724b82020-01-21 19:54:53 -0800113 string SerialNumber = 2; // serial number of ONU
114 string Status = 3; // status of Alarm
115 repeated AlarmParameter Parameters = 4; // optional list of additional parameters
116}
117
Anand S Katti86552f92020-03-03 21:56:32 +0530118// OLT alarm request
119message OLTAlarmRequest {
120 uint32 InterfaceID = 1; // Switch Interface Id
121 string InterfaceType = 2; // PON or NNI Type
122 string Status = 3; // Interface Operstatus
123}
124
Matteo Scandolo10f965c2019-09-24 10:40:46 -0700125// Utils
126
Matteo Scandolo84f7d482019-08-08 19:00:47 -0700127message VersionNumber {
128 string version = 1;
129 string buildTime = 2;
130 string commitHash = 3;
131 string gitStatus = 4;
132}
133
Matteo Scandolo2bf742a2019-10-01 11:33:34 -0700134message LogLevel {
135 string level = 1;
136 bool caller = 2;
137}
138
Matteo Scandolo10f965c2019-09-24 10:40:46 -0700139message Response {
140 int32 status_code = 1;
141 string message = 2;
142}
143
Arjun E K57a7fcb2020-01-30 06:44:45 +0000144enum SubActionTypes {
145 JOIN = 0;
146 LEAVE = 1;
Arjun E Kdd443f02020-02-07 15:24:01 +0000147 JOINV3 = 2;
Arjun E K57a7fcb2020-01-30 06:44:45 +0000148}
149
150message IgmpRequest {
151 ONURequest OnuReq = 1;
152 SubActionTypes SubActionVal = 2;
153}
154
Pragya Arya8bdb4532020-03-02 17:08:09 +0530155message Flows {
156 uint32 flow_count = 1;
157 repeated openolt.Flow flows = 2;
158}
159
Matteo Scandolo84f7d482019-08-08 19:00:47 -0700160message Empty {}
161
162service BBSim {
163 rpc Version(Empty) returns (VersionNumber) {}
Pragya Aryabd731ec2020-02-11 16:38:17 +0530164 rpc SetLogLevel(LogLevel) returns (LogLevel) {}
165
Matteo Scandolo84f7d482019-08-08 19:00:47 -0700166 rpc GetOlt(Empty) returns (Olt) {}
Zdravko Bozakov681364d2019-11-10 14:28:46 +0100167 rpc PoweronOlt(Empty) returns (Response) {}
168 rpc ShutdownOlt(Empty) returns (Response) {}
169 rpc RebootOlt(Empty) returns (Response) {}
Pragya Aryabd731ec2020-02-11 16:38:17 +0530170
Matteo Scandolod2ca2c72019-10-04 16:50:22 -0700171 rpc GetONU(ONURequest) returns (ONU) {}
Pragya Aryabd731ec2020-02-11 16:38:17 +0530172 rpc GetONUs(Empty) returns (ONUs) {}
173
Matteo Scandolo10f965c2019-09-24 10:40:46 -0700174 rpc ShutdownONU (ONURequest) returns (Response) {}
Pragya Aryabd731ec2020-02-11 16:38:17 +0530175 rpc ShutdownAllONUs (Empty) returns (Response) {}
176 rpc ShutdownONUsOnPON(PONRequest) returns (Response) {}
177
Matteo Scandolo10f965c2019-09-24 10:40:46 -0700178 rpc PoweronONU (ONURequest) returns (Response) {}
Pragya Aryabd731ec2020-02-11 16:38:17 +0530179 rpc PoweronAllONUs (Empty) returns (Response) {}
180 rpc PoweronONUsOnPON(PONRequest) returns (Response) {}
181
Matteo Scandoloe383d5d2019-10-25 14:47:27 -0700182 rpc RestartEapol (ONURequest) returns (Response) {}
183 rpc RestartDhcp (ONURequest) returns (Response) {}
Anand S Katti86552f92020-03-03 21:56:32 +0530184 rpc SetOnuAlarmIndication (ONUAlarmRequest) returns (Response) {}
185 rpc SetOltAlarmIndication (OLTAlarmRequest) returns (Response) {}
Pragya Arya8bdb4532020-03-02 17:08:09 +0530186 rpc GetFlows(ONURequest) returns(Flows) {}
Arjun E K57a7fcb2020-01-30 06:44:45 +0000187 rpc ChangeIgmpState (IgmpRequest) returns (Response) {}
Anand S Katti09541352020-01-29 15:54:01 +0530188 rpc GetOnuTrafficSchedulers (ONURequest) returns (ONUTrafficSchedulers) {}
Arjun E K57a7fcb2020-01-30 06:44:45 +0000189}