FlexRAN Protocol Specification V2.2.1

Table of Contents

Introduction

Top

This document contains the messages used for the communication protocol between the controller and the eNBs/gNBs. All the messages presented here are defined using the Google Protocol Buffers format so that they can be cross-platform to ease development and experimentation. The same specification can also be translated to ASN format to comply with 3GPP requirements.

config_common.proto

Top

flex_cqi_config

Channel quality indicator config message

FieldTypeLabelDescription
cqi_action flex_setup_release_action optional

Indicats if CQI changed or released. One of the FLSRA_* enum values

cqi_sched_interval uint32 optional

CQI scheduling interval in SF

ri_sched_interval uint32 optional

RI scheduling interval in SF

flex_dl_slice

Downlink slice configuration

FieldTypeLabelDescription
id uint32 optional

slice identifier

label flex_slice_label optional

label of a slice

percentage uint32 optional

percentage between 0 and 100 of resource blocks allocated to a slice.

isolation bool optional

Frequency isloation of a slice indicating that this slice should be exempted form interslice resource sharing.

priority uint32 optional

Priority of a slice when scheduling. Increasing value means increasing prio

position_low uint32 optional

Slice resource block position low in frequency. Min RB to use (in frequency) in the range [0, N_RBG_MAX].

position_high uint32 optional

Slice resource block position high in frequency. Max RB to use (in frequency) in the range [0, N_RBG_MAX].

maxmcs uint32 optional

maximum MCS to be allowed in this slice

sorting flex_dl_sorting repeated

Slice UE sorting algorithms

accounting flex_dl_accounting_policy optional

Slice resource blocks accoutning

scheduler_name string optional

slice applied scheduling algorithm

flex_drx_config

Discontinous reception (DRX) config message

FieldTypeLabelDescription
on_duration_timer uint32 optional

Timer in terms of number of SF. See TS 36.321

drx_inactivity_timer uint32 optional

Timer in terms of number of SF. See TS 36.321

drx_retransmission_timer uint32 optional

Timer in terms of number of SF. See TS 36.321

long_drx_cycle uint32 optional

Long DRX Cycle in terms of number of SF. See TS 36.321

long_drx_cycle_start_offset uint32 optional

Long DRX cycle offset in terms of number of S. FSee TS 36.321

short_drx_cycle uint32 optional

Short DRX clcyel in terms of number of SF.

drx_short_cycle_timer uint32 optional

Short DRX cycle timer in terms of number of SF. See TS 36.321

flex_lc_config

Logical channel config related structures and enums

FieldTypeLabelDescription
lcid uint32 optional

The logical channel id

lcg uint32 optional

The logical channel group (0..3) the LC is mapped to

direction flex_lc_direction optional

The LC direction. One of the FLLCD_* enum values

qos_bearer_type flex_qos_bearer_type optional

QoS GBR or NGBR bearer type. One of the FLQBT_* enum values

qci uint32 optional

The QCI defined in TS 23.203, coded as defined in TS 36.413. One less than the actual QCI value

e_RAB_max_bitrate_UL uint64 optional

In bps, valid only for GBR traffic

e_RAB_max_bitrate_DL uint64 optional

In bps, valid only for GBR traffic

e_RAB_guaranteed_bitrate_UL uint64 optional

In bps, valid only for GBR traffic

e_RAB_guaranteed_bitrate_DL uint64 optional

In bps, valid only for GBR traffic

flex_scell_config

Secondary cell config message

FieldTypeLabelDescription
carrier_index uint32 optional

Id of the carrier component

scell_index uint32 optional

Index of this Scell (RRC SCellIndex)

use_ccs uint32 optional

Boolean value. Indicates if cross-carrier scheduling is used by this SCell

sched_cell_index uint32 optional

Index of the cell responsible for scheduling this SCell if cross-carrier scheduling is enabled

pdsch_start uint32 optional

Starting OFDM symbol of PDSCH data region for this SCell

flex_si_config

Cell System information (SI) config

FieldTypeLabelDescription
sfn uint32 optional

System frame number

sib1_length uint32 optional

The length of SIB1 in bytes

si_window_length uint32 optional

The scheduling window for all SIs in SF

si_message flex_si_message repeated

List of SI messages to be sent. The index identifies the type of an SI message, i.e. 0 - SIB1, 1..31 - SIx, 32..63 - PCCH

flex_si_message

FieldTypeLabelDescription
periodicity uint32 optional

Periodicity of SI msg in radio frames

length uint32 optional

The length of the SI message in bytes

flex_sps_config

Semi-persistent scheduling (SPS) config message

FieldTypeLabelDescription
semi_persistent_sched_interval_UL uint32 optional

SPS UL scheduling interval in SF

semi_persistent_sched_interval_DL uint32 optional

SPS DL scheduling interval in SF

num_of_conf_sps_proc uint32 optional

Number of SPS HARQ processes. See TS 36.321

n1_PUCCH_AN_persistent_element uint32 repeated

See TS36.213. Ignored when config is used, as part of FLPT_SET_UE_CONFIG

implicit_release_after uint32 optional

number of empty transmissions before release of SPS

flex_sr_config

Scheduling request config message

FieldTypeLabelDescription
sr_action flex_setup_release_action optional

Indicates if SR config should be changed or released. One of the FLSRA_* enum values

sched_interval uint32 optional

SR scheduling interval in SF

dsr_trans_max uint32 optional

See TS 36.213

flex_ue_capabilities

UE cpability message

FieldTypeLabelDescription
half_duplex uint32 optional

Boolean value. Only half duplex support. FDD operation

intra_SF_hopping uint32 optional

Support for intra-subframe hopping. Boolean value

type2_sb_1 uint32 optional

Support for type 2 hopping with n_sb > 1

ue_category uint32 optional

indicate the UE category

res_alloc_type1 uint32 optional

Boolean value. UE support for resource allocation type 1

flex_ul_slice

Uplink slice configuration

FieldTypeLabelDescription
id uint32 optional

slice identifier

label flex_slice_label optional

label of a slice

percentage uint32 optional

percentage between 0 and 100 of resource blocks allocated to a slice.

isolation bool optional

Frequency isloation of a slice indicating that this slice should be exempted form interslice resource sharing.

