syntax = "proto2";
package protocol;

message flex_header {
	optional uint32 version = 1;
	optional uint32 type = 2;
	optional uint32 xid = 4;
}

enum flex_type {
     // Discovery and maintenance messages
     FLPT_HELLO = 0;
     FLPT_ECHO_REQUEST = 1;
     FLPT_ECHO_REPLY = 2;
     FLPT_DISCONNECT = 20;

     // Statistics and measurement messages
     FLPT_STATS_REQUEST = 3;
     FLPT_STATS_REPLY = 4;
     
     // Time indication messages
     FLPT_SF_TRIGGER = 5;

     // Asynchronous messages
     FLPT_UL_SR_INFO = 6;

     // eNB configuration messages
     FLPT_GET_ENB_CONFIG_REQUEST = 7;
     FLPT_GET_ENB_CONFIG_REPLY = 8;
     FLPT_GET_UE_CONFIG_REQUEST = 9;
     FLPT_GET_UE_CONFIG_REPLY = 10;
     FLPT_GET_LC_CONFIG_REQUEST = 11;
     FLPT_GET_LC_CONFIG_REPLY = 12;

     //Controller command messages
     FLPT_DL_MAC_CONFIG = 13;
     FLPT_HO_COMMAND = 21;

     // UE state change messages
     FLPT_UE_STATE_CHANGE = 14;

     // Control delegation messages
     FLPT_DELEGATE_CONTROL = 15;
     FLPT_RECONFIGURE_AGENT = 16;
     FLPT_RRC_TRIGGERING = 17;
     FLPT_UL_MAC_CONFIG = 18;
     FLPT_DELEGATE_REQUEST = 22;
}

