syntax = "proto2";
package protocol;

import "mac_primitives.proto";

//
// Body of UE DL/UL MAC scheduling configuration info
//

message flex_dl_data {
	optional uint32 rnti = 1;
	optional flex_dl_dci dl_dci = 2;
	repeated uint32 ce_bitmap = 3; // list of 2 MAC CEs, one for each TB
	repeated flex_rlc_pdu rlc_pdu = 4; // list of parameters for the creation of RLC PDUs. One for each lcid
	optional uint32 serv_cell_index = 5;
	optional uint32 act_deact_ce = 6; //Hex content of MAC CE for Activation/Deactivation in CA
}


message flex_ul_data {
	optional uint32 rnti = 1;
  	optional flex_ul_dci ul_dci = 2;
}

//
// Body of the RAR scheduler configuration
//
message flex_dl_rar {
	optional uint32 rnti = 1;
	optional uint32 grant = 2;	// The 20-bit UL grant. TS 36.213, sec 6.2
	optional flex_dl_dci rar_dci = 3;
	optional uint32 carrier_index = 4; // The carrier index for the RAR
}

//
// Body of the paging/broadcast configuration message
//

message flex_dl_broadcast {
	optional uint32 type = 1;	// The FLBT_* values
	optional uint32 index = 2;	// Index of the broadcast message:
		       	       		// 0 - SIB1,
                                    	// 1..31 - Six,
                                     	// 32..63 - PCCH (PCCH index obtained from  flex_paging_info)
	optional flex_dl_dci broad_dci = 3;
	optional uint32 carrier_index = 4; // Index of the carrier for broadcast
}

//
// Body of the OFDM symbol count message
//

message flex_pdcch_ofdm_sym_count {
	optional uint32 carrier_index = 1;
	optional uint32 num_pdcch_ofdm_symbols = 2;
}

//
// Types of commands related enums
//

enum flex_broadcast_type {
     FLBT_BCCH = 0;
     FLBT_PCCH = 1;
}