priority uint32 optional

Priority of a slice when scheduling. Increasing value means increasing prio

first_rb uint32 optional

RB start to use (in frequency) for this slice within the range [0, N_RB_MAX]/

maxmcs uint32 optional

optional uint32 length_rb = 7; maximum MCS to be allowed in this slice

sorting flex_ul_sorting repeated

Slice UE sorting algorithms

accounting flex_ul_accounting_policy optional

Slice resource blocks accoutning

scheduler_name string optional

slice applied scheduling algorithm

flex_aperiodic_cqi_report_mode

Aperiodic Channel Quality indicator (CQI) report mode

NameNumberDescription
FLACRM_RM12 0

FLACRM_RM20 1

FLACRM_RM22 2

FLACRM_RM30 3

FLACRM_RM31 4

FLACRM_NONE 5

flex_dl_accounting_policy

NameNumberDescription
POL_FAIR 0

POL_GREEDY 1

POL_NUM 2

flex_dl_cyclic_prefix_length

Downlink cyclic prefix length type

NameNumberDescription
FLDCPL_NORMAL 0

FLDCPL_EXTENDED 1

flex_dl_sorting

Slice config related structures and enums

NameNumberDescription
CR_ROUND 0

Highest HARQ first

CR_SRB12 1

Highest SRB1+2 first

CR_HOL 2

Highest HOL first

CR_LC 3

Greatest RLC buffer first

CR_CQI 4

Highest CQI first

CR_LCP 5

Highest LC priority first

flex_duplex_mode

Duplexing mode

NameNumberDescription
FLDM_TDD 0

FLDM_FDD 1

flex_hopping_mode

Frequency hoopping mod e

NameNumberDescription
FLHM_INTER 0

FLHM_INTERINTRA 1

flex_lc_direction

Logical channel direction.

NameNumberDescription
FLLCD_UL 0

FLLCD_DL 1

FLLCD_BOTH 2

flex_meas_gap_config_pattern

Measurement gap config message

NameNumberDescription
FLMGCP_GP1 0

FLMGCP_GP2 1

FLMGCP_OFF 2

flex_phich_duration

PHICH resource duration

NameNumberDescription
FLPD_NORMAL 0

FLPD_EXTENDED 1

flex_phich_resource

PHICH resource indicator

NameNumberDescription
FLPR_ONE_SIXTH 0

FLPR_HALF 1

FLPR_ONE 2

FLPR_TWO 3

flex_qam

QAM Modulation mode

NameNumberDescription
FLEQ_MOD_16QAM 0

FLEQ_MOD_64QAM 1

flex_qos_bearer_type

QoS bearer type: GBR or Non GBR

NameNumberDescription
FLQBT_NON_GBR 0

FLQBT_GBR 1

flex_setup_release_action

NameNumberDescription
FLSRA_SETUP 0

FLSRA_RELEASE 1

flex_slice_label

NameNumberDescription
xMBB 0

URLLC 1

mMTC 2

xMTC 3

Other 4

flex_tdd_ack_nack_feedback_mode

TDD ACK and NACK feedback mode

NameNumberDescription
FLTANFM_BUNDLING 0

FLTANFM_MULTIPLEXING 1

flex_ue_state_change_type

UE current state indicator

NameNumberDescription
FLUESC_UPDATED 0

FLUESC_ACTIVATED 1

FLUESC_DEACTIVATED 2

FLUESC_MOVED 3

flex_ue_transmission_antenna

UE transmission antenna loop type

NameNumberDescription
FLUTA_NONE 0

FLUTA_OPEN_LOOP 1

FLUTA_CLOSED_LOOP 2

flex_ul_accounting_policy

NameNumberDescription
POLU_FAIR 0

POLU_GREEDY 1

POLU_NUM 2

flex_ul_cyclic_prefix_length

Uplink cyclic prefix length type

NameNumberDescription
FLUCPL_NORMAL 0

FLUCPL_EXTENDED 1

flex_ul_sorting

NameNumberDescription
CRU_ROUND 0

Highest HARQ first

CRU_BUF 1

Highest BSR first

CRU_BTS 2

More bytes to schedule first

CRU_MCS 3

Highest MCS first

CRU_LCP 4

Highest LC priority first

CRU_HOL 5

Highest HOL first

config_messages.proto

Top

flex_cell_config

Cell configuration message

FieldTypeLabelDescription
phy_cell_id uint32 optional

The PCI of this cell

cell_id uint32 optional

The PLMN cell id of this cell

pusch_hopping_offset uint32 optional

PUSCH resources in RBs for hopping

hopping_mode flex_hopping_mode optional

Frequency hopping mode. One of the FLHM_* enum values

n_sb uint32 optional

The number of subbands

phich_resource flex_phich_resource optional

The number of REGs used for PHICH. One of the FLPR_* enum values

phich_duration flex_phich_duration optional

PHICH duration type. One of the FLPD_* enum values

init_nr_PDCCH_OFDM_sym uint32 optional

See TS 36.211, section 6.9

si_config flex_si_config optional

The SI configuration

dl_bandwidth uint32 optional

The DL transmission bandwidth in RBs

ul_bandwidth uint32 optional

The UL transmission bandwidth in RBs

ul_cyclic_prefix_length flex_ul_cyclic_prefix_length optional

One of the FLUCPL_* enum values

dl_cyclic_prefix_length flex_dl_cyclic_prefix_length optional

One of the FLDCPL_* enum values

antenna_ports_count uint32 optional

Number of cell specific antenna ports

duplex_mode flex_duplex_mode optional

One of the FLDM_* enum values

subframe_assignment uint32 optional

DL/UL subframe assignment. TDD only

special_subframe_patterns uint32 optional

TDD only. See TS 36.211, table 4.2.1

mbsfn_subframe_config_rfperiod uint32 repeated

The MBSFN radio frame period (Optional)

mbsfn_subframe_config_rfoffset uint32 repeated

The radio frame offset (Optional)

mbsfn_subframe_config_sfalloc uint32 repeated

Bitmap indicating the MBSFN subframes (Optional)

prach_config_index uint32 optional

See TS 36.211, section 5.7.1

prach_freq_offset uint32 optional

