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
wangjie
OpenXG-RAN
Commits
7d1588df
Commit
7d1588df
authored
Jul 18, 2021
by
Michael Cook
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'eurecom/develop' into episys-merge-from-develop-0718
parents
5c0ea3c5
c97bb972
Changes
11
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
58 additions
and
22 deletions
+58
-22
ci-scripts/Jenkinsfile-trig-nsa
ci-scripts/Jenkinsfile-trig-nsa
+14
-14
ci-scripts/cls_oaicitest.py
ci-scripts/cls_oaicitest.py
+25
-2
ci-scripts/conf_files/gnb.band78.tm1.106PRB.usrpn300.conf
ci-scripts/conf_files/gnb.band78.tm1.106PRB.usrpn300.conf
+1
-1
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_bch.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_bch.c
+5
-1
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_dlsch.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_dlsch.c
+1
-1
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_phytest.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_phytest.c
+1
-1
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_ulsch.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_ulsch.c
+1
-1
openair2/LAYER2/NR_MAC_gNB/main.c
openair2/LAYER2/NR_MAC_gNB/main.c
+2
-0
openair2/LAYER2/NR_MAC_gNB/nr_mac_gNB.h
openair2/LAYER2/NR_MAC_gNB/nr_mac_gNB.h
+1
-0
openair2/X2AP/x2ap_eNB.c
openair2/X2AP/x2ap_eNB.c
+6
-1
openair3/SCTP/sctp_eNB_task.c
openair3/SCTP/sctp_eNB_task.c
+1
-0
No files found.
ci-scripts/Jenkinsfile-trig-nsa
View file @
7d1588df
...
@@ -56,21 +56,21 @@ pipeline {
...
@@ -56,21 +56,21 @@ pipeline {
booleanParam
(
name:
'eNB_AllowMergeRequestProcess'
,
value:
Boolean
.
valueOf
(
ALLOW_MERGE
))
booleanParam
(
name:
'eNB_AllowMergeRequestProcess'
,
value:
Boolean
.
valueOf
(
ALLOW_MERGE
))
]
]
//calling NSA long sub job
//calling NSA long sub job
build
job:
"RAN-NSA-Mini-Module-Long"
,
wait
:
true
,
propagate
:
false
,
parameters:
[
//
build job: "RAN-NSA-Mini-Module-Long", wait : true, propagate : false, parameters: [
string
(
name:
'eNB_MR'
,
value:
String
.
valueOf
(
MR
)),
// string(name: 'eNB_MR', value: String.valueOf(MR)),
string
(
name:
'eNB_Branch'
,
value:
String
.
valueOf
(
SRC_BRANCH
)),
//
string(name: 'eNB_Branch', value: String.valueOf(SRC_BRANCH)),
string
(
name:
'eNB_CommitID'
,
value:
String
.
valueOf
(
COMMIT_ID
)),
//
string(name: 'eNB_CommitID', value: String.valueOf(COMMIT_ID)),
string
(
name:
'eNB_TargetBranch'
,
value:
String
.
valueOf
(
TARGET_BRANCH
)),
//
string(name: 'eNB_TargetBranch', value: String.valueOf(TARGET_BRANCH)),
booleanParam
(
name:
'eNB_AllowMergeRequestProcess'
,
value:
Boolean
.
valueOf
(
ALLOW_MERGE
))
//
booleanParam(name: 'eNB_AllowMergeRequestProcess', value: Boolean.valueOf(ALLOW_MERGE))
]
//
]
//calling NSA attach/detach job
//calling NSA attach/detach job
build
job:
"RAN-NSA-Mini-Module-Attach-Detach"
,
wait
:
true
,
propagate
:
false
,
parameters:
[
//
build job: "RAN-NSA-Mini-Module-Attach-Detach", wait : true, propagate : false, parameters: [
string
(
name:
'eNB_MR'
,
value:
String
.
valueOf
(
MR
)),
// string(name: 'eNB_MR', value: String.valueOf(MR)),
string
(
name:
'eNB_Branch'
,
value:
String
.
valueOf
(
SRC_BRANCH
)),
//
string(name: 'eNB_Branch', value: String.valueOf(SRC_BRANCH)),
string
(
name:
'eNB_CommitID'
,
value:
String
.
valueOf
(
COMMIT_ID
)),
//
string(name: 'eNB_CommitID', value: String.valueOf(COMMIT_ID)),
string
(
name:
'eNB_TargetBranch'
,
value:
String
.
valueOf
(
TARGET_BRANCH
)),
//
string(name: 'eNB_TargetBranch', value: String.valueOf(TARGET_BRANCH)),
booleanParam
(
name:
'eNB_AllowMergeRequestProcess'
,
value:
Boolean
.
valueOf
(
ALLOW_MERGE
))
//
booleanParam(name: 'eNB_AllowMergeRequestProcess', value: Boolean.valueOf(ALLOW_MERGE))
]
//
]
}
}
}
}
...
...
ci-scripts/cls_oaicitest.py
View file @
7d1588df
...
@@ -2222,6 +2222,24 @@ class OaiCiTest():
...
@@ -2222,6 +2222,24 @@ class OaiCiTest():
def
Iperf_Module
(
self
,
lock
,
UE_IPAddress
,
device_id
,
idx
,
ue_num
,
statusQueue
,
EPC
,
Module_UE
):
def
Iperf_Module
(
self
,
lock
,
UE_IPAddress
,
device_id
,
idx
,
ue_num
,
statusQueue
,
EPC
,
Module_UE
):
SSH
=
sshconnection
.
SSHConnection
()
SSH
=
sshconnection
.
SSHConnection
()
#RH temporary quick n dirty for test
SSH
.
open
(
EPC
.
IPAddress
,
EPC
.
UserName
,
EPC
.
Password
)
cmd
=
'echo '
+
EPC
.
Password
+
' | sudo -S ip link set dev tun5 mtu 1358'
SSH
.
command
(
cmd
,
'\$'
,
5
)
SSH
.
close
()
#kill iperf processes before (in case there are still some remaining)
SSH
.
open
(
Module_UE
.
HostIPAddress
,
Module_UE
.
HostUsername
,
Module_UE
.
HostPassword
)
cmd
=
'killall --signal=SIGKILL iperf'
SSH
.
command
(
cmd
,
'\$'
,
5
)
SSH
.
close
()
SSH
.
open
(
EPC
.
IPAddress
,
EPC
.
UserName
,
EPC
.
Password
)
cmd
=
'killall --signal=SIGKILL iperf'
SSH
.
command
(
cmd
,
'\$'
,
5
)
SSH
.
close
()
iperf_time
=
self
.
Iperf_ComputeTime
()
iperf_time
=
self
.
Iperf_ComputeTime
()
if
self
.
iperf_direction
==
"DL"
:
if
self
.
iperf_direction
==
"DL"
:
logging
.
debug
(
"Iperf for Module in DL mode detected"
)
logging
.
debug
(
"Iperf for Module in DL mode detected"
)
...
@@ -2231,12 +2249,14 @@ class OaiCiTest():
...
@@ -2231,12 +2249,14 @@ class OaiCiTest():
SSH
.
command
(
cmd
,
'\$'
,
5
)
SSH
.
command
(
cmd
,
'\$'
,
5
)
cmd
=
'echo $USER; nohup /opt/iperf-2.0.10/iperf -s -B '
+
UE_IPAddress
+
' -u 2>&1 > iperf_server_'
+
self
.
testCase_id
+
'_'
+
self
.
ue_id
+
'.log'
cmd
=
'echo $USER; nohup /opt/iperf-2.0.10/iperf -s -B '
+
UE_IPAddress
+
' -u 2>&1 > iperf_server_'
+
self
.
testCase_id
+
'_'
+
self
.
ue_id
+
'.log'
SSH
.
command
(
cmd
,
'\$'
,
5
)
SSH
.
command
(
cmd
,
'\$'
,
5
)
SSH
.
close
()
#client side EPC
#client side EPC
SSH
.
open
(
EPC
.
IPAddress
,
EPC
.
UserName
,
EPC
.
Password
)
SSH
.
open
(
EPC
.
IPAddress
,
EPC
.
UserName
,
EPC
.
Password
)
cmd
=
'rm iperf_client_'
+
self
.
testCase_id
+
'_'
+
self
.
ue_id
+
'.log'
cmd
=
'rm iperf_client_'
+
self
.
testCase_id
+
'_'
+
self
.
ue_id
+
'.log'
SSH
.
command
(
cmd
,
'\$'
,
5
)
SSH
.
command
(
cmd
,
'\$'
,
5
)
cmd
=
'iperf -c '
+
UE_IPAddress
+
' '
+
self
.
iperf_args
+
' 2>&1 > iperf_client_'
+
self
.
testCase_id
+
'_'
+
self
.
ue_id
+
'.log'
cmd
=
'iperf -c '
+
UE_IPAddress
+
' '
+
self
.
iperf_args
+
' 2>&1 > iperf_client_'
+
self
.
testCase_id
+
'_'
+
self
.
ue_id
+
'.log'
SSH
.
command
(
cmd
,
'\$'
,
int
(
iperf_time
)
*
5.0
)
SSH
.
command
(
cmd
,
'\$'
,
int
(
iperf_time
)
*
5.0
)
SSH
.
close
()
#copy the 2 resulting files locally
#copy the 2 resulting files locally
SSH
.
copyin
(
Module_UE
.
HostIPAddress
,
Module_UE
.
HostUsername
,
Module_UE
.
HostPassword
,
'iperf_server_'
+
self
.
testCase_id
+
'_'
+
self
.
ue_id
+
'.log'
,
'.'
)
SSH
.
copyin
(
Module_UE
.
HostIPAddress
,
Module_UE
.
HostUsername
,
Module_UE
.
HostPassword
,
'iperf_server_'
+
self
.
testCase_id
+
'_'
+
self
.
ue_id
+
'.log'
,
'.'
)
SSH
.
copyin
(
EPC
.
IPAddress
,
EPC
.
UserName
,
EPC
.
Password
,
'iperf_client_'
+
self
.
testCase_id
+
'_'
+
self
.
ue_id
+
'.log'
,
'.'
)
SSH
.
copyin
(
EPC
.
IPAddress
,
EPC
.
UserName
,
EPC
.
Password
,
'iperf_client_'
+
self
.
testCase_id
+
'_'
+
self
.
ue_id
+
'.log'
,
'.'
)
...
@@ -2252,29 +2272,32 @@ class OaiCiTest():
...
@@ -2252,29 +2272,32 @@ class OaiCiTest():
SSH
.
command
(
cmd
,
'\$'
,
5
)
SSH
.
command
(
cmd
,
'\$'
,
5
)
cmd
=
'echo $USER; nohup iperf -s -u 2>&1 > iperf_server_'
+
self
.
testCase_id
+
'_'
+
self
.
ue_id
+
'.log'
cmd
=
'echo $USER; nohup iperf -s -u 2>&1 > iperf_server_'
+
self
.
testCase_id
+
'_'
+
self
.
ue_id
+
'.log'
SSH
.
command
(
cmd
,
'\$'
,
5
)
SSH
.
command
(
cmd
,
'\$'
,
5
)
SSH
.
close
()
#client side UE
#client side UE
SSH
.
open
(
Module_UE
.
HostIPAddress
,
Module_UE
.
HostUsername
,
Module_UE
.
HostPassword
)
SSH
.
open
(
Module_UE
.
HostIPAddress
,
Module_UE
.
HostUsername
,
Module_UE
.
HostPassword
)
cmd
=
'rm iperf_client_'
+
self
.
testCase_id
+
'_'
+
self
.
ue_id
+
'.log'
cmd
=
'rm iperf_client_'
+
self
.
testCase_id
+
'_'
+
self
.
ue_id
+
'.log'
SSH
.
command
(
cmd
,
'\$'
,
5
)
SSH
.
command
(
cmd
,
'\$'
,
5
)
SSH
.
command
(
'/opt/iperf-2.0.10/iperf -c 192.172.0.1 '
+
self
.
iperf_args
+
' 2>&1 > iperf_client_'
+
self
.
testCase_id
+
'_'
+
self
.
ue_id
+
'.log'
,
'\$'
,
int
(
iperf_time
)
*
5.0
)
SSH
.
command
(
'/opt/iperf-2.0.10/iperf -c 192.172.0.1 '
+
self
.
iperf_args
+
' 2>&1 > iperf_client_'
+
self
.
testCase_id
+
'_'
+
self
.
ue_id
+
'.log'
,
'\$'
,
int
(
iperf_time
)
*
5.0
)
SSH
.
close
()
#copy the 2 resulting files locally
#copy the 2 resulting files locally
SSH
.
copyin
(
Module_UE
.
HostIPAddress
,
Module_UE
.
HostUsername
,
Module_UE
.
HostPassword
,
'iperf_client_'
+
self
.
testCase_id
+
'_'
+
self
.
ue_id
+
'.log'
,
'.'
)
SSH
.
copyin
(
Module_UE
.
HostIPAddress
,
Module_UE
.
HostUsername
,
Module_UE
.
HostPassword
,
'iperf_client_'
+
self
.
testCase_id
+
'_'
+
self
.
ue_id
+
'.log'
,
'.'
)
SSH
.
copyin
(
EPC
.
IPAddress
,
EPC
.
UserName
,
EPC
.
Password
,
'iperf_server_'
+
self
.
testCase_id
+
'_'
+
self
.
ue_id
+
'.log'
,
'.'
)
SSH
.
copyin
(
EPC
.
IPAddress
,
EPC
.
UserName
,
EPC
.
Password
,
'iperf_server_'
+
self
.
testCase_id
+
'_'
+
self
.
ue_id
+
'.log'
,
'.'
)
#send for analysis
#send for analysis
filename
=
'iperf_
client
_'
+
self
.
testCase_id
+
'_'
+
self
.
ue_id
+
'.log'
filename
=
'iperf_
server
_'
+
self
.
testCase_id
+
'_'
+
self
.
ue_id
+
'.log'
self
.
Iperf_analyzeV2Server
(
lock
,
UE_IPAddress
,
device_id
,
statusQueue
,
self
.
iperf_args
,
filename
,
1
)
self
.
Iperf_analyzeV2Server
(
lock
,
UE_IPAddress
,
device_id
,
statusQueue
,
self
.
iperf_args
,
filename
,
1
)
else
:
else
:
logging
.
debug
(
"Incorrect or missing IPERF direction in XML"
)
logging
.
debug
(
"Incorrect or missing IPERF direction in XML"
)
#kill iperf processes after to be clean
SSH
.
open
(
Module_UE
.
HostIPAddress
,
Module_UE
.
HostUsername
,
Module_UE
.
HostPassword
)
SSH
.
open
(
Module_UE
.
HostIPAddress
,
Module_UE
.
HostUsername
,
Module_UE
.
HostPassword
)
cmd
=
'killall --signal=SIGKILL iperf'
cmd
=
'killall --signal=SIGKILL iperf'
SSH
.
command
(
cmd
,
'\$'
,
5
)
SSH
.
command
(
cmd
,
'\$'
,
5
)
SSH
.
close
()
SSH
.
open
(
EPC
.
IPAddress
,
EPC
.
UserName
,
EPC
.
Password
)
SSH
.
open
(
EPC
.
IPAddress
,
EPC
.
UserName
,
EPC
.
Password
)
cmd
=
'killall --signal=SIGKILL iperf'
cmd
=
'killall --signal=SIGKILL iperf'
SSH
.
command
(
cmd
,
'\$'
,
5
)
SSH
.
command
(
cmd
,
'\$'
,
5
)
SSH
.
close
()
SSH
.
close
()
return
return
...
...
ci-scripts/conf_files/gnb.band78.tm1.106PRB.usrpn300.conf
View file @
7d1588df
...
@@ -243,7 +243,7 @@ RUs = (
...
@@ -243,7 +243,7 @@ RUs = (
## beamforming 4x4 matrix:
## beamforming 4x4 matrix:
#bf_weights = [0x00007fff, 0x0000, 0x0000, 0x0000, 0x00000000, 0x00007fff, 0x0000, 0x0000, 0x0000, 0x0000, 0x00007fff, 0x0000, 0x0000, 0x0000, 0x0000, 0x00007fff];
#bf_weights = [0x00007fff, 0x0000, 0x0000, 0x0000, 0x00000000, 0x00007fff, 0x0000, 0x0000, 0x0000, 0x0000, 0x00007fff, 0x0000, 0x0000, 0x0000, 0x0000, 0x00007fff];
sdr_addrs
=
"addr=192.168.
10.2,mgmt_addr=192.168.10.2,second_addr=192.168.2
0.2"
;
sdr_addrs
=
"addr=192.168.
30.2,mgmt_addr=192.168.30.2,second_addr=192.168.5
0.2"
;
clock_src
=
"external"
;
clock_src
=
"external"
;
}
}
);
);
...
...
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_bch.c
View file @
7d1588df
...
@@ -157,10 +157,14 @@ void schedule_nr_mib(module_id_t module_idP, frame_t frameP, sub_frame_t slotP)
...
@@ -157,10 +157,14 @@ void schedule_nr_mib(module_id_t module_idP, frame_t frameP, sub_frame_t slotP)
dl_req
=
&
dl_tti_request
->
dl_tti_request_body
;
dl_req
=
&
dl_tti_request
->
dl_tti_request_body
;
// get MIB every 8 frames
// get MIB every 8 frames
if
((
slotP
==
0
)
&&
(
frameP
&
7
)
==
0
)
{
if
(((
slotP
==
0
)
&&
(
frameP
&
7
)
==
0
)
||
gNB
->
first_MIB
)
{
mib_sdu_length
=
mac_rrc_nr_data_req
(
module_idP
,
CC_id
,
frameP
,
MIBCH
,
0
,
1
,
&
cc
->
MIB_pdu
.
payload
[
0
]);
mib_sdu_length
=
mac_rrc_nr_data_req
(
module_idP
,
CC_id
,
frameP
,
MIBCH
,
0
,
1
,
&
cc
->
MIB_pdu
.
payload
[
0
]);
// flag to avoid sending an empty MIB in the first frames of execution since gNB doesn't get at the beginning in frame 0 slot 0
gNB
->
first_MIB
=
false
;
LOG_D
(
MAC
,
LOG_D
(
MAC
,
"[gNB %d] Frame %d : MIB->BCH CC_id %d, Received %d bytes
\n
"
,
"[gNB %d] Frame %d : MIB->BCH CC_id %d, Received %d bytes
\n
"
,
module_idP
,
module_idP
,
...
...
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_dlsch.c
View file @
7d1588df
...
@@ -551,7 +551,7 @@ bool allocate_dl_retransmission(module_id_t module_id,
...
@@ -551,7 +551,7 @@ bool allocate_dl_retransmission(module_id_t module_id,
}
}
float
thr_ue
[
MAX_MOBILES_PER_GNB
];
float
thr_ue
[
MAX_MOBILES_PER_GNB
];
uint32_t
pf_tbs
[
3
][
2
8
];
// pre-computed, approximate TBS values for PF coefficient
uint32_t
pf_tbs
[
3
][
2
9
];
// pre-computed, approximate TBS values for PF coefficient
void
pf_dl
(
module_id_t
module_id
,
void
pf_dl
(
module_id_t
module_id
,
frame_t
frame
,
frame_t
frame
,
...
...
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_phytest.c
View file @
7d1588df
...
@@ -146,7 +146,7 @@ void nr_schedule_css_dlsch_phytest(module_id_t module_idP,
...
@@ -146,7 +146,7 @@ void nr_schedule_css_dlsch_phytest(module_id_t module_idP,
int
startSymbolAndLength
=
0
;
int
startSymbolAndLength
=
0
;
int
StartSymbolIndex
=-
1
,
NrOfSymbols
=
14
;
int
StartSymbolIndex
=-
1
,
NrOfSymbols
=
14
;
int
StartSymbolIndex_tmp
,
NrOfSymbols_tmp
;
int
StartSymbolIndex_tmp
,
NrOfSymbols_tmp
;
int
mappingtype_tmp
,
mappingtype
;
int
mappingtype_tmp
,
mappingtype
=
0
;
for
(
int
i
=
0
;
for
(
int
i
=
0
;
i
<
scc
->
downlinkConfigCommon
->
initialDownlinkBWP
->
pdsch_ConfigCommon
->
choice
.
setup
->
pdsch_TimeDomainAllocationList
->
list
.
count
;
i
<
scc
->
downlinkConfigCommon
->
initialDownlinkBWP
->
pdsch_ConfigCommon
->
choice
.
setup
->
pdsch_TimeDomainAllocationList
->
list
.
count
;
...
...
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_ulsch.c
View file @
7d1588df
...
@@ -952,7 +952,7 @@ void update_ul_ue_R_Qm(NR_sched_pusch_t *sched_pusch, const NR_pusch_semi_static
...
@@ -952,7 +952,7 @@ void update_ul_ue_R_Qm(NR_sched_pusch_t *sched_pusch, const NR_pusch_semi_static
}
}
float
ul_thr_ue
[
MAX_MOBILES_PER_GNB
];
float
ul_thr_ue
[
MAX_MOBILES_PER_GNB
];
uint32_t
ul_pf_tbs
[
3
][
2
8
];
// pre-computed, approximate TBS values for PF coefficient
uint32_t
ul_pf_tbs
[
3
][
2
9
];
// pre-computed, approximate TBS values for PF coefficient
void
pf_ul
(
module_id_t
module_id
,
void
pf_ul
(
module_id_t
module_id
,
frame_t
frame
,
frame_t
frame
,
sub_frame_t
slot
,
sub_frame_t
slot
,
...
...
openair2/LAYER2/NR_MAC_gNB/main.c
View file @
7d1588df
...
@@ -81,6 +81,8 @@ void mac_top_init_gNB(void)
...
@@ -81,6 +81,8 @@ void mac_top_init_gNB(void)
RC
.
nrmac
[
i
]
->
ul_handle
=
0
;
RC
.
nrmac
[
i
]
->
ul_handle
=
0
;
RC
.
nrmac
[
i
]
->
first_MIB
=
true
;
if
(
get_softmodem_params
()
->
phy_test
)
{
if
(
get_softmodem_params
()
->
phy_test
)
{
RC
.
nrmac
[
i
]
->
pre_processor_dl
=
nr_preprocessor_phytest
;
RC
.
nrmac
[
i
]
->
pre_processor_dl
=
nr_preprocessor_phytest
;
RC
.
nrmac
[
i
]
->
pre_processor_ul
=
nr_ul_preprocessor_phytest
;
RC
.
nrmac
[
i
]
->
pre_processor_ul
=
nr_ul_preprocessor_phytest
;
...
...
openair2/LAYER2/NR_MAC_gNB/nr_mac_gNB.h
View file @
7d1588df
...
@@ -747,6 +747,7 @@ typedef struct gNB_MAC_INST_s {
...
@@ -747,6 +747,7 @@ typedef struct gNB_MAC_INST_s {
NR_UE_sched_ctrl_t
*
sched_ctrlCommon
;
NR_UE_sched_ctrl_t
*
sched_ctrlCommon
;
NR_Type0_PDCCH_CSS_config_t
type0_PDCCH_CSS_config
[
64
];
NR_Type0_PDCCH_CSS_config_t
type0_PDCCH_CSS_config
[
64
];
bool
first_MIB
;
}
gNB_MAC_INST
;
}
gNB_MAC_INST
;
#endif
/*__LAYER2_NR_MAC_GNB_H__ */
#endif
/*__LAYER2_NR_MAC_GNB_H__ */
openair2/X2AP/x2ap_eNB.c
View file @
7d1588df
...
@@ -115,7 +115,12 @@ void x2ap_eNB_handle_sctp_association_resp(instance_t instance, sctp_new_associa
...
@@ -115,7 +115,12 @@ void x2ap_eNB_handle_sctp_association_resp(instance_t instance, sctp_new_associa
if
(
x2ap_enb_data_p
!=
NULL
)
{
if
(
x2ap_enb_data_p
!=
NULL
)
{
/* some sanity check - to be refined at some point */
/* some sanity check - to be refined at some point */
if
(
sctp_new_association_resp
->
sctp_state
!=
SCTP_STATE_ESTABLISHED
)
{
if
(
sctp_new_association_resp
->
sctp_state
!=
SCTP_STATE_ESTABLISHED
)
{
X2AP_ERROR
(
"x2ap_enb_data_p not NULL and sctp state not SCTP_STATE_ESTABLISHED, what to do?
\n
"
);
X2AP_ERROR
(
"x2ap_enb_data_p not NULL and sctp state not SCTP_STATE_ESTABLISHED?
\n
"
);
if
(
sctp_new_association_resp
->
sctp_state
==
SCTP_STATE_SHUTDOWN
){
RB_REMOVE
(
x2ap_enb_map
,
&
instance_p
->
x2ap_enb_head
,
x2ap_enb_data_p
);
return
;
}
exit
(
1
);
exit
(
1
);
}
}
...
...
openair3/SCTP/sctp_eNB_task.c
View file @
7d1588df
...
@@ -985,6 +985,7 @@ sctp_eNB_read_from_socket(
...
@@ -985,6 +985,7 @@ sctp_eNB_read_from_socket(
if
(
SCTP_SHUTDOWN_EVENT
==
snp
->
sn_header
.
sn_type
)
{
if
(
SCTP_SHUTDOWN_EVENT
==
snp
->
sn_header
.
sn_type
)
{
itti_unsubscribe_event_fd
(
TASK_SCTP
,
sctp_cnx
->
sd
);
itti_unsubscribe_event_fd
(
TASK_SCTP
,
sctp_cnx
->
sd
);
SCTP_WARN
(
"Received SCTP SHUTDOWN EVENT
\n
"
);
close
(
sctp_cnx
->
sd
);
close
(
sctp_cnx
->
sd
);
sctp_itti_send_association_resp
(
sctp_itti_send_association_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