blob: 0a9385a7acde2cbed832937f9542761a42b34d1d [file] [log] [blame]
Wei-Yu Chenad55cb82022-02-15 20:07:01 +08001// SPDX-FileCopyrightText: 2020 The Magma Authors.
2// SPDX-FileCopyrightText: 2022 Open Networking Foundation <support@opennetworking.org>
3//
4// SPDX-License-Identifier: BSD-3-Clause
5
6syntax = "proto3";
7
8import "orc8r/protos/service303.proto";
9import "orc8r/protos/common.proto";
10
11package magma.lte;
12
13option go_package = "magma/lte/cloud/go/protos";
14
15
16// --------------------------------------------------------------------------
17// Message Definitions for TR-069 message injection. This is used for manual
18// testing of the TR-069 server.
19// --------------------------------------------------------------------------
20message GetParameterRequest {
21 // Serial ID of eNodeB. Uniquely identifies the eNodeB.
22 string device_serial = 1;
23
24 // Fully qualified parameter name, e.g:
25 // InternetGatewayDevice.LANDevice.1.Hosts.
26 string parameter_name = 2;
27}
28
29message NameValue {
30 string name = 1;
31 // Note: parameter value is always passed back as string. Up to calling
32 // function to determine type
33 string value = 2;
34}
35message GetParameterResponse {
36 string device_serial = 1;
37 repeated NameValue parameters = 2;
38}
39
40message SetParameterRequest {
41 // Serial ID of eNodeB. Uniquely identifies the eNodeB.
42 string device_serial = 1;
43
44 // Fully qualified parameter name, e.g:
45 // InternetGatewayDevice.LANDevice.1.Hosts.
46 string parameter_name = 2;
47
48 // Data values for each data type
49 oneof value {
50 int32 value_int = 3;
51 string value_string = 4;
52 bool value_bool = 5;
53 }
54
55 // Key to be used at ACS discretion to determine when parameter was last
56 // updated
57 string parameter_key = 6;
58}
59
60message EnodebIdentity {
61 // Serial ID of eNodeB. Uniquely identifies the eNodeB.
62 string device_serial = 1;
63}
64
65message AllEnodebStatus {
66 repeated SingleEnodebStatus enb_status_list = 1;
67}
68
69message SingleEnodebStatus {
70 enum StatusProperty {
71 OFF = 0;
72 ON = 1;
73 UNKNOWN = 2;
74 }
75 string device_serial = 1;
76 string ip_address = 2;
77 StatusProperty connected = 3;
78 StatusProperty configured = 4;
79 StatusProperty opstate_enabled = 5;
80 StatusProperty rf_tx_on = 6;
81 StatusProperty gps_connected = 7;
82 StatusProperty ptp_connected = 8;
83 StatusProperty mme_connected = 9;
84 string gps_longitude = 10;
85 string gps_latitude = 11;
86 string fsm_state = 12;
87 StatusProperty rf_tx_desired = 13;
88}
89
90// --------------------------------------------------------------------------
91// Enodebd service definition.
92// --------------------------------------------------------------------------
93service Enodebd {
94
95 // Sends GetParameterValues message to ENodeB. TR-069 supports multiple
96 // parameter names per message, but only one is supported here.
97 rpc GetParameter (GetParameterRequest) returns (GetParameterResponse);
98
99 // Sends SetParameterValues message to ENodeB. TR-069 supports multiple
100 // parameter names per message, but only one is supported here.
101 rpc SetParameter (SetParameterRequest) returns (magma.orc8r.Void);
102
103 // Configure eNodeB based on enodebd config file
104 rpc Configure (EnodebIdentity) returns (magma.orc8r.Void);
105
106 // Reboot eNodeB
107 rpc Reboot (EnodebIdentity) returns (magma.orc8r.Void);
108
109 // Reboot every connected eNodeB
110 rpc RebootAll (magma.orc8r.Void) returns (magma.orc8r.Void);
111
112 // Get current status
113 rpc GetStatus (magma.orc8r.Void) returns (magma.orc8r.ServiceStatus);
114
115 // Get status info for all connected eNodeB devices
116 rpc GetAllEnodebStatus (magma.orc8r.Void) returns (AllEnodebStatus);
117
118 // Get status info of a single connected eNodeB device
119 rpc GetEnodebStatus (EnodebIdentity) returns (SingleEnodebStatus);
120}