See TS 36.211, section 5.7.1

ra_response_window_size uint32 optional

The duration of the RA response window in SF

mac_contention_resolution_timer uint32 optional

Timer for RA

max_HARQ_Msg3Tx uint32 optional

See TS 36.321

n1PUCCH_AN uint32 optional

See TS 36.213, section 10.1

deltaPUCCH_shift uint32 optional

See TS 36.211, section 5.4

nRB_cqi uint32 optional

See TS 36.211, section 5.4

srs_subframe_config uint32 optional

See TS 36.211, table 5.5.3.3-1 and 2

srs_bw_config uint32 optional

See TS 36.211, section 5.5.3.2

srs_mac_up_pts uint32 optional

Boolean value. See TS 36.211, section 5.5.3.2. TDD only

enable_64QAM flex_qam optional

One of the FLEQ_* enum values

carrier_index uint32 optional

Carrier component index

dl_freq uint32 optional

operating downlink frequency

ul_freq uint32 optional

operating uplink frequency

eutra_band uint32 optional

operating band

dl_pdsch_power int32 optional

operating downlink power

ul_pusch_power int32 optional

operating uplink power

slice_config flex_slice_config optional

Slice configuration

flex_lc_ue_config

UE logical channel configuration message

FieldTypeLabelDescription
rnti uint32 optional

UE Radio Network Temporary Identifier

lc_config flex_lc_config repeated

A list of LC configurations for the given UE

flex_slice_config

Slice configuration message

FieldTypeLabelDescription
intraslice_share_active bool optional

whether remaining RBs after first intra-slice allocation will be allocated to UEs of the same slice

interslice_share_active bool optional

whether remaining RBs after slice allocation will be allocated to UEs of another slice. Isolated slices will be ignored.

dl flex_dl_slice repeated

Downlink slice configuration

ul flex_ul_slice repeated

Uplink slice configuration

flex_ue_config

UE configuration message

FieldTypeLabelDescription
rnti uint32 optional

UE Radio Network Temporary Identifier

drx_config flex_drx_config optional

The DRX configuration (Optional)

time_alignment_timer uint32 optional

Timer in SF. Control the synchronization. Status of the UE, not the actual advance procedure. See TS 36.321

meas_gap_config_pattern flex_meas_gap_config_pattern optional

Measurement gap configuration. One of the FLMGCP_* enum values. See TS 36.133

meas_gap_config_sf_offset uint32 optional

Measurement gap offset if applicable

sps_config flex_sps_config optional

The SPS configuration (Optional)

sr_config flex_sr_config optional

The SR configuration (Optional)

cqi_config flex_cqi_config optional

The CQI configuration (Optional)

transmission_mode uint32 optional

The UE transmission mode

ue_aggregated_max_bitrate_UL uint64 optional

Aggregated bit-rate of non-gbr bearer per UE. See TS 36.413

ue_aggregated_max_bitrate_DL uint64 optional

Aggregated bit-rate of non-gbr bearer per UE. See TS 36.413

capabilities flex_ue_capabilities optional

UE capability information

ue_transmission_antenna flex_ue_transmission_antenna optional

One of the FLUTA_* enum values

tti_bundling uint32 optional

Boolean value. See TS 36.321

max_HARQ_tx uint32 optional

The max HARQ retransmission for UL

beta_offset_ACK_index uint32 optional

See TS 36.213

beta_offset_RI_index uint32 optional

See TS 36.213

beta_offset_CQI_index uint32 optional

See TS 36.213

ack_nack_simultaneous_trans uint32 optional

Boolean. See TS 36.213

simultaneous_ack_nack_cqi uint32 optional

Boolean. See TS 36.213

aperiodic_cqi_rep_mode flex_aperiodic_cqi_report_mode optional

CQI report mode. One of the FLACRM_* enum values

tdd_ack_nack_feedback flex_tdd_ack_nack_feedback_mode optional

ACK/NACK feedback mode. One of the FLTANFM_* enum values

ack_nack_repetition_factor uint32 optional

See TS 36.213, section 10.1

extended_bsr_size uint32 optional

Boolean for extended BSR size

ca_support uint32 optional

Boolean. Support for carrier aggregation

cross_carrier_sched_support uint32 optional

Boolean value

pcell_carrier_index uint32 optional

Index of primary cell

scell_config flex_scell_config repeated

Secondary cells configuration

scell_deactivation_timer uint32 optional

Deactivation timer for secondary cell

imsi uint64 optional

UE International mobile subscriber identity

dl_slice_id uint32 optional

Downlink slice identifier

ul_slice_id uint32 optional

Uplink slice identifier

control_delegation.proto

Top

flex_control_delegation_type

Control delegation command or operation

NameNumberDescription
FLCDT_MAC_DL_UE_SCHEDULER 1

DL UE scheduler delegation

controller_commands.proto

Top

flex_dl_broadcast

Body of the paging/broadcast configuration message

FieldTypeLabelDescription
type flex_broadcast_type optional

Broadcast Channel. One of the FLBT_* values

index uint32 optional

Index of the broadcast message: 0 - SIB1, 1..31 - Six, 32..63 - PCCH (PCCH index obtained from flex_paging_info)

broad_dci flex_dl_dci optional

boradcast DCI

carrier_index uint32 optional

Index of the carrier for broadcast

flex_dl_data

Body of UE DL MAC scheduling configuration info

FieldTypeLabelDescription
rnti uint32 optional

UE Radio Network Temporary Identifier

dl_dci flex_dl_dci optional

downlink DCI

ce_bitmap uint32 repeated

list of 2 MAC CEs, one for each TB

rlc_pdu flex_rlc_pdu repeated

list of parameters for the creation of RLC PDUs. One for each lcid

serv_cell_index uint32 optional

Index of the serving cell

act_deact_ce uint32 optional

Hex content of MAC CE for Activation/Deactivation in CA

flex_dl_rar

Body of the RAR scheduler configuration

FieldTypeLabelDescription
rnti uint32 optional

UE Radio Network Temporary Identifier

grant uint32 optional

The 20-bit UL grant. TS 36.213, sec 6.2

rar_dci flex_dl_dci optional

Random access response DCI

carrier_index uint32 optional

