Merge branch 'develop_integration_w08' into 'develop'
Develop integration w08
Summary of changes:
- various bugs fixed
- pre-commit script for better indentation: see commit 068ce4ca55
For the moment, each contributor has to enable the script (and install astyle) by hand.
Maybe at some point the script will be mandatory.
See merge request !124
This commit is contained in:
@@ -136,6 +136,20 @@ clean_all_files() {
|
||||
# Compilers
|
||||
###################################
|
||||
|
||||
#check_warnings:
|
||||
# print error message if the compilation had warnings
|
||||
#argument:
|
||||
# $1: log file
|
||||
check_warnings() {
|
||||
#we look for 'warning:' in the compilation log file
|
||||
#this is how gcc starts a warning
|
||||
#this is not perfect, we may get false positive
|
||||
warning_count=`grep "warning:" "$1"|wc -l`
|
||||
if [ $warning_count -gt 0 ]; then
|
||||
echo_error "WARNING: $warning_count warnings. See $1"
|
||||
fi
|
||||
}
|
||||
|
||||
compilations() {
|
||||
cd $OPENAIR_DIR/cmake_targets/$1/build
|
||||
set +e
|
||||
@@ -153,6 +167,7 @@ compilations() {
|
||||
if [ -s $3 ] ; then
|
||||
cp $3 $4
|
||||
echo_success "$2 compiled"
|
||||
check_warnings "$dlog/$2.$REL.txt"
|
||||
else
|
||||
echo_error "$2 compilation failed"
|
||||
exit 1
|
||||
|
||||
@@ -2969,3 +2969,53 @@ struct DCI0A_20_MHz {
|
||||
#define sizeof_DCI0A_20MHz 17
|
||||
|
||||
#define MAX_DCI_SIZE_BITS 45
|
||||
|
||||
struct DCI_INFO_EXTRACTED {
|
||||
/// type = 0 => DCI Format 0, type = 1 => DCI Format 1A
|
||||
uint8_t type;
|
||||
/// Resource Allocation Header
|
||||
uint8_t rah;
|
||||
/// HARQ Process
|
||||
uint8_t harq_pid;
|
||||
/// CQI Request
|
||||
uint8_t cqi_req;
|
||||
/// SRS Request
|
||||
uint8_t srs_req;
|
||||
/// Power Control
|
||||
uint8_t TPC;
|
||||
/// Localized/Distributed VRB
|
||||
uint8_t vrb_type;
|
||||
/// RB Assignment (ceil(log2(N_RB_DL/P)) bits)
|
||||
uint32_t rballoc;
|
||||
// Applicable only when vrb_type = 1
|
||||
uint8_t Ngap;
|
||||
/// Cyclic shift
|
||||
uint8_t cshift;
|
||||
/// Hopping flag
|
||||
uint8_t hopping;
|
||||
/// Downlink Assignment Index
|
||||
uint8_t dai;
|
||||
/// DAI (TDD)
|
||||
uint8_t ulindex;
|
||||
|
||||
/// TB swap
|
||||
uint8_t tb_swap;
|
||||
/// TPMI information for precoding
|
||||
uint8_t tpmi;
|
||||
/// Redundancy version 2
|
||||
uint8_t rv2;
|
||||
/// New Data Indicator 2
|
||||
uint8_t ndi2;
|
||||
/// Modulation and Coding Scheme and Redundancy Version 2
|
||||
uint8_t mcs2;
|
||||
/// Redundancy version 1
|
||||
uint8_t rv1;
|
||||
/// New Data Indicator 1
|
||||
uint8_t ndi1;
|
||||
/// Modulation and Coding Scheme and Redundancy Version 1
|
||||
uint8_t mcs1;
|
||||
|
||||
/// Scrambling ID
|
||||
uint64_t ap_si_nl_id:3;
|
||||
};
|
||||
typedef struct DCI_INFO_EXTRACTED DCI_INFO_EXTRACTED_t;
|
||||
|
||||
Executable → Regular
+2344
-2059
File diff suppressed because it is too large
Load Diff
@@ -2090,7 +2090,6 @@ void dlsch_channel_compensation_TM34(LTE_DL_FRAME_PARMS *frame_parms,
|
||||
unsigned char aarx=0,symbol_mod,pilots=0;
|
||||
int precoded_signal_strength0=0,precoded_signal_strength1=0;
|
||||
int rx_power_correction;
|
||||
int output_shift;
|
||||
|
||||
int **rxdataF_ext = pdsch_vars->rxdataF_ext;
|
||||
int **dl_ch_estimates_ext = pdsch_vars->dl_ch_estimates_ext;
|
||||
@@ -3153,7 +3152,6 @@ void dlsch_detection_mrc_TM34(LTE_DL_FRAME_PARMS *frame_parms,
|
||||
unsigned short nb_rb,
|
||||
unsigned char dual_stream_UE) {
|
||||
|
||||
unsigned char aatx;
|
||||
int i;
|
||||
__m128i *rxdataF_comp128_0,*rxdataF_comp128_1,*rxdataF_comp128_i0,*rxdataF_comp128_i1,*dl_ch_mag128_0,*dl_ch_mag128_1,*dl_ch_mag128_0b,*dl_ch_mag128_1b,*rho128_0,*rho128_1,*rho128_i0,*rho128_i1,*dl_ch_mag128_i0,*dl_ch_mag128_i1,*dl_ch_mag128_i0b,*dl_ch_mag128_i1b;
|
||||
|
||||
|
||||
@@ -697,7 +697,6 @@ int32_t dlsch_qpsk_llr_SIC(LTE_DL_FRAME_PARMS *frame_parms,
|
||||
|
||||
int16_t rho_amp_x0[2*frame_parms->N_RB_DL*12];
|
||||
int16_t rho_rho_amp_x0[2*frame_parms->N_RB_DL*12];
|
||||
int16_t clean_x1[2*frame_parms->N_RB_DL*12];
|
||||
uint16_t amp_tmp;
|
||||
uint16_t *llr16=(uint16_t*)dlsch_llr;
|
||||
int i, len, nsymb;
|
||||
@@ -953,7 +952,6 @@ void dlsch_16qam_llr_SIC (LTE_DL_FRAME_PARMS *frame_parms,
|
||||
{
|
||||
int16_t rho_amp_x0[2*frame_parms->N_RB_DL*12];
|
||||
int16_t rho_rho_amp_x0[2*frame_parms->N_RB_DL*12];
|
||||
int16_t clean_x1[2*frame_parms->N_RB_DL*12];
|
||||
uint16_t amp_tmp;
|
||||
uint32_t *llr32=(uint32_t*)dlsch_llr;
|
||||
int i, len, nsymb;
|
||||
@@ -1222,7 +1220,6 @@ void dlsch_64qam_llr_SIC(LTE_DL_FRAME_PARMS *frame_parms,
|
||||
{
|
||||
int16_t rho_amp_x0[2*frame_parms->N_RB_DL*12];
|
||||
int16_t rho_rho_amp_x0[2*frame_parms->N_RB_DL*12];
|
||||
int16_t clean_x1[2*frame_parms->N_RB_DL*12];
|
||||
uint16_t amp_tmp;
|
||||
uint16_t *llr32=(uint16_t*)dlsch_llr;
|
||||
int i, len, nsymb, len2;
|
||||
|
||||
@@ -1395,7 +1395,7 @@ void rx_phich(PHY_VARS_UE *ue,
|
||||
subframe,
|
||||
HI16,
|
||||
nseq_PHICH,
|
||||
ngroup_PHICH,ulsch->harq_processes[harq_pid]->round+1,
|
||||
ngroup_PHICH,
|
||||
ulsch->Mlimit);
|
||||
//#endif
|
||||
|
||||
|
||||
@@ -1133,7 +1133,6 @@ void rx_prach(PHY_VARS_eNB *eNB,
|
||||
int fft_size,log2_ifft_size;
|
||||
uint8_t nb_ant_rx = 1; //eNB->frame_parms.nb_antennas_rx;
|
||||
|
||||
int en;
|
||||
|
||||
for (aa=0; aa<nb_ant_rx; aa++) {
|
||||
prach[aa] = (int16_t*)&eNB->common_vars.rxdata[0][aa][subframe*eNB->frame_parms.samples_per_tti-eNB->N_TA_offset];
|
||||
|
||||
@@ -364,7 +364,7 @@ void process_timing_advance(uint8_t Mod_id,uint8_t CC_id,int16_t timing_advance)
|
||||
PHY_vars_UE_g[Mod_id][CC_id]->timing_advance = PHY_vars_UE_g[Mod_id][CC_id]->timing_advance+timing_advance*4; //this is for 25RB only!!!
|
||||
|
||||
|
||||
LOG_I(PHY,"[UE %d] Got timing advance %d from MAC, new value %d\n",Mod_id, timing_advance, PHY_vars_UE_g[Mod_id][CC_id]->timing_advance);
|
||||
LOG_D(PHY,"[UE %d] Got timing advance %d from MAC, new value %d\n",Mod_id, timing_advance, PHY_vars_UE_g[Mod_id][CC_id]->timing_advance);
|
||||
|
||||
|
||||
}
|
||||
@@ -1043,7 +1043,7 @@ void ulsch_common_procedures(PHY_VARS_UE *ue, UE_rxtx_proc_t *proc, uint8_t empt
|
||||
int overflow=0;
|
||||
#if defined(EXMIMO) || defined(OAI_USRP) || defined(OAI_BLADERF) || defined(OAI_LMSSDR)
|
||||
int k,l;
|
||||
int dummy_tx_buffer[3840*4] __attribute__((aligned(16)));
|
||||
int dummy_tx_buffer[frame_parms->samples_per_tti] __attribute__((aligned(16)));
|
||||
#endif
|
||||
|
||||
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_UE_TX_ULSCH_COMMON,VCD_FUNCTION_IN);
|
||||
@@ -1076,11 +1076,15 @@ void ulsch_common_procedures(PHY_VARS_UE *ue, UE_rxtx_proc_t *proc, uint8_t empt
|
||||
overflow = ulsch_start - 9*frame_parms->samples_per_tti;
|
||||
for (aa=0; aa<frame_parms->nb_antennas_tx; aa++) {
|
||||
|
||||
memset(&ue->common_vars.txdata[aa][ulsch_start],0,
|
||||
4*cmin(frame_parms->samples_per_tti-overflow,frame_parms->samples_per_tti));
|
||||
|
||||
if (overflow> 0)
|
||||
memset(&ue->common_vars.txdata[aa][0],0,4*overflow);
|
||||
if (overflow > 0)
|
||||
{
|
||||
memset(&ue->common_vars.txdata[aa][ulsch_start],0,4*(frame_parms->samples_per_tti-overflow));
|
||||
memset(&ue->common_vars.txdata[aa][0],0,4*overflow);
|
||||
}
|
||||
else
|
||||
{
|
||||
memset(&ue->common_vars.txdata[aa][ulsch_start],0,4*frame_parms->samples_per_tti);
|
||||
}
|
||||
}
|
||||
/*#else
|
||||
overflow = ulsch_start - 9*frame_parms->samples_per_tti;
|
||||
@@ -1469,7 +1473,7 @@ void ue_ulsch_uespec_procedures(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB
|
||||
LOG_D(PHY,"[UE %d][PDSCH %x] AbsSubFrame %d.%d Generating ACK (%d,%d) for %d bits on PUSCH\n",
|
||||
Mod_id,
|
||||
ue->ulsch[eNB_id]->rnti,
|
||||
frame_tx,subframe_tx,
|
||||
frame_tx%1024,subframe_tx,
|
||||
ue->ulsch[eNB_id]->o_ACK[0],ue->ulsch[eNB_id]->o_ACK[1],
|
||||
ue->ulsch[eNB_id]->harq_processes[harq_pid]->O_ACK);
|
||||
}
|
||||
@@ -1632,8 +1636,8 @@ void ue_ulsch_uespec_procedures(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB
|
||||
T(T_UE_PHY_PUSCH_TX_POWER, T_INT(eNB_id),T_INT(Mod_id), T_INT(frame_tx%1024), T_INT(subframe_tx),T_INT(ue->tx_power_dBm[subframe_tx]),
|
||||
T_INT(tx_amp),T_INT(ue->ulsch[eNB_id]->f_pusch),T_INT(get_PL(Mod_id,0,eNB_id)),T_INT(nb_rb));
|
||||
#endif
|
||||
LOG_D(PHY,"[UE %d][PUSCH %d] Frame %d subframe %d, generating PUSCH, Po_PUSCH: %d dBm (max %d dBm), amp %d\n",
|
||||
Mod_id,harq_pid,frame_tx,subframe_tx,ue->tx_power_dBm[subframe_tx],ue->tx_power_max_dBm, tx_amp);
|
||||
LOG_D(PHY,"[UE %d][PUSCH %d] AbsSubFrame %d.%d, generating PUSCH, Po_PUSCH: %d dBm (max %d dBm), amp %d\n",
|
||||
Mod_id,harq_pid,frame_tx%1024,subframe_tx,ue->tx_power_dBm[subframe_tx],ue->tx_power_max_dBm, tx_amp);
|
||||
start_meas(&ue->ulsch_modulation_stats);
|
||||
ulsch_modulation(ue->common_vars.txdataF,
|
||||
tx_amp,
|
||||
@@ -1935,7 +1939,8 @@ void ue_pucch_procedures(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,uin
|
||||
&pucch_payload,
|
||||
&len);
|
||||
|
||||
LOG_D(PHY,"PUCCH feedback AbsSubframe %d.%d SR %d NbCW %d AckNack %d.%d CQI %d RI %d format %d pucch_resource %d pucch_payload %d %d \n", frame_tx, subframe_tx, SR_payload, nb_cw, pucch_ack_payload[0], pucch_ack_payload[1], cqi_status, ri_status, format, pucch_resource,pucch_payload[0],pucch_payload[1]);
|
||||
LOG_D(PHY,"PUCCH feedback AbsSubframe %d.%d SR %d NbCW %d AckNack %d.%d CQI %d RI %d format %d pucch_resource %d pucch_payload %d %d \n",
|
||||
frame_tx%1024, subframe_tx, SR_payload, nb_cw, pucch_ack_payload[0], pucch_ack_payload[1], cqi_status, ri_status, format, pucch_resource,pucch_payload[0],pucch_payload[1]);
|
||||
|
||||
|
||||
// Part - IV
|
||||
|
||||
@@ -408,7 +408,7 @@ static inline void printMeas(char * txt, Meas *M, int period) {
|
||||
M->iterations,
|
||||
M->maxArray[1],M->maxArray[2], M->maxArray[3],M->maxArray[4], M->maxArray[5],
|
||||
M->maxArray[6],M->maxArray[7], M->maxArray[8],M->maxArray[9],M->maxArray[10]);
|
||||
LOG_W(PHY,txt2);
|
||||
LOG_W(PHY,"%s",txt2);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+31
@@ -0,0 +1,31 @@
|
||||
|
||||
#!/bin/bash
|
||||
# Installation:
|
||||
# cp pre-commit .git/hooks
|
||||
# chmod +x .git/hooks/pre-commit
|
||||
|
||||
OPTIONS="--convert-tabs --indent=spaces=2 --indent-switches --indent-col1-comments --break-blocks --delete-empty-lines --align-pointer=name --keep-one-line-blocks --keep-one-line-statements --lineend=linux"
|
||||
|
||||
RETURN=0
|
||||
ASTYLE=$(which astyle)
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "[!] astyle not installed. Unable to check source file format policy." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
FILES=`git diff --cached --name-only --diff-filter=ACMR | grep -E "\.(c|cpp|h)$"`
|
||||
for FILE in $FILES; do
|
||||
$ASTYLE $OPTIONS < $FILE | cmp -s $FILE -
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "[!] $FILE does not respect the agreed coding style." >&2
|
||||
RETURN=1
|
||||
fi
|
||||
done
|
||||
|
||||
if [ $RETURN -eq 1 ]; then
|
||||
echo "" >&2
|
||||
echo "Make sure you have run astyle with the following options:" >&2
|
||||
echo $OPTIONS >&2
|
||||
fi
|
||||
|
||||
exit $RETURN
|
||||
@@ -674,12 +674,11 @@ void *UE_thread(void *arg) {
|
||||
rxp[i] = (void*)&dummy_rx[i][0];
|
||||
for (int sf=0; sf<10; sf++)
|
||||
// printf("Reading dummy sf %d\n",sf);
|
||||
AssertFatal ( UE->frame_parms.samples_per_tti ==
|
||||
UE->rfdevice.trx_read_func(&UE->rfdevice,
|
||||
UE->rfdevice.trx_read_func(&UE->rfdevice,
|
||||
×tamp,
|
||||
rxp,
|
||||
UE->frame_parms.samples_per_tti,
|
||||
UE->frame_parms.nb_antennas_rx), "");
|
||||
UE->frame_parms.nb_antennas_rx);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -731,6 +730,9 @@ void *UE_thread(void *arg) {
|
||||
readBlockSize=UE->frame_parms.samples_per_tti;
|
||||
writeBlockSize=UE->frame_parms.samples_per_tti;
|
||||
} else {
|
||||
// set TO compensation to zero
|
||||
UE->rx_offset_diff = 0;
|
||||
// compute TO compensation that should be applied for this frame
|
||||
if ( UE->rx_offset < 5*UE->frame_parms.samples_per_tti &&
|
||||
UE->rx_offset > 0 )
|
||||
UE->rx_offset_diff = -1 ;
|
||||
@@ -738,7 +740,7 @@ void *UE_thread(void *arg) {
|
||||
UE->rx_offset < 10*UE->frame_parms.samples_per_tti )
|
||||
UE->rx_offset_diff = 1;
|
||||
|
||||
LOG_D(PHY,"SET rx_off_diff to %d\n",UE->rx_offset_diff);
|
||||
LOG_D(PHY,"AbsSubframe %d.%d SET rx_off_diff to %d rx_offset %d \n",proc->frame_rx,sub_frame,UE->rx_offset_diff,UE->rx_offset);
|
||||
readBlockSize=UE->frame_parms.samples_per_tti -
|
||||
UE->frame_parms.ofdm_symbol_size -
|
||||
UE->frame_parms.nb_prefix_samples0 -
|
||||
|
||||
Reference in New Issue
Block a user