flexran.proto 5.17 KB
Newer Older
1
syntax = "proto2";
2
3
4
5
6
7
8
9
10
package protocol;

import "stats_messages.proto";
import "header.proto";
import "time_common.proto";
import "config_messages.proto";
import "controller_commands.proto";
import "control_delegation.proto";

shahab's avatar
shahab committed
11

12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
message flexran_message {
       optional flexran_direction msg_dir = 100;
	oneof msg {
              flex_hello hello_msg = 1;
              flex_echo_request echo_request_msg = 2;
	      flex_echo_reply echo_reply_msg = 3;
	      flex_stats_request stats_request_msg = 4;
	      flex_stats_reply stats_reply_msg = 5;
	      flex_sf_trigger sf_trigger_msg = 6;
	      flex_ul_sr_info ul_sr_info_msg = 7;
	      flex_enb_config_request enb_config_request_msg = 8;
	      flex_enb_config_reply enb_config_reply_msg = 9;
	      flex_ue_config_request ue_config_request_msg = 10;
	      flex_ue_config_reply ue_config_reply_msg = 11;
	      flex_lc_config_request lc_config_request_msg = 12;
	      flex_lc_config_reply lc_config_reply_msg = 13;
shahab's avatar
shahab committed
28
	      flex_dl_mac_config dl_mac_config_msg = 14;
29
30
31
	      flex_ue_state_change ue_state_change_msg = 15;
	      flex_control_delegation control_delegation_msg = 16;
	      flex_agent_reconfiguration agent_reconfiguration_msg = 17;
shahab's avatar
shahab committed
32
	      flex_rrc_triggering rrc_triggering = 18;
shahab's avatar
shahab committed
33
	      flex_ul_mac_config ul_mac_config_msg = 19;
34
35
36
37
38
39
40
41
42
43
44
45
	}
}

enum flexran_direction {
     //option allow_alias = true;
     NOT_SET = 0;
     INITIATING_MESSAGE = 1;
     SUCCESSFUL_OUTCOME=2;
     UNSUCCESSFUL_OUTCOME=3;	
}
	
enum flexran_err {
46
        //option allow_alias = true;
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
	// message errors
	NO_ERR = 0;	
	MSG_DEQUEUING = -1;
	MSG_ENQUEUING = -2;
	MSG_DECODING = -3;
	MSG_ENCODING = -4;
	MSG_BUILD = -5;
	MSG_NOT_SUPPORTED = -6; 
	MSG_NOT_HANDLED = -7;
	MSG_NOT_VALIDATED = -8;
	MSG_OUT_DATED = -9;

	
	// other erros
	UNEXPECTED = -100;	
}	

//
// Maintenance and discovery messages
//

message flex_hello {
	optional flex_header header = 1;
}

message flex_echo_request {
	optional flex_header header = 1;
	extensions 100 to 199;
}


message flex_echo_reply {
	optional flex_header header = 1;
	extensions 100 to 199;
}


//
// Statistics request and reply message
//

message flex_stats_request {
	optional flex_header header = 1;
	optional flex_stats_type type = 2;
	oneof body {
	      flex_complete_stats_request complete_stats_request = 3;
	      flex_cell_stats_request cell_stats_request = 4;
	      flex_ue_stats_request ue_stats_request = 5;
	}
}

message flex_stats_reply {
	optional flex_header header = 1;
	repeated flex_ue_stats_report ue_report = 2;
	repeated flex_cell_stats_report cell_report = 3;
}

//
// Time indication messages
//

message flex_sf_trigger {
	optional flex_header header = 1;
	optional uint32 sfn_sf = 2;
	repeated flex_dl_info dl_info = 3;
	repeated flex_ul_info ul_info = 4;	
}

//
// Asynchronous messages
//

message flex_ul_sr_info {
	optional flex_header header = 1;
	optional uint32 sfn_sf = 2;
	repeated uint32 rnti = 3;
}

//
// eNB configuration messages
//
message flex_enb_config_request {
	optional flex_header header = 1;
}

message flex_enb_config_reply {
	optional flex_header header = 1;
	optional uint32 eNB_id = 2;		// Unique id to distinguish the eNB
	repeated flex_cell_config cell_config = 3;
136
        optional uint32 device_spec = 4;
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
}

message flex_ue_config_request {
	optional flex_header header = 1;
}

message flex_ue_config_reply {
	optional flex_header header = 1;
	repeated flex_ue_config ue_config = 2;
}

message flex_lc_config_request {
	optional flex_header header = 1;
}

message flex_lc_config_reply {
	optional flex_header header = 1;
	repeated flex_lc_ue_config lc_ue_config = 2;
}

//
// Controller command messages
//

message flex_dl_mac_config {
	optional flex_header header = 1;
	optional uint32 sfn_sf = 2;
	repeated flex_dl_data dl_ue_data = 3;
	repeated flex_dl_rar dl_rar = 4;
	repeated flex_dl_broadcast dl_broadcast = 5;
	repeated flex_pdcch_ofdm_sym_count ofdm_sym = 6; // OFDM symbol count for each CC
}

shahab's avatar
shahab committed
170
171
172
173
174
175
176
177
178
179
180
181
message flex_ul_mac_config {
	optional flex_header header = 1;
 	optional uint32 sfn_sf = 2;
	repeated flex_ul_data ul_ue_data = 3;
}

message flex_rrc_triggering {

	optional flex_header header = 1;
	optional string rrc_trigger = 2;	
}

182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
//
// UE state change message
//

message flex_ue_state_change {
	optional flex_header header = 1;
	optional uint32 type = 2;		// One of the FLUESC_* values
	optional flex_ue_config config = 3;	// Body of the message (based on type)
}

//
// Control delegation message
//

message flex_control_delegation {
	optional flex_header header = 1;
	optional uint32 delegation_type = 2;	// Bitmap of FLCDT_* flags
	optional bytes payload = 3;	  	// Byte array of shared lib containing the delegated functions
	optional string name = 4;		// The delegated functions names ordered based on bitmap flags
}

//
// Agent reconfiguration message
//

message flex_agent_reconfiguration {
	optional flex_header header = 1;
shahab's avatar
shahab committed
209
	optional string policy = 2;		// The policy changes using YAML syntax in string format    
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
}

// Extensions of the echo request and reply
// messages for carrying a latency value in ms
message flex_echo_request_latency {
	extend flex_echo_request {
	       optional uint32 latency = 100;
	}
}

message flex_echo_reply_latency {
	extend flex_echo_reply {
	       optional uint32 latency = 100;
	}
}