VOL-3616: Changes to the protos for updated GetExtValue
Change-Id: I59b05bbb62dbf62410b1d5e252b2a49abd002623
diff --git a/protos/voltha_protos/extensions.proto b/protos/voltha_protos/extensions.proto
new file mode 100644
index 0000000..4291cfe
--- /dev/null
+++ b/protos/voltha_protos/extensions.proto
@@ -0,0 +1,142 @@
+// Copyright (c) 2018 Open Networking Foundation
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at:
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+syntax = "proto3";
+
+option go_package = "github.com/opencord/voltha-protos/v4/go/extension";
+option java_package = "org.opencord.voltha.extension";
+
+package extension;
+
+import public "voltha_protos/ext_config.proto";
+
+message GetDistanceRequest {
+ string onuDeviceId = 1;
+}
+
+message GetDistanceResponse {
+ uint32 distance = 1; // distance in meters
+}
+
+message GetOnuUniInfoRequest {
+ uint32 uniIndex = 1; // Index of the uni starting from 0
+}
+
+message GetOnuUniInfoResponse {
+ enum ConfigurationInd {
+ UNKOWN = 0;
+ TEN_BASE_T_FDX = 1;
+ HUNDRED_BASE_T_FDX = 2;
+ GIGABIT_ETHERNET_FDX = 3;
+ TEN_G_ETHERNET_FDX = 4;
+ TEN_BASE_T_HDX = 5;
+ HUNDRED_BASE_T_HDX = 6;
+ GIGABIT_ETHERNET_HDX = 7;
+ }
+
+ enum AdministrativeState {
+ ADMSTATE_UNDEFINED = 0;
+ LOCKED = 1;
+ UNLOCKED = 2;
+ }
+
+ enum OperationalState {
+ OPERSTATE_UNDEFINED = 0;
+ ENABLED = 1;
+ DISABLED = 2;
+ }
+
+ AdministrativeState admState = 1;
+ OperationalState operState = 2;
+ ConfigurationInd configInd = 3;
+}
+
+message GetValueRequest {
+ oneof request {
+ GetDistanceRequest distance = 1;
+ GetOnuUniInfoRequest uniInfo = 2;
+ }
+}
+
+message GetValueResponse {
+ enum Status {
+ STATUS_UNDEFINED = 0;
+ OK = 1;
+ ERROR = 2;
+ }
+
+ enum ErrorReason {
+ REASON_UNDEFINED = 0;
+ UNSUPPORTED = 1;
+ }
+ Status status = 1;
+ ErrorReason errReason = 2;
+
+ oneof response {
+ GetDistanceResponse distance = 3;
+ GetOnuUniInfoResponse uniInfo = 4;
+ }
+}
+
+message SetValueRequest {
+ oneof request {
+ config.AlarmConfig alarm_config = 1;
+ }
+}
+
+message SetValueResponse {
+ enum Status {
+ STATUS_UNDEFINED = 0;
+ OK = 1;
+ ERROR = 2;
+ }
+
+ enum ErrorReason {
+ REASON_UNDEFINED = 0;
+ UNSUPPORTED = 1;
+ }
+ Status status = 1;
+ ErrorReason errReason = 2;
+
+ // As of now we don't have any explicit response for the supported SetValueRequests
+ // to be used later
+ //oneof response {
+ //
+ //}
+}
+
+message SingleGetValueRequest {
+ string targetId = 1;
+ GetValueRequest request = 2;
+}
+
+message SingleGetValueResponse{
+ GetValueResponse response = 1;
+}
+
+message SingleSetValueRequest {
+ string targetId = 1;
+ SetValueRequest request = 2;
+}
+message SingleSetValueResponse {
+ SetValueResponse response = 1;
+}
+
+// Extension is a service to get and set specific attributes
+service Extension {
+ // Get a single attribute
+ rpc GetExtValue(SingleGetValueRequest) returns (SingleGetValueResponse);
+ // Set a single attribute
+ rpc SetExtValue(SingleSetValueRequest) returns (SingleSetValueResponse);
+}