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
Michael Black
OpenXG-RAN
Commits
aa910f52
Commit
aa910f52
authored
Mar 06, 2022
by
Laurent Thomas
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
debug after develop merge
parent
4c62aef7
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
49 additions
and
55 deletions
+49
-55
openair1/PHY/INIT/nr_init_ue.c
openair1/PHY/INIT/nr_init_ue.c
+4
-4
openair1/PHY/NR_UE_TRANSPORT/nr_pbch.c
openair1/PHY/NR_UE_TRANSPORT/nr_pbch.c
+3
-3
openair2/RRC/NR/rrc_gNB_NGAP.c
openair2/RRC/NR/rrc_gNB_NGAP.c
+14
-17
openair3/NGAP/ngap_gNB_nas_procedures.c
openair3/NGAP/ngap_gNB_nas_procedures.c
+28
-31
No files found.
openair1/PHY/INIT/nr_init_ue.c
View file @
aa910f52
...
...
@@ -413,10 +413,6 @@ int init_nr_ue_signal(PHY_VARS_NR_UE *ue, int nb_connected_gNB)
}
}
// PBCH
prach_vars
[
gNB_id
]
->
prachF
=
(
int16_t
*
)
malloc16_clear
(
sizeof
(
int
)
*
(
7
*
2
*
sizeof
(
int
)
*
(
fp
->
ofdm_symbol_size
*
12
))
);
prach_vars
[
gNB_id
]
->
prach
=
(
int16_t
*
)
malloc16_clear
(
sizeof
(
int
)
*
(
7
*
2
*
sizeof
(
int
)
*
(
fp
->
ofdm_symbol_size
*
12
))
);
// 100 PRBs * 12 REs/PRB * 4 PDCCH SYMBOLS * 2 LLRs/RE
for
(
th_id
=
0
;
th_id
<
RX_NB_TH_MAX
;
th_id
++
)
{
ue
->
pdcch_vars
[
th_id
][
gNB_id
]
->
llr
=
(
int16_t
*
)
malloc16_clear
(
2
*
4
*
100
*
12
*
sizeof
(
uint16_t
)
);
...
...
@@ -449,6 +445,10 @@ int init_nr_ue_signal(PHY_VARS_NR_UE *ue, int nb_connected_gNB)
}
}
// RACH
prach_vars
[
gNB_id
]
->
prachF
=
(
int16_t
*
)
malloc16_clear
(
sizeof
(
int
)
*
(
7
*
2
*
sizeof
(
int
)
*
(
fp
->
ofdm_symbol_size
*
12
))
);
prach_vars
[
gNB_id
]
->
prach
=
(
int16_t
*
)
malloc16_clear
(
sizeof
(
int
)
*
(
7
*
2
*
sizeof
(
int
)
*
(
fp
->
ofdm_symbol_size
*
12
))
);
}
// initialization for the last instance of pdsch_vars (used for MU-MIMO)
...
...
openair1/PHY/NR_UE_TRANSPORT/nr_pbch.c
View file @
aa910f52
...
...
@@ -504,10 +504,10 @@ int nr_rx_pbch( PHY_VARS_NR_UE *ue,
nr_pbch_unscrambling
(
nr_ue_pbch_vars
,
pbch_e_rx
,
frame_parms
->
Nid_cell
,
nushift
,
M
,
NR_POLAR_PBCH_E
,
0
,
0
,
pbch_a_prime
,
&
pbch_a_interleaved
);
//polar decoding de-rate matching
decoderState
=
polar_decoder_int16
(
pbch_e_rx
,(
uint64_t
*
)
&
pbch_a_prime
,
0
,
uint64_t
tmp
=
0
;
decoderState
=
polar_decoder_int16
(
pbch_e_rx
,(
uint64_t
*
)
&
tmp
,
0
,
NR_POLAR_PBCH_MESSAGE_TYPE
,
NR_POLAR_PBCH_PAYLOAD_BITS
,
NR_POLAR_PBCH_AGGREGATION_LEVEL
);
pbch_a_prime
=
tmp
;
if
(
decoderState
)
return
(
decoderState
);
...
...
openair2/RRC/NR/rrc_gNB_NGAP.c
View file @
aa910f52
...
...
@@ -905,30 +905,27 @@ rrc_gNB_send_NGAP_PDUSESSION_SETUP_RESP(
for
(
pdusession
=
0
;
pdusession
<
ue_context_pP
->
ue_context
.
setup_pdu_sessions
;
pdusession
++
)
{
// if (xid == ue_context_pP->ue_context.pdusession[pdusession].xid) {
if
(
ue_context_pP
->
ue_context
.
pduSession
[
pdusession
].
status
==
PDU_SESSION_STATUS_DONE
)
{
NGAP_PDUSESSION_SETUP_RESP
(
msg_p
).
pdusessions
[
pdusession
].
pdusession_id
=
ue_context_pP
->
ue_context
.
pduSession
[
pdusession
].
param
.
pdusession_id
;
// NGAP_PDUSESSION_SETUP_RESP(msg_p).pdusessions[pdusession].pdusession_id = 1;
NGAP_PDUSESSION_SETUP_RESP
(
msg_p
).
pdusessions
[
pdusession
].
nb_of_qos_flow
=
ue_context_pP
->
ue_context
.
pduSession
[
pdusession
].
param
.
nb_qos
;
NGAP_PDUSESSION_SETUP_RESP
(
msg_p
).
pdusessions
[
pdusession
].
gtp_teid
=
ue_context_pP
->
ue_context
.
gnb_gtp_teid
[
pdusession
];
NGAP_PDUSESSION_SETUP_RESP
(
msg_p
).
pdusessions
[
pdusession
].
gNB_addr
.
pdu_session_type
=
PDUSessionType_ipv4
;
NGAP_PDUSESSION_SETUP_RESP
(
msg_p
).
pdusessions
[
pdusession
].
gNB_addr
.
length
=
ue_context_pP
->
ue_context
.
gnb_gtp_addrs
[
pdusession
].
length
;
memcpy
(
NGAP_PDUSESSION_SETUP_RESP
(
msg_p
).
pdusessions
[
pdusession
].
gNB_addr
.
buffer
,
ue_context_pP
->
ue_context
.
gnb_gtp_addrs
[
pdusession
].
buffer
,
sizeof
(
uint8_t
)
*
20
);
for
(
qos_flow_index
=
0
;
qos_flow_index
<
NGAP_PDUSESSION_SETUP_RESP
(
msg_p
).
pdusessions
[
pdusession
].
nb_of_qos_flow
;
qos_flow_index
++
)
{
NGAP_PDUSESSION_SETUP_RESP
(
msg_p
).
pdusessions
[
pdusession
].
associated_qos_flows
[
qos_flow_index
].
qfi
=
pdusession_setup_t
*
tmp
=&
NGAP_PDUSESSION_SETUP_RESP
(
msg_p
).
pdusessions
[
pdusession
];
tmp
->
pdusession_id
=
ue_context_pP
->
ue_context
.
pduSession
[
pdusession
].
param
.
pdusession_id
;
// tmp->pdusession_id = 1;
tmp
->
nb_of_qos_flow
=
ue_context_pP
->
ue_context
.
pduSession
[
pdusession
].
param
.
nb_qos
;
tmp
->
gtp_teid
=
ue_context_pP
->
ue_context
.
gnb_gtp_teid
[
pdusession
];
tmp
->
gNB_addr
.
pdu_session_type
=
PDUSessionType_ipv4
;
tmp
->
gNB_addr
.
length
=
ue_context_pP
->
ue_context
.
gnb_gtp_addrs
[
pdusession
].
length
;
memcpy
(
tmp
->
gNB_addr
.
buffer
,
ue_context_pP
->
ue_context
.
gnb_gtp_addrs
[
pdusession
].
buffer
,
tmp
->
gNB_addr
.
length
);
for
(
qos_flow_index
=
0
;
qos_flow_index
<
tmp
->
nb_of_qos_flow
;
qos_flow_index
++
)
{
tmp
->
associated_qos_flows
[
qos_flow_index
].
qfi
=
ue_context_pP
->
ue_context
.
pduSession
[
pdusession
].
param
.
qos
[
qos_flow_index
].
qfi
;
NGAP_PDUSESSION_SETUP_RESP
(
msg_p
).
pdusessions
[
pdusession
].
associated_qos_flows
[
qos_flow_index
].
qos_flow_mapping_ind
=
QOSFLOW_MAPPING_INDICATION_DL
;
tmp
->
associated_qos_flows
[
qos_flow_index
].
qos_flow_mapping_ind
=
QOSFLOW_MAPPING_INDICATION_DL
;
}
ue_context_pP
->
ue_context
.
pduSession
[
pdusession
].
status
=
PDU_SESSION_STATUS_ESTABLISHED
;
LOG_I
(
NR_RRC
,
"gnb_gtp_addr (msg index %d, pdu_sessions index %d, status %d, xid %d): nb_of_pdusessions %d, pdusession_id %d, teid: %u
, addr: %d.%d.%d.%d
\n
"
,
LOG_I
(
NR_RRC
,
"gnb_gtp_addr (msg index %d, pdu_sessions index %d, status %d, xid %d): nb_of_pdusessions %d, pdusession_id %d, teid: %u
\n
"
,
pdu_sessions_done
,
pdusession
,
ue_context_pP
->
ue_context
.
pduSession
[
pdusession
].
status
,
xid
,
ue_context_pP
->
ue_context
.
nb_of_pdusessions
,
NGAP_PDUSESSION_SETUP_RESP
(
msg_p
).
pdusessions
[
pdu_sessions_done
].
pdusession_id
,
NGAP_PDUSESSION_SETUP_RESP
(
msg_p
).
pdusessions
[
pdu_sessions_done
].
gtp_teid
,
NGAP_PDUSESSION_SETUP_RESP
(
msg_p
).
pdusessions
[
pdu_sessions_done
].
gNB_addr
.
buffer
[
0
],
NGAP_PDUSESSION_SETUP_RESP
(
msg_p
).
pdusessions
[
pdu_sessions_done
].
gNB_addr
.
buffer
[
1
],
NGAP_PDUSESSION_SETUP_RESP
(
msg_p
).
pdusessions
[
pdu_sessions_done
].
gNB_addr
.
buffer
[
2
],
NGAP_PDUSESSION_SETUP_RESP
(
msg_p
).
pdusessions
[
pdu_sessions_done
].
gNB_addr
.
buffer
[
3
]);
NGAP_PDUSESSION_SETUP_RESP
(
msg_p
).
pdusessions
[
pdu_sessions_done
].
gtp_teid
);
pdu_sessions_done
++
;
}
else
if
((
ue_context_pP
->
ue_context
.
pduSession
[
pdusession
].
status
==
PDU_SESSION_STATUS_NEW
)
||
(
ue_context_pP
->
ue_context
.
pduSession
[
pdusession
].
status
==
PDU_SESSION_STATUS_ESTABLISHED
))
{
...
...
openair3/NGAP/ngap_gNB_nas_procedures.c
View file @
aa910f52
...
...
@@ -680,24 +680,20 @@ int ngap_gNB_initial_ctxt_resp(
pdusessionTransfer_p
->
dLQosFlowPerTNLInformation
.
uPTransportLayerInformation
.
present
=
NGAP_UPTransportLayerInformation_PR_gTPTunnel
;
pdusessionTransfer_p
->
dLQosFlowPerTNLInformation
.
uPTransportLayerInformation
.
choice
.
gTPTunnel
=
(
NGAP_GTPTunnel_t
*
)
calloc
(
1
,
sizeof
(
NGAP_GTPTunnel_t
));
GTP_TEID_TO_ASN1
(
initial_ctxt_resp_p
->
pdusessions
[
i
].
gtp_teid
,
&
pdusessionTransfer_p
->
dLQosFlowPerTNLInformation
.
uPTransportLayerInformation
.
choice
.
gTPTunnel
->
gTP_TEID
);
pdusessionTransfer_p
->
dLQosFlowPerTNLInformation
.
uPTransportLayerInformation
.
choice
.
gTPTunnel
=
(
NGAP_GTPTunnel_t
*
)
calloc
(
1
,
sizeof
(
NGAP_GTPTunnel_t
));
struct
NGAP_GTPTunnel
*
tmp
=
pdusessionTransfer_p
->
dLQosFlowPerTNLInformation
.
uPTransportLayerInformation
.
choice
.
gTPTunnel
;
GTP_TEID_TO_ASN1
(
initial_ctxt_resp_p
->
pdusessions
[
i
].
gtp_teid
,
&
tmp
->
gTP_TEID
);
pdusessionTransfer_p
->
dLQosFlowPerTNLInformation
.
uPTransportLayerInformation
.
choice
.
gTPTunnel
->
transportLayerAddress
.
buf
=
malloc
(
initial_ctxt_resp_p
->
pdusessions
[
i
].
gNB_addr
.
length
);
tmp
->
transportLayerAddress
.
buf
=
malloc
(
initial_ctxt_resp_p
->
pdusessions
[
i
].
gNB_addr
.
length
);
memcpy
(
pdusessionTransfer_p
->
dLQosFlowPerTNLInformation
.
uPTransportLayerInformation
.
choice
.
gTPTunnel
->
transportLayerAddress
.
buf
,
memcpy
(
tmp
->
transportLayerAddress
.
buf
,
initial_ctxt_resp_p
->
pdusessions
[
i
].
gNB_addr
.
buffer
,
initial_ctxt_resp_p
->
pdusessions
[
i
].
gNB_addr
.
length
);
pdusessionTransfer_p
->
dLQosFlowPerTNLInformation
.
uPTransportLayerInformation
.
choice
.
gTPTunnel
->
transportLayerAddress
.
size
=
initial_ctxt_resp_p
->
pdusessions
[
i
].
gNB_addr
.
length
;
pdusessionTransfer_p
->
dLQosFlowPerTNLInformation
.
uPTransportLayerInformation
.
choice
.
gTPTunnel
->
transportLayerAddress
.
bits_unused
=
0
;
tmp
->
transportLayerAddress
.
size
=
initial_ctxt_resp_p
->
pdusessions
[
i
].
gNB_addr
.
length
;
tmp
->
transportLayerAddress
.
bits_unused
=
0
;
NGAP_DEBUG
(
"initial_ctxt_resp_p: pdusession ID %ld, gnb_addr %d.%d.%d.%d, SIZE %ld
\n
"
,
item
->
pDUSessionID
,
pdusessionTransfer_p
->
dLQosFlowPerTNLInformation
.
uPTransportLayerInformation
.
choice
.
gTPTunnel
->
transportLayerAddress
.
buf
[
0
],
pdusessionTransfer_p
->
dLQosFlowPerTNLInformation
.
uPTransportLayerInformation
.
choice
.
gTPTunnel
->
transportLayerAddress
.
buf
[
1
],
pdusessionTransfer_p
->
dLQosFlowPerTNLInformation
.
uPTransportLayerInformation
.
choice
.
gTPTunnel
->
transportLayerAddress
.
buf
[
2
],
pdusessionTransfer_p
->
dLQosFlowPerTNLInformation
.
uPTransportLayerInformation
.
choice
.
gTPTunnel
->
transportLayerAddress
.
buf
[
3
],
pdusessionTransfer_p
->
dLQosFlowPerTNLInformation
.
uPTransportLayerInformation
.
choice
.
gTPTunnel
->
transportLayerAddress
.
size
);
NGAP_DEBUG
(
"initial_ctxt_resp_p: pdusession ID %ld
\n
"
,
item
->
pDUSessionID
);
/* associatedQosFlowList. number of 1? */
for
(
int
j
=
0
;
j
<
initial_ctxt_resp_p
->
pdusessions
[
i
].
nb_of_qos_flow
;
j
++
)
{
...
...
@@ -987,24 +983,25 @@ int ngap_gNB_pdusession_setup_resp(instance_t instance,
pdusessionTransfer_p
->
dLQosFlowPerTNLInformation
.
uPTransportLayerInformation
.
present
=
NGAP_UPTransportLayerInformation_PR_gTPTunnel
;
pdusessionTransfer_p
->
dLQosFlowPerTNLInformation
.
uPTransportLayerInformation
.
choice
.
gTPTunnel
=
calloc
(
1
,
sizeof
(
struct
NGAP_GTPTunnel
));
GTP_TEID_TO_ASN1
(
pdusession_setup_resp_p
->
pdusessions
[
i
].
gtp_teid
,
&
pdusessionTransfer_p
->
dLQosFlowPerTNLInformation
.
uPTransportLayerInformation
.
choice
.
gTPTunnel
->
gTP_TEID
);
pdusessionTransfer_p
->
dLQosFlowPerTNLInformation
.
uPTransportLayerInformation
.
choice
.
gTPTunnel
->
transportLayerAddress
.
buf
=
malloc
(
pdusession_setup_resp_p
->
pdusessions
[
i
].
gNB_addr
.
length
);
memcpy
(
pdusessionTransfer_p
->
dLQosFlowPerTNLInformation
.
uPTransportLayerInformation
.
choice
.
gTPTunnel
->
transportLayerAddress
.
buf
,
pdusession_setup_resp_p
->
pdusessions
[
i
].
gNB_addr
.
buffer
,
pdusession_setup_resp_p
->
pdusessions
[
i
].
gNB_addr
.
length
);
pdusessionTransfer_p
->
dLQosFlowPerTNLInformation
.
uPTransportLayerInformation
.
choice
.
gTPTunnel
->
transportLayerAddress
.
size
=
pdusession_setup_resp_p
->
pdusessions
[
i
].
gNB_addr
.
length
;
pdusessionTransfer_p
->
dLQosFlowPerTNLInformation
.
uPTransportLayerInformation
.
choice
.
gTPTunnel
->
transportLayerAddress
.
bits_unused
=
0
;
NGAP_DEBUG
(
"pdusession_setup_resp_p: pdusession ID %ld, gnb_addr %d.%d.%d.%d, SIZE %ld
\n
"
,
item
->
pDUSessionID
,
pdusessionTransfer_p
->
dLQosFlowPerTNLInformation
.
uPTransportLayerInformation
.
choice
.
gTPTunnel
->
transportLayerAddress
.
buf
[
0
],
pdusessionTransfer_p
->
dLQosFlowPerTNLInformation
.
uPTransportLayerInformation
.
choice
.
gTPTunnel
->
transportLayerAddress
.
buf
[
1
],
pdusessionTransfer_p
->
dLQosFlowPerTNLInformation
.
uPTransportLayerInformation
.
choice
.
gTPTunnel
->
transportLayerAddress
.
buf
[
2
],
pdusessionTransfer_p
->
dLQosFlowPerTNLInformation
.
uPTransportLayerInformation
.
choice
.
gTPTunnel
->
transportLayerAddress
.
buf
[
3
],
pdusessionTransfer_p
->
dLQosFlowPerTNLInformation
.
uPTransportLayerInformation
.
choice
.
gTPTunnel
->
transportLayerAddress
.
size
);
struct
NGAP_GTPTunnel
*
tmp
=
pdusessionTransfer_p
->
dLQosFlowPerTNLInformation
.
uPTransportLayerInformation
.
choice
.
gTPTunnel
;
GTP_TEID_TO_ASN1
(
pdusession_setup_resp_p
->
pdusessions
[
i
].
gtp_teid
,
&
tmp
->
gTP_TEID
);
if
(
pdusession_setup_resp_p
->
pdusessions
[
i
].
gNB_addr
.
length
)
{
tmp
->
transportLayerAddress
.
buf
=
malloc
(
pdusession_setup_resp_p
->
pdusessions
[
i
].
gNB_addr
.
length
);
memcpy
(
tmp
->
transportLayerAddress
.
buf
,
pdusession_setup_resp_p
->
pdusessions
[
i
].
gNB_addr
.
buffer
,
pdusession_setup_resp_p
->
pdusessions
[
i
].
gNB_addr
.
length
);
tmp
->
transportLayerAddress
.
size
=
pdusession_setup_resp_p
->
pdusessions
[
i
].
gNB_addr
.
length
;
tmp
->
transportLayerAddress
.
bits_unused
=
0
;
NGAP_DEBUG
(
"pdusession_setup_resp_p: pdusession ID %ld, gnb_addr %d.%d.%d.%d, SIZE %ld
\n
"
,
item
->
pDUSessionID
,
tmp
->
transportLayerAddress
.
buf
[
0
],
tmp
->
transportLayerAddress
.
buf
[
1
],
tmp
->
transportLayerAddress
.
buf
[
2
],
tmp
->
transportLayerAddress
.
buf
[
3
],
tmp
->
transportLayerAddress
.
size
);
}
/* associatedQosFlowList. number of 1? */
for
(
int
j
=
0
;
j
<
pdusession_setup_resp_p
->
pdusessions
[
i
].
nb_of_qos_flow
;
j
++
)
{
...
...
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