The carrier index for the RAR

flex_pdcch_ofdm_sym_count

Body of the OFDM symbol count message

FieldTypeLabelDescription
carrier_index uint32 optional

index of frequency carrier

num_pdcch_ofdm_symbols uint32 optional

number of PDCCH OFDM symbols

flex_ul_data

Body of UE UL MAC scheduling configuration info

FieldTypeLabelDescription
rnti uint32 optional

UE Radio Network Temporary Identifier

ul_dci flex_ul_dci optional

Uplink DCI

flex_broadcast_type

Broadcast Channel

NameNumberDescription
FLBT_BCCH 0

FLBT_PCCH 1

flexran.proto

Top

flex_agent_reconfiguration

Agent reconfiguration message

FieldTypeLabelDescription
header flex_header optional

FlexRAN protocol message header

policy string optional

The policy changes using YAML syntax in string format

flex_control_delegation

Control delegation message

FieldTypeLabelDescription
header flex_header optional

FlexRAN protocol message header

delegation_type flex_control_delegation_type optional

Bitmap flags indicating control delegation type. One of the FLCDT_* values

payload bytes optional

Byte array of shared lib containing the delegated functions

name string optional

The delegated functions names ordered based on bitmap flags

flex_disconnect

FlexRAN protocol disconnect message

FieldTypeLabelDescription
header flex_header optional

FlexRAN protocol message header

flex_dl_mac_config

Downlink MAC config message

FieldTypeLabelDescription
header flex_header optional

FlexRAN protocol message header

sfn_sf uint32 optional

combined frame and subframe number

dl_ue_data flex_dl_data repeated

Body of UE DL MAC scheduling configuration info

dl_rar flex_dl_rar repeated

Body of the RAR scheduler configuration

dl_broadcast flex_dl_broadcast repeated

Body of the paging/broadcast configuration message

ofdm_sym flex_pdcch_ofdm_sym_count repeated

OFDM symbol count for each CC

flex_echo_reply

FlexRAN protocol echo reply message

FieldTypeLabelDescription
header flex_header optional

FlexRAN protocol message header

flex_echo_reply_latency

Extensions of the echo reply carrying a latency value in ms


ExtensionTypeBaseNumberDescription
latency uint32 flex_echo_reply 100

flex_echo_request

FlexRAN protocol echo request message

FieldTypeLabelDescription
header flex_header optional

flex_echo_request_latency

Extensions of the echo request RTT latency value in ms


ExtensionTypeBaseNumberDescription
latency uint32 flex_echo_request 100

flex_enb_config_reply

FieldTypeLabelDescription
header flex_header optional

FlexRAN protocol message header

eNB_id uint64 optional

Unique id to distinguish the eNB

cell_config flex_cell_config repeated

Cell main configuration parameteres

device_spec uint32 optional

flex_enb_config_request

eNB configuration request messages

FieldTypeLabelDescription
header flex_header optional

FlexRAN protocol message header

flex_hello

FlexRAN protocol hello message

FieldTypeLabelDescription
header flex_header optional

flex_lc_config_reply

UE logical channel configuration reply messages

FieldTypeLabelDescription
header flex_header optional

FlexRAN protocol message header

lc_ue_config flex_lc_ue_config repeated

logical channel configuration information

flex_lc_config_request

FieldTypeLabelDescription
header flex_header optional

FlexRAN protocol message header

flex_rrc_triggering

RRC measurement report triggering message

FieldTypeLabelDescription
header flex_header optional

FlexRAN protocol message header

rrc_trigger string optional

RRC measurement report triggering message

flex_sf_trigger

subframe indication messages

FieldTypeLabelDescription
header flex_header optional

FlexRAN protocol message header

sfn_sf uint32 optional

System frame and subframe number

dl_info flex_dl_info repeated

Downlink transmission info

ul_info flex_ul_info repeated

Uplink transmission info

flex_stats_reply

Statistics reply message

FieldTypeLabelDescription
header flex_header optional

FlexRAN protocol message header

ue_report flex_ue_stats_report repeated

UE stats report/reply

cell_report flex_cell_stats_report repeated

Cell stats report/reply

flex_stats_request

Statistics request message for both cell and UE

FieldTypeLabelDescription
header flex_header optional

FlexRAN protocol message header

type flex_stats_type optional

type of stats to request

complete_stats_request flex_complete_stats_request optional

Request eNB/gNB to send a complete stats spanning the entire protocol stack

cell_stats_request flex_cell_stats_request optional

Request eNB/gNB to send cell stats spanning the entire protocol stack

ue_stats_request flex_ue_stats_request optional

Request eNB/gNB to send UE stats spanning the entire protocol stack

flex_ue_config_reply

UE configuration reply messages

FieldTypeLabelDescription
header flex_header optional

FlexRAN protocol message header

ue_config flex_ue_config repeated

UE configuration information

flex_ue_config_request

UE configuration request messages

FieldTypeLabelDescription
header flex_header optional

FlexRAN protocol message header

flex_ue_state_change

UE state change message

FieldTypeLabelDescription
header flex_header optional

FlexRAN protocol message header

type flex_ue_state_change_type optional

Bitmap flag indicating current UE state. One of the FLUESC_* values

config flex_ue_config optional

Body of the message (based on type)

flex_ul_mac_config

Uplink MAC config message

FieldTypeLabelDescription
header flex_header optional

FlexRAN protocol message header

sfn_sf uint32 optional

combined frame and subframe number

ul_ue_data flex_ul_data repeated

Body of UE UL scheduling info including DCI (Downlink Control Info)

flex_ul_sr_info

UE uplink Scheduling request messages (Asynchronous)

FieldTypeLabelDescription
header flex_header optional

FlexRAN protocol message header

sfn_sf uint32 optional

System frame and subframe number

rnti uint32 repeated

UE RNTI

flexran_message

FlexRAN Control protocol Specification describes the communication protocol between the controller and the eNBs/gNBs.

All the messages presented here will also be defined in the Google Protocol Buffers format so that they can be cross-platform to ease development and experimentation.

FieldTypeLabelDescription
msg_dir flexran_direction optional

FlexRAN message direction

hello_msg flex_hello optional

