From ffee89a031076b4a75b458443763757c29f554df Mon Sep 17 00:00:00 2001 From: Bjoern Riemer Date: Thu, 20 Jan 2022 22:05:22 +0100 Subject: [PATCH] add missing bit definition for NG-RAN in xAcT when encoding the AcT value bit 11 is correctly set when NG-RAN is present in the string representation, however the decoding of bit 11 was missing. Adds tests for the decoder as well. Change-Id: I910df28c4c59ec94cce9603377786325f6d8c1a3 --- pySim/utils.py | 1 + pysim-testdata/Fairwaves-SIM.ok | 2 +- pysim-testdata/Wavemobile-SIM.ok | 4 ++-- pysim-testdata/sysmoISIM-SJA2.ok | 6 +++--- pysim-testdata/sysmoUSIM-SJS1.ok | 6 +++--- tests/test_utils.py | 5 ++++- 6 files changed, 14 insertions(+), 10 deletions(-) diff --git a/pySim/utils.py b/pySim/utils.py index e30c970e..1806d0df 100644 --- a/pySim/utils.py +++ b/pySim/utils.py @@ -464,6 +464,7 @@ def dec_act(twohexbytes:Hexstr) -> List[str]: act_list = [ {'bit': 15, 'name': "UTRAN"}, {'bit': 14, 'name': "E-UTRAN"}, + {'bit': 11, 'name': "NG-RAN"}, {'bit': 7, 'name': "GSM"}, {'bit': 6, 'name': "GSM COMPACT"}, {'bit': 5, 'name': "cdma2000 HRPD"}, diff --git a/pysim-testdata/Fairwaves-SIM.ok b/pysim-testdata/Fairwaves-SIM.ok index 2a912e2b..f07c0334 100644 --- a/pysim-testdata/Fairwaves-SIM.ok +++ b/pysim-testdata/Fairwaves-SIM.ok @@ -31,7 +31,7 @@ OPLMNwAcT: ffffff0000 # unused HPLMNAcT: - 00f110ffff # MCC: 001 MNC: 01 AcT: UTRAN, E-UTRAN WB-S1, E-UTRAN NB-S1, GSM, GSM COMPACT, cdma2000 HRPD, cdma2000 1xRTT + 00f110ffff # MCC: 001 MNC: 01 AcT: UTRAN, E-UTRAN WB-S1, E-UTRAN NB-S1, NG-RAN, GSM, GSM COMPACT, cdma2000 HRPD, cdma2000 1xRTT ffffff0000 # unused ffffff0000 # unused ffffff0000 # unused diff --git a/pysim-testdata/Wavemobile-SIM.ok b/pysim-testdata/Wavemobile-SIM.ok index 0eb8cc82..d8f1a6f7 100644 --- a/pysim-testdata/Wavemobile-SIM.ok +++ b/pysim-testdata/Wavemobile-SIM.ok @@ -11,7 +11,7 @@ Show in HPLMN: False Hide in OPLMN: False PLMNsel: 00f110ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff PLMNwAcT: - 00f110ffff # MCC: 001 MNC: 01 AcT: UTRAN, E-UTRAN WB-S1, E-UTRAN NB-S1, GSM, GSM COMPACT, cdma2000 HRPD, cdma2000 1xRTT + 00f110ffff # MCC: 001 MNC: 01 AcT: UTRAN, E-UTRAN WB-S1, E-UTRAN NB-S1, NG-RAN, GSM, GSM COMPACT, cdma2000 HRPD, cdma2000 1xRTT ffffff0000 # unused ffffff0000 # unused ffffff0000 # unused @@ -29,7 +29,7 @@ PLMNwAcT: ffffff0000 # unused OPLMNwAcT: - 00f110ffff # MCC: 001 MNC: 01 AcT: UTRAN, E-UTRAN WB-S1, E-UTRAN NB-S1, GSM, GSM COMPACT, cdma2000 HRPD, cdma2000 1xRTT + 00f110ffff # MCC: 001 MNC: 01 AcT: UTRAN, E-UTRAN WB-S1, E-UTRAN NB-S1, NG-RAN, GSM, GSM COMPACT, cdma2000 HRPD, cdma2000 1xRTT ffffff0000 # unused ffffff0000 # unused ffffff0000 # unused diff --git a/pysim-testdata/sysmoISIM-SJA2.ok b/pysim-testdata/sysmoISIM-SJA2.ok index 87cb8578..a8c98d98 100644 --- a/pysim-testdata/sysmoISIM-SJA2.ok +++ b/pysim-testdata/sysmoISIM-SJA2.ok @@ -11,7 +11,7 @@ Show in HPLMN: True Hide in OPLMN: True PLMNsel: 00f110ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff PLMNwAcT: - 00f110ffff # MCC: 001 MNC: 01 AcT: UTRAN, E-UTRAN WB-S1, E-UTRAN NB-S1, GSM, GSM COMPACT, cdma2000 HRPD, cdma2000 1xRTT + 00f110ffff # MCC: 001 MNC: 01 AcT: UTRAN, E-UTRAN WB-S1, E-UTRAN NB-S1, NG-RAN, GSM, GSM COMPACT, cdma2000 HRPD, cdma2000 1xRTT ffffff0000 # unused ffffff0000 # unused ffffff0000 # unused @@ -25,7 +25,7 @@ PLMNwAcT: ffffff0000 # unused OPLMNwAcT: - 00f110ffff # MCC: 001 MNC: 01 AcT: UTRAN, E-UTRAN WB-S1, E-UTRAN NB-S1, GSM, GSM COMPACT, cdma2000 HRPD, cdma2000 1xRTT + 00f110ffff # MCC: 001 MNC: 01 AcT: UTRAN, E-UTRAN WB-S1, E-UTRAN NB-S1, NG-RAN, GSM, GSM COMPACT, cdma2000 HRPD, cdma2000 1xRTT ffffff0000 # unused ffffff0000 # unused ffffff0000 # unused @@ -39,7 +39,7 @@ OPLMNwAcT: ffffff0000 # unused HPLMNAcT: - 00f110ffff # MCC: 001 MNC: 01 AcT: UTRAN, E-UTRAN WB-S1, E-UTRAN NB-S1, GSM, GSM COMPACT, cdma2000 HRPD, cdma2000 1xRTT + 00f110ffff # MCC: 001 MNC: 01 AcT: UTRAN, E-UTRAN WB-S1, E-UTRAN NB-S1, NG-RAN, GSM, GSM COMPACT, cdma2000 HRPD, cdma2000 1xRTT ffffff0000 # unused ffffff0000 # unused ffffff0000 # unused diff --git a/pysim-testdata/sysmoUSIM-SJS1.ok b/pysim-testdata/sysmoUSIM-SJS1.ok index e65f276d..14d71100 100644 --- a/pysim-testdata/sysmoUSIM-SJS1.ok +++ b/pysim-testdata/sysmoUSIM-SJS1.ok @@ -11,7 +11,7 @@ Show in HPLMN: True Hide in OPLMN: True PLMNsel: 00f110ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff PLMNwAcT: - 00f110ffff # MCC: 001 MNC: 01 AcT: UTRAN, E-UTRAN WB-S1, E-UTRAN NB-S1, GSM, GSM COMPACT, cdma2000 HRPD, cdma2000 1xRTT + 00f110ffff # MCC: 001 MNC: 01 AcT: UTRAN, E-UTRAN WB-S1, E-UTRAN NB-S1, NG-RAN, GSM, GSM COMPACT, cdma2000 HRPD, cdma2000 1xRTT ffffff0000 # unused ffffff0000 # unused ffffff0000 # unused @@ -25,7 +25,7 @@ PLMNwAcT: ffffff0000 # unused OPLMNwAcT: - 00f110ffff # MCC: 001 MNC: 01 AcT: UTRAN, E-UTRAN WB-S1, E-UTRAN NB-S1, GSM, GSM COMPACT, cdma2000 HRPD, cdma2000 1xRTT + 00f110ffff # MCC: 001 MNC: 01 AcT: UTRAN, E-UTRAN WB-S1, E-UTRAN NB-S1, NG-RAN, GSM, GSM COMPACT, cdma2000 HRPD, cdma2000 1xRTT ffffff0000 # unused ffffff0000 # unused ffffff0000 # unused @@ -39,7 +39,7 @@ OPLMNwAcT: ffffff0000 # unused HPLMNAcT: - 00f110ffff # MCC: 001 MNC: 01 AcT: UTRAN, E-UTRAN WB-S1, E-UTRAN NB-S1, GSM, GSM COMPACT, cdma2000 HRPD, cdma2000 1xRTT + 00f110ffff # MCC: 001 MNC: 01 AcT: UTRAN, E-UTRAN WB-S1, E-UTRAN NB-S1, NG-RAN, GSM, GSM COMPACT, cdma2000 HRPD, cdma2000 1xRTT ffffff0000 # unused ffffff0000 # unused ffffff0000 # unused diff --git a/tests/test_utils.py b/tests/test_utils.py index ed22eff9..ae23461c 100755 --- a/tests/test_utils.py +++ b/tests/test_utils.py @@ -80,6 +80,9 @@ class DecTestCase(unittest.TestCase): def testDecAct_onlyEUtran(self): self.assertEqual(utils.dec_act("4000"), ["E-UTRAN"]) + def testDecAct_onlyNgRan(self): + self.assertEqual(utils.dec_act("0800"), ["NG-RAN"]) + def testDecAct_onlyGsm(self): self.assertEqual(utils.dec_act("0080"), ["GSM"]) @@ -93,7 +96,7 @@ class DecTestCase(unittest.TestCase): self.assertEqual(utils.dec_act("0010"), ["cdma2000 1xRTT"]) def testDecAct_allSet(self): - self.assertEqual(utils.dec_act("ffff"), ["UTRAN", "E-UTRAN WB-S1", "E-UTRAN NB-S1", "GSM", "GSM COMPACT", "cdma2000 HRPD", "cdma2000 1xRTT"]) + self.assertEqual(utils.dec_act("ffff"), ["UTRAN", "E-UTRAN WB-S1", "E-UTRAN NB-S1", "NG-RAN", "GSM", "GSM COMPACT", "cdma2000 HRPD", "cdma2000 1xRTT"]) def testDecxPlmn_w_act(self): expected = {'mcc': '295', 'mnc': '10', 'act': ["UTRAN"]}