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
c70aa4c4
Commit
c70aa4c4
authored
Aug 13, 2021
by
Raphael Defosseux
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix(nr-ue): apply ip rules/route
Signed-off-by:
Raphael Defosseux
<
raphael.defosseux@eurecom.fr
>
parent
8c91e719
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
185 additions
and
43 deletions
+185
-43
ci-scripts/cls_containerize.py
ci-scripts/cls_containerize.py
+3
-15
ci-scripts/xml_files/container_4g_rfsim.xml
ci-scripts/xml_files/container_4g_rfsim.xml
+130
-0
ci-scripts/xml_files/container_4g_rfsim_down.xml
ci-scripts/xml_files/container_4g_rfsim_down.xml
+38
-0
ci-scripts/xml_files/container_5g_rfsim.xml
ci-scripts/xml_files/container_5g_rfsim.xml
+1
-0
ci-scripts/yaml_files/5g_rfsimulator/README.md
ci-scripts/yaml_files/5g_rfsimulator/README.md
+0
-28
openair2/RRC/NAS/nas_config.c
openair2/RRC/NAS/nas_config.c
+13
-0
No files found.
ci-scripts/cls_containerize.py
View file @
c70aa4c4
...
@@ -596,20 +596,6 @@ class Containerize():
...
@@ -596,20 +596,6 @@ class Containerize():
else
:
else
:
time
.
sleep
(
10
)
time
.
sleep
(
10
)
# HACK TO REMOVE LATER WHEN FIX
res
=
re
.
search
(
'oai-nr-ue'
,
self
.
services
[
0
])
if
res
is
not
None
:
cmd
=
'docker exec rfsim5g-oai-nr-ue /bin/bash -c "ip route del default"'
logging
.
debug
(
cmd
)
deployStatus
=
subprocess
.
check_output
(
cmd
,
shell
=
True
,
stderr
=
subprocess
.
STDOUT
,
universal_newlines
=
True
,
timeout
=
10
)
cmd
=
'docker exec rfsim5g-oai-nr-ue /bin/bash -c "ip route del 12.1.1.0/24"'
logging
.
debug
(
cmd
)
deployStatus
=
subprocess
.
check_output
(
cmd
,
shell
=
True
,
stderr
=
subprocess
.
STDOUT
,
universal_newlines
=
True
,
timeout
=
10
)
cmd
=
'docker exec rfsim5g-oai-nr-ue /bin/bash -c "ip route add default via 12.1.1.2 dev oaitun_ue1"'
logging
.
debug
(
cmd
)
deployStatus
=
subprocess
.
check_output
(
cmd
,
shell
=
True
,
stderr
=
subprocess
.
STDOUT
,
universal_newlines
=
True
,
timeout
=
10
)
# END OF HACK TO REMOVE LATER WHEN FIX
if
count
==
100
and
healthy
==
self
.
nb_healthy
[
0
]:
if
count
==
100
and
healthy
==
self
.
nb_healthy
[
0
]:
HTML
.
CreateHtmlTestRow
(
'n/a'
,
'OK'
,
CONST
.
ALL_PROCESSES_OK
)
HTML
.
CreateHtmlTestRow
(
'n/a'
,
'OK'
,
CONST
.
ALL_PROCESSES_OK
)
logging
.
info
(
'
\u001B
[1m Deploying OAI Object(s) PASS
\u001B
[0m'
)
logging
.
info
(
'
\u001B
[1m Deploying OAI Object(s) PASS
\u001B
[0m'
)
...
@@ -628,7 +614,7 @@ class Containerize():
...
@@ -628,7 +614,7 @@ class Containerize():
logging
.
debug
(
cmd
)
logging
.
debug
(
cmd
)
subprocess
.
run
(
cmd
,
shell
=
True
)
subprocess
.
run
(
cmd
,
shell
=
True
)
# if the containers are running, recover the logs!
# if the containers are running, recover the logs!
cmd
=
'cd '
+
self
.
yamlPath
[
0
]
+
' && docker-compose -f docker-compose-ci.yml ps --all'
cmd
=
'cd '
+
self
.
yamlPath
[
0
]
+
' && docker-compose -f docker-compose-ci.yml ps --all'
logging
.
debug
(
cmd
)
logging
.
debug
(
cmd
)
deployStatus
=
subprocess
.
check_output
(
cmd
,
shell
=
True
,
stderr
=
subprocess
.
STDOUT
,
universal_newlines
=
True
,
timeout
=
10
)
deployStatus
=
subprocess
.
check_output
(
cmd
,
shell
=
True
,
stderr
=
subprocess
.
STDOUT
,
universal_newlines
=
True
,
timeout
=
10
)
...
@@ -831,7 +817,9 @@ class Containerize():
...
@@ -831,7 +817,9 @@ class Containerize():
logging
.
debug
(
'
\u001B
[1;34m Jitter : '
+
jitter
+
'
\u001B
[0m'
)
logging
.
debug
(
'
\u001B
[1;34m Jitter : '
+
jitter
+
'
\u001B
[0m'
)
self
.
IperfExit
(
HTML
,
iperfStatus
,
msg
)
self
.
IperfExit
(
HTML
,
iperfStatus
,
msg
)
else
:
else
:
iperfStatus
=
False
logging
.
error
(
'problem?'
)
logging
.
error
(
'problem?'
)
self
.
IperfExit
(
HTML
,
iperfStatus
,
'problem?'
)
if
iperfStatus
:
if
iperfStatus
:
logging
.
info
(
'
\u001B
[1m Iperf Test PASS
\u001B
[0m'
)
logging
.
info
(
'
\u001B
[1m Iperf Test PASS
\u001B
[0m'
)
...
...
ci-scripts/xml_files/container_4g_rfsim.xml
0 → 100644
View file @
c70aa4c4
<!--
Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The OpenAirInterface Software Alliance licenses this file to You under
the OAI Public License, Version 1.1 (the "License"); you may not use this file
except in compliance with the License.
You may obtain a copy of the License at
http://www.openairinterface.org/?page_id=698
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
For more information about the OpenAirInterface (OAI) Software Alliance:
contact@openairinterface.org
-->
<testCaseList>
<htmlTabRef>
rfsim-4gnr
</htmlTabRef>
<htmlTabName>
Testing 4G NR RF sim in containers
</htmlTabName>
<htmlTabIcon>
wrench
</htmlTabIcon>
<repeatCount>
4
</repeatCount>
<TestCaseRequestedList>
100011
000011
000001
000012
000002
000013
000001
000014
000002
020011
020012
030011
030012
100011
</TestCaseRequestedList>
<TestCaseExclusionList></TestCaseExclusionList>
<testCase
id=
"000011"
>
<class>
DeployGenObject
</class>
<desc>
Deploy Cassandra Database
</desc>
<yaml_path>
yaml_files/4g_rfsimulator
</yaml_path>
<services>
cassandra db_init
</services>
<nb_healthy>
1
</nb_healthy>
</testCase>
<testCase
id=
"000001"
>
<class>
IdleSleep
</class>
<desc>
Sleep
</desc>
<idle_sleep_time_in_sec>
30
</idle_sleep_time_in_sec>
</testCase>
<testCase
id=
"000002"
>
<class>
IdleSleep
</class>
<desc>
Sleep
</desc>
<idle_sleep_time_in_sec>
10
</idle_sleep_time_in_sec>
</testCase>
<testCase
id=
"000012"
>
<class>
DeployGenObject
</class>
<desc>
Deploy OAI 4G CoreNetwork
</desc>
<yaml_path>
yaml_files/4g_rfsimulator
</yaml_path>
<services>
oai_hss oai_mme oai_spgwc oai_spgwu trf_gen
</services>
<nb_healthy>
6
</nb_healthy>
</testCase>
<testCase
id=
"000013"
>
<class>
DeployGenObject
</class>
<desc>
Deploy OAI 4G eNB RF sim
</desc>
<yaml_path>
yaml_files/4g_rfsimulator
</yaml_path>
<services>
enb
</services>
<nb_healthy>
7
</nb_healthy>
</testCase>
<testCase
id=
"000014"
>
<class>
DeployGenObject
</class>
<desc>
Deploy OAI 4G NR-UE RF sim
</desc>
<yaml_path>
yaml_files/4g_rfsimulator
</yaml_path>
<services>
oai_ue0
</services>
<nb_healthy>
8
</nb_healthy>
</testCase>
<testCase
id=
"020011"
>
<class>
PingFromContainer
</class>
<desc>
Ping Traffic-Gen from LTE-UE
</desc>
<container_name>
rfsim4g-oai-lte-ue0
</container_name>
<options>
-I oaitun_ue1 -c 20 192.168.61.11
</options>
<loss_threshold>
5
</loss_threshold>
</testCase>
<testCase
id=
"020012"
>
<class>
PingFromContainer
</class>
<desc>
Ping LTE-UE from Traffic-Gen
</desc>
<container_name>
rfsim4g-trf-gen
</container_name>
<options>
-c 20 12.0.0.2
</options>
<loss_threshold>
5
</loss_threshold>
</testCase>
<testCase
id=
"030011"
>
<class>
IperfFromContainer
</class>
<desc>
Iperf UDP Downlink
</desc>
<server_container_name>
rfsim4g-oai-lte-ue0
</server_container_name>
<client_container_name>
rfsim4g-trf-gen
</client_container_name>
<server_options>
-B 12.0.0.2 -u -i 1 -s
</server_options>
<client_options>
-c 12.0.0.2 -u -i 1 -t 30 -b 4M
</client_options>
</testCase>
<testCase
id=
"030012"
>
<class>
IperfFromContainer
</class>
<desc>
Iperf UDP Uplink
</desc>
<server_container_name>
rfsim4g-trf-gen
</server_container_name>
<client_container_name>
rfsim4g-oai-lte-ue0
</client_container_name>
<server_options>
-u -i 1 -s
</server_options>
<client_options>
-B 12.0.0.2 -c 192.168.61.11 -u -i 1 -t 30 -b 2M
</client_options>
</testCase>
<testCase
id=
"100011"
>
<class>
UndeployGenObject
</class>
<desc>
Undeploy all OAI 4G stack
</desc>
<yaml_path>
yaml_files/4g_rfsimulator
</yaml_path>
</testCase>
</testCaseList>
ci-scripts/xml_files/container_4g_rfsim_down.xml
0 → 100644
View file @
c70aa4c4
<!--
Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The OpenAirInterface Software Alliance licenses this file to You under
the OAI Public License, Version 1.1 (the "License"); you may not use this file
except in compliance with the License.
You may obtain a copy of the License at
http://www.openairinterface.org/?page_id=698
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
For more information about the OpenAirInterface (OAI) Software Alliance:
contact@openairinterface.org
-->
<testCaseList>
<htmlTabRef>
rfsim-4gnr
</htmlTabRef>
<htmlTabName>
Testing 4G NR RF sim in containers
</htmlTabName>
<htmlTabIcon>
wrench
</htmlTabIcon>
<TestCaseRequestedList>
100011
</TestCaseRequestedList>
<TestCaseExclusionList></TestCaseExclusionList>
<testCase
id=
"100011"
>
<class>
UndeployGenObject
</class>
<desc>
Undeploy all OAI 4G stack
</desc>
<yaml_path>
yaml_files/4g_rfsimulator
</yaml_path>
</testCase>
</testCaseList>
ci-scripts/xml_files/container_5g_rfsim.xml
View file @
c70aa4c4
...
@@ -25,6 +25,7 @@
...
@@ -25,6 +25,7 @@
<htmlTabName>
Testing 5G NR RF sim in containers
</htmlTabName>
<htmlTabName>
Testing 5G NR RF sim in containers
</htmlTabName>
<htmlTabIcon>
wrench
</htmlTabIcon>
<htmlTabIcon>
wrench
</htmlTabIcon>
<TestCaseRequestedList>
<TestCaseRequestedList>
100001
000001
000001
000002
000002
000003
000003
...
...
ci-scripts/yaml_files/5g_rfsimulator/README.md
View file @
c70aa4c4
...
@@ -218,34 +218,6 @@ oaitun_ue1: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST> mtu 1500
...
@@ -218,34 +218,6 @@ oaitun_ue1: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST> mtu 1500
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
```
```
**CAUTION: THESE NEXT FEW COMMANDS ARE A HACK. RAN developers SHALL FIX THIS!**
```
bash
$
docker
exec
-it
rfsim5g-oai-nr-ue /bin/bash
# Check the current routes
root@bb4d400a832d:/opt/oai-nr-ue# ip route
default via 192.168.71.129 dev eth0
12.1.1.0/24 dev oaitun_ue1 proto kernel scope
link
src 12.1.1.2
192.168.71.128/26 dev eth0 proto kernel scope
link
src 192.168.71.137
# Remove the default and PDN routes
root@bb4d400a832d:/opt/oai-nr-ue# ip route del default
root@bb4d400a832d:/opt/oai-nr-ue# ip route del 12.1.1.0/24
# Force the default route through oaitun_ue1 tunnel
root@bb4d400a832d:/opt/oai-nr-ue# ip route add default via 12.1.1.2 dev oaitun_ue1
# Check the new routes
root@bb4d400a832d:/opt/oai-nr-ue# ip route
default via 12.1.1.2 dev oaitun_ue1
192.168.71.128/26 dev eth0 proto kernel scope
link
src 192.168.71.137
```
# 3. Check traffic #
# 3. Check traffic #
## 3.1. Check your Internet connectivity ##
## 3.1. Check your Internet connectivity ##
...
...
openair2/RRC/NAS/nas_config.c
View file @
c70aa4c4
...
@@ -344,6 +344,19 @@ int nas_config(int interface_id, int thirdOctet, int fourthOctet, char *ifname)
...
@@ -344,6 +344,19 @@ int nas_config(int interface_id, int thirdOctet, int fourthOctet, char *ifname)
LOG_E
(
OIP
,
"Interface %s couldn't be configured (ip address %s, mask %s broadcast address %s)
\n
"
,
LOG_E
(
OIP
,
"Interface %s couldn't be configured (ip address %s, mask %s broadcast address %s)
\n
"
,
interfaceName
,
ipAddress
,
netMask
,
broadcastAddress
);
interfaceName
,
ipAddress
,
netMask
,
broadcastAddress
);
int
res
;
char
command_line
[
500
];
res
=
sprintf
(
command_line
,
"ip rule add from %s/32 table %d && "
"ip rule add to %s/32 table %d && "
"ip route add default dev %s%d table %d"
,
ipAddress
,
interface_id
-
1
+
10000
,
ipAddress
,
interface_id
-
1
+
10000
,
UE_NAS_USE_TUN
?
"oaitun_ue"
:
"oip"
,
interface_id
,
interface_id
-
1
+
10000
);
background_system
(
command_line
);
return
returnValue
;
return
returnValue
;
}
}
...
...
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