FlexRAN protocol hello message

echo_request_msg flex_echo_request optional

FlexRAN protocol echo request message

echo_reply_msg flex_echo_reply optional

FlexRAN Protocol echo reply message

stats_request_msg flex_stats_request optional

eNB/gNB stats request message

stats_reply_msg flex_stats_reply optional

eNB/gNB stats reply message

sf_trigger_msg flex_sf_trigger optional

eNB/gNB subframe trigger message, sent from RAN agent/runtime to controller

ul_sr_info_msg flex_ul_sr_info optional

eNB/gNB uplink scheduling request info messahe

enb_config_request_msg flex_enb_config_request optional

eNB/gNB config request message

enb_config_reply_msg flex_enb_config_reply optional

eNB/gNB config reply message

ue_config_request_msg flex_ue_config_request optional

UE config request message

ue_config_reply_msg flex_ue_config_reply optional

UE config reply message

lc_config_request_msg flex_lc_config_request optional

UE logical channel config request message

lc_config_reply_msg flex_lc_config_reply optional

UE logical channel config reply message

dl_mac_config_msg flex_dl_mac_config optional

UE MAC config message

ue_state_change_msg flex_ue_state_change optional

UE state change message

control_delegation_msg flex_control_delegation optional

FlexRAN control delegation message

agent_reconfiguration_msg flex_agent_reconfiguration optional

Flexran agent/runtime reconfiguration message

rrc_triggering flex_rrc_triggering optional

eNb/gNB RRC measurement triggering messages

ul_mac_config_msg flex_ul_mac_config optional

UE uplink MAc config message

disconnect_msg flex_disconnect optional

FlexRAN protocol disconnect message

flexran_direction

FlexRAN protocol message direction

NameNumberDescription
NOT_SET 0

option allow_alias = true;

INITIATING_MESSAGE 1

Indicates the first message from the sender

SUCCESSFUL_OUTCOME 2

Indicates a successful reception of the message by the receiver

UNSUCCESSFUL_OUTCOME 3

Indicates an unsuccessful reception of the message by the receiver

flexran_err

FlexRAN message error types

NameNumberDescription
NO_ERR 0

option allow_alias = true;

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

UNEXPECTED -100

other erros

header.proto

Top

flex_header

FlexRAN protocol message header

FieldTypeLabelDescription
version uint32 optional

The protocol version used

type uint32 optional

The type of the PR message

xid uint32 optional

Transaction id to facilitate pairing between req and reply

flex_type

FlexRAN protocol message type

NameNumberDescription
FLPT_HELLO 0

Discovery and maintenance messages

FLPT_ECHO_REQUEST 1

Discovery and maintenance messages

FLPT_ECHO_REPLY 2

Discovery and maintenance messages

FLPT_DISCONNECT 20

Discovery and maintenance messages

FLPT_STATS_REQUEST 3

Statistics and measurement messages

FLPT_STATS_REPLY 4

Statistics and measurement messages

FLPT_SF_TRIGGER 5

Time indication messages

FLPT_UL_SR_INFO 6

Asynchronous messages

FLPT_GET_ENB_CONFIG_REQUEST 7

eNB configuration messages

FLPT_GET_ENB_CONFIG_REPLY 8

eNB configuration messages

FLPT_GET_UE_CONFIG_REQUEST 9

eNB configuration messages

FLPT_GET_UE_CONFIG_REPLY 10

eNB configuration messages

FLPT_GET_LC_CONFIG_REQUEST 11

eNB configuration messages

FLPT_GET_LC_CONFIG_REPLY 12

eNB configuration messages

FLPT_DL_MAC_CONFIG 13

Controller command messages

FLPT_UE_STATE_CHANGE 14

UE state change messages

FLPT_DELEGATE_CONTROL 15

Control delegation messages

FLPT_RECONFIGURE_AGENT 16

Agent/runtime reconfiguration message

FLPT_RRC_TRIGGERING 17

RRC measurement report reconfiguration

FLPT_UL_MAC_CONFIG 18

MAC uplink configuration

mac_primitives.proto

Top

flex_dl_dci

Message containing the downlink DCI info

FieldTypeLabelDescription
rnti uint32 optional

UE Radio Network Temporary Identifier

res_alloc uint32 optional

Type of resource allocation

rb_bitmap uint32 optional

Bitmap for RB allocation

rb_shift uint32 optional

See TS 36.214, section 7.1.6.2

tbs_size uint32 repeated

The size of each TBS

mcs uint32 repeated

The MCS of each TB

ndi uint32 repeated

New data indicator of each TB

rv uint32 repeated

Redundancy version of each TB

cce_index uint32 optional

Control Channel Element (CCE) index used to send the DCI

aggr_level uint32 optional

aggregation level of CCE

precoding_info uint32 optional

2 antenna ports:0..6,

format flex_dci_format optional

4 antenna ports:0..50 DCI format. A FLDCIF_* value

tpc uint32 optional

TS 36.213, sec 5.1.1.1

harq_process uint32 optional

HARQ process ID

dai uint32 optional

TDD only

vrb_format flex_vrb_format optional

VRB formar. One of the FLVRBF_* values

tb_swap uint32 optional

Boolean. TB to codeword swap flag

sps_release uint32 optional

Flag value

pdcch_order uint32 optional

Physical Downlink Control Channel order

preamble_index uint32 optional

Only valid if pdcch_order = 1

prach_mask_index uint32 optional

Only valid if pdcch_order = 1

n_gap flex_ngap_val optional

One of the FLNGV_* values

tbs_idx uint32 optional

The TBS index for Format 1A

dl_power_offset uint32 optional

For format 1D

pdcch_power_offset uint32 optional

DL PDCCH power boosting in dB

cif_present uint32 optional

Boolean. Indication of CIF field

cif uint32 optional

CIF for cross-carrier scheduling

flex_rlc_pdu

Messages related to the creation of RLC PDUs

FieldTypeLabelDescription
rlc_pdu_tb flex_rlc_pdu_tb repeated

list of parameters for the creation of RLC PDUs. One for each TB

flex_rlc_pdu_tb

Messages related to the size of RLC PDUs

FieldTypeLabelDescription
logical_channel_id uint32 optional

