Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
O
OpenXG UE
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Michael Black
OpenXG UE
Commits
7cedbaec
Commit
7cedbaec
authored
Feb 01, 2017
by
gabrielC
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/issue200_ulharqfix' into develop_integration_w05
parents
ca04ca62
bdc9243a
Changes
4
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
27 additions
and
23 deletions
+27
-23
openair1/SCHED/phy_procedures_lte_common.c
openair1/SCHED/phy_procedures_lte_common.c
+3
-0
openair1/SCHED/phy_procedures_lte_ue.c
openair1/SCHED/phy_procedures_lte_ue.c
+19
-20
openair2/RRC/LITE/rrc_UE.c
openair2/RRC/LITE/rrc_UE.c
+2
-2
openair3/NAS/COMMON/EMM/MSG/AttachAccept.c
openair3/NAS/COMMON/EMM/MSG/AttachAccept.c
+3
-1
No files found.
openair1/SCHED/phy_procedures_lte_common.c
View file @
7cedbaec
...
@@ -339,6 +339,9 @@ uint8_t get_reset_ack(LTE_DL_FRAME_PARMS *frame_parms,
...
@@ -339,6 +339,9 @@ uint8_t get_reset_ack(LTE_DL_FRAME_PARMS *frame_parms,
o_ACK
[
0
]
=
harq_ack
[
subframe_dl0
].
ack
;
o_ACK
[
0
]
=
harq_ack
[
subframe_dl0
].
ack
;
status
=
harq_ack
[
subframe_dl0
].
send_harq_status
;
status
=
harq_ack
[
subframe_dl0
].
send_harq_status
;
if
(
do_reset
)
harq_ack
[
subframe_dl0
].
send_harq_status
=
0
;
//printf("get_ack: Getting ACK/NAK for PDSCH (subframe %d) => %d\n",subframe_dl,o_ACK[0]);
//printf("get_ack: Getting ACK/NAK for PDSCH (subframe %d) => %d\n",subframe_dl,o_ACK[0]);
}
else
{
}
else
{
switch
(
frame_parms
->
tdd_config
)
{
switch
(
frame_parms
->
tdd_config
)
{
...
...
openair1/SCHED/phy_procedures_lte_ue.c
View file @
7cedbaec
...
@@ -1184,11 +1184,12 @@ void ue_prach_procedures(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,uin
...
@@ -1184,11 +1184,12 @@ void ue_prach_procedures(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,uin
ue
->
prach_resources
[
eNB_id
]
->
ra_PreambleIndex
=
19
;
ue
->
prach_resources
[
eNB_id
]
->
ra_PreambleIndex
=
19
;
}
}
LOG_I
(
PHY
,
"[UE %d][RAPROC] Frame %d, Subframe %d : Generating PRACH, preamble %d, P0_PRACH %d, TARGET_RECEIVED_POWER %d dBm, PRACH TDD Resource index %d, RA-RNTI %d
\n
"
,
LOG_I
(
PHY
,
"[UE %d][RAPROC] Frame %d, Subframe %d : Generating PRACH, preamble %d,
PL %d,
P0_PRACH %d, TARGET_RECEIVED_POWER %d dBm, PRACH TDD Resource index %d, RA-RNTI %d
\n
"
,
ue
->
Mod_id
,
ue
->
Mod_id
,
frame_tx
,
frame_tx
,
subframe_tx
,
subframe_tx
,
ue
->
prach_resources
[
eNB_id
]
->
ra_PreambleIndex
,
ue
->
prach_resources
[
eNB_id
]
->
ra_PreambleIndex
,
get_PL
(
ue
->
Mod_id
,
ue
->
CC_id
,
eNB_id
),
ue
->
tx_power_dBm
[
subframe_tx
],
ue
->
tx_power_dBm
[
subframe_tx
],
ue
->
prach_resources
[
eNB_id
]
->
ra_PREAMBLE_RECEIVED_TARGET_POWER
,
ue
->
prach_resources
[
eNB_id
]
->
ra_PREAMBLE_RECEIVED_TARGET_POWER
,
ue
->
prach_resources
[
eNB_id
]
->
ra_TDD_map_index
,
ue
->
prach_resources
[
eNB_id
]
->
ra_TDD_map_index
,
...
@@ -1377,7 +1378,7 @@ void ue_ulsch_uespec_procedures(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB
...
@@ -1377,7 +1378,7 @@ void ue_ulsch_uespec_procedures(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB
ue
->
ulsch
[
eNB_id
]
->
harq_processes
[
harq_pid
]
->
round
=
0
;
ue
->
ulsch
[
eNB_id
]
->
harq_processes
[
harq_pid
]
->
round
=
0
;
}
}
ack_status
=
g
et_ack
(
&
ue
->
frame_parms
,
ack_status
=
res
et_ack
(
&
ue
->
frame_parms
,
ue
->
dlsch
[
eNB_id
][
0
]
->
harq_ack
,
ue
->
dlsch
[
eNB_id
][
0
]
->
harq_ack
,
subframe_tx
,
subframe_tx
,
ue
->
ulsch
[
eNB_id
]
->
o_ACK
);
ue
->
ulsch
[
eNB_id
]
->
o_ACK
);
...
@@ -1393,14 +1394,7 @@ void ue_ulsch_uespec_procedures(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB
...
@@ -1393,14 +1394,7 @@ void ue_ulsch_uespec_procedures(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB
// check if we received a PDSCH at subframe_tx - 4
// check if we received a PDSCH at subframe_tx - 4
// ==> send ACK/NACK on PUSCH
// ==> send ACK/NACK on PUSCH
if
(
(
ue
->
dlsch
[
eNB_id
][
0
]
->
harq_ack
[
proc
->
subframe_rx
].
send_harq_status
)
==
1
)
ue
->
ulsch
[
eNB_id
]
->
harq_processes
[
harq_pid
]
->
O_ACK
=
ack_status
;
{
ue
->
ulsch
[
eNB_id
]
->
harq_processes
[
harq_pid
]
->
O_ACK
=
1
;
}
else
{
ue
->
ulsch
[
eNB_id
]
->
harq_processes
[
harq_pid
]
->
O_ACK
=
0
;
}
#if T_TRACER
#if T_TRACER
if
(
ue
->
ulsch
[
eNB_id
]
->
o_ACK
[
0
])
if
(
ue
->
ulsch
[
eNB_id
]
->
o_ACK
[
0
])
...
@@ -1710,6 +1704,7 @@ void ue_pucch_procedures(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,uin
...
@@ -1710,6 +1704,7 @@ void ue_pucch_procedures(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,uin
int
tx_amp
;
int
tx_amp
;
int16_t
Po_PUCCH
;
int16_t
Po_PUCCH
;
uint8_t
ack_status
=
0
;
uint8_t
ack_status
=
0
;
uint8_t
ack_sr_generated
=
0
;
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_UE_TX_PUCCH
,
VCD_FUNCTION_IN
);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_UE_TX_PUCCH
,
VCD_FUNCTION_IN
);
...
@@ -1781,6 +1776,7 @@ void ue_pucch_procedures(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,uin
...
@@ -1781,6 +1776,7 @@ void ue_pucch_procedures(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,uin
// we need to transmit ACK/NAK in this subframe
// we need to transmit ACK/NAK in this subframe
ue
->
generate_ul_signal
[
eNB_id
]
=
1
;
ue
->
generate_ul_signal
[
eNB_id
]
=
1
;
ack_sr_generated
=
1
;
if
((
frame_parms
->
frame_type
==
TDD
)
&&
(
SR_payload
>
0
))
{
if
((
frame_parms
->
frame_type
==
TDD
)
&&
(
SR_payload
>
0
))
{
format
=
pucch_format1b
;
format
=
pucch_format1b
;
...
@@ -1882,6 +1878,7 @@ void ue_pucch_procedures(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,uin
...
@@ -1882,6 +1878,7 @@ void ue_pucch_procedures(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,uin
}
}
}
else
if
(
SR_payload
==
1
)
{
// no ACK/NAK but SR is triggered by MAC
}
else
if
(
SR_payload
==
1
)
{
// no ACK/NAK but SR is triggered by MAC
ack_sr_generated
=
1
;
if
(
ue
->
mac_enabled
==
1
)
{
if
(
ue
->
mac_enabled
==
1
)
{
Po_PUCCH
=
pucch_power_cntl
(
ue
,
proc
,
subframe_tx
,
eNB_id
,
pucch_format1
);
Po_PUCCH
=
pucch_power_cntl
(
ue
,
proc
,
subframe_tx
,
eNB_id
,
pucch_format1
);
}
}
...
@@ -1940,7 +1937,7 @@ void ue_pucch_procedures(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,uin
...
@@ -1940,7 +1937,7 @@ void ue_pucch_procedures(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,uin
// PUCCH 2x
// PUCCH 2x
if
(
ue
->
generate_ul_signal
[
eNB_id
]
==
0
)
{
// we have not generated ACK/NAK/SR in this subframe
if
(
ack_sr_generated
==
0
)
{
// we have not generated ACK/NAK/SR in this subframe
n2_pucch
=
ue
->
cqi_report_config
[
eNB_id
].
CQI_ReportPeriodic
.
cqi_PUCCH_ResourceIndex
;
n2_pucch
=
ue
->
cqi_report_config
[
eNB_id
].
CQI_ReportPeriodic
.
cqi_PUCCH_ResourceIndex
;
// only use format2 for now, i.e. now ACK/NAK - CQI multiplexing
// only use format2 for now, i.e. now ACK/NAK - CQI multiplexing
...
@@ -1971,14 +1968,6 @@ void ue_pucch_procedures(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,uin
...
@@ -1971,14 +1968,6 @@ void ue_pucch_procedures(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,uin
T
(
T_UE_PHY_PUCCH_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
(
T_UE_PHY_PUCCH_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
->
dlsch
[
eNB_id
][
0
]
->
g_pucch
),
T_INT
(
get_PL
(
ue
->
Mod_id
,
ue
->
CC_id
,
eNB_id
)));
T_INT
(
tx_amp
),
T_INT
(
ue
->
dlsch
[
eNB_id
][
0
]
->
g_pucch
),
T_INT
(
get_PL
(
ue
->
Mod_id
,
ue
->
CC_id
,
eNB_id
)));
#endif
#endif
LOG_D
(
PHY
,
"[UE %d][RNTI %x] AbsSubFrame %d.%d Generating PUCCH 2 (CQI), n2_pucch %d, Po_PUCCH %d, isShortenPucch %d, amp %d
\n
"
,
Mod_id
,
ue
->
dlsch
[
eNB_id
][
0
]
->
rnti
,
frame_tx
,
subframe_tx
,
n2_pucch
,
Po_PUCCH
,
isShortenPucch
,
tx_amp
);
int
len
;
int
len
;
// get the payload : < 12 bits, returned in len
// get the payload : < 12 bits, returned in len
...
@@ -1997,6 +1986,16 @@ void ue_pucch_procedures(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,uin
...
@@ -1997,6 +1986,16 @@ void ue_pucch_procedures(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,uin
ue
->
pdcch_vars
[
eNB_id
]
->
crnti
);
ue
->
pdcch_vars
[
eNB_id
]
->
crnti
);
ue
->
generate_ul_signal
[
eNB_id
]
=
1
;
ue
->
generate_ul_signal
[
eNB_id
]
=
1
;
LOG_D
(
PHY
,
"[UE %d][RNTI %x] AbsSubFrame %d.%d Generating PUCCH 2 (CQI %d), n2_pucch %d, Po_PUCCH %d, isShortenPucch %d, amp %d
\n
"
,
Mod_id
,
ue
->
dlsch
[
eNB_id
][
0
]
->
rnti
,
frame_tx
,
subframe_tx
,
CQI_payload
,
n2_pucch
,
Po_PUCCH
,
isShortenPucch
,
tx_amp
);
}
}
// Periodic RI report
// Periodic RI report
else
if
((
ue
->
cqi_report_config
[
eNB_id
].
CQI_ReportPeriodic
.
ri_ConfigIndex
>
0
)
&&
else
if
((
ue
->
cqi_report_config
[
eNB_id
].
CQI_ReportPeriodic
.
ri_ConfigIndex
>
0
)
&&
...
...
openair2/RRC/LITE/rrc_UE.c
View file @
7cedbaec
...
@@ -3131,9 +3131,9 @@ static void dump_sib2( SystemInformationBlockType2_t *sib2 )
...
@@ -3131,9 +3131,9 @@ static void dump_sib2( SystemInformationBlockType2_t *sib2 )
sib2
->
radioResourceConfigCommon
.
soundingRS_UL_ConfigCommon
.
choice
.
setup
.
srs_SubframeConfig
);
sib2
->
radioResourceConfigCommon
.
soundingRS_UL_ConfigCommon
.
choice
.
setup
.
srs_SubframeConfig
);
LOG_I
(
RRC
,
"radioResourceConfigCommon.soundingRS_UL_ConfigCommon.choice.setup.ackNackSRS_SimultaneousTransmission : %d
\n
"
,
LOG_I
(
RRC
,
"radioResourceConfigCommon.soundingRS_UL_ConfigCommon.choice.setup.ackNackSRS_SimultaneousTransmission : %d
\n
"
,
sib2
->
radioResourceConfigCommon
.
soundingRS_UL_ConfigCommon
.
choice
.
setup
.
ackNackSRS_SimultaneousTransmission
);
sib2
->
radioResourceConfigCommon
.
soundingRS_UL_ConfigCommon
.
choice
.
setup
.
ackNackSRS_SimultaneousTransmission
);
LOG_I
(
RRC
,
"radioResourceConfigCommon.soundingRS_UL_ConfigCommon.choice.setup.srs_MaxUpPts : %ld
\n
"
,
//
LOG_I( RRC, "radioResourceConfigCommon.soundingRS_UL_ConfigCommon.choice.setup.srs_MaxUpPts : %ld\n",
/* TODO: check that it's okay to access [0] */
/* TODO: check that it's okay to access [0] */
sib2
->
radioResourceConfigCommon
.
soundingRS_UL_ConfigCommon
.
choice
.
setup
.
srs_MaxUpPts
[
0
]
);
//
sib2->radioResourceConfigCommon.soundingRS_UL_ConfigCommon.choice.setup.srs_MaxUpPts[0] );
}
}
// uplinkPowerControlCommon
// uplinkPowerControlCommon
...
...
openair3/NAS/COMMON/EMM/MSG/AttachAccept.c
View file @
7cedbaec
...
@@ -28,6 +28,7 @@
...
@@ -28,6 +28,7 @@
#include "TLVEncoder.h"
#include "TLVEncoder.h"
#include "TLVDecoder.h"
#include "TLVDecoder.h"
#include "AttachAccept.h"
#include "AttachAccept.h"
#include "assertions.h"
int
decode_attach_accept
(
attach_accept_msg
*
attach_accept
,
uint8_t
*
buffer
,
uint32_t
len
)
int
decode_attach_accept
(
attach_accept_msg
*
attach_accept
,
uint8_t
*
buffer
,
uint32_t
len
)
{
{
...
@@ -59,7 +60,7 @@ int decode_attach_accept(attach_accept_msg *attach_accept, uint8_t *buffer, uint
...
@@ -59,7 +60,7 @@ int decode_attach_accept(attach_accept_msg *attach_accept, uint8_t *buffer, uint
decoded
+=
decoded_result
;
decoded
+=
decoded_result
;
/* Decoding optional fields */
/* Decoding optional fields */
while
(
len
-
decoded
>
0
)
{
while
(
((
int32_t
)
len
-
(
int32_t
)
decoded
)
>
0
)
{
uint8_t
ieiDecoded
=
*
(
buffer
+
decoded
);
uint8_t
ieiDecoded
=
*
(
buffer
+
decoded
);
/* Type | value iei are below 0x80 so just return the first 4 bits */
/* Type | value iei are below 0x80 so just return the first 4 bits */
...
@@ -189,6 +190,7 @@ int decode_attach_accept(attach_accept_msg *attach_accept, uint8_t *buffer, uint
...
@@ -189,6 +190,7 @@ int decode_attach_accept(attach_accept_msg *attach_accept, uint8_t *buffer, uint
default:
default:
errorCodeDecoder
=
TLV_DECODE_UNEXPECTED_IEI
;
errorCodeDecoder
=
TLV_DECODE_UNEXPECTED_IEI
;
LOG_TRACE
(
WARNING
,
"DECODE_UNEXPECTED_IEI %x (4 bits)"
,
ieiDecoded
);
LOG_TRACE
(
WARNING
,
"DECODE_UNEXPECTED_IEI %x (4 bits)"
,
ieiDecoded
);
AssertFatal
(
0
,
" "
);
return
TLV_DECODE_UNEXPECTED_IEI
;
return
TLV_DECODE_UNEXPECTED_IEI
;
}
}
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment