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
spbro
OpenXG-RAN
Commits
31e51f36
Commit
31e51f36
authored
May 11, 2021
by
Melissa Elkadi
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Processing NR_UE_Capability_info and sending
parent
04315e89
Changes
8
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
148 additions
and
53 deletions
+148
-53
openair2/COMMON/pdcp_messages_def.h
openair2/COMMON/pdcp_messages_def.h
+1
-0
openair2/COMMON/pdcp_messages_types.h
openair2/COMMON/pdcp_messages_types.h
+1
-0
openair2/RRC/LTE/rrc_UE.c
openair2/RRC/LTE/rrc_UE.c
+132
-40
openair2/RRC/LTE/rrc_defs.h
openair2/RRC/LTE/rrc_defs.h
+7
-0
openair2/RRC/LTE/rrc_eNB.c
openair2/RRC/LTE/rrc_eNB.c
+3
-2
openair2/RRC/LTE/rrc_types.h
openair2/RRC/LTE/rrc_types.h
+1
-0
openair2/RRC/NR_UE/rrc_UE.c
openair2/RRC/NR_UE/rrc_UE.c
+3
-4
openair2/RRC/NR_UE/rrc_defs.h
openair2/RRC/NR_UE/rrc_defs.h
+0
-7
No files found.
openair2/COMMON/pdcp_messages_def.h
View file @
31e51f36
...
@@ -31,6 +31,7 @@
...
@@ -31,6 +31,7 @@
MESSAGE_DEF
(
RRC_DCCH_DATA_REQ
,
MESSAGE_PRIORITY_MED_PLUS
,
RrcDcchDataReq
,
rrc_dcch_data_req
)
MESSAGE_DEF
(
RRC_DCCH_DATA_REQ
,
MESSAGE_PRIORITY_MED_PLUS
,
RrcDcchDataReq
,
rrc_dcch_data_req
)
MESSAGE_DEF
(
RRC_DCCH_DATA_IND
,
MESSAGE_PRIORITY_MED_PLUS
,
RrcDcchDataInd
,
rrc_dcch_data_ind
)
MESSAGE_DEF
(
RRC_DCCH_DATA_IND
,
MESSAGE_PRIORITY_MED_PLUS
,
RrcDcchDataInd
,
rrc_dcch_data_ind
)
MESSAGE_DEF
(
RRC_PCCH_DATA_REQ
,
MESSAGE_PRIORITY_MED_PLUS
,
RrcPcchDataReq
,
rrc_pcch_data_req
)
MESSAGE_DEF
(
RRC_PCCH_DATA_REQ
,
MESSAGE_PRIORITY_MED_PLUS
,
RrcPcchDataReq
,
rrc_pcch_data_req
)
MESSAGE_DEF
(
RRC_NRUE_CAP_INFO_IND
,
MESSAGE_PRIORITY_MED_PLUS
,
RrcDcchDataInd
,
rrc_nrue_cap_info_ind
)
MESSAGE_DEF
(
RRC_DCCH_DATA_COPY_IND
,
MESSAGE_PRIORITY_MED_PLUS
,
RrcDcchDataInd
,
rrc_dcch_data_copy_ind
)
MESSAGE_DEF
(
RRC_DCCH_DATA_COPY_IND
,
MESSAGE_PRIORITY_MED_PLUS
,
RrcDcchDataInd
,
rrc_dcch_data_copy_ind
)
// gNB
// gNB
...
...
openair2/COMMON/pdcp_messages_types.h
View file @
31e51f36
...
@@ -34,6 +34,7 @@
...
@@ -34,6 +34,7 @@
#define RRC_DCCH_DATA_REQ(mSGpTR) (mSGpTR)->ittiMsg.rrc_dcch_data_req
#define RRC_DCCH_DATA_REQ(mSGpTR) (mSGpTR)->ittiMsg.rrc_dcch_data_req
#define RRC_DCCH_DATA_IND(mSGpTR) (mSGpTR)->ittiMsg.rrc_dcch_data_ind
#define RRC_DCCH_DATA_IND(mSGpTR) (mSGpTR)->ittiMsg.rrc_dcch_data_ind
#define RRC_PCCH_DATA_REQ(mSGpTR) (mSGpTR)->ittiMsg.rrc_pcch_data_req
#define RRC_PCCH_DATA_REQ(mSGpTR) (mSGpTR)->ittiMsg.rrc_pcch_data_req
#define RRC_NRUE_CAP_INFO_IND(mSGpTR) (mSGpTR)->ittiMsg.rrc_nrue_cap_info_ind
#define RRC_DCCH_DATA_COPY_IND(mSGpTR) (mSGpTR)->ittiMsg.rrc_dcch_data_copy_ind
#define RRC_DCCH_DATA_COPY_IND(mSGpTR) (mSGpTR)->ittiMsg.rrc_dcch_data_copy_ind
// gNB
// gNB
...
...
openair2/RRC/LTE/rrc_UE.c
View file @
31e51f36
This diff is collapsed.
Click to expand it.
openair2/RRC/LTE/rrc_defs.h
View file @
31e51f36
...
@@ -838,6 +838,13 @@ typedef struct OAI_UECapability_s {
...
@@ -838,6 +838,13 @@ typedef struct OAI_UECapability_s {
LTE_UE_EUTRA_Capability_t
*
UE_EUTRA_Capability
;
LTE_UE_EUTRA_Capability_t
*
UE_EUTRA_Capability
;
}
OAI_UECapability_t
;
}
OAI_UECapability_t
;
#define MAX_UE_NR_CAPABILITY_SIZE 255
typedef
struct
OAI_NR_UECapability_s
{
uint8_t
sdu
[
MAX_UE_NR_CAPABILITY_SIZE
];
uint8_t
sdu_size
;
NR_UE_NR_Capability_t
*
UE_NR_Capability
;
}
OAI_NR_UECapability_t
;
typedef
struct
UE_RRC_INST_s
{
typedef
struct
UE_RRC_INST_s
{
Rrc_State_t
RrcState
;
Rrc_State_t
RrcState
;
Rrc_Sub_State_t
RrcSubState
;
Rrc_Sub_State_t
RrcSubState
;
...
...
openair2/RRC/LTE/rrc_eNB.c
View file @
31e51f36
...
@@ -4446,8 +4446,8 @@ static int encode_CG_ConfigInfo(
...
@@ -4446,8 +4446,8 @@ static int encode_CG_ConfigInfo(
/* Melissa Elkadi: None of the three following if statments are true. In this case,
/* Melissa Elkadi: None of the three following if statments are true. In this case,
we never fill the container and in the gNB we are never parsing the UE_capability_info.
we never fill the container and in the gNB we are never parsing the UE_capability_info.
I believe this is happening because we are not properly sending the UE_Capability_Info
I believe this is happening because we are not properly sending the UE_Capability_Info
over from the LTE UE. We received the info from the NR UE but dont fill the container
over from the LTE UE. We received the info from the NR UE but
we
dont fill the container
properly
.
*/
properly
?
*/
if
(
ue_context_pP
->
ue_context
.
UE_Capability_MRDC
)
{
if
(
ue_context_pP
->
ue_context
.
UE_Capability_MRDC
)
{
RAT_Container_count
++
;
RAT_Container_count
++
;
enc_rval
=
uper_encode_to_buffer
(
&
asn_DEF_NR_UE_MRDC_Capability
,
NULL
,
enc_rval
=
uper_encode_to_buffer
(
&
asn_DEF_NR_UE_MRDC_Capability
,
NULL
,
...
@@ -8149,6 +8149,7 @@ rrc_eNB_decode_dcch(
...
@@ -8149,6 +8149,7 @@ rrc_eNB_decode_dcch(
for
(
i
=
0
;
i
<
ul_dcch_msg
->
message
.
choice
.
c1
.
choice
.
ueCapabilityInformation
.
criticalExtensions
.
choice
.
c1
.
choice
.
ueCapabilityInformation_r8
.
ue_CapabilityRAT_ContainerList
.
list
.
count
;
i
++
)
{
for
(
i
=
0
;
i
<
ul_dcch_msg
->
message
.
choice
.
c1
.
choice
.
ueCapabilityInformation
.
criticalExtensions
.
choice
.
c1
.
choice
.
ueCapabilityInformation_r8
.
ue_CapabilityRAT_ContainerList
.
list
.
count
;
i
++
)
{
if
(
ul_dcch_msg
->
message
.
choice
.
c1
.
choice
.
ueCapabilityInformation
.
criticalExtensions
.
choice
.
c1
.
choice
.
ueCapabilityInformation_r8
.
ue_CapabilityRAT_ContainerList
.
list
.
array
[
i
]
->
rat_Type
==
if
(
ul_dcch_msg
->
message
.
choice
.
c1
.
choice
.
ueCapabilityInformation
.
criticalExtensions
.
choice
.
c1
.
choice
.
ueCapabilityInformation_r8
.
ue_CapabilityRAT_ContainerList
.
list
.
array
[
i
]
->
rat_Type
==
LTE_RAT_Type_nr
)
{
LTE_RAT_Type_nr
)
{
LOG_I
(
RRC
,
"Melissa we got nrUE capabilities for UE %x
\n
"
,
ctxt_pP
->
rnti
);
if
(
ue_context_p
->
ue_context
.
UE_Capability_nr
)
{
if
(
ue_context_p
->
ue_context
.
UE_Capability_nr
)
{
ASN_STRUCT_FREE
(
asn_DEF_NR_UE_NR_Capability
,
ue_context_p
->
ue_context
.
UE_Capability_nr
);
ASN_STRUCT_FREE
(
asn_DEF_NR_UE_NR_Capability
,
ue_context_p
->
ue_context
.
UE_Capability_nr
);
ue_context_p
->
ue_context
.
UE_Capability_nr
=
0
;
ue_context_p
->
ue_context
.
UE_Capability_nr
=
0
;
...
...
openair2/RRC/LTE/rrc_types.h
View file @
31e51f36
...
@@ -66,6 +66,7 @@ typedef enum Rrc_Msg_Type_e {
...
@@ -66,6 +66,7 @@ typedef enum Rrc_Msg_Type_e {
UE_CAPABILITY_ENQUIRY
,
UE_CAPABILITY_ENQUIRY
,
NRUE_CAPABILITY_ENQUIRY
,
NRUE_CAPABILITY_ENQUIRY
,
UE_CAPABILITY_INFO
,
UE_CAPABILITY_INFO
,
NRUE_CAPABILITY_INFO
,
RRC_MEASUREMENT_PROCEDURE
,
RRC_MEASUREMENT_PROCEDURE
,
NR_UE_RRC_MEASUREMENT
,
NR_UE_RRC_MEASUREMENT
,
}
Rrc_Msg_Type_t
;
}
Rrc_Msg_Type_t
;
...
...
openair2/RRC/NR_UE/rrc_UE.c
View file @
31e51f36
...
@@ -2995,7 +2995,7 @@ static void nsa_rrc_ue_process_ueCapabilityEnquiry(void)
...
@@ -2995,7 +2995,7 @@ static void nsa_rrc_ue_process_ueCapabilityEnquiry(void)
UECap
->
sdu_size
=
(
enc_rval
.
encoded
+
7
)
/
8
;
UECap
->
sdu_size
=
(
enc_rval
.
encoded
+
7
)
/
8
;
LOG_I
(
NR_RRC
,
"[NR_RRC] NRUE Capability encoded, %d bytes (%zd bits)
\n
"
,
LOG_I
(
NR_RRC
,
"[NR_RRC] NRUE Capability encoded, %d bytes (%zd bits)
\n
"
,
UECap
->
sdu_size
,
enc_rval
.
encoded
+
7
);
UECap
->
sdu_size
,
enc_rval
.
encoded
+
7
);
/* Melissa: Hack. Need to add ctxt->mod_id as array indices */
NR_UE_rrc_inst
[
0
].
UECap
=
UECap
;
NR_UE_rrc_inst
[
0
].
UECap
=
UECap
;
NR_UE_rrc_inst
[
0
].
UECapability
=
UECap
->
sdu
;
NR_UE_rrc_inst
[
0
].
UECapability
=
UECap
->
sdu
;
NR_UE_rrc_inst
[
0
].
UECapability_size
=
UECap
->
sdu_size
;
NR_UE_rrc_inst
[
0
].
UECapability_size
=
UECap
->
sdu_size
;
...
@@ -3006,11 +3006,10 @@ static void nsa_rrc_ue_process_ueCapabilityEnquiry(void)
...
@@ -3006,11 +3006,10 @@ static void nsa_rrc_ue_process_ueCapabilityEnquiry(void)
OCTET_STRING_fromBuf
(
&
ue_CapabilityRAT_Container
.
ue_CapabilityRAT_Container
,
OCTET_STRING_fromBuf
(
&
ue_CapabilityRAT_Container
.
ue_CapabilityRAT_Container
,
(
const
char
*
)
NR_UE_rrc_inst
[
0
].
UECapability
,
(
const
char
*
)
NR_UE_rrc_inst
[
0
].
UECapability
,
NR_UE_rrc_inst
[
0
].
UECapability_size
);
NR_UE_rrc_inst
[
0
].
UECapability_size
);
ue_CapabilityRAT_Container
.
ue_CapabilityRAT_Container
.
buf
=
NR_UE_rrc_inst
[
0
].
UECapability
;
ue_CapabilityRAT_Container
.
ue_CapabilityRAT_Container
.
size
=
NR_UE_rrc_inst
[
0
].
UECapability_size
;
nsa_sendmsg_to_lte_ue
(
ue_CapabilityRAT_Container
.
ue_CapabilityRAT_Container
.
buf
,
nsa_sendmsg_to_lte_ue
(
ue_CapabilityRAT_Container
.
ue_CapabilityRAT_Container
.
buf
,
ue_CapabilityRAT_Container
.
ue_CapabilityRAT_Container
.
size
,
ue_CapabilityRAT_Container
.
ue_CapabilityRAT_Container
.
size
,
UE_CAPABILITY_INFO
);
NR
UE_CAPABILITY_INFO
);
}
}
void
process_lte_nsa_msg
(
nsa_msg_t
*
msg
,
int
msg_len
)
void
process_lte_nsa_msg
(
nsa_msg_t
*
msg
,
int
msg_len
)
...
...
openair2/RRC/NR_UE/rrc_defs.h
View file @
31e51f36
...
@@ -70,13 +70,6 @@ typedef enum {
...
@@ -70,13 +70,6 @@ typedef enum {
nr_RadioBearerConfigX_r15
=
1
nr_RadioBearerConfigX_r15
=
1
}
nsa_message_t
;
}
nsa_message_t
;
#define MAX_UE_NR_CAPABILITY_SIZE 255
typedef
struct
OAI_NR_UECapability_s
{
uint8_t
sdu
[
MAX_UE_NR_CAPABILITY_SIZE
];
uint8_t
sdu_size
;
NR_UE_NR_Capability_t
*
UE_NR_Capability
;
}
OAI_NR_UECapability_t
;
typedef
struct
NR_UE_RRC_INST_s
{
typedef
struct
NR_UE_RRC_INST_s
{
NR_MeasConfig_t
*
meas_config
;
NR_MeasConfig_t
*
meas_config
;
...
...
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