several fixes to previous commit. First tests in FDD with USRP and UE ok.
This commit is contained in:
@@ -484,6 +484,7 @@ void phy_config_dedicated_eNB_step2(PHY_VARS_eNB *eNB)
|
|||||||
if (physicalConfigDedicated->soundingRS_UL_ConfigDedicated) {
|
if (physicalConfigDedicated->soundingRS_UL_ConfigDedicated) {
|
||||||
if (physicalConfigDedicated->soundingRS_UL_ConfigDedicated->present == SoundingRS_UL_ConfigDedicated_PR_setup) {
|
if (physicalConfigDedicated->soundingRS_UL_ConfigDedicated->present == SoundingRS_UL_ConfigDedicated_PR_setup) {
|
||||||
|
|
||||||
|
eNB->soundingrs_ul_config_dedicated[UE_id].srsConfigDedicatedSetup = 1;
|
||||||
eNB->soundingrs_ul_config_dedicated[UE_id].duration = physicalConfigDedicated->soundingRS_UL_ConfigDedicated->choice.setup.duration;
|
eNB->soundingrs_ul_config_dedicated[UE_id].duration = physicalConfigDedicated->soundingRS_UL_ConfigDedicated->choice.setup.duration;
|
||||||
eNB->soundingrs_ul_config_dedicated[UE_id].cyclicShift = physicalConfigDedicated->soundingRS_UL_ConfigDedicated->choice.setup.cyclicShift;
|
eNB->soundingrs_ul_config_dedicated[UE_id].cyclicShift = physicalConfigDedicated->soundingRS_UL_ConfigDedicated->choice.setup.cyclicShift;
|
||||||
eNB->soundingrs_ul_config_dedicated[UE_id].freqDomainPosition = physicalConfigDedicated->soundingRS_UL_ConfigDedicated->choice.setup.freqDomainPosition;
|
eNB->soundingrs_ul_config_dedicated[UE_id].freqDomainPosition = physicalConfigDedicated->soundingRS_UL_ConfigDedicated->choice.setup.freqDomainPosition;
|
||||||
|
|||||||
@@ -822,9 +822,11 @@ void generate_eNB_ulsch_params(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc,DCI_ALLOC
|
|||||||
LTE_DL_FRAME_PARMS *fp=&eNB->frame_parms;
|
LTE_DL_FRAME_PARMS *fp=&eNB->frame_parms;
|
||||||
int frame = proc->frame_tx;
|
int frame = proc->frame_tx;
|
||||||
int subframe = proc->subframe_tx;
|
int subframe = proc->subframe_tx;
|
||||||
uint16_t srsPeriodicity;
|
uint16_t srsPeriodicity=0;
|
||||||
uint16_t srsOffset;
|
uint16_t srsOffset=0;
|
||||||
|
uint16_t srsConfigIndex=0;
|
||||||
uint16_t do_srs=0;
|
uint16_t do_srs=0;
|
||||||
|
uint16_t is_srs_pos=0;
|
||||||
|
|
||||||
LOG_D(PHY,
|
LOG_D(PHY,
|
||||||
"[eNB %"PRIu8"][PUSCH %"PRIu8"] Frame %d subframe %d UL Frame %"PRIu32", UL Subframe %"PRIu8", Generated ULSCH (format0) DCI (rnti %"PRIx16", dci %"PRIx8"), aggregation %d\n",
|
"[eNB %"PRIu8"][PUSCH %"PRIu8"] Frame %d subframe %d UL Frame %"PRIu32", UL Subframe %"PRIu8", Generated ULSCH (format0) DCI (rnti %"PRIx16", dci %"PRIx8"), aggregation %d\n",
|
||||||
@@ -840,11 +842,18 @@ void generate_eNB_ulsch_params(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc,DCI_ALLOC
|
|||||||
dci_alloc->dci_pdu[0],
|
dci_alloc->dci_pdu[0],
|
||||||
1<<dci_alloc->L);
|
1<<dci_alloc->L);
|
||||||
|
|
||||||
if (is_srs_occasion_common(fp,frame,subframe)) {
|
is_srs_pos = is_srs_occasion_common(fp,pdcch_alloc2ul_frame(fp,frame,subframe),pdcch_alloc2ul_subframe(fp,subframe));
|
||||||
compute_srs_pos(fp->frame_type, eNB->physicalConfigDedicated[UE_id]->soundingRS_UL_ConfigDedicated->choice.setup.srs_ConfigIndex, &srsPeriodicity, &srsOffset);
|
if (is_srs_pos && eNB->soundingrs_ul_config_dedicated[UE_id].srsConfigDedicatedSetup) {
|
||||||
if ((((10*frame+subframe) % srsPeriodicity) == srsOffset))
|
srsConfigIndex = eNB->soundingrs_ul_config_dedicated[UE_id].srs_ConfigIndex;
|
||||||
|
compute_srs_pos(fp->frame_type, srsConfigIndex, &srsPeriodicity, &srsOffset);
|
||||||
|
if ((((10*pdcch_alloc2ul_frame(fp,frame,subframe)+pdcch_alloc2ul_subframe(fp,subframe)) % srsPeriodicity) == srsOffset)) {
|
||||||
do_srs = 1;
|
do_srs = 1;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
LOG_D(PHY,"frame %d (%d), subframe %d (%d), UE_id %d: is_srs_pos %d, do_SRS %d, index %d, period %d, offset %d \n",
|
||||||
|
frame,pdcch_alloc2ul_frame(fp,frame,subframe),subframe,pdcch_alloc2ul_subframe(fp,subframe),
|
||||||
|
UE_id,is_srs_pos,do_srs,srsConfigIndex,srsPeriodicity,srsOffset);
|
||||||
|
|
||||||
generate_eNB_ulsch_params_from_dci(eNB,
|
generate_eNB_ulsch_params_from_dci(eNB,
|
||||||
proc,
|
proc,
|
||||||
@@ -2093,6 +2102,7 @@ void pucch_procedures(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc,int UE_id,int harq
|
|||||||
uint16_t srsPeriodicity;
|
uint16_t srsPeriodicity;
|
||||||
uint16_t srsOffset;
|
uint16_t srsOffset;
|
||||||
uint16_t do_srs=0;
|
uint16_t do_srs=0;
|
||||||
|
uint16_t is_srs_pos=0;
|
||||||
|
|
||||||
if ((eNB->dlsch[UE_id][0]) &&
|
if ((eNB->dlsch[UE_id][0]) &&
|
||||||
(eNB->dlsch[UE_id][0]->rnti>0) &&
|
(eNB->dlsch[UE_id][0]->rnti>0) &&
|
||||||
@@ -2104,11 +2114,13 @@ void pucch_procedures(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc,int UE_id,int harq
|
|||||||
|
|
||||||
// check if there is SRS and we have to use shortened format
|
// check if there is SRS and we have to use shortened format
|
||||||
// TODO: check for exceptions in transmission of SRS together with ACK/NACK
|
// TODO: check for exceptions in transmission of SRS together with ACK/NACK
|
||||||
if (is_srs_occasion_common(fp,frame,subframe)) {
|
is_srs_pos = is_srs_occasion_common(fp,pdcch_alloc2ul_frame(fp,frame,subframe),pdcch_alloc2ul_subframe(fp,subframe));
|
||||||
compute_srs_pos(fp->frame_type, eNB->physicalConfigDedicated[UE_id]->soundingRS_UL_ConfigDedicated->choice.setup.srs_ConfigIndex, &srsPeriodicity, &srsOffset);
|
if (is_srs_pos && eNB->soundingrs_ul_config_dedicated[UE_id].srsConfigDedicatedSetup ) {
|
||||||
if ((((10*frame+subframe) % srsPeriodicity) == srsOffset))
|
compute_srs_pos(fp->frame_type, eNB->soundingrs_ul_config_dedicated[UE_id].srs_ConfigIndex, &srsPeriodicity, &srsOffset);
|
||||||
|
if ((((10*pdcch_alloc2ul_frame(fp,frame,subframe)+pdcch_alloc2ul_subframe(fp,subframe)) % srsPeriodicity) == srsOffset)) {
|
||||||
do_srs = 1;
|
do_srs = 1;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Now ACK/NAK
|
// Now ACK/NAK
|
||||||
// First check subframe_tx flag for earlier subframes
|
// First check subframe_tx flag for earlier subframes
|
||||||
|
|||||||
@@ -1593,7 +1593,7 @@ do_RRCConnectionSetup(
|
|||||||
SoundingRS_UL_ConfigDedicated__setup__srs_HoppingBandwidth_hbw0;
|
SoundingRS_UL_ConfigDedicated__setup__srs_HoppingBandwidth_hbw0;
|
||||||
physicalConfigDedicated2->soundingRS_UL_ConfigDedicated->choice.setup.freqDomainPosition=0;
|
physicalConfigDedicated2->soundingRS_UL_ConfigDedicated->choice.setup.freqDomainPosition=0;
|
||||||
physicalConfigDedicated2->soundingRS_UL_ConfigDedicated->choice.setup.duration=1;
|
physicalConfigDedicated2->soundingRS_UL_ConfigDedicated->choice.setup.duration=1;
|
||||||
physicalConfigDedicated2->soundingRS_UL_ConfigDedicated->choice.setup.srs_ConfigIndex=45;
|
physicalConfigDedicated2->soundingRS_UL_ConfigDedicated->choice.setup.srs_ConfigIndex=19;
|
||||||
physicalConfigDedicated2->soundingRS_UL_ConfigDedicated->choice.setup.transmissionComb=0;
|
physicalConfigDedicated2->soundingRS_UL_ConfigDedicated->choice.setup.transmissionComb=0;
|
||||||
physicalConfigDedicated2->soundingRS_UL_ConfigDedicated->choice.setup.cyclicShift=
|
physicalConfigDedicated2->soundingRS_UL_ConfigDedicated->choice.setup.cyclicShift=
|
||||||
SoundingRS_UL_ConfigDedicated__setup__cyclicShift_cs0;
|
SoundingRS_UL_ConfigDedicated__setup__cyclicShift_cs0;
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ eNBs =
|
|||||||
|
|
||||||
mobile_country_code = "208";
|
mobile_country_code = "208";
|
||||||
|
|
||||||
mobile_network_code = "94";
|
mobile_network_code = "92";
|
||||||
|
|
||||||
////////// Physical parameters:
|
////////// Physical parameters:
|
||||||
|
|
||||||
@@ -62,10 +62,10 @@ eNBs =
|
|||||||
pusch_nDMRS1 = 1;
|
pusch_nDMRS1 = 1;
|
||||||
phich_duration = "NORMAL";
|
phich_duration = "NORMAL";
|
||||||
phich_resource = "ONESIXTH";
|
phich_resource = "ONESIXTH";
|
||||||
srs_enable = "ENBABLE";
|
srs_enable = "ENABLE";
|
||||||
srs_BandwidthConfig = 2;
|
srs_BandwidthConfig = 2;
|
||||||
srs_SubframeConfig = 3;
|
srs_SubframeConfig = 3;
|
||||||
srs_ackNackST = "FALSE";
|
srs_ackNackST = "DISABLE";
|
||||||
srs_MaxUpPts = "DISABLE";
|
srs_MaxUpPts = "DISABLE";
|
||||||
|
|
||||||
pusch_p0_Nominal = -90;
|
pusch_p0_Nominal = -90;
|
||||||
@@ -137,7 +137,7 @@ eNBs =
|
|||||||
|
|
||||||
////////// MME parameters:
|
////////// MME parameters:
|
||||||
|
|
||||||
mme_ip_address = ( { ipv4 = "192.168.12.70";
|
mme_ip_address = ( { ipv4 = "192.168.12.26";
|
||||||
ipv6 = "192:168:30::17";
|
ipv6 = "192:168:30::17";
|
||||||
active = "yes";
|
active = "yes";
|
||||||
preference = "ipv4";
|
preference = "ipv4";
|
||||||
@@ -147,10 +147,10 @@ eNBs =
|
|||||||
NETWORK_INTERFACES :
|
NETWORK_INTERFACES :
|
||||||
{
|
{
|
||||||
|
|
||||||
ENB_INTERFACE_NAME_FOR_S1_MME = "eth1";
|
ENB_INTERFACE_NAME_FOR_S1_MME = "eth6";
|
||||||
ENB_IPV4_ADDRESS_FOR_S1_MME = "192.168.12.147/24";
|
ENB_IPV4_ADDRESS_FOR_S1_MME = "192.168.12.82/24";
|
||||||
ENB_INTERFACE_NAME_FOR_S1U = "eth1";
|
ENB_INTERFACE_NAME_FOR_S1U = "eth6";
|
||||||
ENB_IPV4_ADDRESS_FOR_S1U = "192.168.12.147/24";
|
ENB_IPV4_ADDRESS_FOR_S1U = "192.168.12.82/24";
|
||||||
ENB_PORT_FOR_S1U = 2152; # Spec 2152
|
ENB_PORT_FOR_S1U = 2152; # Spec 2152
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user