pespin has uploaded this change for review. (
https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/40764?usp=email )
Change subject: 5gc: Introduce test TC_register_ping4
......................................................................
5gc: Introduce test TC_register_ping4
osmo-uecups is used to set up a GTPv1U tundev with the PDU session
params configured over NGAP/NAS, similar to what is already done in
PGW_Tests.
Depends: osmo-uecups.git Change-Id I6262c3dfbf774b361aadf0aa53ce09b5fdc38da4
Change-Id: I66737a94eedcf4184aa59bbbd7cc700d1e9d1521
---
M 5gc/C5G_Tests.cfg
M 5gc/C5G_Tests.ttcn
M 5gc/ConnHdlr.ttcn
M 5gc/expected-results.xml
M 5gc/gen_links.sh
M 5gc/open5gs/open5gs-smf.yaml
M 5gc/open5gs/open5gs-upf.yaml
A 5gc/osmo-uecups-daemon.cfg
M 5gc/regen_makefile.sh
M 5gc/testenv.cfg
R 5gc/testenv.sh
A 5gc/testsuite_prepare.sh
M deps/Makefile
13 files changed, 226 insertions(+), 43 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/64/40764/1
diff --git a/5gc/C5G_Tests.cfg b/5gc/C5G_Tests.cfg
index ec6f129..9d4439c 100644
--- a/5gc/C5G_Tests.cfg
+++ b/5gc/C5G_Tests.cfg
@@ -19,6 +19,10 @@
C5G_Tests.mp_imsi := '999700000000000'H;
C5G_Tests.mp_usim_key := '762a2206fe0b4151ace403c86a11e479'O;
C5G_Tests.mp_usim_opc := '3c6e0b8a9c15224a8228b9a98ca1531d'O;
+C5G_Tests.mp_run_prog_log_path := "./run_prog"
+C5G_Tests.mp_run_prog_as_user := "osmocom" # testenv.sh sets this to $USER
+C5G_Tests.mp_ping_hostname := "10.45.0.1";
+GTPv1U_Emulation.mp_uecups_host := "127.0.0.20";
[MAIN_CONTROLLER]
diff --git a/5gc/C5G_Tests.ttcn b/5gc/C5G_Tests.ttcn
index f09b364..ff6e43f 100644
--- a/5gc/C5G_Tests.ttcn
+++ b/5gc/C5G_Tests.ttcn
@@ -45,6 +45,8 @@
import from NG_NAS_Functions all;
import from NG_CryptoFunctions all;
+import from GTPv1U_Emulation all;
+
import from ConnHdlr all;
/* (maximum) number of emulated UEs */
@@ -63,7 +65,20 @@
octetstring mp_usim_opc := '3c6e0b8a9c15224a8228b9a98ca1531d'O;
uint24_t mp_tac := 1;
charstring mp_apn := "internet";
- charstring mp_local_gtpu_ip := "127.0.0.1";
+ charstring mp_local_gtpu_ip := "127.0.0.20";
+ charstring mp_ping_hostname := "10.45.0.1";
+
+ charstring mp_run_prog_log_path := "/tmp";
+ charstring mp_run_prog_as_user := "osmocom";
+}
+
+template (value) RunProgParams ts_RunProgParams(integer imsi_suffix) :=
+{
+ run_as_user := mp_run_prog_as_user,
+ log_path_prefix := mp_run_prog_log_path,
+ tun_netns_name := "tun" & int2str(imsi_suffix),
+ tun_dev_name := "tun" & int2str(imsi_suffix),
+ ping_hostname := mp_ping_hostname
}
template (value) UeParams ts_UeParams(integer imsi_suffix) :=
@@ -73,14 +88,13 @@
usim_key := mp_usim_key,
usim_opc := mp_usim_opc,
apn := mp_apn,
+ run_prog_pars := ts_RunProgParams(imsi_suffix),
ran_gtpu_ip := mp_local_gtpu_ip,
- ran_gtpu_teid := int2oct(imsi_suffix, 4),
+ ran_gtpu_teid := int2oct(imsi_suffix + 1, 4),
cn_gtpu_ip := omit,
cn_gtpu_teid := omit,
- ue_ip := omit,
- kausf := omit,
- kseaf := omit,
- kamf := omit
+ qfi := omit,
+ ue_ip := omit
}
type component MTC_CT {
@@ -90,6 +104,9 @@
port NGAP_PT NGAP_UNIT[NUM_NGRAN];
port NGAPEM_PROC_PT NGAP_PROC[NUM_NGRAN];
+ var GTPv1U_Emulation_CT vc_GTP1U;
+ port GTP1UEM_PT TEID0;
+
timer g_Tguard := 30.0;
var UeParams g_ue_pars[NUM_UE];
@@ -154,11 +171,25 @@
}
}
+private function f_init_gtp1u() runs on MTC_CT {
+ var Gtp1uEmulationCfg cfg := {
+ gtpu_bind_ip := omit, /* using gtpu daemon */
+ gtpu_bind_port := omit, /* using gtpu daemon */
+ use_gtpu_daemon := true
+ };
+
+ vc_GTP1U := GTPv1U_Emulation_CT.create("GTP1U_EM");
+ map(vc_GTP1U:GTP1U, system:GTP1U);
+ connect(vc_GTP1U:TEID0, self:TEID0);
+ vc_GTP1U.start(GTPv1U_Emulation.main(cfg));
+}
+
private function f_init(integer imsi_suffix := 0, float t_guard := 30.0) runs on MTC_CT
{
/* start guard timer and activate it as default */
g_Tguard.start(t_guard);
activate(as_Tguard());
+ f_init_gtp1u();
f_init_ngap(imsi_suffix);
}
@@ -185,6 +216,10 @@
connect(vc_conn:NGAP, vc_NGAP[ngap_idx]:NGAP_CLIENT);
connect(vc_conn:NGAP_PROC, vc_NGAP[ngap_idx]:NGAP_PROC);
+ /* GTPv1U */
+ connect(vc_conn:GTP1U[0], vc_GTP1U:CLIENT);
+ connect(vc_conn:GTP1U_PROC[0], vc_GTP1U:CLIENT_PROC);
+
/* We cannot use vc_conn.start(f_init_handler(fn, id, pars)); as we cannot have
* a stand-alone 'derefers()' call, see
https://www.eclipse.org/forums/index.php/t/1091364/ */
vc_conn.start(f_init_handler(fn, pars));
@@ -278,11 +313,29 @@
vc_conn.done;
}
+private function f_TC_register_ping4() runs on ConnHdlr {
+ f_register();
+ f_pdu_sess_create_tun();
+ f_sleep(1.0);
+ f_ping4(g_pars.ue_pars.run_prog_pars.ping_hostname);
+ f_pdu_sess_delete_tun();
+}
+testcase TC_ng_register_ping4() runs on MTC_CT {
+ f_init();
+ f_ngap_setup(0);
+
+ var ConnHdlrPars pars := f_init_pars(ue_idx := 0);
+ var ConnHdlr vc_conn;
+ vc_conn := f_start_handler_with_pars(refers(f_TC_register_ping4), pars);
+ vc_conn.done;
+}
+
control {
execute( TC_ng_setup() );
execute( TC_ng_setup_unknown_global_gnb_id_plmn() );
execute( TC_ng_setup_wrong_tac() );
execute( TC_ng_register() );
+ execute( TC_ng_register_ping4() );
}
diff --git a/5gc/ConnHdlr.ttcn b/5gc/ConnHdlr.ttcn
index 65e6c9a..2e3bedc 100644
--- a/5gc/ConnHdlr.ttcn
+++ b/5gc/ConnHdlr.ttcn
@@ -45,6 +45,9 @@
import from NG_NAS_Functions all;
import from NG_CryptoFunctions all;
+import from GTPv1U_Emulation all;
+import from UECUPS_Types all;
+
/* (maximum) number of emulated eNBs */
const integer NUM_NGRAN := 1;
@@ -55,6 +58,12 @@
SupportedTAList supported_ta_list
}
+type record UeDerivedKeys {
+ OCT32 kausf,
+ OCT32 kseaf,
+ OCT32 kamf
+};
+
/* parameters of emulated UE */
type record UeParams {
HEX15n imsi,
@@ -62,15 +71,22 @@
octetstring usim_key,
octetstring usim_opc,
charstring apn,
+ RunProgParams run_prog_pars,
charstring ran_gtpu_ip,
OCT4 ran_gtpu_teid,
charstring cn_gtpu_ip optional,
OCT4 cn_gtpu_teid optional,
- charstring ue_ip optional,
- OCT32 kausf optional,
- OCT32 kseaf optional,
- OCT32 kamf optional
-}
+ OCT1 qfi optional,
+ charstring ue_ip optional
+};
+
+type record RunProgParams {
+ charstring run_as_user,
+ charstring log_path_prefix,
+ charstring tun_netns_name,
+ charstring tun_dev_name,
+ charstring ping_hostname
+};
type record ConnHdlrPars {
/* copied over from MTC_CT on start of component */
@@ -83,8 +99,12 @@
NAS_KeySetIdentifier kset_id
}
-type component ConnHdlr extends NGAP_ConnHdlr {
+type component ConnHdlr extends NGAP_ConnHdlr, GTP1U_ConnHdlr {
var ConnHdlrPars g_pars;
+ var UeDerivedKeys g_keys;
+
+ /* number of programs started, used as identifier. */
+ var integer g_start_prog_count := 0;
}
type function void_fn() runs on ConnHdlr;
@@ -177,14 +197,14 @@
}
var octetstring ssn := f_NG_NAS_ServingNetworkName_OCT(f_imsi_plmn_id(), omit);
- g_pars.ue_pars.kausf := f_kdf_kausf(ck, ik, ssn, autn);
- g_pars.ue_pars.kseaf := f_kdf_kseaf(g_pars.ue_pars.kausf, ssn);
- g_pars.ue_pars.kamf := f_kdf_kamf(g_pars.ue_pars.kseaf,
char2oct(hex2str(g_pars.ue_pars.imsi)), abba);
+ g_keys.kausf := f_kdf_kausf(ck, ik, ssn, autn);
+ g_keys.kseaf := f_kdf_kseaf(g_keys.kausf, ssn);
+ g_keys.kamf := f_kdf_kamf(g_keys.kseaf, char2oct(hex2str(g_pars.ue_pars.imsi)), abba);
var NGAPEM_Config cfg := {
set_nas_keys := {
- k_nas_int := f_kdf_ng_nas_int(g_pars.ue_pars.kamf, NG_NAS_ALG_IP_NIA1),
- k_nas_enc := f_kdf_ng_nas_enc(g_pars.ue_pars.kamf, NG_NAS_ALG_ENC_NEA0)
+ k_nas_int := f_kdf_ng_nas_int(g_keys.kamf, NG_NAS_ALG_IP_NIA1),
+ k_nas_enc := f_kdf_ng_nas_enc(g_keys.kamf, NG_NAS_ALG_ENC_NEA0)
}
};
NGAP.send(cfg);
@@ -325,6 +345,7 @@
NGAP.receive(cr_NG_DL_NAS_TRANSPORT) -> value rx_nas;
inner_nas :=
f_dec_NG_NAS_DL_Message_Payload_Container(rx_nas.dl_Nas_Transport.payloadContainerType.container,
rx_nas.dl_Nas_Transport.payload.payload);
+ g_pars.ue_pars.qfi :=
inner_nas.pdu_Session_Establishment_Accept.authorizedQoSRules.listofQoSRules[0].identifier;
g_pars.ue_pars.ue_ip :=
f_inet_ntoa(inner_nas.pdu_Session_Establishment_Accept.pduAddress.adressInfo);
log("5GC assigned CN GTPU Address: ", g_pars.ue_pars.cn_gtpu_ip, " TEID:
", g_pars.ue_pars.cn_gtpu_teid);
log("5GC assigned UE IP address: ", g_pars.ue_pars.ue_ip);
@@ -370,4 +391,67 @@
f_pdu_sess_establish();
}
+function f_pdu_sess_create_tun() runs on ConnHdlr {
+ var template (value) UECUPS_GtpExtHdr gtp_ext_hdr;
+ var template (value) UECUPS_CreateTun uecups_create;
+ var template (value) UECUPS_GtpExtHdr_PduSessContainer pdu_sess_cont;
+
+ pdu_sess_cont :=
ts_UECUPS_GtpExtHdr_PduSessContainer(UECUPS_GtpExtHdr_PduSessContainer_Type_ul_pdu_sess_info,
+ oct2int(g_pars.ue_pars.qfi));
+ gtp_ext_hdr := ts_UECUPS_GtpExtHdr(pdu_session_container := pdu_sess_cont);
+
+ uecups_create := ts_UECUPS_CreateTun(
+ tx_teid := oct2int(g_pars.ue_pars.cn_gtpu_teid),
+ rx_teid := oct2int(g_pars.ue_pars.ran_gtpu_teid),
+ user_addr_type := IPV4,
+ user_addr := f_inet_addr(g_pars.ue_pars.ue_ip),
+ local_gtp_ep := valueof(ts_UECUPS_SockAddr(f_inet_addr(g_pars.ue_pars.ran_gtpu_ip))),
+ remote_gtp_ep := valueof(ts_UECUPS_SockAddr(f_inet_addr(g_pars.ue_pars.cn_gtpu_ip))),
+ tun_dev_name := g_pars.ue_pars.run_prog_pars.tun_dev_name,
+ tun_netns_name := g_pars.ue_pars.run_prog_pars.tun_netns_name,
+ gtp_ext_hdr := gtp_ext_hdr
+ );
+
+ f_gtp1u_create_tunnel(uecups_create);
+}
+
+/* destroy tunnel in daemon */
+function f_pdu_sess_delete_tun() runs on ConnHdlr {
+ var template (value) UECUPS_DestroyTun uecups_destroy;
+ uecups_destroy := ts_UECUPS_DestroyTun(
+ local_gtp_ep := valueof(ts_UECUPS_SockAddr(f_inet_addr(g_pars.ue_pars.ran_gtpu_ip))),
+ rx_teid := oct2int(g_pars.ue_pars.ran_gtpu_teid)
+ );
+ f_gtp1u_destroy_tunnel(uecups_destroy);
+}
+
+private function f_run_prog_init(charstring command) runs on ConnHdlr return
UECUPS_StartProgram
+{
+ var template (value) UECUPS_StartProgram sprog := ts_UECUPS_StartProgram(
+ command := command,
+ environment := {},
+ run_as_user := g_pars.ue_pars.run_prog_pars.run_as_user,
+ tun_netns_name := g_pars.ue_pars.run_prog_pars.tun_netns_name
+ );
+ return valueof(sprog);
+}
+
+private function f_run_prog_unique_log_path() runs on ConnHdlr return charstring
+{
+ var charstring id := testcasename() & "-" &
hex2str(g_pars.ue_pars.imsi) & "-" & int2str(g_start_prog_count);
+ var charstring prefix := g_pars.ue_pars.run_prog_pars.log_path_prefix &
"/" & id;
+ g_start_prog_count := g_start_prog_count + 1;
+ return prefix;
+}
+
+/* execute ping command and wait for result */
+function f_ping4(charstring host, integer interval := 1, integer count := 10) runs on
ConnHdlr
+{
+ /* command will be filled in by f_gtp1u_ping4() below: */
+ var UECUPS_StartProgram sprog := f_run_prog_init("");
+ f_gtp1u_ping4(sprog, host, interval, count, g_pars.ue_pars.ue_ip,
+ redirect_output := true,
+ redirect_output_path_prefix := f_run_prog_unique_log_path());
+}
+
}
diff --git a/5gc/expected-results.xml b/5gc/expected-results.xml
index 2120ba4..01d53a1 100644
--- a/5gc/expected-results.xml
+++ b/5gc/expected-results.xml
@@ -4,4 +4,5 @@
<testcase classname='C5G_Tests' name='TC_ng_setup_wrong_tac'
time='MASKED'/>
<testcase classname='C5G_Tests' name='TC_ng_setup'
time='MASKED'/>
<testcase classname='C5G_Tests' name='TC_ng_register'
time='MASKED'/>
+ <testcase classname='C5G_Tests' name='TC_ng_register_ping4'
time='MASKED'/>
</testsuite>
diff --git a/5gc/gen_links.sh b/5gc/gen_links.sh
index 43a679b..9d72550 100755
--- a/5gc/gen_links.sh
+++ b/5gc/gen_links.sh
@@ -18,6 +18,14 @@
FILES="IPL4asp_Functions.ttcn IPL4asp_PT.cc IPL4asp_PT.hh IPL4asp_PortType.ttcn
IPL4asp_Types.ttcn IPL4asp_discovery.cc IPL4asp_protocol_L234.hh"
gen_links $DIR $FILES
+DIR=$BASEDIR/titan.ProtocolModules.GTP_v13.5.0/src
+FILES="GTPU_EncDec.cc GTPU_Types.ttcn "
+gen_links $DIR $FILES
+
+DIR=$BASEDIR/osmo-uecups/ttcn3
+FILES="UECUPS_CodecPort.ttcn UECUPS_CodecPort_CtrlFunct.ttcn
UECUPS_CodecPort_CtrlFunctDef.cc UECUPS_Types.ttcn "
+gen_links $DIR $FILES
+
####################
# NG_NAS start
####################
@@ -80,6 +88,7 @@
FILES+="NGAP_CodecPort.ttcn NGAP_CodecPort_CtrlFunctDef.cc
NGAP_CodecPort_CtrlFunct.ttcn NGAP_Functions.ttcn NGAP_Emulation.ttcn "
FILES+="NG_NAS_Osmo_Types.ttcn NG_NAS_Osmo_Templates.ttcn NG_NAS_Functions.ttcn
"
FILES+="NG_CryptoFunctionDefs.cc NG_CryptoFunctions.ttcn "
+FILES+="GTPv1U_CodecPort.ttcn GTPv1U_CodecPort_CtrlFunct.ttcn
GTPv1U_CodecPort_CtrlFunctDef.cc GTPv1U_Templates.ttcn GTPv1U_Emulation.ttcnpp "
gen_links $DIR $FILES
gen_links_finish
diff --git a/5gc/open5gs/open5gs-smf.yaml b/5gc/open5gs/open5gs-smf.yaml
index 3ae7783..f925af1 100644
--- a/5gc/open5gs/open5gs-smf.yaml
+++ b/5gc/open5gs/open5gs-smf.yaml
@@ -36,8 +36,10 @@
session:
- subnet: 10.45.0.0/16
gateway: 10.45.0.1
+ dnn: internet
- subnet: 2001:db8:cafe::/48
gateway: 2001:db8:cafe::1
+ dnn: internet
dns:
- 8.8.8.8
- 8.8.4.4
diff --git a/5gc/open5gs/open5gs-upf.yaml b/5gc/open5gs/open5gs-upf.yaml
index f73cbc3..c6c86d4 100644
--- a/5gc/open5gs/open5gs-upf.yaml
+++ b/5gc/open5gs/open5gs-upf.yaml
@@ -18,21 +18,13 @@
server:
- address: 127.0.0.7
session:
- - subnet: 176.16.16.0/20
- #gateway: 176.16.16.1
+ - subnet: 10.45.0.0/16
+ gateway: 10.45.0.1
dnn: internet
- dev: ogstun4
- - subnet: 2001:780:44:2000:0:0:0:0/56
- #gateway: 2001:780:44:2000:0:0:0:1/56
- dnn: inet6
- dev: ogstun6
- - subnet: 176.16.32.0/20
- #gateway: 176.16.32.1
- dnn: inet46
- dev: ogstun4
- - subnet: 2001:780:44:2100:0:0:0:0/56
- #gateway: 2001:780:44:2100:0:0:0:1/56
- dnn: inet46
+ dev: ogstun46
+ - subnet: cafe::/64
+ gateway: cafe::1
+ dnn: internet
dev: ogstun46
metrics:
server:
diff --git a/5gc/osmo-uecups-daemon.cfg b/5gc/osmo-uecups-daemon.cfg
new file mode 100644
index 0000000..5a1eafc
--- /dev/null
+++ b/5gc/osmo-uecups-daemon.cfg
@@ -0,0 +1,17 @@
+log gsmtap 127.0.0.202
+ logging level set-all debug
+ logging filter all 1
+log stderr
+ logging filter all 1
+ logging print extended-timestamp 1
+ logging print file basename last
+ logging print category-hex 0
+ logging print category 1
+ logging print level 1
+ logging timestamp 1
+ logging color 1
+ logging level set-all info
+line vty
+ bind 127.0.0.20
+uecups
+ local-ip 127.0.0.20
diff --git a/5gc/regen_makefile.sh b/5gc/regen_makefile.sh
index 5634e21..e3ff277 100755
--- a/5gc/regen_makefile.sh
+++ b/5gc/regen_makefile.sh
@@ -6,6 +6,7 @@
*.asn
*.c
*.ttcn
+ *.ttcnpp
IPL4asp_PT.cc
IPL4asp_discovery.cc
Native_FunctionDefs.cc
@@ -18,6 +19,13 @@
TCCConversion.cc
TCCEncoding.cc
TCCInterface.cc
+ GTPU_EncDec.cc
+ GTPv1U_CodecPort_CtrlFunctDef.cc
+ UECUPS_CodecPort_CtrlFunctDef.cc
+"
+
+CPPFLAGS_TTCN3="
+ -DGTP1U_EMULATION_HAVE_UECUPS
"
. ../_buildsystem/regen_makefile.inc.sh
diff --git a/5gc/testenv.cfg b/5gc/testenv.cfg
index 498c886..d70c135 100644
--- a/5gc/testenv.cfg
+++ b/5gc/testenv.cfg
@@ -2,6 +2,9 @@
titan_min=11.1.0
program=C5G_Tests
config=C5G_Tests.cfg
+copy=testsuite_prepare.sh
+prepare=./testsuite_prepare.sh
+clean=testenv.sh
[db]
prepare=mkdir db
@@ -53,8 +56,7 @@
program=open5gs-upfd -c open5gs-upf.yaml
make=open5gs
package=open5gs-upf
-copy=open5gs/open5gs-upf.yaml open5gs/testenv.sh
-clean=./testenv.sh
+copy=open5gs/open5gs-upf.yaml
[ausf]
program=open5gs-ausfd -c open5gs-ausf.yaml
@@ -86,3 +88,12 @@
make=open5gs
package=open5gs-amf
copy=open5gs/open5gs-amf.yaml
+
+[uecups-daemon]
+# Programs started by osmo-uecups-daemo log to this dir
+prepare=mkdir run_prog
+# Must run as root for writing to /var/run/netns/
+program=sudo $(which osmo-uecups-daemon)
+make=osmo-uecups
+package=osmo-uecups
+copy=osmo-uecups-daemon.cfg
diff --git a/5gc/open5gs/testenv.sh b/5gc/testenv.sh
similarity index 71%
rename from 5gc/open5gs/testenv.sh
rename to 5gc/testenv.sh
index 718dee0..25e1b71 100755
--- a/5gc/open5gs/testenv.sh
+++ b/5gc/testenv.sh
@@ -32,10 +32,8 @@
add_tun "ogstun6"
add_tun "ogstun46"
- add_addr "ogstun4" "176.16.16.1/20"
- add_addr "ogstun6" "2001:780:44:2000:0:0:0:1/56"
- add_addr "ogstun46" "176.16.32.1/20"
- add_addr "ogstun46" "2001:780:44:2100:0:0:0:1/56"
+ add_addr "ogstun46" "10.45.0.1/16"
+ add_addr "ogstun46" "cafe::1/64"
sudo ip link set ogstun4 up
sudo ip link set ogstun6 up
@@ -59,11 +57,6 @@
check_usage
-# Add a bridge reachable through the GTP tunnel that can answer ICMP
-# pings (for e.g. TC_pdp4_act_deact_gtpu_access). The bridge is also used to
-# connect the SUT when it runs in QEMU.
-EXTRA_IPS="172.18.3.201 fd02:db8:3::201" add_remove_testenv0_bridge.sh
-
case "$TESTENV_CLEAN_REASON" in
prepare)
setcap_open5gs_upfd
diff --git a/5gc/testsuite_prepare.sh b/5gc/testsuite_prepare.sh
new file mode 100755
index 0000000..052df42
--- /dev/null
+++ b/5gc/testsuite_prepare.sh
@@ -0,0 +1,9 @@
+#!/bin/sh -ex
+
+adjust_ttcn3_config() {
+ local as_user="${USER:-root}"
+ sed -i "s/^C5G_Tests.mp_run_prog_as_user := .*/C5G_Tests.mp_run_prog_as_user :=
\"$as_user\"/" \
+ C5G_Tests.cfg
+}
+
+adjust_ttcn3_config
diff --git a/deps/Makefile b/deps/Makefile
index b0b18b3..1b68262 100644
--- a/deps/Makefile
+++ b/deps/Makefile
@@ -124,7 +124,7 @@
titan.TestPorts.UDPasp_commit= 54176e95850654e5e8b0ffa2f1b5f35c412b949c
titan.TestPorts.UNIX_DOMAIN_SOCKETasp_commit= R.2.A-13-gd34ab71
titan.TestPorts.USB_commit= a9470fdc99c82fbf988f4508c3161118c9106e28
-osmo-uecups_commit= 0eb4f08a31fd1d7aac6ffe9c6a60503f17c01787
+osmo-uecups_commit= fdff5ae0b7addf07c368adbe31610d4e57dac273
all: $(foreach dir,$(ALL_REPOS),$(dir)/update)
clean: $(foreach dir,$(ALL_REPOS),$(dir)/clean)
--
To view, visit
https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/40764?usp=email
To unsubscribe, or for help writing mail filters, visit
https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: newchange
Gerrit-Project: osmo-ttcn3-hacks
Gerrit-Branch: master
Gerrit-Change-Id: I66737a94eedcf4184aa59bbbd7cc700d1e9d1521
Gerrit-Change-Number: 40764
Gerrit-PatchSet: 1
Gerrit-Owner: pespin <pespin(a)sysmocom.de>