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
This commit is contained in:
parent
abd556ab3d
commit
57497a6be9
|
@ -6,4 +6,4 @@
|
|||
- aoip_sms:trx-sysmocell5000
|
||||
- smpp
|
||||
- aoip_smpp
|
||||
- aoip_encryption
|
||||
- aoip_encryption:cipher-a50+cipher-a51
|
||||
|
|
|
@ -13,6 +13,7 @@ bts:
|
|||
ipa_unit_id: 1
|
||||
addr: 10.42.42.114
|
||||
band: GSM-1800
|
||||
ciphers: [a5_0, a5_1, a5_3]
|
||||
|
||||
- label: Ettus B200
|
||||
type: osmo-bts-trx
|
||||
|
@ -20,6 +21,7 @@ bts:
|
|||
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 +29,7 @@ bts:
|
|||
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 +59,25 @@ modem:
|
|||
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]
|
||||
|
|
|
@ -0,0 +1,7 @@
|
|||
resources:
|
||||
bts:
|
||||
- ciphers:
|
||||
- a5_0
|
||||
modem:
|
||||
- ciphers:
|
||||
- a5_0
|
|
@ -0,0 +1,7 @@
|
|||
resources:
|
||||
bts:
|
||||
- ciphers:
|
||||
- a5_1
|
||||
modem:
|
||||
- ciphers:
|
||||
- a5_1
|
|
@ -56,6 +56,7 @@ RESOURCES_SCHEMA = {
|
|||
'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,
|
||||
'bts[].trx_list[].nominal_power': schema.UINT,
|
||||
|
@ -67,6 +68,7 @@ RESOURCES_SCHEMA = {
|
|||
'modem[].imsi': schema.IMSI,
|
||||
'modem[].ki': schema.KI,
|
||||
'modem[].auth_algo': schema.AUTH_ALGO,
|
||||
'modem[].ciphers[]': schema.CIPHER,
|
||||
}
|
||||
|
||||
WANT_SCHEMA = util.dict_add(
|
||||
|
|
|
@ -76,6 +76,11 @@ def times(val):
|
|||
if n < 1:
|
||||
raise ValueError('Positive value >0 expected instead of %d' % n)
|
||||
|
||||
def cipher(val):
|
||||
if val in ('a5_0', 'a5_1', 'a5_2', 'a5_3', 'a5_4', 'a5_5', 'a5_6', 'a5_7'):
|
||||
return
|
||||
raise ValueError('Unknown Cipher value: %r' % val)
|
||||
|
||||
INT = 'int'
|
||||
STR = 'str'
|
||||
UINT = 'uint'
|
||||
|
@ -88,6 +93,7 @@ KI = 'ki'
|
|||
MSISDN = 'msisdn'
|
||||
AUTH_ALGO = 'auth_algo'
|
||||
TIMES='times'
|
||||
CIPHER = 'cipher'
|
||||
SCHEMA_TYPES = {
|
||||
INT: int,
|
||||
STR: str,
|
||||
|
@ -101,6 +107,7 @@ SCHEMA_TYPES = {
|
|||
MSISDN: msisdn,
|
||||
AUTH_ALGO: auth_algo,
|
||||
TIMES: times,
|
||||
CIPHER: cipher,
|
||||
}
|
||||
|
||||
def validate(config, schema):
|
||||
|
|
Loading…
Reference in New Issue