Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
O
OpenXG-RAN
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
常顺宇
OpenXG-RAN
Commits
f368d46e
Commit
f368d46e
authored
Apr 07, 2021
by
masayuki.harada
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add SRB1 in nrUE.
Temporary fixes
parent
c49dac96
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
73 additions
and
18 deletions
+73
-18
openair1/PHY/NR_TRANSPORT/nr_ulsch_demodulation.c
openair1/PHY/NR_TRANSPORT/nr_ulsch_demodulation.c
+11
-0
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_ulsch.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_ulsch.c
+6
-1
openair2/RRC/NR_UE/L2_interface_ue.c
openair2/RRC/NR_UE/L2_interface_ue.c
+3
-3
openair2/RRC/NR_UE/rrc_UE.c
openair2/RRC/NR_UE/rrc_UE.c
+53
-14
No files found.
openair1/PHY/NR_TRANSPORT/nr_ulsch_demodulation.c
View file @
f368d46e
...
...
@@ -1351,6 +1351,17 @@ int nr_rx_pusch(PHY_VARS_gNB *gNB,
#else
int
off
=
0
;
#endif
double
p_shift
=
0
.
004761
90476190476
;
short
*
IQ_temp
=
(
short
*
)
&
gNB
->
pusch_vars
[
ulsch_id
]
->
rxdataF_comp
[
0
][
rel15_ul
->
start_symbol_index
*
(
off
+
rel15_ul
->
rb_size
*
NR_NB_SC_PER_RB
)];
double
ttt
[
2
];
if
(
rel15_ul
->
num_dmrs_cdm_grps_no_data
==
1
){
for
(
int
pp
=
0
;
pp
<
rel15_ul
->
nr_of_symbols
*
rel15_ul
->
rb_size
*
NR_NB_SC_PER_RB
;
pp
++
){
ttt
[
0
]
=
(
double
)
IQ_temp
[
pp
*
2
]
*
cos
(
pp
*
p_shift
)
-
(
double
)
IQ_temp
[
pp
*
2
+
1
]
*
sin
(
pp
*
p_shift
);
ttt
[
1
]
=
(
double
)
IQ_temp
[
pp
*
2
]
*
sin
(
pp
*
p_shift
)
+
(
double
)
IQ_temp
[
pp
*
2
+
1
]
*
cos
(
pp
*
p_shift
);
IQ_temp
[
pp
*
2
]
=
(
short
)
ttt
[
0
];
IQ_temp
[
pp
*
2
+
1
]
=
(
short
)
ttt
[
1
];
}
}
uint32_t
rxdataF_ext_offset
=
0
;
for
(
uint8_t
i
=
rel15_ul
->
start_symbol_index
;
i
<
(
rel15_ul
->
start_symbol_index
+
rel15_ul
->
nr_of_symbols
);
i
++
)
{
start_meas
(
&
gNB
->
ulsch_llr_stats
);
...
...
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_ulsch.c
View file @
f368d46e
...
...
@@ -661,6 +661,7 @@ void pf_ul(module_id_t module_id,
NR_UE_sched_ctrl_t
*
sched_ctrl
=
&
UE_info
->
UE_sched_ctrl
[
UE_id
];
if
(
sched_ctrl
->
ra_state
==
1
)
continue
;
int
rbStart
=
NRRIV2PRBOFFSET
(
sched_ctrl
->
active_bwp
->
bwp_Common
->
genericParameters
.
locationAndBandwidth
,
MAX_BWP_SIZE
);
rbStart
+=
27
;
const
uint16_t
bwpSize
=
NRRIV2BW
(
sched_ctrl
->
active_ubwp
->
bwp_Common
->
genericParameters
.
locationAndBandwidth
,
MAX_BWP_SIZE
);
/* Calculate throughput */
...
...
@@ -1145,7 +1146,11 @@ void nr_schedule_ulsch(module_id_t module_id,
/* PUSCH PDU */
pusch_pdu
->
pusch_data
.
rv_index
=
nr_rv_round_map
[
cur_harq
->
round
];
pusch_pdu
->
pusch_data
.
harq_process_id
=
harq_id
;
pusch_pdu
->
pusch_data
.
new_data_indicator
=
cur_harq
->
ndi
;
if
(
cur_harq
->
round
==
0
)
{
pusch_pdu
->
pusch_data
.
new_data_indicator
=
1
-
cur_harq
->
ndi
;
}
else
{
pusch_pdu
->
pusch_data
.
new_data_indicator
=
cur_harq
->
ndi
;
}
pusch_pdu
->
pusch_data
.
tb_size
=
sched_pusch
->
tb_size
;
pusch_pdu
->
pusch_data
.
num_cb
=
0
;
//CBG not supported
...
...
openair2/RRC/NR_UE/L2_interface_ue.c
View file @
f368d46e
...
...
@@ -149,7 +149,7 @@ int8_t nr_mac_rrc_data_req_ue(const module_id_t Mod_idP,
}
uint8_t
rrc_data_req_ue
(
nr_
rrc_data_req_ue
(
const
protocol_ctxt_t
*
const
ctxt_pP
,
const
rb_id_t
rb_idP
,
const
mui_t
muiP
,
...
...
@@ -163,11 +163,11 @@ rrc_data_req_ue(
// Uses a new buffer to avoid issue with PDCP buffer content that could be changed by PDCP (asynchronous message handling).
uint8_t
*
message_buffer
;
message_buffer
=
itti_malloc
(
TASK_RRC_UE
,
TASK_RRC_
NR
UE
,
TASK_PDCP_UE
,
sdu_sizeP
);
memcpy
(
message_buffer
,
buffer_pP
,
sdu_sizeP
);
message_p
=
itti_alloc_new_message
(
TASK_RRC_UE
,
0
,
RRC_DCCH_DATA_REQ
);
message_p
=
itti_alloc_new_message
(
TASK_RRC_
NR
UE
,
0
,
RRC_DCCH_DATA_REQ
);
RRC_DCCH_DATA_REQ
(
message_p
).
frame
=
ctxt_pP
->
frame
;
RRC_DCCH_DATA_REQ
(
message_p
).
enb_flag
=
ctxt_pP
->
enb_flag
;
RRC_DCCH_DATA_REQ
(
message_p
).
rb_id
=
rb_idP
;
...
...
openair2/RRC/NR_UE/rrc_UE.c
View file @
f368d46e
...
...
@@ -198,8 +198,7 @@ extern rlc_op_status_t nr_rrc_rlc_config_asn1_req (const protocol_ctxt_t * con
const
NR_DRB_ToAddModList_t
*
const
drb2add_listP
,
const
NR_DRB_ToReleaseList_t
*
const
drb2release_listP
,
const
LTE_PMCH_InfoList_r9_t
*
const
pmch_InfoList_r9_pP
,
struct
NR_CellGroupConfig__rlc_BearerToAddModList
*
rlc_srb_bearer2add_list
,
struct
NR_CellGroupConfig__rlc_BearerToAddModList
*
rlc_drb_bearer2add_list
);
struct
NR_CellGroupConfig__rlc_BearerToAddModList
*
rlc_bearer2add_list
);
// from LTE-RRC DL-DCCH RRCConnectionReconfiguration nr-secondary-cell-group-config (encoded)
int8_t
nr_rrc_ue_decode_secondary_cellgroup_config
(
...
...
@@ -1299,7 +1298,46 @@ nr_rrc_ue_process_masterCellGroup(
//TODO (perform the BH RLC channel addition/modification as specified in 5.3.5.5.11)
}
}
/*--------------------------------------------------*/
static
void
rrc_ue_generate_RRCSetup_procedure
(
const
protocol_ctxt_t
*
const
ctxt_pP
,
uint8_t
gNB_index
,
OCTET_STRING_t
*
masterCellGroup
,
NR_RadioBearerConfig_t
*
const
radioBearerConfig
){
NR_CellGroupConfig_t
*
cellGroupConfig
;
asn_dec_rval_t
dec_rval
;
dec_rval
=
uper_decode
(
NULL
,
&
asn_DEF_NR_CellGroupConfig
,
(
void
**
)
&
cellGroupConfig
,
masterCellGroup
->
buf
,
masterCellGroup
->
size
,
0
,
0
);
if
(
dec_rval
.
code
!=
RC_OK
)
{
LOG_E
(
RRC
,
"could not decode RRCSetup
\n
"
);
return
;
}
nr_rrc_pdcp_config_asn1_req
(
ctxt_pP
,
radioBearerConfig
->
srb_ToAddModList
,
NULL
,
NULL
,
0xff
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
);
nr_rrc_rlc_config_asn1_req
(
ctxt_pP
,
radioBearerConfig
->
srb_ToAddModList
,
NULL
,
NULL
,
(
LTE_PMCH_InfoList_r9_t
*
)
NULL
,
cellGroupConfig
->
rlc_BearerToAddModList
);
}
/*--------------------------------------------------*/
static
void
rrc_ue_generate_RRCSetupComplete
(
const
protocol_ctxt_t
*
const
ctxt_pP
,
...
...
@@ -1332,7 +1370,7 @@ static void rrc_ue_generate_RRCSetupComplete(
"[FRAME %05d][RRC_UE][MOD %02d][][--- PDCP_DATA_REQ/%d Bytes (RRCConnectionSetupComplete to gNB %d MUI %d) --->][PDCP][MOD %02d][RB %02d]
\n
"
,
ctxt_pP
->
frame
,
ctxt_pP
->
module_id
+
NB_RN_INST
,
size
,
gNB_index
,
nr_rrc_mui
,
ctxt_pP
->
module_id
+
NB_eNB_INST
,
DCCH
);
// ctxt_pP_local.rnti = ctxt_pP->rnti;
rrc_data_req_ue
(
nr_
rrc_data_req_ue
(
ctxt_pP
,
DCCH
,
nr_rrc_mui
++
,
...
...
@@ -1409,10 +1447,11 @@ int8_t nr_rrc_ue_decode_ccch( const protocol_ctxt_t *const ctxt_pP, const NR_SRB
// ctxt_pP,
// gNB_index,
// &dl_ccch_msg->message.choice.c1->choice.rrcSetup->criticalExtensions.choice.rrcSetup->masterCellGroup);
// nr_sa_rrc_ue_process_radioBearerConfig(
// ctxt_pP,
// gNB_index,
// &dl_ccch_msg->message.choice.c1->choice.rrcSetup->criticalExtensions.choice.rrcSetup->radioBearerConfig);
rrc_ue_generate_RRCSetup_procedure
(
ctxt_pP
,
gNB_index
,
&
dl_ccch_msg
->
message
.
choice
.
c1
->
choice
.
rrcSetup
->
criticalExtensions
.
choice
.
rrcSetup
->
masterCellGroup
,
&
dl_ccch_msg
->
message
.
choice
.
c1
->
choice
.
rrcSetup
->
criticalExtensions
.
choice
.
rrcSetup
->
radioBearerConfig
);
nr_rrc_set_state
(
ctxt_pP
->
module_id
,
RRC_STATE_CONNECTED
);
nr_rrc_set_sub_state
(
ctxt_pP
->
module_id
,
RRC_SUB_STATE_CONNECTED
);
NR_UE_rrc_inst
[
ctxt_pP
->
module_id
].
Info
[
gNB_index
].
rnti
=
ctxt_pP
->
rnti
;
...
...
@@ -1690,7 +1729,7 @@ nr_rrc_ue_process_securityModeCommand(
GNB_RRC_DCCH_DATA_IND
(
message_p
).
size
=
(
enc_rval
.
encoded
+
7
)
/
8
;
itti_send_msg_to_task
(
TASK_RRC_GNB_SIM
,
ctxt_pP
->
instance
,
message_p
);
#else
rrc_data_req_ue
(
nr_
rrc_data_req_ue
(
ctxt_pP
,
DCCH
,
nr_rrc_mui
++
,
...
...
@@ -1745,7 +1784,7 @@ void nr_rrc_ue_generate_RRCSetupRequest(module_id_t module_id, const uint8_t gNB
log_dump
(
RRC
,
NR_UE_rrc_inst
[
module_id
].
Srb0
[
gNB_index
].
Tx_buffer
.
Payload
,
NR_UE_rrc_inst
[
module_id
].
Srb0
[
gNB_index
].
Tx_buffer
.
payload_size
,
LOG_DUMP_CHAR
,
"RRCSetupRequest :
\n
"
);
rrc_data_req_ue
(
nr_
rrc_data_req_ue
(
&
ctxt
,
DCCH
,
nr_rrc_mui
++
,
...
...
@@ -2216,7 +2255,7 @@ void nr_rrc_ue_generate_RRCReconfigurationComplete( const protocol_ctxt_t *const
itti_send_msg_to_task
(
TASK_RRC_GNB_SIM
,
ctxt_pP
->
instance
,
message_p
);
#else
rrc_data_req_ue
(
nr_
rrc_data_req_ue
(
ctxt_pP
,
DCCH
,
nr_rrc_mui
++
,
...
...
@@ -2468,14 +2507,14 @@ void *rrc_nrue_task( void *args_p ) {
#else
// check if SRB2 is created, if yes request data_req on DCCH1 (SRB2)
if
(
NR_UE_rrc_inst
[
ue_mod_id
].
SRB2_config
[
0
]
==
NULL
)
{
rrc_data_req_ue
(
&
ctxt
,
nr_
rrc_data_req_ue
(
&
ctxt
,
DCCH
,
nr_rrc_mui
++
,
SDU_CONFIRM_NO
,
length
,
buffer
,
PDCP_TRANSMISSION_MODE_CONTROL
);
}
else
{
rrc_data_req_ue
(
&
ctxt
,
nr_
rrc_data_req_ue
(
&
ctxt
,
DCCH1
,
nr_rrc_mui
++
,
SDU_CONFIRM_NO
,
...
...
@@ -2615,7 +2654,7 @@ nr_rrc_ue_process_ueCapabilityEnquiry(
GNB_RRC_DCCH_DATA_IND
(
message_p
).
size
=
(
enc_rval
.
encoded
+
7
)
/
8
;
itti_send_msg_to_task
(
TASK_RRC_GNB_SIM
,
ctxt_pP
->
instance
,
message_p
);
#else
rrc_data_req_ue
(
nr_
rrc_data_req_ue
(
ctxt_pP
,
DCCH
,
nr_rrc_mui
++
,
...
...
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