feat(ci): adding ip route check on the ci bench server for container-based tests
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
This commit is contained in:
@@ -832,3 +832,114 @@ class Containerize():
|
|||||||
else:
|
else:
|
||||||
self.exitStatus = 1
|
self.exitStatus = 1
|
||||||
HTML.CreateHtmlTestRowQueue(self.cliOptions, 'KO', 1, html_queue)
|
HTML.CreateHtmlTestRowQueue(self.cliOptions, 'KO', 1, html_queue)
|
||||||
|
|
||||||
|
def CheckAndAddRoute(self, svrName, ipAddr, userName, password):
|
||||||
|
logging.debug('Checking IP routing on ' + svrName)
|
||||||
|
mySSH = SSH.SSHConnection()
|
||||||
|
if svrName == 'porcepix':
|
||||||
|
mySSH.open(ipAddr, userName, password)
|
||||||
|
# Check if route to asterix gnb exists
|
||||||
|
mySSH.command('ip route | grep "192.168.68.64/26"', '\$', 10)
|
||||||
|
result = re.search('192.168.18.194', mySSH.getBefore())
|
||||||
|
if result is None:
|
||||||
|
mySSH.command('echo ' + password + ' | sudo -S ip route add 192.168.68.64/26 via 192.168.18.194 dev eno1', '\$', 10)
|
||||||
|
# Check if route to obelix enb exists
|
||||||
|
mySSH.command('ip route | grep "192.168.68.128/26"', '\$', 10)
|
||||||
|
result = re.search('192.168.18.193', mySSH.getBefore())
|
||||||
|
if result is None:
|
||||||
|
mySSH.command('echo ' + password + ' | sudo -S ip route add 192.168.68.128/26 via 192.168.18.193 dev eno1', '\$', 10)
|
||||||
|
# Check if route to nepes gnb exists
|
||||||
|
mySSH.command('ip route | grep "192.168.68.192/26"', '\$', 10)
|
||||||
|
result = re.search('192.168.18.209', mySSH.getBefore())
|
||||||
|
if result is None:
|
||||||
|
mySSH.command('echo ' + password + ' | sudo -S ip route add 192.168.68.192/26 via 192.168.18.209 dev eno1', '\$', 10)
|
||||||
|
# Check if forwarding is enabled
|
||||||
|
mySSH.command('sysctl net.ipv4.conf.all.forwarding', '\$', 10)
|
||||||
|
result = re.search('net.ipv4.conf.all.forwarding = 1', mySSH.getBefore())
|
||||||
|
if result is None:
|
||||||
|
mySSH.command('echo ' + password + ' | sudo -S sysctl net.ipv4.conf.all.forwarding=1', '\$', 10)
|
||||||
|
# Check if iptables forwarding is accepted
|
||||||
|
mySSH.command('echo ' + password + ' | sudo -S iptables -L', '\$', 10)
|
||||||
|
result = re.search('Chain FORWARD .*policy ACCEPT', mySSH.getBefore())
|
||||||
|
if result is None:
|
||||||
|
mySSH.command('echo ' + password + ' | sudo -S iptables -P FORWARD ACCEPT', '\$', 10)
|
||||||
|
mySSH.close()
|
||||||
|
if svrName == 'asterix':
|
||||||
|
mySSH.open(ipAddr, userName, password)
|
||||||
|
# Check if route to porcepix epc exists
|
||||||
|
mySSH.command('ip route | grep "192.168.61.192/26"', '\$', 10)
|
||||||
|
result = re.search('192.168.18.210', mySSH.getBefore())
|
||||||
|
if result is None:
|
||||||
|
mySSH.command('echo ' + password + ' | sudo -S ip route add 192.168.61.192/26 via 192.168.18.210 dev em1', '\$', 10)
|
||||||
|
# Check if route to porcepix cn5g exists
|
||||||
|
mySSH.command('ip route | grep "192.168.70.128/26"', '\$', 10)
|
||||||
|
result = re.search('192.168.18.210', mySSH.getBefore())
|
||||||
|
if result is None:
|
||||||
|
mySSH.command('echo ' + password + ' | sudo -S ip route add 192.168.70.128/26 via 192.168.18.210 dev em1', '\$', 10)
|
||||||
|
# Check if X2 route to obelix enb exists
|
||||||
|
mySSH.command('ip route | grep "192.168.68.128/26"', '\$', 10)
|
||||||
|
result = re.search('192.168.18.193', mySSH.getBefore())
|
||||||
|
if result is None:
|
||||||
|
mySSH.command('echo ' + password + ' | sudo -S ip route add 192.168.68.128/26 via 192.168.18.193 dev em1', '\$', 10)
|
||||||
|
# Check if forwarding is enabled
|
||||||
|
mySSH.command('sysctl net.ipv4.conf.all.forwarding', '\$', 10)
|
||||||
|
result = re.search('net.ipv4.conf.all.forwarding = 1', mySSH.getBefore())
|
||||||
|
if result is None:
|
||||||
|
mySSH.command('echo ' + password + ' | sudo -S sysctl net.ipv4.conf.all.forwarding=1', '\$', 10)
|
||||||
|
# Check if iptables forwarding is accepted
|
||||||
|
mySSH.command('echo ' + password + ' | sudo -S iptables -L', '\$', 10)
|
||||||
|
result = re.search('Chain FORWARD .*policy ACCEPT', mySSH.getBefore())
|
||||||
|
if result is None:
|
||||||
|
mySSH.command('echo ' + password + ' | sudo -S iptables -P FORWARD ACCEPT', '\$', 10)
|
||||||
|
mySSH.close()
|
||||||
|
if svrName == 'obelix':
|
||||||
|
mySSH.open(ipAddr, userName, password)
|
||||||
|
# Check if route to porcepix epc exists
|
||||||
|
mySSH.command('ip route | grep "192.168.61.192/26"', '\$', 10)
|
||||||
|
result = re.search('192.168.18.210', mySSH.getBefore())
|
||||||
|
if result is None:
|
||||||
|
mySSH.command('echo ' + password + ' | sudo -S ip route add 192.168.61.192/26 via 192.168.18.210 dev eno1', '\$', 10)
|
||||||
|
# Check if X2 route to asterix gnb exists
|
||||||
|
mySSH.command('ip route | grep "192.168.68.64/26"', '\$', 10)
|
||||||
|
result = re.search('192.168.18.194', mySSH.getBefore())
|
||||||
|
if result is None:
|
||||||
|
mySSH.command('echo ' + password + ' | sudo -S ip route add 192.168.68.64/26 via 192.168.18.194 dev eno1', '\$', 10)
|
||||||
|
# Check if X2 route to nepes gnb exists
|
||||||
|
mySSH.command('ip route | grep "192.168.68.192/26"', '\$', 10)
|
||||||
|
result = re.search('192.168.18.209', mySSH.getBefore())
|
||||||
|
if result is None:
|
||||||
|
mySSH.command('echo ' + password + ' | sudo -S ip route add 192.168.68.192/26 via 192.168.18.209 dev eno1', '\$', 10)
|
||||||
|
# Check if forwarding is enabled
|
||||||
|
mySSH.command('sysctl net.ipv4.conf.all.forwarding', '\$', 10)
|
||||||
|
result = re.search('net.ipv4.conf.all.forwarding = 1', mySSH.getBefore())
|
||||||
|
if result is None:
|
||||||
|
mySSH.command('echo ' + password + ' | sudo -S sysctl net.ipv4.conf.all.forwarding=1', '\$', 10)
|
||||||
|
# Check if iptables forwarding is accepted
|
||||||
|
mySSH.command('echo ' + password + ' | sudo -S iptables -L', '\$', 10)
|
||||||
|
result = re.search('Chain FORWARD .*policy ACCEPT', mySSH.getBefore())
|
||||||
|
if result is None:
|
||||||
|
mySSH.command('echo ' + password + ' | sudo -S iptables -P FORWARD ACCEPT', '\$', 10)
|
||||||
|
mySSH.close()
|
||||||
|
if svrName == 'nepes':
|
||||||
|
mySSH.open(ipAddr, userName, password)
|
||||||
|
# Check if route to porcepix epc exists
|
||||||
|
mySSH.command('ip route | grep "192.168.61.192/26"', '\$', 10)
|
||||||
|
result = re.search('192.168.18.210', mySSH.getBefore())
|
||||||
|
if result is None:
|
||||||
|
mySSH.command('echo ' + password + ' | sudo -S ip route add 192.168.61.192/26 via 192.168.18.210 dev enp0s31f6', '\$', 10)
|
||||||
|
# Check if X2 route to obelix enb exists
|
||||||
|
mySSH.command('ip route | grep "192.168.68.128/26"', '\$', 10)
|
||||||
|
result = re.search('192.168.18.193', mySSH.getBefore())
|
||||||
|
if result is None:
|
||||||
|
mySSH.command('echo ' + password + ' | sudo -S ip route add 192.168.68.128/26 via 192.168.18.193 dev enp0s31f6', '\$', 10)
|
||||||
|
# Check if forwarding is enabled
|
||||||
|
mySSH.command('sysctl net.ipv4.conf.all.forwarding', '\$', 10)
|
||||||
|
result = re.search('net.ipv4.conf.all.forwarding = 1', mySSH.getBefore())
|
||||||
|
if result is None:
|
||||||
|
mySSH.command('echo ' + password + ' | sudo -S sysctl net.ipv4.conf.all.forwarding=1', '\$', 10)
|
||||||
|
# Check if iptables forwarding is accepted
|
||||||
|
mySSH.command('echo ' + password + ' | sudo -S iptables -L', '\$', 10)
|
||||||
|
result = re.search('Chain FORWARD .*policy ACCEPT', mySSH.getBefore())
|
||||||
|
if result is None:
|
||||||
|
mySSH.command('echo ' + password + ' | sudo -S iptables -P FORWARD ACCEPT', '\$', 10)
|
||||||
|
mySSH.close()
|
||||||
|
|||||||
@@ -734,6 +734,22 @@ elif re.match('^TesteNB$', mode, re.IGNORECASE) or re.match('^TestUE$', mode, re
|
|||||||
HTML.SethtmlUEConnected(len(CiTestObj.UEDevices) + len(CiTestObj.CatMDevices))
|
HTML.SethtmlUEConnected(len(CiTestObj.UEDevices) + len(CiTestObj.CatMDevices))
|
||||||
HTML.CreateHtmlTabHeader()
|
HTML.CreateHtmlTabHeader()
|
||||||
|
|
||||||
|
# On CI bench w/ containers, we need to validate if IP routes are set
|
||||||
|
if EPC.IPAddress == '192.168.18.210':
|
||||||
|
CONTAINERS.CheckAndAddRoute('porcepix', EPC.IPAddress, EPC.UserName, EPC.Password)
|
||||||
|
if CONTAINERS.eNBIPAddress == '192.168.18.194':
|
||||||
|
CONTAINERS.CheckAndAddRoute('asterix', CONTAINERS.eNBIPAddress, CONTAINERS.eNBUserName, CONTAINERS.eNBPassword)
|
||||||
|
if CONTAINERS.eNB1IPAddress == '192.168.18.194':
|
||||||
|
CONTAINERS.CheckAndAddRoute('asterix', CONTAINERS.eNB1IPAddress, CONTAINERS.eNB1UserName, CONTAINERS.eNB1Password)
|
||||||
|
if CONTAINERS.eNBIPAddress == '192.168.18.193':
|
||||||
|
CONTAINERS.CheckAndAddRoute('obelix', CONTAINERS.eNBIPAddress, CONTAINERS.eNBUserName, CONTAINERS.eNBPassword)
|
||||||
|
if CONTAINERS.eNB1IPAddress == '192.168.18.193':
|
||||||
|
CONTAINERS.CheckAndAddRoute('obelix', CONTAINERS.eNB1IPAddress, CONTAINERS.eNB1UserName, CONTAINERS.eNB1Password)
|
||||||
|
if CONTAINERS.eNBIPAddress == '192.168.18.209':
|
||||||
|
CONTAINERS.CheckAndAddRoute('nepes', CONTAINERS.eNBIPAddress, CONTAINERS.eNBUserName, CONTAINERS.eNBPassword)
|
||||||
|
if CONTAINERS.eNB1IPAddress == '192.168.18.209':
|
||||||
|
CONTAINERS.CheckAndAddRoute('nepes', CONTAINERS.eNB1IPAddress, CONTAINERS.eNB1UserName, CONTAINERS.eNB1Password)
|
||||||
|
|
||||||
CiTestObj.FailReportCnt = 0
|
CiTestObj.FailReportCnt = 0
|
||||||
RAN.prematureExit=True
|
RAN.prematureExit=True
|
||||||
HTML.startTime=int(round(time.time() * 1000))
|
HTML.startTime=int(round(time.time() * 1000))
|
||||||
|
|||||||
@@ -0,0 +1,53 @@
|
|||||||
|
version: '3.8'
|
||||||
|
|
||||||
|
services:
|
||||||
|
enb_mono_fdd:
|
||||||
|
image: oai-enb:develop
|
||||||
|
privileged: true
|
||||||
|
container_name: nsa-b200-enb
|
||||||
|
environment:
|
||||||
|
USE_FDD_MONO: 'yes'
|
||||||
|
USE_B2XX: 'yes'
|
||||||
|
ENB_NAME: eNB-in-docker
|
||||||
|
MCC: '222'
|
||||||
|
MNC: '01'
|
||||||
|
MNC_LENGTH: 2
|
||||||
|
TAC: 1
|
||||||
|
UTRA_BAND_ID: 7
|
||||||
|
DL_FREQUENCY_IN_MHZ: 2680
|
||||||
|
UL_FREQUENCY_OFFSET_IN_MHZ: 120
|
||||||
|
NID_CELL: 0
|
||||||
|
NB_PRB: 25
|
||||||
|
ENABLE_MEASUREMENT_REPORTS: 'yes'
|
||||||
|
ENABLE_X2: 'yes'
|
||||||
|
MME_S1C_IP_ADDRESS: 192.168.18.210
|
||||||
|
ENB_S1C_IF_NAME: eth0
|
||||||
|
ENB_S1C_IP_ADDRESS: 192.168.68.130
|
||||||
|
ENB_S1U_IF_NAME: eth0
|
||||||
|
ENB_S1U_IP_ADDRESS: 192.168.68.130
|
||||||
|
ENB_X2_IP_ADDRESS: 192.168.68.130
|
||||||
|
RRC_INACTIVITY_THRESHOLD: 0
|
||||||
|
FLEXRAN_ENABLED: 'no'
|
||||||
|
FLEXRAN_INTERFACE_NAME: eth0
|
||||||
|
FLEXRAN_IPV4_ADDRESS: 192.168.18.210
|
||||||
|
THREAD_PARALLEL_CONFIG: PARALLEL_RU_L1_TRX_SPLIT
|
||||||
|
volumes:
|
||||||
|
- /dev:/dev
|
||||||
|
networks:
|
||||||
|
public_net:
|
||||||
|
ipv4_address: 192.168.68.130
|
||||||
|
healthcheck:
|
||||||
|
# pgrep does NOT work
|
||||||
|
test: /bin/bash -c "ps aux | grep -v grep | grep -c softmodem"
|
||||||
|
interval: 10s
|
||||||
|
timeout: 5s
|
||||||
|
retries: 5
|
||||||
|
|
||||||
|
networks:
|
||||||
|
public_net:
|
||||||
|
name: nsa-b200-enb-net
|
||||||
|
ipam:
|
||||||
|
config:
|
||||||
|
- subnet: 192.168.68.128/26
|
||||||
|
driver_opts:
|
||||||
|
com.docker.network.bridge.name: "nsa-enb-net"
|
||||||
@@ -0,0 +1,50 @@
|
|||||||
|
version: '3.8'
|
||||||
|
|
||||||
|
services:
|
||||||
|
gnb_mono_tdd:
|
||||||
|
image: oai-gnb:develop
|
||||||
|
privileged: true
|
||||||
|
container_name: nsa-b200-gnb
|
||||||
|
environment:
|
||||||
|
USE_NSA_TDD_MONO: 'yes'
|
||||||
|
USE_B2XX: 'yes'
|
||||||
|
GNB_NAME: gNB-in-docker
|
||||||
|
MCC: '222'
|
||||||
|
MNC: '01'
|
||||||
|
MNC_LENGTH: 2
|
||||||
|
TAC: 1
|
||||||
|
ENABLE_X2: 'yes'
|
||||||
|
ENB_X2_IP_ADDRESS: 192.168.68.130
|
||||||
|
MME_S1C_IP_ADDRESS: 192.168.18.210
|
||||||
|
GNB_S1C_IF_NAME: eth0
|
||||||
|
GNB_S1C_IP_ADDRESS: 192.168.68.194
|
||||||
|
GNB_S1U_IF_NAME: eth0
|
||||||
|
GNB_S1U_IP_ADDRESS: 192.168.68.194
|
||||||
|
GNB_X2_IP_ADDRESS: 192.168.68.194
|
||||||
|
RRC_INACTIVITY_THRESHOLD: 0
|
||||||
|
FLEXRAN_ENABLED: 'no'
|
||||||
|
FLEXRAN_INTERFACE_NAME: eth0
|
||||||
|
FLEXRAN_IPV4_ADDRESS: 192.168.18.210
|
||||||
|
THREAD_PARALLEL_CONFIG: PARALLEL_RU_L1_TRX_SPLIT
|
||||||
|
USE_ADDITIONAL_OPTIONS: '-E -q'
|
||||||
|
volumes:
|
||||||
|
- /dev:/dev
|
||||||
|
networks:
|
||||||
|
public_net:
|
||||||
|
ipv4_address: 192.168.68.194
|
||||||
|
#entrypoint: /bin/bash -c "sleep infinity"
|
||||||
|
healthcheck:
|
||||||
|
# pgrep does NOT work
|
||||||
|
test: /bin/bash -c "ps aux | grep -v grep | grep -c softmodem"
|
||||||
|
interval: 10s
|
||||||
|
timeout: 5s
|
||||||
|
retries: 5
|
||||||
|
|
||||||
|
networks:
|
||||||
|
public_net:
|
||||||
|
name: nsa-b200-gnb-net
|
||||||
|
ipam:
|
||||||
|
config:
|
||||||
|
- subnet: 192.168.68.192/26
|
||||||
|
driver_opts:
|
||||||
|
com.docker.network.bridge.name: "nsa-gnb-net"
|
||||||
Reference in New Issue
Block a user