VOL-3248 Support for SetExtValue API

         This commits adds a new SetExtValue API in the VOLTHA
         core.

Change-Id: I2dd022cee9b22dd1d34f53420d5d75e68d440975
diff --git a/protos/voltha_protos/ext_config.proto b/protos/voltha_protos/ext_config.proto
new file mode 100644
index 0000000..47113e9
--- /dev/null
+++ b/protos/voltha_protos/ext_config.proto
@@ -0,0 +1,70 @@
+// Copyright (c) 2020 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/v3/go/ext/config";
+
+package config;
+
+option java_package = "org.opencord.voltha";
+
+message AlarmConfig {
+    oneof config {
+       OnuItuPonAlarm onu_itu_pon_alarm_config = 1;
+    }
+}
+
+message OnuItuPonAlarm {
+   enum AlarmID {
+       RDI_ERRORS = 0; // RDI errors
+   }
+
+   enum AlarmReportingCondition {
+       RATE_THRESHOLD = 0; // The alarm is triggered if the stats delta value between samples crosses the configured threshold boundary
+       RATE_RANGE = 1; // The alarm is triggered if the stats delta value between samples deviates from the configured range
+       VALUE_THRESHOLD = 2; // The alarm is raised if the stats sample value becomes greater than this level.  The alarm is cleared when the host read the stats
+   }
+
+   message SoakTime {
+       fixed32 active_soak_time = 1;
+       fixed32 clear_soak_time = 2;
+   }
+
+   message RateThresholdConfig {
+       fixed64 rate_threshold_rising = 1;
+       fixed64 rate_threshold_falling = 2;
+       SoakTime soak_time = 3;
+   }
+
+   message RateRangeConfig {
+       fixed64 rate_range_lower = 1;
+       fixed64 rate_range_upper = 2;
+       SoakTime soak_time = 3;
+   }
+
+   message ValueThresholdConfig {
+       fixed64 threshold_limit = 1;
+       SoakTime soak_time = 2;
+   }
+
+   fixed32 pon_ni = 1;
+   fixed32 onu_id = 2;
+   AlarmID alarm_id = 3;
+   AlarmReportingCondition alarm_reporting_condition = 4;
+   oneof config {
+       RateThresholdConfig rate_threshold_config = 5;
+       RateRangeConfig rate_range_config = 6;
+       ValueThresholdConfig value_threshold_config = 7;
+   }
+}