progran.proto 4.73 KB
Newer Older
1
//'syntax = "proto2";' 
2 3 4
package protocol;

import "stats_messages.proto";
5
import "header.proto";
6
import "time_common.proto";
7
import "config_messages.proto";
8
import "controller_commands.proto";
9
import "control_delegation.proto";
10 11

message progran_message {
12
       optional progran_direction msg_dir = 100;
13
	oneof msg {
14 15 16 17 18
              prp_hello hello_msg = 1;
              prp_echo_request echo_request_msg = 2;
	      prp_echo_reply echo_reply_msg = 3;
	      prp_stats_request stats_request_msg = 4;
	      prp_stats_reply stats_reply_msg = 5;
19 20
	      prp_sf_trigger sf_trigger_msg = 6;
	      prp_ul_sr_info ul_sr_info_msg = 7;
21 22 23 24 25 26
	      prp_enb_config_request enb_config_request_msg = 8;
	      prp_enb_config_reply enb_config_reply_msg = 9;
	      prp_ue_config_request ue_config_request_msg = 10;
	      prp_ue_config_reply ue_config_reply_msg = 11;
	      prp_lc_config_request lc_config_request_msg = 12;
	      prp_lc_config_reply lc_config_reply_msg = 13;
27
	      prp_dl_mac_config dl_mac_config_msg = 14;
28
	      prp_ue_state_change ue_state_change_msg = 15;
29
	      prp_control_delegation control_delegation_msg = 16;
30
	      prp_agent_reconfiguration agent_reconfiguration_msg = 17;
31 32 33
	}
}

34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
enum progran_direction {
     //option allow_alias = true;
     NOT_SET = 0;
     INITIATING_MESSAGE = 1;
     SUCCESSFUL_OUTCOME=2;
     UNSUCCESSFUL_OUTCOME=3;	
}
	
enum progran_err {
        option allow_alias = true;
	// 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;

56
	
57 58 59
	// other erros
	UNEXPECTED = -100;	
}	
60 61 62 63 64 65

//
// Maintenance and discovery messages
//

message prp_hello {
66
	optional prp_header header = 1;
67 68 69
}

message prp_echo_request {
70
	optional prp_header header = 1;
71 72 73 74 75
	extensions 100 to 199;
}


message prp_echo_reply {
76
	optional prp_header header = 1;
77 78 79 80 81 82 83 84 85
	extensions 100 to 199;
}


//
// Statistics request and reply message
//

message prp_stats_request {
86 87
	optional prp_header header = 1;
	optional prp_stats_type type = 2;
88
	oneof body {
89 90 91
	      prp_complete_stats_request complete_stats_request = 3;
	      prp_cell_stats_request cell_stats_request = 4;
	      prp_ue_stats_request ue_stats_request = 5;
92 93 94 95
	}
}

message prp_stats_reply {
96
	optional prp_header header = 1;
97 98
	repeated prp_ue_stats_report ue_report = 2;
	repeated prp_cell_stats_report cell_report = 3;
99 100
}

101 102 103 104
//
// Time indication messages
//

105
message prp_sf_trigger {
106 107 108
	optional prp_header header = 1;
	optional uint32 sfn_sf = 2;
	repeated prp_dl_info dl_info = 3;
109
	repeated prp_ul_info ul_info = 4;	
110 111
}

112 113 114 115 116 117 118 119 120
//
// Asynchronous messages
//

message prp_ul_sr_info {
	optional prp_header header = 1;
	optional uint32 sfn_sf = 2;
	repeated uint32 rnti = 3;
}
121

122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152
//
// eNB configuration messages
//
message prp_enb_config_request {
	optional prp_header header = 1;
}

message prp_enb_config_reply {
	optional prp_header header = 1;
	optional uint32 eNB_id = 2;		// Unique id to distinguish the eNB
	repeated prp_cell_config cell_config = 3;
}

message prp_ue_config_request {
	optional prp_header header = 1;
}

message prp_ue_config_reply {
	optional prp_header header = 1;
	repeated prp_ue_config ue_config = 2;
}

message prp_lc_config_request {
	optional prp_header header = 1;
}

message prp_lc_config_reply {
	optional prp_header header = 1;
	repeated prp_lc_ue_config lc_ue_config = 2;
}

153 154 155 156 157 158 159 160 161 162 163 164 165
//
// Controller command messages
//

message prp_dl_mac_config {
	optional prp_header header = 1;
	optional uint32 sfn_sf = 2;
	repeated prp_dl_data dl_ue_data = 3;
	repeated prp_dl_rar dl_rar = 4;
	repeated prp_dl_broadcast dl_broadcast = 5;
	repeated prp_pdcch_ofdm_sym_count ofdm_sym = 6; // OFDM symbol count for each CC
}

166 167 168 169 170 171 172 173 174 175
//
// UE state change message
//

message prp_ue_state_change {
	optional prp_header header = 1;
	optional uint32 type = 2;		// One of the PRUESC_* values
	optional prp_ue_config config = 3;	// Body of the message (based on type)
}

176 177 178 179 180 181 182 183
//
// Control delegation message
//

message prp_control_delegation {
	optional prp_header header = 1;
	optional uint32 delegation_type = 2;	// Bitmap of PRCDT_* flags
	optional bytes payload = 3;	  	// Byte array of shared lib containing the delegated functions
184 185 186 187 188 189 190 191 192 193
	optional string name = 4;		// The delegated functions names ordered based on bitmap flags
}

//
// Agent reconfiguration message
//

message prp_agent_reconfiguration {
	optional prp_header header = 1;
	optional string policy = 2;		// The policy changes using YAML syntax in string format
194 195
}

196 197 198 199 200 201 202 203 204 205 206 207 208 209 210
// Extensions of the echo request and reply
// messages for carrying a latency value in ms
message prp_echo_request_latency {
	extend prp_echo_request {
	       optional uint32 latency = 100;
	}
}

message prp_echo_reply_latency {
	extend prp_echo_reply {
	       optional uint32 latency = 100;
	}
}