package protocol; import "header.proto"; import "flexsplit-messages.proto"; message f1u_message{ optional flexsplit_direction msg_dir = 100; oneof msg{ dl_user_data dl_data = 1; dl_data_delivery_status dl_status = 2; } } message flexsplit_message { optional flexsplit_direction msg_dir = 100; oneof msg { fsp_hello hello_msg = 1; fsp_echo_request echo_request_msg = 2; fsp_echo_reply echo_reply_msg = 3; fspRlcDataReq data_req_msg = 4; fspRlcDataReqAck data_req_ack = 5; fspPdcpDataInd data_ind_msg = 6; fspPdcpDataIndAck data_ind_ack = 7; } } enum flexsplit_direction { //option allow_alias = true; NOT_SET = 0; INITIATING_MESSAGE = 1; SUCCESSFUL_OUTCOME=2; UNSUCCESSFUL_OUTCOME=3; } enum flexsplit_err { // 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 fsp_hello { optional fsp_header header = 1; } message fsp_echo_request { optional fsp_header header = 1; // extensions 100 to 199; } message fsp_echo_reply { optional fsp_header header = 1; // extensions 100 to 199; } message fspRlcDataReq { optional fsp_header header = 1; optional uint32 eNB_id = 2; optional fspRlcData pdcp_data = 3; } message fspRlcDataReqAck { optional fsp_header header = 1; optional uint32 result = 2; } message fspPdcpDataInd { optional fsp_header header = 1; optional uint32 eNB_id = 2; optional fspRlcData rlc_data = 3; } message fspPdcpDataIndAck { optional fsp_header header = 1; optional uint32 result = 2; } message dl_data_header { required uint32 fields = 1; } message dl_user_data { required dl_data_header header = 1; required bytes pdu = 2; required uint32 frame = 3; required uint32 subframe = 4; required uint32 rnti = 5; } message dl_data_delivery_status { required dl_data_header header = 1; required bytes pdu = 2; required uint32 frame = 3; required uint32 subframe = 4; required uint32 rnti = 5; }