[PATCH] osmocom-bb[fixeria/trx]: trxcon/scheduler: introduce a new CBTX lchan flag

2018-03-10 Thread Vadim Yanitskiy

Review at  https://gerrit.osmocom.org/7205

trxcon/scheduler: introduce a new CBTX lchan flag

This new flag is intended to indicate that continuous burst
transmission is assumed on particular logical channel. In other
words, if a logical channel has this flag, but there is nothing
to transmit in a TX buffer, then either a dummy LAPDm frame or
a silence frame shall be sent.

Change-Id: I25fcf9eeb787ffe5378d92532439e67d7d42fa65
---
M src/host/trxcon/sched_lchan_desc.c
M src/host/trxcon/sched_trx.h
2 files changed, 32 insertions(+), 30 deletions(-)


  git pull ssh://gerrit.osmocom.org:29418/osmocom-bb refs/changes/05/7205/1

diff --git a/src/host/trxcon/sched_lchan_desc.c 
b/src/host/trxcon/sched_lchan_desc.c
index e0617a5..e94a208 100644
--- a/src/host/trxcon/sched_lchan_desc.c
+++ b/src/host/trxcon/sched_lchan_desc.c
@@ -109,181 +109,181 @@
{
TRXC_TCHF,  "TCH/F",
0x08,   LID_DEDIC,
-   8 * GSM_BURST_PL_LEN,   0x00,
+   8 * GSM_BURST_PL_LEN,   TRX_CH_FLAG_CBTX,
rx_tchf_fn, tx_tchf_fn,
},
{
TRXC_TCHH_0,"TCH/H(0)",
0x10,   LID_DEDIC,
-   6 * GSM_BURST_PL_LEN,   0x00,
+   6 * GSM_BURST_PL_LEN,   TRX_CH_FLAG_CBTX,
rx_tchh_fn, tx_tchh_fn,
},
{
TRXC_TCHH_1,"TCH/H(1)",
0x18,   LID_DEDIC,
-   6 * GSM_BURST_PL_LEN,   0x00,
+   6 * GSM_BURST_PL_LEN,   TRX_CH_FLAG_CBTX,
rx_tchh_fn, tx_tchh_fn,
},
{
TRXC_SDCCH4_0,  "SDCCH/4(0)",
0x20,   LID_DEDIC,
-   4 * GSM_BURST_PL_LEN,   0x00,
+   4 * GSM_BURST_PL_LEN,   TRX_CH_FLAG_CBTX,
rx_data_fn, tx_data_fn,
},
{
TRXC_SDCCH4_1,  "SDCCH/4(1)",
0x28,   LID_DEDIC,
-   4 * GSM_BURST_PL_LEN,   0x00,
+   4 * GSM_BURST_PL_LEN,   TRX_CH_FLAG_CBTX,
rx_data_fn, tx_data_fn,
},
{
TRXC_SDCCH4_2,  "SDCCH/4(2)",
0x30,   LID_DEDIC,
-   4 * GSM_BURST_PL_LEN,   0x00,
+   4 * GSM_BURST_PL_LEN,   TRX_CH_FLAG_CBTX,
rx_data_fn, tx_data_fn,
},
{
TRXC_SDCCH4_3,  "SDCCH/4(3)",
0x38,   LID_DEDIC,
-   4 * GSM_BURST_PL_LEN,   0x00,
+   4 * GSM_BURST_PL_LEN,   TRX_CH_FLAG_CBTX,
rx_data_fn, tx_data_fn,
},
{
TRXC_SDCCH8_0,  "SDCCH/8(0)",
0x40,   LID_DEDIC,
-   4 * GSM_BURST_PL_LEN,   0x00,
+   4 * GSM_BURST_PL_LEN,   TRX_CH_FLAG_CBTX,
rx_data_fn, tx_data_fn,
},
{
TRXC_SDCCH8_1,  "SDCCH/8(1)",
0x48,   LID_DEDIC,
-   4 * GSM_BURST_PL_LEN,   0x00,
+   4 * GSM_BURST_PL_LEN,   TRX_CH_FLAG_CBTX,
rx_data_fn, tx_data_fn,
},
{
TRXC_SDCCH8_2,  "SDCCH/8(2)",
0x50,   LID_DEDIC,
-   4 * GSM_BURST_PL_LEN,   0x00,
+   4 * GSM_BURST_PL_LEN,   TRX_CH_FLAG_CBTX,
rx_data_fn, tx_data_fn,
},
{
TRXC_SDCCH8_3,  "SDCCH/8(3)",
0x58,   LID_DEDIC,
-   4 * GSM_BURST_PL_LEN,   0x00,
+   4 * GSM_BURST_PL_LEN,   TRX_CH_FLAG_CBTX,
rx_data_fn, tx_data_fn,
},
{
TRXC_SDCCH8_4,  "SDCCH/8(4)",
0x60,   LID_DEDIC,
-   4 * GSM_BURST_PL_LEN,   0x00,
+   4 * GSM_BURST_PL_LEN,   TRX_CH_FLAG_CBTX,
rx_data_fn, tx_data_fn,
},
{
TRXC_SDCCH8_5,  "SDCCH/8(5)",
0x68,   LID_DEDIC,
-   4 * GSM_BURST_PL_LEN,   0x00,
+   4 * GSM_BURST_PL_LEN,   TRX_CH_FLAG_CBTX,
rx_data_fn, tx_data_fn,
},
{
TRXC_SDCCH8_6,  "SDCCH/8(6)",
0x70,   LID_DEDIC,
-   4 * GSM_BURST_PL_LEN,   0x00,
+   4 * GSM_BURST_PL_LEN,   TRX_CH_FLAG_CBTX,
rx_data_fn, tx_data_fn,
},
{
TRXC_SDCCH8_7,  "SDCCH/8(7)",
0x78,   LID_DEDIC,
-   4 * GSM_BURST_PL_LEN,   0x00,
+   4 * GSM_BURST_PL_LEN,   

[PATCH] osmocom-bb[fixeria/trx]: trxcon/sched_trx.c: fix: omit inactive logical channels

2018-03-10 Thread Vadim Yanitskiy

Review at  https://gerrit.osmocom.org/7203

trxcon/sched_trx.c: fix: omit inactive logical channels

The sched_frame_clck_cb() is responsible for UL burst transmission.
Iterating over each timeslot, it chooses a proper lchan handler
according to a current frame number and a multiframe layout in use,
takes a L2 UL frame from a TX buffer, and finally calls the chosen
handler in order to to encode and transmit a taken frame.

A handler should be called only for activated logical channels...
but for some long time, there was a bug, so each lchan was
processed, including inactive ones. It's time to fix this.

Change-Id: I33e3ecc14be3ae64dfd02789c7f0970c945582c9
---
M src/host/trxcon/sched_trx.c
1 file changed, 4 insertions(+), 0 deletions(-)


  git pull ssh://gerrit.osmocom.org:29418/osmocom-bb refs/changes/03/7203/1

diff --git a/src/host/trxcon/sched_trx.c b/src/host/trxcon/sched_trx.c
index 1197f2c..4ee6e61 100644
--- a/src/host/trxcon/sched_trx.c
+++ b/src/host/trxcon/sched_trx.c
@@ -86,6 +86,10 @@
if (lchan == NULL)
continue;
 
+   /* Omit inactive lchans */
+   if (!lchans->active)
+   continue;
+
/**
 * If we aren't processing any primitive yet,
 * attempt to obtain a new one from queue

-- 
To view, visit https://gerrit.osmocom.org/7203
To unsubscribe, visit https://gerrit.osmocom.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I33e3ecc14be3ae64dfd02789c7f0970c945582c9
Gerrit-PatchSet: 1
Gerrit-Project: osmocom-bb
Gerrit-Branch: fixeria/trx
Gerrit-Owner: Vadim Yanitskiy 


[PATCH] osmocom-bb[fixeria/trx]: trxcon/sched_trx.c: fix: properly deallocate lchans

2018-03-10 Thread Vadim Yanitskiy

Review at  https://gerrit.osmocom.org/7202

trxcon/sched_trx.c: fix: properly deallocate lchans

The llist_for_each_entry_safe() should be used instead of the
llist_for_each_entry(), because it's safe against removal
of llist entry.

Found using Valgrind's memcheck tool.

Change-Id: I65234971ec152df038c5388da537a503060c215b
---
M src/host/trxcon/sched_trx.c
1 file changed, 4 insertions(+), 2 deletions(-)


  git pull ssh://gerrit.osmocom.org:29418/osmocom-bb refs/changes/02/7202/1

diff --git a/src/host/trxcon/sched_trx.c b/src/host/trxcon/sched_trx.c
index 9ae5a8f..1197f2c 100644
--- a/src/host/trxcon/sched_trx.c
+++ b/src/host/trxcon/sched_trx.c
@@ -185,7 +185,7 @@
 
 void sched_trx_del_ts(struct trx_instance *trx, int tn)
 {
-   struct trx_lchan_state *lchan;
+   struct trx_lchan_state *lchan, *lchan_next;
struct trx_ts *ts;
 
/* Find ts in list */
@@ -199,8 +199,10 @@
sched_trx_deactivate_all_lchans(ts);
 
/* Free channel states */
-   llist_for_each_entry(lchan, >lchans, list)
+   llist_for_each_entry_safe(lchan, lchan_next, >lchans, list) {
+   llist_del(>list);
talloc_free(lchan);
+   }
 
/* Flush queue primitives for TX */
sched_prim_flush_queue(>tx_prims);

-- 
To view, visit https://gerrit.osmocom.org/7202
To unsubscribe, visit https://gerrit.osmocom.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I65234971ec152df038c5388da537a503060c215b
Gerrit-PatchSet: 1
Gerrit-Project: osmocom-bb
Gerrit-Branch: fixeria/trx
Gerrit-Owner: Vadim Yanitskiy 


[PATCH] osmocom-bb[fixeria/trx]: trxcon/sched_trx.h: clarify lchan flags meaning

2018-03-10 Thread Vadim Yanitskiy

Review at  https://gerrit.osmocom.org/7204

trxcon/sched_trx.h: clarify lchan flags meaning

Change-Id: I51b663dd16e46a4523488c3d3000922a7c3640d1
---
M src/host/trxcon/sched_trx.h
1 file changed, 3 insertions(+), 1 deletion(-)


  git pull ssh://gerrit.osmocom.org:29418/osmocom-bb refs/changes/04/7204/1

diff --git a/src/host/trxcon/sched_trx.h b/src/host/trxcon/sched_trx.h
index 856566c..78f458d 100644
--- a/src/host/trxcon/sched_trx.h
+++ b/src/host/trxcon/sched_trx.h
@@ -17,11 +17,13 @@
 #define GPRS_BURST_LEN GSM_BURST_LEN
 #define EDGE_BURST_LEN 444
 
+/* Is a channel related to PDCH (GPRS) */
 #define TRX_CH_FLAG_PDCH   (1 << 0)
+/* Should a channel be activated automatically */
 #define TRX_CH_FLAG_AUTO   (1 << 1)
-#define TRX_TS_COUNT   8
 
 #define MAX_A5_KEY_LEN (128 / 8)
+#define TRX_TS_COUNT   8
 
 /* Forward declaration to avoid mutual include */
 struct trx_lchan_state;

-- 
To view, visit https://gerrit.osmocom.org/7204
To unsubscribe, visit https://gerrit.osmocom.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I51b663dd16e46a4523488c3d3000922a7c3640d1
Gerrit-PatchSet: 1
Gerrit-Project: osmocom-bb
Gerrit-Branch: fixeria/trx
Gerrit-Owner: Vadim Yanitskiy 


[PATCH] osmocom-bb[fixeria/trx]: trxcon/configure.ac: add --enable-sanitize option

2018-03-10 Thread Vadim Yanitskiy

Review at  https://gerrit.osmocom.org/7201

trxcon/configure.ac: add --enable-sanitize option

Change-Id: I099de726f9d67213c56d996039b4207f80a727c6
---
M src/host/trxcon/configure.ac
1 file changed, 11 insertions(+), 0 deletions(-)


  git pull ssh://gerrit.osmocom.org:29418/osmocom-bb refs/changes/01/7201/1

diff --git a/src/host/trxcon/configure.ac b/src/host/trxcon/configure.ac
index a94859b..1f24260 100644
--- a/src/host/trxcon/configure.ac
+++ b/src/host/trxcon/configure.ac
@@ -18,6 +18,17 @@
 dnl checks for header files
 AC_HEADER_STDC
 
+AC_ARG_ENABLE(sanitize,
+   [AS_HELP_STRING(
+   [--enable-sanitize],
+   [Compile with address sanitizer enabled],
+   )], [sanitize=$enableval], [sanitize="no"])
+if test x"$sanitize" = x"yes"
+then
+   CFLAGS="$CFLAGS -fsanitize=address -fsanitize=undefined"
+   CPPFLAGS="$CPPFLAGS -fsanitize=address -fsanitize=undefined"
+fi
+
 dnl Checks for typedefs, structures and compiler characteristics
 
 AC_OUTPUT(

-- 
To view, visit https://gerrit.osmocom.org/7201
To unsubscribe, visit https://gerrit.osmocom.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I099de726f9d67213c56d996039b4207f80a727c6
Gerrit-PatchSet: 1
Gerrit-Project: osmocom-bb
Gerrit-Branch: fixeria/trx
Gerrit-Owner: Vadim Yanitskiy 


osmo-bsc[master]: pcu_if: implement support for 3-digit MNC

2018-03-10 Thread Neels Hofmeyr

Patch Set 8:

I have verified the pcuif_proto.h changes to work when osmo-bts and osmo-pcu 
communicate (on a sysmobts), and this pcuif_proto.h patch matches the bts and 
pcu ones exactly.

-- 
To view, visit https://gerrit.osmocom.org/6669
To unsubscribe, visit https://gerrit.osmocom.org/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: I78f30aef7aa224b2e9db54c3a844d8f520b3aee0
Gerrit-PatchSet: 8
Gerrit-Project: osmo-bsc
Gerrit-Branch: master
Gerrit-Owner: Neels Hofmeyr 
Gerrit-Reviewer: Harald Welte 
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: Neels Hofmeyr 
Gerrit-HasComments: No


osmo-pcu[master]: implement support for 3-digit MNC with leading zeros

2018-03-10 Thread Neels Hofmeyr

Patch Set 3: -Code-Review Verified+1

verified to work on a sysmoBST, accompanied by osmo-bts and osmo-sgsn patches.

NOTE: In order to get a reliable test environment, I also applied the reverts 
as listed in https://osmocom.org/issues/3013#note-2

-- 
To view, visit https://gerrit.osmocom.org/
To unsubscribe, visit https://gerrit.osmocom.org/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: I787fed84a7b613158a5618dd5cffafe4e4927234
Gerrit-PatchSet: 3
Gerrit-Project: osmo-pcu
Gerrit-Branch: master
Gerrit-Owner: Neels Hofmeyr 
Gerrit-Reviewer: Harald Welte 
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: Neels Hofmeyr 
Gerrit-HasComments: No


osmo-bts[master]: implement support for 3-digit MNC with leading zeros

2018-03-10 Thread Neels Hofmeyr

Patch Set 4: -Code-Review Verified+1

verified to work on sysmoBTS, accompanied by the osmo-pcu patch

-- 
To view, visit https://gerrit.osmocom.org/6665
To unsubscribe, visit https://gerrit.osmocom.org/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: I49cd762c3c9d7ee6a82451bdf3ffa2a060767947
Gerrit-PatchSet: 4
Gerrit-Project: osmo-bts
Gerrit-Branch: master
Gerrit-Owner: Neels Hofmeyr 
Gerrit-Reviewer: Harald Welte 
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: Neels Hofmeyr 
Gerrit-HasComments: No


[PATCH] osmo-bsc[master]: pcu_if: implement support for 3-digit MNC

2018-03-10 Thread Neels Hofmeyr
Hello Harald Welte, Jenkins Builder,

I'd like you to reexamine a change.  Please visit

https://gerrit.osmocom.org/6669

to look at the new patch set (#8).

pcu_if: implement support for 3-digit MNC

Add the mnc_3_digits member to the info_ind.

Instead of changing to e.g. osmo_plmn_id, add the flag separately, and instead
of bool use a uint8_t, to not raise any struct packing issues and clarify the
flag's size beyond any doubt.

Bump the PCU interface version to 9.
This is one part of the three identical pcuif_proto.h patches:
- I49cd762c3c9d7ee6a82451bdf3ffa2a060767947 (osmo-bts)
- I787fed84a7b613158a5618dd5cffafe4e4927234 (osmo-pcu)
- I78f30aef7aa224b2e9db54c3a844d8f520b3aee0 (osmo-bsc)

Depends: Id2240f7f518494c9df6c8bda52c0d5092f90f221 (libosmocore)
Change-Id: I78f30aef7aa224b2e9db54c3a844d8f520b3aee0
---
M include/osmocom/bsc/pcuif_proto.h
M src/libbsc/pcu_sock.c
2 files changed, 5 insertions(+), 3 deletions(-)


  git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/69/6669/8

diff --git a/include/osmocom/bsc/pcuif_proto.h 
b/include/osmocom/bsc/pcuif_proto.h
index ced783e..b9f61b6 100644
--- a/include/osmocom/bsc/pcuif_proto.h
+++ b/include/osmocom/bsc/pcuif_proto.h
@@ -3,7 +3,7 @@
 
 #include 
 
-#define PCU_IF_VERSION 0x08
+#define PCU_IF_VERSION 0x09
 #define TXT_MAX_LEN128
 
 /* msg_type */
@@ -120,7 +120,9 @@
struct gsm_pcu_if_info_trx trx[8];  /* TRX infos per BTS */
uint8_t bsic;
/* RAI */
-   uint16_tmcc, mnc, lac, rac;
+   uint16_tmcc, mnc;
+   uint8_t mnc_3_digits;
+   uint16_tlac, rac;
/* NSE */
uint16_tnsei;
uint8_t nse_timer[7];
diff --git a/src/libbsc/pcu_sock.c b/src/libbsc/pcu_sock.c
index 85af598..caec40d 100644
--- a/src/libbsc/pcu_sock.c
+++ b/src/libbsc/pcu_sock.c
@@ -154,7 +154,7 @@
/* RAI */
info_ind->mcc = bts->network->plmn.mcc;
info_ind->mnc = bts->network->plmn.mnc;
-   /* TODO: plmn.mnc_3_digits */
+   info_ind->mnc_3_digits = bts->network->plmn.mnc_3_digits;
info_ind->lac = bts->location_area_code;
info_ind->rac = bts->gprs.rac;
 

-- 
To view, visit https://gerrit.osmocom.org/6669
To unsubscribe, visit https://gerrit.osmocom.org/settings

Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I78f30aef7aa224b2e9db54c3a844d8f520b3aee0
Gerrit-PatchSet: 8
Gerrit-Project: osmo-bsc
Gerrit-Branch: master
Gerrit-Owner: Neels Hofmeyr 
Gerrit-Reviewer: Harald Welte 
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: Neels Hofmeyr 


[PATCH] osmo-bts[master]: implement support for 3-digit MNC with leading zeros

2018-03-10 Thread Neels Hofmeyr
Hello Harald Welte, Jenkins Builder,

I'd like you to reexamine a change.  Please visit

https://gerrit.osmocom.org/6665

to look at the new patch set (#4).

implement support for 3-digit MNC with leading zeros

Record the mnc_3_digits flag from SI and pass on via the PCU interface.

Instead of changing to e.g. osmo_plmn_id, add the flag separately, and instead
of bool use a uint8_t, to not raise any struct packing issues and clarify the
flag's size beyond any doubt.

Bump the PCU interface version to 9.
This is one part of the three identical pcuif_proto.h patches:
- I49cd762c3c9d7ee6a82451bdf3ffa2a060767947 (osmo-bts)
- I787fed84a7b613158a5618dd5cffafe4e4927234 (osmo-pcu)
- I78f30aef7aa224b2e9db54c3a844d8f520b3aee0 (osmo-bsc)

Depends: Id2240f7f518494c9df6c8bda52c0d5092f90f221 (libosmocore)
Change-Id: I49cd762c3c9d7ee6a82451bdf3ffa2a060767947
---
M include/osmo-bts/gsm_data.h
M include/osmo-bts/pcuif_proto.h
M src/common/pcu_sock.c
3 files changed, 11 insertions(+), 13 deletions(-)


  git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/65/6665/4

diff --git a/include/osmo-bts/gsm_data.h b/include/osmo-bts/gsm_data.h
index 10c9d04..1652104 100644
--- a/include/osmo-bts/gsm_data.h
+++ b/include/osmo-bts/gsm_data.h
@@ -4,6 +4,7 @@
 #include 
 #include 
 #include 
+#include 
 
 #include 
 #include 
@@ -29,7 +30,7 @@
 struct gsm_network {
struct llist_head bts_list;
unsigned int num_bts;
-   uint16_t mcc, mnc;
+   struct osmo_plmn_id plmn;
struct pcu_sock_state *pcu_state;
 };
 
diff --git a/include/osmo-bts/pcuif_proto.h b/include/osmo-bts/pcuif_proto.h
index 00b7bd5..b06077c 100644
--- a/include/osmo-bts/pcuif_proto.h
+++ b/include/osmo-bts/pcuif_proto.h
@@ -5,7 +5,7 @@
 
 #define PCU_SOCK_DEFAULT   "/tmp/pcu_bts"
 
-#define PCU_IF_VERSION 0x08
+#define PCU_IF_VERSION 0x09
 #define TXT_MAX_LEN128
 
 /* msg_type */
@@ -122,7 +122,9 @@
struct gsm_pcu_if_info_trx trx[8];  /* TRX infos per BTS */
uint8_t bsic;
/* RAI */
-   uint16_tmcc, mnc, lac, rac;
+   uint16_tmcc, mnc;
+   uint8_t mnc_3_digits;
+   uint16_tlac, rac;
/* NSE */
uint16_tnsei;
uint8_t nse_timer[7];
diff --git a/src/common/pcu_sock.c b/src/common/pcu_sock.c
index 0f4c053..949a5fa 100644
--- a/src/common/pcu_sock.c
+++ b/src/common/pcu_sock.c
@@ -34,6 +34,7 @@
 #include 
 #include 
 #include 
+#include 
 #include 
 #include 
 #include 
@@ -143,8 +144,9 @@
info_ind->flags |= PCU_IF_FLAG_SYSMO;
 
/* RAI */
-   info_ind->mcc = net->mcc;
-   info_ind->mnc = net->mnc;
+   info_ind->mcc = net->plmn.mcc;
+   info_ind->mnc = net->plmn.mnc;
+   info_ind->mnc_3_digits = net->plmn.mnc_3_digits;
info_ind->lac = bts->location_area_code;
info_ind->rac = bts->gprs.rac;
 
@@ -254,14 +256,7 @@
break;
si3 = (struct gsm48_system_information_type_3 *)
bts->si_buf[SYSINFO_TYPE_3];
-   net->mcc = ((si3->lai.digits[0] & 0x0f) << 8)
-   | (si3->lai.digits[0] & 0xf0)
-   | (si3->lai.digits[1] & 0x0f);
-   net->mnc = ((si3->lai.digits[2] & 0x0f) << 8)
-   | (si3->lai.digits[2] & 0xf0)
-   | ((si3->lai.digits[1] & 0xf0) >> 4);
-   if ((net->mnc & 0x00f) == 0x00f)
-   net->mnc >>= 4;
+   osmo_plmn_from_bcd(si3->lai.digits, >plmn);
bts->location_area_code = ntohs(si3->lai.lac);
bts->cell_identity = si3->cell_identity;
avail_lai = 1;

-- 
To view, visit https://gerrit.osmocom.org/6665
To unsubscribe, visit https://gerrit.osmocom.org/settings

Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I49cd762c3c9d7ee6a82451bdf3ffa2a060767947
Gerrit-PatchSet: 4
Gerrit-Project: osmo-bts
Gerrit-Branch: master
Gerrit-Owner: Neels Hofmeyr 
Gerrit-Reviewer: Harald Welte 
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: Neels Hofmeyr 


[ABANDON] osmo-ttcn3-hacks[master]: .gitignore: aggressively ignore everything

2018-03-10 Thread Neels Hofmeyr
Neels Hofmeyr has abandoned this change.

Change subject: .gitignore: aggressively ignore everything
..


Abandoned

the other topic:gitignore patches actually work well for me now, no idea why I 
couldn't get symlinks ignored before.

-- 
To view, visit https://gerrit.osmocom.org/7045
To unsubscribe, visit https://gerrit.osmocom.org/settings

Gerrit-MessageType: abandon
Gerrit-Change-Id: If18921f245f2026df0a9b44b5f503fed08bb614a
Gerrit-PatchSet: 1
Gerrit-Project: osmo-ttcn3-hacks
Gerrit-Branch: master
Gerrit-Owner: Neels Hofmeyr 
Gerrit-Reviewer: Harald Welte 
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: Neels Hofmeyr 


[PATCH] osmo-ttcn3-hacks[master]: gitignore final 'make' generated files

2018-03-10 Thread Neels Hofmeyr

Review at  https://gerrit.osmocom.org/7200

gitignore final 'make' generated files

Change-Id: If38aea67a45b4e5fe22d5fac301f06239e2265a2
---
M .gitignore
1 file changed, 14 insertions(+), 0 deletions(-)


  git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks 
refs/changes/00/7200/1

diff --git a/.gitignore b/.gitignore
index 72e486b..27a51ae 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1512,3 +1512,17 @@
 sysinfo/TELNETasp_PortType.hh
 sysinfo/Test.cc
 sysinfo/Test.hh
+
+# 'make' generated files
+bsc-nat/IPA_Test
+bsc/BSC_Tests
+bts/BTS_Tests
+ggsn_tests/GGSN_Tests
+gprs_gb/Test
+hlr/HLR_Tests
+lapdm/L1CTL_Test
+mgw/MGCP_Test
+msc/MSC_Tests
+selftest/Selftest
+sgsn/SGSN_Tests
+sysinfo/Test

-- 
To view, visit https://gerrit.osmocom.org/7200
To unsubscribe, visit https://gerrit.osmocom.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: If38aea67a45b4e5fe22d5fac301f06239e2265a2
Gerrit-PatchSet: 1
Gerrit-Project: osmo-ttcn3-hacks
Gerrit-Branch: master
Gerrit-Owner: Neels Hofmeyr 


[PATCH] osmo-ttcn3-hacks[master]: gitignore 'make compile' generated files

2018-03-10 Thread Neels Hofmeyr

Review at  https://gerrit.osmocom.org/7199

gitignore 'make compile' generated files

Change-Id: I6e4b9b4526d6e0af0f5325e2df97b0ec7c93d9ae
---
M .gitignore
1 file changed, 897 insertions(+), 0 deletions(-)


  git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks 
refs/changes/99/7199/1

diff --git a/.gitignore b/.gitignore
index a60e273..72e486b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -615,3 +615,900 @@
 sysinfo/TELNETasp_PT.cc
 sysinfo/TELNETasp_PT.hh
 sysinfo/TELNETasp_PortType.ttcn
+
+# 'make compile' generated files
+bsc-nat/BSC_MS_ConnectionHandler.cc
+bsc-nat/BSC_MS_ConnectionHandler.hh
+bsc-nat/BSC_MS_Simulation.cc
+bsc-nat/BSC_MS_Simulation.hh
+bsc-nat/BSSAP_CodecPort.cc
+bsc-nat/BSSAP_CodecPort.hh
+bsc-nat/BSSAP_Types.cc
+bsc-nat/BSSAP_Types.hh
+bsc-nat/BSSMAP_Emulation.cc
+bsc-nat/BSSMAP_Emulation.hh
+bsc-nat/BSSMAP_Templates.cc
+bsc-nat/BSSMAP_Templates.hh
+bsc-nat/GSM_Types.cc
+bsc-nat/GSM_Types.hh
+bsc-nat/General_Types.cc
+bsc-nat/General_Types.hh
+bsc-nat/IPA_CodecPort.cc
+bsc-nat/IPA_CodecPort.hh
+bsc-nat/IPA_CodecPort_CtrlFunct.cc
+bsc-nat/IPA_CodecPort_CtrlFunct.hh
+bsc-nat/IPA_Emulation.cc
+bsc-nat/IPA_Emulation.hh
+bsc-nat/IPA_Emulation.ttcn
+bsc-nat/IPA_Test.cc
+bsc-nat/IPA_Test.hh
+bsc-nat/IPA_Types.cc
+bsc-nat/IPA_Types.hh
+bsc-nat/IPL4asp_Functions.cc
+bsc-nat/IPL4asp_Functions.hh
+bsc-nat/IPL4asp_PortType.cc
+bsc-nat/IPL4asp_PortType.hh
+bsc-nat/IPL4asp_Types.cc
+bsc-nat/IPL4asp_Types.hh
+bsc-nat/L3_Templates.cc
+bsc-nat/L3_Templates.hh
+bsc-nat/MGCP_Adapter.cc
+bsc-nat/MGCP_Adapter.hh
+bsc-nat/MGCP_CodecPort.cc
+bsc-nat/MGCP_CodecPort.hh
+bsc-nat/MGCP_CodecPort_CtrlFunct.cc
+bsc-nat/MGCP_CodecPort_CtrlFunct.hh
+bsc-nat/MGCP_Templates.cc
+bsc-nat/MGCP_Templates.hh
+bsc-nat/MGCP_Types.cc
+bsc-nat/MGCP_Types.hh
+bsc-nat/MSC_ConnectionHandler.cc
+bsc-nat/MSC_ConnectionHandler.hh
+bsc-nat/MSC_Simulation.cc
+bsc-nat/MSC_Simulation.hh
+bsc-nat/MTP3asp_PortType.cc
+bsc-nat/MTP3asp_PortType.hh
+bsc-nat/MTP3asp_Types.cc
+bsc-nat/MTP3asp_Types.hh
+bsc-nat/Makefile
+bsc-nat/MobileL3_CC_Types.cc
+bsc-nat/MobileL3_CC_Types.hh
+bsc-nat/MobileL3_CommonIE_Types.cc
+bsc-nat/MobileL3_CommonIE_Types.hh
+bsc-nat/MobileL3_GMM_SM_Types.cc
+bsc-nat/MobileL3_GMM_SM_Types.hh
+bsc-nat/MobileL3_MM_Types.cc
+bsc-nat/MobileL3_MM_Types.hh
+bsc-nat/MobileL3_RRM_Types.cc
+bsc-nat/MobileL3_RRM_Types.hh
+bsc-nat/MobileL3_SMS_Types.cc
+bsc-nat/MobileL3_SMS_Types.hh
+bsc-nat/MobileL3_SS_Types.cc
+bsc-nat/MobileL3_SS_Types.hh
+bsc-nat/MobileL3_Types.cc
+bsc-nat/MobileL3_Types.hh
+bsc-nat/Osmocom_CTRL_Functions.cc
+bsc-nat/Osmocom_CTRL_Functions.hh
+bsc-nat/Osmocom_CTRL_Types.cc
+bsc-nat/Osmocom_CTRL_Types.hh
+bsc-nat/Osmocom_Types.cc
+bsc-nat/Osmocom_Types.hh
+bsc-nat/RTP_Types.cc
+bsc-nat/RTP_Types.hh
+bsc-nat/SCCP_Emulation.cc
+bsc-nat/SCCP_Emulation.hh
+bsc-nat/SCCP_Mapping.cc
+bsc-nat/SCCP_Mapping.hh
+bsc-nat/SCCP_Types.cc
+bsc-nat/SCCP_Types.hh
+bsc-nat/SCCPasp_Types.cc
+bsc-nat/SCCPasp_Types.hh
+bsc-nat/SDP_Types.cc
+bsc-nat/SDP_Types.hh
+bsc-nat/Socket_API_Definitions.cc
+bsc-nat/Socket_API_Definitions.hh
+bsc-nat/TCCConversion_Functions.cc
+bsc-nat/TCCConversion_Functions.hh
+bsc-nat/TCCInterface_Functions.cc
+bsc-nat/TCCInterface_Functions.hh
+bsc/BSC_Tests.cc
+bsc/BSC_Tests.hh
+bsc/BSSAP_Adapter.cc
+bsc/BSSAP_Adapter.hh
+bsc/BSSAP_CodecPort.cc
+bsc/BSSAP_CodecPort.hh
+bsc/BSSAP_Types.cc
+bsc/BSSAP_Types.hh
+bsc/BSSMAP_Emulation.cc
+bsc/BSSMAP_Emulation.hh
+bsc/BSSMAP_Templates.cc
+bsc/BSSMAP_Templates.hh
+bsc/GSM_RR_Types.cc
+bsc/GSM_RR_Types.hh
+bsc/GSM_Types.cc
+bsc/GSM_Types.hh
+bsc/General_Types.cc
+bsc/General_Types.hh
+bsc/IPA_CodecPort.cc
+bsc/IPA_CodecPort.hh
+bsc/IPA_CodecPort_CtrlFunct.cc
+bsc/IPA_CodecPort_CtrlFunct.hh
+bsc/IPA_Emulation.cc
+bsc/IPA_Emulation.hh
+bsc/IPA_Emulation.ttcn
+bsc/IPA_Types.cc
+bsc/IPA_Types.hh
+bsc/IPL4asp_Functions.cc
+bsc/IPL4asp_Functions.hh
+bsc/IPL4asp_PortType.cc
+bsc/IPL4asp_PortType.hh
+bsc/IPL4asp_Types.cc
+bsc/IPL4asp_Types.hh
+bsc/IuUP_Emulation.cc
+bsc/IuUP_Emulation.hh
+bsc/IuUP_Types.cc
+bsc/IuUP_Types.hh
+bsc/L3_Templates.cc
+bsc/L3_Templates.hh
+bsc/M3UA_Emulation.cc
+bsc/M3UA_Emulation.hh
+bsc/M3UA_Types.cc
+bsc/M3UA_Types.hh
+bsc/MGCP_CodecPort.cc
+bsc/MGCP_CodecPort.hh
+bsc/MGCP_CodecPort_CtrlFunct.cc
+bsc/MGCP_CodecPort_CtrlFunct.hh
+bsc/MGCP_Emulation.cc
+bsc/MGCP_Emulation.hh
+bsc/MGCP_Templates.cc
+bsc/MGCP_Templates.hh
+bsc/MGCP_Types.cc
+bsc/MGCP_Types.hh
+bsc/MSC_ConnectionHandler.cc
+bsc/MSC_ConnectionHandler.hh
+bsc/MTP3asp_PortType.cc
+bsc/MTP3asp_PortType.hh
+bsc/MTP3asp_Types.cc
+bsc/MTP3asp_Types.hh
+bsc/Makefile
+bsc/MobileL3_CC_Types.cc
+bsc/MobileL3_CC_Types.hh
+bsc/MobileL3_CommonIE_Types.cc
+bsc/MobileL3_CommonIE_Types.hh
+bsc/MobileL3_GMM_SM_Types.cc
+bsc/MobileL3_GMM_SM_Types.hh
+bsc/MobileL3_MM_Types.cc
+bsc/MobileL3_MM_Types.hh
+bsc/MobileL3_RRM_Types.cc
+bsc/MobileL3_RRM_Types.hh
+bsc/MobileL3_SMS_Types.cc
+bsc/MobileL3_SMS_Types.hh
+bsc/MobileL3_SS_Types.cc
+bsc/MobileL3_SS_Types.hh
+bsc/MobileL3_Types.cc

[PATCH] osmo-ttcn3-hacks[master]: gitignore symlinks

2018-03-10 Thread Neels Hofmeyr

Review at  https://gerrit.osmocom.org/7198

gitignore symlinks

Change-Id: I5f9fe17c20e2dd72b654fb6d919e7ec1289b4f88
---
M .gitignore
1 file changed, 610 insertions(+), 0 deletions(-)


  git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks 
refs/changes/98/7198/1

diff --git a/.gitignore b/.gitignore
index d8c3ab3..a60e273 100644
--- a/.gitignore
+++ b/.gitignore
@@ -5,3 +5,613 @@
 *.log
 *.so
 compile
+
+# symlinks
+M3UA_CNL113537/src/src
+MTP3asp_CNL113337/src/src
+SCCP_CNL113341/src/src
+bsc-nat/BSSAP_CodecPort.ttcn
+bsc-nat/BSSAP_Types.ttcn
+bsc-nat/BSSMAP_Emulation.ttcn
+bsc-nat/BSSMAP_Templates.ttcn
+bsc-nat/GSM_Types.ttcn
+bsc-nat/General_Types.ttcn
+bsc-nat/IPA_CodecPort.ttcn
+bsc-nat/IPA_CodecPort_CtrlFunct.ttcn
+bsc-nat/IPA_CodecPort_CtrlFunctDef.cc
+bsc-nat/IPA_Emulation.ttcnpp
+bsc-nat/IPA_Types.ttcn
+bsc-nat/IPL4asp_Functions.ttcn
+bsc-nat/IPL4asp_PT.cc
+bsc-nat/IPL4asp_PT.hh
+bsc-nat/IPL4asp_PortType.ttcn
+bsc-nat/IPL4asp_Types.ttcn
+bsc-nat/IPL4asp_discovery.cc
+bsc-nat/IPL4asp_protocol_L234.hh
+bsc-nat/L3_Templates.ttcn
+bsc-nat/MGCP_CodecPort.ttcn
+bsc-nat/MGCP_CodecPort_CtrlFunct.ttcn
+bsc-nat/MGCP_CodecPort_CtrlFunctDef.cc
+bsc-nat/MGCP_Templates.ttcn
+bsc-nat/MGCP_Types.ttcn
+bsc-nat/MTP3asp_PortType.ttcn
+bsc-nat/MTP3asp_Types.ttcn
+bsc-nat/MobileL3_CC_Types.ttcn
+bsc-nat/MobileL3_CommonIE_Types.ttcn
+bsc-nat/MobileL3_GMM_SM_Types.ttcn
+bsc-nat/MobileL3_MM_Types.ttcn
+bsc-nat/MobileL3_RRM_Types.ttcn
+bsc-nat/MobileL3_SMS_Types.ttcn
+bsc-nat/MobileL3_SS_Types.ttcn
+bsc-nat/MobileL3_Types.ttcn
+bsc-nat/Osmocom_CTRL_Functions.ttcn
+bsc-nat/Osmocom_CTRL_Types.ttcn
+bsc-nat/Osmocom_Types.ttcn
+bsc-nat/RTP_EncDec.cc
+bsc-nat/RTP_Types.ttcn
+bsc-nat/SCCP_Emulation.ttcn
+bsc-nat/SCCP_EncDec.cc
+bsc-nat/SCCP_Mapping.ttcn
+bsc-nat/SCCP_Mapping.ttcnpp
+bsc-nat/SCCP_Types.ttcn
+bsc-nat/SCCPasp_Types.ttcn
+bsc-nat/SDP_EncDec.cc
+bsc-nat/SDP_Types.ttcn
+bsc-nat/SDP_parse_.tab.c
+bsc-nat/SDP_parse_.tab.h
+bsc-nat/SDP_parse_parser.h
+bsc-nat/SDP_parser.l
+bsc-nat/SDP_parser.y
+bsc-nat/Socket_API_Definitions.ttcn
+bsc-nat/TCCConversion.cc
+bsc-nat/TCCConversion_Functions.ttcn
+bsc-nat/TCCInterface.cc
+bsc-nat/TCCInterface_Functions.ttcn
+bsc-nat/TCCInterface_ip.h
+bsc-nat/lex.SDP_parse_.c
+bsc/BSSAP_Adapter.ttcn
+bsc/BSSAP_CodecPort.ttcn
+bsc/BSSAP_Types.ttcn
+bsc/BSSMAP_Emulation.ttcn
+bsc/BSSMAP_Templates.ttcn
+bsc/GSM_RR_Types.ttcn
+bsc/GSM_Types.ttcn
+bsc/General_Types.ttcn
+bsc/IPA_CodecPort.ttcn
+bsc/IPA_CodecPort_CtrlFunct.ttcn
+bsc/IPA_CodecPort_CtrlFunctDef.cc
+bsc/IPA_Emulation.ttcnpp
+bsc/IPA_Types.ttcn
+bsc/IPL4asp_Functions.ttcn
+bsc/IPL4asp_PT.cc
+bsc/IPL4asp_PT.hh
+bsc/IPL4asp_PortType.ttcn
+bsc/IPL4asp_Types.ttcn
+bsc/IPL4asp_discovery.cc
+bsc/IPL4asp_protocol_L234.hh
+bsc/IuUP_Emulation.ttcn
+bsc/IuUP_EncDec.cc
+bsc/IuUP_Types.ttcn
+bsc/L3_Templates.ttcn
+bsc/M3UA_Emulation.ttcn
+bsc/M3UA_Types.ttcn
+bsc/MGCP_CodecPort.ttcn
+bsc/MGCP_CodecPort_CtrlFunct.ttcn
+bsc/MGCP_CodecPort_CtrlFunctDef.cc
+bsc/MGCP_Emulation.ttcn
+bsc/MGCP_Templates.ttcn
+bsc/MGCP_Types.ttcn
+bsc/MTP3asp_PortType.ttcn
+bsc/MTP3asp_Types.ttcn
+bsc/MobileL3_CC_Types.ttcn
+bsc/MobileL3_CommonIE_Types.ttcn
+bsc/MobileL3_GMM_SM_Types.ttcn
+bsc/MobileL3_MM_Types.ttcn
+bsc/MobileL3_RRM_Types.ttcn
+bsc/MobileL3_SMS_Types.ttcn
+bsc/MobileL3_SS_Types.ttcn
+bsc/MobileL3_Types.ttcn
+bsc/Native_FunctionDefs.cc
+bsc/Native_Functions.ttcn
+bsc/Osmocom_CTRL_Adapter.ttcn
+bsc/Osmocom_CTRL_Functions.ttcn
+bsc/Osmocom_CTRL_Types.ttcn
+bsc/Osmocom_Types.ttcn
+bsc/Osmocom_VTY_Functions.ttcn
+bsc/RLCMAC_CSN1_Types.ttcn
+bsc/RSL_Emulation.ttcn
+bsc/RSL_Types.ttcn
+bsc/RTP_CodecPort.ttcn
+bsc/RTP_CodecPort_CtrlFunct.ttcn
+bsc/RTP_CodecPort_CtrlFunctDef.cc
+bsc/RTP_Emulation.ttcn
+bsc/RTP_EncDec.cc
+bsc/RTP_Types.ttcn
+bsc/SCCP_Emulation.ttcn
+bsc/SCCP_Mapping.ttcn
+bsc/SCCP_Mapping.ttcnpp
+bsc/SCCP_Types.ttcn
+bsc/SCCPasp_Types.ttcn
+bsc/SCTPasp_PT.cc
+bsc/SCTPasp_PT.hh
+bsc/SCTPasp_PortType.ttcn
+bsc/SCTPasp_Types.ttcn
+bsc/SDP_EncDec.cc
+bsc/SDP_Types.ttcn
+bsc/SDP_parse_.tab.c
+bsc/SDP_parse_.tab.h
+bsc/SDP_parse_parser.h
+bsc/SDP_parser.l
+bsc/SDP_parser.y
+bsc/Socket_API_Definitions.ttcn
+bsc/TCCConversion.cc
+bsc/TCCConversion_Functions.ttcn
+bsc/TCCInterface.cc
+bsc/TCCInterface_Functions.ttcn
+bsc/TCCInterface_ip.h
+bsc/TELNETasp_PT.cc
+bsc/TELNETasp_PT.hh
+bsc/TELNETasp_PortType.ttcn
+bsc/lex.SDP_parse_.c
+bts/GSM_RR_Types.ttcn
+bts/GSM_SystemInformation.ttcn
+bts/GSM_Types.ttcn
+bts/General_Types.ttcn
+bts/IPA_CodecPort.ttcn
+bts/IPA_CodecPort_CtrlFunct.ttcn
+bts/IPA_CodecPort_CtrlFunctDef.cc
+bts/IPA_Emulation.ttcnpp
+bts/IPA_Types.ttcn
+bts/IPL4asp_Functions.ttcn
+bts/IPL4asp_PT.cc
+bts/IPL4asp_PT.hh
+bts/IPL4asp_PortType.ttcn
+bts/IPL4asp_Types.ttcn
+bts/IPL4asp_discovery.cc
+bts/IPL4asp_protocol_L234.hh
+bts/L1CTL_PortType.ttcn
+bts/L1CTL_PortType_CtrlFunct.ttcn
+bts/L1CTL_PortType_CtrlFunctDef.cc
+bts/L1CTL_Types.ttcn
+bts/L3_Common.ttcn
+bts/L3_Templates.ttcn
+bts/LAPDm_RAW_PT.ttcn
+bts/LAPDm_Types.ttcn

osmo-ttcn3-hacks[master]: .gitignore: aggressively ignore everything

2018-03-10 Thread Neels Hofmeyr

Patch Set 1:

Right now I can't seem to reproduce the problem in the first place. If I 
basically pipe 'git status' to .gitignore, it ignores the files fine. That's 
with git versions 2.15.1 and 2.11.0. I wonder which setup made me conclude that 
I could not add the symlinks to .gitignore effectively?

-- 
To view, visit https://gerrit.osmocom.org/7045
To unsubscribe, visit https://gerrit.osmocom.org/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: If18921f245f2026df0a9b44b5f503fed08bb614a
Gerrit-PatchSet: 1
Gerrit-Project: osmo-ttcn3-hacks
Gerrit-Branch: master
Gerrit-Owner: Neels Hofmeyr 
Gerrit-Reviewer: Harald Welte 
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: Neels Hofmeyr 
Gerrit-HasComments: No


[PATCH] osmo-msc[master]: msc_vlr_tests: add test_a5_3_not_supported

2018-03-10 Thread Neels Hofmeyr
Hello Jenkins Builder,

I'd like you to reexamine a change.  Please visit

https://gerrit.osmocom.org/7058

to look at the new patch set (#3).

msc_vlr_tests: add test_a5_3_not_supported

See also change-id I72a1dbb30e0a39dbf4b81c7e378d5607b62e10d3 in
osmo-ttcn3-hacks.git, which adds a similar test to the MSC_Tests.ttcn suite.

Writing this test helped me fix the issue faster, why not keep it now that it's
there.

Related: OS#2947
Change-Id: Iba56556207cf6e79e6531b0e7dd3eaec28fb5eaa
---
M tests/msc_vlr/msc_vlr_test_gsm_ciph.c
M tests/msc_vlr/msc_vlr_test_gsm_ciph.err
2 files changed, 152 insertions(+), 0 deletions(-)


  git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/58/7058/3

diff --git a/tests/msc_vlr/msc_vlr_test_gsm_ciph.c 
b/tests/msc_vlr/msc_vlr_test_gsm_ciph.c
index 57284a3..d8ea6ba 100644
--- a/tests/msc_vlr/msc_vlr_test_gsm_ciph.c
+++ b/tests/msc_vlr/msc_vlr_test_gsm_ciph.c
@@ -1044,6 +1044,59 @@
comment_end();
 }
 
+static void test_a5_3_not_supported()
+{
+   comment_start();
+
+   /* implicit: net->authentication_required = true; */
+   net->a5_encryption_mask = (1 << 3); /* A5/3 */
+
+   btw("Location Update request causes a GSUP Send Auth Info request to 
HLR");
+   lu_result_sent = RES_NONE;
+   gsup_expect_tx("0801080971004026f0");
+   ms_sends_msg("05080200816800013008991007006402");
+   OSMO_ASSERT(gsup_tx_confirmed);
+   VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d");
+
+   btw("from HLR, rx _SEND_AUTH_INFO_RESULT; VLR sends Auth Req to MS");
+   /* Based on a Ki of 000102030405060708090a0b0c0d0e0f */
+   auth_request_sent = false;
+   auth_request_expect_rand = "585df1ae287f6e273dce07090d61320b";
+   auth_request_expect_autn = NULL;
+   gsup_rx("0a"
+   /* imsi */
+   "0108" "0971004026f0"
+   /* 5 auth vectors... */
+   /* TLTL rand */
+   "0322"  "2010" "585df1ae287f6e273dce07090d61320b"
+   /*   TL sres   TL kc */
+   "2104" "2d8b2c3e" "2208" "61855fb81fc2a800"
+   "0322"  "2010" "12aca96fb4ffdea5c985cbafa9b6e18b"
+   "2104" "20bde240" "2208" "07fa7502e07e1c00"
+   "0322"  "2010" "e7c03ba7cf0e2fde82b2dc4d63077d42"
+   "2104" "a29514ae" "2208" "e2b234f807886400"
+   "0322"  "2010" "fa8f20b781b5881329d4fea26b1a3c51"
+   "2104" "5afc8d72" "2208" "2392f14f709ae000"
+   "0322"  "2010" "0fd4cc8dbe8715d1f439e304edfd68dc"
+   "2104" "bc8d1c5b" "2208" "da7cdd6bfe2d7000",
+   NULL);
+   VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d");
+   VERBOSE_ASSERT(auth_request_sent, == true, "%d");
+
+   BTW("MS sends Authen Response, VLR accepts and wants to send Ciphering 
Mode Command to MS"
+   " -- alas, no matching cipher can be found, abort and release");
+   cipher_mode_cmd_sent = false;
+   expect_bssap_clear();
+   ms_sends_msg("05542d8b2c3e");
+   OSMO_ASSERT(!cipher_mode_cmd_sent);
+   VERBOSE_ASSERT(lu_result_sent, == RES_REJECT, "%d");
+
+   EXPECT_CONN_COUNT(0);
+   clear_vlr();
+   comment_end();
+}
+
+
 msc_vlr_test_func_t msc_vlr_tests[] = {
test_ciph,
test_ciph_tmsi,
@@ -1051,5 +1104,6 @@
test_ciph_imeisv,
test_ciph_tmsi_imei,
test_gsm_ciph_in_umts_env,
+   test_a5_3_not_supported,
NULL
 };
diff --git a/tests/msc_vlr/msc_vlr_test_gsm_ciph.err 
b/tests/msc_vlr/msc_vlr_test_gsm_ciph.err
index c2bb606..1428c36 100644
--- a/tests/msc_vlr/msc_vlr_test_gsm_ciph.err
+++ b/tests/msc_vlr/msc_vlr_test_gsm_ciph.err
@@ -2184,6 +2184,104 @@
 full talloc report on 'msgb' (total  0 bytes in   1 blocks)
 talloc_total_blocks(tall_bsc_ctx) == 7
 
+= test_a5_3_not_supported
+- Location Update request causes a GSUP Send Auth Info request to HLR
+  MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_LOC_UPD_REQUEST
+  new conn
+DREF unknown: MSC conn use + compl_l3 == 1 (0x1)
+DRLL Dispatching 04.08 message GSM48_MT_MM_LOC_UPD_REQUEST (0x5:0x8)
+DREF unknown: MSC conn use + fsm == 2 (0x5)
+DMM Subscr_Conn(90170004620){SUBSCR_CONN_S_INIT}: Allocated
+DMM Subscr_Conn(90170004620){SUBSCR_CONN_S_INIT}: Received Event 
SUBSCR_CONN_E_START
+DMM Subscr_Conn(90170004620){SUBSCR_CONN_S_INIT}: state_chg to 
SUBSCR_CONN_S_NEW
+DMM LOCATION UPDATING REQUEST: MI(IMSI)=90170004620 type=IMSI ATTACH
+DMM LU/new-LAC: 1/23
+DVLR vlr_lu_fsm(90170004620){VLR_ULA_S_IDLE}: Allocated
+DVLR vlr_lu_fsm(90170004620){VLR_ULA_S_IDLE}: is child of 
Subscr_Conn(90170004620)
+DVLR vlr_lu_fsm(90170004620){VLR_ULA_S_IDLE}: rev=GSM net=GERAN Auth+Ciph
+DVLR vlr_lu_fsm(90170004620){VLR_ULA_S_IDLE}: Received Event 
VLR_ULA_E_UPDATE_LA
+DREF VLR subscr unknown usage increases to: 1
+DVLR set IMSI on subscriber; IMSI=90170004620 id=90170004620
+DVLR 

osmo-msc[master]: msc_vlr_tests: add test_a5_3_not_supported

2018-03-10 Thread Neels Hofmeyr

Patch Set 2:

> if you're testing external protocols, why not use ttcn3?

I answered at length in https://gerrit.osmocom.org/7190 -- the short answer 
here is that I wrote this test to analyse the failure, because it was by far 
the fastest way for me to find a fix. Now that the test exists, why not add it 
to the msc_vlr_tests compendium. It takes practically zero time to execute and 
will get checked with every 'make check' from now on.

A ttcn-3 test for this situation also exists, btw, in osmo-ttcn3-hacks.git, 
change id I72a1dbb30e0a39dbf4b81c7e378d5607b62e10d3

-- 
To view, visit https://gerrit.osmocom.org/7058
To unsubscribe, visit https://gerrit.osmocom.org/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: Iba56556207cf6e79e6531b0e7dd3eaec28fb5eaa
Gerrit-PatchSet: 2
Gerrit-Project: osmo-msc
Gerrit-Branch: master
Gerrit-Owner: Neels Hofmeyr 
Gerrit-Reviewer: Harald Welte 
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: Neels Hofmeyr 
Gerrit-HasComments: No


osmo-msc[master]: vlr auth: gracefully reject malformed auth response

2018-03-10 Thread Neels Hofmeyr

Patch Set 4:

ok, now we're back to patch set 2, passing a zero res to trigger failure.

-- 
To view, visit https://gerrit.osmocom.org/7188
To unsubscribe, visit https://gerrit.osmocom.org/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: I4179a290069ac61d0662de4ec7ca3edb76988899
Gerrit-PatchSet: 4
Gerrit-Project: osmo-msc
Gerrit-Branch: master
Gerrit-Owner: Neels Hofmeyr 
Gerrit-Reviewer: Harald Welte 
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: Neels Hofmeyr 
Gerrit-HasComments: No


osmo-msc[master]: cosmetic: gsm48_rx_mm_auth_resp(): log 'UMTS AUTH', not 'R99...

2018-03-10 Thread Neels Hofmeyr

Patch Set 2: Code-Review+2

(resurrect previous +2, lost due to trivial merge conflict resolution)

-- 
To view, visit https://gerrit.osmocom.org/7195
To unsubscribe, visit https://gerrit.osmocom.org/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: Iba43c685cbe238d96175267e9cc954b2f2f3e7fc
Gerrit-PatchSet: 2
Gerrit-Project: osmo-msc
Gerrit-Branch: master
Gerrit-Owner: Neels Hofmeyr 
Gerrit-Reviewer: Harald Welte 
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: Neels Hofmeyr 
Gerrit-HasComments: No


osmo-msc[master]: cosmetic: vlr_auth_fsm: log RAN and size along with SRES/RES

2018-03-10 Thread Neels Hofmeyr

Patch Set 4: Code-Review+2

(resurrect previous +2, lost due to trivial merge conflict resolution)

-- 
To view, visit https://gerrit.osmocom.org/7194
To unsubscribe, visit https://gerrit.osmocom.org/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: Ib0f9f573ffac2302fbd3ee28f48ccd8fce5fe286
Gerrit-PatchSet: 4
Gerrit-Project: osmo-msc
Gerrit-Branch: master
Gerrit-Owner: Neels Hofmeyr 
Gerrit-Reviewer: Harald Welte 
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: Neels Hofmeyr 
Gerrit-HasComments: No


osmo-msc[master]: msc_vlr_test_umts_authen: test response with too short RES

2018-03-10 Thread Neels Hofmeyr

Patch Set 4:

> Similar to other patches before: Why are we doing this here and not
 > in TTCN-3, particularly if it's about entire new tests?  I've asked
 > the question before, but you didn't answer and instead keep senidng
 > the patches.  Please at least let me know what the reasons are...

Hmm, that must have slipped my attention, sorry about that. For me it is 
helpful that when there are comments to a patch that there is a -1 or a +1 
marking, so that I don't just see the +2, merge and forget to read...

The titan tests are great, yet these tests here also have their justification, 
and I like them because:

- Running a test like this is super fast: 'make check' (== just one shortcut 
key in my vim setup to save files and run them), so I will instantly know when 
I broke something while developing. No external dependencies needed; all done 
in practically zero execution time.

- A test like this also runs during our address-sanitizer builds; also in 
gerrit before the commit is merged, rather than after it is merged and someone 
noticed the pass percentage hidden in a jenkins job might be different from 
last time.

- These tests are completely insensitive to timing. All gettime is faked and 
there is no concurrent interplay between components: the tests are guaranteed 
to run identically every time.

- I can easily analyse with gdb and step through a situation without concurrent 
things happening in other processes.

- These tests nail down log output: when I change something, I can immediately 
verify all the logging that is affected in various situations, in a neat diff. 
I just need to make my change, run 'make update-exp' and see the logging 
differences in git. I find this very helpful and reassuring, and it provides a 
compendium of logging sequences to look up. (This is impossible to nail down in 
the titan tests due to subtle timing differences in each run.)

- I can adjust these tests along with changes to code in a neat series of 
commits, so I can clearly show how specific fixes change the MSC's behavior, in 
the git history for later reference.

- Here, I pasted hex streams from pcaps exactly as I saw phones and BTSes 
sending them in, instead of composing them from the titan protocol definitions 
-- which are great tools without question, but here is also room for testing 
raw data.

So the disadvantages these tests have compared to the titan tests are also 
advantages in another sense. I would like to cultivate both ways.

That said, I'm not actively planning to do very much here anymore besides 
revisiting and complementing things that are already here, like the 
LU/CM-Service/Paging and auth+ciph dances.

I'm in the meantime expanding the titan tests coverage as well; so far it is 
taking me far longer to find my way around there, and running them means a lot 
more commands typed and more waiting for things to get going. So I hope it's ok 
to also use this test suite as a tool, and not abandon it just because ttcn3 
came up.

-- 
To view, visit https://gerrit.osmocom.org/7190
To unsubscribe, visit https://gerrit.osmocom.org/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: Ia1bc57b3dc1f3c3c654ba2d907b16ba925cd03e8
Gerrit-PatchSet: 4
Gerrit-Project: osmo-msc
Gerrit-Branch: master
Gerrit-Owner: Neels Hofmeyr 
Gerrit-Reviewer: Harald Welte 
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: Neels Hofmeyr 
Gerrit-HasComments: No


osmo-msc[master]: cosmetic: vlr_auth_fsm: clarify decision on UMTS AKA or GSM AKA

2018-03-10 Thread Neels Hofmeyr

Patch Set 4: Code-Review+2

(resurrect previous +2, lost due to trivial merge conflict resolution)

-- 
To view, visit https://gerrit.osmocom.org/7193
To unsubscribe, visit https://gerrit.osmocom.org/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: I43f7f301ea85e518bac91f707391a53182e54fab
Gerrit-PatchSet: 4
Gerrit-Project: osmo-msc
Gerrit-Branch: master
Gerrit-Owner: Neels Hofmeyr 
Gerrit-Reviewer: Harald Welte 
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: Neels Hofmeyr 
Gerrit-HasComments: No


osmo-msc[master]: gsm48_rx_mm_auth_resp(): pass is_r99 from classmark, not res...

2018-03-10 Thread Neels Hofmeyr

Patch Set 4: Code-Review+2

(resurrect previous +2, lost due to trivial merge conflict resolution)

-- 
To view, visit https://gerrit.osmocom.org/7189
To unsubscribe, visit https://gerrit.osmocom.org/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: Ib7f7d89a8b9455d2c022d53d74328fa7488577f4
Gerrit-PatchSet: 4
Gerrit-Project: osmo-msc
Gerrit-Branch: master
Gerrit-Owner: Neels Hofmeyr 
Gerrit-Reviewer: Harald Welte 
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: Neels Hofmeyr 
Gerrit-HasComments: No


[PATCH] osmo-msc[master]: cosmetic: gsm48_rx_mm_auth_resp(): log 'UMTS AUTH', not 'R99...

2018-03-10 Thread Neels Hofmeyr
Hello Harald Welte, Jenkins Builder,

I'd like you to reexamine a change.  Please visit

https://gerrit.osmocom.org/7195

to look at the new patch set (#2).

cosmetic: gsm48_rx_mm_auth_resp(): log 'UMTS AUTH', not 'R99 AUTH'

Change-Id: Iba43c685cbe238d96175267e9cc954b2f2f3e7fc
---
M src/libmsc/gsm_04_08.c
M tests/msc_vlr/msc_vlr_test_authen_reuse.err
M tests/msc_vlr/msc_vlr_test_call.err
M tests/msc_vlr/msc_vlr_test_umts_authen.err
4 files changed, 31 insertions(+), 31 deletions(-)


  git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/95/7195/2

diff --git a/src/libmsc/gsm_04_08.c b/src/libmsc/gsm_04_08.c
index 4564f8e..08f1517 100644
--- a/src/libmsc/gsm_04_08.c
+++ b/src/libmsc/gsm_04_08.c
@@ -979,7 +979,7 @@
 
DEBUGP(DMM, "%s: MM %s AUTHENTICATION RESPONSE (%s = %s)\n",
   vlr_subscr_name(conn->vsub),
-  is_umts ? "R99" : "GSM", is_umts ? "res" : "sres",
+  is_umts ? "UMTS" : "GSM", is_umts ? "res" : "sres",
   osmo_hexdump_nospc(res, res_len));
 
return vlr_subscr_rx_auth_resp(conn->vsub, 
classmark_is_r99(>classmark),
diff --git a/tests/msc_vlr/msc_vlr_test_authen_reuse.err 
b/tests/msc_vlr/msc_vlr_test_authen_reuse.err
index 269cd35..843e0d5 100644
--- a/tests/msc_vlr/msc_vlr_test_authen_reuse.err
+++ b/tests/msc_vlr/msc_vlr_test_authen_reuse.err
@@ -50,7 +50,7 @@
   MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_AUTH_RESP
 DREF IMSI:90170010650: MSC conn use + dtap == 2 (0x6)
 DRLL Dispatching 04.08 message GSM48_MT_MM_AUTH_RESP (0x5:0x14)
-DMM IMSI:90170010650: MM R99 AUTHENTICATION RESPONSE (res = 
e229c19e791f2e41)
+DMM IMSI:90170010650: MM UMTS AUTHENTICATION RESPONSE (res = 
e229c19e791f2e41)
 DVLR VLR_Authenticate(90170010650){VLR_SUB_AS_WAIT_RESP}: Received Event 
VLR_AUTH_E_MS_AUTH_RESP
 DVLR SUBSCR(IMSI:90170010650) received res: e2 29 c1 9e 79 1f 2e 41 
 DVLR SUBSCR(IMSI:90170010650) AUTH established UMTS security context
@@ -217,7 +217,7 @@
   MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_AUTH_RESP
 DREF MSISDN:42342: MSC conn use + dtap == 2 (0x6)
 DRLL Dispatching 04.08 message GSM48_MT_MM_AUTH_RESP (0x5:0x14)
-DMM MSISDN:42342: MM R99 AUTHENTICATION RESPONSE (res = e229c19e791f2e41)
+DMM MSISDN:42342: MM UMTS AUTHENTICATION RESPONSE (res = e229c19e791f2e41)
 DVLR VLR_Authenticate(90170010650){VLR_SUB_AS_WAIT_RESP}: Received Event 
VLR_AUTH_E_MS_AUTH_RESP
 DVLR SUBSCR(MSISDN:42342) received res: e2 29 c1 9e 79 1f 2e 41 
 DVLR SUBSCR(MSISDN:42342) AUTH established UMTS security context
@@ -338,7 +338,7 @@
   MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_AUTH_RESP
 DREF MSISDN:42342: MSC conn use + dtap == 2 (0x6)
 DRLL Dispatching 04.08 message GSM48_MT_MM_AUTH_RESP (0x5:0x14)
-DMM MSISDN:42342: MM R99 AUTHENTICATION RESPONSE (res = 7db47cf7f81e4dc7)
+DMM MSISDN:42342: MM UMTS AUTHENTICATION RESPONSE (res = 7db47cf7f81e4dc7)
 DVLR VLR_Authenticate(90170010650){VLR_SUB_AS_WAIT_RESP}: Received Event 
VLR_AUTH_E_MS_AUTH_RESP
 DVLR SUBSCR(MSISDN:42342) received res: 7d b4 7c f7 f8 1e 4d c7 
 DVLR SUBSCR(MSISDN:42342) AUTH established UMTS security context
@@ -478,7 +478,7 @@
   MSC <--RAN_UTRAN_IU-- MS: GSM48_MT_MM_AUTH_RESP
 DREF IMSI:90170010650: MSC conn use + dtap == 2 (0x6)
 DRLL Dispatching 04.08 message GSM48_MT_MM_AUTH_RESP (0x5:0x14)
-DMM IMSI:90170010650: MM R99 AUTHENTICATION RESPONSE (res = 
e229c19e791f2e41)
+DMM IMSI:90170010650: MM UMTS AUTHENTICATION RESPONSE (res = 
e229c19e791f2e41)
 DVLR VLR_Authenticate(90170010650){VLR_SUB_AS_WAIT_RESP}: Received Event 
VLR_AUTH_E_MS_AUTH_RESP
 DVLR SUBSCR(IMSI:90170010650) received res: e2 29 c1 9e 79 1f 2e 41 
 DVLR SUBSCR(IMSI:90170010650) AUTH established UMTS security context
@@ -657,7 +657,7 @@
   MSC <--RAN_UTRAN_IU-- MS: GSM48_MT_MM_AUTH_RESP
 DREF MSISDN:42342: MSC conn use + dtap == 2 (0x6)
 DRLL Dispatching 04.08 message GSM48_MT_MM_AUTH_RESP (0x5:0x14)
-DMM MSISDN:42342: MM R99 AUTHENTICATION RESPONSE (res = e229c19e791f2e41)
+DMM MSISDN:42342: MM UMTS AUTHENTICATION RESPONSE (res = e229c19e791f2e41)
 DVLR VLR_Authenticate(90170010650){VLR_SUB_AS_WAIT_RESP}: Received Event 
VLR_AUTH_E_MS_AUTH_RESP
 DVLR SUBSCR(MSISDN:42342) received res: e2 29 c1 9e 79 1f 2e 41 
 DVLR SUBSCR(MSISDN:42342) AUTH established UMTS security context
@@ -788,7 +788,7 @@
   MSC <--RAN_UTRAN_IU-- MS: GSM48_MT_MM_AUTH_RESP
 DREF MSISDN:42342: MSC conn use + dtap == 2 (0x6)
 DRLL Dispatching 04.08 message GSM48_MT_MM_AUTH_RESP (0x5:0x14)
-DMM MSISDN:42342: MM R99 AUTHENTICATION RESPONSE (res = 7db47cf7f81e4dc7)
+DMM MSISDN:42342: MM UMTS AUTHENTICATION RESPONSE (res = 7db47cf7f81e4dc7)
 DVLR VLR_Authenticate(90170010650){VLR_SUB_AS_WAIT_RESP}: Received Event 
VLR_AUTH_E_MS_AUTH_RESP
 DVLR SUBSCR(MSISDN:42342) received res: 7d b4 7c f7 f8 1e 4d c7 
 DVLR SUBSCR(MSISDN:42342) AUTH established UMTS security context
@@ -938,7 +938,7 @@
   MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_AUTH_RESP
 DREF IMSI:90170010650: MSC conn use + dtap == 2 

[PATCH] osmo-msc[master]: gsm48_rx_mm_auth_resp(): pass is_r99 from classmark, not res...

2018-03-10 Thread Neels Hofmeyr
Hello Harald Welte, Jenkins Builder,

I'd like you to reexamine a change.  Please visit

https://gerrit.osmocom.org/7189

to look at the new patch set (#4).

gsm48_rx_mm_auth_resp(): pass is_r99 from classmark, not response size

Do not interpret the SRES/RES length returned in the auth response as the R99
capability bit, instead determine it from the actual Classmark information
associated with the conn.

This fixes the is_r99 flag passed in to vlr_subscr_rx_auth_resp(), which ends
up in the struct vlr_auth_resp_par dispatched to the auth_fi and influences the
authentication acceptance.

Though the effect of a wrongly-set-to-false R99 flag is not harmful in this
code path, let's not get this confused.

Change-Id: Ib7f7d89a8b9455d2c022d53d74328fa7488577f4
---
M src/libmsc/gsm_04_08.c
1 file changed, 8 insertions(+), 10 deletions(-)


  git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/89/7189/4

diff --git a/src/libmsc/gsm_04_08.c b/src/libmsc/gsm_04_08.c
index ceef2d8..4564f8e 100644
--- a/src/libmsc/gsm_04_08.c
+++ b/src/libmsc/gsm_04_08.c
@@ -952,7 +952,7 @@
uint8_t res[16];
uint8_t res_len;
int rc;
-   bool is_r99;
+   bool is_umts;
 
if (!conn->vsub) {
LOGP(DMM, LOGL_ERROR,
@@ -961,30 +961,28 @@
return -EINVAL;
}
 
-   if (msgb_l3len(msg) >
-   sizeof(struct gsm48_hdr) + sizeof(struct gsm48_auth_resp)) {
+   is_umts = (msgb_l3len(msg) > sizeof(struct gsm48_hdr) + sizeof(struct 
gsm48_auth_resp));
+
+   if (is_umts)
rc = parse_umts_auth_resp(res, _len, conn, msg);
-   is_r99 = true;
-   } else {
+   else
rc = parse_gsm_auth_resp(res, _len, conn, msg);
-   is_r99 = false;
-   }
 
if (rc) {
LOGP(DMM, LOGL_ERROR,
 "%s: MM AUTHENTICATION RESPONSE: invalid: parsing %s AKA 
Auth Response"
 " failed with rc=%d; dispatching zero length SRES/RES to 
trigger failure\n",
-vlr_subscr_name(conn->vsub), is_r99 ? "UMTS" : "GSM", rc);
+vlr_subscr_name(conn->vsub), is_umts ? "UMTS" : "GSM", rc);
memset(res, 0, sizeof(res));
res_len = 0;
}
 
DEBUGP(DMM, "%s: MM %s AUTHENTICATION RESPONSE (%s = %s)\n",
   vlr_subscr_name(conn->vsub),
-  is_r99 ? "R99" : "GSM", is_r99 ? "res" : "sres",
+  is_umts ? "R99" : "GSM", is_umts ? "res" : "sres",
   osmo_hexdump_nospc(res, res_len));
 
-   return vlr_subscr_rx_auth_resp(conn->vsub, is_r99,
+   return vlr_subscr_rx_auth_resp(conn->vsub, 
classmark_is_r99(>classmark),
   conn->via_ran == RAN_UTRAN_IU,
   res, res_len);
 }

-- 
To view, visit https://gerrit.osmocom.org/7189
To unsubscribe, visit https://gerrit.osmocom.org/settings

Gerrit-MessageType: newpatchset
Gerrit-Change-Id: Ib7f7d89a8b9455d2c022d53d74328fa7488577f4
Gerrit-PatchSet: 4
Gerrit-Project: osmo-msc
Gerrit-Branch: master
Gerrit-Owner: Neels Hofmeyr 
Gerrit-Reviewer: Harald Welte 
Gerrit-Reviewer: Jenkins Builder


[PATCH] osmo-msc[master]: cosmetic: vlr_auth_fsm: clarify decision on UMTS AKA or GSM AKA

2018-03-10 Thread Neels Hofmeyr
Hello Harald Welte, Jenkins Builder,

I'd like you to reexamine a change.  Please visit

https://gerrit.osmocom.org/7193

to look at the new patch set (#4).

cosmetic: vlr_auth_fsm: clarify decision on UMTS AKA or GSM AKA

The code deciding on whether UMTS AKA is used was cascaded and convoluted. By
flattening the decisions, they become easier to read and possibly catch more
weird corner cases / log information more clearly.

- First decide what AKA the RES length reflects.
- Then decide whether all prerequisites for UMTS AKA are satisfied.
- Finally, on UTRAN, turn down the auth if we don't have UMTS AKA, and neatly
  log all of the potential causes.

One corner case that should never occur is that the UMTS AKA RES length is
actually the same length as the GSM AKA SRES. If this nevertheless occurs, log
this as an error, though not turning down authentication because of it. (The
effect is that we would favor UMTS AKA when it has a res_len == sizeof(sres)
and would not succeed to GSM AKA. At least the log will tell us why, now.)

Adjust an expected test output, trivial logging difference.

Change-Id: I43f7f301ea85e518bac91f707391a53182e54fab
---
M src/libvlr/vlr_auth_fsm.c
M tests/msc_vlr/msc_vlr_test_gsm_authen.err
M tests/msc_vlr/msc_vlr_test_umts_authen.err
3 files changed, 48 insertions(+), 25 deletions(-)


  git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/93/7193/4

diff --git a/src/libvlr/vlr_auth_fsm.c b/src/libvlr/vlr_auth_fsm.c
index 51e22c9..0d0df11 100644
--- a/src/libvlr/vlr_auth_fsm.c
+++ b/src/libvlr/vlr_auth_fsm.c
@@ -136,34 +136,57 @@
struct gsm_auth_tuple *at = vsub->last_tuple;
struct osmo_auth_vector *vec = >vec;
bool check_umts;
+   bool res_is_umts_aka;
OSMO_ASSERT(at);
 
LOGVSUBP(LOGL_DEBUG, vsub, "received res: %s\n",
 osmo_hexdump(res, res_len));
 
/* RES must be present and at least 32bit */
-   if (!res || res_len < sizeof(vec->sres)) {
-   LOGVSUBP(LOGL_NOTICE, vsub, "AUTH RES missing or too short "
-"(%u)\n", res_len);
+   if (!res || !res_len) {
+   LOGVSUBP(LOGL_NOTICE, vsub, "AUTH SRES/RES missing\n");
goto out_false;
}
 
-   check_umts = false;
-   if (is_r99 && (vec->auth_types & OSMO_AUTH_TYPE_UMTS)) {
-   check_umts = true;
-   /* We have a R99 capable UE and have a UMTS AKA capable USIM.
-* However, the ME may still choose to only perform GSM AKA, as
-* long as the bearer is GERAN */
-   if (res_len != vec->res_len) {
-   if (is_utran) {
-   LOGVSUBP(LOGL_NOTICE, vsub,
-"AUTH via UTRAN but "
-"res_len(%u) != vec->res_len(%u)\n",
-res_len, vec->res_len);
-   goto out_false;
-   }
-   check_umts = false;
-   }
+   /* We're deciding the UMTS AKA-ness of the response by the RES size. So 
let's make sure we can't
+* mix them up by size. On UTRAN, we expect full length RES always, no 
way to mix up there. */
+   if (!is_utran && vec->res_len == sizeof(vec->sres))
+   LOGVSUBP(LOGL_ERROR, vsub, "Unforeseen situation: UMTS AKA's 
RES length"
+" equals the size of SRES: %u -- this code wants to 
differentiate"
+" the two by their size, which won't work properly 
now.\n", vec->res_len);
+
+   /* RES must be either vec->res_len (UMTS AKA) or sizeof(sres) (GSM AKA) 
*/
+   if (res_len == vec->res_len)
+   res_is_umts_aka = true;
+   else if (res_len == sizeof(vec->sres))
+   res_is_umts_aka = false;
+   else {
+   if (is_utran)
+   LOGVSUBP(LOGL_NOTICE, vsub, "AUTH RES has invalid 
length: %u."
+" Expected %u (UMTS AKA)\n",
+res_len, vec->res_len);
+   else
+   LOGVSUBP(LOGL_NOTICE, vsub, "AUTH SRES/RES has invalid 
length: %u."
+" Expected either %zu (GSM AKA) or %u (UMTS 
AKA)\n",
+res_len, sizeof(vec->sres), vec->res_len);
+   goto out_false;
+   }
+
+   check_umts = (is_r99
+ && (vec->auth_types & OSMO_AUTH_TYPE_UMTS)
+ && res_is_umts_aka);
+
+   /* Even on an R99 capable MS with a UMTS AKA capable USIM,
+* the MS may still choose to only perform GSM AKA, as
+* long as the bearer is GERAN -- never on UTRAN: */
+   if (is_utran && !check_umts) {
+   LOGVSUBP(LOGL_ERROR, vsub,
+"AUTH via UTRAN, cannot allow GSM AKA"
+" (MS is %sR99 capable, vec has %sUMTS 

[PATCH] osmo-msc[master]: vlr auth: gracefully reject malformed auth response

2018-03-10 Thread Neels Hofmeyr
Hello Harald Welte, Jenkins Builder,

I'd like you to reexamine a change.  Please visit

https://gerrit.osmocom.org/7188

to look at the new patch set (#4).

vlr auth: gracefully reject malformed auth response

Instead of just closing down the conn hard, actually feed invalid auth response
data to vlr_subscr_rc_auth_resp() in order to trigger all the actions we want
to see with a failed authentication:
- a GSUP signal that the auth failed,
- a LU reject.
Verify this in new test_wrong_sres_length() in msc_vlr_test_gsm_authen.c.

Note that in gsm48_rx_mm_auth_resp(), the is_r99 flag is falsely derived from
the RES length, which upcoming commit Ib7f7d89a8b9455d2c022d53d74328fa7488577f4
will fix.

Change-Id: I4179a290069ac61d0662de4ec7ca3edb76988899
---
M src/libmsc/gsm_04_08.c
M tests/msc_vlr/msc_vlr_test_gsm_authen.c
M tests/msc_vlr/msc_vlr_test_gsm_authen.err
3 files changed, 179 insertions(+), 2 deletions(-)


  git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/88/7188/4

diff --git a/src/libmsc/gsm_04_08.c b/src/libmsc/gsm_04_08.c
index f87a4c6..ceef2d8 100644
--- a/src/libmsc/gsm_04_08.c
+++ b/src/libmsc/gsm_04_08.c
@@ -971,8 +971,12 @@
}
 
if (rc) {
-   msc_subscr_conn_close(conn, GSM_CAUSE_AUTH_FAILED);
-   return -EINVAL;
+   LOGP(DMM, LOGL_ERROR,
+"%s: MM AUTHENTICATION RESPONSE: invalid: parsing %s AKA 
Auth Response"
+" failed with rc=%d; dispatching zero length SRES/RES to 
trigger failure\n",
+vlr_subscr_name(conn->vsub), is_r99 ? "UMTS" : "GSM", rc);
+   memset(res, 0, sizeof(res));
+   res_len = 0;
}
 
DEBUGP(DMM, "%s: MM %s AUTHENTICATION RESPONSE (%s = %s)\n",
diff --git a/tests/msc_vlr/msc_vlr_test_gsm_authen.c 
b/tests/msc_vlr/msc_vlr_test_gsm_authen.c
index 9c09aa4..b0db12d 100644
--- a/tests/msc_vlr/msc_vlr_test_gsm_authen.c
+++ b/tests/msc_vlr/msc_vlr_test_gsm_authen.c
@@ -914,11 +914,70 @@
comment_end();
 }
 
+static void test_wrong_sres_length()
+{
+   comment_start();
+   fake_time_start();
+
+   net->authentication_required = true;
+
+   btw("Location Update request causes a GSUP Send Auth Info request to 
HLR");
+   lu_result_sent = RES_NONE;
+   gsup_expect_tx("0801080971004026f0");
+   ms_sends_msg("05080200816800013008991007006402");
+   OSMO_ASSERT(gsup_tx_confirmed);
+   VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d");
+
+   btw("from HLR, rx _SEND_AUTH_INFO_RESULT; VLR sends Auth Req to MS");
+   auth_request_sent = false;
+   auth_request_expect_rand = "585df1ae287f6e273dce07090d61320b";
+   auth_request_expect_autn = NULL;
+   /* Based on a Ki of 000102030405060708090a0b0c0d0e0f */
+   gsup_rx("0a"
+   /* imsi */
+   "0108" "0971004026f0"
+   /* 5 auth vectors... */
+   /* TLTL rand */
+   "0322"  "2010" "585df1ae287f6e273dce07090d61320b"
+   /*   TL sres   TL kc */
+   "2104" "2d8b2c3e" "2208" "61855fb81fc2a800"
+   "0322"  "2010" "12aca96fb4ffdea5c985cbafa9b6e18b"
+   "2104" "20bde240" "2208" "07fa7502e07e1c00"
+   "0322"  "2010" "e7c03ba7cf0e2fde82b2dc4d63077d42"
+   "2104" "a29514ae" "2208" "e2b234f807886400"
+   "0322"  "2010" "fa8f20b781b5881329d4fea26b1a3c51"
+   "2104" "5afc8d72" "2208" "2392f14f709ae000"
+   "0322"  "2010" "0fd4cc8dbe8715d1f439e304edfd68dc"
+   "2104" "bc8d1c5b" "2208" "da7cdd6bfe2d7000",
+   NULL);
+   VERBOSE_ASSERT(auth_request_sent, == true, "%d");
+   VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d");
+
+   btw("If the HLR were to send a GSUP _UPDATE_LOCATION_RESULT we'd still 
reject");
+   gsup_rx("0601080971004026f0", NULL);
+   EXPECT_ACCEPTED(false);
+
+   thwart_rx_non_initial_requests();
+
+   VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d");
+
+   btw("MS sends Authen Response with too short SRES data, auth is 
thwarted.");
+   gsup_expect_tx("0b01080971004026f0"); /* 
OSMO_GSUP_MSGT_AUTH_FAIL_REPORT */
+   expect_bssap_clear();
+   ms_sends_msg("05542d8b2c");
+   VERBOSE_ASSERT(lu_result_sent, == RES_REJECT, "%d");
+
+   EXPECT_CONN_COUNT(0);
+   clear_vlr();
+   comment_end();
+}
+
 msc_vlr_test_func_t msc_vlr_tests[] = {
test_gsm_authen,
test_gsm_authen_tmsi,
test_gsm_authen_imei,
test_gsm_authen_tmsi_imei,
test_gsm_milenage_authen,
+   test_wrong_sres_length,
NULL
 };
diff --git a/tests/msc_vlr/msc_vlr_test_gsm_authen.err 
b/tests/msc_vlr/msc_vlr_test_gsm_authen.err
index a46a838..a454e2f 100644
--- a/tests/msc_vlr/msc_vlr_test_gsm_authen.err
+++ b/tests/msc_vlr/msc_vlr_test_gsm_authen.err
@@ -1998,6 +1998,120 @@
 

[PATCH] osmo-msc[master]: cosmetic: vlr_auth_fsm: log RAN and size along with SRES/RES

2018-03-10 Thread Neels Hofmeyr
Hello Harald Welte, Jenkins Builder,

I'd like you to reexamine a change.  Please visit

https://gerrit.osmocom.org/7194

to look at the new patch set (#4).

cosmetic: vlr_auth_fsm: log RAN and size along with SRES/RES

Change-Id: Ib0f9f573ffac2302fbd3ee28f48ccd8fce5fe286
---
M src/libvlr/vlr_auth_fsm.c
M tests/msc_vlr/msc_vlr_test_authen_reuse.err
M tests/msc_vlr/msc_vlr_test_call.err
M tests/msc_vlr/msc_vlr_test_gsm_authen.err
M tests/msc_vlr/msc_vlr_test_gsm_ciph.err
M tests/msc_vlr/msc_vlr_test_hlr_reject.err
M tests/msc_vlr/msc_vlr_test_ms_timeout.err
M tests/msc_vlr/msc_vlr_test_umts_authen.err
8 files changed, 70 insertions(+), 68 deletions(-)


  git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/94/7194/4

diff --git a/src/libvlr/vlr_auth_fsm.c b/src/libvlr/vlr_auth_fsm.c
index 0d0df11..224bc9f 100644
--- a/src/libvlr/vlr_auth_fsm.c
+++ b/src/libvlr/vlr_auth_fsm.c
@@ -139,8 +139,10 @@
bool res_is_umts_aka;
OSMO_ASSERT(at);
 
-   LOGVSUBP(LOGL_DEBUG, vsub, "received res: %s\n",
-osmo_hexdump(res, res_len));
+   LOGVSUBP(LOGL_DEBUG, vsub, "AUTH on %s received %s: %s (%u bytes)\n",
+is_utran ? "UTRAN" : "GERAN",
+is_utran ? "RES" : "SRES/RES",
+osmo_hexdump_nospc(res, res_len), res_len);
 
/* RES must be present and at least 32bit */
if (!res || !res_len) {
diff --git a/tests/msc_vlr/msc_vlr_test_authen_reuse.err 
b/tests/msc_vlr/msc_vlr_test_authen_reuse.err
index 843e0d5..df91789 100644
--- a/tests/msc_vlr/msc_vlr_test_authen_reuse.err
+++ b/tests/msc_vlr/msc_vlr_test_authen_reuse.err
@@ -52,7 +52,7 @@
 DRLL Dispatching 04.08 message GSM48_MT_MM_AUTH_RESP (0x5:0x14)
 DMM IMSI:90170010650: MM UMTS AUTHENTICATION RESPONSE (res = 
e229c19e791f2e41)
 DVLR VLR_Authenticate(90170010650){VLR_SUB_AS_WAIT_RESP}: Received Event 
VLR_AUTH_E_MS_AUTH_RESP
-DVLR SUBSCR(IMSI:90170010650) received res: e2 29 c1 9e 79 1f 2e 41 
+DVLR SUBSCR(IMSI:90170010650) AUTH on GERAN received SRES/RES: 
e229c19e791f2e41 (8 bytes)
 DVLR SUBSCR(IMSI:90170010650) AUTH established UMTS security context
 DVLR VLR_Authenticate(90170010650){VLR_SUB_AS_WAIT_RESP}: Authentication 
terminating with result VLR_AUTH_RES_PASSED
 DVLR VLR_Authenticate(90170010650){VLR_SUB_AS_WAIT_RESP}: state_chg to 
VLR_SUB_AS_AUTHENTICATED
@@ -219,7 +219,7 @@
 DRLL Dispatching 04.08 message GSM48_MT_MM_AUTH_RESP (0x5:0x14)
 DMM MSISDN:42342: MM UMTS AUTHENTICATION RESPONSE (res = e229c19e791f2e41)
 DVLR VLR_Authenticate(90170010650){VLR_SUB_AS_WAIT_RESP}: Received Event 
VLR_AUTH_E_MS_AUTH_RESP
-DVLR SUBSCR(MSISDN:42342) received res: e2 29 c1 9e 79 1f 2e 41 
+DVLR SUBSCR(MSISDN:42342) AUTH on GERAN received SRES/RES: e229c19e791f2e41 (8 
bytes)
 DVLR SUBSCR(MSISDN:42342) AUTH established UMTS security context
 DVLR VLR_Authenticate(90170010650){VLR_SUB_AS_WAIT_RESP}: Authentication 
terminating with result VLR_AUTH_RES_PASSED
 DVLR VLR_Authenticate(90170010650){VLR_SUB_AS_WAIT_RESP}: state_chg to 
VLR_SUB_AS_AUTHENTICATED
@@ -340,7 +340,7 @@
 DRLL Dispatching 04.08 message GSM48_MT_MM_AUTH_RESP (0x5:0x14)
 DMM MSISDN:42342: MM UMTS AUTHENTICATION RESPONSE (res = 7db47cf7f81e4dc7)
 DVLR VLR_Authenticate(90170010650){VLR_SUB_AS_WAIT_RESP}: Received Event 
VLR_AUTH_E_MS_AUTH_RESP
-DVLR SUBSCR(MSISDN:42342) received res: 7d b4 7c f7 f8 1e 4d c7 
+DVLR SUBSCR(MSISDN:42342) AUTH on GERAN received SRES/RES: 7db47cf7f81e4dc7 (8 
bytes)
 DVLR SUBSCR(MSISDN:42342) AUTH established UMTS security context
 DVLR VLR_Authenticate(90170010650){VLR_SUB_AS_WAIT_RESP}: Authentication 
terminating with result VLR_AUTH_RES_PASSED
 DVLR VLR_Authenticate(90170010650){VLR_SUB_AS_WAIT_RESP}: state_chg to 
VLR_SUB_AS_AUTHENTICATED
@@ -480,7 +480,7 @@
 DRLL Dispatching 04.08 message GSM48_MT_MM_AUTH_RESP (0x5:0x14)
 DMM IMSI:90170010650: MM UMTS AUTHENTICATION RESPONSE (res = 
e229c19e791f2e41)
 DVLR VLR_Authenticate(90170010650){VLR_SUB_AS_WAIT_RESP}: Received Event 
VLR_AUTH_E_MS_AUTH_RESP
-DVLR SUBSCR(IMSI:90170010650) received res: e2 29 c1 9e 79 1f 2e 41 
+DVLR SUBSCR(IMSI:90170010650) AUTH on UTRAN received RES: e229c19e791f2e41 
(8 bytes)
 DVLR SUBSCR(IMSI:90170010650) AUTH established UMTS security context
 DVLR VLR_Authenticate(90170010650){VLR_SUB_AS_WAIT_RESP}: Authentication 
terminating with result VLR_AUTH_RES_PASSED
 DVLR VLR_Authenticate(90170010650){VLR_SUB_AS_WAIT_RESP}: state_chg to 
VLR_SUB_AS_AUTHENTICATED
@@ -659,7 +659,7 @@
 DRLL Dispatching 04.08 message GSM48_MT_MM_AUTH_RESP (0x5:0x14)
 DMM MSISDN:42342: MM UMTS AUTHENTICATION RESPONSE (res = e229c19e791f2e41)
 DVLR VLR_Authenticate(90170010650){VLR_SUB_AS_WAIT_RESP}: Received Event 
VLR_AUTH_E_MS_AUTH_RESP
-DVLR SUBSCR(MSISDN:42342) received res: e2 29 c1 9e 79 1f 2e 41 
+DVLR SUBSCR(MSISDN:42342) AUTH on UTRAN received RES: e229c19e791f2e41 (8 
bytes)
 DVLR SUBSCR(MSISDN:42342) AUTH established UMTS 

[MERGED] osmo-msc[master]: msc_vlr_test_gsm_ciph: add test for GSM AKA in UMTS environment

2018-03-10 Thread Neels Hofmeyr
Neels Hofmeyr has submitted this change and it was merged.

Change subject: msc_vlr_test_gsm_ciph: add test for GSM AKA in UMTS environment
..


msc_vlr_test_gsm_ciph: add test for GSM AKA in UMTS environment

Even on an R99 capable MS with a UMTS AKA capable USIM, the MS may still choose
to only perform GSM AKA, as long as the bearer is GERAN. In that case, we must
make sure to send the GSM AKA Kc for ciphering.

Add test_gsm_ciph_in_umts_env() to msc_vlr_test_gsm_ciph.c to answer an Auth
Request with a GSM AKA response (see the log stating "AUTH established GSM
security context" after we sent a UMTS AKA challenge).

In the test, show that we currently send the *wrong* Kc, i.e. the UMTS AKA
derived Kc for GERAN, instead of the correct Kc for GSM AKA (which was received
from the HLR in the auth tuples).

Subsequent patch I42ce51ae979f42d173a45ae69273071c426bf97c will fix this and
correct the test expectations.

Related: OS#2793
Change-Id: I85f12a20dcd701e671188e56811ec7b58d84da82
---
M tests/msc_vlr/msc_vlr_test_gsm_ciph.c
M tests/msc_vlr/msc_vlr_test_gsm_ciph.err
2 files changed, 725 insertions(+), 0 deletions(-)

Approvals:
  Harald Welte: Looks good to me, approved; Verified



diff --git a/tests/msc_vlr/msc_vlr_test_gsm_ciph.c 
b/tests/msc_vlr/msc_vlr_test_gsm_ciph.c
index 1e6bf7c..d8c0441 100644
--- a/tests/msc_vlr/msc_vlr_test_gsm_ciph.c
+++ b/tests/msc_vlr/msc_vlr_test_gsm_ciph.c
@@ -794,11 +794,271 @@
comment_end();
 }
 
+static void test_gsm_ciph_in_umts_env()
+{
+   struct vlr_subscr *vsub;
+   const char *imsi = "90170010650";
+   const char *sms =
+   "09" /* SMS messages */
+   "01" /* CP-DATA */
+   "58" /* length */
+   "01" /* Network to MS */
+   "00" /* reference */
+   /* originator (gsm411_send_sms() hardcodes this weird nr) */
+   "0791" "447758100650" /* 447785016005 */
+   "00" /* dest */
+   /* SMS TPDU */
+   "4c" /* len */
+   "00" /* SMS deliver */
+   "05802443f2" /* originating address 42342 */
+   "00" /* TP-PID */
+   "00" /* GSM default alphabet */
+   "071010" /* Y-M-D (from wrapped gsm340_gen_scts())*/
+   "00" /* H-M-S */
+   "00" /* GMT+0 */
+   "44" /* data length */
+   "5079da1e1ee7416937485e9ea7c965373d1d6683c270383b3d0e"
+   "d3d36ff71c949e83c22072799e9687c5ec32a81d96afcbf4b4fb"
+   "0c7ac3e9e9b7db05";
+
+   comment_start();
+
+   /* implicit: net->authentication_required = true; */
+   net->a5_encryption_mask = (1 << 1);
+   rx_from_ran = RAN_GERAN_A;
+
+   btw("Location Update request causes a GSUP Send Auth Info request to 
HLR");
+   lu_result_sent = RES_NONE;
+   gsup_expect_tx("080108" "0971000156f0");
+   ms_sends_msg("0508" /* MM LU */
+"7" /* ciph key seq: no key available */
+"0" /* LU type: normal */
+"ff" "" /* LAI, LAC */
+"57" /* classmark 1: R99, early classmark, no power lvl */
+"08991007106005" /* IMSI */
+"3303575886" /* classmark 2 */
+);
+   OSMO_ASSERT(gsup_tx_confirmed);
+   VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d");
+
+   btw("from HLR, rx _SEND_AUTH_INFO_RESULT; VLR sends *UMTS AKA* Auth Req 
to MS");
+   /* based on
+* 2G auth: COMP128v1
+*  KI=7bcd108be4c3d551ee6c67faaf52bd68
+* 3G auth: MILENAGE
+*  K=7bcd108be4c3d551ee6c67faaf52bd68
+*  OPC=6e23f641ce724679b73d933515a8589d
+*  IND-bitlen=5 last-SQN=641
+* Note that the SRES will be calculated by COMP128v1, separately from 
3G tokens;
+* the resulting Kc to use for ciphering returned by the HLR is also 
calculated from COMP128v1.
+*/
+   auth_request_sent = false;
+   auth_request_expect_rand = "4ac8d1cd1a51937597ca1016fe69a0fa";
+   auth_request_expect_autn = "2d837d2b0d6f4b282d5acf23428d";
+   gsup_rx("0a"
+   /* imsi */
+   "0108" "0971000156f0"
+   /* 5 auth vectors... */
+   /* TLTL rand */
+   "0362" "2010" "4ac8d1cd1a51937597ca1016fe69a0fa"
+   /*   TL sres   TL kc */
+  "2104" "dacc4b26" "2208" "7a75f0ac9b844400"
+   /*   TL 3G IK */
+  "2310" "3747da4e31545baa2db59e500bdae047"
+   /*   TL 3G CK */
+  "2410" "8544d35b945ccba01a7f1293575291c3"
+   /*   TL AUTN */
+  "2510" "2d837d2b0d6f4b282d5acf23428d"
+   /*   TL RES */
+  "2708" 

[MERGED] osmo-msc[master]: msc_vlr_tests: clearly separate Ciph Mode from Security Mode...

2018-03-10 Thread Neels Hofmeyr
Neels Hofmeyr has submitted this change and it was merged.

Change subject: msc_vlr_tests: clearly separate Ciph Mode from Security Mode 
checking
..


msc_vlr_tests: clearly separate Ciph Mode from Security Mode checking

Clearly distinguish between Ciphering Mode Command on GERAN and Security Mode
Control on UTRAN.

Cosmetic: explicitly verify the key strings in the testing code (not only in
the expected output).

Change-Id: Ica93ed06c4c63dc6768736d25231de8068001114
---
M tests/msc_vlr/msc_vlr_test_authen_reuse.c
M tests/msc_vlr/msc_vlr_test_authen_reuse.err
M tests/msc_vlr/msc_vlr_test_call.c
M tests/msc_vlr/msc_vlr_test_call.err
M tests/msc_vlr/msc_vlr_test_gsm_ciph.c
M tests/msc_vlr/msc_vlr_test_umts_authen.c
M tests/msc_vlr/msc_vlr_test_umts_authen.err
M tests/msc_vlr/msc_vlr_tests.c
M tests/msc_vlr/msc_vlr_tests.h
9 files changed, 98 insertions(+), 48 deletions(-)

Approvals:
  Harald Welte: Looks good to me, approved
  Jenkins Builder: Verified



diff --git a/tests/msc_vlr/msc_vlr_test_authen_reuse.c 
b/tests/msc_vlr/msc_vlr_test_authen_reuse.c
index e78ab06..6fd1e66 100644
--- a/tests/msc_vlr/msc_vlr_test_authen_reuse.c
+++ b/tests/msc_vlr/msc_vlr_test_authen_reuse.c
@@ -105,9 +105,9 @@
} else {
/* On UTRAN */
btw("MS sends Authen Response, VLR accepts and sends 
SecurityModeControl");
-   cipher_mode_cmd_sent = false;
+   expect_security_mode_ctrl(NULL, 
"27497388b6cb044648f396aa155b95ef");
ms_sends_msg("0554" "e229c19e" "2104" "791f2e41");
-   VERBOSE_ASSERT(cipher_mode_cmd_sent, == true, "%d");
+   VERBOSE_ASSERT(security_mode_ctrl_sent, == true, "%d");
VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d");
 
btw("MS sends SecurityModeControl acceptance, VLR accepts and 
sends GSUP LU Req to HLR");
@@ -179,9 +179,9 @@
} else {
/* On UTRAN */
btw("MS sends Authen Response, VLR accepts and sends 
SecurityModeControl");
-   cipher_mode_cmd_sent = false;
+   expect_security_mode_ctrl(NULL, 
"27497388b6cb044648f396aa155b95ef");
ms_sends_msg("0554" "e229c19e" "2104" "791f2e41");
-   VERBOSE_ASSERT(cipher_mode_cmd_sent, == true, "%d");
+   VERBOSE_ASSERT(security_mode_ctrl_sent, == true, "%d");
VERBOSE_ASSERT(cm_service_result_sent, == RES_NONE, 
"%d");
 
btw("MS sends SecurityModeControl acceptance, VLR 
accepts; above Ciphering is an implicit CM Service Accept");
@@ -253,9 +253,9 @@
} else {
/* On UTRAN */
btw("MS sends Authen Response, VLR accepts and sends 
SecurityModeControl");
-   cipher_mode_cmd_sent = false;
+   expect_security_mode_ctrl(NULL, 
"1159ec926a50e98c034a6b7d7c9f418d");
ms_sends_msg("0554" "7db47cf7" "2104" "f81e4dc7"); /* 
2nd vector's res, s.a. */
-   VERBOSE_ASSERT(cipher_mode_cmd_sent, == true, "%d");
+   VERBOSE_ASSERT(security_mode_ctrl_sent, == true, "%d");
VERBOSE_ASSERT(cm_service_result_sent, == RES_NONE, 
"%d");
 
btw("MS sends SecurityModeControl acceptance, VLR 
accepts; above Ciphering is an implicit CM Service Accept");
diff --git a/tests/msc_vlr/msc_vlr_test_authen_reuse.err 
b/tests/msc_vlr/msc_vlr_test_authen_reuse.err
index ea3b989..269cd35 100644
--- a/tests/msc_vlr/msc_vlr_test_authen_reuse.err
+++ b/tests/msc_vlr/msc_vlr_test_authen_reuse.err
@@ -497,7 +497,7 @@
 DVLR vlr_lu_fsm(90170010650){VLR_ULA_S_WAIT_AUTH}: state_chg to 
VLR_ULA_S_WAIT_CIPH
 DMM IMSI:90170010650: bump: conn still being established 
(SUBSCR_CONN_S_NEW)
 DREF IMSI:90170010650: MSC conn use - dtap == 1 (0x4)
-  cipher_mode_cmd_sent == 1
+  security_mode_ctrl_sent == 1
   lu_result_sent == 0
 - MS sends SecurityModeControl acceptance, VLR accepts and sends GSUP LU Req 
to HLR
 DMM <- SECURITY MODE COMPLETE IMSI:90170010650
@@ -677,7 +677,7 @@
 DVLR Process_Access_Request_VLR(90170010650){PR_ARQ_S_WAIT_AUTH}: 
state_chg to PR_ARQ_S_WAIT_CIPH
 DMM MSISDN:42342: bump: conn still being established (SUBSCR_CONN_S_NEW)
 DREF MSISDN:42342: MSC conn use - dtap == 1 (0x4)
-  cipher_mode_cmd_sent == 1
+  security_mode_ctrl_sent == 1
   cm_service_result_sent == 0
 - MS sends SecurityModeControl acceptance, VLR accepts; above Ciphering is an 
implicit CM Service Accept
 DMM <- SECURITY MODE COMPLETE MSISDN:42342
@@ -808,7 +808,7 @@
 DVLR Process_Access_Request_VLR(90170010650){PR_ARQ_S_WAIT_AUTH}: 
state_chg to PR_ARQ_S_WAIT_CIPH
 DMM MSISDN:42342: bump: conn still being established (SUBSCR_CONN_S_NEW)
 DREF MSISDN:42342: MSC conn use - dtap == 1 (0x4)
-  

[MERGED] osmo-msc[master]: vlr: fix GSM AKA in a UMTS AKA capable environment

2018-03-10 Thread Neels Hofmeyr
Neels Hofmeyr has submitted this change and it was merged.

Change subject: vlr: fix GSM AKA in a UMTS AKA capable environment
..


vlr: fix GSM AKA in a UMTS AKA capable environment

Switch by vsub->sec_ctx to use the proper Kc for ciphering.

Even on an R99 capable MS with a UMTS AKA capable USIM, the MS may still choose
to only perform GSM AKA, as long as the bearer is GERAN. The VLR already stores
whether the MS replied with a GSM AKA SRES or a UMTS AKA RES in vsub->sec_ctx.
So far, though, we were always using the UMTS AKA Kc just because the USIM and
core net are capable of it, ignoring the choice the MS might have made in the
Authentication Response.

In msc_vlr_test_gsm_ciph, fix the test expectations to the correct GSM AKA Kc
keys, showing that all of LU, CM Service Request and Paging Response now
support MS choosing GSM AKA in a UMTS capable environment.

Related: OS#2793
Change-Id: I42ce51ae979f42d173a45ae69273071c426bf97c
---
M src/libvlr/vlr_access_req_fsm.c
M src/libvlr/vlr_lu_fsm.c
M tests/msc_vlr/msc_vlr_test_gsm_ciph.c
M tests/msc_vlr/msc_vlr_test_gsm_ciph.err
4 files changed, 33 insertions(+), 14 deletions(-)

Approvals:
  Harald Welte: Looks good to me, approved; Verified



diff --git a/src/libvlr/vlr_access_req_fsm.c b/src/libvlr/vlr_access_req_fsm.c
index 556e694..95a618d 100644
--- a/src/libvlr/vlr_access_req_fsm.c
+++ b/src/libvlr/vlr_access_req_fsm.c
@@ -284,6 +284,7 @@
 {
struct proc_arq_priv *par = fi->priv;
struct vlr_subscr *vsub = par->vsub;
+   bool umts_aka;
 
LOGPFSM(fi, "%s()\n", __func__);
 
@@ -292,9 +293,22 @@
return;
}
 
+   switch (vsub->sec_ctx) {
+   case VLR_SEC_CTX_GSM:
+   umts_aka = false;
+   break;
+   case VLR_SEC_CTX_UMTS:
+   umts_aka = true;
+   break;
+   default:
+   LOGPFSML(fi, LOGL_ERROR, "Cannot start ciphering, security 
context is not established\n");
+   proc_arq_fsm_done(fi, VLR_PR_ARQ_RES_SYSTEM_FAILURE);
+   return;
+   }
+
if (vlr_set_ciph_mode(vsub->vlr, fi, par->msc_conn_ref,
  par->ciphering_required,
- vlr_use_umts_aka(>last_tuple->vec, 
par->is_r99),
+ umts_aka,
  vsub->vlr->cfg.retrieve_imeisv_ciphered)) {
LOGPFSML(fi, LOGL_ERROR,
 "Failed to send Ciphering Mode Command\n");
diff --git a/src/libvlr/vlr_lu_fsm.c b/src/libvlr/vlr_lu_fsm.c
index b36e4e3..c6fd080 100644
--- a/src/libvlr/vlr_lu_fsm.c
+++ b/src/libvlr/vlr_lu_fsm.c
@@ -846,6 +846,7 @@
 {
struct lu_fsm_priv *lfp = lu_fsm_fi_priv(fi);
struct vlr_subscr *vsub = lfp->vsub;
+   bool umts_aka;
 
LOGPFSM(fi, "%s()\n", __func__);
 
@@ -862,9 +863,22 @@
return;
}
 
+   switch (vsub->sec_ctx) {
+   case VLR_SEC_CTX_GSM:
+   umts_aka = false;
+   break;
+   case VLR_SEC_CTX_UMTS:
+   umts_aka = true;
+   break;
+   default:
+   LOGPFSML(fi, LOGL_ERROR, "Cannot start ciphering, security 
context is not established\n");
+   lu_fsm_failure(fi, GSM48_REJECT_NETWORK_FAILURE);
+   return;
+   }
+
if (vlr_set_ciph_mode(vsub->vlr, fi, lfp->msc_conn_ref,
  lfp->ciphering_required,
- vlr_use_umts_aka(>last_tuple->vec, 
lfp->is_r99),
+ umts_aka,
  vsub->vlr->cfg.retrieve_imeisv_ciphered)) {
LOGPFSML(fi, LOGL_ERROR,
 "Failed to send Ciphering Mode Command\n");
diff --git a/tests/msc_vlr/msc_vlr_test_gsm_ciph.c 
b/tests/msc_vlr/msc_vlr_test_gsm_ciph.c
index d8c0441..57284a3 100644
--- a/tests/msc_vlr/msc_vlr_test_gsm_ciph.c
+++ b/tests/msc_vlr/msc_vlr_test_gsm_ciph.c
@@ -901,10 +901,7 @@
VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d");
 
btw("MS sends *GSM AKA* Authen Response, VLR accepts and sends 
Ciphering Mode Command to MS");
-   /* EXPECTING ERROR: should be the GSM AKA kc:
expect_cipher_mode_cmd("7a75f0ac9b844400");
-* but instead is the UMTS AKA derived kc: */
-   expect_cipher_mode_cmd("85c985d6f980e18e");
ms_sends_msg("0554" "dacc4b26");
OSMO_ASSERT(cipher_mode_cmd_sent);
VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d");
@@ -947,10 +944,7 @@
thwart_rx_non_initial_requests();
 
btw("MS sends *GSM AKA* Authen Response, VLR accepts and requests 
Ciphering");
-   /* EXPECTING ERROR: should be the GSM AKA kc:
expect_cipher_mode_cmd("da149b11d473f400");
-* but instead is the UMTS AKA derived kc: */
-   expect_cipher_mode_cmd("dec1351054200a58");
ms_sends_msg("0554" "2fb4cfad");

Build failure of network:osmocom:latest/openbsc in Debian_9.0/aarch64

2018-03-10 Thread OBS Notification
Visit 
https://build.opensuse.org/package/live_build_log/network:osmocom:latest/openbsc/Debian_9.0/aarch64

Package network:osmocom:latest/openbsc failed to build in Debian_9.0/aarch64

Check out the package for editing:
  osc checkout network:osmocom:latest openbsc

Last lines of build log:
[  743s] make[5]: *** [check-local] Error 1
[  743s] make[5]: Leaving directory '/usr/src/packages/BUILD/openbsc/tests'
[  743s] Makefile:586: recipe for target 'check-am' failed
[  743s] make[4]: *** [check-am] Error 2
[  743s] make[4]: Leaving directory '/usr/src/packages/BUILD/openbsc/tests'
[  743s] Makefile:438: recipe for target 'check-recursive' failed
[  743s] make[3]: *** [check-recursive] Error 1
[  743s] make[3]: Leaving directory '/usr/src/packages/BUILD/openbsc/tests'
[  743s] Makefile:520: recipe for target 'check-recursive' failed
[  743s] make[2]: *** [check-recursive] Error 1
[  743s] make[2]: Leaving directory '/usr/src/packages/BUILD/openbsc'
[  743s] Makefile:811: recipe for target 'check' failed
[  743s] make[1]: *** [check] Error 2
[  744s] make[1]: Leaving directory '/usr/src/packages/BUILD/openbsc'
[  744s] dh_auto_test: make -j1 check VERBOSE=1 returned exit code 2
[  744s] debian/rules:13: recipe for target 'build' failed
[  744s] make: *** [build] Error 2
[  744s] dpkg-buildpackage: error: debian/rules build gave error exit status 2
[  744s] 
[  744s] obs-arm-3 failed "build openbsc_1.0.0.dsc" at Sat Mar 10 14:11:25 UTC 
2018.
[  744s] 
[  744s] ### VM INTERACTION START ###
[  747s] [  686.721738] sysrq: SysRq : Power Off
[  747s] [  686.733866] reboot: Power down
[  747s] qemu-system-aarch64: Failed to unlink socket 
/var/cache/obs/worker/root_10/root.monitor: Permission denied
[  747s] ### VM INTERACTION END ###
[  747s] 
[  747s] obs-arm-3 failed "build openbsc_1.0.0.dsc" at Sat Mar 10 14:11:29 UTC 
2018.
[  747s] 

-- 
Configure notifications at https://build.opensuse.org/user/notifications
openSUSE Build Service (https://build.opensuse.org/)


Build failure of network:osmocom:latest/openbsc in Debian_9.0/x86_64

2018-03-10 Thread OBS Notification
Visit 
https://build.opensuse.org/package/live_build_log/network:osmocom:latest/openbsc/Debian_9.0/x86_64

Package network:osmocom:latest/openbsc failed to build in Debian_9.0/x86_64

Check out the package for editing:
  osc checkout network:osmocom:latest openbsc

Last lines of build log:
[  163s] Makefile:736: recipe for target 'check-local' failed
[  163s] make[5]: *** [check-local] Error 1
[  163s] make[5]: Leaving directory '/usr/src/packages/BUILD/openbsc/tests'
[  163s] Makefile:586: recipe for target 'check-am' failed
[  163s] make[4]: *** [check-am] Error 2
[  163s] make[4]: Leaving directory '/usr/src/packages/BUILD/openbsc/tests'
[  163s] Makefile:438: recipe for target 'check-recursive' failed
[  163s] make[3]: *** [check-recursive] Error 1
[  163s] make[3]: Leaving directory '/usr/src/packages/BUILD/openbsc/tests'
[  163s] Makefile:520: recipe for target 'check-recursive' failed
[  163s] make[2]: *** [check-recursive] Error 1
[  163s] make[2]: Leaving directory '/usr/src/packages/BUILD/openbsc'
[  163s] Makefile:811: recipe for target 'check' failed
[  163s] make[1]: *** [check] Error 2
[  163s] make[1]: Leaving directory '/usr/src/packages/BUILD/openbsc'
[  163s] dh_auto_test: make -j1 check VERBOSE=1 returned exit code 2
[  163s] debian/rules:13: recipe for target 'build' failed
[  163s] make: *** [build] Error 2
[  163s] dpkg-buildpackage: error: debian/rules build gave error exit status 2
[  163s] 
[  163s] lamb20 failed "build openbsc_1.0.0.dsc" at Sat Mar 10 13:08:19 UTC 
2018.
[  163s] 
[  163s] ### VM INTERACTION START ###
[  166s] [  158.509191] reboot: Power down
[  166s] qemu-system-x86_64: Failed to unlink socket 
/var/cache/obs/worker/root_3/root.monitor: Permission denied
[  166s] ### VM INTERACTION END ###
[  166s] 
[  166s] lamb20 failed "build openbsc_1.0.0.dsc" at Sat Mar 10 13:08:23 UTC 
2018.
[  166s] 

-- 
Configure notifications at https://build.opensuse.org/user/notifications
openSUSE Build Service (https://build.opensuse.org/)


Build failure of network:osmocom:latest/openbsc in Debian_9.0/i586

2018-03-10 Thread OBS Notification
Visit 
https://build.opensuse.org/package/live_build_log/network:osmocom:latest/openbsc/Debian_9.0/i586

Package network:osmocom:latest/openbsc failed to build in Debian_9.0/i586

Check out the package for editing:
  osc checkout network:osmocom:latest openbsc

Last lines of build log:
[  159s] Makefile:736: recipe for target 'check-local' failed
[  159s] make[5]: *** [check-local] Error 1
[  159s] make[5]: Leaving directory '/usr/src/packages/BUILD/openbsc/tests'
[  159s] Makefile:586: recipe for target 'check-am' failed
[  159s] make[4]: *** [check-am] Error 2
[  159s] make[4]: Leaving directory '/usr/src/packages/BUILD/openbsc/tests'
[  159s] Makefile:438: recipe for target 'check-recursive' failed
[  159s] make[3]: *** [check-recursive] Error 1
[  159s] make[3]: Leaving directory '/usr/src/packages/BUILD/openbsc/tests'
[  159s] Makefile:520: recipe for target 'check-recursive' failed
[  159s] make[2]: *** [check-recursive] Error 1
[  159s] make[2]: Leaving directory '/usr/src/packages/BUILD/openbsc'
[  159s] Makefile:811: recipe for target 'check' failed
[  159s] make[1]: *** [check] Error 2
[  159s] make[1]: Leaving directory '/usr/src/packages/BUILD/openbsc'
[  159s] dh_auto_test: make -j1 check VERBOSE=1 returned exit code 2
[  159s] debian/rules:13: recipe for target 'build' failed
[  159s] make: *** [build] Error 2
[  159s] dpkg-buildpackage: error: debian/rules build gave error exit status 2
[  160s] 
[  160s] lamb64 failed "build openbsc_1.0.0.dsc" at Sat Mar 10 13:05:30 UTC 
2018.
[  160s] 
[  160s] ### VM INTERACTION START ###
[  163s] [  155.380281] reboot: Power down
[  163s] qemu-system-x86_64: Failed to unlink socket 
/var/cache/obs/worker/root_8/root.monitor: Permission denied
[  163s] ### VM INTERACTION END ###
[  163s] 
[  163s] lamb64 failed "build openbsc_1.0.0.dsc" at Sat Mar 10 13:05:33 UTC 
2018.
[  163s] 

-- 
Configure notifications at https://build.opensuse.org/user/notifications
openSUSE Build Service (https://build.opensuse.org/)


[MERGED] osmo-bsc[master]: debian: Move abisip-find from osmo-bsc to its own package

2018-03-10 Thread Harald Welte
Harald Welte has submitted this change and it was merged.

Change subject: debian: Move abisip-find from osmo-bsc to its own package
..


debian: Move abisip-find from osmo-bsc to its own package

In some scenarios osmo-bsc is not required, only abisip-find to do the
initial set-up of the BTS, so no need to install osmo-bsc with it.

Change-Id: If3d476a1bd67abcb9cff241ab5989db923873986
---
A debian/abisip-find.install
M debian/control
M debian/osmo-bsc.install
3 files changed, 7 insertions(+), 1 deletion(-)

Approvals:
  Harald Welte: Looks good to me, approved
  Jenkins Builder: Verified



diff --git a/debian/abisip-find.install b/debian/abisip-find.install
new file mode 100644
index 000..1e19459
--- /dev/null
+++ b/debian/abisip-find.install
@@ -0,0 +1 @@
+usr/bin/abisip-find
diff --git a/debian/control b/debian/control
index fae280a..c2627a1 100644
--- a/debian/control
+++ b/debian/control
@@ -36,6 +36,12 @@
 Depends: osmo-bsc (= ${binary:Version}), ${misc:Depends}
 Description: OsmoBSC: Osmocom's Base Station Controller for 2G 
circuit-switched mobile networks
 
+Package: abisip-find
+Architecture: any
+Multi-Arch: foreign
+Depends: ${misc:Depends}, ${shlibs:Depends}
+Description: Command line utility to find ip.access compatible BTS
+
 Package: osmo-bsc-ipaccess-utils
 Architecture: any
 Multi-Arch: foreign
diff --git a/debian/osmo-bsc.install b/debian/osmo-bsc.install
index 9a2bc3f..5dc1e0f 100644
--- a/debian/osmo-bsc.install
+++ b/debian/osmo-bsc.install
@@ -1,4 +1,3 @@
 usr/bin/osmo-bsc
-usr/bin/abisip-find
 usr/share/doc/osmo-bsc/examples/osmo-bsc/osmo-bsc_custom-sccp.cfg 
usr/share/doc/osmo-bsc/examples
 usr/share/doc/osmo-bsc/examples/osmo-bsc/osmo-bsc.cfg 
usr/share/doc/osmo-bsc/examples

-- 
To view, visit https://gerrit.osmocom.org/7175
To unsubscribe, visit https://gerrit.osmocom.org/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: If3d476a1bd67abcb9cff241ab5989db923873986
Gerrit-PatchSet: 1
Gerrit-Project: osmo-bsc
Gerrit-Branch: master
Gerrit-Owner: Pau Espin Pedrol 
Gerrit-Reviewer: Harald Welte 
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: Pau Espin Pedrol 
Gerrit-Reviewer: lynxis lazus 


osmo-bsc[master]: debian: Move abisip-find from osmo-bsc to its own package

2018-03-10 Thread Harald Welte

Patch Set 1: Code-Review+2

(1 comment)

https://gerrit.osmocom.org/#/c/7175/1/debian/control
File debian/control:

PS1, Line 43: ip.access compatible
Abis/IP BTS


-- 
To view, visit https://gerrit.osmocom.org/7175
To unsubscribe, visit https://gerrit.osmocom.org/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: If3d476a1bd67abcb9cff241ab5989db923873986
Gerrit-PatchSet: 1
Gerrit-Project: osmo-bsc
Gerrit-Branch: master
Gerrit-Owner: Pau Espin Pedrol 
Gerrit-Reviewer: Harald Welte 
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: Pau Espin Pedrol 
Gerrit-Reviewer: lynxis lazus 
Gerrit-HasComments: Yes


osmo-gsm-tester[master]: WIP: Introduce ip.access nanobts support

2018-03-10 Thread Harald Welte

Patch Set 2: Code-Review+1

-- 
To view, visit https://gerrit.osmocom.org/7168
To unsubscribe, visit https://gerrit.osmocom.org/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: Ibaea025b3a503dfe897d36701234445de6d49f82
Gerrit-PatchSet: 2
Gerrit-Project: osmo-gsm-tester
Gerrit-Branch: master
Gerrit-Owner: Pau Espin Pedrol 
Gerrit-Reviewer: Harald Welte 
Gerrit-Reviewer: Jenkins Builder
Gerrit-HasComments: No


osmo-gsm-tester[master]: Create Pcu abstract class and make OsmoPcu inherit from it

2018-03-10 Thread Harald Welte

Patch Set 2: Code-Review+1

-- 
To view, visit https://gerrit.osmocom.org/7158
To unsubscribe, visit https://gerrit.osmocom.org/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: Ia3fd4551d1f2932362f99f7d44d65f8ae4fd1979
Gerrit-PatchSet: 2
Gerrit-Project: osmo-gsm-tester
Gerrit-Branch: master
Gerrit-Owner: Pau Espin Pedrol 
Gerrit-Reviewer: Harald Welte 
Gerrit-Reviewer: Jenkins Builder
Gerrit-HasComments: No


osmo-gsm-tester[master]: Introduce PowerSupply interface and PowerSupplySispm

2018-03-10 Thread Harald Welte

Patch Set 2: Code-Review+1

-- 
To view, visit https://gerrit.osmocom.org/7167
To unsubscribe, visit https://gerrit.osmocom.org/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: I981c260eca1a61657147e6d83b4226618088223c
Gerrit-PatchSet: 2
Gerrit-Project: osmo-gsm-tester
Gerrit-Branch: master
Gerrit-Owner: Pau Espin Pedrol 
Gerrit-Reviewer: Harald Welte 
Gerrit-Reviewer: Jenkins Builder
Gerrit-HasComments: No


[MERGED] osmo-bts[master]: sysmobts: Compatibility with older firmware versions

2018-03-10 Thread Harald Welte
Harald Welte has submitted this change and it was merged.

Change subject: sysmobts: Compatibility with older firmware versions
..


sysmobts: Compatibility with older firmware versions

When using a firmware version < 3.6, the call to l1if_mute_rf()
returned an error, which caused an OML CHG ADM STATE NACK.

Let's check if the l1if_mute_rf() call is an un-mute for all
timeslots (which apparently we do always at start-up).  If it is, then
acknowledge it even if muting is not supported by earlier firmwares.

I suppose the change causing this problem was introduced in:
commit b26b8fc77692e851469f3e27b9aeaeff233ffd2e
Author: Holger Hans Peter Freyther 
Date:   Tue Mar 4 15:03:59 2014 +0100
sysmobts: Do a RF mute at initialization when the RC is locked

With the current change applied, we can run the BTS with earlier
firmware versions than 3.6.0 again.  Tested with 3.1 and 2.4

Change-Id: I1a29c1031d96e65a0111bc812a90f2dbaf2a5aa3
---
M src/osmo-bts-sysmo/l1_if.c
1 file changed, 12 insertions(+), 1 deletion(-)

Approvals:
  Harald Welte: Looks good to me, approved
  Jenkins Builder: Verified



diff --git a/src/osmo-bts-sysmo/l1_if.c b/src/osmo-bts-sysmo/l1_if.c
index 60eacab..9aa5477 100644
--- a/src/osmo-bts-sysmo/l1_if.c
+++ b/src/osmo-bts-sysmo/l1_if.c
@@ -1322,7 +1322,6 @@
return l1if_req_compl(hdl, msg, activate_rf_compl_cb, NULL);
 }
 
-#if SUPERFEMTO_API_VERSION >= SUPERFEMTO_API(3,6,0)
 static void mute_handle_ts(struct gsm_bts_trx_ts *ts, int is_muted)
 {
int i;
@@ -1350,6 +1349,7 @@
}
 }
 
+#if SUPERFEMTO_API_VERSION >= SUPERFEMTO_API(3,6,0)
 static int mute_rf_compl_cb(struct gsm_bts_trx *trx, struct msgb *resp,
void *data)
 {
@@ -1388,8 +1388,11 @@
 /* mute/unmute RF time slots */
 int l1if_mute_rf(struct femtol1_hdl *hdl, uint8_t mute[8], l1if_compl_cb *cb)
 {
+   const uint8_t unmuted[8] = { 0,0,0,0,0,0,0,0 };
struct msgb *msg = sysp_msgb_alloc();
SuperFemto_Prim_t *sysp = msgb_sysprim(msg);
+   struct gsm_bts_trx *trx = hdl->phy_inst->trx;
+   int i;
 
LOGP(DL1C, LOGL_INFO, "Tx RF-MUTE.req (%d, %d, %d, %d, %d, %d, %d, 
%d)\n",
 mute[0], mute[1], mute[2], mute[3],
@@ -1399,6 +1402,14 @@
 #if SUPERFEMTO_API_VERSION < SUPERFEMTO_API(3,6,0)
LOGP(DL1C, LOGL_ERROR, "RF-MUTE.req not supported by SuperFemto\n");
msgb_free(msg);
+   /* always acknowledge an un-MUTE (which is a no-op if MUTE is not 
supported */
+   if (!memcmp(mute, unmuted, ARRAY_SIZE(mute))) {
+   bts_update_status(BTS_STATUS_RF_MUTE, mute[0]);
+   oml_mo_rf_lock_chg(>mo, mute, 1);
+   for (i = 0; i < ARRAY_SIZE(mute); ++i)
+   mute_handle_ts(>ts[i], mute[i]);
+   return 0;
+   }
return -ENOTSUP;
 #else
sysp->id = SuperFemto_PrimId_MuteRfReq;

-- 
To view, visit https://gerrit.osmocom.org/7197
To unsubscribe, visit https://gerrit.osmocom.org/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I1a29c1031d96e65a0111bc812a90f2dbaf2a5aa3
Gerrit-PatchSet: 4
Gerrit-Project: osmo-bts
Gerrit-Branch: master
Gerrit-Owner: Harald Welte 
Gerrit-Reviewer: Harald Welte 
Gerrit-Reviewer: Jenkins Builder


[MERGED] osmo-bts[master]: sysinfo.c: SI1 is optional; Send SI2 at TC=0 if no SI1 exists

2018-03-10 Thread Harald Welte
Harald Welte has submitted this change and it was merged.

Change subject: sysinfo.c: SI1 is optional; Send SI2 at TC=0 if no SI1 exists
..


sysinfo.c: SI1 is optional; Send SI2 at TC=0 if no SI1 exists

SI1 is only required if frequency hopping is used or if NCH is used. So it's 
optional.

If OsmoBTS has no SI1 configured, it will transmit the empty SI1 buffer
at TC=0, and as a result no valid SI will be broadcast at TC=0.

Change-Id: I41ab885c00e943199b2e939e98f30e267ecffbee
Closes: OS#3051
---
M src/common/sysinfo.c
1 file changed, 3 insertions(+), 1 deletion(-)

Approvals:
  Harald Welte: Looks good to me, approved
  Jenkins Builder: Verified



diff --git a/src/common/sysinfo.c b/src/common/sysinfo.c
index cf86380..6f7a387 100644
--- a/src/common/sysinfo.c
+++ b/src/common/sysinfo.c
@@ -73,7 +73,9 @@
 * present in a cell. If the MS finds another message
 * when TC = 0, it can assume that System Information
 * Type 1 is not in use.  */
-   return GSM_BTS_SI(bts, SYSINFO_TYPE_1);
+   if (GSM_BTS_HAS_SI(bts, SYSINFO_TYPE_1))
+   return GSM_BTS_SI(bts, SYSINFO_TYPE_1);
+   return GSM_BTS_SI(bts, SYSINFO_TYPE_2);
case 1:
/* A SI 2 message will be sent at least every time TC = 1. */
return GSM_BTS_SI(bts, SYSINFO_TYPE_2);

-- 
To view, visit https://gerrit.osmocom.org/7184
To unsubscribe, visit https://gerrit.osmocom.org/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I41ab885c00e943199b2e939e98f30e267ecffbee
Gerrit-PatchSet: 1
Gerrit-Project: osmo-bts
Gerrit-Branch: master
Gerrit-Owner: Harald Welte 
Gerrit-Reviewer: Harald Welte 
Gerrit-Reviewer: Jenkins Builder


osmo-bts[master]: sysinfo.c: SI1 is optional; Send SI2 at TC=0 if no SI1 exists

2018-03-10 Thread Harald Welte

Patch Set 1: Code-Review+2

-- 
To view, visit https://gerrit.osmocom.org/7184
To unsubscribe, visit https://gerrit.osmocom.org/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: I41ab885c00e943199b2e939e98f30e267ecffbee
Gerrit-PatchSet: 1
Gerrit-Project: osmo-bts
Gerrit-Branch: master
Gerrit-Owner: Harald Welte 
Gerrit-Reviewer: Harald Welte 
Gerrit-Reviewer: Jenkins Builder
Gerrit-HasComments: No


osmo-msc[master]: cosmetic: vlr_auth_fsm: clarify decision on UMTS AKA or GSM AKA

2018-03-10 Thread Harald Welte

Patch Set 3: Code-Review+2

-- 
To view, visit https://gerrit.osmocom.org/7193
To unsubscribe, visit https://gerrit.osmocom.org/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: I43f7f301ea85e518bac91f707391a53182e54fab
Gerrit-PatchSet: 3
Gerrit-Project: osmo-msc
Gerrit-Branch: master
Gerrit-Owner: Neels Hofmeyr 
Gerrit-Reviewer: Harald Welte 
Gerrit-Reviewer: Jenkins Builder
Gerrit-HasComments: No


osmo-msc[master]: cosmetic: vlr_auth_fsm: log RAN and size along with SRES/RES

2018-03-10 Thread Harald Welte

Patch Set 3: Code-Review+2

-- 
To view, visit https://gerrit.osmocom.org/7194
To unsubscribe, visit https://gerrit.osmocom.org/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: Ib0f9f573ffac2302fbd3ee28f48ccd8fce5fe286
Gerrit-PatchSet: 3
Gerrit-Project: osmo-msc
Gerrit-Branch: master
Gerrit-Owner: Neels Hofmeyr 
Gerrit-Reviewer: Harald Welte 
Gerrit-Reviewer: Jenkins Builder
Gerrit-HasComments: No


osmo-msc[master]: msc_vlr_test_umts_authen: test response with too short RES

2018-03-10 Thread Harald Welte

Patch Set 3: Code-Review+1

Similar to other patches before: Why are we doing this here and not in TTCN-3, 
particularly if it's about entire new tests?  I've asked the question before, 
but you didn't answer and instead keep senidng the patches.  Please at least 
let me know what the reasons are...

-- 
To view, visit https://gerrit.osmocom.org/7190
To unsubscribe, visit https://gerrit.osmocom.org/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: Ia1bc57b3dc1f3c3c654ba2d907b16ba925cd03e8
Gerrit-PatchSet: 3
Gerrit-Project: osmo-msc
Gerrit-Branch: master
Gerrit-Owner: Neels Hofmeyr 
Gerrit-Reviewer: Harald Welte 
Gerrit-Reviewer: Jenkins Builder
Gerrit-HasComments: No


osmo-msc[master]: gsm48_rx_mm_auth_resp(): pass is_r99 from classmark, not res...

2018-03-10 Thread Harald Welte

Patch Set 3: Code-Review+2

-- 
To view, visit https://gerrit.osmocom.org/7189
To unsubscribe, visit https://gerrit.osmocom.org/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: Ib7f7d89a8b9455d2c022d53d74328fa7488577f4
Gerrit-PatchSet: 3
Gerrit-Project: osmo-msc
Gerrit-Branch: master
Gerrit-Owner: Neels Hofmeyr 
Gerrit-Reviewer: Harald Welte 
Gerrit-Reviewer: Jenkins Builder
Gerrit-HasComments: No


osmo-msc[master]: msc_vlr_test_umts_authen: test response with only SRES half ...

2018-03-10 Thread Harald Welte

Patch Set 3: Code-Review+2

-- 
To view, visit https://gerrit.osmocom.org/7192
To unsubscribe, visit https://gerrit.osmocom.org/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: I0e9099625bd9d3de3db5ee29fbf81b2d8a30071d
Gerrit-PatchSet: 3
Gerrit-Project: osmo-msc
Gerrit-Branch: master
Gerrit-Owner: Neels Hofmeyr 
Gerrit-Reviewer: Harald Welte 
Gerrit-Reviewer: Jenkins Builder
Gerrit-HasComments: No


osmo-msc[master]: msc_vlr_test_umts_authen: test response with too short RES

2018-03-10 Thread Harald Welte

Patch Set 3: Code-Review+2

-- 
To view, visit https://gerrit.osmocom.org/7190
To unsubscribe, visit https://gerrit.osmocom.org/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: Ia1bc57b3dc1f3c3c654ba2d907b16ba925cd03e8
Gerrit-PatchSet: 3
Gerrit-Project: osmo-msc
Gerrit-Branch: master
Gerrit-Owner: Neels Hofmeyr 
Gerrit-Reviewer: Harald Welte 
Gerrit-Reviewer: Jenkins Builder
Gerrit-HasComments: No


osmo-msc[master]: msc_vlr_test_umts_authen: test response with too long RES

2018-03-10 Thread Harald Welte

Patch Set 3: Code-Review+2

-- 
To view, visit https://gerrit.osmocom.org/7191
To unsubscribe, visit https://gerrit.osmocom.org/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: Ie5473f06fc2d04c6a9f343da5764ec95b292a5f9
Gerrit-PatchSet: 3
Gerrit-Project: osmo-msc
Gerrit-Branch: master
Gerrit-Owner: Neels Hofmeyr 
Gerrit-Reviewer: Harald Welte 
Gerrit-Reviewer: Jenkins Builder
Gerrit-HasComments: No


osmo-msc[master]: cosmetic: gsm48_rx_mm_auth_resp(): log 'UMTS AKA', not 'R99 ...

2018-03-10 Thread Harald Welte

Patch Set 1: Code-Review+2

-- 
To view, visit https://gerrit.osmocom.org/7195
To unsubscribe, visit https://gerrit.osmocom.org/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: Iba43c685cbe238d96175267e9cc954b2f2f3e7fc
Gerrit-PatchSet: 1
Gerrit-Project: osmo-msc
Gerrit-Branch: master
Gerrit-Owner: Neels Hofmeyr 
Gerrit-Reviewer: Harald Welte 
Gerrit-Reviewer: Jenkins Builder
Gerrit-HasComments: No


osmo-msc[master]: vlr auth: gracefully reject malformed auth response

2018-03-10 Thread Harald Welte

Patch Set 3: Code-Review-1

(1 comment)

https://gerrit.osmocom.org/#/c/7188/3/src/libmsc/gsm_04_08.c
File src/libmsc/gsm_04_08.c:

Line 978:   return vlr_subscr_rx_auth_fail(conn->vsub, NULL);
> hmm, this is actually meant for the MM Authentication Failure message from 
I think zero RES in vlr_subscr_rx_auth_resp() is cleaner than 
vlr_subscr_rx_auth_fail() when we never actually received an AUTH FAIL


-- 
To view, visit https://gerrit.osmocom.org/7188
To unsubscribe, visit https://gerrit.osmocom.org/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: I4179a290069ac61d0662de4ec7ca3edb76988899
Gerrit-PatchSet: 3
Gerrit-Project: osmo-msc
Gerrit-Branch: master
Gerrit-Owner: Neels Hofmeyr 
Gerrit-Reviewer: Harald Welte 
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: Neels Hofmeyr 
Gerrit-HasComments: Yes


osmo-msc[master]: vlr: fix GSM AKA in a UMTS AKA capable environment

2018-03-10 Thread Harald Welte

Patch Set 2: Code-Review+2 Verified+1

-- 
To view, visit https://gerrit.osmocom.org/7187
To unsubscribe, visit https://gerrit.osmocom.org/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: I42ce51ae979f42d173a45ae69273071c426bf97c
Gerrit-PatchSet: 2
Gerrit-Project: osmo-msc
Gerrit-Branch: master
Gerrit-Owner: Neels Hofmeyr 
Gerrit-Reviewer: Harald Welte 
Gerrit-Reviewer: Jenkins Builder
Gerrit-HasComments: No


osmo-msc[master]: msc_vlr_test_gsm_ciph: add test for GSM AKA in UMTS environment

2018-03-10 Thread Harald Welte

Patch Set 2: Verified+1

-- 
To view, visit https://gerrit.osmocom.org/7186
To unsubscribe, visit https://gerrit.osmocom.org/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: I85f12a20dcd701e671188e56811ec7b58d84da82
Gerrit-PatchSet: 2
Gerrit-Project: osmo-msc
Gerrit-Branch: master
Gerrit-Owner: Neels Hofmeyr 
Gerrit-Reviewer: Harald Welte 
Gerrit-Reviewer: Jenkins Builder
Gerrit-HasComments: No


osmo-msc[master]: msc_vlr_test_gsm_ciph: add test for GSM AKA in UMTS environment

2018-03-10 Thread Harald Welte

Patch Set 2: Code-Review+2

-- 
To view, visit https://gerrit.osmocom.org/7186
To unsubscribe, visit https://gerrit.osmocom.org/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: I85f12a20dcd701e671188e56811ec7b58d84da82
Gerrit-PatchSet: 2
Gerrit-Project: osmo-msc
Gerrit-Branch: master
Gerrit-Owner: Neels Hofmeyr 
Gerrit-Reviewer: Harald Welte 
Gerrit-Reviewer: Jenkins Builder
Gerrit-HasComments: No


osmo-msc[master]: msc_vlr_tests: clearly separate Ciph Mode from Security Mode...

2018-03-10 Thread Harald Welte

Patch Set 1: Code-Review+2

-- 
To view, visit https://gerrit.osmocom.org/7185
To unsubscribe, visit https://gerrit.osmocom.org/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: Ica93ed06c4c63dc6768736d25231de8068001114
Gerrit-PatchSet: 1
Gerrit-Project: osmo-msc
Gerrit-Branch: master
Gerrit-Owner: Neels Hofmeyr 
Gerrit-Reviewer: Harald Welte 
Gerrit-Reviewer: Jenkins Builder
Gerrit-HasComments: No


[MERGED] osmo-msc[master]: silent call: clarify rc and error messages logged on vty

2018-03-10 Thread Harald Welte
Harald Welte has submitted this change and it was merged.

Change subject: silent call: clarify rc and error messages logged on vty
..


silent call: clarify rc and error messages logged on vty

In gsm_silent_call_{start,stop}(), return meaningful error codes and interpret
them on the VTY to clearly indicate the result.

Change-Id: Id5abb8f2ba901689e03040af8e51483b6c618e7f
---
M src/libmsc/silent_call.c
M src/libmsc/vty_interface_layer3.c
2 files changed, 40 insertions(+), 17 deletions(-)

Approvals:
  Harald Welte: Looks good to me, approved
  Jenkins Builder: Verified



diff --git a/src/libmsc/silent_call.c b/src/libmsc/silent_call.c
index f3291d7..1ea2305 100644
--- a/src/libmsc/silent_call.c
+++ b/src/libmsc/silent_call.c
@@ -30,6 +30,7 @@
 #include 
 #include 
 #include 
+#include 
 
 /* paging of the requested subscriber has completed */
 static int paging_cb_silent(unsigned int hooknum, unsigned int event,
@@ -130,7 +131,9 @@
 * A-interface. */
req = subscr_request_conn(vsub, paging_cb_silent, data,
  "establish silent call");
-   return req != NULL;
+   if (!req)
+   return -ENODEV;
+   return 0;
 }
 
 /* end a silent call with a given subscriber */
@@ -139,12 +142,18 @@
struct gsm_subscriber_connection *conn;
 
conn = connection_for_subscr(vsub);
-   if (!conn)
-   return -EINVAL;
+   if (!conn) {
+   LOGP(DMM, LOGL_ERROR, "%s: Cannot stop silent call, no 
connection for subscriber\n",
+vlr_subscr_name(vsub));
+   return -ENODEV;
+   }
 
/* did we actually establish a silent call for this guy? */
-   if (!conn->silent_call)
-   return -EINVAL;
+   if (!conn->silent_call) {
+   LOGP(DMM, LOGL_ERROR, "%s: Cannot stop silent call, subscriber 
has no active silent call\n",
+vlr_subscr_name(vsub));
+   return -ENOENT;
+   }
 
 #if BEFORE_MSCSPLIT
/* Re-enable this log output once we can obtain this information via
diff --git a/src/libmsc/vty_interface_layer3.c 
b/src/libmsc/vty_interface_layer3.c
index 06a4267..05f5b63 100644
--- a/src/libmsc/vty_interface_layer3.c
+++ b/src/libmsc/vty_interface_layer3.c
@@ -524,16 +524,20 @@
type = RSL_CHANNEED_ANY;/* Defaults to ANY */
 
rc = gsm_silent_call_start(vsub, vty, type);
-   if (rc <= 0) {
-   vty_out(vty, "%% Subscriber not attached%s",
-   VTY_NEWLINE);
-   vlr_subscr_put(vsub);
-   return CMD_WARNING;
+   switch (rc) {
+   case -ENODEV:
+   vty_out(vty, "%% Subscriber not attached%s", VTY_NEWLINE);
+   break;
+   default:
+   if (rc)
+   vty_out(vty, "%% Cannot start silent call (rc=%d)%s", 
rc, VTY_NEWLINE);
+   else
+   vty_out(vty, "%% Silent call initiated%s", VTY_NEWLINE);
+   break;
}
 
vlr_subscr_put(vsub);
-
-   return CMD_SUCCESS;
+   return rc ? CMD_WARNING : CMD_SUCCESS;
 }
 
 DEFUN(subscriber_silent_call_stop,
@@ -553,14 +557,24 @@
}
 
rc = gsm_silent_call_stop(vsub);
-   if (rc < 0) {
-   vlr_subscr_put(vsub);
-   return CMD_WARNING;
+   switch (rc) {
+   case -ENODEV:
+   vty_out(vty, "%% No active connection for subscriber%s", 
VTY_NEWLINE);
+   break;
+   case -ENOENT:
+   vty_out(vty, "%% Subscriber has no silent call active%s",
+   VTY_NEWLINE);
+   break;
+   default:
+   if (rc)
+   vty_out(vty, "%% Cannot stop silent call (rc=%d)%s", 
rc, VTY_NEWLINE);
+   else
+   vty_out(vty, "%% Silent call stopped%s", VTY_NEWLINE);
+   break;
}
 
vlr_subscr_put(vsub);
-
-   return CMD_SUCCESS;
+   return rc ? CMD_WARNING : CMD_SUCCESS;
 }
 
 DEFUN(subscriber_ussd_notify,

-- 
To view, visit https://gerrit.osmocom.org/7181
To unsubscribe, visit https://gerrit.osmocom.org/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: Id5abb8f2ba901689e03040af8e51483b6c618e7f
Gerrit-PatchSet: 2
Gerrit-Project: osmo-msc
Gerrit-Branch: master
Gerrit-Owner: Neels Hofmeyr 
Gerrit-Reviewer: Harald Welte 
Gerrit-Reviewer: Jenkins Builder


[MERGED] osmo-msc[master]: vty: add 'msisdn' as alias for 'extension'

2018-03-10 Thread Harald Welte
Harald Welte has submitted this change and it was merged.

Change subject: vty: add 'msisdn' as alias for 'extension'
..


vty: add 'msisdn' as alias for 'extension'

Rationale: in the HLR, it is called 'msisdn' after the database column, so a
user going back and forth between osmo-hlr and osmo-msc would appreciate being
able to type 'msisdn' in the MSC's vty as well.

Change-Id: I7b46f9736421e8edd8a95ae89e025ebe486fde4c
---
M src/libmsc/vty_interface_layer3.c
1 file changed, 3 insertions(+), 2 deletions(-)

Approvals:
  Harald Welte: Looks good to me, approved
  Jenkins Builder: Verified



diff --git a/src/libmsc/vty_interface_layer3.c 
b/src/libmsc/vty_interface_layer3.c
index b0243c3..6def359 100644
--- a/src/libmsc/vty_interface_layer3.c
+++ b/src/libmsc/vty_interface_layer3.c
@@ -343,9 +343,10 @@
 
return NULL;
 }
-#define SUBSCR_TYPES "(extension|imsi|tmsi|id)"
+#define SUBSCR_TYPES "(msisdn|extension|imsi|tmsi|id)"
 #define SUBSCR_HELP "Operations on a Subscriber\n" \
-   "Identify subscriber by extension (phone number)\n" \
+   "Identify subscriber by MSISDN (phone number)\n"\
+   "Legacy alias for 'msisdn'\n"   \
"Identify subscriber by IMSI\n" \
"Identify subscriber by TMSI\n" \
"Identify subscriber by database ID\n"  \

-- 
To view, visit https://gerrit.osmocom.org/7178
To unsubscribe, visit https://gerrit.osmocom.org/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I7b46f9736421e8edd8a95ae89e025ebe486fde4c
Gerrit-PatchSet: 2
Gerrit-Project: osmo-msc
Gerrit-Branch: master
Gerrit-Owner: Neels Hofmeyr 
Gerrit-Reviewer: Harald Welte 
Gerrit-Reviewer: Jenkins Builder


[MERGED] osmo-msc[master]: fix: clear vlr_subscr->msc_conn_ref when the conn is discarded

2018-03-10 Thread Harald Welte
Harald Welte has submitted this change and it was merged.

Change subject: fix: clear vlr_subscr->msc_conn_ref when the conn is discarded
..


fix: clear vlr_subscr->msc_conn_ref when the conn is discarded

Before this, it was for example possible to crash the MSC by the vty 'show
subscriber' command, which would dereference a potentially stale
vsub->msc_conn_ref pointer.

Related: OS#3050
Change-Id: Ia4105d9f135ba3216ad3c86157be7658b1d568fb
---
M src/libmsc/osmo_msc.c
1 file changed, 1 insertion(+), 0 deletions(-)

Approvals:
  Harald Welte: Looks good to me, approved
  Jenkins Builder: Verified



diff --git a/src/libmsc/osmo_msc.c b/src/libmsc/osmo_msc.c
index 1478c19..f6df0d2 100644
--- a/src/libmsc/osmo_msc.c
+++ b/src/libmsc/osmo_msc.c
@@ -228,6 +228,7 @@
DEBUGP(DRLL, "subscr %s: Freeing subscriber connection\n",
   vlr_subscr_name(conn->vsub));
msc_subscr_cleanup(conn->vsub);
+   conn->vsub->msc_conn_ref = NULL;
vlr_subscr_put(conn->vsub);
conn->vsub = NULL;
} else

-- 
To view, visit https://gerrit.osmocom.org/7176
To unsubscribe, visit https://gerrit.osmocom.org/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: Ia4105d9f135ba3216ad3c86157be7658b1d568fb
Gerrit-PatchSet: 3
Gerrit-Project: osmo-msc
Gerrit-Branch: master
Gerrit-Owner: Neels Hofmeyr 
Gerrit-Reviewer: Harald Welte 
Gerrit-Reviewer: Jenkins Builder


[MERGED] osmo-msc[master]: msc_main: do not say 'osmo-nitb' in the usage

2018-03-10 Thread Harald Welte
Harald Welte has submitted this change and it was merged.

Change subject: msc_main: do not say 'osmo-nitb' in the usage
..


msc_main: do not say 'osmo-nitb' in the usage

Change-Id: I2090097dc0d7e0251c116b95b802076df3419455
---
M src/osmo-msc/msc_main.c
1 file changed, 1 insertion(+), 1 deletion(-)

Approvals:
  Harald Welte: Looks good to me, approved
  Jenkins Builder: Verified



diff --git a/src/osmo-msc/msc_main.c b/src/osmo-msc/msc_main.c
index 00f132b..aba74b6 100644
--- a/src/osmo-msc/msc_main.c
+++ b/src/osmo-msc/msc_main.c
@@ -112,7 +112,7 @@
 
 static void print_usage()
 {
-   printf("Usage: osmo-nitb\n");
+   printf("Usage: osmo-msc\n");
 }
 
 static void print_help()

-- 
To view, visit https://gerrit.osmocom.org/7180
To unsubscribe, visit https://gerrit.osmocom.org/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I2090097dc0d7e0251c116b95b802076df3419455
Gerrit-PatchSet: 2
Gerrit-Project: osmo-msc
Gerrit-Branch: master
Gerrit-Owner: Neels Hofmeyr 
Gerrit-Reviewer: Harald Welte 
Gerrit-Reviewer: Jenkins Builder


[MERGED] osmo-msc[master]: vty: add 'subscriber ... paging' cmd

2018-03-10 Thread Harald Welte
Harald Welte has submitted this change and it was merged.

Change subject: vty: add 'subscriber ... paging' cmd
..


vty: add 'subscriber ... paging' cmd

Allow issuing an empty paging from the VTY, for debugging purposes.

Change-Id: I403904cb789ece699f14b4cbd52c336eb02d45e4
---
M src/libmsc/vty_interface_layer3.c
1 file changed, 26 insertions(+), 0 deletions(-)

Approvals:
  Harald Welte: Looks good to me, approved
  Jenkins Builder: Verified



diff --git a/src/libmsc/vty_interface_layer3.c 
b/src/libmsc/vty_interface_layer3.c
index 6def359..06a4267 100644
--- a/src/libmsc/vty_interface_layer3.c
+++ b/src/libmsc/vty_interface_layer3.c
@@ -608,6 +608,31 @@
return CMD_SUCCESS;
 }
 
+DEFUN(subscriber_paging,
+  subscriber_paging_cmd,
+  "subscriber " SUBSCR_TYPES " ID paging",
+  SUBSCR_HELP "Issue an empty Paging for the subscriber (for debugging)\n")
+{
+   struct gsm_network *gsmnet = gsmnet_from_vty(vty);
+   struct vlr_subscr *vsub = get_vsub_by_argv(gsmnet, argv[0], argv[1]);
+   struct subscr_request *req;
+
+   if (!vsub) {
+   vty_out(vty, "%% No subscriber found for %s %s%s",
+   argv[0], argv[1], VTY_NEWLINE);
+   return CMD_WARNING;
+   }
+
+   req = subscr_request_conn(vsub, NULL, NULL, "manual Paging from VTY");
+   if (req)
+   vty_out(vty, "%% paging subscriber%s", VTY_NEWLINE);
+   else
+   vty_out(vty, "%% paging subscriber failed%s", VTY_NEWLINE);
+
+   vlr_subscr_put(vsub);
+   return req ? CMD_SUCCESS : CMD_WARNING;
+}
+
 static int loop_by_char(uint8_t ch)
 {
switch (ch) {
@@ -992,6 +1017,7 @@
install_element_ve(_ussd_notify_cmd);
install_element_ve(_mstest_close_cmd);
install_element_ve(_mstest_open_cmd);
+   install_element_ve(_paging_cmd);
install_element_ve(_stats_cmd);
install_element_ve(_smsqueue_cmd);
install_element_ve(_fltr_imsi_cmd);

-- 
To view, visit https://gerrit.osmocom.org/7179
To unsubscribe, visit https://gerrit.osmocom.org/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I403904cb789ece699f14b4cbd52c336eb02d45e4
Gerrit-PatchSet: 2
Gerrit-Project: osmo-msc
Gerrit-Branch: master
Gerrit-Owner: Neels Hofmeyr 
Gerrit-Reviewer: Harald Welte 
Gerrit-Reviewer: Jenkins Builder


[MERGED] osmo-msc[master]: vty: drop unused commands

2018-03-10 Thread Harald Welte
Harald Welte has submitted this change and it was merged.

Change subject: vty: drop unused commands
..


vty: drop unused commands

Change-Id: I76d6777ebe9105b8abf37993b86c3749a7e18008
---
M src/libmsc/vty_interface_layer3.c
1 file changed, 0 insertions(+), 30 deletions(-)

Approvals:
  Harald Welte: Looks good to me, approved
  Jenkins Builder: Verified



diff --git a/src/libmsc/vty_interface_layer3.c 
b/src/libmsc/vty_interface_layer3.c
index 6ed2ade..b0243c3 100644
--- a/src/libmsc/vty_interface_layer3.c
+++ b/src/libmsc/vty_interface_layer3.c
@@ -726,34 +726,6 @@
return CMD_SUCCESS;
 }
 
-#define A3A8_ALG_TYPES "(none|xor|comp128v1)"
-#define A3A8_ALG_HELP  \
-   "Use No A3A8 algorithm\n"   \
-   "Use XOR algorithm\n"   \
-   "Use COMP128v1 algorithm\n"
-
-DEFUN(ena_subscr_a3a8,
-  ena_subscr_a3a8_cmd,
-  "subscriber " SUBSCR_TYPES " ID a3a8 " A3A8_ALG_TYPES " [KI]",
-  SUBSCR_HELP "Set a3a8 parameters for the subscriber\n"
-  A3A8_ALG_HELP "Encryption Key Ki\n")
-{
-   vty_out(vty, "%% 'subscriber a3a8' is no longer supported.%s"
-   "%% This is now up to osmo-hlr.%s",
-   VTY_NEWLINE, VTY_NEWLINE);
-   return CMD_WARNING;
-}
-
-DEFUN(subscriber_update,
-  subscriber_update_cmd,
-  "subscriber " SUBSCR_TYPES " ID update",
-  SUBSCR_HELP "Update the subscriber data from the dabase.\n")
-{
-   vty_out(vty, "%% 'subscriber update' is no longer supported.%s",
-   VTY_NEWLINE);
-   return CMD_WARNING;
-}
-
 static int scall_cbfn(unsigned int subsys, unsigned int signal,
void *handler_data, void *signal_data)
 {
@@ -1019,13 +991,11 @@
install_element_ve(_ussd_notify_cmd);
install_element_ve(_mstest_close_cmd);
install_element_ve(_mstest_open_cmd);
-   install_element_ve(_update_cmd);
install_element_ve(_stats_cmd);
install_element_ve(_smsqueue_cmd);
install_element_ve(_fltr_imsi_cmd);
 
install_element(ENABLE_NODE, _subscr_expire_cmd);
-   install_element(ENABLE_NODE, _subscr_a3a8_cmd);
install_element(ENABLE_NODE, _trigger_cmd);
install_element(ENABLE_NODE, _max_cmd);
install_element(ENABLE_NODE, _clear_cmd);

-- 
To view, visit https://gerrit.osmocom.org/7177
To unsubscribe, visit https://gerrit.osmocom.org/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I76d6777ebe9105b8abf37993b86c3749a7e18008
Gerrit-PatchSet: 2
Gerrit-Project: osmo-msc
Gerrit-Branch: master
Gerrit-Owner: Neels Hofmeyr 
Gerrit-Reviewer: Harald Welte 
Gerrit-Reviewer: Jenkins Builder


osmo-msc[master]: silent call: clarify rc and error messages logged on vty

2018-03-10 Thread Harald Welte

Patch Set 2: Code-Review+2

-- 
To view, visit https://gerrit.osmocom.org/7181
To unsubscribe, visit https://gerrit.osmocom.org/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: Id5abb8f2ba901689e03040af8e51483b6c618e7f
Gerrit-PatchSet: 2
Gerrit-Project: osmo-msc
Gerrit-Branch: master
Gerrit-Owner: Neels Hofmeyr 
Gerrit-Reviewer: Harald Welte 
Gerrit-Reviewer: Jenkins Builder
Gerrit-HasComments: No


osmo-msc[master]: msc_main: do not say 'osmo-nitb' in the usage

2018-03-10 Thread Harald Welte

Patch Set 2: Code-Review+2

-- 
To view, visit https://gerrit.osmocom.org/7180
To unsubscribe, visit https://gerrit.osmocom.org/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: I2090097dc0d7e0251c116b95b802076df3419455
Gerrit-PatchSet: 2
Gerrit-Project: osmo-msc
Gerrit-Branch: master
Gerrit-Owner: Neels Hofmeyr 
Gerrit-Reviewer: Harald Welte 
Gerrit-Reviewer: Jenkins Builder
Gerrit-HasComments: No


osmo-msc[master]: fix: clear vlr_subscr->msc_conn_ref when the conn is discarded

2018-03-10 Thread Harald Welte

Patch Set 3: Code-Review+2

-- 
To view, visit https://gerrit.osmocom.org/7176
To unsubscribe, visit https://gerrit.osmocom.org/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: Ia4105d9f135ba3216ad3c86157be7658b1d568fb
Gerrit-PatchSet: 3
Gerrit-Project: osmo-msc
Gerrit-Branch: master
Gerrit-Owner: Neels Hofmeyr 
Gerrit-Reviewer: Harald Welte 
Gerrit-Reviewer: Jenkins Builder
Gerrit-HasComments: No


osmo-msc[master]: vty: add 'subscriber ... paging' cmd

2018-03-10 Thread Harald Welte

Patch Set 2: Code-Review+2

-- 
To view, visit https://gerrit.osmocom.org/7179
To unsubscribe, visit https://gerrit.osmocom.org/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: I403904cb789ece699f14b4cbd52c336eb02d45e4
Gerrit-PatchSet: 2
Gerrit-Project: osmo-msc
Gerrit-Branch: master
Gerrit-Owner: Neels Hofmeyr 
Gerrit-Reviewer: Harald Welte 
Gerrit-Reviewer: Jenkins Builder
Gerrit-HasComments: No


osmo-msc[master]: vty: add 'msisdn' as alias for 'extension'

2018-03-10 Thread Harald Welte

Patch Set 2: Code-Review+2

-- 
To view, visit https://gerrit.osmocom.org/7178
To unsubscribe, visit https://gerrit.osmocom.org/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: I7b46f9736421e8edd8a95ae89e025ebe486fde4c
Gerrit-PatchSet: 2
Gerrit-Project: osmo-msc
Gerrit-Branch: master
Gerrit-Owner: Neels Hofmeyr 
Gerrit-Reviewer: Harald Welte 
Gerrit-Reviewer: Jenkins Builder
Gerrit-HasComments: No


osmo-msc[master]: vty: drop unused commands

2018-03-10 Thread Harald Welte

Patch Set 2: Code-Review+2

-- 
To view, visit https://gerrit.osmocom.org/7177
To unsubscribe, visit https://gerrit.osmocom.org/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: I76d6777ebe9105b8abf37993b86c3749a7e18008
Gerrit-PatchSet: 2
Gerrit-Project: osmo-msc
Gerrit-Branch: master
Gerrit-Owner: Neels Hofmeyr 
Gerrit-Reviewer: Harald Welte 
Gerrit-Reviewer: Jenkins Builder
Gerrit-HasComments: No


[ABANDON] osmo-bts[master]: [sysmobts] HACK: Log L1C/NOTICE message for every RACH received

2018-03-10 Thread Harald Welte
Harald Welte has abandoned this change.

Change subject: [sysmobts] HACK: Log L1C/NOTICE message for every RACH received
..


Abandoned

never intended to push this one

-- 
To view, visit https://gerrit.osmocom.org/7196
To unsubscribe, visit https://gerrit.osmocom.org/settings

Gerrit-MessageType: abandon
Gerrit-Change-Id: I68d7584c198540c01b83ea8d12e7a61792b01ee7
Gerrit-PatchSet: 1
Gerrit-Project: osmo-bts
Gerrit-Branch: master
Gerrit-Owner: Harald Welte 
Gerrit-Reviewer: Jenkins Builder


osmo-bts[master]: sysmobts: Compatibility with older firmware versions

2018-03-10 Thread Harald Welte

Patch Set 2: Code-Review+2

-- 
To view, visit https://gerrit.osmocom.org/7197
To unsubscribe, visit https://gerrit.osmocom.org/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: I1a29c1031d96e65a0111bc812a90f2dbaf2a5aa3
Gerrit-PatchSet: 2
Gerrit-Project: osmo-bts
Gerrit-Branch: master
Gerrit-Owner: Harald Welte 
Gerrit-Reviewer: Harald Welte 
Gerrit-Reviewer: Jenkins Builder
Gerrit-HasComments: No


[PATCH] osmo-bts[master]: sysmobts: Compatibility with older firmware versions

2018-03-10 Thread Harald Welte

Review at  https://gerrit.osmocom.org/7197

sysmobts: Compatibility with older firmware versions

When using a firmware version < 3.6, the call to l1if_mute_rf()
returned an error, which caused an OML CHG ADM STATE NACK.

Let's check if the l1if_mute_rf() call is an un-mute for all
timeslots (which apparently we do always at start-up).  If it is, then
acknowledge it even if muting is not supported by earlier firmwares.

I suppose the change causing this problem was introduced in:
commit b26b8fc77692e851469f3e27b9aeaeff233ffd2e
Author: Holger Hans Peter Freyther 
Date:   Tue Mar 4 15:03:59 2014 +0100
sysmobts: Do a RF mute at initialization when the RC is locked

With the current change applied, we can run the BTS with earlier
firmware versions than 3.6.0 again.  Tested with 3.1 and 2.4

Change-Id: I1a29c1031d96e65a0111bc812a90f2dbaf2a5aa3
---
M src/osmo-bts-sysmo/l1_if.c
1 file changed, 12 insertions(+), 1 deletion(-)


  git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/97/7197/1

diff --git a/src/osmo-bts-sysmo/l1_if.c b/src/osmo-bts-sysmo/l1_if.c
index b5bb3f8..a556289 100644
--- a/src/osmo-bts-sysmo/l1_if.c
+++ b/src/osmo-bts-sysmo/l1_if.c
@@ -1329,7 +1329,6 @@
return l1if_req_compl(hdl, msg, activate_rf_compl_cb, NULL);
 }
 
-#if SUPERFEMTO_API_VERSION >= SUPERFEMTO_API(3,6,0)
 static void mute_handle_ts(struct gsm_bts_trx_ts *ts, int is_muted)
 {
int i;
@@ -1357,6 +1356,7 @@
}
 }
 
+#if SUPERFEMTO_API_VERSION >= SUPERFEMTO_API(3,6,0)
 static int mute_rf_compl_cb(struct gsm_bts_trx *trx, struct msgb *resp,
void *data)
 {
@@ -1395,8 +1395,11 @@
 /* mute/unmute RF time slots */
 int l1if_mute_rf(struct femtol1_hdl *hdl, uint8_t mute[8], l1if_compl_cb *cb)
 {
+   const uint8_t unmuted[8] = { 0,0,0,0,0,0,0,0 };
struct msgb *msg = sysp_msgb_alloc();
SuperFemto_Prim_t *sysp = msgb_sysprim(msg);
+   struct gsm_bts_trx *trx = hdl->phy_inst->trx;
+   int i;
 
LOGP(DL1C, LOGL_INFO, "Tx RF-MUTE.req (%d, %d, %d, %d, %d, %d, %d, 
%d)\n",
 mute[0], mute[1], mute[2], mute[3],
@@ -1406,6 +1409,14 @@
 #if SUPERFEMTO_API_VERSION < SUPERFEMTO_API(3,6,0)
LOGP(DL1C, LOGL_ERROR, "RF-MUTE.req not supported by SuperFemto\n");
msgb_free(msg);
+   /* always acknowledge an un-MUTE (which is a no-op if MUTE is not 
supported */
+   if (!memcmp(mute, unmuted, ARRAY_SIZE(mute))) {
+   bts_update_status(BTS_STATUS_RF_MUTE, mute[0]);
+   oml_mo_rf_lock_chg(>mo, mute, 1);
+   for (i = 0; i < ARRAY_SIZE(mute); ++i)
+   mute_handle_ts(>ts[i], mute[i]);
+   return 0;
+   }
return -ENOTSUP;
 #else
sysp->id = SuperFemto_PrimId_MuteRfReq;

-- 
To view, visit https://gerrit.osmocom.org/7197
To unsubscribe, visit https://gerrit.osmocom.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I1a29c1031d96e65a0111bc812a90f2dbaf2a5aa3
Gerrit-PatchSet: 1
Gerrit-Project: osmo-bts
Gerrit-Branch: master
Gerrit-Owner: Harald Welte 


[PATCH] osmo-bts[master]: [sysmobts] HACK: Log L1C/NOTICE message for every RACH received

2018-03-10 Thread Harald Welte

Review at  https://gerrit.osmocom.org/7196

[sysmobts] HACK: Log L1C/NOTICE message for every RACH received

Change-Id: I68d7584c198540c01b83ea8d12e7a61792b01ee7
---
M src/osmo-bts-sysmo/femtobts.c
M src/osmo-bts-sysmo/femtobts.h
M src/osmo-bts-sysmo/l1_if.c
3 files changed, 21 insertions(+), 0 deletions(-)


  git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/96/7196/1

diff --git a/src/osmo-bts-sysmo/femtobts.c b/src/osmo-bts-sysmo/femtobts.c
index 480fe06..f8e71de 100644
--- a/src/osmo-bts-sysmo/femtobts.c
+++ b/src/osmo-bts-sysmo/femtobts.c
@@ -368,3 +368,15 @@
[PDCH_MCS_8]= 142,
[PDCH_MCS_9]= 154
 };
+
+const struct value_string femtobts_bursttype_names[] = {
+   { GsmL1_BurstType_Sync, "Sync" },
+   { GsmL1_BurstType_Normal, "Normal" },
+   { GsmL1_BurstType_Dummy, "Dummy" },
+   { GsmL1_BurstType_Normal8Psk, "Normal 8PSK" },
+   { GsmL1_BurstType_Access_0, "Access (TSC 0)" },
+   { GsmL1_BurstType_Access_1, "Access (TSC 1)" },
+   { GsmL1_BurstType_Access_2, "Access (TSC 2)" },
+   { GsmL1_BurstType_Freq, "Frequency Correction" },
+   { 0, NULL }
+};
diff --git a/src/osmo-bts-sysmo/femtobts.h b/src/osmo-bts-sysmo/femtobts.h
index 9163ebb..bf1bcc1 100644
--- a/src/osmo-bts-sysmo/femtobts.h
+++ b/src/osmo-bts-sysmo/femtobts.h
@@ -107,4 +107,6 @@
 
 const uint8_t pdch_msu_size[_NUM_PDCH_CS];
 
+const struct value_string femtobts_bursttype_names[GsmL1_BurstType_NUM+1];
+
 #endif /* FEMTOBTS_H */
diff --git a/src/osmo-bts-sysmo/l1_if.c b/src/osmo-bts-sysmo/l1_if.c
index 60eacab..b5bb3f8 100644
--- a/src/osmo-bts-sysmo/l1_if.c
+++ b/src/osmo-bts-sysmo/l1_if.c
@@ -990,6 +990,13 @@
int rc;
struct ph_rach_ind_param rach_ind_param;
 
+   LOGPFN(DL1C, LOGL_NOTICE, ra_ind->u32Fn, "RACH: Type %s, %f dBm, %d 
qbits, LQ=%f, BER=%f\n",
+   get_value_string(femtobts_bursttype_names, ra_ind->burstType),
+   ra_ind->measParam.fRssi,
+   ra_ind->measParam.i16BurstTiming,
+   ra_ind->measParam.fLinkQuality,
+   ra_ind->measParam.fBer);
+
/* FIXME: this should be deprecated/obsoleted as it bypasses rach.busy 
counting */
if (ra_ind->measParam.fLinkQuality < btsb->min_qual_rach) {
msgb_free(l1p_msg);

-- 
To view, visit https://gerrit.osmocom.org/7196
To unsubscribe, visit https://gerrit.osmocom.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I68d7584c198540c01b83ea8d12e7a61792b01ee7
Gerrit-PatchSet: 1
Gerrit-Project: osmo-bts
Gerrit-Branch: master
Gerrit-Owner: Harald Welte