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/.
ninjab3s gerrit-no-reply at lists.osmocom.orgninjab3s has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21533 ) Change subject: enb: Set cipher and integrity algos via scenario file ...................................................................... enb: Set cipher and integrity algos via scenario file This patch enables setting cipher and integrity algorithms in Amarisoft eNB and srsENB via scenario files. If no settings are defined following defaults are applied: - Cipher algorithm: EEA0, EEA2, EEA1 - Integrity algorithm: EIA2, EIA1, EIA0 Example of setting integrity and chipger algorithms: - 4g:srsue-rftype at uhd+srsenb-rftype@uhd+cfg-enb-cipher at EEA1+cfg-enb-cipher@EEA0+cfg-enb-integ at EIA2+mod-enb-nprb@6 Change-Id: Id1fbf31c71967d67de11a23d52d32e44c0925061 --- M src/osmo_gsm_tester/core/schema.py M src/osmo_gsm_tester/obj/enb.py M src/osmo_gsm_tester/templates/amarisoft_enb.cfg.tmpl M src/osmo_gsm_tester/templates/srsenb.conf.tmpl M sysmocom/defaults.conf A sysmocom/scenarios/cfg-enb-cipher at .conf A sysmocom/scenarios/cfg-enb-integ at .conf 7 files changed, 34 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/33/21533/1 diff --git a/src/osmo_gsm_tester/core/schema.py b/src/osmo_gsm_tester/core/schema.py index d56d6ec..adcbe3c 100644 --- a/src/osmo_gsm_tester/core/schema.py +++ b/src/osmo_gsm_tester/core/schema.py @@ -106,7 +106,7 @@ return True def cipher(val): - if val in ('a5_0', 'a5_1', 'a5_2', 'a5_3', 'a5_4', 'a5_5', 'a5_6', 'a5_7'): + if val in ('a5_0', 'a5_1', 'a5_2', 'a5_3', 'a5_4', 'a5_5', 'a5_6', 'a5_7', 'EEA0', 'EEA1', 'EEA2'): return True raise ValueError('Unknown Cipher value: %r' % val) @@ -152,6 +152,11 @@ return True raise ValueError('Invalid duration value: %r' % val) +def integrity_algo(val): + if val in ('EIA0', 'EIA1', 'EIA2'): + return True + raise ValueError('Unknown integrity algorithm') + INT = 'int' STR = 'str' UINT = 'uint' @@ -174,6 +179,7 @@ OSMO_TRX_CLOCK_REF = 'osmo_trx_clock_ref' LTE_TRANSMISSION_MODE = 'lte_transmission_mode' DURATION = 'duration' +INTEGRITY_ALGO = 'integrity_algo' SCHEMA_TYPES = { INT: int, @@ -198,6 +204,7 @@ OSMO_TRX_CLOCK_REF: osmo_trx_clock_ref, LTE_TRANSMISSION_MODE: lte_transmission_mode, DURATION: duration, + INTEGRITY_ALGO: integrity_algo, } def add(dest, src): diff --git a/src/osmo_gsm_tester/obj/enb.py b/src/osmo_gsm_tester/obj/enb.py index cdf9505..1031662 100644 --- a/src/osmo_gsm_tester/obj/enb.py +++ b/src/osmo_gsm_tester/obj/enb.py @@ -24,6 +24,12 @@ from .gnuradio_zmq_broker import GrBroker def on_register_schemas(): + config_schema = { + 'cipher_algo_list[]': schema.CIPHER, + 'integrity_algo_list[]': schema.INTEGRITY_ALGO, + } + schema.register_config_schema('enb', config_schema) + resource_schema = { 'label': schema.STR, 'type': schema.STR, diff --git a/src/osmo_gsm_tester/templates/amarisoft_enb.cfg.tmpl b/src/osmo_gsm_tester/templates/amarisoft_enb.cfg.tmpl index 4c7aa33..a7fdc63 100644 --- a/src/osmo_gsm_tester/templates/amarisoft_enb.cfg.tmpl +++ b/src/osmo_gsm_tester/templates/amarisoft_enb.cfg.tmpl @@ -224,9 +224,9 @@ dpc_pucch_snr_target: 10, /* RRC/UP ciphering algorithm preference. EEA0 is always the last. */ - cipher_algo_pref: [], + cipher_algo_pref: [${(', '.join(list(dict.fromkeys(enb.cipher_algo)))).replace('EEA', '')}], /* RRC integrity algorithm preference. EIA0 is always the last. */ - integ_algo_pref: [2, 1], + integ_algo_pref: [${(', '.join(list(dict.fromkeys(enb.integrity_algo)))).replace('EIA', '')}], /* (in ms) send RRC connection release after this time of network inactivity */ diff --git a/src/osmo_gsm_tester/templates/srsenb.conf.tmpl b/src/osmo_gsm_tester/templates/srsenb.conf.tmpl index 5df432b..8ebfee9 100644 --- a/src/osmo_gsm_tester/templates/srsenb.conf.tmpl +++ b/src/osmo_gsm_tester/templates/srsenb.conf.tmpl @@ -282,5 +282,5 @@ #link_failure_nof_err = 50 rrc_inactivity_timer = ${enb.inactivity_timer} #max_prach_offset_us = 30 -#eea_pref_list = EEA0, EEA2, EEA1 -#eia_pref_list = EIA2, EIA1, EIA0 +eea_pref_list = ${', '.join(list(dict.fromkeys(enb.cipher_algo_list)))} +eia_pref_list = ${', '.join(list(dict.fromkeys(enb.integrity_algo_list)))} diff --git a/sysmocom/defaults.conf b/sysmocom/defaults.conf index 7704857..384535b 100644 --- a/sysmocom/defaults.conf +++ b/sysmocom/defaults.conf @@ -130,6 +130,14 @@ a3_hysteresis: 0 a3_time_to_trigger: 480 cell_list: + cipher_algo_list: + - eea_0 + - eea_2 + - eea_1 + integrity_algo_list: + - eia_2 + - eia_1 + - eia_0 - cell_id: 0x01 pci: 0x01 dl_earfcn: 2850 diff --git a/sysmocom/scenarios/cfg-enb-cipher at .conf b/sysmocom/scenarios/cfg-enb-cipher at .conf new file mode 100644 index 0000000..b4d64ed --- /dev/null +++ b/sysmocom/scenarios/cfg-enb-cipher at .conf @@ -0,0 +1,4 @@ +config: + enb: + cipher_algo_list: + - ${param1} \ No newline at end of file diff --git a/sysmocom/scenarios/cfg-enb-integ at .conf b/sysmocom/scenarios/cfg-enb-integ at .conf new file mode 100644 index 0000000..2b6c9f9 --- /dev/null +++ b/sysmocom/scenarios/cfg-enb-integ at .conf @@ -0,0 +1,4 @@ +config: + enb: + integrity_algo_list: + - ${param1} \ No newline at end of file -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21533 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-Change-Id: Id1fbf31c71967d67de11a23d52d32e44c0925061 Gerrit-Change-Number: 21533 Gerrit-PatchSet: 1 Gerrit-Owner: ninjab3s <nils.fuerste at softwareradiosystems.com> Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20201204/cefdedb9/attachment.htm>