blob: 36cb000dcfbe8fbec88da96edd4c7b6872fbc805 [file] [log] [blame]
Joey Armstrong25589d82024-01-02 22:31:35 -05001// Copyright 2018-2024 Open Networking Foundation (ONF) and the ONF Contributors
amit.ghosh9f6af0e2020-11-04 14:09:25 +01002//
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";
16
khenaidoo5fc5cea2021-08-11 17:39:16 -040017option go_package = "github.com/opencord/voltha-protos/v5/go/extension";
amit.ghosh9f6af0e2020-11-04 14:09:25 +010018option java_package = "org.opencord.voltha.extension";
19
20package extension;
21
khenaidoo4c6543e2021-10-19 17:25:58 -040022import "voltha_protos/ext_config.proto";
kesavand763d8002021-01-04 16:24:42 +053023import "google/protobuf/empty.proto";
Akash Kankanala761955c2024-02-21 19:32:20 +053024import "voltha_protos/common.proto";
amit.ghosh9f6af0e2020-11-04 14:09:25 +010025
khenaidoo4c6543e2021-10-19 17:25:58 -040026message ValueSet {
27 string id = 1;
28 oneof value{
29 config.AlarmConfig alarm_config = 2;
30 }
31}
32
33message ValueType {
34 enum Type {
35 EMPTY = 0;
36 DISTANCE = 1;
37 }
38}
39
40message ValueSpecifier {
41 string id = 1;
42 ValueType.Type value = 2;
43}
44
45message ReturnValues {
pnalmas90299422025-12-16 11:29:25 +053046 uint32 Set = 1; // Specifies what values are
khenaidoo4c6543e2021-10-19 17:25:58 -040047 // set/valid in return
48
49 uint32 Unsupported = 2; // Specifies requested values not
50 // supported by the device
51
pnalmas90299422025-12-16 11:29:25 +053052 uint32 Error = 3; // Specifies requested values not
khenaidoo4c6543e2021-10-19 17:25:58 -040053 // fetched because of error
54
pnalmas90299422025-12-16 11:29:25 +053055 uint32 Distance = 4; // Value of distance Set includes
khenaidoo4c6543e2021-10-19 17:25:58 -040056 // DISTANCE
57
58}
59
amit.ghosh9f6af0e2020-11-04 14:09:25 +010060message GetDistanceRequest {
61 string onuDeviceId = 1;
62}
63
64message GetDistanceResponse {
65 uint32 distance = 1; // distance in meters
66}
67
68message GetOnuUniInfoRequest {
69 uint32 uniIndex = 1; // Index of the uni starting from 0
70}
71
72message GetOnuUniInfoResponse {
73 enum ConfigurationInd {
74 UNKOWN = 0;
75 TEN_BASE_T_FDX = 1;
76 HUNDRED_BASE_T_FDX = 2;
77 GIGABIT_ETHERNET_FDX = 3;
78 TEN_G_ETHERNET_FDX = 4;
79 TEN_BASE_T_HDX = 5;
80 HUNDRED_BASE_T_HDX = 6;
81 GIGABIT_ETHERNET_HDX = 7;
82 }
83
84 enum AdministrativeState {
85 ADMSTATE_UNDEFINED = 0;
86 LOCKED = 1;
87 UNLOCKED = 2;
88 }
89
90 enum OperationalState {
91 OPERSTATE_UNDEFINED = 0;
92 ENABLED = 1;
93 DISABLED = 2;
94 }
95
96 AdministrativeState admState = 1;
97 OperationalState operState = 2;
98 ConfigurationInd configInd = 3;
99}
100
kesavand763d8002021-01-04 16:24:42 +0530101message GetOltPortCounters {
102 enum PortType {
103 Port_UNKNOWN = 0;
104 Port_ETHERNET_NNI = 1;
105 Port_PON_OLT = 2;
106 }
pnalmas90299422025-12-16 11:29:25 +0530107 uint32 portNo = 1; // Device-unique port number
kesavand763d8002021-01-04 16:24:42 +0530108 PortType portType = 2;
109}
110
111message GetOltPortCountersResponse {
112 uint64 txBytes = 1;
113 uint64 rxBytes = 2;
114 uint64 txPackets = 3;
115 uint64 rxPackets = 4;
116 uint64 txErrorPackets = 5;
117 uint64 rxErrorPackets = 6;
118 uint64 txBcastPackets = 7;
119 uint64 rxBcastPackets = 8;
120 uint64 txUcastPackets = 9;
121 uint64 rxUcastPackets = 10;
122 uint64 txMcastPackets = 11;
123 uint64 rxMcastPackets = 12;
124}
125
126message GetOnuPonOpticalInfo {
127 google.protobuf.Empty empty = 1;
128}
129
Girish Gowdrab1d742d2021-05-01 15:34:32 -0700130// These values correspond to the Optical Line Supervision Test results
131// described in section A3.39.5 of ITU-T G.988 (11/2017) specification.
kesavand763d8002021-01-04 16:24:42 +0530132message GetOnuPonOpticalInfoResponse{
Girish Gowdrab1d742d2021-05-01 15:34:32 -0700133 float powerFeedVoltage = 1; // unit of value is voltage
134 float receivedOpticalPower = 2; // unit of value is dBm
135 float meanOpticalLaunchPower = 3; // unit of value is dBm
Girish Gowdrabce9ea72021-05-05 08:47:49 -0700136 float laserBiasCurrent = 4; // unit of value is milli-amphere (mA)
Girish Gowdrab1d742d2021-05-01 15:34:32 -0700137 float temperature = 5; // unit of value is degree celsius
kesavand763d8002021-01-04 16:24:42 +0530138}
139
140message GetOnuEthernetBridgePortHistory {
141 enum Direction {
142 UNDEFINED = 0;
143 UPSTREAM = 1;
144 DOWNSTREAM = 2;
145 }
146 Direction direction = 1;
147}
148
149message GetOnuEthernetBridgePortHistoryResponse {
150 uint32 dropEvents = 1;
151 uint32 octets = 2;
152 uint32 packets= 3;
153 uint32 broadcastPackets = 4;
154 uint32 multicastPackets = 5;
155 uint32 crcErroredPackets = 6;
156 uint32 undersizePackets = 7;
157 uint32 oversizePackets = 8;
158 uint32 packets64octets = 9;
159 uint32 packets65To127octets = 10;
160 uint32 packets128To255Octets = 11;
161 uint32 packets256To511octets = 12;
162 uint32 packets512To1023octets = 13;
163 uint32 packets1024To1518octets = 14;
164}
165
Akash Kankanala761955c2024-02-21 19:32:20 +0530166// GetOnuAllocGemHistoryRequest collects GEM and AllocId stats from ONU
167message GetOnuAllocGemHistoryRequest {
168 google.protobuf.Empty empty = 1;
169}
170
171message OnuGemPortHistoryData {
172 uint32 gemId = 1;
173 uint32 transmittedGEMFrames= 2;
174 uint32 receivedGEMFrames = 3;
pnalmas90299422025-12-16 11:29:25 +0530175
176 // Deprecated: uint32 cannot handle large byte counters and will overflow after ~4GB.
177 // Use received_payload_bytes_64 instead for full 64-bit precision.
178 uint32 receivedPayloadBytes= 4 [deprecated = true];
179
180 // Deprecated: uint32 cannot handle large byte counters and will overflow after ~4GB.
181 // Use transmitted_payload_bytes_64 instead for full 64-bit precision.
182 uint32 transmittedPayloadBytes = 5 [deprecated = true];
183
Akash Kankanala761955c2024-02-21 19:32:20 +0530184 uint32 encryptionKeyErrors = 6;
pnalmas90299422025-12-16 11:29:25 +0530185 fixed64 received_payload_bytes_64 = 7;
186 fixed64 transmitted_payload_bytes_64 = 8;
Akash Kankanala761955c2024-02-21 19:32:20 +0530187}
188
189message OnuAllocHistoryData {
190 uint32 allocId = 1;
191 uint32 rxBytes = 2;
192}
193
194message OnuAllocGemHistoryData {
195 OnuAllocHistoryData onuAllocIdInfo = 1;
196 repeated OnuGemPortHistoryData gemPortInfo = 2;
197}
198
199message GetOnuAllocGemHistoryResponse {
200 repeated OnuAllocGemHistoryData onuAllocGemHistoryData = 1;
201}
202
kesavand763d8002021-01-04 16:24:42 +0530203message GetOnuFecHistory {
204 google.protobuf.Empty empty = 1;
205}
206
207message GetOnuFecHistoryResponse {
pnalmas90299422025-12-16 11:29:25 +0530208 // Deprecated: uint32 cannot handle large counter values and will overflow.
209 // Use fec_corrected_bytes_64 instead for full 64-bit precision.
210 uint32 correctedBytes = 1 [deprecated = true];
211
212 // Deprecated: uint32 cannot handle large counter values and will overflow.
213 // Use fec_corrected_code_words_64 instead for full 64-bit precision.
214 uint32 correctedCodeWords = 2 [deprecated = true];
215
kesavand763d8002021-01-04 16:24:42 +0530216 uint32 fecSeconds = 3;
pnalmas90299422025-12-16 11:29:25 +0530217
218 // Deprecated: uint32 cannot handle large counter values and will overflow.
219 // Use total_code_words_64 instead for full 64-bit precision.
220 uint32 totalCodeWords = 4 [deprecated = true];
221
222 // Deprecated: uint32 cannot handle large counter values and will overflow.
223 // Use uncorrectable_code_words_64 instead for full 64-bit precision.
224 uint32 uncorrectableCodeWords = 5 [deprecated = true];
225
226 fixed64 fec_corrected_bytes_64 = 6;
227 fixed64 fec_corrected_code_words_64 = 7;
228 fixed64 total_code_words_64 = 8;
229 fixed64 uncorrectable_code_words_64 = 9;
kesavand763d8002021-01-04 16:24:42 +0530230}
231
Himani Chawlae5bb7ca2021-05-17 15:48:32 +0530232message GetOnuCountersRequest {
233 fixed32 intf_id = 1;
234 fixed32 onu_id = 2;
235}
236
Himani Chawla9a497392021-05-28 13:04:42 +0530237message GetOmciEthernetFrameExtendedPmRequest {
Himani Chawlae5bb7ca2021-05-17 15:48:32 +0530238 string onuDeviceId = 1;
Himani Chawla393605c2021-08-30 13:44:13 +0530239 oneof is_uni_index {
240 uint32 uniIndex = 2; // Index of the uni starting from 0
241 }
242 bool reset = 3;
Himani Chawlae5bb7ca2021-05-17 15:48:32 +0530243}
244
amit.ghosh8490b122022-11-28 15:45:04 +0100245// DEPRECATED
Gamze Abaka08683072021-05-26 13:38:02 +0000246message GetRxPowerRequest {
247 fixed32 intf_id = 1;
248 fixed32 onu_id = 2;
249}
250
amit.ghosh8490b122022-11-28 15:45:04 +0100251message GetOltRxPowerRequest {
252 string port_label = 1;
253 // onu_sn is optional and if onu_sn is an empty string and the label is
254 // of a PON port then it means that the Rx Power corresponding to all
255 // the ONUs on that PON port is requested. In case the port_label is not
256 // of a PON port, the onu_sn does not have any significance
257 string onu_sn = 2;
258}
259
Akash Kankanala761955c2024-02-21 19:32:20 +0530260message GetPonStatsRequest {
261 oneof portInfo {
262 string portLabel = 1;
263 fixed32 portId = 2;
264 }
265}
266
267message GetPonStatsResponse {
268 uint32 ponPort = 1;
269 common.PortStatistics portStatistics = 2;
270}
271
272message GetNNIStatsRequest {
273 oneof portInfo {
274 string portLabel = 1;
275 fixed32 portId = 2;
276 }
277}
278
279message GetNNIStatsResponse {
280 uint32 nniPort = 1;
281 common.PortStatistics portStatistics = 2;
282}
283
284// GetOnuStatsFromOltRequest collects GEM and AllocId stats from the OLT for a particular ONU.
285message GetOnuStatsFromOltRequest {
286 fixed32 intfId = 1;
287 fixed32 onuId = 2;
288}
289
290message OnuGemPortInfoFromOlt {
291 uint32 gemId = 1;
292 uint64 rxPackets = 2;
293 uint64 rxBytes = 3;
294 uint64 txPackets = 4;
295 uint64 txBytes = 5;
296}
297
298message OnuAllocIdInfoFromOlt {
299 uint32 allocId = 1;
300 uint64 rxBytes = 2;
301}
302
303message OnuAllocGemStatsFromOltResponse {
304 OnuAllocIdInfoFromOlt allocIdInfo = 1;
305 repeated OnuGemPortInfoFromOlt gemPortInfo = 2;
306}
307
308message GetOnuStatsFromOltResponse {
309 repeated OnuAllocGemStatsFromOltResponse allocGemStatsInfo = 1;
310}
311
Himani Chawlae5bb7ca2021-05-17 15:48:32 +0530312message GetOnuCountersResponse {
313 oneof is_intf_id {
314 fixed32 intf_id = 1;
315 }
316 oneof is_onu_id {
317 fixed32 onu_id = 2;
318 }
319 oneof is_positive_drift {
320 fixed64 positive_drift = 3;
321 }
322 oneof is_negative_drift {
323 fixed64 negative_drift = 4;
324 }
325 oneof is_delimiter_miss_detection {
326 fixed64 delimiter_miss_detection = 5;
327 }
328 oneof is_bip_errors {
329 fixed64 bip_errors = 6;
330 }
331 oneof is_bip_units {
332 fixed64 bip_units = 7;
333 }
334 oneof is_fec_corrected_symbols {
335 fixed64 fec_corrected_symbols = 8;
336 }
337 oneof is_fec_codewords_corrected {
338 fixed64 fec_codewords_corrected = 9;
339 }
340 oneof is_fec_codewords_uncorrectable {
341 fixed64 fec_codewords_uncorrectable = 10;
342 }
343 oneof is_fec_codewords {
344 fixed64 fec_codewords = 11;
345 }
346 oneof is_fec_corrected_units {
347 fixed64 fec_corrected_units = 12;
348 }
349 oneof is_xgem_key_errors {
350 fixed64 xgem_key_errors = 13;
351 }
352 oneof is_xgem_loss {
353 fixed64 xgem_loss = 14;
354 }
355 oneof is_rx_ploams_error {
356 fixed64 rx_ploams_error = 15;
357 }
358 oneof is_rx_ploams_non_idle {
359 fixed64 rx_ploams_non_idle = 16;
360 }
361 oneof is_rx_omci {
362 fixed64 rx_omci = 17;
363 }
364 oneof is_tx_omci {
365 fixed64 tx_omci = 18;
366 }
367 oneof is_rx_omci_packets_crc_error {
368 fixed64 rx_omci_packets_crc_error = 19;
369 }
370 oneof is_rx_bytes {
371 fixed64 rx_bytes = 20;
372 }
373 oneof is_rx_packets {
374 fixed64 rx_packets = 21;
375 }
376 oneof is_tx_bytes {
377 fixed64 tx_bytes = 22;
378 }
379 oneof is_tx_packets {
380 fixed64 tx_packets = 23;
381 }
382 oneof is_ber_reported {
383 fixed64 ber_reported = 24;
384 }
385 oneof is_lcdg_errors {
386 fixed64 lcdg_errors = 25;
387 }
388 oneof is_rdi_errors {
389 fixed64 rdi_errors = 26;
390 }
391 oneof is_timestamp {
392 // reported timestamp in seconds since epoch
393 fixed32 timestamp = 27;
394 }
pnalmas90299422025-12-16 11:29:25 +0530395 oneof is_hec_errors {
396 fixed64 hec_errors = 28;
397 }
Himani Chawlae5bb7ca2021-05-17 15:48:32 +0530398}
399
Himani Chawla9a497392021-05-28 13:04:42 +0530400message OmciEthernetFrameExtendedPm {
Himani Chawlae5bb7ca2021-05-17 15:48:32 +0530401 fixed64 drop_events = 1;
Himani Chawlae5bb7ca2021-05-17 15:48:32 +0530402 fixed64 octets = 2;
Himani Chawlae5bb7ca2021-05-17 15:48:32 +0530403 fixed64 frames = 3;
Himani Chawlae5bb7ca2021-05-17 15:48:32 +0530404 fixed64 broadcast_frames = 4;
Himani Chawlae5bb7ca2021-05-17 15:48:32 +0530405 fixed64 multicast_frames = 5;
Himani Chawlae5bb7ca2021-05-17 15:48:32 +0530406 fixed64 crc_errored_frames = 6;
Himani Chawlae5bb7ca2021-05-17 15:48:32 +0530407 fixed64 undersize_frames = 7;
Himani Chawlae5bb7ca2021-05-17 15:48:32 +0530408 fixed64 oversize_frames = 8;
Himani Chawlae5bb7ca2021-05-17 15:48:32 +0530409 fixed64 frames_64_octets = 9;
Himani Chawlae5bb7ca2021-05-17 15:48:32 +0530410 fixed64 frames_65_to_127_octets = 10;
Himani Chawlae5bb7ca2021-05-17 15:48:32 +0530411 fixed64 frames_128_to_255_octets = 11;
Himani Chawlae5bb7ca2021-05-17 15:48:32 +0530412 fixed64 frames_256_to_511_octets = 12;
Himani Chawlae5bb7ca2021-05-17 15:48:32 +0530413 fixed64 frames_512_to_1023_octets = 13;
Himani Chawlae5bb7ca2021-05-17 15:48:32 +0530414 fixed64 frames_1024_to_1518_octets = 14;
Himani Chawla9a497392021-05-28 13:04:42 +0530415}
416
417message GetOmciEthernetFrameExtendedPmResponse {
Himani Chawla654f7f32021-08-25 16:31:24 +0530418 enum Format {
419 THIRTY_TWO_BIT = 0;
420 SIXTY_FOUR_BIT = 1;
421 }
Himani Chawla9a497392021-05-28 13:04:42 +0530422 OmciEthernetFrameExtendedPm upstream = 1;
423 OmciEthernetFrameExtendedPm downstream = 2;
Himani Chawla654f7f32021-08-25 16:31:24 +0530424 Format omci_ethernet_frame_extended_pm_format= 3;
Himani Chawlae5bb7ca2021-05-17 15:48:32 +0530425}
426
amit.ghosh8490b122022-11-28 15:45:04 +0100427message RxPower {
428 string onu_sn = 1; // if the port on which RxPower is measured is not a PON port this will be empty ("") string
429 string status = 2;
430 string fail_reason = 3;
431 double rx_power = 4;
432}
433
434message GetOltRxPowerResponse {
435 string port_label= 1;
436 repeated RxPower rx_power = 2;
437}
438
439// DEPRECATED
Gamze Abaka08683072021-05-26 13:38:02 +0000440message GetRxPowerResponse {
441 fixed32 intf_id= 1;
442 fixed32 onu_id = 2;
443 string status = 3;
444 string fail_reason = 4;
445 double rx_power = 5;
446}
447
Holger Hildebrandt3374b882022-09-06 11:40:16 +0000448message GetOnuOmciTxRxStatsRequest{
449 google.protobuf.Empty empty = 1;
450}
451
452// see ITU-T G.988 clause 11.2.2
453message GetOnuOmciTxRxStatsResponse {
454 // OMCI baseline Tx frames with AR bit set
455 uint32 base_tx_ar_frames = 1;
456 // OMCI baseline Rx frames with AK bit set
457 uint32 base_rx_ak_frames = 2;
458 // OMCI baseline Tx frames with AR bit unset
459 uint32 base_tx_no_ar_frames = 3;
460 // OMCI baseline Rx frames with AK bit unset
461 uint32 base_rx_no_ak_frames = 4;
462 // OMCI extended Tx frames with AR bit set
463 uint32 ext_tx_ar_frames = 5;
464 // OMCI extended Rx frames with AK bit set
465 uint32 ext_rx_ak_frames = 6;
466 // OMCI extended Tx frames with AR bit unset
467 uint32 ext_tx_no_ar_frames = 7;
468 // OMCI extended Rx frames with AK bit unset
469 uint32 ext_rx_no_ak_frames = 8;
470 // Number of retries of requests (tx) due to not received responses (Rx)
471 uint32 tx_omci_counter_retries = 9;
472 // Number of timeouts of requests (tx) due to not received responses (Rx) after configured number of retries
473 uint32 tx_omci_counter_timeouts = 10;
474}
475
praneeth kumar nalmas6230f492022-12-22 11:11:13 +0530476message GetOnuOmciActiveAlarmsRequest{
477 google.protobuf.Empty empty = 1;
478}
479
480message AlarmData{
481 uint32 class_id = 1;
482 uint32 instance_id = 2;
483 string name = 3;
484 string description = 4;
485}
486
487message GetOnuOmciActiveAlarmsResponse{
488 repeated AlarmData active_alarms = 1;
489}
490
amit.ghoshf017eab2024-06-28 15:09:33 +0200491message GetOffloadedAppsStatisticsRequest {
492 enum OffloadedApp {
493 UNDEFINED = 0;
494 PPPoeIA = 1;
495 DHCPv4RA = 2;
496 DHCPv6RA = 3;
497 }
498 // The offloaded application whose statistics are requested
499 OffloadedApp statsFor = 1;
500}
501
502message GetOffloadedAppsStatisticsResponse {
503 message DHCPv4RAStats {
504 // From https://github.com/BroadbandForum/yang/blob/master/standard/networking/bbf-l2-dhcpv4-relay.yang
505 uint32 in_bad_packets_from_client = 1;
506 uint32 in_bad_packets_from_server = 2;
507 uint32 in_packets_from_client = 3;
508 uint32 in_packets_from_server = 4;
509 uint32 out_packets_to_server = 5;
510 uint32 out_packets_to_client = 6;
511 uint32 option_82_inserted_packets_to_server = 7;
512 uint32 option_82_removed_packets_to_client = 8;
513 uint32 option_82_not_inserted_to_server = 9;
514
515 // Name value pairs that gives the flexibility to report different statistics that implementations may choose
516 map<string, string> additional_stats = 10;
517 }
518
519 message DHCPv6RAStats {
520 // From https://github.com/BroadbandForum/yang/blob/master/standard/networking/bbf-ldra.yang
521 uint32 in_bad_packets_from_client = 1;
522 uint32 in_bad_packets_from_server = 2;
523 uint32 option_17_inserted_packets_to_server = 3;
524 uint32 option_17_removed_packets_to_client = 4;
525 uint32 option_18_inserted_packets_to_server = 5;
526 uint32 option_18_removed_packets_to_client = 6;
527 uint32 option_37_inserted_packets_to_server = 7;
528 uint32 option_37_removed_packets_to_client = 8;
529 uint32 outgoing_mtu_exceeded_packets_from_client = 9;
530
531 // Name value pairs that gives the flexibility to report different statistics that implementations may choose
532 map<string, string> additional_stats = 10;
533 }
534
535 message PPPoeIAStats {
536 // From https://github.com/BroadbandForum/yang/blob/master/standard/networking/bbf-pppoe-intermediate-agent.yang
537 uint32 in_error_packets_from_client = 1;
538 uint32 in_error_packets_from_server = 2;
539 uint32 in_packets_from_client = 3;
540 uint32 in_packets_from_server = 4;
541 uint32 out_packets_to_server = 5;
542 uint32 out_packets_to_client = 6;
543 uint32 vendor_specific_tag_inserted_packets_to_server = 7;
544 uint32 vendor_specific_tag_removed_packets_to_client = 8;
545 uint32 outgoing_mtu_exceeded_packets_from_client = 9;
546
547 // Name value pairs that gives the flexibility to report different statistics that implementations may choose
548 map<string, string> additional_stats = 10;
549 }
550
551 oneof stats {
552 DHCPv4RAStats dhcpv4RaStats = 1;
553 DHCPv6RAStats dhcpv6RaStats = 2;
554 PPPoeIAStats pppoeIaStats = 3;
555 }
556}
praneeth kumar nalmas6230f492022-12-22 11:11:13 +0530557
amit.ghosh9f6af0e2020-11-04 14:09:25 +0100558message GetValueRequest {
559 oneof request {
560 GetDistanceRequest distance = 1;
561 GetOnuUniInfoRequest uniInfo = 2;
amit.ghoshf017eab2024-06-28 15:09:33 +0200562 // Corresponds to PmMetricId.PON_PORT_COUNTERS, PmMetricId.NNI_PORT_COUNTERS
kesavand763d8002021-01-04 16:24:42 +0530563 GetOltPortCounters oltPortInfo = 3;
564 // Corresponds to PmMetricId.PON_OPTICAL
565 GetOnuPonOpticalInfo onuOpticalInfo = 4;
566 // Corresponds to PmMetricId.ETHERNET_BRIDGE_PORT_HISTORY
567 GetOnuEthernetBridgePortHistory ethBridgePort = 5;
568 // Corresponds to PmMetricId.FEC_HISTORY
Gamze Abaka08683072021-05-26 13:38:02 +0000569 GetOnuFecHistory fecHistory = 6;
570 GetOnuCountersRequest onuPonInfo = 7;
Himani Chawla9a497392021-05-28 13:04:42 +0530571 GetOmciEthernetFrameExtendedPmRequest onuInfo = 8;
amit.ghosh8490b122022-11-28 15:45:04 +0100572 GetRxPowerRequest rxPower = 9; // This is deprecated
Holger Hildebrandt3374b882022-09-06 11:40:16 +0000573 GetOnuOmciTxRxStatsRequest onuOmciStats = 10;
amit.ghosh8490b122022-11-28 15:45:04 +0100574 GetOltRxPowerRequest oltRxPower = 11;
praneeth kumar nalmas6230f492022-12-22 11:11:13 +0530575 GetOnuOmciActiveAlarmsRequest onuActiveAlarms = 12;
amit.ghoshf017eab2024-06-28 15:09:33 +0200576 GetOffloadedAppsStatisticsRequest offloadedAppsStats = 13;
Akash Kankanala761955c2024-02-21 19:32:20 +0530577 GetOnuAllocGemHistoryRequest onuAllocGemStats = 14;
578 GetOnuStatsFromOltRequest onuStatsFromOlt = 15;
579 GetPonStatsRequest oltPonStats = 16;
580 GetNNIStatsRequest oltNniStats = 17;
amit.ghosh9f6af0e2020-11-04 14:09:25 +0100581 }
582}
583
584message GetValueResponse {
585 enum Status {
586 STATUS_UNDEFINED = 0;
587 OK = 1;
588 ERROR = 2;
589 }
590
591 enum ErrorReason {
592 REASON_UNDEFINED = 0;
593 UNSUPPORTED = 1;
kesavand763d8002021-01-04 16:24:42 +0530594 INVALID_DEVICE_ID = 2;
595 INVALID_PORT_TYPE = 3;
596 TIMEOUT = 4;
597 INVALID_REQ_TYPE = 5;
Himani Chawlae5bb7ca2021-05-17 15:48:32 +0530598 INTERNAL_ERROR = 6;
599 INVALID_DEVICE = 7;
amit.ghosh9f6af0e2020-11-04 14:09:25 +0100600 }
601 Status status = 1;
602 ErrorReason errReason = 2;
603
604 oneof response {
605 GetDistanceResponse distance = 3;
606 GetOnuUniInfoResponse uniInfo = 4;
kesavand763d8002021-01-04 16:24:42 +0530607 GetOltPortCountersResponse portCoutners = 5;
608 GetOnuPonOpticalInfoResponse onuOpticalInfo = 6;
609 GetOnuEthernetBridgePortHistoryResponse ethBridgePortInfo = 7;
610 GetOnuFecHistoryResponse fecHistory = 8;
Gamze Abaka08683072021-05-26 13:38:02 +0000611 GetOnuCountersResponse onuPonCounters = 9;
Himani Chawla9a497392021-05-28 13:04:42 +0530612 GetOmciEthernetFrameExtendedPmResponse onuCounters = 10;
amit.ghosh8490b122022-11-28 15:45:04 +0100613 GetRxPowerResponse rxPower = 11; // This is DEPRECATED
Holger Hildebrandt3374b882022-09-06 11:40:16 +0000614 GetOnuOmciTxRxStatsResponse onuOmciStats = 12;
amit.ghosh8490b122022-11-28 15:45:04 +0100615 GetOltRxPowerResponse oltRxPower = 13;
praneeth kumar nalmas6230f492022-12-22 11:11:13 +0530616 GetOnuOmciActiveAlarmsResponse onuActiveAlarms = 14;
amit.ghoshf017eab2024-06-28 15:09:33 +0200617 GetOffloadedAppsStatisticsResponse offloadedAppsStats = 15;
Akash Kankanala761955c2024-02-21 19:32:20 +0530618 GetOnuAllocGemHistoryResponse onuAllocGemStatsResponse = 16;
619 GetOnuStatsFromOltResponse onuStatsFromOltResponse = 17;
620 GetPonStatsResponse oltPonStatsResponse = 18;
621 GetNNIStatsResponse oltNniStatsResponse = 19;
amit.ghosh9f6af0e2020-11-04 14:09:25 +0100622 }
623}
624
amit.ghoshf017eab2024-06-28 15:09:33 +0200625// AppOffloadConfig is the configuration for offloading applications to the OLT and has OLT wide configuration.
626message AppOffloadConfig {
627 bool enableDHCPv4RA = 1;
628 bool enableDHCPv6RA = 2;
629 bool enablePPPoEIA = 3;
630 // Follows the same as the BBF Access Node Id defined in https://github.com/BroadbandForum/yang/blob/master/standard/networking/bbf-subscriber-profiles.yang
631 string accessNodeID = 4;
632}
633
634// AppOffloadOnuConfig has Onu specfic configuration which the OLT runs applications which have been offloaded.
635message AppOffloadOnuConfig {
636 string onuDeviceId = 1;
637
638 message PerUniConfig {
639 // As per the BBF Agent Remote Id defined in https://github.com/BroadbandForum/yang/blob/master/standard/networking/bbf-pppoe-intermediate-agent-profile-common.yang
640 string agentRemoteID = 2;
641 // As per the BBF Agent Circuit Id defined in https://github.com/BroadbandForum/yang/blob/master/standard/networking/bbf-pppoe-intermediate-agent-profile-common.yang
642 string agentCircuitID = 3;
643 // The id of the UNI on the Onu for which this configuration is relevant. The UNI ids are numbered from 0 to n depending on the number of UNI ports on the ONU.
644 uint32 onuUniId = 4;
645 }
646
647 repeated PerUniConfig perUniInfo = 5;
648
649}
650
amit.ghosh9f6af0e2020-11-04 14:09:25 +0100651message SetValueRequest {
652 oneof request {
653 config.AlarmConfig alarm_config = 1;
amit.ghoshf017eab2024-06-28 15:09:33 +0200654 AppOffloadConfig app_offload_config = 2;
655 AppOffloadOnuConfig app_offload_onu_config = 3;
amit.ghosh9f6af0e2020-11-04 14:09:25 +0100656 }
657}
658
659message SetValueResponse {
660 enum Status {
661 STATUS_UNDEFINED = 0;
662 OK = 1;
663 ERROR = 2;
664 }
665
666 enum ErrorReason {
667 REASON_UNDEFINED = 0;
668 UNSUPPORTED = 1;
amit.ghoshf017eab2024-06-28 15:09:33 +0200669 INVALID_DEVICE_ID = 2;
670 INVALID_ONU_DEVICE_ID = 3;
671 INVALID_UNI_ID = 4;
amit.ghosh9f6af0e2020-11-04 14:09:25 +0100672 }
673 Status status = 1;
674 ErrorReason errReason = 2;
675
676 // As of now we don't have any explicit response for the supported SetValueRequests
677 // to be used later
678 //oneof response {
679 //
680 //}
681}
682
683message SingleGetValueRequest {
684 string targetId = 1;
685 GetValueRequest request = 2;
686}
687
688message SingleGetValueResponse{
689 GetValueResponse response = 1;
690}
691
692message SingleSetValueRequest {
693 string targetId = 1;
694 SetValueRequest request = 2;
695}
696message SingleSetValueResponse {
697 SetValueResponse response = 1;
698}
699
700// Extension is a service to get and set specific attributes
701service Extension {
702 // Get a single attribute
703 rpc GetExtValue(SingleGetValueRequest) returns (SingleGetValueResponse);
704 // Set a single attribute
705 rpc SetExtValue(SingleSetValueRequest) returns (SingleSetValueResponse);
706}