logical channel identifier

size uint32 optional

Maximum RLC PDU to be created in bytes

flex_ul_dci

Message containing the uplink DCI info

FieldTypeLabelDescription
rnti uint32 optional

UE Radio Network Temporary Identifier

rb_start uint32 optional

The start RB allocated to the UE

rb_len uint32 optional

The number of RBs allocated to the UE

mcs uint32 optional

Modulation and coding scheme

cyclic_shift2 uint32 optional

match DCI format 0/4 PDU

freq_hop_flag uint32 optional

0 no hopping, 1 hoppping

freq_hop_map uint32 optional

Frequency hopping bits (0..4)

ndi uint32 optional

New data indicator

rv uint32 optional

Redundancy version

harq_pid uint32 optional

The harq process id

ultx_mode uint32 optional

Uplink transmission mode. Not used. A FLULM_* value

tbs_size uint32 optional

The size of each TBS

n_srs uint32 optional

Overlap indication with srs

res_alloc uint32 optional

Type of resource allocation

size uint32 optional

Size of the ULSCH PDU in bytes for UL Grant.

dai uint32 optional

TDD only

flex_dci_format

MAC Downlink Control Information (DCI ) formats

NameNumberDescription
FLDCIF_1 0

FLDCIF_1A 1

FLDCIF_1B 2

FLDCIF_1C 3

FLDCIF_1D 4

FLDCIF_2 5

FLDCIF_2A 6

FLDCIF_2B 7

FLDCIF_3 8

FLDCIF_3A 9

flex_ngap_val

NameNumberDescription
FLNGV_1 0

FLNGV_2 1

flex_vrb_format

MAC virtual resource block formats

NameNumberDescription
FLVRBF_LOCALIZED 0

FLVRBF_DISTRIBUTED 1

stats_common.proto

Top

flex_cell_global_eutra_id

RRC Cell Global Identity message

FieldTypeLabelDescription
plmn_id flex_plmn_identity optional

Public land mobile network identifier of neighbor cell.

cell_id uint32 optional

Cell identifier of neighbor cell.

flex_csi_a12

CSI type A12

FieldTypeLabelDescription
wb_cqi uint32 repeated

wideband channel quality indicator

sb_pmi uint32 repeated

subband precoding matrix indicator

flex_csi_a20

CSI type A20

FieldTypeLabelDescription
wb_cqi uint32 optional

wideband channel quality indicator

sb_cqi uint32 optional

subband channel quality indicator

sb_list uint32 repeated

subband list

flex_csi_a22

CSI type A22

FieldTypeLabelDescription
wb_cqi uint32 repeated

wideband channel quality indicator

sb_cqi uint32 repeated

subband channel quality indicator

wb_pmi uint32 optional

wideband precoding matrix indicator

sb_pmi uint32 optional

wideband precoding matrix indicator

sb_list uint32 repeated

subband list

flex_csi_a30

CSI type A30

FieldTypeLabelDescription
wb_cqi uint32 optional

wideband channel quality indicator

sb_cqi uint32 repeated

subband channel quality indicator

flex_csi_a31

CSI type A31

FieldTypeLabelDescription
wb_cqi uint32 repeated

wideband channel quality indicator

sb_cqi flex_msb_cqi repeated

subband channel quality indicator

wb_pmi uint32 optional

wideband precoding matrix indicator

flex_csi_p10

CSI type P10

FieldTypeLabelDescription
wb_cqi uint32 optional

wideband channel quality indicator (CQI)

flex_csi_p11

CSI type P11

FieldTypeLabelDescription
wb_cqi uint32 repeated

wideband channel quality indicator

wb_pmi uint32 optional

wideband precoding matrix indicator

flex_csi_p20

CSI type P20

FieldTypeLabelDescription
wb_cqi uint32 optional

wideband channel quality indicator

sb_cqi uint32 optional

subband channel quality indicator

bandwidth_part_index uint32 optional

Bandwidth part index

sb_index uint32 optional

subband index

flex_csi_p21

CSI type P21

FieldTypeLabelDescription
wb_cqi uint32 repeated

wideband channel quality indicator

wb_pmi uint32 optional

wideband precoding matrix indicator

sb_cqi uint32 repeated

subband channel quality indicator

badwidth_part_index uint32 optional

Bandwidth part index

sb_index uint32 optional

subband index

flex_dl_cqi_report

The full DL CQI report for all CC of a UE

FieldTypeLabelDescription
sfn_sn uint32 optional

combined frame and subframe number

csi_report flex_dl_csi repeated

Channel Status Information report

flex_dl_csi

The CSI report of the UE for a specific servCellIndex

FieldTypeLabelDescription
serv_cell_index uint32 optional

serving cell index

ri uint32 optional

rank indicator

type flex_csi_type optional

Channel Status Information

p10csi flex_csi_p10 optional

p11csi flex_csi_p11 optional

p20csi flex_csi_p20 optional

p21csi flex_csi_p21 optional

a12csi flex_csi_a12 optional

a22csi flex_csi_a22 optional

a20csi flex_csi_a20 optional

a30csi flex_csi_a30 optional

a31csi flex_csi_a31 optional

flex_eutra_cgi_measurements

RRC EUTRA Cell Global Identity (CGI) measurements message

FieldTypeLabelDescription
cgi flex_cell_global_eutra_id optional

EUTRA Cell Global Identity (CGI).

tracking_area_code uint32 optional

Tracking area code of the neighbor cell.

plmn_id flex_plmn_identity repeated

Public land mobile network identifiers of neighbor cell.

flex_eutra_measurements

RRC EURTA measurements message

FieldTypeLabelDescription
phys_cell_id int32 optional

Physical Cell identifier.

cgi_meas flex_eutra_cgi_measurements optional

EUTRA Cell Global Identity (CGI) measurement.

meas_result flex_eutra_ref_signal_meas optional

EUTRA nearby cell reference signal measurement.

flex_eutra_ref_signal_meas

EUTR reference signal measurements

FieldTypeLabelDescription
rsrp int32 optional

Neighboring Cell RSRP

rsrq int32 optional

Neighboring Cell RSRQ

flex_mac_sdus_dl

MAC SDU information

