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
zzha zzha
OpenXG-RAN
Commits
d36879e4
Commit
d36879e4
authored
4 years ago
by
matzakos
Committed by
Raymond Knopp
4 years ago
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add support for more nrNRB configurations in X2 ENDC setup request message
parent
f26f096f
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
35 additions
and
28 deletions
+35
-28
openair2/X2AP/x2ap_eNB_generate_messages.c
openair2/X2AP/x2ap_eNB_generate_messages.c
+35
-28
No files found.
openair2/X2AP/x2ap_eNB_generate_messages.c
View file @
d36879e4
...
@@ -1282,8 +1282,8 @@ MCC_MNC_TO_PLMNID(instance_p->mcc, instance_p->mnc, instance_p->mnc_digit_length
...
@@ -1282,8 +1282,8 @@ MCC_MNC_TO_PLMNID(instance_p->mcc, instance_p->mnc, instance_p->mnc_digit_length
ie_GNB_ENDC
->
value
.
present
=
X2AP_En_gNB_ENDCX2SetupReqIEs__value_PR_ServedNRcellsENDCX2ManagementList
;
ie_GNB_ENDC
->
value
.
present
=
X2AP_En_gNB_ENDCX2SetupReqIEs__value_PR_ServedNRcellsENDCX2ManagementList
;
{
{
for
(
int
i
=
0
;
i
<
instance_p
->
num_cc
;
i
++
){
for
(
int
i
=
0
;
i
<
instance_p
->
num_cc
;
i
++
){
servedCellMember
=
(
ServedNRcellsENDCX2ManagementList__Member
*
)
calloc
(
1
,
sizeof
(
ServedNRcellsENDCX2ManagementList__Member
));
servedCellMember
=
(
ServedNRcellsENDCX2ManagementList__Member
*
)
calloc
(
1
,
sizeof
(
ServedNRcellsENDCX2ManagementList__Member
));
{
{
servedCellMember
->
servedNRCellInfo
.
nrpCI
=
instance_p
->
Nid_cell
[
i
];
servedCellMember
->
servedNRCellInfo
.
nrpCI
=
instance_p
->
Nid_cell
[
i
];
...
@@ -1297,17 +1297,16 @@ MCC_MNC_TO_PLMNID(instance_p->mcc, instance_p->mnc, instance_p->mnc_digit_length
...
@@ -1297,17 +1297,16 @@ MCC_MNC_TO_PLMNID(instance_p->mcc, instance_p->mnc, instance_p->mnc_digit_length
NR_FIVEGS_TAC_ID_TO_BIT_STRING
(
instance_p
->
tac
,
servedCellMember
->
servedNRCellInfo
.
fiveGS_TAC
);
NR_FIVEGS_TAC_ID_TO_BIT_STRING
(
instance_p
->
tac
,
servedCellMember
->
servedNRCellInfo
.
fiveGS_TAC
);
X2AP_INFO
(
"TAC: %d -> %02x%02x%02x
\n
"
,
instance_p
->
tac
,
X2AP_INFO
(
"TAC: %d -> %02x%02x%02x
\n
"
,
instance_p
->
tac
,
servedCellMember
->
servedNRCellInfo
.
fiveGS_TAC
->
buf
[
0
],
servedCellMember
->
servedNRCellInfo
.
fiveGS_TAC
->
buf
[
0
],
servedCellMember
->
servedNRCellInfo
.
fiveGS_TAC
->
buf
[
1
],
servedCellMember
->
servedNRCellInfo
.
fiveGS_TAC
->
buf
[
1
],
servedCellMember
->
servedNRCellInfo
.
fiveGS_TAC
->
buf
[
2
]);
servedCellMember
->
servedNRCellInfo
.
fiveGS_TAC
->
buf
[
2
]);
plmn
=
(
X2AP_PLMN_Identity_t
*
)
calloc
(
1
,
sizeof
(
X2AP_PLMN_Identity_t
));
plmn
=
(
X2AP_PLMN_Identity_t
*
)
calloc
(
1
,
sizeof
(
X2AP_PLMN_Identity_t
));
{
{
MCC_MNC_TO_PLMNID
(
instance_p
->
mcc
,
instance_p
->
mnc
,
instance_p
->
mnc_digit_length
,
plmn
);
MCC_MNC_TO_PLMNID
(
instance_p
->
mcc
,
instance_p
->
mnc
,
instance_p
->
mnc_digit_length
,
plmn
);
ASN_SEQUENCE_ADD
(
&
servedCellMember
->
servedNRCellInfo
.
broadcastPLMNs
.
list
,
plmn
);
ASN_SEQUENCE_ADD
(
&
servedCellMember
->
servedNRCellInfo
.
broadcastPLMNs
.
list
,
plmn
);
}
}
if
(
instance_p
->
frame_type
[
i
]
==
TDD
)
{
if
(
instance_p
->
frame_type
[
i
]
==
TDD
)
{
X2AP_FreqBandNrItem_t
*
freq_band
;
X2AP_FreqBandNrItem_t
*
freq_band
;
servedCellMember
->
servedNRCellInfo
.
nrModeInfo
.
present
=
X2AP_ServedNRCell_Information__nrModeInfo_PR_tdd
;
servedCellMember
->
servedNRCellInfo
.
nrModeInfo
.
present
=
X2AP_ServedNRCell_Information__nrModeInfo_PR_tdd
;
servedCellMember
->
servedNRCellInfo
.
nrModeInfo
.
choice
.
tdd
.
nRFreqInfo
.
nRARFCN
=
instance_p
->
tdd_nRARFCN
[
i
];
servedCellMember
->
servedNRCellInfo
.
nrModeInfo
.
choice
.
tdd
.
nRFreqInfo
.
nRARFCN
=
instance_p
->
tdd_nRARFCN
[
i
];
...
@@ -1319,34 +1318,42 @@ MCC_MNC_TO_PLMNID(instance_p->mcc, instance_p->mnc, instance_p->mnc_digit_length
...
@@ -1319,34 +1318,42 @@ MCC_MNC_TO_PLMNID(instance_p->mcc, instance_p->mnc, instance_p->mnc_digit_length
ASN_SEQUENCE_ADD
(
&
servedCellMember
->
servedNRCellInfo
.
nrModeInfo
.
choice
.
tdd
.
nRFreqInfo
.
freqBandListNr
,
freq_band
);
ASN_SEQUENCE_ADD
(
&
servedCellMember
->
servedNRCellInfo
.
nrModeInfo
.
choice
.
tdd
.
nRFreqInfo
.
freqBandListNr
,
freq_band
);
switch
(
instance_p
->
N_RB_DL
[
i
])
{
switch
(
instance_p
->
N_RB_DL
[
i
])
{
case
50
:
case
32
:
//This is not correct. Just to be able to test X2 only using an eNB instead of gNB
servedCellMember
->
servedNRCellInfo
.
nrModeInfo
.
choice
.
tdd
.
nR_TxBW
.
nRNRB
=
X2AP_NRNRB_nrb32
;
servedCellMember
->
servedNRCellInfo
.
nrModeInfo
.
choice
.
tdd
.
nR_TxBW
.
nRNRB
=
X2AP_NRNRB_nrb51
;
break
;
break
;
case
66
:
case
93
:
servedCellMember
->
servedNRCellInfo
.
nrModeInfo
.
choice
.
tdd
.
nR_TxBW
.
nRNRB
=
X2AP_NRNRB_nrb66
;
servedCellMember
->
servedNRCellInfo
.
nrModeInfo
.
choice
.
tdd
.
nR_TxBW
.
nRNRB
=
X2AP_NRNRB_nrb93
;
break
;
break
;
case
93
:
case
106
:
servedCellMember
->
servedNRCellInfo
.
nrModeInfo
.
choice
.
tdd
.
nR_TxBW
.
nRNRB
=
X2AP_NRNRB_nrb93
;
servedCellMember
->
servedNRCellInfo
.
nrModeInfo
.
choice
.
tdd
.
nR_TxBW
.
nRNRB
=
X2AP_NRNRB_nrb106
;
break
;
break
;
case
106
:
case
121
:
servedCellMember
->
servedNRCellInfo
.
nrModeInfo
.
choice
.
tdd
.
nR_TxBW
.
nRNRB
=
X2AP_NRNRB_nrb106
;
servedCellMember
->
servedNRCellInfo
.
nrModeInfo
.
choice
.
tdd
.
nR_TxBW
.
nRNRB
=
X2AP_NRNRB_nrb121
;
break
;
break
;
case
121
:
/*More cases to be added */
servedCellMember
->
servedNRCellInfo
.
nrModeInfo
.
choice
.
tdd
.
nR_TxBW
.
nRNRB
=
X2AP_NRNRB_nrb121
;
default:
break
;
AssertFatal
(
0
,
"Failed: Check value for N_RB_DL/N_RB_UL"
);
case
217
:
servedCellMember
->
servedNRCellInfo
.
nrModeInfo
.
choice
.
tdd
.
nR_TxBW
.
nRNRB
=
X2AP_NRNRB_nrb217
;
break
;
case
273
:
servedCellMember
->
servedNRCellInfo
.
nrModeInfo
.
choice
.
tdd
.
nR_TxBW
.
nRNRB
=
X2AP_NRNRB_nrb273
;
break
;
/*More cases to be added */
default:
AssertFatal
(
0
,
"Failed: Check value for N_RB_DL/N_RB_UL"
);
break
;
break
;
}
}
}
}
else
{
else
{
AssertFatal
(
0
,
"ENDC_X2Setuprequest not supported for FDD!"
);
AssertFatal
(
0
,
"ENDC_X2Setuprequest not supported for FDD!"
);
}
}
/*Don't know where to extract the value of measurementTimingConfiguration from. Set it to 0 for now */
/*Don't know where to extract the value of measurementTimingConfiguration from. Set it to 0 for now */
INT8_TO_OCTET_STRING
(
0
,
&
servedCellMember
->
servedNRCellInfo
.
measurementTimingConfiguration
);
INT8_TO_OCTET_STRING
(
0
,
&
servedCellMember
->
servedNRCellInfo
.
measurementTimingConfiguration
);
}
}
ASN_SEQUENCE_ADD
(
&
ie_GNB_ENDC
->
value
.
choice
.
ServedNRcellsENDCX2ManagementList
.
list
,
servedCellMember
);
ASN_SEQUENCE_ADD
(
&
ie_GNB_ENDC
->
value
.
choice
.
ServedNRcellsENDCX2ManagementList
.
list
,
servedCellMember
);
}
}
}
}
ASN_SEQUENCE_ADD
(
&
ie
->
value
.
choice
.
InitiatingNodeType_EndcX2Setup
.
choice
.
init_en_gNB
.
list
,
ie_GNB_ENDC
);
ASN_SEQUENCE_ADD
(
&
ie
->
value
.
choice
.
InitiatingNodeType_EndcX2Setup
.
choice
.
init_en_gNB
.
list
,
ie_GNB_ENDC
);
...
...
This diff is collapsed.
Click to expand it.
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