AETHER-3162 Remove magma leftover iptables rule from enodebd
AETHER-3198 Add REUSE compliant to enodebd
AETHER-3196 Support identify IP from X-Real IP in enodebd
AETHER-3229 Documentation of configuration and state machine for enodebd
AETHER-3292 Adding new parameter to support in enodebd Sercomm driver
AETHER-3311 Remove unused protobuf definition from enodebd
Change-Id: Ie69f0141eff70cb3d4447cd9575c8224d42dd5e3
diff --git a/proto_files/lte/protos/enodebd.proto b/proto_files/lte/protos/enodebd.proto
new file mode 100644
index 0000000..0a9385a
--- /dev/null
+++ b/proto_files/lte/protos/enodebd.proto
@@ -0,0 +1,120 @@
+// SPDX-FileCopyrightText: 2020 The Magma Authors.
+// SPDX-FileCopyrightText: 2022 Open Networking Foundation <support@opennetworking.org>
+//
+// SPDX-License-Identifier: BSD-3-Clause
+
+syntax = "proto3";
+
+import "orc8r/protos/service303.proto";
+import "orc8r/protos/common.proto";
+
+package magma.lte;
+
+option go_package = "magma/lte/cloud/go/protos";
+
+
+// --------------------------------------------------------------------------
+// Message Definitions for TR-069 message injection. This is used for manual
+// testing of the TR-069 server.
+// --------------------------------------------------------------------------
+message GetParameterRequest {
+ // Serial ID of eNodeB. Uniquely identifies the eNodeB.
+ string device_serial = 1;
+
+ // Fully qualified parameter name, e.g:
+ // InternetGatewayDevice.LANDevice.1.Hosts.
+ string parameter_name = 2;
+}
+
+message NameValue {
+ string name = 1;
+ // Note: parameter value is always passed back as string. Up to calling
+ // function to determine type
+ string value = 2;
+}
+message GetParameterResponse {
+ string device_serial = 1;
+ repeated NameValue parameters = 2;
+}
+
+message SetParameterRequest {
+ // Serial ID of eNodeB. Uniquely identifies the eNodeB.
+ string device_serial = 1;
+
+ // Fully qualified parameter name, e.g:
+ // InternetGatewayDevice.LANDevice.1.Hosts.
+ string parameter_name = 2;
+
+ // Data values for each data type
+ oneof value {
+ int32 value_int = 3;
+ string value_string = 4;
+ bool value_bool = 5;
+ }
+
+ // Key to be used at ACS discretion to determine when parameter was last
+ // updated
+ string parameter_key = 6;
+}
+
+message EnodebIdentity {
+ // Serial ID of eNodeB. Uniquely identifies the eNodeB.
+ string device_serial = 1;
+}
+
+message AllEnodebStatus {
+ repeated SingleEnodebStatus enb_status_list = 1;
+}
+
+message SingleEnodebStatus {
+ enum StatusProperty {
+ OFF = 0;
+ ON = 1;
+ UNKNOWN = 2;
+ }
+ string device_serial = 1;
+ string ip_address = 2;
+ StatusProperty connected = 3;
+ StatusProperty configured = 4;
+ StatusProperty opstate_enabled = 5;
+ StatusProperty rf_tx_on = 6;
+ StatusProperty gps_connected = 7;
+ StatusProperty ptp_connected = 8;
+ StatusProperty mme_connected = 9;
+ string gps_longitude = 10;
+ string gps_latitude = 11;
+ string fsm_state = 12;
+ StatusProperty rf_tx_desired = 13;
+}
+
+// --------------------------------------------------------------------------
+// Enodebd service definition.
+// --------------------------------------------------------------------------
+service Enodebd {
+
+ // Sends GetParameterValues message to ENodeB. TR-069 supports multiple
+ // parameter names per message, but only one is supported here.
+ rpc GetParameter (GetParameterRequest) returns (GetParameterResponse);
+
+ // Sends SetParameterValues message to ENodeB. TR-069 supports multiple
+ // parameter names per message, but only one is supported here.
+ rpc SetParameter (SetParameterRequest) returns (magma.orc8r.Void);
+
+ // Configure eNodeB based on enodebd config file
+ rpc Configure (EnodebIdentity) returns (magma.orc8r.Void);
+
+ // Reboot eNodeB
+ rpc Reboot (EnodebIdentity) returns (magma.orc8r.Void);
+
+ // Reboot every connected eNodeB
+ rpc RebootAll (magma.orc8r.Void) returns (magma.orc8r.Void);
+
+ // Get current status
+ rpc GetStatus (magma.orc8r.Void) returns (magma.orc8r.ServiceStatus);
+
+ // Get status info for all connected eNodeB devices
+ rpc GetAllEnodebStatus (magma.orc8r.Void) returns (AllEnodebStatus);
+
+ // Get status info of a single connected eNodeB device
+ rpc GetEnodebStatus (EnodebIdentity) returns (SingleEnodebStatus);
+}