FieldTypeLabelDescription
sdu_length uint32 optional

SDU length

lcid uint32 optional

logical channel identifier

flex_mac_stats

MAC scheduling stats

FieldTypeLabelDescription
tbs_dl uint32 optional

current downlink transport block size

tbs_ul uint32 optional

current uplink transport block size

prb_retx_dl uint32 optional

current physical resource block used for retransmission in downlink

prb_retx_ul uint32 optional

current physical resource block used for retransmission in uplink

prb_dl uint32 optional

current physical resource block used for new transmission in downlink

prb_ul uint32 optional

current physical resource block used for new transmission in uplink

mcs1_dl uint32 optional

current downlink MCS before rate mactching

mcs2_dl uint32 optional

current downlink MCS after rate mactching

mcs1_ul uint32 optional

current uplink MCS before rate mactching

mcs2_ul uint32 optional

current uplink MCS after rate mactching

total_bytes_sdus_ul uint32 optional

total bytes of uplink SDU size

total_bytes_sdus_dl uint32 optional

total bytes of downlink SDU size

total_prb_retx_dl uint32 optional

total bytes of downlink SDU size for retransmission

total_prb_retx_ul uint32 optional

total bytes of uplink SDU size for retransmission

total_prb_dl uint32 optional

total physical resource block used in downlink

total_prb_ul uint32 optional

total physical resource block used in uplink

total_pdu_dl uint32 optional

total transmitted PDUs in downlink

total_pdu_ul uint32 optional

total transmitted PDUs in uplink

total_tbs_dl uint32 optional

total transport block size in downlink

total_tbs_ul uint32 optional

total transport block size in uplink

mac_sdus_dl flex_mac_sdus_dl repeated

MAC SDU information

harq_round uint32 optional

HARQ round

flex_msb_cqi

The CQI for the M-preffered subband

FieldTypeLabelDescription
sb_cqi uint32 repeated

subband channel quality indicator

flex_neigh_cells_measurements

RRC neighboring cell measurements message

FieldTypeLabelDescription
eutra_meas flex_eutra_measurements repeated

Neighboring EUTRA cells measurements.

flex_noise_interference_report

UL noise and interference report for a UE

FieldTypeLabelDescription
sfn_sf uint32 optional

combined frame and subframe number

rip uint32 optional

Received Interference Power

tnp uint32 optional

Thermal Noise Power

p0_nominal_pucch int32 optional

nominal power in PUCCH

flex_paging_buffer_report

Report for the paging buffer status

FieldTypeLabelDescription
paging_info flex_paging_info repeated

paging information

flex_paging_info

Paging message info

FieldTypeLabelDescription
paging_index uint32 optional

paging index

paging_message_size uint32 optional

paging message size

paging_subframe uint32 optional

subframe number during which the paging message has been sent

carrier_index uint32 optional

frequency carrier index

flex_pdcp_stats

PDCP Statistics

FieldTypeLabelDescription
pkt_tx uint32 optional

number of the transmitted packets

pkt_tx_bytes uint32 optional

total bytes of the transmitted packets

pkt_tx_sn uint32 optional

sequence number of the last transmit packet

pkt_tx_w uint32 optional

number of transmitted packets within a window

pkt_tx_bytes_w uint32 optional

total bytes of transmitted packets within a window

pkt_tx_aiat uint32 optional

aggregtaed inter-arrival time of the transmitted packets

pkt_tx_aiat_w uint32 optional

aggregtaed inter-arrival time of the transmitted packets within a window

pkt_rx uint32 optional

number of the received packets

pkt_rx_bytes uint32 optional

total bytes of the received packets

pkt_rx_sn uint32 optional

sequence number of the last received packet

pkt_rx_w uint32 optional

number of the received packets within a window

pkt_rx_bytes_w uint32 optional

total bytes of the received packets within a window

pkt_rx_aiat uint32 optional

aggregtaed inter-arrival time of the received packets

pkt_rx_aiat_w uint32 optional

aggregtaed inter-arrival time of the received packets within a window

pkt_rx_oo uint32 optional

number of the out-of-ordered received packets

sfn uint64 optional

frame number

flex_plmn_identity

Public land mobile network identifier (PLMN)

FieldTypeLabelDescription
mnc uint32 repeated

Mobile Network Code (MNC).

mcc uint32 repeated

Mobile Country Code (MCC).

tac uint32 repeated

tracking area code

flex_pucch_dbm

Physicall uplink control channel information

FieldTypeLabelDescription
p0_pucch_dbm int32 optional

power in dbm in PUCCH

serv_cell_index uint32 optional

serving cell index

p0_pucch_updated uint32 optional

updated power in dbm in PUCCH

flex_rlc_bsr

RLC buffer status for a specific logical channel of a UE

FieldTypeLabelDescription
lc_id uint32 optional

logical channel identifier both SRBs and DRBs

tx_queue_size uint32 optional

transmission queue size of RLC

tx_queue_hol_delay uint32 optional

transmission queue head-of-line delay (waiting time)

retransmission_queue_size uint32 optional

retransmission queue size

retransmission_queue_hol_delay uint32 optional

retransmission queue head-of-line delay (waiting time)

status_pdu_size uint32 optional

size of of the (remaining) PDU

flex_rrc_measurements

RRC Measurements Primitives

FieldTypeLabelDescription
measid int32 optional

Measurement identifier.

pcell_rsrp int32 optional

Primary Cell Reference Signal Received Power (RSRP).

pcell_rsrq int32 optional

Primary Cell Reference Signal Received Quality (RSRQ).

neigh_meas flex_neigh_cells_measurements optional

Neighboring cells measurements performed by UE.

flex_ul_cqi

UL CQI report for a specific UE for a given report type

FieldTypeLabelDescription
type flex_ul_cqi_type optional

uplink channel quality information type

sinr uint32 repeated

Signal to interference noice ratio

serv_cell_index uint32 optional

serving cell index

flex_ul_cqi_report

Full UL CQI report for a specific UE

FieldTypeLabelDescription
sfn_sn uint32 optional

combined frame and subframe number

cqi_meas flex_ul_cqi repeated

uplink channel quality indicator

pucch_dbm flex_pucch_dbm repeated

PUCCH power in dbm

