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
6529d875
Commit
6529d875
authored
Mar 22, 2023
by
Robert Schmidt
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
nr_pdcp_data_req_srb(): take callback to forward data
parent
ffebe249
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
60 additions
and
47 deletions
+60
-47
openair2/LAYER2/nr_pdcp/nr_pdcp_oai_api.c
openair2/LAYER2/nr_pdcp/nr_pdcp_oai_api.c
+25
-23
openair2/LAYER2/nr_pdcp/nr_pdcp_oai_api.h
openair2/LAYER2/nr_pdcp/nr_pdcp_oai_api.h
+8
-1
openair2/RRC/NR/rrc_gNB.c
openair2/RRC/NR/rrc_gNB.c
+21
-17
openair2/RRC/NR/rrc_gNB_NGAP.c
openair2/RRC/NR/rrc_gNB_NGAP.c
+1
-1
openair2/RRC/NR_UE/rrc_UE.c
openair2/RRC/NR_UE/rrc_UE.c
+5
-5
No files found.
openair2/LAYER2/nr_pdcp/nr_pdcp_oai_api.c
View file @
6529d875
...
...
@@ -732,26 +732,26 @@ srb_found:
}
}
static
void
deliver_pdu_srb
(
void
*
deliver_pdu_data
,
ue_id_t
ue_id
,
int
srb_id
,
char
*
buf
,
int
size
,
int
sdu_id
)
void
deliver_pdu_srb_rlc
(
void
*
deliver_pdu_data
,
ue_id_t
ue_id
,
int
srb_id
,
char
*
buf
,
int
size
,
int
sdu_id
)
{
bool
is_gnb
=
*
(
bool
*
)
deliver_pdu_data
;
LOG_D
(
PDCP
,
"%s(): (srb %d) calling rlc_data_req size %d
\n
"
,
__func__
,
srb_id
,
size
);
if
(
is_gnb
)
{
f1ap_dl_rrc_message_t
dl_rrc
=
{.
old_gNB_DU_ue_id
=
0xFFFFFF
,
.
rrc_container
=
(
uint8_t
*
)
buf
,
.
rrc_container_length
=
size
,
.
rnti
=
ue
_id
,
.
srb_id
=
srb_id
};
gNB_RRC_INST
*
rrc
=
RC
.
nrrrc
[
0
];
rrc
->
mac_rrc
.
dl_rrc_message_transfer
(
0
,
&
dl_rrc
);
}
else
{
// UE
mem_block_t
*
memblock
;
protocol_ctxt_t
ctxt
=
{
.
enb_flag
=
1
,
.
rntiMaybeUEid
=
ue_id
};
memblock
=
get_free_mem_block
(
size
,
__FUNCTION__
);
memcpy
(
memblock
->
data
,
buf
,
size
);
enqueue_rlc_data_req
(
&
ctxt
,
1
,
MBMS_FLAG_NO
,
srb_id
,
sdu_id
,
0
,
size
,
memblock
)
;
}
protocol_ctxt_t
ctxt
=
{
.
enb_flag
=
1
,
.
rntiMaybeUEid
=
ue_id
}
;
mem_block_t
*
memblock
=
get_free_mem_block
(
size
,
__FUNCTION__
);
memcpy
(
memblock
->
data
,
buf
,
size
);
enqueue_rlc_data_req
(
&
ctxt
,
1
,
MBMS_FLAG_NO
,
srb_id
,
sdu_id
,
0
,
size
,
memblock
);
}
void
deliver_pdu_srb_f1
(
void
*
deliver_pdu_data
,
ue_id_t
ue_id
,
int
srb
_id
,
char
*
buf
,
int
size
,
int
sdu_id
)
{
DevAssert
(
deliver_pdu_data
!=
NULL
);
gNB_RRC_INST
*
rrc
=
deliver_pdu_data
;
f1ap_dl_rrc_message_t
dl_rrc
=
{.
old_gNB_DU_ue_id
=
0xFFFFFF
,
.
rrc_container
=
(
uint8_t
*
)
buf
,
.
rrc_container_length
=
size
,
.
rnti
=
ue_id
,
.
srb_id
=
srb_id
}
;
rrc
->
mac_rrc
.
dl_rrc_message_transfer
(
0
,
&
dl_rrc
);
}
static
void
add_srb
(
int
is_gnb
,
ue_id_t
rntiMaybeUEid
,
struct
NR_SRB_ToAddMod
*
s
,
int
ciphering_algorithm
,
int
integrity_algorithm
,
unsigned
char
*
ciphering_key
,
unsigned
char
*
integrity_key
)
...
...
@@ -772,7 +772,7 @@ static void add_srb(int is_gnb, ue_id_t rntiMaybeUEid, struct NR_SRB_ToAddMod *s
}
else
{
pdcp_srb
=
new_nr_pdcp_entity
(
NR_PDCP_SRB
,
is_gnb
,
srb_id
,
0
,
false
,
false
,
// sdap parameters
deliver_sdu_srb
,
ue
,
deliver_pdu_srb
,
ue
,
deliver_sdu_srb
,
ue
,
NULL
,
ue
,
12
,
t_Reordering
,
-
1
,
ciphering_algorithm
,
integrity_algorithm
,
...
...
@@ -1111,7 +1111,9 @@ bool nr_pdcp_data_req_srb(ue_id_t ue_id,
const
rb_id_t
rb_id
,
const
mui_t
muiP
,
const
sdu_size_t
sdu_buffer_size
,
unsigned
char
*
const
sdu_buffer
)
unsigned
char
*
const
sdu_buffer
,
deliver_pdu
deliver_pdu_cb
,
void
*
data
)
{
LOG_D
(
PDCP
,
"%s() called, size %d
\n
"
,
__func__
,
sdu_buffer_size
);
nr_pdcp_ue_t
*
ue
;
...
...
@@ -1135,11 +1137,11 @@ bool nr_pdcp_data_req_srb(ue_id_t ue_id,
int
max_size
=
sdu_buffer_size
+
3
+
4
;
// 3: max header, 4: max integrity
char
pdu_buf
[
max_size
];
int
pdu_size
=
rb
->
process_sdu
(
rb
,
(
char
*
)
sdu_buffer
,
sdu_buffer_size
,
muiP
,
pdu_buf
,
max_size
);
deliver_pdu
deliver_pdu_cb
=
rb
->
deliver_pdu
;
AssertFatal
(
rb
->
deliver_pdu
==
NULL
,
"SRB callback should be NULL, to be provided on every invocation
\n
"
)
;
nr_pdcp_manager_unlock
(
nr_pdcp_ue_manager
);
deliver_pdu_cb
(
&
rb
->
is_gnb
,
ue_id
,
rb_id
,
pdu_buf
,
pdu_size
,
muiP
);
deliver_pdu_cb
(
data
,
ue_id
,
rb_id
,
pdu_buf
,
pdu_size
,
muiP
);
return
1
;
}
...
...
openair2/LAYER2/nr_pdcp/nr_pdcp_oai_api.h
View file @
6529d875
...
...
@@ -79,11 +79,18 @@ bool cu_f1u_data_req(protocol_ctxt_t *ctxt_pP,
typedef
void
(
*
deliver_pdu
)(
void
*
data
,
ue_id_t
ue_id
,
int
srb_id
,
char
*
buf
,
int
size
,
int
sdu_id
);
/* default implementation of deliver_pdu */
void
deliver_pdu_srb_rlc
(
void
*
data
,
ue_id_t
ue_id
,
int
srb_id
,
char
*
buf
,
int
size
,
int
sdu_id
);
void
deliver_pdu_srb_f1
(
void
*
data
,
ue_id_t
ue_id
,
int
srb_id
,
char
*
buf
,
int
size
,
int
sdu_id
);
bool
nr_pdcp_data_req_srb
(
ue_id_t
ue_id
,
const
rb_id_t
rb_id
,
const
mui_t
muiP
,
const
sdu_size_t
sdu_buffer_size
,
unsigned
char
*
const
sdu_buffer
);
unsigned
char
*
const
sdu_buffer
,
deliver_pdu
deliver_cb
,
void
*
data
);
bool
nr_pdcp_data_req_drb
(
protocol_ctxt_t
*
ctxt_pP
,
const
srb_flag_t
srb_flagP
,
const
rb_id_t
rb_id
,
...
...
openair2/RRC/NR/rrc_gNB.c
View file @
6529d875
...
...
@@ -573,7 +573,7 @@ static void rrc_gNB_generate_defaultRRCReconfiguration(const protocol_ctxt_t *co
ue_context_pP
->
ue_context
.
rnti
);
AssertFatal
(
!
NODE_IS_DU
(
rrc
->
node_type
),
"illegal node type DU!
\n
"
);
nr_pdcp_data_req_srb
(
ctxt_pP
->
rntiMaybeUEid
,
DCCH
,
rrc_gNB_mui
++
,
size
,
buffer
);
nr_pdcp_data_req_srb
(
ctxt_pP
->
rntiMaybeUEid
,
DCCH
,
rrc_gNB_mui
++
,
size
,
buffer
,
deliver_pdu_srb_f1
,
rrc
);
if
(
NODE_IS_DU
(
rrc
->
node_type
)
||
NODE_IS_MONOLITHIC
(
rrc
->
node_type
))
{
gNB_RRC_UE_t
*
ue_p
=
&
ue_context_pP
->
ue_context
;
...
...
@@ -762,7 +762,7 @@ rrc_gNB_generate_dedicatedRRCReconfiguration(
ctxt_pP
->
module_id
,
DCCH
);
nr_pdcp_data_req_srb
(
ctxt_pP
->
rntiMaybeUEid
,
DCCH
,
rrc_gNB_mui
++
,
size
,
buffer
);
nr_pdcp_data_req_srb
(
ctxt_pP
->
rntiMaybeUEid
,
DCCH
,
rrc_gNB_mui
++
,
size
,
buffer
,
deliver_pdu_srb_f1
,
rrc
);
if
(
NODE_IS_DU
(
rrc
->
node_type
)
||
NODE_IS_MONOLITHIC
(
rrc
->
node_type
))
{
nr_mac_update_cellgroup
(
RC
.
nrmac
[
rrc
->
module_id
],
ue_context_pP
->
ue_context
.
rnti
,
ue_context_pP
->
ue_context
.
masterCellGroup
);
...
...
@@ -929,15 +929,16 @@ rrc_gNB_modify_dedicatedRRCReconfiguration(
ctxt_pP
->
module_id
,
DCCH
);
nr_pdcp_data_req_srb
(
ctxt_pP
->
rntiMaybeUEid
,
DCCH
,
rrc_gNB_mui
++
,
size
,
buffer
);
gNB_RRC_INST
*
rrc
=
RC
.
nrrrc
[
ctxt_pP
->
module_id
];
nr_pdcp_data_req_srb
(
ctxt_pP
->
rntiMaybeUEid
,
DCCH
,
rrc_gNB_mui
++
,
size
,
buffer
,
deliver_pdu_srb_f1
,
rrc
);
if
(
NODE_IS_DU
(
RC
.
nrrrc
[
ctxt_pP
->
module_id
]
->
node_type
)
||
NODE_IS_MONOLITHIC
(
RC
.
nrrrc
[
ctxt_pP
->
module_id
]
->
node_type
))
{
if
(
NODE_IS_DU
(
rrc
->
node_type
)
||
NODE_IS_MONOLITHIC
(
rrc
->
node_type
))
{
uint32_t
delay_ms
=
ue_p
->
masterCellGroup
&&
ue_p
->
masterCellGroup
->
spCellConfig
&&
ue_p
->
masterCellGroup
->
spCellConfig
->
spCellConfigDedicated
&&
ue_p
->
masterCellGroup
->
spCellConfig
->
spCellConfigDedicated
->
downlinkBWP_ToAddModList
?
NR_RRC_RECONFIGURATION_DELAY_MS
+
NR_RRC_BWP_SWITCHING_DELAY_MS
:
NR_RRC_RECONFIGURATION_DELAY_MS
;
nr_mac_enable_ue_rrc_processing_timer
(
ctxt_pP
->
module_id
,
ue_p
->
rnti
,
*
RC
.
nrrrc
[
ctxt_pP
->
module_id
]
->
carrier
.
servingcellconfigcommon
->
ssbSubcarrierSpacing
,
delay_ms
);
nr_mac_enable_ue_rrc_processing_timer
(
ctxt_pP
->
module_id
,
ue_p
->
rnti
,
*
rrc
->
carrier
.
servingcellconfigcommon
->
ssbSubcarrierSpacing
,
delay_ms
);
}
}
...
...
@@ -1013,15 +1014,16 @@ rrc_gNB_generate_dedicatedRRCReconfiguration_release(
ctxt_pP
->
module_id
,
DCCH
);
nr_pdcp_data_req_srb
(
ctxt_pP
->
rntiMaybeUEid
,
DCCH
,
rrc_gNB_mui
++
,
size
,
buffer
);
gNB_RRC_INST
*
rrc
=
RC
.
nrrrc
[
ctxt_pP
->
module_id
];
nr_pdcp_data_req_srb
(
ctxt_pP
->
rntiMaybeUEid
,
DCCH
,
rrc_gNB_mui
++
,
size
,
buffer
,
deliver_pdu_srb_f1
,
rrc
);
if
(
NODE_IS_DU
(
RC
.
nrrrc
[
ctxt_pP
->
module_id
]
->
node_type
)
||
NODE_IS_MONOLITHIC
(
RC
.
nrrrc
[
ctxt_pP
->
module_id
]
->
node_type
))
{
if
(
NODE_IS_DU
(
rrc
->
node_type
)
||
NODE_IS_MONOLITHIC
(
rrc
->
node_type
))
{
uint32_t
delay_ms
=
ue_p
->
masterCellGroup
&&
ue_p
->
masterCellGroup
->
spCellConfig
&&
ue_p
->
masterCellGroup
->
spCellConfig
->
spCellConfigDedicated
&&
ue_p
->
masterCellGroup
->
spCellConfig
->
spCellConfigDedicated
->
downlinkBWP_ToAddModList
?
NR_RRC_RECONFIGURATION_DELAY_MS
+
NR_RRC_BWP_SWITCHING_DELAY_MS
:
NR_RRC_RECONFIGURATION_DELAY_MS
;
nr_mac_enable_ue_rrc_processing_timer
(
ctxt_pP
->
module_id
,
ue_p
->
rnti
,
*
RC
.
nrrrc
[
ctxt_pP
->
module_id
]
->
carrier
.
servingcellconfigcommon
->
ssbSubcarrierSpacing
,
delay_ms
);
nr_mac_enable_ue_rrc_processing_timer
(
ctxt_pP
->
module_id
,
ue_p
->
rnti
,
*
rrc
->
carrier
.
servingcellconfigcommon
->
ssbSubcarrierSpacing
,
delay_ms
);
}
}
...
...
@@ -1274,7 +1276,7 @@ void rrc_gNB_generate_RRCReestablishment(const protocol_ctxt_t *ctxt_pP,
apply_macrlc_config_reest
(
rrc
,
ue_context_pP
,
ctxt_pP
,
ctxt_pP
->
rntiMaybeUEid
);
}
nr_pdcp_data_req_srb
(
ctxt_pP
->
rntiMaybeUEid
,
DCCH
,
rrc_gNB_mui
++
,
size
,
buffer
);
nr_pdcp_data_req_srb
(
ctxt_pP
->
rntiMaybeUEid
,
DCCH
,
rrc_gNB_mui
++
,
size
,
buffer
,
deliver_pdu_srb_f1
,
rrc
);
}
//-----------------------------------------------------------------------------
...
...
@@ -1487,7 +1489,7 @@ cellGroupConfig->physicalCellGroupConfig = ue_p->masterCellGroup->physicalCellGr
DCCH
);
nr_mac_update_cellgroup
(
RC
.
nrmac
[
rrc
->
module_id
],
ue_context_pP
->
ue_context
.
rnti
,
cellGroupConfig
);
nr_pdcp_data_req_srb
(
ctxt_pP
->
rntiMaybeUEid
,
DCCH
,
rrc_gNB_mui
++
,
size
,
buffer
);
nr_pdcp_data_req_srb
(
ctxt_pP
->
rntiMaybeUEid
,
DCCH
,
rrc_gNB_mui
++
,
size
,
buffer
,
deliver_pdu_srb_f1
,
rrc
);
}
if
(
NODE_IS_DU
(
RC
.
nrrrc
[
ctxt_pP
->
module_id
]
->
node_type
)
||
NODE_IS_MONOLITHIC
(
RC
.
nrrrc
[
ctxt_pP
->
module_id
]
->
node_type
))
{
...
...
@@ -1538,15 +1540,16 @@ int nr_rrc_reconfiguration_req(rrc_gNB_ue_context_t *const ue_context_pP
nr_mac_update_cellgroup
(
RC
.
nrmac
[
ctxt_pP
->
module_id
],
ue_context_pP
->
ue_context
.
rnti
,
masterCellGroup
);
nr_pdcp_data_req_srb
(
ctxt_pP
->
rntiMaybeUEid
,
DCCH
,
rrc_gNB_mui
++
,
size
,
buffer
);
gNB_RRC_INST
*
rrc
=
RC
.
nrrrc
[
ctxt_pP
->
module_id
];
nr_pdcp_data_req_srb
(
ctxt_pP
->
rntiMaybeUEid
,
DCCH
,
rrc_gNB_mui
++
,
size
,
buffer
,
deliver_pdu_srb_f1
,
rrc
);
if
(
NODE_IS_DU
(
RC
.
nrrrc
[
ctxt_pP
->
module_id
]
->
node_type
)
||
NODE_IS_MONOLITHIC
(
RC
.
nrrrc
[
ctxt_pP
->
module_id
]
->
node_type
))
{
if
(
NODE_IS_DU
(
rrc
->
node_type
)
||
NODE_IS_MONOLITHIC
(
rrc
->
node_type
))
{
uint32_t
delay_ms
=
ue_p
->
masterCellGroup
&&
ue_p
->
masterCellGroup
->
spCellConfig
&&
ue_p
->
masterCellGroup
->
spCellConfig
->
spCellConfigDedicated
&&
ue_p
->
masterCellGroup
->
spCellConfig
->
spCellConfigDedicated
->
downlinkBWP_ToAddModList
?
NR_RRC_RECONFIGURATION_DELAY_MS
+
NR_RRC_BWP_SWITCHING_DELAY_MS
:
NR_RRC_RECONFIGURATION_DELAY_MS
;
nr_mac_enable_ue_rrc_processing_timer
(
ctxt_pP
->
module_id
,
ue_p
->
rnti
,
*
RC
.
nrrrc
[
ctxt_pP
->
module_id
]
->
carrier
.
servingcellconfigcommon
->
ssbSubcarrierSpacing
,
delay_ms
);
nr_mac_enable_ue_rrc_processing_timer
(
ctxt_pP
->
module_id
,
ue_p
->
rnti
,
*
rrc
->
carrier
.
servingcellconfigcommon
->
ssbSubcarrierSpacing
,
delay_ms
);
}
return
0
;
...
...
@@ -3589,7 +3592,7 @@ rrc_gNB_generate_SecurityModeCommand(
gNB_RRC_INST
*
rrc
=
RC
.
nrrrc
[
ctxt_pP
->
module_id
];
AssertFatal
(
!
NODE_IS_DU
(
rrc
->
node_type
),
"illegal node type DU!
\n
"
);
nr_pdcp_data_req_srb
(
ctxt_pP
->
rntiMaybeUEid
,
DCCH
,
rrc_gNB_mui
++
,
size
,
buffer
);
nr_pdcp_data_req_srb
(
ctxt_pP
->
rntiMaybeUEid
,
DCCH
,
rrc_gNB_mui
++
,
size
,
buffer
,
deliver_pdu_srb_f1
,
rrc
);
}
void
...
...
@@ -3615,7 +3618,7 @@ rrc_gNB_generate_UECapabilityEnquiry(
gNB_RRC_INST
*
rrc
=
RC
.
nrrrc
[
ctxt_pP
->
module_id
];
AssertFatal
(
!
NODE_IS_DU
(
rrc
->
node_type
),
"illegal node type DU!
\n
"
);
nr_pdcp_data_req_srb
(
ctxt_pP
->
rntiMaybeUEid
,
DCCH
,
rrc_gNB_mui
++
,
size
,
buffer
);
nr_pdcp_data_req_srb
(
ctxt_pP
->
rntiMaybeUEid
,
DCCH
,
rrc_gNB_mui
++
,
size
,
buffer
,
deliver_pdu_srb_f1
,
rrc
);
}
//-----------------------------------------------------------------------------
...
...
@@ -3649,12 +3652,13 @@ rrc_gNB_generate_RRCRelease(
rrc_gNB_mui
,
DCCH
);
nr_pdcp_data_req_srb
(
ctxt_pP
->
rntiMaybeUEid
,
DCCH
,
rrc_gNB_mui
++
,
size
,
buffer
);
gNB_RRC_INST
*
rrc
=
RC
.
nrrrc
[
ctxt_pP
->
module_id
];
nr_pdcp_data_req_srb
(
ctxt_pP
->
rntiMaybeUEid
,
DCCH
,
rrc_gNB_mui
++
,
size
,
buffer
,
deliver_pdu_srb_f1
,
rrc
);
rrc_gNB_send_NGAP_UE_CONTEXT_RELEASE_COMPLETE
(
ctxt_pP
->
instance
,
ue_context_pP
->
ue_context
.
gNB_ue_ngap_id
);
ue_context_pP
->
ue_context
.
ue_release_timer_rrc
=
1
;
if
(
NODE_IS_CU
(
RC
.
nrrrc
[
ctxt_pP
->
module_id
]
->
node_type
))
{
if
(
NODE_IS_CU
(
rrc
->
node_type
))
{
uint8_t
*
message_buffer
=
itti_malloc
(
TASK_RRC_GNB
,
TASK_CU_F1
,
size
);
memcpy
(
message_buffer
,
buffer
,
size
);
MessageDef
*
m
=
itti_alloc_new_message
(
TASK_RRC_GNB
,
0
,
F1AP_UE_CONTEXT_RELEASE_CMD
);
...
...
openair2/RRC/NR/rrc_gNB_NGAP.c
View file @
6529d875
...
...
@@ -620,7 +620,7 @@ int rrc_gNB_process_NGAP_DOWNLINK_NAS(MessageDef *msg_p, instance_t instance, mu
AssertFatal
(
!
NODE_IS_DU
(
RC
.
nrrrc
[
ctxt
.
module_id
]
->
node_type
),
"illegal node type DU: receiving NGAP messages at this node
\n
"
);
/* Transfer data to PDCP */
rb_id_t
srb_id
=
UE
->
Srb
[
2
].
Active
?
DCCH1
:
DCCH
;
nr_pdcp_data_req_srb
(
ctxt
.
rntiMaybeUEid
,
srb_id
,
(
*
rrc_gNB_mui
)
++
,
length
,
buffer
);
nr_pdcp_data_req_srb
(
ctxt
.
rntiMaybeUEid
,
srb_id
,
(
*
rrc_gNB_mui
)
++
,
length
,
buffer
,
deliver_pdu_srb_f1
,
RC
.
nrrrc
[
instance
]
);
return
0
;
}
...
...
openair2/RRC/NR_UE/rrc_UE.c
View file @
6529d875
...
...
@@ -1386,7 +1386,7 @@ static void rrc_ue_generate_RRCSetupComplete(
//for (int i=0;i<size;i++) printf("%02x ",buffer[i]);
//printf("\n");
nr_pdcp_data_req_srb
(
ctxt_pP
->
rntiMaybeUEid
,
DCCH
,
nr_rrc_mui
++
,
size
,
buffer
);
nr_pdcp_data_req_srb
(
ctxt_pP
->
rntiMaybeUEid
,
DCCH
,
nr_rrc_mui
++
,
size
,
buffer
,
deliver_pdu_srb_rlc
,
NULL
);
}
int8_t
nr_rrc_ue_decode_ccch
(
const
protocol_ctxt_t
*
const
ctxt_pP
,
const
NR_SRB_INFO
*
const
Srb_info
,
const
uint8_t
gNB_index
){
...
...
@@ -1691,7 +1691,7 @@ int8_t nr_rrc_ue_decode_ccch( const protocol_ctxt_t *const ctxt_pP, const NR_SRB
}
LOG_T
(
NR_RRC
,
"
\n
"
);
nr_pdcp_data_req_srb
(
ctxt_pP
->
rntiMaybeUEid
,
DCCH
,
nr_rrc_mui
++
,
(
enc_rval
.
encoded
+
7
)
/
8
,
buffer
);
nr_pdcp_data_req_srb
(
ctxt_pP
->
rntiMaybeUEid
,
DCCH
,
nr_rrc_mui
++
,
(
enc_rval
.
encoded
+
7
)
/
8
,
buffer
,
deliver_pdu_srb_rlc
,
NULL
);
}
else
LOG_W
(
NR_RRC
,
"securityModeCommand->criticalExtensions.present (%d) != NR_SecurityModeCommand__criticalExtensions_PR_securityModeCommand
\n
"
,
securityModeCommand
->
criticalExtensions
.
present
);
...
...
@@ -2177,7 +2177,7 @@ nr_rrc_ue_establish_srb2(
nr_rrc_mui
,
UE_MODULE_ID_TO_INSTANCE
(
ctxt_pP
->
module_id
),
DCCH
);
nr_pdcp_data_req_srb
(
ctxt_pP
->
rntiMaybeUEid
,
DCCH
,
nr_rrc_mui
++
,
size
,
buffer
);
nr_pdcp_data_req_srb
(
ctxt_pP
->
rntiMaybeUEid
,
DCCH
,
nr_rrc_mui
++
,
size
,
buffer
,
deliver_pdu_srb_rlc
,
NULL
);
}
// from NR SRB1
...
...
@@ -2427,7 +2427,7 @@ nr_rrc_ue_establish_srb2(
PROTOCOL_CTXT_SET_BY_MODULE_ID
(
&
ctxt
,
ue_mod_id
,
GNB_FLAG_NO
,
NR_UE_rrc_inst
[
ue_mod_id
].
Info
[
0
].
rnti
,
0
,
0
,
0
);
// check if SRB2 is created, if yes request data_req on DCCH1 (SRB2)
rb_id_t
srb_id
=
NR_UE_rrc_inst
[
ue_mod_id
].
SRB2_config
[
0
]
==
NULL
?
DCCH
:
DCCH1
;
nr_pdcp_data_req_srb
(
ctxt
.
rntiMaybeUEid
,
srb_id
,
nr_rrc_mui
++
,
length
,
buffer
);
nr_pdcp_data_req_srb
(
ctxt
.
rntiMaybeUEid
,
srb_id
,
nr_rrc_mui
++
,
length
,
buffer
,
deliver_pdu_srb_rlc
,
NULL
);
break
;
}
...
...
@@ -2571,7 +2571,7 @@ nr_rrc_ue_process_ueCapabilityEnquiry(
}
LOG_I
(
NR_RRC
,
"UECapabilityInformation Encoded %zd bits (%zd bytes)
\n
"
,
enc_rval
.
encoded
,(
enc_rval
.
encoded
+
7
)
/
8
);
nr_pdcp_data_req_srb
(
ctxt_pP
->
rntiMaybeUEid
,
DCCH
,
nr_rrc_mui
++
,
(
enc_rval
.
encoded
+
7
)
/
8
,
buffer
);
nr_pdcp_data_req_srb
(
ctxt_pP
->
rntiMaybeUEid
,
DCCH
,
nr_rrc_mui
++
,
(
enc_rval
.
encoded
+
7
)
/
8
,
buffer
,
deliver_pdu_srb_rlc
,
NULL
);
}
}
}
...
...
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