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
4deef348
Commit
4deef348
authored
Nov 01, 2022
by
Vaibhav Shrivastava
Committed by
jperaldi
Nov 17, 2022
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Attenuation Changes for MultiCell
parent
c6d30be9
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
37 additions
and
31 deletions
+37
-31
openair3/SS/ss_eNB_context.h
openair3/SS/ss_eNB_context.h
+1
-1
openair3/SS/ss_eNB_sys_task.c
openair3/SS/ss_eNB_sys_task.c
+36
-30
No files found.
openair3/SS/ss_eNB_context.h
View file @
4deef348
...
...
@@ -71,7 +71,7 @@ typedef struct SSConfigContext_s {
ss_set_timinfo_t
vtinfo
;
hash_table_t
*
vt_timer_table
;
// key is SFN_SF
bool
send_atten_cnf
;
/** TODO: To add more */
}
SSConfigContext_t
;
...
...
openair3/SS/ss_eNB_sys_task.c
View file @
4deef348
...
...
@@ -1202,9 +1202,9 @@ static void sys_send_proxy(void *msg, int msgLen)
* Function : sys_cell_attn_update
* Description: Sends the attenuation updates received from TTCN to proxy
*/
static
void
sys_cell_attn_update
(
uint8_t
cellId
,
uint8_t
attnVal
)
static
void
sys_cell_attn_update
(
uint8_t
cellId
,
uint8_t
attnVal
,
int
CellIndex
)
{
LOG_A
(
ENB_SS
,
"In sys_cell_attn_update
\n
"
);
LOG_A
(
ENB_SS
,
"In sys_cell_attn_update
, cellIndex:%d
\n
"
,
CellIndex
);
attenuationConfigReq_t
*
attnConf
=
NULL
;
uint32_t
peerIpAddr
;
uint16_t
peerPort
=
proxy_send_port
;
...
...
@@ -1212,10 +1212,10 @@ static void sys_cell_attn_update(uint8_t cellId, uint8_t attnVal)
attnConf
=
(
attenuationConfigReq_t
*
)
calloc
(
1
,
sizeof
(
attenuationConfigReq_t
));
attnConf
->
header
.
preamble
=
0xFEEDC0DE
;
attnConf
->
header
.
msg_id
=
SS_ATTN_LIST
;
attnConf
->
header
.
cell_id
=
SS_context
.
SSCell_list
[
cell_index
].
PhysicalCellId
;
attnConf
->
header
.
cell_index
=
cell_index
;
printf
(
"Attn send to proxy cell_index %d
\n
"
,
cell_index
);
attnConf
->
header
.
cell_id
=
SS_context
.
SSCell_list
[
CellIndex
].
PhysicalCellId
;
attnConf
->
header
.
cell_index
=
CellIndex
;
attnConf
->
attnVal
=
attnVal
;
SS_context
.
send_atten_cnf
=
false
;
IPV4_STR_ADDR_TO_INT_NWBO
(
local_address
,
peerIpAddr
,
" BAD IP Address"
);
/** Send to proxy */
...
...
@@ -1229,32 +1229,35 @@ static void sys_cell_attn_update(uint8_t cellId, uint8_t attnVal)
*/
static
void
sys_handle_cell_attn_req
(
struct
CellAttenuationConfig_Type_CellAttenuationList_Type_Dynamic
*
CellAttenuationList
)
{
/** TODO: Considering only one cell for now */
uint8_t
cellId
=
(
uint8_t
)
CellAttenuationList
->
v
->
CellId
;
uint8_t
attnVal
=
0
;
// default set it Off
for
(
int
i
=
0
;
i
<
CellAttenuationList
->
d
;
i
++
)
{
uint8_t
cellId
=
(
uint8_t
)
CellAttenuationList
->
v
[
i
].
CellId
;
uint8_t
CellIndex
=
get_cell_index
(
cellId
,
SS_context
.
SSCell_list
);
uint8_t
attnVal
=
0
;
// default set it Off
switch
(
CellAttenuationList
->
v
->
Attenuation
.
d
)
{
case
Attenuation_Type_Value
:
attnVal
=
CellAttenuationList
->
v
->
Attenuation
.
v
.
Value
;
LOG_A
(
ENB_SS
,
"[SYS] CellAttenuationList for Cell_id %d value %d dBm received
\n
"
,
cellId
,
attnVal
);
sys_cell_attn_update
(
cellId
,
attnVal
);
break
;
case
Attenuation_Type_Off
:
LOG_A
(
ENB_SS
,
"[SYS] CellAttenuationList turn off for Cell_id %d received
\n
"
,
cellId
);
sys_cell_attn_update
(
cellId
,
attnVal
);
break
;
case
Attenuation_Type_UNBOUND_VALUE
:
LOG_A
(
ENB_SS
,
"[SYS] CellAttenuationList Attenuation_Type_UNBOUND_VALUE received
\n
"
);
break
;
default:
LOG_A
(
ENB_SS
,
"[SYS] Invalid CellAttenuationList received
\n
"
);
switch
(
CellAttenuationList
->
v
[
i
].
Attenuation
.
d
)
{
case
Attenuation_Type_Value
:
attnVal
=
CellAttenuationList
->
v
[
i
].
Attenuation
.
v
.
Value
;
LOG_A
(
ENB_SS
,
"[SYS] CellAttenuationList for Cell_id %d value %d dBm received
\n
"
,
cellId
,
attnVal
);
sys_cell_attn_update
(
cellId
,
attnVal
,
CellIndex
);
break
;
case
Attenuation_Type_Off
:
attnVal
=
80
;
/* TODO: attnVal hardcoded currently but Need to handle proper Attenuation_Type_Off */
LOG_A
(
ENB_SS
,
"[SYS] CellAttenuationList turn off for Cell_id %d received with attnVal : %d
\n
"
,
cellId
,
attnVal
);
sys_cell_attn_update
(
cellId
,
attnVal
,
CellIndex
);
break
;
case
Attenuation_Type_UNBOUND_VALUE
:
LOG_A
(
ENB_SS
,
"[SYS] CellAttenuationList Attenuation_Type_UNBOUND_VALUE received
\n
"
);
break
;
default:
LOG_A
(
ENB_SS
,
"[SYS] Invalid CellAttenuationList received
\n
"
);
}
}
}
/*
* Function : sys_handle_
cell_attn
_req
* Function : sys_handle_
paging
_req
* Description: Handles the attenuation updates received from TTCN
*/
...
...
@@ -2021,10 +2024,13 @@ printf("VNG send to proxy cell_index %d\n",req->header.cell_index);
switch
(
hdr
.
msg_id
)
{
case
SS_ATTN_LIST_CNF
:
cnfType
=
SystemConfirm_Type_CellAttenuationList
;
cnfType
=
SystemConfirm_Type_CellAttenuationList
;
memcpy
(
&
attnCnf
,
(
SS_SYS_PROXY_MSG_CNF
(
received_msg
).
buffer
),
sizeof
(
attenuationConfigCnf_t
));
LOG_A
(
ENB_SS
,
"[SYS] received Cell_Attenuation_Cnf from Proxy for cell : %d
\n
"
,
attnCnf
.
header
.
cell_id
);
send_sys_cnf
(
resType
,
resVal
,
cnfType
,
NULL
);
if
(
false
==
SS_context
.
send_atten_cnf
)
{
LOG_A
(
ENB_SS
,
"[SYS] received Cell_Attenuation_Cnf from Proxy for cell : %d
\n
"
,
attnCnf
.
header
.
cell_id
);
SS_context
.
send_atten_cnf
=
true
;
send_sys_cnf
(
resType
,
resVal
,
cnfType
,
NULL
);
}
break
;
case
SS_VNG_CMD_RESP
:
...
...
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