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
lizhongxiao
OpenXG-RAN
Commits
070b1664
Commit
070b1664
authored
Nov 04, 2022
by
Swetank Srivastava
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix upto reception of securityModeCommand
parent
28345c7a
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
159 additions
and
50 deletions
+159
-50
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_RA.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_RA.c
+13
-0
openair3/SS/ss_gNB_port_man_task.c
openair3/SS/ss_gNB_port_man_task.c
+7
-0
openair3/SS/ss_gNB_sys_task.c
openair3/SS/ss_gNB_sys_task.c
+137
-49
openair3/SS/ss_gNB_sys_task.h
openair3/SS/ss_gNB_sys_task.h
+2
-1
No files found.
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_RA.c
View file @
070b1664
...
@@ -1236,6 +1236,9 @@ void nr_generate_Msg2(module_id_t module_idP, int CC_id, frame_t frameP, sub_fra
...
@@ -1236,6 +1236,9 @@ void nr_generate_Msg2(module_id_t module_idP, int CC_id, frame_t frameP, sub_fra
LOG_D
(
NR_MAC
,
"swetank: BWPStart:%d BWPSize:%d beam_id:%d
\n
"
,
BWPStart
,
BWPSize
,
ra
->
beam_id
);
LOG_D
(
NR_MAC
,
"swetank: BWPStart:%d BWPSize:%d beam_id:%d
\n
"
,
BWPStart
,
BWPSize
,
ra
->
beam_id
);
}
}
if
(
RC
.
ss
.
mode
==
SS_SOFTMODEM
)
BWPStart
=
27
;
// Calculate number of symbols
// Calculate number of symbols
int
startSymbolIndex
,
nrOfSymbols
;
int
startSymbolIndex
,
nrOfSymbols
;
const
int
startSymbolAndLength
=
pdsch_TimeDomainAllocationList
->
list
.
array
[
time_domain_assignment
]
->
startSymbolAndLength
;
const
int
startSymbolAndLength
=
pdsch_TimeDomainAllocationList
->
list
.
array
[
time_domain_assignment
]
->
startSymbolAndLength
;
...
@@ -1707,6 +1710,16 @@ void nr_generate_Msg4(module_id_t module_idP, int CC_id, frame_t frameP, sub_fra
...
@@ -1707,6 +1710,16 @@ void nr_generate_Msg4(module_id_t module_idP, int CC_id, frame_t frameP, sub_fra
rbSize
,
nrOfSymbols
,
N_PRB_DMRS
*
N_DMRS_SLOT
,
0
,
tb_scaling
,
1
)
>>
3
;
rbSize
,
nrOfSymbols
,
N_PRB_DMRS
*
N_DMRS_SLOT
,
0
,
tb_scaling
,
1
)
>>
3
;
}
while
(
harq
->
tb_size
<
ra
->
mac_pdu_length
&&
mcsIndex
<=
28
);
}
while
(
harq
->
tb_size
<
ra
->
mac_pdu_length
&&
mcsIndex
<=
28
);
LOG_D
(
NR_MAC
,
"swetank: rbSize:%d rbStart:%d BWPSize:%d BWPStart:%d startSymbolIndex:%d nrOfSymbols:%d
\n
"
,
rbSize
,
rbStart
,
BWPSize
,
BWPStart
,
startSymbolIndex
,
nrOfSymbols
);
if
(
RC
.
ss
.
mode
==
SS_SOFTMODEM
)
BWPStart
=
27
;
int
i
=
0
;
int
i
=
0
;
while
((
i
<
rbSize
)
&&
(
rbStart
+
rbSize
<=
BWPSize
))
{
while
((
i
<
rbSize
)
&&
(
rbStart
+
rbSize
<=
BWPSize
))
{
if
(
vrb_map
[
BWPStart
+
rbStart
+
i
]
&
SL_to_bitmap
(
startSymbolIndex
,
nrOfSymbols
))
{
if
(
vrb_map
[
BWPStart
+
rbStart
+
i
]
&
SL_to_bitmap
(
startSymbolIndex
,
nrOfSymbols
))
{
...
...
openair3/SS/ss_gNB_port_man_task.c
View file @
070b1664
...
@@ -83,6 +83,13 @@ void ss_nr_port_man_send_cnf(struct NR_SYSTEM_CTRL_CNF recvCnf)
...
@@ -83,6 +83,13 @@ void ss_nr_port_man_send_cnf(struct NR_SYSTEM_CTRL_CNF recvCnf)
case
NR_SystemConfirm_Type_CellAttenuationList
:
case
NR_SystemConfirm_Type_CellAttenuationList
:
cnf
.
Confirm
.
v
.
CellAttenuationList
=
true
;
cnf
.
Confirm
.
v
.
CellAttenuationList
=
true
;
break
;
break
;
case
NR_SystemConfirm_Type_PdcpCount
:
cnf
.
Confirm
.
v
.
PdcpCount
.
d
=
recvCnf
.
Confirm
.
v
.
PdcpCount
.
d
;
cnf
.
Confirm
.
v
.
PdcpCount
.
v
=
recvCnf
.
Confirm
.
v
.
PdcpCount
.
v
;
break
;
case
NR_SystemConfirm_Type_AS_Security
:
cnf
.
Confirm
.
v
.
AS_Security
=
true
;
break
;
default:
default:
LOG_A
(
GNB_APP
,
"[SYS] Error not handled CNF TYPE to [SS-PORTMAN] %d
\n
"
,
recvCnf
.
Confirm
.
d
);
LOG_A
(
GNB_APP
,
"[SYS] Error not handled CNF TYPE to [SS-PORTMAN] %d
\n
"
,
recvCnf
.
Confirm
.
d
);
}
}
...
...
openair3/SS/ss_gNB_sys_task.c
View file @
070b1664
...
@@ -64,6 +64,24 @@ static int sys_5G_send_init_udp(const udpSockReq_t *req);
...
@@ -64,6 +64,24 @@ static int sys_5G_send_init_udp(const udpSockReq_t *req);
static
void
sys_5G_send_proxy
(
void
*
msg
,
int
msgLen
);
static
void
sys_5G_send_proxy
(
void
*
msg
,
int
msgLen
);
int
proxy_5G_send_port
=
7776
;
int
proxy_5G_send_port
=
7776
;
int
proxy_5G_recv_port
=
7770
;
int
proxy_5G_recv_port
=
7770
;
bool
ss_task_sys_nr_handle_pdcpCount
(
struct
NR_SYSTEM_CTRL_REQ
*
req
);
/*
* Utility function to convert integer to binary
*
*/
static
void
int_to_bin
(
uint32_t
in
,
int
count
,
uint8_t
*
out
)
{
/* assert: count <= sizeof(int)*CHAR_BIT */
uint32_t
mask
=
1U
<<
(
count
-
1
);
int
i
;
for
(
i
=
0
;
i
<
count
;
i
++
)
{
out
[
i
]
=
(
in
&
mask
)
?
1
:
0
;
in
<<=
1
;
}
}
/*
/*
...
@@ -80,7 +98,7 @@ static void send_sys_cnf(enum ConfirmationResult_Type_Sel resType,
...
@@ -80,7 +98,7 @@ static void send_sys_cnf(enum ConfirmationResult_Type_Sel resType,
enum
NR_SystemConfirm_Type_Sel
cnfType
,
enum
NR_SystemConfirm_Type_Sel
cnfType
,
void
*
msg
)
void
*
msg
)
{
{
LOG_A
(
GNB_APP
,
"[SYS-GNB] Entry in fxn:%s
\n
"
,
__FUNCTION__
);
LOG_A
(
GNB_APP
,
"[SYS-GNB] Entry in fxn:%s
\n
"
,
__FUNCTION__
);
struct
NR_SYSTEM_CTRL_CNF
*
msgCnf
=
CALLOC
(
1
,
sizeof
(
struct
NR_SYSTEM_CTRL_CNF
));
struct
NR_SYSTEM_CTRL_CNF
*
msgCnf
=
CALLOC
(
1
,
sizeof
(
struct
NR_SYSTEM_CTRL_CNF
));
MessageDef
*
message_p
=
itti_alloc_new_message
(
TASK_SYS_GNB
,
INSTANCE_DEFAULT
,
SS_NR_SYS_PORT_MSG_CNF
);
MessageDef
*
message_p
=
itti_alloc_new_message
(
TASK_SYS_GNB
,
INSTANCE_DEFAULT
,
SS_NR_SYS_PORT_MSG_CNF
);
...
@@ -106,6 +124,20 @@ static void send_sys_cnf(enum ConfirmationResult_Type_Sel resType,
...
@@ -106,6 +124,20 @@ static void send_sys_cnf(enum ConfirmationResult_Type_Sel resType,
msgCnf
->
Confirm
.
v
.
Cell
=
true
;
msgCnf
->
Confirm
.
v
.
Cell
=
true
;
break
;
break
;
}
}
case
NR_SystemConfirm_Type_PdcpCount
:
{
if
(
msg
)
memcpy
(
&
msgCnf
->
Confirm
.
v
.
PdcpCount
,
msg
,
sizeof
(
struct
NR_PDCP_CountCnf_Type
));
else
SS_NR_SYS_PORT_MSG_CNF
(
message_p
).
cnf
=
msgCnf
;
break
;
}
case
NR_SystemConfirm_Type_AS_Security
:
{
LOG_A
(
GNB_APP
,
"[SYS-GNB] Send confirm for cell configuration NR_SystemConfirm_Type_AS_Security
\n
"
);
msgCnf
->
Confirm
.
v
.
AS_Security
=
true
;
break
;
}
default:
default:
LOG_A
(
GNB_APP
,
"[SYS-GNB] Error not handled CNF TYPE to [SS-PORTMAN-GNB]"
);
LOG_A
(
GNB_APP
,
"[SYS-GNB] Error not handled CNF TYPE to [SS-PORTMAN-GNB]"
);
}
}
...
@@ -195,12 +227,12 @@ static void ss_task_sys_nr_handle_req(struct NR_SYSTEM_CTRL_REQ *req, ss_nrset_t
...
@@ -195,12 +227,12 @@ static void ss_task_sys_nr_handle_req(struct NR_SYSTEM_CTRL_REQ *req, ss_nrset_t
cellConfig
->
initialAttenuation
=
0
;
cellConfig
->
initialAttenuation
=
0
;
cellConfig
->
header
.
cell_id
=
SS_context
.
eutra_cellId
;
cellConfig
->
header
.
cell_id
=
SS_context
.
eutra_cellId
;
cellConfig
->
maxRefPower
=
p_cellConfig
->
CellConfigCommon
.
v
.
InitialCellPower
.
v
.
MaxReferencePower
;
cellConfig
->
maxRefPower
=
p_cellConfig
->
CellConfigCommon
.
v
.
InitialCellPower
.
v
.
MaxReferencePower
;
cellConfig
->
absoluteFrequency
=
RC
.
nrrrc
[
0
]
->
configuration
.
scc
->
downlinkConfigCommon
->
frequencyInfoDL
->
absoluteFrequencyPointA
;
cellConfig
->
absoluteFrequency
PointA
=
p_cellConfig
->
PhysicalLayer
.
v
.
Downlink
.
v
.
FrequencyInfoDL
.
v
.
v
.
R15
.
absoluteFrequencyPointA
;
LOG_A
(
ENB_SS
,
"5G Cell configuration received for cell_id: %d Initial attenuation: %d \
LOG_A
(
ENB_SS
,
"5G Cell configuration rece
6
ived for cell_id: %d Initial attenuation: %d \
Max ref power: %d
\n
for absoluteFrequencyPointA : %d ===================================
\n
"
,
Max ref power: %d
\n
for absoluteFrequencyPointA : %d ===================================
\n
"
,
cellConfig
->
header
.
cell_id
,
cellConfig
->
header
.
cell_id
,
cellConfig
->
initialAttenuation
,
cellConfig
->
maxRefPower
,
cellConfig
->
initialAttenuation
,
cellConfig
->
maxRefPower
,
cellConfig
->
absoluteFrequency
);
cellConfig
->
absoluteFrequency
PointA
);
//send_to_proxy();
//send_to_proxy();
sys_5G_send_proxy
((
void
*
)
cellConfig
,
sizeof
(
CellConfig5GReq_t
));
sys_5G_send_proxy
((
void
*
)
cellConfig
,
sizeof
(
CellConfig5GReq_t
));
}
}
...
@@ -222,6 +254,12 @@ static void ss_task_sys_nr_handle_req(struct NR_SYSTEM_CTRL_REQ *req, ss_nrset_t
...
@@ -222,6 +254,12 @@ static void ss_task_sys_nr_handle_req(struct NR_SYSTEM_CTRL_REQ *req, ss_nrset_t
{
{
switch
(
req
->
Request
.
d
)
switch
(
req
->
Request
.
d
)
{
{
case
NR_SystemRequest_Type_Cell
:
{
LOG_A
(
GNB_APP
,
"[SYS-GNB] Dummy handling for Cell Config 5G NR_SystemRequest_Type_Cell
\n
"
);
send_sys_cnf
(
ConfirmationResult_Type_Success
,
TRUE
,
NR_SystemConfirm_Type_Cell
,
NULL
);
}
break
;
case
NR_SystemRequest_Type_EnquireTiming
:
case
NR_SystemRequest_Type_EnquireTiming
:
{
{
sys_handle_nr_enquire_timing
(
tinfo
);
sys_handle_nr_enquire_timing
(
tinfo
);
...
@@ -248,12 +286,27 @@ static void ss_task_sys_nr_handle_req(struct NR_SYSTEM_CTRL_REQ *req, ss_nrset_t
...
@@ -248,12 +286,27 @@ static void ss_task_sys_nr_handle_req(struct NR_SYSTEM_CTRL_REQ *req, ss_nrset_t
}
}
}
}
break
;
break
;
default:
case
NR_SystemRequest_Type_PdcpCount
:
{
LOG_A
(
GNB_APP
,
"[SYS-GNB] NR_SystemRequest_Type_PdcpCount received
\n
"
);
if
(
false
==
ss_task_sys_nr_handle_pdcpCount
(
&
req
))
{
{
LOG_
E
(
GNB_APP
,
"[SYS-GNB] Error ! SS_STATE %d Invalid SystemRequest_Type %d received
\n
"
,
LOG_
A
(
GNB_APP
,
"[SYS-GNB] Error handling Cell Config 5G for NR_SystemRequest_Type_PdcpCount
\n
"
);
RC
.
ss
.
State
,
req
->
Request
.
d
)
;
return
;
}
}
}
}
break
;
case
NR_SystemRequest_Type_AS_Security
:
{
LOG_A
(
GNB_APP
,
"[SYS-GNB] Dummy handling for Cell Config 5G NR_SystemRequest_Type_AS_Security
\n
"
);
send_sys_cnf
(
ConfirmationResult_Type_Success
,
TRUE
,
NR_SystemConfirm_Type_Cell
,
NULL
);
}
default:
{
LOG_E
(
GNB_APP
,
"[SYS-GNB] Error ! SS_STATE %d Invalid SystemRequest_Type %d received
\n
"
,
RC
.
ss
.
State
,
req
->
Request
.
d
);
}
}
}
}
break
;
break
;
default:
default:
...
@@ -288,46 +341,52 @@ bool valid_nr_sys_msg(struct NR_SYSTEM_CTRL_REQ *req)
...
@@ -288,46 +341,52 @@ bool valid_nr_sys_msg(struct NR_SYSTEM_CTRL_REQ *req)
LOG_A
(
GNB_APP
,
"[SYS-GNB] received req : %d for cell %d RC.ss.state %d
\n
"
,
LOG_A
(
GNB_APP
,
"[SYS-GNB] received req : %d for cell %d RC.ss.state %d
\n
"
,
req
->
Request
.
d
,
req
->
Common
.
CellId
,
RC
.
ss
.
State
);
req
->
Request
.
d
,
req
->
Common
.
CellId
,
RC
.
ss
.
State
);
switch
(
req
->
Request
.
d
)
switch
(
req
->
Request
.
d
)
{
{
case
NR_SystemRequest_Type_Cell
:
case
NR_SystemRequest_Type_Cell
:
if
(
RC
.
ss
.
State
>=
SS_STATE_NOT_CONFIGURED
)
if
(
RC
.
ss
.
State
>=
SS_STATE_NOT_CONFIGURED
)
{
{
valid
=
TRUE
;
valid
=
TRUE
;
sendDummyCnf
=
FALSE
;
sendDummyCnf
=
FALSE
;
reqCnfFlag_g
=
req
->
Common
.
ControlInfo
.
CnfFlag
;
reqCnfFlag_g
=
req
->
Common
.
ControlInfo
.
CnfFlag
;
}
}
else
else
{
{
cnfType
=
NR_SystemConfirm_Type_Cell
;
cnfType
=
NR_SystemConfirm_Type_Cell
;
}
}
break
;
break
;
case
NR_SystemRequest_Type_EnquireTiming
:
case
NR_SystemRequest_Type_EnquireTiming
:
valid
=
TRUE
;
valid
=
TRUE
;
sendDummyCnf
=
FALSE
;
sendDummyCnf
=
FALSE
;
break
;
break
;
case
NR_SystemRequest_Type_DeltaValues
:
case
NR_SystemRequest_Type_DeltaValues
:
valid
=
TRUE
;
valid
=
TRUE
;
sendDummyCnf
=
FALSE
;
sendDummyCnf
=
FALSE
;
break
;
break
;
case
NR_SystemRequest_Type_RadioBearerList
:
case
NR_SystemRequest_Type_RadioBearerList
:
valid
=
TRUE
;
valid
=
TRUE
;
sendDummyCnf
=
FALSE
;
sendDummyCnf
=
FALSE
;
cnfType
=
NR_SystemConfirm_Type_RadioBearerList
;
cnfType
=
NR_SystemConfirm_Type_RadioBearerList
;
break
;
break
;
case
NR_SystemRequest_Type_CellAttenuationList
:
case
NR_SystemRequest_Type_CellAttenuationList
:
valid
=
TRUE
;
valid
=
TRUE
;
sendDummyCnf
=
FALSE
;
sendDummyCnf
=
FALSE
;
cnfType
=
NR_SystemConfirm_Type_CellAttenuationList
;
cnfType
=
NR_SystemConfirm_Type_CellAttenuationList
;
break
;
break
;
case
NR_SystemRequest_Type_AS_Security
:
case
NR_SystemRequest_Type_AS_Security
:
valid
=
FALS
E
;
valid
=
TRU
E
;
sendDummyCnf
=
TRUE
;
sendDummyCnf
=
TRUE
;
cnfType
=
NR_SystemConfirm_Type_AS_Security
;
cnfType
=
NR_SystemConfirm_Type_AS_Security
;
break
;
reqCnfFlag_g
=
req
->
Common
.
ControlInfo
.
CnfFlag
;
default:
break
;
valid
=
FALSE
;
case
NR_SystemRequest_Type_PdcpCount
:
sendDummyCnf
=
FALSE
;
valid
=
TRUE
;
}
sendDummyCnf
=
FALSE
;
cnfType
=
NR_SystemConfirm_Type_PdcpCount
;
break
;
default:
valid
=
FALSE
;
sendDummyCnf
=
FALSE
;
}
if
(
sendDummyCnf
)
if
(
sendDummyCnf
)
{
{
send_sys_cnf
(
resType
,
resVal
,
cnfType
,
NULL
);
send_sys_cnf
(
resType
,
resVal
,
cnfType
,
NULL
);
...
@@ -399,7 +458,7 @@ void *ss_gNB_sys_process_itti_msg(void *notUsed)
...
@@ -399,7 +458,7 @@ void *ss_gNB_sys_process_itti_msg(void *notUsed)
LOG_E
(
GNB_APP
,
"[TASK_SYS_GNB] received unhandled message
\n
"
);
LOG_E
(
GNB_APP
,
"[TASK_SYS_GNB] received unhandled message
\n
"
);
}
}
}
}
break
;
case
TERMINATE_MESSAGE
:
case
TERMINATE_MESSAGE
:
{
{
itti_exit_task
();
itti_exit_task
();
...
@@ -743,7 +802,7 @@ bool ss_task_sys_nr_handle_cellConfigAttenuation(struct NR_SYSTEM_CTRL_REQ *req)
...
@@ -743,7 +802,7 @@ bool ss_task_sys_nr_handle_cellConfigAttenuation(struct NR_SYSTEM_CTRL_REQ *req)
if
(
message_p
)
if
(
message_p
)
{
{
LOG_A
(
GNB_APP
,
"[SYS-GNB] Send SS_NR_SYS_PORT_MSG_CNF
\n
"
);
LOG_A
(
GNB_APP
,
"[SYS-GNB] Send SS_NR_SYS_PORT_MSG_CNF
\n
"
);
msgCnf
->
Common
.
CellId
=
SS_context
.
eutra_cellId
;
msgCnf
->
Common
.
CellId
=
nr_Cell_NonSpecific
;
msgCnf
->
Common
.
Result
.
d
=
ConfirmationResult_Type_Success
;
msgCnf
->
Common
.
Result
.
d
=
ConfirmationResult_Type_Success
;
msgCnf
->
Common
.
Result
.
v
.
Success
=
true
;
msgCnf
->
Common
.
Result
.
v
.
Success
=
true
;
msgCnf
->
Confirm
.
d
=
NR_SystemConfirm_Type_CellAttenuationList
;
msgCnf
->
Confirm
.
d
=
NR_SystemConfirm_Type_CellAttenuationList
;
...
@@ -753,12 +812,12 @@ bool ss_task_sys_nr_handle_cellConfigAttenuation(struct NR_SYSTEM_CTRL_REQ *req)
...
@@ -753,12 +812,12 @@ bool ss_task_sys_nr_handle_cellConfigAttenuation(struct NR_SYSTEM_CTRL_REQ *req)
int
send_res
=
itti_send_msg_to_task
(
TASK_SS_PORTMAN_GNB
,
INSTANCE_DEFAULT
,
message_p
);
int
send_res
=
itti_send_msg_to_task
(
TASK_SS_PORTMAN_GNB
,
INSTANCE_DEFAULT
,
message_p
);
if
(
send_res
<
0
)
if
(
send_res
<
0
)
{
{
LOG_A
(
GNB_APP
,
"[SYS-GNB] Error sending to [SS-PORTMAN-GNB]"
);
LOG_A
(
GNB_APP
,
"[SYS-GNB] Error sending to [SS-PORTMAN-GNB]
\n
"
);
return
false
;
return
false
;
}
}
else
else
{
{
LOG_A
(
GNB_APP
,
"[SYS-GNB] fxn:%s NR_SYSTEM_CTRL_CNF sent for cnfType:CellAttenuationList to Port Manager"
,
__FUNCTION__
);
LOG_A
(
GNB_APP
,
"[SYS-GNB] fxn:%s NR_SYSTEM_CTRL_CNF sent for cnfType:CellAttenuationList to Port Manager
\n
"
,
__FUNCTION__
);
}
}
}
}
LOG_A
(
GNB_APP
,
"[SYS-GNB] Exit from fxn:%s
\n
"
,
__FUNCTION__
);
LOG_A
(
GNB_APP
,
"[SYS-GNB] Exit from fxn:%s
\n
"
,
__FUNCTION__
);
...
@@ -847,3 +906,32 @@ static int sys_5G_send_init_udp(const udpSockReq_t *req)
...
@@ -847,3 +906,32 @@ static int sys_5G_send_init_udp(const udpSockReq_t *req)
}
}
bool
ss_task_sys_nr_handle_pdcpCount
(
struct
NR_SYSTEM_CTRL_REQ
*
req
)
{
LOG_A
(
ENB_SS
,
"Entry in fxn:%s
\n
"
,
__FUNCTION__
);
struct
NR_PDCP_CountCnf_Type
PdcpCount
;
PdcpCount
.
d
=
NR_PDCP_CountCnf_Type_Get
;
PdcpCount
.
v
.
Get
.
d
=
2
;
const
size_t
size
=
sizeof
(
struct
NR_PdcpCountInfo_Type
)
*
PdcpCount
.
v
.
Get
.
d
;
PdcpCount
.
v
.
Get
.
v
=
(
struct
NR_PdcpCountInfo_Type
*
)
acpMalloc
(
size
);
for
(
int
i
=
0
;
i
<
PdcpCount
.
v
.
Get
.
d
;
i
++
)
{
PdcpCount
.
v
.
Get
.
v
[
i
].
RadioBearerId
.
d
=
NR_RadioBearerId_Type_Srb
;
PdcpCount
.
v
.
Get
.
v
[
i
].
RadioBearerId
.
v
.
Srb
=
1
;
PdcpCount
.
v
.
Get
.
v
[
i
].
UL
.
d
=
true
;
PdcpCount
.
v
.
Get
.
v
[
i
].
DL
.
d
=
true
;
PdcpCount
.
v
.
Get
.
v
[
i
].
UL
.
v
.
Format
=
E_PdcpCount_Srb
;
PdcpCount
.
v
.
Get
.
v
[
i
].
DL
.
v
.
Format
=
E_PdcpCount_Srb
;
int_to_bin
(
1
,
32
,
PdcpCount
.
v
.
Get
.
v
[
i
].
UL
.
v
.
Value
);
int_to_bin
(
1
,
32
,
PdcpCount
.
v
.
Get
.
v
[
i
].
DL
.
v
.
Value
);
}
send_sys_cnf
(
ConfirmationResult_Type_Success
,
TRUE
,
NR_SystemConfirm_Type_PdcpCount
,
(
void
*
)
&
PdcpCount
);
LOG_A
(
ENB_SS
,
"Exit from fxn:%s
\n
"
,
__FUNCTION__
);
return
true
;
}
openair3/SS/ss_gNB_sys_task.h
View file @
070b1664
...
@@ -29,7 +29,8 @@ typedef struct CellConfig5GReq_s
...
@@ -29,7 +29,8 @@ typedef struct CellConfig5GReq_s
proxy_ss_header_t
header
;
proxy_ss_header_t
header
;
int16_t
maxRefPower
;
int16_t
maxRefPower
;
uint8_t
initialAttenuation
;
uint8_t
initialAttenuation
;
long
absoluteFrequency
;
uint16_t
dl_earfcn
;
long
absoluteFrequencyPointA
;
}
CellConfig5GReq_t
;
}
CellConfig5GReq_t
;
typedef
enum
_sys_Type
typedef
enum
_sys_Type
...
...
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