mirror of https://gerrit.osmocom.org/pysim
ts_51_011, utils: fix Access Technology Identifier coding
When the Access Technology Identifier encoder sets the bits for E-UTRAN it does not respect that bit "100" is also a valid bit combination that encodes E-UTRAN WB-S1 and E-UTRAN NB-S1. Lets encode this bit combination if the user is just specifying "E-UTRAN" without further spefication of WB or NB. The decoder only looks at bit 14 and decodes "1xx" always to "E-UTRAN". This is not specific enough. Lets make sure that the decoder is complementary to the encoder. Change-Id: Ibfe8883a05f9ad6988d8e212cb9a598229954296 Related: OS#4963
This commit is contained in:
parent
b919f8bd75
commit
e7d417955d
|
@ -707,6 +707,8 @@ class EF_xPLMNwAcT(TransRecEF):
|
||||||
if 'cdma2000 1xRTT' in in_list:
|
if 'cdma2000 1xRTT' in in_list:
|
||||||
u16 |= 0x0010
|
u16 |= 0x0010
|
||||||
# E-UTRAN
|
# E-UTRAN
|
||||||
|
if 'E-UTRAN' in in_list:
|
||||||
|
u16 |= 0x4000
|
||||||
if 'E-UTRAN WB-S1' in in_list:
|
if 'E-UTRAN WB-S1' in in_list:
|
||||||
u16 |= 0x6000
|
u16 |= 0x6000
|
||||||
if 'E-UTRAN NB-S1' in in_list:
|
if 'E-UTRAN NB-S1' in in_list:
|
||||||
|
|
|
@ -230,7 +230,20 @@ def dec_act(twohexbytes:Hexstr) -> List[str]:
|
||||||
sel = []
|
sel = []
|
||||||
for a in act_list:
|
for a in act_list:
|
||||||
if u16t & (1 << a['bit']):
|
if u16t & (1 << a['bit']):
|
||||||
sel.append(a['name'])
|
if a['name'] == "E-UTRAN":
|
||||||
|
# The Access technology identifier of E-UTRAN
|
||||||
|
# allows a more detailed specification:
|
||||||
|
if u16t & (1 << 13) and u16t & (1 << 12):
|
||||||
|
sel.append("E-UTRAN WB-S1")
|
||||||
|
sel.append("E-UTRAN NB-S1")
|
||||||
|
elif u16t & (1 << 13):
|
||||||
|
sel.append("E-UTRAN WB-S1")
|
||||||
|
elif u16t & (1 << 12):
|
||||||
|
sel.append("E-UTRAN NB-S1")
|
||||||
|
else:
|
||||||
|
sel.append("E-UTRAN")
|
||||||
|
else:
|
||||||
|
sel.append(a['name'])
|
||||||
return sel
|
return sel
|
||||||
|
|
||||||
def dec_xplmn_w_act(fivehexbytes:Hexstr) -> Dict[str,Any]:
|
def dec_xplmn_w_act(fivehexbytes:Hexstr) -> Dict[str,Any]:
|
||||||
|
|
|
@ -31,7 +31,7 @@ OPLMNwAcT:
|
||||||
ffffff0000 # unused
|
ffffff0000 # unused
|
||||||
|
|
||||||
HPLMNAcT:
|
HPLMNAcT:
|
||||||
00f110ffff # MCC: 001 MNC: 01 AcT: UTRAN, E-UTRAN, GSM, GSM COMPACT, cdma2000 HRPD, cdma2000 1xRTT
|
00f110ffff # MCC: 001 MNC: 01 AcT: UTRAN, E-UTRAN WB-S1, E-UTRAN NB-S1, GSM, GSM COMPACT, cdma2000 HRPD, cdma2000 1xRTT
|
||||||
ffffff0000 # unused
|
ffffff0000 # unused
|
||||||
ffffff0000 # unused
|
ffffff0000 # unused
|
||||||
ffffff0000 # unused
|
ffffff0000 # unused
|
||||||
|
|
|
@ -11,7 +11,7 @@ Display HPLMN: False
|
||||||
Display OPLMN: False
|
Display OPLMN: False
|
||||||
PLMNsel: 00f110ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
|
PLMNsel: 00f110ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
|
||||||
PLMNwAcT:
|
PLMNwAcT:
|
||||||
00f110ffff # MCC: 001 MNC: 01 AcT: UTRAN, E-UTRAN, GSM, GSM COMPACT, cdma2000 HRPD, cdma2000 1xRTT
|
00f110ffff # MCC: 001 MNC: 01 AcT: UTRAN, E-UTRAN WB-S1, E-UTRAN NB-S1, GSM, GSM COMPACT, cdma2000 HRPD, cdma2000 1xRTT
|
||||||
ffffff0000 # unused
|
ffffff0000 # unused
|
||||||
ffffff0000 # unused
|
ffffff0000 # unused
|
||||||
ffffff0000 # unused
|
ffffff0000 # unused
|
||||||
|
@ -29,7 +29,7 @@ PLMNwAcT:
|
||||||
ffffff0000 # unused
|
ffffff0000 # unused
|
||||||
|
|
||||||
OPLMNwAcT:
|
OPLMNwAcT:
|
||||||
00f110ffff # MCC: 001 MNC: 01 AcT: UTRAN, E-UTRAN, GSM, GSM COMPACT, cdma2000 HRPD, cdma2000 1xRTT
|
00f110ffff # MCC: 001 MNC: 01 AcT: UTRAN, E-UTRAN WB-S1, E-UTRAN NB-S1, GSM, GSM COMPACT, cdma2000 HRPD, cdma2000 1xRTT
|
||||||
ffffff0000 # unused
|
ffffff0000 # unused
|
||||||
ffffff0000 # unused
|
ffffff0000 # unused
|
||||||
ffffff0000 # unused
|
ffffff0000 # unused
|
||||||
|
|
|
@ -11,7 +11,7 @@ Display HPLMN: True
|
||||||
Display OPLMN: True
|
Display OPLMN: True
|
||||||
PLMNsel: 00f110ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
|
PLMNsel: 00f110ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
|
||||||
PLMNwAcT:
|
PLMNwAcT:
|
||||||
00f110ffff # MCC: 001 MNC: 01 AcT: UTRAN, E-UTRAN, GSM, GSM COMPACT, cdma2000 HRPD, cdma2000 1xRTT
|
00f110ffff # MCC: 001 MNC: 01 AcT: UTRAN, E-UTRAN WB-S1, E-UTRAN NB-S1, GSM, GSM COMPACT, cdma2000 HRPD, cdma2000 1xRTT
|
||||||
ffffff0000 # unused
|
ffffff0000 # unused
|
||||||
ffffff0000 # unused
|
ffffff0000 # unused
|
||||||
ffffff0000 # unused
|
ffffff0000 # unused
|
||||||
|
@ -25,7 +25,7 @@ PLMNwAcT:
|
||||||
ffffff0000 # unused
|
ffffff0000 # unused
|
||||||
|
|
||||||
OPLMNwAcT:
|
OPLMNwAcT:
|
||||||
00f110ffff # MCC: 001 MNC: 01 AcT: UTRAN, E-UTRAN, GSM, GSM COMPACT, cdma2000 HRPD, cdma2000 1xRTT
|
00f110ffff # MCC: 001 MNC: 01 AcT: UTRAN, E-UTRAN WB-S1, E-UTRAN NB-S1, GSM, GSM COMPACT, cdma2000 HRPD, cdma2000 1xRTT
|
||||||
ffffff0000 # unused
|
ffffff0000 # unused
|
||||||
ffffff0000 # unused
|
ffffff0000 # unused
|
||||||
ffffff0000 # unused
|
ffffff0000 # unused
|
||||||
|
@ -39,7 +39,7 @@ OPLMNwAcT:
|
||||||
ffffff0000 # unused
|
ffffff0000 # unused
|
||||||
|
|
||||||
HPLMNAcT:
|
HPLMNAcT:
|
||||||
00f110ffff # MCC: 001 MNC: 01 AcT: UTRAN, E-UTRAN, GSM, GSM COMPACT, cdma2000 HRPD, cdma2000 1xRTT
|
00f110ffff # MCC: 001 MNC: 01 AcT: UTRAN, E-UTRAN WB-S1, E-UTRAN NB-S1, GSM, GSM COMPACT, cdma2000 HRPD, cdma2000 1xRTT
|
||||||
ffffff0000 # unused
|
ffffff0000 # unused
|
||||||
ffffff0000 # unused
|
ffffff0000 # unused
|
||||||
ffffff0000 # unused
|
ffffff0000 # unused
|
||||||
|
|
|
@ -11,7 +11,7 @@ Display HPLMN: True
|
||||||
Display OPLMN: True
|
Display OPLMN: True
|
||||||
PLMNsel: 00f110ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
|
PLMNsel: 00f110ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
|
||||||
PLMNwAcT:
|
PLMNwAcT:
|
||||||
00f110ffff # MCC: 001 MNC: 01 AcT: UTRAN, E-UTRAN, GSM, GSM COMPACT, cdma2000 HRPD, cdma2000 1xRTT
|
00f110ffff # MCC: 001 MNC: 01 AcT: UTRAN, E-UTRAN WB-S1, E-UTRAN NB-S1, GSM, GSM COMPACT, cdma2000 HRPD, cdma2000 1xRTT
|
||||||
ffffff0000 # unused
|
ffffff0000 # unused
|
||||||
ffffff0000 # unused
|
ffffff0000 # unused
|
||||||
ffffff0000 # unused
|
ffffff0000 # unused
|
||||||
|
@ -25,7 +25,7 @@ PLMNwAcT:
|
||||||
ffffff0000 # unused
|
ffffff0000 # unused
|
||||||
|
|
||||||
OPLMNwAcT:
|
OPLMNwAcT:
|
||||||
00f110ffff # MCC: 001 MNC: 01 AcT: UTRAN, E-UTRAN, GSM, GSM COMPACT, cdma2000 HRPD, cdma2000 1xRTT
|
00f110ffff # MCC: 001 MNC: 01 AcT: UTRAN, E-UTRAN WB-S1, E-UTRAN NB-S1, GSM, GSM COMPACT, cdma2000 HRPD, cdma2000 1xRTT
|
||||||
ffffff0000 # unused
|
ffffff0000 # unused
|
||||||
ffffff0000 # unused
|
ffffff0000 # unused
|
||||||
ffffff0000 # unused
|
ffffff0000 # unused
|
||||||
|
@ -39,7 +39,7 @@ OPLMNwAcT:
|
||||||
ffffff0000 # unused
|
ffffff0000 # unused
|
||||||
|
|
||||||
HPLMNAcT:
|
HPLMNAcT:
|
||||||
00f110ffff # MCC: 001 MNC: 01 AcT: UTRAN, E-UTRAN, GSM, GSM COMPACT, cdma2000 HRPD, cdma2000 1xRTT
|
00f110ffff # MCC: 001 MNC: 01 AcT: UTRAN, E-UTRAN WB-S1, E-UTRAN NB-S1, GSM, GSM COMPACT, cdma2000 HRPD, cdma2000 1xRTT
|
||||||
ffffff0000 # unused
|
ffffff0000 # unused
|
||||||
ffffff0000 # unused
|
ffffff0000 # unused
|
||||||
ffffff0000 # unused
|
ffffff0000 # unused
|
||||||
|
|
|
@ -93,7 +93,7 @@ class DecTestCase(unittest.TestCase):
|
||||||
self.assertEqual(utils.dec_act("0010"), ["cdma2000 1xRTT"])
|
self.assertEqual(utils.dec_act("0010"), ["cdma2000 1xRTT"])
|
||||||
|
|
||||||
def testDecAct_allSet(self):
|
def testDecAct_allSet(self):
|
||||||
self.assertEqual(utils.dec_act("ffff"), ["UTRAN", "E-UTRAN", "GSM", "GSM COMPACT", "cdma2000 HRPD", "cdma2000 1xRTT"])
|
self.assertEqual(utils.dec_act("ffff"), ["UTRAN", "E-UTRAN WB-S1", "E-UTRAN NB-S1", "GSM", "GSM COMPACT", "cdma2000 HRPD", "cdma2000 1xRTT"])
|
||||||
|
|
||||||
def testDecxPlmn_w_act(self):
|
def testDecxPlmn_w_act(self):
|
||||||
expected = {'mcc': '295', 'mnc': '10', 'act': ["UTRAN"]}
|
expected = {'mcc': '295', 'mnc': '10', 'act': ["UTRAN"]}
|
||||||
|
|
Loading…
Reference in New Issue