flex_ce_type

Flags for MAC Control Elements

NameNumberDescription
FLPCET_TA 1

FLPCET_DRX 2

FLPCET_CR 4

FLPCET_CA 8

flex_csi_type

Types of DL CSI reports

NameNumberDescription
FLCSIT_P10 0

FLCSIT_P11 1

FLCSIT_P20 2

FLCSIT_P21 3

FLCSIT_A12 4

FLCSIT_A22 5

FLCSIT_A20 6

FLCSIT_A30 7

FLCSIT_A31 8

flex_ul_cqi_type

The type of UL CQI

NameNumberDescription
FLUCT_SRS 0

FLUCT_PUSCH 1

FLUCT_PUCCH_1 2

FLUCT_PUCCH_2 3

FLUCT_PRACH 4

stats_messages.proto

Top

flex_cell_stats_report

The full statistics report for a specific cell

FieldTypeLabelDescription
carrier_index uint32 optional

eNB carrier index

flags flex_cell_stats_type optional

cell stats type. One of FLCST_*

noise_inter_report flex_noise_interference_report optional

Cell noise to interference report

flex_cell_stats_request

cell stats request

FieldTypeLabelDescription
cell uint32 repeated

ID of the eNB/gNB

flags flex_cell_stats_type optional

cell stats type. One of FLCST_*

flex_complete_stats_request

Bodies of statistics report requests

FieldTypeLabelDescription
report_frequency flex_stats_report_freq optional

stats report frequency

sf uint32 optional

subframe number

cell_report_flags uint32 optional

flag to request cell report

ue_report_flags uint32 optional

flag to request UE report

flex_ue_stats_report

Statistics report for a specific UE

FieldTypeLabelDescription
rnti uint32 optional

UE Radio Network Temporary Identifier

flags flex_ue_stats_type optional

UE stats type. One of FLUST_*

bsr uint32 repeated

UE buffer status report

phr uint32 optional

UE power headroom

rlc_report flex_rlc_bsr repeated

UE RLC report

pending_mac_ces uint32 optional

UE pendinf MAC control elements

dl_cqi_report flex_dl_cqi_report optional

UE downlink CQI report

pbr flex_paging_buffer_report optional

UE paging buffer report

ul_cqi_report flex_ul_cqi_report optional

UE uplink CQI report

rrc_measurements flex_rrc_measurements optional

UE RRC measurements

pdcp_stats flex_pdcp_stats optional

PDCP stats

mac_stats flex_mac_stats optional

MAC stats

flex_ue_stats_request

UE stats request

FieldTypeLabelDescription
rnti uint32 repeated

UE Radio Network Temporary Identifier

flags flex_ue_stats_type optional

UE stats type. One of FLUST_*

flex_cell_stats_type

Flags for cell statistics

NameNumberDescription
FLCST_NOISE_INTERFERENCE 1

flex_stats_report_freq

Report frequency for the requested statistics

NameNumberDescription
FLSRF_ONCE 0

FLSRF_PERIODICAL 1

FLSRF_CONTINUOUS 2

FLSRF_OFF 3

flex_stats_type

Types of statistics requested by the controller

NameNumberDescription
FLST_COMPLETE_STATS 0

FLST_CELL_STATS 1

FLST_UE_STATS 2

flex_ue_stats_type

Flags for UE-related statistics

NameNumberDescription
FLUST_BSR 1

FLUST_PHR 2

FLUST_RLC_BS 4

FLUST_MAC_CE_BS 8

FLUST_DL_CQI 16

FLUST_PBS 32

FLUST_UL_CQI 64

FLUST_MAC_STATS 128

FLUST_PDCP_STATS 1024

FLUST_RRC_MEASUREMENTS 65536

To be extended with more types of stats

time_common.proto

Top

flex_dl_info

Downlink transmission info

FieldTypeLabelDescription
rnti uint32 optional

UE Radio Network Temporary Identifier

harq_process_id uint32 optional

process identifier of HARQ

harq_status uint32 repeated

HARQ status

serv_cell_index uint32 optional

serving cell index

flex_ul_info

Uplink transmission info

FieldTypeLabelDescription
rnti uint32 optional

UE Radio Network Temporary Identifier

ul_reception uint32 repeated

uplink reeption info

reception_status uint32 optional

uplink reception status

tpc uint32 optional

transmit power control info

serv_cell_index uint32 optional

serving cell index

rssi uint32 optional

received signal strength indicator

flex_harq_status

HARQ status message

NameNumberDescription
FLHS_ACK 0

FLHS_NACK 1

FLHS_DTX 2

flex_reception_status

Packet reception status

NameNumberDescription
FLRS_OK 0

FLRS_NOT_OK 1

FLRS_NOT_VALID 2

Scalar Value Types

.proto TypeNotesC++JavaPythonGoC#PHPRuby
double double double float float64 double float Float
float float float float float32 float float Float
int32 Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead. int32 int int int32 int integer Bignum or Fixnum (as required)
int64 Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead. int64 long int/long int64 long integer/string Bignum
uint32 Uses variable-length encoding. uint32 int int/long uint32 uint integer Bignum or Fixnum (as required)
uint64 Uses variable-length encoding. uint64 long int/long uint64 ulong integer/string Bignum or Fixnum (as required)
sint32 Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s. int32 int int int32 int integer Bignum or Fixnum (as required)
sint64 Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s. int64 long int/long int64 long integer/string Bignum
fixed32 Always four bytes. More efficient than uint32 if values are often greater than 2^28. uint32 int int uint32 uint integer Bignum or Fixnum (as required)
fixed64 Always eight bytes. More efficient than uint64 if values are often greater than 2^56. uint64 long int/long uint64 ulong integer/string Bignum
sfixed32 Always four bytes. int32 int int int32 int integer Bignum or Fixnum (as required)
sfixed64 Always eight bytes. int64 long int/long int64 long integer/string Bignum
bool bool boolean boolean bool bool boolean TrueClass/FalseClass
string A string must always contain UTF-8 encoded or 7-bit ASCII text. string String str/unicode string string string String (UTF-8)
bytes May contain any arbitrary sequence of bytes. string ByteString str []byte ByteString string String (ASCII-8BIT)