Merge remote-tracking branch 'origin/ci_support_amarisoft_ue' into integration_2022_wk14
This commit is contained in:
Executable
+18
@@ -0,0 +1,18 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
ue_id="$1" # UE id
|
||||||
|
duration="$2" # Sim duration
|
||||||
|
|
||||||
|
shift
|
||||||
|
shift
|
||||||
|
|
||||||
|
function end
|
||||||
|
{
|
||||||
|
exit 0
|
||||||
|
}
|
||||||
|
trap end INT TERM
|
||||||
|
|
||||||
|
echo "ip netns exec $ue_id $@ > /tmp/test_${ue_id}.log"
|
||||||
|
ip netns exec $ue_id $@ > /tmp/test_$ue_id.log
|
||||||
|
|
||||||
|
|
||||||
@@ -0,0 +1,172 @@
|
|||||||
|
/* UE simulator configuration */
|
||||||
|
|
||||||
|
|
||||||
|
/* UE simulator configuration file version 2021-06-17
|
||||||
|
* LTE / 5G Non StandAlone
|
||||||
|
* Copyright (C) 2019-2021 Amarisoft
|
||||||
|
*/
|
||||||
|
{
|
||||||
|
#define N_ANTENNA_DL 1
|
||||||
|
#define TDD 1
|
||||||
|
#define CELL_BANDWIDTH 40
|
||||||
|
#define UE_COUNT 3 // number of simulated UEs 208970100001127, 208970100001128, 208970100001129
|
||||||
|
|
||||||
|
|
||||||
|
log_options: "all.level=error,all.max_size=0,nas.level=debug,nas.max_size=1,rrc.level=debug,rrc.max_size=1",
|
||||||
|
log_filename: "/tmp/ue0.log",
|
||||||
|
|
||||||
|
/* Enable remote API and Web interface */
|
||||||
|
com_addr: "0.0.0.0:9002",
|
||||||
|
|
||||||
|
include "rf_driver/1chan.cfg",
|
||||||
|
|
||||||
|
/* If true, allow the simulation of several UEs at the same time and allow dynamic UE creation from remote API */
|
||||||
|
|
||||||
|
cell_groups: [{
|
||||||
|
group_type: "nr",
|
||||||
|
multi_ue: true,
|
||||||
|
cells: [{
|
||||||
|
rf_port: 0,
|
||||||
|
bandwidth: CELL_BANDWIDTH,
|
||||||
|
#if TDD == 1
|
||||||
|
band: 78,
|
||||||
|
dl_nr_arfcn:621312,
|
||||||
|
ssb_nr_arfcn:621312,
|
||||||
|
|
||||||
|
//band: 41,
|
||||||
|
//dl_nr_arfcn:517020,
|
||||||
|
//ssb_nr_arfcn:516990,
|
||||||
|
#else
|
||||||
|
band: 7,
|
||||||
|
dl_nr_arfcn: 536020,
|
||||||
|
ssb_nr_arfcn: 535930,
|
||||||
|
ssb_subcarrier_spacing: 15,
|
||||||
|
#endif
|
||||||
|
subcarrier_spacing: 30,
|
||||||
|
n_antenna_dl: N_ANTENNA_DL,
|
||||||
|
n_antenna_ul: 1,
|
||||||
|
rx_to_tx_latency:2,
|
||||||
|
}],
|
||||||
|
}],
|
||||||
|
|
||||||
|
|
||||||
|
/* Enable it to allow sim_events to be handled remotely */
|
||||||
|
//rue_bind_addr: "127.0.10.11",
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
ue_list: [
|
||||||
|
{
|
||||||
|
/* UE capabilities */
|
||||||
|
/* USIM data */
|
||||||
|
"ue_id" : 0,
|
||||||
|
"imsi": "208970100001127",
|
||||||
|
"K": "fec86ba6eb707ed08905757b1bb44b8f",
|
||||||
|
"sim_algo":"milenage",
|
||||||
|
"op": "1006020f0a478bf6b699f15c062e42b3",
|
||||||
|
as_release: 15,
|
||||||
|
ue_category: "nr",
|
||||||
|
apn:"oai",
|
||||||
|
attach_pdn_type:"ipv4",
|
||||||
|
default_nssai: [
|
||||||
|
{
|
||||||
|
sst: 1,
|
||||||
|
sd: 66051,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
default_pdu_session_snssai: {
|
||||||
|
sst: 1,
|
||||||
|
sd: 66051,
|
||||||
|
},
|
||||||
|
/* Enable it to allow sim_events to be handled remotely */
|
||||||
|
//rue_addr: "127.1.0.0",
|
||||||
|
/* Enable it to create a TUN interface for each UE PDN */
|
||||||
|
tun_setup_script: "ue-ifup",
|
||||||
|
sim_events: [
|
||||||
|
{
|
||||||
|
event: "power_on",
|
||||||
|
start_time: 5,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
event: "power_off",
|
||||||
|
start_time: 30,
|
||||||
|
}
|
||||||
|
] /*end sim events */
|
||||||
|
}, /*end UE object 0*/
|
||||||
|
{
|
||||||
|
/* UE capabilities */
|
||||||
|
/* USIM data */
|
||||||
|
"ue_id" : 1,
|
||||||
|
"imsi": "208970100001128",
|
||||||
|
"K": "fec86ba6eb707ed08905757b1bb44b8f",
|
||||||
|
"sim_algo":"milenage",
|
||||||
|
"op": "1006020f0a478bf6b699f15c062e42b3",
|
||||||
|
as_release: 15,
|
||||||
|
ue_category: "nr",
|
||||||
|
apn:"oai",
|
||||||
|
attach_pdn_type:"ipv4",
|
||||||
|
default_nssai: [
|
||||||
|
{
|
||||||
|
sst: 1,
|
||||||
|
sd: 66051,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
default_pdu_session_snssai: {
|
||||||
|
sst: 1,
|
||||||
|
sd: 66051,
|
||||||
|
},
|
||||||
|
/* Enable it to allow sim_events to be handled remotely */
|
||||||
|
//rue_addr: "127.1.0.0",
|
||||||
|
/* Enable it to create a TUN interface for each UE PDN */
|
||||||
|
tun_setup_script: "ue-ifup",
|
||||||
|
sim_events: [
|
||||||
|
{
|
||||||
|
event: "power_on",
|
||||||
|
start_time: 5,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
event: "power_off",
|
||||||
|
start_time: 30,
|
||||||
|
}
|
||||||
|
] /*end sim events */
|
||||||
|
}, /*end UE object 1*/
|
||||||
|
{
|
||||||
|
/* UE capabilities */
|
||||||
|
/* USIM data */
|
||||||
|
"ue_id" : 2,
|
||||||
|
"imsi": "208970100001129",
|
||||||
|
"K": "fec86ba6eb707ed08905757b1bb44b8f",
|
||||||
|
"sim_algo":"milenage",
|
||||||
|
"op": "1006020f0a478bf6b699f15c062e42b3",
|
||||||
|
as_release: 15,
|
||||||
|
ue_category: "nr",
|
||||||
|
apn:"oai",
|
||||||
|
attach_pdn_type:"ipv4",
|
||||||
|
default_nssai: [
|
||||||
|
{
|
||||||
|
sst: 1,
|
||||||
|
sd: 66051,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
default_pdu_session_snssai: {
|
||||||
|
sst: 1,
|
||||||
|
sd: 66051,
|
||||||
|
},
|
||||||
|
/* Enable it to allow sim_events to be handled remotely */
|
||||||
|
//rue_addr: "127.1.0.0",
|
||||||
|
/* Enable it to create a TUN interface for each UE PDN */
|
||||||
|
tun_setup_script: "ue-ifup",
|
||||||
|
sim_events: [
|
||||||
|
{
|
||||||
|
event: "power_on",
|
||||||
|
start_time: 5,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
event: "power_off",
|
||||||
|
start_time: 30,
|
||||||
|
}
|
||||||
|
] /*end sim events */
|
||||||
|
} /*end UE object 2*/
|
||||||
|
],/*end UE list*/
|
||||||
|
}/*end json*/
|
||||||
|
|
||||||
@@ -0,0 +1,142 @@
|
|||||||
|
/* UE simulator configuration */
|
||||||
|
|
||||||
|
|
||||||
|
/* UE simulator configuration file version 2021-06-17
|
||||||
|
* LTE / 5G Non StandAlone
|
||||||
|
* Copyright (C) 2019-2021 Amarisoft
|
||||||
|
*/
|
||||||
|
{
|
||||||
|
#define N_ANTENNA_DL 1
|
||||||
|
#define TDD 1
|
||||||
|
#define CELL_BANDWIDTH 40
|
||||||
|
#define UE_COUNT 2 // number of simulated UEs 208970100001127, 208970100001128, 208970100001129
|
||||||
|
|
||||||
|
|
||||||
|
log_options: "all.level=error,all.max_size=0,nas.level=debug,nas.max_size=1,rrc.level=debug,rrc.max_size=1",
|
||||||
|
log_filename: "/tmp/ue0.log",
|
||||||
|
|
||||||
|
/* Enable remote API and Web interface */
|
||||||
|
com_addr: "0.0.0.0:9002",
|
||||||
|
|
||||||
|
include "rf_driver/1chan.cfg",
|
||||||
|
|
||||||
|
/* If true, allow the simulation of several UEs at the same time and allow dynamic UE creation from remote API */
|
||||||
|
|
||||||
|
cell_groups: [{
|
||||||
|
group_type: "nr",
|
||||||
|
multi_ue: true,
|
||||||
|
cells: [{
|
||||||
|
rf_port: 0,
|
||||||
|
bandwidth: CELL_BANDWIDTH,
|
||||||
|
#if TDD == 1
|
||||||
|
band: 78,
|
||||||
|
dl_nr_arfcn:621312,
|
||||||
|
ssb_nr_arfcn:621312,
|
||||||
|
|
||||||
|
//band: 41,
|
||||||
|
//dl_nr_arfcn:517020,
|
||||||
|
//ssb_nr_arfcn:516990,
|
||||||
|
#else
|
||||||
|
band: 7,
|
||||||
|
dl_nr_arfcn: 536020,
|
||||||
|
ssb_nr_arfcn: 535930,
|
||||||
|
ssb_subcarrier_spacing: 15,
|
||||||
|
#endif
|
||||||
|
subcarrier_spacing: 30,
|
||||||
|
n_antenna_dl: N_ANTENNA_DL,
|
||||||
|
n_antenna_ul: 1,
|
||||||
|
rx_to_tx_latency:2,
|
||||||
|
}],
|
||||||
|
}],
|
||||||
|
|
||||||
|
|
||||||
|
/* Enable it to allow sim_events to be handled remotely */
|
||||||
|
//rue_bind_addr: "127.0.10.11",
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
ue_list: [
|
||||||
|
{
|
||||||
|
/* UE capabilities */
|
||||||
|
/* USIM data */
|
||||||
|
"ue_id" : 1,
|
||||||
|
"imsi": "208970100001127",
|
||||||
|
"K": "fec86ba6eb707ed08905757b1bb44b8f",
|
||||||
|
"sim_algo":"milenage",
|
||||||
|
"op": "1006020f0a478bf6b699f15c062e42b3",
|
||||||
|
as_release: 15,
|
||||||
|
ue_category: "nr",
|
||||||
|
apn:"oai",
|
||||||
|
attach_pdn_type:"ipv4",
|
||||||
|
default_nssai: [
|
||||||
|
{
|
||||||
|
sst: 1,
|
||||||
|
sd: 66051,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
default_pdu_session_snssai: {
|
||||||
|
sst: 1,
|
||||||
|
sd: 66051,
|
||||||
|
},
|
||||||
|
/* Enable it to allow sim_events to be handled remotely */
|
||||||
|
//rue_addr: "127.1.0.0",
|
||||||
|
/* Enable it to create a TUN interface for each UE PDN */
|
||||||
|
tun_setup_script: "ue-ifup",
|
||||||
|
sim_events: [
|
||||||
|
{
|
||||||
|
event: "power_on",
|
||||||
|
start_time: 5,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
event: "power_off",
|
||||||
|
start_time: 30,
|
||||||
|
}
|
||||||
|
] /*end sim events */
|
||||||
|
}, /*end UE object 0*/
|
||||||
|
{
|
||||||
|
/* UE capabilities */
|
||||||
|
/* USIM data */
|
||||||
|
"ue_id" : 2,
|
||||||
|
"imsi": "208970100001128",
|
||||||
|
"K": "fec86ba6eb707ed08905757b1bb44b8f",
|
||||||
|
"sim_algo":"milenage",
|
||||||
|
"op": "1006020f0a478bf6b699f15c062e42b3",
|
||||||
|
as_release: 15,
|
||||||
|
ue_category: "nr",
|
||||||
|
apn:"oai",
|
||||||
|
attach_pdn_type:"ipv4",
|
||||||
|
default_nssai: [
|
||||||
|
{
|
||||||
|
sst: 1,
|
||||||
|
sd: 66051,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
default_pdu_session_snssai: {
|
||||||
|
sst: 1,
|
||||||
|
sd: 66051,
|
||||||
|
},
|
||||||
|
/* Enable it to allow sim_events to be handled remotely */
|
||||||
|
//rue_addr: "127.1.0.0",
|
||||||
|
/* Enable it to create a TUN interface for each UE PDN */
|
||||||
|
tun_setup_script: "ue-ifup",
|
||||||
|
sim_events: [
|
||||||
|
{
|
||||||
|
event: "power_on",
|
||||||
|
start_time: 5,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"tag": "ping",
|
||||||
|
"prog":"oai_ext_app.sh",
|
||||||
|
start_time: 15,
|
||||||
|
end_time: 25,
|
||||||
|
"args":["ping 192.168.70.136"],
|
||||||
|
"event":"ext_app"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
event: "power_off",
|
||||||
|
start_time: 30,
|
||||||
|
}
|
||||||
|
] /*end sim events */
|
||||||
|
} /*end UE object 1*/
|
||||||
|
],/*end UE list*/
|
||||||
|
}/*end json*/
|
||||||
@@ -0,0 +1,150 @@
|
|||||||
|
/* UE simulator configuration */
|
||||||
|
|
||||||
|
|
||||||
|
/* UE simulator configuration file version 2021-06-17
|
||||||
|
* LTE / 5G Non StandAlone
|
||||||
|
* Copyright (C) 2019-2021 Amarisoft
|
||||||
|
*/
|
||||||
|
{
|
||||||
|
#define N_ANTENNA_DL 1
|
||||||
|
#define TDD 1
|
||||||
|
#define CELL_BANDWIDTH 40
|
||||||
|
#define UE_COUNT 2 // number of simulated UEs 208970100001127, 208970100001128, 208970100001129
|
||||||
|
|
||||||
|
|
||||||
|
log_options: "all.level=error,all.max_size=0,nas.level=debug,nas.max_size=1,rrc.level=debug,rrc.max_size=1",
|
||||||
|
log_filename: "/tmp/ue0.log",
|
||||||
|
|
||||||
|
/* Enable remote API and Web interface */
|
||||||
|
com_addr: "0.0.0.0:9002",
|
||||||
|
|
||||||
|
include "rf_driver/1chan.cfg",
|
||||||
|
|
||||||
|
/* If true, allow the simulation of several UEs at the same time and allow dynamic UE creation from remote API */
|
||||||
|
|
||||||
|
cell_groups: [{
|
||||||
|
group_type: "nr",
|
||||||
|
multi_ue: true,
|
||||||
|
cells: [{
|
||||||
|
rf_port: 0,
|
||||||
|
bandwidth: CELL_BANDWIDTH,
|
||||||
|
#if TDD == 1
|
||||||
|
band: 78,
|
||||||
|
dl_nr_arfcn:621312,
|
||||||
|
ssb_nr_arfcn:621312,
|
||||||
|
|
||||||
|
//band: 41,
|
||||||
|
//dl_nr_arfcn:517020,
|
||||||
|
//ssb_nr_arfcn:516990,
|
||||||
|
#else
|
||||||
|
band: 7,
|
||||||
|
dl_nr_arfcn: 536020,
|
||||||
|
ssb_nr_arfcn: 535930,
|
||||||
|
ssb_subcarrier_spacing: 15,
|
||||||
|
#endif
|
||||||
|
subcarrier_spacing: 30,
|
||||||
|
n_antenna_dl: N_ANTENNA_DL,
|
||||||
|
n_antenna_ul: 1,
|
||||||
|
rx_to_tx_latency:2,
|
||||||
|
}],
|
||||||
|
}],
|
||||||
|
|
||||||
|
|
||||||
|
/* Enable it to allow sim_events to be handled remotely */
|
||||||
|
//rue_bind_addr: "127.0.10.11",
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
ue_list: [
|
||||||
|
{
|
||||||
|
/* UE capabilities */
|
||||||
|
/* USIM data */
|
||||||
|
"ue_id" : 1,
|
||||||
|
"imsi": "208970100001127",
|
||||||
|
"K": "fec86ba6eb707ed08905757b1bb44b8f",
|
||||||
|
"sim_algo":"milenage",
|
||||||
|
"op": "1006020f0a478bf6b699f15c062e42b3",
|
||||||
|
as_release: 15,
|
||||||
|
ue_category: "nr",
|
||||||
|
apn:"oai",
|
||||||
|
attach_pdn_type:"ipv4",
|
||||||
|
default_nssai: [
|
||||||
|
{
|
||||||
|
sst: 1,
|
||||||
|
sd: 66051,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
default_pdu_session_snssai: {
|
||||||
|
sst: 1,
|
||||||
|
sd: 66051,
|
||||||
|
},
|
||||||
|
/* Enable it to allow sim_events to be handled remotely */
|
||||||
|
//rue_addr: "127.1.0.0",
|
||||||
|
/* Enable it to create a TUN interface for each UE PDN */
|
||||||
|
tun_setup_script: "ue-ifup",
|
||||||
|
sim_events: [
|
||||||
|
{
|
||||||
|
event: "power_on",
|
||||||
|
start_time: 5,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"tag": "ping",
|
||||||
|
"prog":"oai_ext_app.sh",
|
||||||
|
start_time: 15,
|
||||||
|
end_time: 25,
|
||||||
|
"args":["ping 192.168.70.136"],
|
||||||
|
"event":"ext_app"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
event: "power_off",
|
||||||
|
start_time: 30,
|
||||||
|
}
|
||||||
|
] /*end sim events */
|
||||||
|
}, /*end UE object 0*/
|
||||||
|
{
|
||||||
|
/* UE capabilities */
|
||||||
|
/* USIM data */
|
||||||
|
"ue_id" : 2,
|
||||||
|
"imsi": "208970100001128",
|
||||||
|
"K": "fec86ba6eb707ed08905757b1bb44b8f",
|
||||||
|
"sim_algo":"milenage",
|
||||||
|
"op": "1006020f0a478bf6b699f15c062e42b3",
|
||||||
|
as_release: 15,
|
||||||
|
ue_category: "nr",
|
||||||
|
apn:"oai",
|
||||||
|
attach_pdn_type:"ipv4",
|
||||||
|
default_nssai: [
|
||||||
|
{
|
||||||
|
sst: 1,
|
||||||
|
sd: 66051,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
default_pdu_session_snssai: {
|
||||||
|
sst: 1,
|
||||||
|
sd: 66051,
|
||||||
|
},
|
||||||
|
/* Enable it to allow sim_events to be handled remotely */
|
||||||
|
//rue_addr: "127.1.0.0",
|
||||||
|
/* Enable it to create a TUN interface for each UE PDN */
|
||||||
|
tun_setup_script: "ue-ifup",
|
||||||
|
sim_events: [
|
||||||
|
{
|
||||||
|
event: "power_on",
|
||||||
|
start_time: 5,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"tag": "ping",
|
||||||
|
"prog":"oai_ext_app.sh",
|
||||||
|
start_time: 15,
|
||||||
|
end_time: 25,
|
||||||
|
"args":["ping 192.168.70.136"],
|
||||||
|
"event":"ext_app"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
event: "power_off",
|
||||||
|
start_time: 30,
|
||||||
|
}
|
||||||
|
] /*end sim events */
|
||||||
|
} /*end UE object 1*/
|
||||||
|
],/*end UE list*/
|
||||||
|
}/*end json*/
|
||||||
@@ -0,0 +1,150 @@
|
|||||||
|
/* UE simulator configuration */
|
||||||
|
|
||||||
|
|
||||||
|
/* UE simulator configuration file version 2021-06-17
|
||||||
|
* LTE / 5G Non StandAlone
|
||||||
|
* Copyright (C) 2019-2021 Amarisoft
|
||||||
|
*/
|
||||||
|
{
|
||||||
|
#define N_ANTENNA_DL 1
|
||||||
|
#define TDD 1
|
||||||
|
#define CELL_BANDWIDTH 40
|
||||||
|
#define UE_COUNT 2 // number of simulated UEs 208970100001127, 208970100001128, 208970100001129
|
||||||
|
|
||||||
|
|
||||||
|
log_options: "all.level=error,all.max_size=0,nas.level=debug,nas.max_size=1,rrc.level=debug,rrc.max_size=1",
|
||||||
|
log_filename: "/tmp/ue0.log",
|
||||||
|
|
||||||
|
/* Enable remote API and Web interface */
|
||||||
|
com_addr: "0.0.0.0:9002",
|
||||||
|
|
||||||
|
include "rf_driver/1chan.cfg",
|
||||||
|
|
||||||
|
/* If true, allow the simulation of several UEs at the same time and allow dynamic UE creation from remote API */
|
||||||
|
|
||||||
|
cell_groups: [{
|
||||||
|
group_type: "nr",
|
||||||
|
multi_ue: true,
|
||||||
|
cells: [{
|
||||||
|
rf_port: 0,
|
||||||
|
bandwidth: CELL_BANDWIDTH,
|
||||||
|
#if TDD == 1
|
||||||
|
band: 78,
|
||||||
|
dl_nr_arfcn:621312,
|
||||||
|
ssb_nr_arfcn:621312,
|
||||||
|
|
||||||
|
//band: 41,
|
||||||
|
//dl_nr_arfcn:517020,
|
||||||
|
//ssb_nr_arfcn:516990,
|
||||||
|
#else
|
||||||
|
band: 7,
|
||||||
|
dl_nr_arfcn: 536020,
|
||||||
|
ssb_nr_arfcn: 535930,
|
||||||
|
ssb_subcarrier_spacing: 15,
|
||||||
|
#endif
|
||||||
|
subcarrier_spacing: 30,
|
||||||
|
n_antenna_dl: N_ANTENNA_DL,
|
||||||
|
n_antenna_ul: 1,
|
||||||
|
rx_to_tx_latency:2,
|
||||||
|
}],
|
||||||
|
}],
|
||||||
|
|
||||||
|
|
||||||
|
/* Enable it to allow sim_events to be handled remotely */
|
||||||
|
//rue_bind_addr: "127.0.10.11",
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
ue_list: [
|
||||||
|
{
|
||||||
|
/* UE capabilities */
|
||||||
|
/* USIM data */
|
||||||
|
"ue_id" : 1,
|
||||||
|
"imsi": "208970100001127",
|
||||||
|
"K": "fec86ba6eb707ed08905757b1bb44b8f",
|
||||||
|
"sim_algo":"milenage",
|
||||||
|
"op": "1006020f0a478bf6b699f15c062e42b3",
|
||||||
|
as_release: 15,
|
||||||
|
ue_category: "nr",
|
||||||
|
apn:"oai",
|
||||||
|
attach_pdn_type:"ipv4",
|
||||||
|
default_nssai: [
|
||||||
|
{
|
||||||
|
sst: 1,
|
||||||
|
sd: 66051,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
default_pdu_session_snssai: {
|
||||||
|
sst: 1,
|
||||||
|
sd: 66051,
|
||||||
|
},
|
||||||
|
/* Enable it to allow sim_events to be handled remotely */
|
||||||
|
//rue_addr: "127.1.0.0",
|
||||||
|
/* Enable it to create a TUN interface for each UE PDN */
|
||||||
|
tun_setup_script: "ue-ifup",
|
||||||
|
sim_events: [
|
||||||
|
{
|
||||||
|
event: "power_on",
|
||||||
|
start_time: 5,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"tag": "ping",
|
||||||
|
"prog":"oai_ext_app.sh",
|
||||||
|
start_time: 20,
|
||||||
|
end_time: 30,
|
||||||
|
"args":["ping 192.168.70.136"],
|
||||||
|
"event":"ext_app"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
event: "power_off",
|
||||||
|
start_time: 60,
|
||||||
|
}
|
||||||
|
] /*end sim events */
|
||||||
|
}, /*end UE object 0*/
|
||||||
|
{
|
||||||
|
/* UE capabilities */
|
||||||
|
/* USIM data */
|
||||||
|
"ue_id" : 2,
|
||||||
|
"imsi": "208970100001128",
|
||||||
|
"K": "fec86ba6eb707ed08905757b1bb44b8f",
|
||||||
|
"sim_algo":"milenage",
|
||||||
|
"op": "1006020f0a478bf6b699f15c062e42b3",
|
||||||
|
as_release: 15,
|
||||||
|
ue_category: "nr",
|
||||||
|
apn:"oai",
|
||||||
|
attach_pdn_type:"ipv4",
|
||||||
|
default_nssai: [
|
||||||
|
{
|
||||||
|
sst: 1,
|
||||||
|
sd: 66051,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
default_pdu_session_snssai: {
|
||||||
|
sst: 1,
|
||||||
|
sd: 66051,
|
||||||
|
},
|
||||||
|
/* Enable it to allow sim_events to be handled remotely */
|
||||||
|
//rue_addr: "127.1.0.0",
|
||||||
|
/* Enable it to create a TUN interface for each UE PDN */
|
||||||
|
tun_setup_script: "ue-ifup",
|
||||||
|
sim_events: [
|
||||||
|
{
|
||||||
|
event: "power_on",
|
||||||
|
start_time: 5,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"tag": "ping",
|
||||||
|
"prog":"oai_ext_app.sh",
|
||||||
|
start_time: 40,
|
||||||
|
end_time: 50,
|
||||||
|
"args":["ping 192.168.70.136"],
|
||||||
|
"event":"ext_app"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
event: "power_off",
|
||||||
|
start_time: 60,
|
||||||
|
}
|
||||||
|
] /*end sim events */
|
||||||
|
} /*end UE object 1*/
|
||||||
|
],/*end UE list*/
|
||||||
|
}/*end json*/
|
||||||
@@ -0,0 +1,113 @@
|
|||||||
|
/* UE simulator configuration */
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* UE simulator configuration file version 2021-06-17
|
||||||
|
* LTE / 5G Non StandAlone
|
||||||
|
* Copyright (C) 2019-2021 Amarisoft
|
||||||
|
*/
|
||||||
|
{
|
||||||
|
#define N_ANTENNA_DL 1
|
||||||
|
#define TDD 1
|
||||||
|
#define CELL_BANDWIDTH 40
|
||||||
|
|
||||||
|
|
||||||
|
log_options: "all.level=error,all.max_size=0,nas.level=debug,nas.max_size=1,rrc.level=debug,rrc.max_size=1",
|
||||||
|
log_filename: "/tmp/ue1.log",
|
||||||
|
|
||||||
|
/* Enable remote API and Web interface */
|
||||||
|
com_addr: "0.0.0.0:9002",
|
||||||
|
|
||||||
|
include "rf_driver/1chan.cfg",
|
||||||
|
|
||||||
|
/* If true, allow the simulation of several UEs at the same time and
|
||||||
|
allow dynamic UE creation from remote API */
|
||||||
|
|
||||||
|
cell_groups: [{
|
||||||
|
group_type: "nr",
|
||||||
|
multi_ue: false,
|
||||||
|
cells: [{
|
||||||
|
rf_port: 0,
|
||||||
|
bandwidth: CELL_BANDWIDTH,
|
||||||
|
#if TDD == 1
|
||||||
|
band: 78,
|
||||||
|
dl_nr_arfcn:621312,
|
||||||
|
ssb_nr_arfcn:621312,
|
||||||
|
|
||||||
|
//band: 41,
|
||||||
|
//dl_nr_arfcn:517020,
|
||||||
|
//ssb_nr_arfcn:516990,
|
||||||
|
#else
|
||||||
|
band: 7,
|
||||||
|
dl_nr_arfcn: 536020,
|
||||||
|
ssb_nr_arfcn: 535930,
|
||||||
|
ssb_subcarrier_spacing: 15,
|
||||||
|
#endif
|
||||||
|
subcarrier_spacing: 30,
|
||||||
|
n_antenna_dl: N_ANTENNA_DL,
|
||||||
|
n_antenna_ul: 1,
|
||||||
|
rx_to_tx_latency:2,
|
||||||
|
}],
|
||||||
|
}],
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* Enable it to allow sim_events to be handled remotely */
|
||||||
|
//rue_bind_addr: "127.0.10.11",
|
||||||
|
|
||||||
|
ue_list: [
|
||||||
|
{
|
||||||
|
/* UE capabilities */
|
||||||
|
|
||||||
|
/* USIM data */
|
||||||
|
|
||||||
|
|
||||||
|
"imsi": "208970100001127",
|
||||||
|
"K": "fec86ba6eb707ed08905757b1bb44b8f",
|
||||||
|
"sim_algo":"milenage",
|
||||||
|
"op": "1006020f0a478bf6b699f15c062e42b3",
|
||||||
|
|
||||||
|
|
||||||
|
as_release: 15,
|
||||||
|
ue_category: "nr",
|
||||||
|
apn:"oai",
|
||||||
|
attach_pdn_type:"ipv4",
|
||||||
|
default_nssai: [
|
||||||
|
{
|
||||||
|
sst: 1,
|
||||||
|
sd: 66051,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
|
||||||
|
default_pdu_session_snssai: {
|
||||||
|
sst: 1,
|
||||||
|
sd: 66051,
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
/* Enable it to allow sim_events to be handled remotely */
|
||||||
|
//rue_addr: "127.1.0.0",
|
||||||
|
|
||||||
|
/* Enable it to create a TUN interface for each UE PDN */
|
||||||
|
tun_setup_script: "ue-ifup",
|
||||||
|
|
||||||
|
sim_events: [{
|
||||||
|
event: "power_on",
|
||||||
|
start_time: 5,
|
||||||
|
}, {
|
||||||
|
"tag": "ping",
|
||||||
|
"prog":"oai_ext_app.sh",
|
||||||
|
start_time: 15,
|
||||||
|
end_time: 25,
|
||||||
|
"args":["ping 192.168.70.136"],
|
||||||
|
"event":"ext_app"
|
||||||
|
|
||||||
|
},
|
||||||
|
{
|
||||||
|
event: "power_off",
|
||||||
|
start_time: 30,
|
||||||
|
}]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
}
|
||||||
@@ -0,0 +1,109 @@
|
|||||||
|
/* UE simulator configuration */
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* UE simulator configuration file version 2021-06-17
|
||||||
|
* LTE / 5G Non StandAlone
|
||||||
|
* Copyright (C) 2019-2021 Amarisoft
|
||||||
|
*/
|
||||||
|
{
|
||||||
|
#define N_ANTENNA_DL 1
|
||||||
|
#define TDD 1
|
||||||
|
#define CELL_BANDWIDTH 20
|
||||||
|
|
||||||
|
|
||||||
|
log_options: "all.level=error,all.max_size=0,nas.level=debug,nas.max_size=1,rrc.level=debug,rrc.max_size=1",
|
||||||
|
log_filename: "/tmp/ue0.log",
|
||||||
|
|
||||||
|
/* Enable remote API and Web interface */
|
||||||
|
com_addr: "0.0.0.0:9002",
|
||||||
|
|
||||||
|
include "rf_driver/1chan.cfg",
|
||||||
|
|
||||||
|
/* If true, allow the simulation of several UEs at the same time and
|
||||||
|
allow dynamic UE creation from remote API */
|
||||||
|
|
||||||
|
cell_groups: [{
|
||||||
|
group_type: "nr",
|
||||||
|
multi_ue: false,
|
||||||
|
cells: [{
|
||||||
|
rf_port: 0,
|
||||||
|
bandwidth: CELL_BANDWIDTH,
|
||||||
|
#if TDD == 1
|
||||||
|
// band: 78,
|
||||||
|
// dl_nr_arfcn:621312,
|
||||||
|
// ssb_nr_arfcn:621312,*/
|
||||||
|
|
||||||
|
band: 41,
|
||||||
|
dl_nr_arfcn:517020,
|
||||||
|
ssb_nr_arfcn:516990,
|
||||||
|
#else
|
||||||
|
band: 7,
|
||||||
|
dl_nr_arfcn: 536020,
|
||||||
|
ssb_nr_arfcn: 535930,
|
||||||
|
ssb_subcarrier_spacing: 15,
|
||||||
|
#endif
|
||||||
|
subcarrier_spacing: 30,
|
||||||
|
n_antenna_dl: N_ANTENNA_DL,
|
||||||
|
n_antenna_ul: 1,
|
||||||
|
rx_to_tx_latency:2,
|
||||||
|
}],
|
||||||
|
}],
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* Enable it to allow sim_events to be handled remotely */
|
||||||
|
//rue_bind_addr: "127.0.10.11",
|
||||||
|
|
||||||
|
ue_list: [
|
||||||
|
{
|
||||||
|
/* UE capabilities */
|
||||||
|
|
||||||
|
/* USIM data */
|
||||||
|
|
||||||
|
"imsi": "208970100001127",
|
||||||
|
"K": "fec86ba6eb707ed08905757b1bb44b8f",
|
||||||
|
"sim_algo":"milenage",
|
||||||
|
"op": "1006020f0a478bf6b699f15c062e42b3",
|
||||||
|
|
||||||
|
|
||||||
|
as_release: 15,
|
||||||
|
ue_category: "nr",
|
||||||
|
apn:"oai",
|
||||||
|
attach_pdn_type:"ipv4",
|
||||||
|
default_nssai: [
|
||||||
|
{
|
||||||
|
sst: 1,
|
||||||
|
sd: 1,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
|
||||||
|
default_pdu_session_snssai: {
|
||||||
|
sst: 1,
|
||||||
|
sd: 1,
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
/* Enable it to allow sim_events to be handled remotely */
|
||||||
|
//rue_addr: "127.1.0.0",
|
||||||
|
|
||||||
|
/* Enable it to create a TUN interface for each UE PDN */
|
||||||
|
tun_setup_script: "ue-ifup",
|
||||||
|
|
||||||
|
sim_events: [{
|
||||||
|
event: "power_on",
|
||||||
|
start_time: 5,
|
||||||
|
}, {
|
||||||
|
event: "ext_app",
|
||||||
|
start_time: 15,
|
||||||
|
end_time: 25,
|
||||||
|
prog: "ext_app.sh",
|
||||||
|
args: ["iperf", " -c 172.21.10.5", " -u"," -b 1M"," -i 1"," -t 10"]
|
||||||
|
}, {
|
||||||
|
event: "power_off",
|
||||||
|
start_time: 30,
|
||||||
|
}]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
}
|
||||||
@@ -39,6 +39,53 @@ nrmodule2_quectel:
|
|||||||
StartCommands :
|
StartCommands :
|
||||||
- sudo -S ip link set dev wwan1 mtu 1500
|
- sudo -S ip link set dev wwan1 mtu 1500
|
||||||
MTU : 1500
|
MTU : 1500
|
||||||
|
|
||||||
|
#single UE single ping
|
||||||
|
amarisoft_ue_1:
|
||||||
|
ID: amarisoft_ue_1
|
||||||
|
State : enabled
|
||||||
|
Kind : amarisoft
|
||||||
|
#not required for AS config but needed for py script
|
||||||
|
WakeupScript : none
|
||||||
|
DetachScript : none
|
||||||
|
#end
|
||||||
|
Cmd : /root/NV17-12-21/ue/lteue
|
||||||
|
Config : /root/NV17-12-21/ue/config/oaicicd-ue-Ping-SATest.cfg
|
||||||
|
Duration : 60
|
||||||
|
Ping : /tmp/test_ue1.log
|
||||||
|
UELog : /tmp/ue1.log
|
||||||
|
HostIPAddress : 192.168.18.89
|
||||||
|
HostUsername : root
|
||||||
|
HostPassword : toor
|
||||||
|
HostSourceCodePath : /tmp
|
||||||
|
|
||||||
|
|
||||||
|
#an other scenario example
|
||||||
|
#notice : this will not work as such, only suggestion for multi ue scenario
|
||||||
|
amarisoft_ue_2:
|
||||||
|
ID: amarisoft_ue_2
|
||||||
|
State : enabled
|
||||||
|
Kind : amarisoft
|
||||||
|
#not required for AS config but needed for py script
|
||||||
|
WakeupScript : none
|
||||||
|
DetachScript : none
|
||||||
|
#end
|
||||||
|
Cmd : /root/NV17-12-21/ue/lteue
|
||||||
|
Config : /root/NV17-12-21/ue/config/xxxxxxx.cfg #to be updated for an other scenario
|
||||||
|
Duration : 60
|
||||||
|
Ping :
|
||||||
|
- /tmp/test_ue1.log #to be updated fo an other scenario
|
||||||
|
- /tmp/test_ue2.log #could be a list for a multi ue scenario
|
||||||
|
UELog :
|
||||||
|
- /tmp/ue1.log
|
||||||
|
- /tmp/ue1.log
|
||||||
|
HostIPAddress : 192.168.18.89
|
||||||
|
HostUsername : root
|
||||||
|
HostPassword : toor
|
||||||
|
HostSourceCodePath : /tmp
|
||||||
|
|
||||||
|
|
||||||
|
#do not remove
|
||||||
dummy:
|
dummy:
|
||||||
ID: ''
|
ID: ''
|
||||||
State : ''
|
State : ''
|
||||||
|
|||||||
@@ -0,0 +1,81 @@
|
|||||||
|
# * 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
|
||||||
|
# */
|
||||||
|
#---------------------------------------------------------------------
|
||||||
|
#
|
||||||
|
# Required Python Version
|
||||||
|
# Python 3.x
|
||||||
|
#
|
||||||
|
#---------------------------------------------------------------------
|
||||||
|
|
||||||
|
#to use isfile
|
||||||
|
import os
|
||||||
|
import sys
|
||||||
|
import logging
|
||||||
|
#to create a SSH object locally in the methods
|
||||||
|
import sshconnection
|
||||||
|
#time.sleep
|
||||||
|
import time
|
||||||
|
|
||||||
|
|
||||||
|
import re
|
||||||
|
import subprocess
|
||||||
|
|
||||||
|
from datetime import datetime
|
||||||
|
|
||||||
|
|
||||||
|
class AS_UE:
|
||||||
|
|
||||||
|
def __init__(self,Module):
|
||||||
|
#create attributes as in the UE dictionary
|
||||||
|
for k, v in Module.items():
|
||||||
|
setattr(self, k, v)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#-----------------$
|
||||||
|
#PUBLIC Methods$
|
||||||
|
#-----------------$
|
||||||
|
|
||||||
|
def WaitEndScenario(self):
|
||||||
|
logging.debug('waiting for scenario duration')
|
||||||
|
time.sleep(int(self.Duration))
|
||||||
|
|
||||||
|
def KillASUE(self):
|
||||||
|
mySSH = sshconnection.SSHConnection()
|
||||||
|
mySSH.open(self.HostIPAddress, self.HostUsername, self.HostPassword)
|
||||||
|
mySSH.command('killall --signal SIGKILL lteue-avx2', '#', 5)
|
||||||
|
mySSH.close()
|
||||||
|
|
||||||
|
def RunScenario(self):
|
||||||
|
mySSH = sshconnection.SSHConnection()
|
||||||
|
mySSH.open(self.HostIPAddress, self.HostUsername, self.HostPassword)
|
||||||
|
|
||||||
|
logging.debug("Deleting old artifacts :")
|
||||||
|
cmd='rm -rf ' + self.Ping + ' ' + self.UELog
|
||||||
|
mySSH.command(cmd,'#',5)
|
||||||
|
logging.debug("Running scenario :")
|
||||||
|
cmd='echo $USER; nohup '+self.Cmd + ' ' + self.Config + ' &'
|
||||||
|
mySSH.command(cmd,'#',5)
|
||||||
|
|
||||||
|
mySSH.close()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
+135
-77
@@ -55,6 +55,7 @@ import constants as CONST
|
|||||||
import sshconnection
|
import sshconnection
|
||||||
|
|
||||||
import cls_module_ue
|
import cls_module_ue
|
||||||
|
import cls_amarisoft_ue
|
||||||
import cls_ci_ueinfra #class defining the multi Ue infrastrucure
|
import cls_ci_ueinfra #class defining the multi Ue infrastrucure
|
||||||
|
|
||||||
logging.getLogger("matplotlib").setLevel(logging.WARNING)
|
logging.getLogger("matplotlib").setLevel(logging.WARNING)
|
||||||
@@ -419,49 +420,63 @@ class OaiCiTest():
|
|||||||
for job in multi_jobs:
|
for job in multi_jobs:
|
||||||
job.join()
|
job.join()
|
||||||
HTML.CreateHtmlTestRow('N/A', 'OK', CONST.ALL_PROCESSES_OK)
|
HTML.CreateHtmlTestRow('N/A', 'OK', CONST.ALL_PROCESSES_OK)
|
||||||
else: #if an ID is specified, it is a module from the yaml infrastructure file
|
else: #if an ID is specified, it is a UE from the yaml infrastructure file
|
||||||
#RH
|
ue_kind = InfraUE.ci_ue_infra[self.ue_id]['Kind']
|
||||||
Module_UE = cls_module_ue.Module_UE(InfraUE.ci_ue_infra[self.ue_id])
|
logging.debug("Detected UE Kind : " + ue_kind)
|
||||||
Module_UE.ue_trace=ue_trace
|
|
||||||
is_module=Module_UE.CheckCMProcess(EPC.Type)
|
|
||||||
if is_module:
|
|
||||||
Module_UE.EnableTrace()
|
|
||||||
time.sleep(5)
|
|
||||||
|
|
||||||
# Looping attach / detach / wait to be successful at least once
|
#case it is a quectel module (only 1 at a time supported at the moment)
|
||||||
cnt = 0
|
if ue_kind == 'quectel':
|
||||||
status = -1
|
Module_UE = cls_module_ue.Module_UE(InfraUE.ci_ue_infra[self.ue_id])
|
||||||
while cnt < 4:
|
Module_UE.ue_trace=ue_trace
|
||||||
Module_UE.Command("wup")
|
is_module=Module_UE.CheckCMProcess(EPC.Type)
|
||||||
logging.debug("Waiting for IP address to be assigned")
|
if is_module:
|
||||||
time.sleep(20)
|
Module_UE.EnableTrace()
|
||||||
logging.debug("Retrieve IP address")
|
time.sleep(5)
|
||||||
status=Module_UE.GetModuleIPAddress()
|
|
||||||
if status==0:
|
# Looping attach / detach / wait to be successful at least once
|
||||||
cnt = 10
|
cnt = 0
|
||||||
else:
|
status = -1
|
||||||
cnt += 1
|
while cnt < 4:
|
||||||
Module_UE.Command("detach")
|
Module_UE.Command("wup")
|
||||||
|
logging.debug("Waiting for IP address to be assigned")
|
||||||
time.sleep(20)
|
time.sleep(20)
|
||||||
|
logging.debug("Retrieve IP address")
|
||||||
|
status=Module_UE.GetModuleIPAddress()
|
||||||
|
if status==0:
|
||||||
|
cnt = 10
|
||||||
|
else:
|
||||||
|
cnt += 1
|
||||||
|
Module_UE.Command("detach")
|
||||||
|
time.sleep(20)
|
||||||
|
|
||||||
if cnt == 10 and status == 0:
|
if cnt == 10 and status == 0:
|
||||||
HTML.CreateHtmlTestRow(Module_UE.UEIPAddress, 'OK', CONST.ALL_PROCESSES_OK)
|
HTML.CreateHtmlTestRow(Module_UE.UEIPAddress, 'OK', CONST.ALL_PROCESSES_OK)
|
||||||
logging.debug('UE IP addresss : '+ Module_UE.UEIPAddress)
|
logging.debug('UE IP addresss : '+ Module_UE.UEIPAddress)
|
||||||
#execute additional commands from yaml file after UE attach
|
#execute additional commands from yaml file after UE attach
|
||||||
SSH = sshconnection.SSHConnection()
|
SSH = sshconnection.SSHConnection()
|
||||||
SSH.open(Module_UE.HostIPAddress, Module_UE.HostUsername, Module_UE.HostPassword)
|
SSH.open(Module_UE.HostIPAddress, Module_UE.HostUsername, Module_UE.HostPassword)
|
||||||
if hasattr(Module_UE,'StartCommands'):
|
if hasattr(Module_UE,'StartCommands'):
|
||||||
for startcommand in Module_UE.StartCommands:
|
for startcommand in Module_UE.StartCommands:
|
||||||
cmd = 'echo ' + Module_UE.HostPassword + ' | ' + startcommand
|
cmd = 'echo ' + Module_UE.HostPassword + ' | ' + startcommand
|
||||||
SSH.command(cmd,'\$',5)
|
SSH.command(cmd,'\$',5)
|
||||||
SSH.close()
|
SSH.close()
|
||||||
#check that the MTU is as expected / requested
|
#check that the MTU is as expected / requested
|
||||||
Module_UE.CheckModuleMTU()
|
Module_UE.CheckModuleMTU()
|
||||||
else: #status==-1 failed to retrieve IP address
|
else: #status==-1 failed to retrieve IP address
|
||||||
HTML.CreateHtmlTestRow('N/A', 'KO', CONST.UE_IP_ADDRESS_ISSUE)
|
HTML.CreateHtmlTestRow('N/A', 'KO', CONST.UE_IP_ADDRESS_ISSUE)
|
||||||
self.AutoTerminateUEandeNB(HTML,RAN,COTS_UE,EPC,InfraUE,CONTAINERS)
|
self.AutoTerminateUEandeNB(HTML,RAN,COTS_UE,EPC,InfraUE,CONTAINERS)
|
||||||
return
|
return
|
||||||
|
|
||||||
|
#case it is a amarisoft ue (only 1 at a time supported at the moment)
|
||||||
|
elif ue_kind == 'amarisoft':
|
||||||
|
AS_UE = cls_amarisoft_ue.AS_UE(InfraUE.ci_ue_infra[self.ue_id])
|
||||||
|
HTML.CreateHtmlTestRow(AS_UE.Config, 'OK', CONST.ALL_PROCESSES_OK)
|
||||||
|
AS_UE.RunScenario()
|
||||||
|
AS_UE.WaitEndScenario()
|
||||||
|
AS_UE.KillASUE()
|
||||||
|
|
||||||
|
else:
|
||||||
|
logging.debug("Incorrect UE Kind was detected")
|
||||||
|
|
||||||
|
|
||||||
def InitializeOAIUE(self,HTML,RAN,EPC,COTS_UE,InfraUE,CONTAINERS):
|
def InitializeOAIUE(self,HTML,RAN,EPC,COTS_UE,InfraUE,CONTAINERS):
|
||||||
@@ -1570,16 +1585,23 @@ class OaiCiTest():
|
|||||||
SSH = sshconnection.SSHConnection()
|
SSH = sshconnection.SSHConnection()
|
||||||
# Launch ping on the EPC side (true for ltebox and old open-air-cn)
|
# Launch ping on the EPC side (true for ltebox and old open-air-cn)
|
||||||
# But for OAI-Rel14-CUPS, we launch from python executor
|
# But for OAI-Rel14-CUPS, we launch from python executor
|
||||||
|
ping_status = 0
|
||||||
launchFromEpc = True
|
launchFromEpc = True
|
||||||
launchFromModule = False
|
launchFromModule = False
|
||||||
|
launchFromASUE = False
|
||||||
if re.match('OAI-Rel14-CUPS', EPC.Type, re.IGNORECASE):
|
if re.match('OAI-Rel14-CUPS', EPC.Type, re.IGNORECASE):
|
||||||
launchFromEpc = False
|
launchFromEpc = False
|
||||||
#if module, ping from module to EPC
|
#if module, ping from module to EPC
|
||||||
if self.ue_id!='':
|
if self.ue_id!='':
|
||||||
launchFromEpc = False
|
if (re.match('amarisoft', self.ue_id, re.IGNORECASE)):
|
||||||
launchfromModule = True
|
launchFromEpc = False
|
||||||
|
launchFromASUE = True
|
||||||
ping_time = re.findall("-c (\d+)",str(self.ping_args))
|
else:
|
||||||
|
launchFromEpc = False
|
||||||
|
launchFromModule = True
|
||||||
|
#no ping args for ASUE
|
||||||
|
if self.ping_args!='':
|
||||||
|
ping_time = re.findall("-c (\d+)",str(self.ping_args))
|
||||||
|
|
||||||
if launchFromEpc:
|
if launchFromEpc:
|
||||||
SSH.open(EPC.IPAddress, EPC.UserName, EPC.Password)
|
SSH.open(EPC.IPAddress, EPC.UserName, EPC.Password)
|
||||||
@@ -1597,14 +1619,14 @@ class OaiCiTest():
|
|||||||
#copy the ping log file to have it locally for analysis (ping stats)
|
#copy the ping log file to have it locally for analysis (ping stats)
|
||||||
SSH.copyin(EPC.IPAddress, EPC.UserName, EPC.Password, EPC.SourceCodePath + '/scripts/ping_' + self.testCase_id + '_' + device_id + '.log', '.')
|
SSH.copyin(EPC.IPAddress, EPC.UserName, EPC.Password, EPC.SourceCodePath + '/scripts/ping_' + self.testCase_id + '_' + device_id + '.log', '.')
|
||||||
else:
|
else:
|
||||||
if launchfromModule == False:
|
if (launchFromModule == False) and (launchFromASUE == False):
|
||||||
#ping log file is on the python executor
|
#ping log file is on the python executor
|
||||||
cmd = 'ping ' + self.ping_args + ' ' + UE_IPAddress + ' > ping_' + self.testCase_id + '_' + device_id + '.log 2>&1'
|
cmd = 'ping ' + self.ping_args + ' ' + UE_IPAddress + ' > ping_' + self.testCase_id + '_' + device_id + '.log 2>&1'
|
||||||
message = cmd + '\n'
|
message = cmd + '\n'
|
||||||
logging.debug(cmd)
|
logging.debug(cmd)
|
||||||
ret = subprocess.run(cmd, shell=True)
|
ret = subprocess.run(cmd, shell=True)
|
||||||
ping_status = ret.returncode
|
ping_status = ret.returncode
|
||||||
#copy the ping log file to an other folder for log collection (source and destination are EPC)
|
#copy the ping log file to an other folder for log collection (source and desti elif (launchfromModule == True) and (launchfromASUE == False): #launch from Modulenation are EPC)
|
||||||
SSH.copyout(EPC.IPAddress, EPC.UserName, EPC.Password, 'ping_' + self.testCase_id + '_' + device_id + '.log', EPC.SourceCodePath + '/scripts')
|
SSH.copyout(EPC.IPAddress, EPC.UserName, EPC.Password, 'ping_' + self.testCase_id + '_' + device_id + '.log', EPC.SourceCodePath + '/scripts')
|
||||||
#copy the ping log file to have it locally for analysis (ping stats)
|
#copy the ping log file to have it locally for analysis (ping stats)
|
||||||
logging.debug(EPC.SourceCodePath + 'ping_' + self.testCase_id + '_' + device_id + '.log')
|
logging.debug(EPC.SourceCodePath + 'ping_' + self.testCase_id + '_' + device_id + '.log')
|
||||||
@@ -1614,7 +1636,8 @@ class OaiCiTest():
|
|||||||
#cat is executed on EPC
|
#cat is executed on EPC
|
||||||
SSH.command('cat ' + EPC.SourceCodePath + '/scripts/ping_' + self.testCase_id + '_' + device_id + '.log', '\$', 5)
|
SSH.command('cat ' + EPC.SourceCodePath + '/scripts/ping_' + self.testCase_id + '_' + device_id + '.log', '\$', 5)
|
||||||
ping_log_file='/scripts/ping_' + self.testCase_id + '_' + device_id + '.log'
|
ping_log_file='/scripts/ping_' + self.testCase_id + '_' + device_id + '.log'
|
||||||
else: #launch from Module
|
|
||||||
|
elif (launchFromModule == True) and (launchFromASUE == False): #launch from Module
|
||||||
SSH.open(Module_UE.HostIPAddress, Module_UE.HostUsername, Module_UE.HostPassword)
|
SSH.open(Module_UE.HostIPAddress, Module_UE.HostUsername, Module_UE.HostPassword)
|
||||||
#target address is different depending on EPC type
|
#target address is different depending on EPC type
|
||||||
if re.match('OAI-Rel14-Docker', EPC.Type, re.IGNORECASE):
|
if re.match('OAI-Rel14-Docker', EPC.Type, re.IGNORECASE):
|
||||||
@@ -1626,13 +1649,27 @@ class OaiCiTest():
|
|||||||
#ping from module NIC rather than IP address to make sure round trip is over the air
|
#ping from module NIC rather than IP address to make sure round trip is over the air
|
||||||
cmd = 'ping -I ' + Module_UE.UENetwork + ' ' + self.ping_args + ' ' + Target + ' > ping_' + self.testCase_id + '_' + self.ue_id + '.log 2>&1'
|
cmd = 'ping -I ' + Module_UE.UENetwork + ' ' + self.ping_args + ' ' + Target + ' > ping_' + self.testCase_id + '_' + self.ue_id + '.log 2>&1'
|
||||||
SSH.command(cmd,'\$',int(ping_time[0])*1.5)
|
SSH.command(cmd,'\$',int(ping_time[0])*1.5)
|
||||||
|
|
||||||
#copy the ping log file to have it locally for analysis (ping stats)
|
#copy the ping log file to have it locally for analysis (ping stats)
|
||||||
SSH.copyin(Module_UE.HostIPAddress, Module_UE.HostUsername, Module_UE.HostPassword, 'ping_' + self.testCase_id + '_' + self.ue_id + '.log', '.')
|
SSH.copyin(Module_UE.HostIPAddress, Module_UE.HostUsername, Module_UE.HostPassword, 'ping_' + self.testCase_id + '_' + self.ue_id + '.log', '.')
|
||||||
|
|
||||||
#cat is executed locally
|
#cat is executed locally
|
||||||
SSH.command('cat ping_' + self.testCase_id + '_' + self.ue_id + '.log', '\$', 5)
|
SSH.command('cat ping_' + self.testCase_id + '_' + self.ue_id + '.log', '\$', 5)
|
||||||
ping_log_file='ping_' + self.testCase_id + '_' + self.ue_id + '.log'
|
ping_log_file='ping_' + self.testCase_id + '_' + self.ue_id + '.log'
|
||||||
ping_status=0
|
|
||||||
|
elif (launchFromASUE == True):
|
||||||
|
#ping was already executed when running scenario
|
||||||
|
#we only need to retrieve ping log file, whose location is in the ci_ueinfra.yaml
|
||||||
|
logging.debug("Get logs from AS server : " + Module_UE.Ping + ", " + Module_UE.UELog)
|
||||||
|
SSH.copyin(Module_UE.HostIPAddress, Module_UE.HostUsername, Module_UE.HostPassword, Module_UE.Ping, '.')
|
||||||
|
SSH.copyin(Module_UE.HostIPAddress, Module_UE.HostUsername, Module_UE.HostPassword, Module_UE.UELog, '.')
|
||||||
|
logging.debug("Ping analysis from Amarisoft scenario")
|
||||||
|
path,ping_log_file = os.path.split(Module_UE.Ping)
|
||||||
|
SSH.open(Module_UE.HostIPAddress, Module_UE.HostUsername, Module_UE.HostPassword)
|
||||||
|
SSH.command('cat ' + Module_UE.Ping, '\#', 5)
|
||||||
|
|
||||||
|
else:
|
||||||
|
ping_status=-1
|
||||||
|
|
||||||
# TIMEOUT CASE
|
# TIMEOUT CASE
|
||||||
if ping_status < 0:
|
if ping_status < 0:
|
||||||
@@ -1680,28 +1717,30 @@ class OaiCiTest():
|
|||||||
|
|
||||||
#adding extra ping stats from local file
|
#adding extra ping stats from local file
|
||||||
#ping_log_file variable is defined above in this function, depending on device/ue
|
#ping_log_file variable is defined above in this function, depending on device/ue
|
||||||
logging.debug('Analyzing Ping log file : ' + os.getcwd() + '/' + ping_log_file)
|
|
||||||
ping_stat=GetPingTimeAnalysis(RAN,ping_log_file,self.ping_rttavg_threshold)
|
|
||||||
ping_stat_msg=''
|
ping_stat_msg=''
|
||||||
if (ping_stat!=-1) and (len(ping_stat)!=0):
|
if launchFromASUE == False : #skip in case of AS UE (for the moment)
|
||||||
ping_stat_msg+='Ping stats before removing largest value : \n'
|
logging.debug('Analyzing Ping log file : ' + os.getcwd() + '/' + ping_log_file)
|
||||||
ping_stat_msg+='RTT(Min) : ' + str("{:.2f}".format(ping_stat['min_0'])) + 'ms \n'
|
ping_stat=GetPingTimeAnalysis(RAN,ping_log_file,self.ping_rttavg_threshold)
|
||||||
ping_stat_msg+='RTT(Mean) : ' + str("{:.2f}".format(ping_stat['mean_0'])) + 'ms \n'
|
|
||||||
ping_stat_msg+='RTT(Median) : ' + str("{:.2f}".format(ping_stat['median_0'])) + 'ms \n'
|
if (ping_stat!=-1) and (len(ping_stat)!=0):
|
||||||
ping_stat_msg+='RTT(Max) : ' + str("{:.2f}".format(ping_stat['max_0'])) + 'ms \n'
|
ping_stat_msg+='Ping stats before removing largest value : \n'
|
||||||
ping_stat_msg+='Max Index : ' + str(ping_stat['max_loc']) + '\n'
|
ping_stat_msg+='RTT(Min) : ' + str("{:.2f}".format(ping_stat['min_0'])) + 'ms \n'
|
||||||
ping_stat_msg+='Ping stats after removing largest value : \n'
|
ping_stat_msg+='RTT(Mean) : ' + str("{:.2f}".format(ping_stat['mean_0'])) + 'ms \n'
|
||||||
ping_stat_msg+='RTT(Min) : ' + str("{:.2f}".format(ping_stat['min_1'])) + 'ms \n'
|
ping_stat_msg+='RTT(Median) : ' + str("{:.2f}".format(ping_stat['median_0'])) + 'ms \n'
|
||||||
ping_stat_msg+='RTT(Mean) : ' + str("{:.2f}".format(ping_stat['mean_1'])) + 'ms \n'
|
ping_stat_msg+='RTT(Max) : ' + str("{:.2f}".format(ping_stat['max_0'])) + 'ms \n'
|
||||||
ping_stat_msg+='RTT(Median) : ' + str("{:.2f}".format(ping_stat['median_1'])) + 'ms \n'
|
ping_stat_msg+='Max Index : ' + str(ping_stat['max_loc']) + '\n'
|
||||||
ping_stat_msg+='RTT(Max) : ' + str("{:.2f}".format(ping_stat['max_1'])) + 'ms \n'
|
ping_stat_msg+='Ping stats after removing largest value : \n'
|
||||||
|
ping_stat_msg+='RTT(Min) : ' + str("{:.2f}".format(ping_stat['min_1'])) + 'ms \n'
|
||||||
|
ping_stat_msg+='RTT(Mean) : ' + str("{:.2f}".format(ping_stat['mean_1'])) + 'ms \n'
|
||||||
|
ping_stat_msg+='RTT(Median) : ' + str("{:.2f}".format(ping_stat['median_1'])) + 'ms \n'
|
||||||
|
ping_stat_msg+='RTT(Max) : ' + str("{:.2f}".format(ping_stat['max_1'])) + 'ms \n'
|
||||||
|
|
||||||
#building html message
|
#building html message
|
||||||
qMsg = pal_msg + '\n' + min_msg + '\n' + avg_msg + '\n' + max_msg + '\n' + ping_stat_msg
|
qMsg = pal_msg + '\n' + min_msg + '\n' + avg_msg + '\n' + max_msg + '\n' + ping_stat_msg
|
||||||
|
|
||||||
#checking packet loss compliance
|
#checking packet loss compliance
|
||||||
packetLossOK = True
|
packetLossOK = True
|
||||||
if packetloss is not None:
|
if (packetloss is not None) :
|
||||||
if float(packetloss) > float(self.ping_packetloss_threshold):
|
if float(packetloss) > float(self.ping_packetloss_threshold):
|
||||||
qMsg += '\nPacket Loss too high'
|
qMsg += '\nPacket Loss too high'
|
||||||
logging.debug('\u001B[1;37;41m Packet Loss too high; Target: '+ self.ping_packetloss_threshold + '%\u001B[0m')
|
logging.debug('\u001B[1;37;41m Packet Loss too high; Target: '+ self.ping_packetloss_threshold + '%\u001B[0m')
|
||||||
@@ -1729,6 +1768,7 @@ class OaiCiTest():
|
|||||||
lock.release()
|
lock.release()
|
||||||
SSH.close()
|
SSH.close()
|
||||||
except:
|
except:
|
||||||
|
logging.debug('exit from Ping_Common except')
|
||||||
os.kill(os.getppid(),signal.SIGUSR1)
|
os.kill(os.getppid(),signal.SIGUSR1)
|
||||||
|
|
||||||
def PingNoS1_wrong_exit(self, qMsg,HTML):
|
def PingNoS1_wrong_exit(self, qMsg,HTML):
|
||||||
@@ -1856,11 +1896,21 @@ class OaiCiTest():
|
|||||||
HTML.CreateHtmlTestRow(self.ping_args, 'KO', CONST.UE_IP_ADDRESS_ISSUE)
|
HTML.CreateHtmlTestRow(self.ping_args, 'KO', CONST.UE_IP_ADDRESS_ISSUE)
|
||||||
self.AutoTerminateUEandeNB(HTML,RAN,COTS_UE,EPC,InfraUE,CONTAINERS)
|
self.AutoTerminateUEandeNB(HTML,RAN,COTS_UE,EPC,InfraUE,CONTAINERS)
|
||||||
return
|
return
|
||||||
else:
|
else: #if an ID is specified, it is a UE from the yaml infrastructure file
|
||||||
self.UEIPAddresses=[]
|
ue_kind = InfraUE.ci_ue_infra[self.ue_id]['Kind']
|
||||||
Module_UE = cls_module_ue.Module_UE(InfraUE.ci_ue_infra[self.ue_id])
|
logging.debug("Detected UE Kind : " + ue_kind)
|
||||||
Module_UE.GetModuleIPAddress()
|
|
||||||
self.UEIPAddresses.append(Module_UE.UEIPAddress)
|
if ue_kind == 'quectel':
|
||||||
|
self.UEIPAddresses=[]
|
||||||
|
Module_UE = cls_module_ue.Module_UE(InfraUE.ci_ue_infra[self.ue_id])
|
||||||
|
Module_UE.GetModuleIPAddress()
|
||||||
|
self.UEIPAddresses.append(Module_UE.UEIPAddress)
|
||||||
|
elif ue_kind == 'amarisoft':
|
||||||
|
self.UEIPAddresses=['AS UE IP']
|
||||||
|
Module_UE = cls_module_ue.Module_UE(InfraUE.ci_ue_infra[self.ue_id])
|
||||||
|
else:
|
||||||
|
logging.debug("Incorrect UE Kind was detected")
|
||||||
|
|
||||||
logging.debug(self.UEIPAddresses)
|
logging.debug(self.UEIPAddresses)
|
||||||
multi_jobs = []
|
multi_jobs = []
|
||||||
i = 0
|
i = 0
|
||||||
@@ -1871,6 +1921,7 @@ class OaiCiTest():
|
|||||||
device_id = self.UEDevices[i]
|
device_id = self.UEDevices[i]
|
||||||
else:
|
else:
|
||||||
device_id = Module_UE.ID + "-" + Module_UE.Kind
|
device_id = Module_UE.ID + "-" + Module_UE.Kind
|
||||||
|
logging.debug(device_id)
|
||||||
p = Process(target = self.Ping_common, args = (lock,UE_IPAddress,device_id,status_queue,EPC,Module_UE,RAN,))
|
p = Process(target = self.Ping_common, args = (lock,UE_IPAddress,device_id,status_queue,EPC,Module_UE,RAN,))
|
||||||
p.daemon = True
|
p.daemon = True
|
||||||
p.start()
|
p.start()
|
||||||
@@ -3466,16 +3517,23 @@ class OaiCiTest():
|
|||||||
job.join()
|
job.join()
|
||||||
HTML.CreateHtmlTestRow('N/A', 'OK', CONST.ALL_PROCESSES_OK)
|
HTML.CreateHtmlTestRow('N/A', 'OK', CONST.ALL_PROCESSES_OK)
|
||||||
else: #if an ID is specified, it is a module from the yaml infrastructure file
|
else: #if an ID is specified, it is a module from the yaml infrastructure file
|
||||||
Module_UE = cls_module_ue.Module_UE(InfraUE.ci_ue_infra[self.ue_id])
|
ue_kind = InfraUE.ci_ue_infra[self.ue_id]['Kind']
|
||||||
Module_UE.ue_trace=ue_trace
|
logging.debug("Detected UE Kind : " + ue_kind)
|
||||||
Module_UE.Command("detach")
|
if ue_kind == 'quectel':
|
||||||
Module_UE.DisableTrace()
|
Module_UE = cls_module_ue.Module_UE(InfraUE.ci_ue_infra[self.ue_id])
|
||||||
Module_UE.DisableCM()
|
Module_UE.ue_trace=ue_trace
|
||||||
archive_destination=Module_UE.LogCollect()
|
Module_UE.Command("detach")
|
||||||
if Module_UE.ue_trace=='yes':
|
Module_UE.DisableTrace()
|
||||||
HTML.CreateHtmlTestRow('QLog at : '+archive_destination, 'OK', CONST.ALL_PROCESSES_OK)
|
Module_UE.DisableCM()
|
||||||
|
archive_destination=Module_UE.LogCollect()
|
||||||
|
if Module_UE.ue_trace=='yes':
|
||||||
|
HTML.CreateHtmlTestRow('QLog at : '+archive_destination, 'OK', CONST.ALL_PROCESSES_OK)
|
||||||
|
else:
|
||||||
|
HTML.CreateHtmlTestRow('QLog trace is disabled', 'OK', CONST.ALL_PROCESSES_OK)
|
||||||
|
elif ue_kind == 'amarisoft':
|
||||||
|
HTML.CreateHtmlTestRow('AS UE is already terminated', 'OK', CONST.ALL_PROCESSES_OK)
|
||||||
else:
|
else:
|
||||||
HTML.CreateHtmlTestRow('QLog trace is disabled', 'OK', CONST.ALL_PROCESSES_OK)
|
logging.debug("Incorrect UE Kind was detected")
|
||||||
|
|
||||||
def TerminateOAIUE(self,HTML,RAN,COTS_UE,EPC,InfraUE,CONTAINERS):
|
def TerminateOAIUE(self,HTML,RAN,COTS_UE,EPC,InfraUE,CONTAINERS):
|
||||||
SSH = sshconnection.SSHConnection()
|
SSH = sshconnection.SSHConnection()
|
||||||
|
|||||||
@@ -0,0 +1,308 @@
|
|||||||
|
Active_gNBs = ( "gNB-OAI");
|
||||||
|
# Asn1_verbosity, choice in: none, info, annoying
|
||||||
|
Asn1_verbosity = "none";
|
||||||
|
|
||||||
|
gNBs =
|
||||||
|
(
|
||||||
|
{
|
||||||
|
////////// Identification parameters:
|
||||||
|
gNB_CU_ID = 0xe00;
|
||||||
|
|
||||||
|
# cell_type = "CELL_MACRO_GNB";
|
||||||
|
|
||||||
|
gNB_name = "gNB-OAI";
|
||||||
|
|
||||||
|
// Tracking area code, 0x0000 and 0xfffe are reserved values
|
||||||
|
tracking_area_code = 1;
|
||||||
|
|
||||||
|
plmn_list = ({
|
||||||
|
mcc = 208;
|
||||||
|
mnc = 97;
|
||||||
|
mnc_length = 2;
|
||||||
|
snssaiList = (
|
||||||
|
{
|
||||||
|
sst = 1;
|
||||||
|
sd = 0x1; // 0 false, else true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
sst = 1;
|
||||||
|
sd = 0x010203; // 0 false, else true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
sst = 1;
|
||||||
|
sd = 0x112233; // 0 false, else true
|
||||||
|
}
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
nr_cellid = 12345678L
|
||||||
|
|
||||||
|
# tr_s_preference = "local_mac"
|
||||||
|
|
||||||
|
////////// Physical parameters:
|
||||||
|
|
||||||
|
ssb_SubcarrierOffset = 0;
|
||||||
|
pdsch_AntennaPorts = 1;
|
||||||
|
pusch_AntennaPorts = 2;
|
||||||
|
ul_prbblacklist = "51,52,53,54"
|
||||||
|
do_SRS = 1;
|
||||||
|
|
||||||
|
pdcch_ConfigSIB1 = (
|
||||||
|
{
|
||||||
|
controlResourceSetZero = 11;
|
||||||
|
searchSpaceZero = 0;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
servingCellConfigCommon = (
|
||||||
|
{
|
||||||
|
#spCellConfigCommon
|
||||||
|
|
||||||
|
physCellId = 0;
|
||||||
|
|
||||||
|
# downlinkConfigCommon
|
||||||
|
#frequencyInfoDL
|
||||||
|
# this is 3301.68 MHz + 22*12*30e-3 MHz = 3309.6
|
||||||
|
#absoluteFrequencySSB = 620640;
|
||||||
|
# this is 3300.60 MHz + 53*12*30e-3 MHz = 3319.68
|
||||||
|
absoluteFrequencySSB = 621312;
|
||||||
|
# this is 3503.28 MHz + 22*12*30e-3 MHz = 3511.2
|
||||||
|
#absoluteFrequencySSB = 634080;
|
||||||
|
# this is 3600.48 MHz
|
||||||
|
#absoluteFrequencySSB = 640032;
|
||||||
|
#dl_frequencyBand = 78;
|
||||||
|
# this is 3301.68 MHz
|
||||||
|
#dl_absoluteFrequencyPointA = 620112;
|
||||||
|
# this is 3300.60 MHz
|
||||||
|
dl_absoluteFrequencyPointA = 620040;
|
||||||
|
# this is 3502.56 MHz
|
||||||
|
#dl_absoluteFrequencyPointA = 633552;
|
||||||
|
# this is 3600.48 MHz
|
||||||
|
#dl_absoluteFrequencyPointA = 640032;
|
||||||
|
#scs-SpecificCarrierList
|
||||||
|
dl_offstToCarrier = 0;
|
||||||
|
# subcarrierSpacing
|
||||||
|
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||||
|
dl_subcarrierSpacing = 1;
|
||||||
|
dl_carrierBandwidth = 106;
|
||||||
|
#initialDownlinkBWP
|
||||||
|
#genericParameters
|
||||||
|
# this is RBstart=0,L=106 (275*(L-1))+RBstart
|
||||||
|
initialDLBWPlocationAndBandwidth = 28875;
|
||||||
|
# subcarrierSpacing
|
||||||
|
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||||
|
initialDLBWPsubcarrierSpacing = 1;
|
||||||
|
#pdcch-ConfigCommon
|
||||||
|
initialDLBWPcontrolResourceSetZero = 11;
|
||||||
|
initialDLBWPsearchSpaceZero = 0;
|
||||||
|
|
||||||
|
#uplinkConfigCommon
|
||||||
|
#frequencyInfoUL
|
||||||
|
ul_frequencyBand = 78;
|
||||||
|
#scs-SpecificCarrierList
|
||||||
|
ul_offstToCarrier = 0;
|
||||||
|
# subcarrierSpacing
|
||||||
|
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||||
|
ul_subcarrierSpacing = 1;
|
||||||
|
ul_carrierBandwidth = 106;
|
||||||
|
pMax = 20;
|
||||||
|
#initialUplinkBWP
|
||||||
|
#genericParameters
|
||||||
|
initialULBWPlocationAndBandwidth = 28875;
|
||||||
|
# subcarrierSpacing
|
||||||
|
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||||
|
initialULBWPsubcarrierSpacing = 1;
|
||||||
|
#rach-ConfigCommon
|
||||||
|
#rach-ConfigGeneric
|
||||||
|
prach_ConfigurationIndex = 98;
|
||||||
|
#prach_msg1_FDM
|
||||||
|
#0 = one, 1=two, 2=four, 3=eight
|
||||||
|
prach_msg1_FDM = 0;
|
||||||
|
prach_msg1_FrequencyStart = 0;
|
||||||
|
zeroCorrelationZoneConfig = 12;
|
||||||
|
preambleReceivedTargetPower = -104;
|
||||||
|
#preamblTransMax (0...10) = (3,4,5,6,7,8,10,20,50,100,200)
|
||||||
|
preambleTransMax = 6;
|
||||||
|
#powerRampingStep
|
||||||
|
# 0=dB0,1=dB2,2=dB4,3=dB6
|
||||||
|
powerRampingStep = 1;
|
||||||
|
#ra_ReponseWindow
|
||||||
|
#1,2,4,8,10,20,40,80
|
||||||
|
ra_ResponseWindow = 4;
|
||||||
|
#ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR
|
||||||
|
#1=oneeighth,2=onefourth,3=half,4=one,5=two,6=four,7=eight,8=sixteen
|
||||||
|
ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR = 3;
|
||||||
|
#oneHalf (0..15) 4,8,12,16,...60,64
|
||||||
|
ssb_perRACH_OccasionAndCB_PreamblesPerSSB = 15;
|
||||||
|
#ra_ContentionResolutionTimer
|
||||||
|
#(0..7) 8,16,24,32,40,48,56,64
|
||||||
|
ra_ContentionResolutionTimer = 7;
|
||||||
|
rsrp_ThresholdSSB = 19;
|
||||||
|
#prach-RootSequenceIndex_PR
|
||||||
|
#1 = 839, 2 = 139
|
||||||
|
prach_RootSequenceIndex_PR = 2;
|
||||||
|
prach_RootSequenceIndex = 1;
|
||||||
|
# SCS for msg1, can only be 15 for 30 kHz < 6 GHz, takes precendence over the one derived from prach-ConfigIndex
|
||||||
|
#
|
||||||
|
msg1_SubcarrierSpacing = 1,
|
||||||
|
# restrictedSetConfig
|
||||||
|
# 0=unrestricted, 1=restricted type A, 2=restricted type B
|
||||||
|
restrictedSetConfig = 0,
|
||||||
|
|
||||||
|
msg3_DeltaPreamble = 1;
|
||||||
|
p0_NominalWithGrant =-90;
|
||||||
|
|
||||||
|
# pucch-ConfigCommon setup :
|
||||||
|
# pucchGroupHopping
|
||||||
|
# 0 = neither, 1= group hopping, 2=sequence hopping
|
||||||
|
pucchGroupHopping = 0;
|
||||||
|
hoppingId = 40;
|
||||||
|
p0_nominal = -90;
|
||||||
|
# ssb_PositionsInBurs_BitmapPR
|
||||||
|
# 1=short, 2=medium, 3=long
|
||||||
|
ssb_PositionsInBurst_PR = 2;
|
||||||
|
ssb_PositionsInBurst_Bitmap = 1;
|
||||||
|
|
||||||
|
# ssb_periodicityServingCell
|
||||||
|
# 0 = ms5, 1=ms10, 2=ms20, 3=ms40, 4=ms80, 5=ms160, 6=spare2, 7=spare1
|
||||||
|
ssb_periodicityServingCell = 2;
|
||||||
|
|
||||||
|
# dmrs_TypeA_position
|
||||||
|
# 0 = pos2, 1 = pos3
|
||||||
|
dmrs_TypeA_Position = 0;
|
||||||
|
|
||||||
|
# subcarrierSpacing
|
||||||
|
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||||
|
subcarrierSpacing = 1;
|
||||||
|
|
||||||
|
|
||||||
|
#tdd-UL-DL-ConfigurationCommon
|
||||||
|
# subcarrierSpacing
|
||||||
|
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||||
|
referenceSubcarrierSpacing = 1;
|
||||||
|
# pattern1
|
||||||
|
# dl_UL_TransmissionPeriodicity
|
||||||
|
# 0=ms0p5, 1=ms0p625, 2=ms1, 3=ms1p25, 4=ms2, 5=ms2p5, 6=ms5, 7=ms10
|
||||||
|
dl_UL_TransmissionPeriodicity = 6;
|
||||||
|
nrofDownlinkSlots = 7;
|
||||||
|
nrofDownlinkSymbols = 6;
|
||||||
|
nrofUplinkSlots = 2;
|
||||||
|
nrofUplinkSymbols = 4;
|
||||||
|
|
||||||
|
ssPBCH_BlockPower = -25;
|
||||||
|
}
|
||||||
|
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
# ------- SCTP definitions
|
||||||
|
SCTP :
|
||||||
|
{
|
||||||
|
# Number of streams to use in input/output
|
||||||
|
SCTP_INSTREAMS = 2;
|
||||||
|
SCTP_OUTSTREAMS = 2;
|
||||||
|
};
|
||||||
|
|
||||||
|
////////// AMF parameters:
|
||||||
|
amf_ip_address = ( { ipv4 = "CI_MME_IP_ADDR";
|
||||||
|
ipv6 = "192:168:30::17";
|
||||||
|
active = "yes";
|
||||||
|
preference = "ipv4";
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
NETWORK_INTERFACES :
|
||||||
|
{
|
||||||
|
|
||||||
|
GNB_INTERFACE_NAME_FOR_NG_AMF = "em1";
|
||||||
|
GNB_IPV4_ADDRESS_FOR_NG_AMF = "CI_GNB_IP_ADDR";
|
||||||
|
GNB_INTERFACE_NAME_FOR_NGU = "em1";
|
||||||
|
GNB_IPV4_ADDRESS_FOR_NGU = "CI_GNB_IP_ADDR";
|
||||||
|
GNB_PORT_FOR_S1U = 2152; # Spec 2152
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
MACRLCs = (
|
||||||
|
{
|
||||||
|
num_cc = 1;
|
||||||
|
tr_s_preference = "local_L1";
|
||||||
|
tr_n_preference = "local_RRC";
|
||||||
|
# pusch_TargetSNRx10 = 200;
|
||||||
|
# pucch_TargetSNRx10 = 150;
|
||||||
|
ulsch_max_frame_inactivity = 0;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
L1s = (
|
||||||
|
{
|
||||||
|
num_cc = 1;
|
||||||
|
tr_n_preference = "local_mac";
|
||||||
|
thread_pool_size = 8;
|
||||||
|
prach_dtx_threshold = 120;
|
||||||
|
# pucch0_dtx_threshold = 150;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
RUs = (
|
||||||
|
{
|
||||||
|
local_rf = "yes"
|
||||||
|
nb_tx = 2
|
||||||
|
nb_rx = 2
|
||||||
|
att_tx = 0
|
||||||
|
att_rx = 0;
|
||||||
|
bands = [78];
|
||||||
|
max_pdschReferenceSignalPower = -27;
|
||||||
|
max_rxgain = 75;
|
||||||
|
eNB_instances = [0];
|
||||||
|
##beamforming 1x2 matrix: 1 layer x 2 antennas
|
||||||
|
bf_weights = [0x00007fff, 0x0000];
|
||||||
|
##beamforming 1x4 matrix: 1 layer x 4 antennas
|
||||||
|
#bf_weights = [0x00007fff, 0x0000,0x0000, 0x0000];
|
||||||
|
## beamforming 2x2 matrix:
|
||||||
|
# bf_weights = [0x00007fff, 0x00000000, 0x00000000, 0x00007fff];
|
||||||
|
## beamforming 4x4 matrix:
|
||||||
|
#bf_weights = [0x00007fff, 0x0000, 0x0000, 0x0000, 0x00000000, 0x00007fff, 0x0000, 0x0000, 0x0000, 0x0000, 0x00007fff, 0x0000, 0x0000, 0x0000, 0x0000, 0x00007fff];
|
||||||
|
sf_extension = 0
|
||||||
|
sdr_addrs = "mgmt_addr=192.168.18.252,addr=192.168.10.2,second_addr=192.168.20.2,clock_source=internal,time_source=internal"
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
THREAD_STRUCT = (
|
||||||
|
{
|
||||||
|
#three config for level of parallelism "PARALLEL_SINGLE_THREAD", "PARALLEL_RU_L1_SPLIT", or "PARALLEL_RU_L1_TRX_SPLIT"
|
||||||
|
parallel_config = "PARALLEL_SINGLE_THREAD";
|
||||||
|
#two option for worker "WORKER_DISABLE" or "WORKER_ENABLE"
|
||||||
|
worker_config = "WORKER_ENABLE";
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
#security = {
|
||||||
|
# preferred ciphering algorithms
|
||||||
|
# the first one of the list that an UE supports in chosen
|
||||||
|
# valid values: nea0, nea1, nea2, nea3
|
||||||
|
# ciphering_algorithms = ( "nea2" );
|
||||||
|
|
||||||
|
# preferred integrity algorithms
|
||||||
|
# the first one of the list that an UE supports in chosen
|
||||||
|
# valid values: nia0, nia1, nia2, nia3
|
||||||
|
# integrity_algorithms = ( "nia2", "nia0" );
|
||||||
|
|
||||||
|
# setting 'drb_ciphering' to "no" disables ciphering for DRBs, no matter
|
||||||
|
# what 'ciphering_algorithms' configures; same thing for 'drb_integrity'
|
||||||
|
# drb_ciphering = "yes";
|
||||||
|
# drb_integrity = "no";
|
||||||
|
#};
|
||||||
|
|
||||||
|
log_config :
|
||||||
|
{
|
||||||
|
global_log_level ="info";
|
||||||
|
hw_log_level ="info";
|
||||||
|
phy_log_level ="info";
|
||||||
|
mac_log_level ="info";
|
||||||
|
rlc_log_level ="info";
|
||||||
|
pdcp_log_level ="info";
|
||||||
|
rrc_log_level ="info";
|
||||||
|
f1ap_log_level ="debug";
|
||||||
|
};
|
||||||
+6
-4
@@ -66,6 +66,8 @@ class EPCManagement():
|
|||||||
self.mmeConfFile = 'mme.conf'
|
self.mmeConfFile = 'mme.conf'
|
||||||
self.yamlPath = ''
|
self.yamlPath = ''
|
||||||
self.isMagmaUsed = False
|
self.isMagmaUsed = False
|
||||||
|
self.cfgDeploy = '--type start-mini --fqdn yes --scenario 1 --capture /tmp/oai-cn5g-v1.3.pcap' #from xml, 'mini' is default normal for docker-network.py
|
||||||
|
self.cfgUnDeploy = '--type stop-mini --fqdn yes --scenario 1' #from xml, 'mini' is default normal for docker-network.py
|
||||||
|
|
||||||
|
|
||||||
#-----------------------------------------------------------
|
#-----------------------------------------------------------
|
||||||
@@ -251,8 +253,8 @@ class EPCManagement():
|
|||||||
logging.debug('Starting OAI CN5G')
|
logging.debug('Starting OAI CN5G')
|
||||||
mySSH.command('if [ -d ' + self.SourceCodePath + '/scripts ]; then echo ' + self.Password + ' | sudo -S rm -Rf ' + self.SourceCodePath + '/scripts ; fi', '\$', 5)
|
mySSH.command('if [ -d ' + self.SourceCodePath + '/scripts ]; then echo ' + self.Password + ' | sudo -S rm -Rf ' + self.SourceCodePath + '/scripts ; fi', '\$', 5)
|
||||||
mySSH.command('mkdir -p ' + self.SourceCodePath + '/scripts', '\$', 5)
|
mySSH.command('mkdir -p ' + self.SourceCodePath + '/scripts', '\$', 5)
|
||||||
mySSH.command('cd /opt/oai-cn5g-fed/docker-compose', '\$', 5)
|
mySSH.command('cd /opt/oai-cn5g-fed-v1.3/docker-compose', '\$', 5)
|
||||||
mySSH.command('./core-network.sh start nrf spgwu', '\$', 60)
|
mySSH.command('python3 ./core-network.py '+self.cfgDeploy, '\$', 60)
|
||||||
time.sleep(2)
|
time.sleep(2)
|
||||||
mySSH.command('docker-compose -p 5gcn ps -a', '\$', 60)
|
mySSH.command('docker-compose -p 5gcn ps -a', '\$', 60)
|
||||||
if mySSH.getBefore().count('Up (healthy)') != 6:
|
if mySSH.getBefore().count('Up (healthy)') != 6:
|
||||||
@@ -530,8 +532,8 @@ class EPCManagement():
|
|||||||
mySSH.command('docker logs ' + c + ' > ' + self.SourceCodePath + '/logs/' + c + '.log', '\$', 5)
|
mySSH.command('docker logs ' + c + ' > ' + self.SourceCodePath + '/logs/' + c + '.log', '\$', 5)
|
||||||
|
|
||||||
logging.debug('Terminating OAI CN5G')
|
logging.debug('Terminating OAI CN5G')
|
||||||
mySSH.command('cd /opt/oai-cn5g-fed/docker-compose', '\$', 5)
|
mySSH.command('cd /opt/oai-cn5g-fed-v1.3/docker-compose', '\$', 5)
|
||||||
mySSH.command('./core-network.sh stop nrf spgwu', '\$', 60)
|
mySSH.command('python3 ./core-network.py '+self.cfgUnDeploy, '\$', 60)
|
||||||
mySSH.command('docker volume prune --force || true', '\$', 60)
|
mySSH.command('docker volume prune --force || true', '\$', 60)
|
||||||
time.sleep(2)
|
time.sleep(2)
|
||||||
mySSH.command('tshark -r /tmp/oai-cn5g.pcap | egrep --colour=never "Tracking area update" ','\$', 30)
|
mySSH.command('tshark -r /tmp/oai-cn5g.pcap | egrep --colour=never "Tracking area update" ','\$', 30)
|
||||||
|
|||||||
@@ -376,6 +376,16 @@ def GetParametersFromXML(action):
|
|||||||
if (string_field is not None):
|
if (string_field is not None):
|
||||||
EPC.yamlPath = string_field
|
EPC.yamlPath = string_field
|
||||||
|
|
||||||
|
elif action == 'Initialize_5GCN':
|
||||||
|
string_field = test.findtext('args')
|
||||||
|
if (string_field is not None):
|
||||||
|
EPC.cfgDeploy = string_field
|
||||||
|
|
||||||
|
elif action == 'Terminate_5GCN':
|
||||||
|
string_field = test.findtext('args')
|
||||||
|
if (string_field is not None):
|
||||||
|
EPC.cfgUnDeploy = string_field
|
||||||
|
|
||||||
elif action == 'Deploy_Object' or action == 'Undeploy_Object':
|
elif action == 'Deploy_Object' or action == 'Undeploy_Object':
|
||||||
eNB_instance=test.findtext('eNB_instance')
|
eNB_instance=test.findtext('eNB_instance')
|
||||||
if (eNB_instance is None):
|
if (eNB_instance is None):
|
||||||
|
|||||||
@@ -56,6 +56,7 @@ class SSHConnection():
|
|||||||
self.picocom_closure = True
|
self.picocom_closure = True
|
||||||
|
|
||||||
def open(self, ipaddress, username, password):
|
def open(self, ipaddress, username, password):
|
||||||
|
prompt = "#" if username == "root" else "\$"
|
||||||
count = 0
|
count = 0
|
||||||
connect_status = False
|
connect_status = False
|
||||||
while count < 4:
|
while count < 4:
|
||||||
@@ -68,7 +69,7 @@ class SSHConnection():
|
|||||||
self.sshresponse = self.ssh.expect(['password:', username + '@'])
|
self.sshresponse = self.ssh.expect(['password:', username + '@'])
|
||||||
if self.sshresponse == 0:
|
if self.sshresponse == 0:
|
||||||
self.ssh.sendline(password)
|
self.ssh.sendline(password)
|
||||||
self.sshresponse = self.ssh.expect(['\$', 'Permission denied', 'password:', pexpect.EOF, pexpect.TIMEOUT])
|
self.sshresponse = self.ssh.expect([prompt, 'Permission denied', 'password:', pexpect.EOF, pexpect.TIMEOUT])
|
||||||
if self.sshresponse == 0:
|
if self.sshresponse == 0:
|
||||||
count = 10
|
count = 10
|
||||||
connect_status = True
|
connect_status = True
|
||||||
@@ -76,7 +77,7 @@ class SSHConnection():
|
|||||||
logging.debug('self.sshresponse = ' + str(self.sshresponse))
|
logging.debug('self.sshresponse = ' + str(self.sshresponse))
|
||||||
elif self.sshresponse == 1:
|
elif self.sshresponse == 1:
|
||||||
self.ssh.sendline(password)
|
self.ssh.sendline(password)
|
||||||
self.sshresponse = self.ssh.expect(['\$', 'Permission denied', 'password:', pexpect.EOF, pexpect.TIMEOUT])
|
self.sshresponse = self.ssh.expect([prompt, 'Permission denied', 'password:', pexpect.EOF, pexpect.TIMEOUT])
|
||||||
if self.sshresponse == 0:
|
if self.sshresponse == 0:
|
||||||
count = 10
|
count = 10
|
||||||
connect_status = True
|
connect_status = True
|
||||||
@@ -84,7 +85,7 @@ class SSHConnection():
|
|||||||
logging.debug('self.sshresponse = ' + str(self.sshresponse))
|
logging.debug('self.sshresponse = ' + str(self.sshresponse))
|
||||||
elif self.sshresponse == 2:
|
elif self.sshresponse == 2:
|
||||||
# Checking if we are really on the remote client defined by its IP address
|
# Checking if we are really on the remote client defined by its IP address
|
||||||
self.command('stdbuf -o0 ifconfig | egrep --color=never "inet addr:|inet "', '\$', 5)
|
self.command('stdbuf -o0 ifconfig | egrep --color=never "inet addr:|inet "', prompt, 5)
|
||||||
result = re.search(str(ipaddress), str(self.ssh.before))
|
result = re.search(str(ipaddress), str(self.ssh.before))
|
||||||
if result is None:
|
if result is None:
|
||||||
self.close()
|
self.close()
|
||||||
@@ -100,7 +101,7 @@ class SSHConnection():
|
|||||||
time.sleep(1)
|
time.sleep(1)
|
||||||
count += 1
|
count += 1
|
||||||
if connect_status:
|
if connect_status:
|
||||||
self.command('unset HISTFILE', '\$', 5, silent=True)
|
self.command('unset HISTFILE', prompt, 5, silent=True)
|
||||||
else:
|
else:
|
||||||
sys.exit('SSH Connection Failed')
|
sys.exit('SSH Connection Failed')
|
||||||
self.ipaddress = ipaddress
|
self.ipaddress = ipaddress
|
||||||
|
|||||||
@@ -0,0 +1,87 @@
|
|||||||
|
<!--
|
||||||
|
|
||||||
|
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>TEST-SA-FR1-Tab1</htmlTabRef>
|
||||||
|
<htmlTabName>SA Ping DL UL with 1 AS UE</htmlTabName>
|
||||||
|
<htmlTabIcon>tasks</htmlTabIcon>
|
||||||
|
<repeatCount>1</repeatCount>
|
||||||
|
<TestCaseRequestedList>
|
||||||
|
040000
|
||||||
|
000001
|
||||||
|
010000
|
||||||
|
000002
|
||||||
|
050000
|
||||||
|
080000
|
||||||
|
</TestCaseRequestedList>
|
||||||
|
<TestCaseExclusionList></TestCaseExclusionList>
|
||||||
|
|
||||||
|
<testCase id="010000">
|
||||||
|
<class>Initialize_UE</class>
|
||||||
|
<desc>Run AS UE Scenario</desc>
|
||||||
|
<id>amarisoft_ue_1</id>
|
||||||
|
</testCase>
|
||||||
|
|
||||||
|
|
||||||
|
<testCase id="040000">
|
||||||
|
<class>Initialize_eNB</class>
|
||||||
|
<desc>Initialize gNB</desc>
|
||||||
|
<Initialize_eNB_args>-O ci-scripts/conf_files/gnb.band78.sa.fr1.106PRB.2x2.usrpn310.asue.conf --sa -q --usrp-tx-thread-config 1 --T_stdout 2 --log_config.global_log_options level,nocolor,time</Initialize_eNB_args>
|
||||||
|
<eNB_instance>0</eNB_instance>
|
||||||
|
<eNB_serverId>0</eNB_serverId>
|
||||||
|
<air_interface>nr</air_interface>
|
||||||
|
<eNB_Trace>yes</eNB_Trace>
|
||||||
|
<eNB_Stats>yes</eNB_Stats>
|
||||||
|
<rt_stats_cfg>datalog_rt_stats.2x2.yaml</rt_stats_cfg>
|
||||||
|
<USRP_IPAddress>192.168.18.252</USRP_IPAddress>
|
||||||
|
</testCase>
|
||||||
|
|
||||||
|
<testCase id="050000">
|
||||||
|
<class>Ping</class>
|
||||||
|
<desc>Ping Log Analysis</desc>
|
||||||
|
<id>amarisoft_ue_1</id>
|
||||||
|
<ping_packetloss_threshold>1</ping_packetloss_threshold>
|
||||||
|
</testCase>
|
||||||
|
|
||||||
|
<testCase id="000001">
|
||||||
|
<class>IdleSleep</class>
|
||||||
|
<desc>Sleep</desc>
|
||||||
|
<idle_sleep_time_in_sec>60</idle_sleep_time_in_sec>
|
||||||
|
</testCase>
|
||||||
|
|
||||||
|
<testCase id="000002">
|
||||||
|
<class>IdleSleep</class>
|
||||||
|
<desc>Sleep</desc>
|
||||||
|
<idle_sleep_time_in_sec>20</idle_sleep_time_in_sec>
|
||||||
|
</testCase>
|
||||||
|
|
||||||
|
|
||||||
|
<testCase id="080000">
|
||||||
|
<class>Terminate_eNB</class>
|
||||||
|
<desc>Terminate gNB</desc>
|
||||||
|
<eNB_instance>0</eNB_instance>
|
||||||
|
<eNB_serverId>0</eNB_serverId>
|
||||||
|
<air_interface>nr</air_interface>
|
||||||
|
</testCase>
|
||||||
|
|
||||||
|
</testCaseList>
|
||||||
|
|
||||||
@@ -0,0 +1,38 @@
|
|||||||
|
<!--
|
||||||
|
|
||||||
|
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>cn5g-closure</htmlTabRef>
|
||||||
|
<htmlTabName>CN5G-Closure</htmlTabName>
|
||||||
|
<htmlTabIcon>log-out</htmlTabIcon>
|
||||||
|
<TestCaseRequestedList>
|
||||||
|
060000
|
||||||
|
</TestCaseRequestedList>
|
||||||
|
<TestCaseExclusionList></TestCaseExclusionList>
|
||||||
|
|
||||||
|
<testCase id="060000">
|
||||||
|
<class>Terminate_5GCN</class>
|
||||||
|
<desc>Terminate 5G Core</desc>
|
||||||
|
<args>--type stop-mini-as-ue --fqdn yes --scenario 1</args>
|
||||||
|
</testCase>
|
||||||
|
|
||||||
|
</testCaseList>
|
||||||
@@ -0,0 +1,39 @@
|
|||||||
|
<!--
|
||||||
|
|
||||||
|
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>cn5g-start-tab</htmlTabRef>
|
||||||
|
<htmlTabName>CN5G-Start</htmlTabName>
|
||||||
|
<htmlTabIcon>log-in</htmlTabIcon>
|
||||||
|
<TestCaseRequestedList>
|
||||||
|
000100
|
||||||
|
</TestCaseRequestedList>
|
||||||
|
<TestCaseExclusionList>
|
||||||
|
</TestCaseExclusionList>
|
||||||
|
|
||||||
|
<testCase id="000100">
|
||||||
|
<class>Initialize_5GCN</class>
|
||||||
|
<desc>Initialize 5G Core</desc>
|
||||||
|
<args>--type start-mini-as-ue --fqdn yes --scenario 1 --capture /tmp/oai-cn5g-v1.3.pcap</args>
|
||||||
|
</testCase>
|
||||||
|
|
||||||
|
</testCaseList>
|
||||||
Reference in New Issue
Block a user