flexran.proto 4.79 KB
Newer Older
1
syntax = "proto2";
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
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";

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;
	      flex_dl_mac_config dl_mac_config_msg = 14;
	      flex_ue_state_change ue_state_change_msg = 15;
	      flex_control_delegation control_delegation_msg = 16;
	      flex_agent_reconfiguration agent_reconfiguration_msg = 17;
	}
}

enum flexran_direction {
     //option allow_alias = true;
     NOT_SET = 0;
     INITIATING_MESSAGE = 1;
     SUCCESSFUL_OUTCOME=2;
     UNSUCCESSFUL_OUTCOME=3;	
}
	
enum flexran_err {
43
        //option allow_alias = true;
44 45 46 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 136 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 170 171 172 173 174 175 176 177 178 179 180 181 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 209 210
	// 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;
}

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
}

//
// 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;
	optional string policy = 2;		// The policy changes using YAML syntax in string format
}

// 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;
	}
}