Commit 59b31dbb authored by Cedric Roux's avatar Cedric Roux

Merge remote-tracking branch 'origin/develop_integration_2018_w25' into develop

Summary of changes:
- import work from Fujitsu:
    - multiple UEs
    - TDD configuration 1
- several bugs fixed:
    - UE power changes
      this one introduces two new parameters in the configuration file,
      update yours! The new parameters are "puSch10xSnr" and "puCch10xSnr".
      See targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.50PRB.usrpb210.conf
    - IQ replay module
    - use MAKE_VERSION(x,y,z) instead of RRC_VERSION
    - some UE fixes

Some new problems may happen. The work from Fujitsu was huge
and their branch diverged a lot from develop, leading to a very
complex merge.

The UE power management may also have an impact. It expects the noise
level to be at around 30 (as seen in the enb T tracer, in the
"input signal" view) and asks for an SNR of 20dB (value 200 for puSch10xSnr
and puCch10xSnr in the configuration file). You may want to put a
lower value, say 100 (SNR of 10dB). This is still work in progress
and needs some more work (we need to calculate the noise level at
runtime and not use a hardcoded value of 30).
parents 49829f69 c221af02
...@@ -632,6 +632,10 @@ add_boolean_option(MESSAGE_CHART_GENERATOR False "For generating sequenc ...@@ -632,6 +632,10 @@ add_boolean_option(MESSAGE_CHART_GENERATOR False "For generating sequenc
add_boolean_option(MESSAGE_CHART_GENERATOR_RLC_MAC False "trace RLC-MAC exchanges in sequence diagrams") add_boolean_option(MESSAGE_CHART_GENERATOR_RLC_MAC False "trace RLC-MAC exchanges in sequence diagrams")
add_boolean_option(MESSAGE_CHART_GENERATOR_PHY False "trace some PHY exchanges in sequence diagrams") add_boolean_option(MESSAGE_CHART_GENERATOR_PHY False "trace some PHY exchanges in sequence diagrams")
add_boolean_option(UE_EXPANSION False "enable UE_EXPANSION with max 256 UE")
add_boolean_option(PHY_TX_THREAD False "enable UE_EXPANSION with max 256 UE")
add_boolean_option(PRE_SCD_THREAD False "enable UE_EXPANSION with max 256 UE")
######################## ########################
# Include order # Include order
########################## ##########################
...@@ -1093,6 +1097,7 @@ set(PHY_SRC_COMMON ...@@ -1093,6 +1097,7 @@ set(PHY_SRC_COMMON
${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/prach_common.c ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/prach_common.c
${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/pucch_common.c ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/pucch_common.c
${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/dlsch_scrambling.c ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/dlsch_scrambling.c
${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/lte_gold_generic.c
${OPENAIR1_DIR}/PHY/LTE_UE_TRANSPORT/srs_modulation.c ${OPENAIR1_DIR}/PHY/LTE_UE_TRANSPORT/srs_modulation.c
${OPENAIR1_DIR}/PHY/MODULATION/ofdm_mod.c ${OPENAIR1_DIR}/PHY/MODULATION/ofdm_mod.c
${OPENAIR1_DIR}/PHY/LTE_ESTIMATION/lte_sync_time.c ${OPENAIR1_DIR}/PHY/LTE_ESTIMATION/lte_sync_time.c
...@@ -1334,6 +1339,7 @@ set (MAC_SRC ...@@ -1334,6 +1339,7 @@ set (MAC_SRC
${MAC_DIR}/eNB_scheduler_bch.c ${MAC_DIR}/eNB_scheduler_bch.c
${MAC_DIR}/eNB_scheduler_primitives.c ${MAC_DIR}/eNB_scheduler_primitives.c
${MAC_DIR}/eNB_scheduler_RA.c ${MAC_DIR}/eNB_scheduler_RA.c
${MAC_DIR}/eNB_scheduler_fairRR.c
${MAC_DIR}/eNB_scheduler_phytest.c ${MAC_DIR}/eNB_scheduler_phytest.c
${MAC_DIR}/pre_processor.c ${MAC_DIR}/pre_processor.c
${MAC_DIR}/config.c ${MAC_DIR}/config.c
......
...@@ -49,7 +49,7 @@ eNBs = ...@@ -49,7 +49,7 @@ eNBs =
pucch_delta_shift = 1; pucch_delta_shift = 1;
pucch_nRB_CQI = 0; pucch_nRB_CQI = 0;
pucch_nCS_AN = 0; pucch_nCS_AN = 0;
pucch_n1_AN = 32; pucch_n1_AN = 0;
pdsch_referenceSignalPower = -24; pdsch_referenceSignalPower = -24;
pdsch_p_b = 0; pdsch_p_b = 0;
pusch_n_SB = 1; pusch_n_SB = 1;
......
...@@ -49,7 +49,7 @@ eNBs = ...@@ -49,7 +49,7 @@ eNBs =
pucch_delta_shift = 1; pucch_delta_shift = 1;
pucch_nRB_CQI = 0; pucch_nRB_CQI = 0;
pucch_nCS_AN = 0; pucch_nCS_AN = 0;
pucch_n1_AN = 32; pucch_n1_AN = 0;
pdsch_referenceSignalPower = -24; pdsch_referenceSignalPower = -24;
pdsch_p_b = 0; pdsch_p_b = 0;
pusch_n_SB = 1; pusch_n_SB = 1;
......
...@@ -49,7 +49,7 @@ eNBs = ...@@ -49,7 +49,7 @@ eNBs =
pucch_delta_shift = 1; pucch_delta_shift = 1;
pucch_nRB_CQI = 0; pucch_nRB_CQI = 0;
pucch_nCS_AN = 0; pucch_nCS_AN = 0;
pucch_n1_AN = 32; pucch_n1_AN = 0;
pdsch_referenceSignalPower = -24; pdsch_referenceSignalPower = -24;
pdsch_p_b = 0; pdsch_p_b = 0;
pusch_n_SB = 1; pusch_n_SB = 1;
......
...@@ -49,7 +49,7 @@ eNBs = ...@@ -49,7 +49,7 @@ eNBs =
pucch_delta_shift = 1; pucch_delta_shift = 1;
pucch_nRB_CQI = 0; pucch_nRB_CQI = 0;
pucch_nCS_AN = 0; pucch_nCS_AN = 0;
pucch_n1_AN = 32; pucch_n1_AN = 0;
pdsch_referenceSignalPower = -24; pdsch_referenceSignalPower = -24;
pdsch_p_b = 0; pdsch_p_b = 0;
pusch_n_SB = 1; pusch_n_SB = 1;
......
...@@ -49,7 +49,7 @@ eNBs = ...@@ -49,7 +49,7 @@ eNBs =
pucch_delta_shift = 1; pucch_delta_shift = 1;
pucch_nRB_CQI = 0; pucch_nRB_CQI = 0;
pucch_nCS_AN = 0; pucch_nCS_AN = 0;
pucch_n1_AN = 32; pucch_n1_AN = 0;
pdsch_referenceSignalPower = -24; pdsch_referenceSignalPower = -24;
pdsch_p_b = 0; pdsch_p_b = 0;
pusch_n_SB = 1; pusch_n_SB = 1;
......
...@@ -49,7 +49,7 @@ eNBs = ...@@ -49,7 +49,7 @@ eNBs =
pucch_delta_shift = 1; pucch_delta_shift = 1;
pucch_nRB_CQI = 0; pucch_nRB_CQI = 0;
pucch_nCS_AN = 0; pucch_nCS_AN = 0;
pucch_n1_AN = 32; pucch_n1_AN = 0;
pdsch_referenceSignalPower = -24; pdsch_referenceSignalPower = -24;
pdsch_p_b = 0; pdsch_p_b = 0;
pusch_n_SB = 1; pusch_n_SB = 1;
......
...@@ -49,7 +49,7 @@ eNBs = ...@@ -49,7 +49,7 @@ eNBs =
pucch_delta_shift = 1; pucch_delta_shift = 1;
pucch_nRB_CQI = 0; pucch_nRB_CQI = 0;
pucch_nCS_AN = 0; pucch_nCS_AN = 0;
pucch_n1_AN = 32; pucch_n1_AN = 0;
pdsch_referenceSignalPower = -29; pdsch_referenceSignalPower = -29;
pdsch_p_b = 0; pdsch_p_b = 0;
pusch_n_SB = 1; pusch_n_SB = 1;
......
...@@ -49,7 +49,7 @@ eNBs = ...@@ -49,7 +49,7 @@ eNBs =
pucch_delta_shift = 1; pucch_delta_shift = 1;
pucch_nRB_CQI = 0; pucch_nRB_CQI = 0;
pucch_nCS_AN = 0; pucch_nCS_AN = 0;
pucch_n1_AN = 32; pucch_n1_AN = 0;
pdsch_referenceSignalPower = -29; pdsch_referenceSignalPower = -29;
pdsch_p_b = 0; pdsch_p_b = 0;
pusch_n_SB = 1; pusch_n_SB = 1;
......
...@@ -49,7 +49,7 @@ eNBs = ...@@ -49,7 +49,7 @@ eNBs =
pucch_delta_shift = 1; pucch_delta_shift = 1;
pucch_nRB_CQI = 0; pucch_nRB_CQI = 0;
pucch_nCS_AN = 0; pucch_nCS_AN = 0;
pucch_n1_AN = 32; pucch_n1_AN = 0;
pdsch_referenceSignalPower = -29; pdsch_referenceSignalPower = -29;
pdsch_p_b = 0; pdsch_p_b = 0;
pusch_n_SB = 1; pusch_n_SB = 1;
......
...@@ -49,7 +49,7 @@ eNBs = ...@@ -49,7 +49,7 @@ eNBs =
pucch_delta_shift = 1; pucch_delta_shift = 1;
pucch_nRB_CQI = 0; pucch_nRB_CQI = 0;
pucch_nCS_AN = 0; pucch_nCS_AN = 0;
pucch_n1_AN = 32; pucch_n1_AN = 0;
pdsch_referenceSignalPower = -29; pdsch_referenceSignalPower = -29;
pdsch_p_b = 0; pdsch_p_b = 0;
pusch_n_SB = 1; pusch_n_SB = 1;
......
...@@ -49,7 +49,7 @@ eNBs = ...@@ -49,7 +49,7 @@ eNBs =
pucch_delta_shift = 1; pucch_delta_shift = 1;
pucch_nRB_CQI = 0; pucch_nRB_CQI = 0;
pucch_nCS_AN = 0; pucch_nCS_AN = 0;
pucch_n1_AN = 32; pucch_n1_AN = 0;
pdsch_referenceSignalPower = -29; pdsch_referenceSignalPower = -29;
pdsch_p_b = 0; pdsch_p_b = 0;
pusch_n_SB = 1; pusch_n_SB = 1;
......
...@@ -49,7 +49,7 @@ eNBs = ...@@ -49,7 +49,7 @@ eNBs =
pucch_delta_shift = 1; pucch_delta_shift = 1;
pucch_nRB_CQI = 0; pucch_nRB_CQI = 0;
pucch_nCS_AN = 0; pucch_nCS_AN = 0;
pucch_n1_AN = 32; pucch_n1_AN = 0;
pdsch_referenceSignalPower = -29; pdsch_referenceSignalPower = -29;
pdsch_p_b = 0; pdsch_p_b = 0;
pusch_n_SB = 1; pusch_n_SB = 1;
......
...@@ -42,6 +42,7 @@ conf_nvram_path=$OPENAIR_DIR/openair3/NAS/TOOLS/ue_eurecom_test_sfr.conf ...@@ -42,6 +42,7 @@ conf_nvram_path=$OPENAIR_DIR/openair3/NAS/TOOLS/ue_eurecom_test_sfr.conf
MSC_GEN="False" MSC_GEN="False"
XFORMS="True" XFORMS="True"
UE_EXPANSION="False"
PRINT_STATS="False" PRINT_STATS="False"
VCD_TIMING="False" VCD_TIMING="False"
DEADLINE_SCHEDULER_FLAG_USER="False" DEADLINE_SCHEDULER_FLAG_USER="False"
...@@ -214,8 +215,12 @@ function main() { ...@@ -214,8 +215,12 @@ function main() {
UE=1 UE=1
echo_info "Will compile UE" echo_info "Will compile UE"
shift;; shift;;
--mu)
UE_EXPANSION="True"
echo_info "Will compile with UE_EXPANSION"
shift;;
--UE-conf-nvram) --UE-conf-nvram)
conf_nvram_path=$(readlink -f "$1") conf_nvram_path=$(readlink -f $2)
shift 2;; shift 2;;
--UE-gen-nvram) --UE-gen-nvram)
gen_nvram_path=$(readlink -f $2) gen_nvram_path=$(readlink -f $2)
...@@ -540,6 +545,9 @@ function main() { ...@@ -540,6 +545,9 @@ function main() {
echo "set ( CMAKE_BUILD_TYPE $CMAKE_BUILD_TYPE )" >> $cmake_file echo "set ( CMAKE_BUILD_TYPE $CMAKE_BUILD_TYPE )" >> $cmake_file
echo "set ( CFLAGS_PROCESSOR_USER \"$CFLAGS_PROCESSOR_USER\" )" >> $cmake_file echo "set ( CFLAGS_PROCESSOR_USER \"$CFLAGS_PROCESSOR_USER\" )" >> $cmake_file
echo "set ( XFORMS $XFORMS )" >> $cmake_file echo "set ( XFORMS $XFORMS )" >> $cmake_file
echo "set ( UE_EXPANSION $UE_EXPANSION )" >> $cmake_file
echo "set ( PHY_TX_THREAD $UE_EXPANSION )" >> $cmake_file
echo "set ( PRE_SCD_THREAD $UE_EXPANSION )" >> $cmake_file
echo "set ( RRC_ASN1_VERSION \"${REL}\")" >> $cmake_file echo "set ( RRC_ASN1_VERSION \"${REL}\")" >> $cmake_file
echo "set ( ENABLE_VCD_FIFO $VCD_TIMING )" >> $cmake_file echo "set ( ENABLE_VCD_FIFO $VCD_TIMING )" >> $cmake_file
echo "set ( RF_BOARD \"${HW}\")" >> $cmake_file echo "set ( RF_BOARD \"${HW}\")" >> $cmake_file
...@@ -707,6 +715,9 @@ function main() { ...@@ -707,6 +715,9 @@ function main() {
echo "set ( CMAKE_BUILD_TYPE $CMAKE_BUILD_TYPE )" >> $cmake_file echo "set ( CMAKE_BUILD_TYPE $CMAKE_BUILD_TYPE )" >> $cmake_file
echo "set ( CFLAGS_PROCESSOR_USER \"$CFLAGS_PROCESSOR_USER\" )" >> $cmake_file echo "set ( CFLAGS_PROCESSOR_USER \"$CFLAGS_PROCESSOR_USER\" )" >> $cmake_file
echo "set ( XFORMS $XFORMS )" >> $cmake_file echo "set ( XFORMS $XFORMS )" >> $cmake_file
echo "set ( UE_EXPANSION $UE_EXPANSION )" >> $cmake_file
echo "set ( PHY_TX_THREAD $UE_EXPANSION )" >> $cmake_file
echo "set ( PRE_SCD_THREAD $UE_EXPANSION )" >> $cmake_file
echo "set ( PRINT_STATS $PRINT_STATS )" >> $cmake_file echo "set ( PRINT_STATS $PRINT_STATS )" >> $cmake_file
echo "set ( RRC_ASN1_VERSION \"${REL}\")" >> $cmake_file echo "set ( RRC_ASN1_VERSION \"${REL}\")" >> $cmake_file
echo "set ( ENABLE_VCD_FIFO $VCD_TIMING )" >> $cmake_file echo "set ( ENABLE_VCD_FIFO $VCD_TIMING )" >> $cmake_file
...@@ -794,6 +805,9 @@ function main() { ...@@ -794,6 +805,9 @@ function main() {
cp $DIR/oaisim_mme_build_oai/CMakeLists.template $cmake_file cp $DIR/oaisim_mme_build_oai/CMakeLists.template $cmake_file
echo "set ( CMAKE_BUILD_TYPE $CMAKE_BUILD_TYPE )" >> $cmake_file echo "set ( CMAKE_BUILD_TYPE $CMAKE_BUILD_TYPE )" >> $cmake_file
echo "set ( XFORMS $XFORMS )" >> $cmake_file echo "set ( XFORMS $XFORMS )" >> $cmake_file
echo "set ( UE_EXPANSION $UE_EXPANSION )" >> $cmake_file
echo "set ( PHY_TX_THREAD $UE_EXPANSION )" >> $cmake_file
echo "set ( PRE_SCD_THREAD $UE_EXPANSION )" >> $cmake_file
echo "set ( RRC_ASN1_VERSION \"${REL}\")" >> $cmake_file echo "set ( RRC_ASN1_VERSION \"${REL}\")" >> $cmake_file
echo "set ( ENABLE_VCD_FIFO $VCD_TIMING )" >> $cmake_file echo "set ( ENABLE_VCD_FIFO $VCD_TIMING )" >> $cmake_file
echo "set ( T_TRACER $T_TRACER )" >> $cmake_file echo "set ( T_TRACER $T_TRACER )" >> $cmake_file
......
...@@ -48,7 +48,7 @@ if [ "$1" = "eNB" ]; then ...@@ -48,7 +48,7 @@ if [ "$1" = "eNB" ]; then
else else
if [ "$1" = "UE" ]; then if [ "$1" = "UE" ]; then
echo "bring up oai0 interface for UE" echo "bring up oai0 interface for UE"
sudo ifconfig oai0 10.0.1.9 netmask 255.255.255.0 broadcast 10.0.1.255 sudo ifconfig oai0 10.0.1.2 netmask 255.255.255.0 broadcast 10.0.1.255
$OPENAIR_DIR/targets/bin/rb_tool -a -c0 -i0 -z0 -s 10.0.1.2 -t 10.0.1.1 -r 1 $OPENAIR_DIR/targets/bin/rb_tool -a -c0 -i0 -z0 -s 10.0.1.2 -t 10.0.1.1 -r 1
fi fi
fi fi
File mode changed from 100644 to 100755
...@@ -95,7 +95,7 @@ hash_table_t *hashtable_create(const hash_size_t sizeP, hash_size_t (*hashfuncP) ...@@ -95,7 +95,7 @@ hash_table_t *hashtable_create(const hash_size_t sizeP, hash_size_t (*hashfuncP)
* Cleanup * Cleanup
* The hashtable_destroy() walks through the linked lists for each possible hash value, and releases the elements. It also releases the nodes array and the hash_table_t. * The hashtable_destroy() walks through the linked lists for each possible hash value, and releases the elements. It also releases the nodes array and the hash_table_t.
*/ */
hashtable_rc_t hashtable_destroy(hash_table_t * const hashtblP) hashtable_rc_t hashtable_destroy(hash_table_t * hashtblP)
{ {
hash_size_t n; hash_size_t n;
hash_node_t *node, *oldnode; hash_node_t *node, *oldnode;
...@@ -117,6 +117,7 @@ hashtable_rc_t hashtable_destroy(hash_table_t * const hashtblP) ...@@ -117,6 +117,7 @@ hashtable_rc_t hashtable_destroy(hash_table_t * const hashtblP)
} }
free(hashtblP->nodes); free(hashtblP->nodes);
free(hashtblP); free(hashtblP);
hashtblP=NULL;
return HASH_TABLE_OK; return HASH_TABLE_OK;
} }
//------------------------------------------------------------------------------------------------------------------------------- //-------------------------------------------------------------------------------------------------------------------------------
......
...@@ -35,9 +35,11 @@ ...@@ -35,9 +35,11 @@
#ifndef ASSERTIONS_H_ #ifndef ASSERTIONS_H_
#define ASSERTIONS_H_ #define ASSERTIONS_H_
void output_log_mem(void);
#define _Assert_Exit_ \ #define _Assert_Exit_ \
{ \ { \
fprintf(stderr, "\nExiting execution\n"); \ fprintf(stderr, "\nExiting execution\n"); \
output_log_mem(); \
display_backtrace(); \ display_backtrace(); \
fflush(stdout); \ fflush(stdout); \
fflush(stderr); \ fflush(stderr); \
......
...@@ -736,6 +736,15 @@ void itti_mark_task_ready(task_id_t task_id) ...@@ -736,6 +736,15 @@ void itti_mark_task_ready(task_id_t task_id)
/* Mark the thread as using LFDS queue */ /* Mark the thread as using LFDS queue */
lfds611_queue_use(itti_desc.tasks[task_id].message_queue); lfds611_queue_use(itti_desc.tasks[task_id].message_queue);
#if defined(UE_EXPANSION) || defined(RTAI)
/* Assign low priority to created threads */
{
struct sched_param sched_param;
sched_param.sched_priority = sched_get_priority_min(SCHED_FIFO) + 1;
sched_setscheduler(0, SCHED_FIFO, &sched_param);
}
#endif
itti_desc.threads[thread_id].task_state = TASK_STATE_READY; itti_desc.threads[thread_id].task_state = TASK_STATE_READY;
itti_desc.ready_tasks ++; itti_desc.ready_tasks ++;
......
...@@ -117,16 +117,19 @@ int signal_handle(int *end) ...@@ -117,16 +117,19 @@ int signal_handle(int *end)
case SIGUSR1: case SIGUSR1:
SIG_DEBUG("Received SIGUSR1\n"); SIG_DEBUG("Received SIGUSR1\n");
*end = 1; *end = 1;
output_log_mem();
break; break;
case SIGSEGV: /* Fall through */ case SIGSEGV: /* Fall through */
case SIGABRT: case SIGABRT:
SIG_DEBUG("Received SIGABORT\n"); SIG_DEBUG("Received SIGABORT\n");
output_log_mem();
backtrace_handle_signal(&info); backtrace_handle_signal(&info);
break; break;
case SIGINT: case SIGINT:
printf("Received SIGINT\n"); printf("Received SIGINT\n");
output_log_mem();
itti_send_terminate_message(TASK_UNKNOWN); itti_send_terminate_message(TASK_UNKNOWN);
*end = 1; *end = 1;
break; break;
......
...@@ -871,7 +871,11 @@ int pnf_phy_dl_config_req(nfapi_pnf_p7_config_t* pnf_p7, nfapi_dl_config_request ...@@ -871,7 +871,11 @@ int pnf_phy_dl_config_req(nfapi_pnf_p7_config_t* pnf_p7, nfapi_dl_config_request
AssertFatal(UE_id<NUMBER_OF_UE_MAX,"returned UE_id %d >= %d(NUMBER_OF_UE_MAX)\n",UE_id,NUMBER_OF_UE_MAX); AssertFatal(UE_id<NUMBER_OF_UE_MAX,"returned UE_id %d >= %d(NUMBER_OF_UE_MAX)\n",UE_id,NUMBER_OF_UE_MAX);
LTE_eNB_DLSCH_t *dlsch0 = eNB->dlsch[UE_id][0]; LTE_eNB_DLSCH_t *dlsch0 = eNB->dlsch[UE_id][0];
//LTE_eNB_DLSCH_t *dlsch1 = eNB->dlsch[UE_id][1]; //LTE_eNB_DLSCH_t *dlsch1 = eNB->dlsch[UE_id][1];
int harq_pid = dlsch0->harq_ids[sf]; int harq_pid = dlsch0->harq_ids[sfn%2][sf];
if(harq_pid >= dlsch0->Mdlharq) {
LOG_E(PHY,"pnf_phy_dl_config_req illegal harq_pid %d\n", harq_pid);
return(-1);
}
uint8_t *dlsch_sdu = tx_pdus[UE_id][harq_pid]; uint8_t *dlsch_sdu = tx_pdus[UE_id][harq_pid];
memcpy(dlsch_sdu, tx_pdu->segments[0].segment_data, tx_pdu->segments[0].segment_length); memcpy(dlsch_sdu, tx_pdu->segments[0].segment_data, tx_pdu->segments[0].segment_length);
......
...@@ -1308,7 +1308,7 @@ typedef struct { ...@@ -1308,7 +1308,7 @@ typedef struct {
typedef struct { typedef struct {
nfapi_tl_t tl; nfapi_tl_t tl;
uint16_t length; uint16_t length;
uint16_t pdu_index; int16_t pdu_index;
uint16_t transmission_power; uint16_t transmission_power;
} nfapi_dl_config_bch_pdu_rel8_t; } nfapi_dl_config_bch_pdu_rel8_t;
#define NFAPI_DL_CONFIG_REQUEST_BCH_PDU_REL8_TAG 0x2004 #define NFAPI_DL_CONFIG_REQUEST_BCH_PDU_REL8_TAG 0x2004
...@@ -1320,7 +1320,7 @@ typedef struct { ...@@ -1320,7 +1320,7 @@ typedef struct {
typedef struct { typedef struct {
nfapi_tl_t tl; nfapi_tl_t tl;
uint16_t length; uint16_t length;
uint16_t pdu_index; int16_t pdu_index;
uint16_t rnti; uint16_t rnti;
uint8_t resource_allocation_type; uint8_t resource_allocation_type;
uint32_t resource_block_coding; uint32_t resource_block_coding;
...@@ -1344,7 +1344,7 @@ typedef struct { ...@@ -1344,7 +1344,7 @@ typedef struct {
typedef struct { typedef struct {
nfapi_tl_t tl; nfapi_tl_t tl;
uint16_t length; uint16_t length;
uint16_t pdu_index; int16_t pdu_index;
uint16_t rnti; uint16_t rnti;
uint8_t resource_allocation_type; uint8_t resource_allocation_type;
uint8_t virtual_resource_block_assignment_flag; uint8_t virtual_resource_block_assignment_flag;
...@@ -1429,7 +1429,7 @@ typedef struct { ...@@ -1429,7 +1429,7 @@ typedef struct {
typedef struct { typedef struct {
nfapi_tl_t tl; nfapi_tl_t tl;
uint16_t length; uint16_t length;
uint16_t pdu_index; int16_t pdu_index;
uint16_t p_rnti; uint16_t p_rnti;
uint8_t resource_allocation_type; uint8_t resource_allocation_type;
uint8_t virtual_resource_block_assignment_flag; uint8_t virtual_resource_block_assignment_flag;
...@@ -1595,7 +1595,7 @@ typedef struct { ...@@ -1595,7 +1595,7 @@ typedef struct {
typedef struct { typedef struct {
nfapi_tl_t tl; nfapi_tl_t tl;
uint16_t length; uint16_t length;
uint16_t pdu_index; int16_t pdu_index;
uint16_t transmission_power; uint16_t transmission_power;
uint16_t hyper_sfn_2_lsbs; uint16_t hyper_sfn_2_lsbs;
} nfapi_dl_config_nbch_pdu_rel13_t; } nfapi_dl_config_nbch_pdu_rel13_t;
...@@ -1609,7 +1609,7 @@ typedef struct { ...@@ -1609,7 +1609,7 @@ typedef struct {
typedef struct { typedef struct {
nfapi_tl_t tl; nfapi_tl_t tl;
uint16_t length; uint16_t length;
uint16_t pdu_index; int16_t pdu_index;
uint8_t ncce_index; uint8_t ncce_index;
uint8_t aggregation_level; uint8_t aggregation_level;
uint8_t start_symbol; uint8_t start_symbol;
...@@ -1642,7 +1642,7 @@ typedef struct { ...@@ -1642,7 +1642,7 @@ typedef struct {
typedef struct { typedef struct {
nfapi_tl_t tl; nfapi_tl_t tl;
uint16_t length; uint16_t length;
uint16_t pdu_index; int16_t pdu_index;
uint8_t start_symbol; uint8_t start_symbol;
uint8_t rnti_type; uint8_t rnti_type;
uint16_t rnti; uint16_t rnti;
...@@ -2218,6 +2218,7 @@ typedef struct { ...@@ -2218,6 +2218,7 @@ typedef struct {
uint8_t dl_assignment_index; uint8_t dl_assignment_index;
uint32_t tpc_bitmap; uint32_t tpc_bitmap;
uint16_t transmission_power; uint16_t transmission_power;
uint8_t harq_pid;
} nfapi_hi_dci0_dci_pdu_rel8_t; } nfapi_hi_dci0_dci_pdu_rel8_t;
#define NFAPI_HI_DCI0_REQUEST_DCI_PDU_REL8_TAG 0x2020 #define NFAPI_HI_DCI0_REQUEST_DCI_PDU_REL8_TAG 0x2020
...@@ -2361,7 +2362,7 @@ typedef struct { ...@@ -2361,7 +2362,7 @@ typedef struct {
#define NFAPI_TX_MAX_SEGMENTS 32