Source code for wishful_upis.lte.radio

__author__ = "Francesco Giannone, Domenico Garlisi"
__copyright__ = "Copyright (c) 2017, Sant'Anna, CNIT"
__version__ = "0.1.0"
__email__ = "{francesco.giannone@santannapisa.it, domenico.garlisi@cnit.it}"

'''
The protocol-specific definition of the WiSHFUL network control interface, UPI_N, for configuration/monitoring of the higher
layers of the network protocol stack (upper MAC and higher).
LTE protocol family
'''

from wishful_upis.meta_models import Attribute, Measurement, Event, Action, ValueDoc

# ATTRIBUTES

#********
#ENB Attribute
#********
LTE_ENB_DL_BW = Attribute(key='LTE_ENB_DL_BW', type=int, isReadOnly=False)  #: eNB Bandwidth DL
LTE_ENB_UL_BW = Attribute(key='LTE_ENB_UL_BW', type=int, isReadOnly=False)  #: eNB bandwidth UL
LTE_ENB_DL_FREQ = Attribute(key='LTE_ENB_DL_FREQ', type=int, isReadOnly=False)  #: eNB DL center frequency
LTE_ENB_UL_FREQ = Attribute(key='LTE_ENB_UL_FREQ', type=int, isReadOnly=False)  #: eNB UL center frequency
LTE_ENB_FREQ_BAND = Attribute(key='LTE_ENB_FREQ_BAND', type=int, isReadOnly=False)  #: 3GPP eNB Frequency band indicator
LTE_ENB_N_TX_ANT = Attribute(key='LTE_ENB_N_TX_ANT', type=int, isReadOnly=False)  #: eNB Number of TX antennas
LTE_ENB_N_RX_ANT = Attribute(key='LTE_ENB_N_RX_ANT', type=int, isReadOnly=False)  #: eNB Number of RX antennas
LTE_ENB_REF_SIG_POWER = Attribute(key='LTE_ENB_REF_SIG_POWER', type=int, isReadOnly=False)  #: eNB Reference signal power
LTE_ENB_TX_GAIN = Attribute(key='LTE_ENB_TX_GAIN', type=int, isReadOnly=False)  #: eNB TX gain
LTE_ENB_RX_GAIN = Attribute(key='LTE_ENB_RX_GAIN', type=int, isReadOnly=False)  #: eNB RX gain
LTE_ENB_DUPLEX_MODE = Attribute(key='LTE_ENB_DUPLEX_MODE', type=int, isReadOnly=False)  #: eNB Duplex Mode (TDD/FDD)
LTE_ENB_TDD_CONFIGURATION = Attribute(key='LTE_ENB_TDD_CONFIGURATION', type=int, isReadOnly=False)  #: 3GPP eNB TDD configuration mode

#********
#UE net Attribute
#********

LTE_UE_DL_FREQ = Attribute(key='LTE_UE_DL_FREQ', type=int, isReadOnly=False)  #: DL center frequency
LTE_UE_DL_BW = Attribute(key='LTE_UE_DL_BW', type=int, isReadOnly=False)  #: UL center frequency
LTE_UE_UL_BW = Attribute(key='LTE_UE_UL_BW', type=int, isReadOnly=False)  #: Bandwidth DL
LTE_UE_TX_GAIN = Attribute(key='LTE_UE_TX_GAIN', type=int, isReadOnly=False)  #: Bandwidth UL
LTE_UE_RX_GAIN = Attribute(key='LTE_UE_RX_GAIN', type=int, isReadOnly=False)  #: RRU RX gain
LTE_UE_N_TX_ANT = Attribute(key='LTE_UE_N_TX_ANT', type=int, isReadOnly=False)  #: Number of TX antennas
LTE_UE_N_RX_ANT = Attribute(key='LTE_UE_N_RX_ANT', type=int, isReadOnly=False)  #: Number of RX antennas
LTE_UE_RADIO_STATE = Attribute(key='LTE_UE_RADIO_STATE', type=bool, isReadOnly=False)  #: UE State



# Generic API to control the lower layers, i.e. key-value configuration.
[docs]def set_parameters(param_key_values_dict): '''This function (re)set the value(s) of the parameters specified in the dictionary argument. The list of available parameters supported by all platforms/OS are defined in this module. Parameters specific to a subgroup of platforms/OS are defined in the corresponding submodules. A list of supported parameters can be dynamically obtained using the get_info function on each module. Examples: .. code-block:: python >> UPIargs_eNB = {radio.TX_GAIN_enb.key: 90} >> result = controller.node(enb_node).radio.set_parameters(UPIargs_eNB) >> print result {TX_GAIN_enb.key: 90} Args: param_key_values_dict (dict): dictionary containing the key (string) value (any) pairs for each parameter. An example is {PUCCH_ENB : -96, MME_REALM : wishful_lte, TX_BANDWIDTH_enb : 25} Returns: dict: A dictionary containing key (string name) error (0 = success, 1=fail, +1=error code) pairs for each parameter. ''' return
[docs]def get_parameters(param_key_list): '''This function get(s) the value(s) of the parameters specified in the list argument. The list of available parameters supported by all platforms are defined in this module. Parameters specific to a subgroup of platforms are defined in the corresponding submodules. Example: .. code-block:: python >> UPIargs_eNB = [TX_GAIN_enb] >> result = controller.node(enb_node).radio.get_parameters(UPIargs_eNB) >> print result {TX_GAIN_enb.key: 90} Args: param_key_list (list): list of parameter names, an example is [UPI_RN.CSMA_CW, UPI_RN.CSMA_CW_MIN, UPI_RN.CSMA_CW_MAX]. Returns: dict: A dictionary containing key (string name) and values of the requested parameters. ''' return