[PATCH] osmo-gsm-tester[master]: Add cipher cfg param for modem and bts

This is merely a historical archive of years 2008-2021, before the migration to mailman3.

A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.

Pau Espin Pedrol gerrit-no-reply at lists.osmocom.org
Mon Aug 28 12:34:04 UTC 2017


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

Add cipher cfg param for modem and bts

This parameter is contains a list of supported encryption ciphers by the
modem or bts setting it. It is so far not directly/automatically used
inside osmo-gsm-tester code, but can be useful to create scenarios for
tests that require specific ciphering modes.
For instance, aoip_encryption suite contains tests that require a BTS and
a modem that supports a5 0 and a5 1, otherwise tests will fail.

Change-Id: Ic0e368843a6e58bd3eeef36d2c0a7501296f0f3e
---
M example/default-suites.conf
M example/resources.conf
A example/scenarios/cipher-a50.conf
A example/scenarios/cipher-a51.conf
M src/osmo_gsm_tester/resource.py
M src/osmo_gsm_tester/schema.py
6 files changed, 45 insertions(+), 1 deletion(-)


  git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/23/3723/1

diff --git a/example/default-suites.conf b/example/default-suites.conf
index 0198486..1e8d47a 100644
--- a/example/default-suites.conf
+++ b/example/default-suites.conf
@@ -6,4 +6,4 @@
 - aoip_sms:trx-sysmocell5000
 - smpp
 - aoip_smpp
-- aoip_encryption
+- aoip_encryption:cipher-a50+cipher-a51
diff --git a/example/resources.conf b/example/resources.conf
index f190c2f..51f5a72 100644
--- a/example/resources.conf
+++ b/example/resources.conf
@@ -13,6 +13,9 @@
   ipa_unit_id: 1
   addr: 10.42.42.114
   band: GSM-1800
+  ciphers:
+  - 'a5 0'
+  - 'a5 1'
 
 - label: Ettus B200
   type: osmo-bts-trx
@@ -20,6 +23,9 @@
   addr: 10.42.42.50
   band: GSM-1800
   launch_trx: true
+  ciphers:
+  - 'a5 0'
+  - 'a5 1'
 
 - label: sysmoCell 5000
   type: osmo-bts-trx
@@ -27,6 +33,9 @@
   addr: 10.42.42.51
   band: GSM-1800
   trx_remote_ip: 10.42.42.112
+  ciphers:
+  - 'a5 0'
+  - 'a5 1'
 
 arfcn:
   - arfcn: 512
@@ -56,21 +65,33 @@
   imsi: '901700000009031'
   ki: '80A37E6FDEA931EAC92FFA5F671EFEAD'
   auth_algo: 'xor'
+  ciphers:
+  - 'a5 0'
+  - 'a5 1'
 
 - label: sierra_2
   path: '/sierra_2'
   imsi: '901700000009029'
   ki: '00969E283349D354A8239E877F2E0866'
   auth_algo: 'xor'
+  ciphers:
+  - 'a5 0'
+  - 'a5 1'
 
 - label: gobi_0
   path: '/gobi_0'
   imsi: '901700000009030'
   ki: 'BB70807226393CDBAC8DD3439FF54252'
   auth_algo: 'xor'
+  ciphers:
+  - 'a5 0'
+  - 'a5 1'
 
 - label: gobi_3
   path: '/gobi_3'
   imsi: '901700000009032'
   ki: '2F70DCA43C45ACB97E947FDD0C7CA30A'
   auth_algo: 'xor'
+  ciphers:
+  - 'a5 0'
+  - 'a5 1'
diff --git a/example/scenarios/cipher-a50.conf b/example/scenarios/cipher-a50.conf
new file mode 100644
index 0000000..d4a2e46
--- /dev/null
+++ b/example/scenarios/cipher-a50.conf
@@ -0,0 +1,7 @@
+resources:
+  bts:
+  - ciphers:
+    - 'a5 0'
+  modem:
+  - ciphers:
+    - 'a5 0'
diff --git a/example/scenarios/cipher-a51.conf b/example/scenarios/cipher-a51.conf
new file mode 100644
index 0000000..c84cd96
--- /dev/null
+++ b/example/scenarios/cipher-a51.conf
@@ -0,0 +1,7 @@
+resources:
+  bts:
+  - ciphers:
+    - 'a5 1'
+  modem:
+  - ciphers:
+    - 'a5 1'
diff --git a/src/osmo_gsm_tester/resource.py b/src/osmo_gsm_tester/resource.py
index da543f7..4f43bfc 100644
--- a/src/osmo_gsm_tester/resource.py
+++ b/src/osmo_gsm_tester/resource.py
@@ -56,6 +56,7 @@
         'bts[].band': schema.BAND,
         'bts[].trx_remote_ip': schema.IPV4,
         'bts[].launch_trx': schema.BOOL_STR,
+        'bts[].ciphers[]': schema.CIPHER,
         'bts[].trx_list[].hw_addr': schema.HWADDR,
         'bts[].trx_list[].net_device': schema.STR,
         'arfcn[].arfcn': schema.INT,
@@ -65,6 +66,7 @@
         'modem[].imsi': schema.IMSI,
         'modem[].ki': schema.KI,
         'modem[].auth_algo': schema.AUTH_ALGO,
+        'modem[].ciphers[]': schema.CIPHER,
     }
 
 WANT_SCHEMA = util.dict_add(
diff --git a/src/osmo_gsm_tester/schema.py b/src/osmo_gsm_tester/schema.py
index 2da80cd..86acbad 100644
--- a/src/osmo_gsm_tester/schema.py
+++ b/src/osmo_gsm_tester/schema.py
@@ -66,6 +66,11 @@
         return
     raise ValueError('Unknown Authentication Algorithm: %r' % val)
 
+def cipher(val):
+    if val in ('a5 0', 'a5 1', 'a5 2', 'a5 3'):
+        return
+    raise ValueError('Unknown Cipher value: %r' % val)
+
 INT = 'int'
 STR = 'str'
 BOOL_STR = 'bool_str'
@@ -76,6 +81,7 @@
 KI = 'ki'
 MSISDN = 'msisdn'
 AUTH_ALGO = 'auth_algo'
+CIPHER = 'cipher'
 SCHEMA_TYPES = {
         INT: int,
         STR: str,
@@ -87,6 +93,7 @@
         KI: ki,
         MSISDN: msisdn,
         AUTH_ALGO: auth_algo,
+        CIPHER: cipher,
     }
 
 def validate(config, schema):

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ic0e368843a6e58bd3eeef36d2c0a7501296f0f3e
Gerrit-PatchSet: 1
Gerrit-Project: osmo-gsm-tester
Gerrit-Branch: master
Gerrit-Owner: Pau Espin Pedrol <pespin at sysmocom.de>



More information about the gerrit-log mailing list