lists.osmocom.org
Sign In
Sign Up
Sign In
Sign Up
Manage this list
×
Keyboard Shortcuts
Thread View
j
: Next unread message
k
: Previous unread message
j a
: Jump to all threads
j l
: Jump to MailingList overview
2025
June
May
April
March
February
January
2024
December
November
October
September
August
July
June
May
April
March
February
January
2023
December
November
October
September
August
July
June
May
April
March
February
January
2022
December
November
October
September
August
July
June
May
April
March
February
January
List overview
Download
gerrit-log
July 2022
----- 2025 -----
June 2025
May 2025
April 2025
March 2025
February 2025
January 2025
----- 2024 -----
December 2024
November 2024
October 2024
September 2024
August 2024
July 2024
June 2024
May 2024
April 2024
March 2024
February 2024
January 2024
----- 2023 -----
December 2023
November 2023
October 2023
September 2023
August 2023
July 2023
June 2023
May 2023
April 2023
March 2023
February 2023
January 2023
----- 2022 -----
December 2022
November 2022
October 2022
September 2022
August 2022
July 2022
June 2022
May 2022
April 2022
March 2022
February 2022
January 2022
gerrit-log@lists.osmocom.org
3 participants
2175 discussions
Start a n
N
ew thread
Change in osmo-cbc[master]: cbsp_server.c: Drop unused code
by laforge
Attention is currently required from: pespin, fixeria. laforge has posted comments on this change. (
https://gerrit.osmocom.org/c/osmo-cbc/+/28701
) Change subject: cbsp_server.c: Drop unused code ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit
https://gerrit.osmocom.org/c/osmo-cbc/+/28701
To unsubscribe, or for help writing mail filters, visit
https://gerrit.osmocom.org/settings
Gerrit-Project: osmo-cbc Gerrit-Branch: master Gerrit-Change-Id: I5165e3c64d2c933027019264f68f94fb0c18e0e9 Gerrit-Change-Number: 28701 Gerrit-PatchSet: 1 Gerrit-Owner: pespin <pespin(a)sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-Reviewer: laforge <laforge(a)osmocom.org> Gerrit-Reviewer: osmith <osmith(a)sysmocom.de> Gerrit-Attention: pespin <pespin(a)sysmocom.de> Gerrit-Attention: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-Comment-Date: Thu, 21 Jul 2022 13:39:27 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
2 years, 11 months
1
0
0
0
Change in osmocom-bb[master]: trxcon: fix trx_if_close(): delete TRXC timer if it's pending
by laforge
Attention is currently required from: fixeria. laforge has posted comments on this change. (
https://gerrit.osmocom.org/c/osmocom-bb/+/28677
) Change subject: trxcon: fix trx_if_close(): delete TRXC timer if it's pending ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit
https://gerrit.osmocom.org/c/osmocom-bb/+/28677
To unsubscribe, or for help writing mail filters, visit
https://gerrit.osmocom.org/settings
Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: I669355ec03f67de437df2d3b822ed0a728b405d5 Gerrit-Change-Number: 28677 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter <pmaier(a)sysmocom.de> Gerrit-Reviewer: laforge <laforge(a)osmocom.org> Gerrit-Reviewer: osmith <osmith(a)sysmocom.de> Gerrit-Reviewer: pespin <pespin(a)sysmocom.de> Gerrit-Attention: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-Comment-Date: Thu, 21 Jul 2022 13:39:08 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
2 years, 11 months
1
0
0
0
Change in osmocom-bb[master]: trxcon: cosmetic: remove the '_fsm' postfix in trx_fsm.name
by laforge
Attention is currently required from: fixeria. laforge has posted comments on this change. (
https://gerrit.osmocom.org/c/osmocom-bb/+/28674
) Change subject: trxcon: cosmetic: remove the '_fsm' postfix in trx_fsm.name ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit
https://gerrit.osmocom.org/c/osmocom-bb/+/28674
To unsubscribe, or for help writing mail filters, visit
https://gerrit.osmocom.org/settings
Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: Ie867f7a59b9d9f423944606d43f2f854313053f7 Gerrit-Change-Number: 28674 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge <laforge(a)osmocom.org> Gerrit-Reviewer: pespin <pespin(a)sysmocom.de> Gerrit-Attention: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-Comment-Date: Thu, 21 Jul 2022 13:38:36 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
2 years, 11 months
1
0
0
0
Change in osmocom-bb[master]: trxcon: cosmetic: rename 'trx->fsm' to 'trx->fi'
by laforge
Attention is currently required from: fixeria. laforge has posted comments on this change. (
https://gerrit.osmocom.org/c/osmocom-bb/+/28673
) Change subject: trxcon: cosmetic: rename 'trx->fsm' to 'trx->fi' ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit
https://gerrit.osmocom.org/c/osmocom-bb/+/28673
To unsubscribe, or for help writing mail filters, visit
https://gerrit.osmocom.org/settings
Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: I688b903fe21086beca7fb86dcee90f6f751d7cc3 Gerrit-Change-Number: 28673 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge <laforge(a)osmocom.org> Gerrit-Reviewer: pespin <pespin(a)sysmocom.de> Gerrit-Attention: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-Comment-Date: Thu, 21 Jul 2022 13:38:25 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
2 years, 11 months
1
0
0
0
Change in osmocom-bb[master]: trxcon: get rid of GEN_MASK macro, define it locally
by laforge
Attention is currently required from: fixeria. laforge has posted comments on this change. (
https://gerrit.osmocom.org/c/osmocom-bb/+/28671
) Change subject: trxcon: get rid of GEN_MASK macro, define it locally ...................................................................... Patch Set 6: Code-Review+2 -- To view, visit
https://gerrit.osmocom.org/c/osmocom-bb/+/28671
To unsubscribe, or for help writing mail filters, visit
https://gerrit.osmocom.org/settings
Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: I9504f022ef1767276479f21b8228ac094d28a858 Gerrit-Change-Number: 28671 Gerrit-PatchSet: 6 Gerrit-Owner: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge <laforge(a)osmocom.org> Gerrit-Reviewer: osmith <osmith(a)sysmocom.de> Gerrit-Reviewer: pespin <pespin(a)sysmocom.de> Gerrit-Attention: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-Comment-Date: Thu, 21 Jul 2022 13:38:13 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
2 years, 11 months
1
0
0
0
Change in osmocom-bb[master]: trxcon: cosmetic: rename l1ctl_link.[ch] to l1ctl_server.[ch]
by laforge
Attention is currently required from: fixeria. laforge has posted comments on this change. (
https://gerrit.osmocom.org/c/osmocom-bb/+/28670
) Change subject: trxcon: cosmetic: rename l1ctl_link.[ch] to l1ctl_server.[ch] ...................................................................... Patch Set 6: Code-Review+2 -- To view, visit
https://gerrit.osmocom.org/c/osmocom-bb/+/28670
To unsubscribe, or for help writing mail filters, visit
https://gerrit.osmocom.org/settings
Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: I91149087bac6c745253d99deae2e32275b446a39 Gerrit-Change-Number: 28670 Gerrit-PatchSet: 6 Gerrit-Owner: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge <laforge(a)osmocom.org> Gerrit-Reviewer: osmith <osmith(a)sysmocom.de> Gerrit-Reviewer: pespin <pespin(a)sysmocom.de> Gerrit-Attention: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-Comment-Date: Thu, 21 Jul 2022 13:38:00 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
2 years, 11 months
1
0
0
0
Change in osmocom-bb[master]: trxcon: rework L1CTL socket API to support multiple clients
by laforge
Attention is currently required from: fixeria, pespin. laforge has posted comments on this change. (
https://gerrit.osmocom.org/c/osmocom-bb/+/28669
) Change subject: trxcon: rework L1CTL socket API to support multiple clients ...................................................................... Patch Set 6: Code-Review+1 -- To view, visit
https://gerrit.osmocom.org/c/osmocom-bb/+/28669
To unsubscribe, or for help writing mail filters, visit
https://gerrit.osmocom.org/settings
Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: I1cfc49f36ead6e2ba0a6110b0fb65c55412ef5e3 Gerrit-Change-Number: 28669 Gerrit-PatchSet: 6 Gerrit-Owner: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge <laforge(a)osmocom.org> Gerrit-Reviewer: osmith <osmith(a)sysmocom.de> Gerrit-CC: pespin <pespin(a)sysmocom.de> Gerrit-Attention: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-Attention: pespin <pespin(a)sysmocom.de> Gerrit-Comment-Date: Thu, 21 Jul 2022 13:37:47 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
2 years, 11 months
1
0
0
0
Change in pysim[master]: filesystem: Use Tuple for record length
by laforge
laforge has uploaded this change for review. (
https://gerrit.osmocom.org/c/pysim/+/28710
) Change subject: filesystem: Use Tuple for record length ...................................................................... filesystem: Use Tuple for record length The size should be a *tuple*. In reality we so far passed a set. The problem with the set is that ordering is not guaranteed, and hence we cannot assume the first and second item have meaning (minimum vs. default record length). Change-Id: I470f4e69c83cb2761861b3350bf8d49e31f4d957 --- M pySim/filesystem.py M pySim/gsm_r.py M pySim/sysmocom_sja2.py M pySim/ts_102_221.py M pySim/ts_31_102.py M pySim/ts_51_011.py 6 files changed, 47 insertions(+), 47 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/10/28710/1 diff --git a/pySim/filesystem.py b/pySim/filesystem.py index 73da0b6..f293939 100644 --- a/pySim/filesystem.py +++ b/pySim/filesystem.py @@ -913,7 +913,7 @@ self._cmd.poutput_json(data) def __init__(self, fid: str, sfid: str = None, name: str = None, desc: str = None, - parent: Optional[CardDF] = None, rec_len={1, None}, **kwargs): + parent: Optional[CardDF] = None, rec_len: Size = (1, None), **kwargs): """ Args: fid : File Identifier (4 hex digits) @@ -921,7 +921,7 @@ name : Brief name of the file, lik EF_ICCID desc : Description of the file parent : Parent CardFile object within filesystem hierarchy - rec_len : set of {minimum_length, recommended_length} + rec_len : Tuple of (minimum_length, recommended_length) """ super().__init__(fid=fid, sfid=sfid, name=name, desc=desc, parent=parent, **kwargs) self.rec_len = rec_len @@ -1044,7 +1044,7 @@ # we don't really have any special support for those; just recycling LinFixedEF here def __init__(self, fid: str, sfid: str = None, name: str = None, desc: str = None, parent: CardDF = None, - rec_len={1, None}, **kwargs): + rec_len: Size = (1, None), **kwargs): super().__init__(fid=fid, sfid=sfid, name=name, desc=desc, parent=parent, rec_len=rec_len, **kwargs) diff --git a/pySim/gsm_r.py b/pySim/gsm_r.py index ccab87f..8464197 100644 --- a/pySim/gsm_r.py +++ b/pySim/gsm_r.py @@ -61,7 +61,7 @@ def __init__(self): super().__init__(fid='6ff1', sfid=None, name='EF.EN', - desc='Functional numbers', rec_len={9, 9}) + desc='Functional numbers', rec_len=(9, 9)) self._construct = Struct('functional_number_and_type'/FuncNTypeAdapter(Bytes(8)), 'list_number'/Int8ub) @@ -166,7 +166,7 @@ """Section 7.5""" def __init__(self): - super().__init__(fid='6ff3', sfid=None, name='EF.CallconfI', rec_len={21, 21}, + super().__init__(fid='6ff3', sfid=None, name='EF.CallconfI', rec_len=(21, 21), desc='Call Configuration of emergency calls Information') self._construct = Struct('t_dur'/Int24ub, 't_relcalc'/Int32ub, @@ -193,7 +193,7 @@ def __init__(self): super().__init__(fid='6ff5', sfid=None, name='EF.GsmrPLMN', - desc='GSM-R network selection', rec_len={9, 9}) + desc='GSM-R network selection', rec_len=(9, 9)) self._construct = Struct('plmn'/BcdAdapter(Bytes(3)), 'class_of_network'/BitStruct('supported'/FlagsEnum(BitsInteger(5), vbs=1, vgcs=2, emlpp=4, fn=8, eirene=16), 'preference'/BitsInteger(3)), @@ -207,7 +207,7 @@ def __init__(self): super().__init__(fid='6f8d', sfid=None, name='EF.IC', - desc='International Code', rec_len={7, 7}) + desc='International Code', rec_len=(7, 7)) self._construct = Struct('next_table_type'/NextTableType, 'id_of_next_table'/HexAdapter(Bytes(2)), 'ic_decision_value'/BcdAdapter(Bytes(2)), @@ -219,7 +219,7 @@ def __init__(self): super().__init__(fid='6f80', sfid=None, name='EF.NW', - desc='Network Name', rec_len={8, 8}) + desc='Network Name', rec_len=(8, 8)) self._construct = GsmString(8) @@ -228,7 +228,7 @@ def __init__(self, fid, name, desc): super().__init__(fid=fid, sfid=None, - name=name, desc=desc, rec_len={6, 6}) + name=name, desc=desc, rec_len=(6, 6)) self._construct = Struct('next_table_type'/NextTableType, 'id_of_next_table'/HexAdapter(Bytes(2)), 'decision_value'/BcdAdapter(Bytes(2)), @@ -240,7 +240,7 @@ def __init__(self, fid, name, desc): super().__init__(fid=fid, sfid=None, - name=name, desc=desc, rec_len={3, 3}) + name=name, desc=desc, rec_len=(3, 3)) # header and other records have different structure. WTF !?! self._construct = Struct('next_table_type'/NextTableType, 'id_of_next_table'/HexAdapter(Bytes(2)), diff --git a/pySim/sysmocom_sja2.py b/pySim/sysmocom_sja2.py index 2edc916..d00a2cb 100644 --- a/pySim/sysmocom_sja2.py +++ b/pySim/sysmocom_sja2.py @@ -85,7 +85,7 @@ class EF_0348_KEY(LinFixedEF): def __init__(self, fid='6f22', name='EF.0348_KEY', desc='TS 03.48 OTA Keys'): - super().__init__(fid, name=name, desc=desc, rec_len={27, 35}) + super().__init__(fid, name=name, desc=desc, rec_len=(27, 35)) def _decode_record_bin(self, raw_bin_data): u = unpack('!BBB', raw_bin_data[0:3]) @@ -103,7 +103,7 @@ class EF_0348_COUNT(LinFixedEF): def __init__(self, fid='6f23', name='EF.0348_COUNT', desc='TS 03.48 OTA Counters'): - super().__init__(fid, name=name, desc=desc, rec_len={7, 7}) + super().__init__(fid, name=name, desc=desc, rec_len=(7, 7)) def _decode_record_bin(self, raw_bin_data): u = unpack('!BB5s', raw_bin_data) @@ -118,7 +118,7 @@ class EF_GP_COUNT(LinFixedEF): def __init__(self, fid='6f26', name='EF.GP_COUNT', desc='GP SCP02 Counters'): - super().__init__(fid, name=name, desc=desc, rec_len={5, 5}) + super().__init__(fid, name=name, desc=desc, rec_len=(5, 5)) def _decode_record_bin(self, raw_bin_data): u = unpack('!BBHB', raw_bin_data) @@ -127,7 +127,7 @@ class EF_GP_DIV_DATA(LinFixedEF): def __init__(self, fid='6f27', name='EF.GP_DIV_DATA', desc='GP SCP02 key diversification data'): - super().__init__(fid, name=name, desc=desc, rec_len={12, 12}) + super().__init__(fid, name=name, desc=desc, rec_len=(12, 12)) def _decode_record_bin(self, raw_bin_data): u = unpack('!BB8s', raw_bin_data) @@ -241,7 +241,7 @@ class EF_GBA_INT_KEY(LinFixedEF): def __init__(self, fid='af33', name='EF.GBA_INT_KEY'): super().__init__(fid, name=name, - desc='Secret key for GBA key derivation', rec_len={32, 32}) + desc='Secret key for GBA key derivation', rec_len=(32, 32)) self._construct = GreedyBytes diff --git a/pySim/ts_102_221.py b/pySim/ts_102_221.py index 6e04e96..83ddb85 100644 --- a/pySim/ts_102_221.py +++ b/pySim/ts_102_221.py @@ -588,7 +588,7 @@ pass def __init__(self, fid='2f00', sfid=0x1e, name='EF.DIR', desc='Application Directory'): - super().__init__(fid, sfid=sfid, name=name, desc=desc, rec_len={5, 54}) + super().__init__(fid, sfid=sfid, name=name, desc=desc, rec_len=(5, 54)) self._tlv = EF_DIR.ApplicationTemplate # TS 102 221 Section 13.2 diff --git a/pySim/ts_31_102.py b/pySim/ts_31_102.py index b8a33e7..5df7369 100644 --- a/pySim/ts_31_102.py +++ b/pySim/ts_31_102.py @@ -333,7 +333,7 @@ IdsOfSelectedEpsAlgos]): pass - def __init__(self, fid="4f03", sfid=0x03, name='EF.5GS3GPPNSC', rec_len={57, None}, + def __init__(self, fid="4f03", sfid=0x03, name='EF.5GS3GPPNSC', rec_len=(57, None), desc='5GS 3GPP Access NAS Security Context', **kwargs): super().__init__(fid, sfid=sfid, name=name, desc=desc, rec_len=rec_len, **kwargs) self._tlv = EF_5GS3GPPNSC.FiveGSNasSecurityContext @@ -597,7 +597,7 @@ def __init__(self, fid='6fb7', sfid=0x01, name='EF.ECC', desc='Emergency Call Codes'): - super().__init__(fid, sfid=sfid, name=name, desc=desc, rec_len={4, 20}) + super().__init__(fid, sfid=sfid, name=name, desc=desc, rec_len=(4, 20)) def _decode_record_bin(self, in_bin): # mandatory parts @@ -661,7 +661,7 @@ # TS 31.102 Section 4.2.33 class EF_ICI(CyclicEF): - def __init__(self, fid='6f80', sfid=0x14, name='EF.ICI', rec_len={28, 48}, + def __init__(self, fid='6f80', sfid=0x14, name='EF.ICI', rec_len=(28, 48), desc='Incoming Call Information', **kwargs): super().__init__(fid=fid, sfid=sfid, name=name, desc=desc, rec_len=rec_len, **kwargs) self._construct = Struct('alpha_id'/HexAdapter(Bytes(this._.total_len-28)), @@ -677,7 +677,7 @@ # TS 31.102 Section 4.2.34 class EF_OCI(CyclicEF): - def __init__(self, fid='6f81', sfid=0x15, name='EF.OCI', rec_len={27, 47}, + def __init__(self, fid='6f81', sfid=0x15, name='EF.OCI', rec_len=(27, 47), desc='Outgoing Call Information', **kwargs): super().__init__(fid=fid, sfid=sfid, name=name, desc=desc, rec_len=rec_len, **kwargs) self._construct = Struct('alpha_id'/HexAdapter(Bytes(this._.total_len-27)), @@ -692,7 +692,7 @@ # TS 31.102 Section 4.2.35 class EF_ICT(CyclicEF): - def __init__(self, fid='6f82', sfid=None, name='EF.ICT', rec_len={3, 3}, + def __init__(self, fid='6f82', sfid=None, name='EF.ICT', rec_len=(3, 3), desc='Incoming Call Timer', **kwargs): super().__init__(fid=fid, sfid=sfid, name=name, desc=desc, rec_len=rec_len, **kwargs) self._construct = Struct('accumulated_call_timer'/Int24ub) @@ -700,7 +700,7 @@ # TS 31.102 Section 4.2.38 class EF_CCP2(LinFixedEF): def __init__(self, fid='6f4f', sfid=0x16, name='EF.CCP2', desc='Capability Configuration Parameters 2', **kwargs): - super().__init__(fid=fid, sfid=sfid, name=name, desc=desc, rec_len={15, None}, **kwargs) + super().__init__(fid=fid, sfid=sfid, name=name, desc=desc, rec_len=(15, None), **kwargs) # TS 31.102 Section 4.2.47 class EF_EST(EF_UServiceTable): @@ -769,7 +769,7 @@ # TS 31.102 Section 4.2.80 class EF_MSK(LinFixedEF): def __init__(self, fid='6fd7', sfid=None, name='EF.MSK', desc='MBMS Service Key List', **kwargs): - super().__init__(fid=fid, sfid=sfid, name=name, desc=desc, rec_len={20, None}, **kwargs) + super().__init__(fid=fid, sfid=sfid, name=name, desc=desc, rec_len=(20, None), **kwargs) msk_ts_constr = Struct('msk_id'/Int32ub, 'timestamp_counter'/Int32ub) self._construct = Struct('key_domain_id'/HexAdapter(Bytes(3)), 'num_msk_id'/Int8ub, @@ -792,7 +792,7 @@ pass def __init__(self, fid='6fd8', sfid=None, name='EF.MUK', desc='MBMS User Key', **kwargs): - super().__init__(fid=fid, sfid=sfid, name=name, desc=desc, rec_len={None, None}, **kwargs) + super().__init__(fid=fid, sfid=sfid, name=name, desc=desc, rec_len=(None, None), **kwargs) self._tlv = EF_MUK.EF_MUK_Collection # TS 31.102 Section 4.2.83 @@ -807,7 +807,7 @@ pass def __init__(self, fid='6fda', sfid=None, name='EF.GBANL', desc='GBA NAF List', **kwargs): - super().__init__(fid=fid, sfid=sfid, name=name, desc=desc, rec_len={None, None}, **kwargs) + super().__init__(fid=fid, sfid=sfid, name=name, desc=desc, rec_len=(None, None), **kwargs) self._tlv = EF_GBANL.EF_GBANL_Collection # TS 31.102 Section 4.2.85 @@ -822,7 +822,7 @@ class EF_NAFKCA(LinFixedEF): class NAF_KeyCentreAddress(BER_TLV_IE, tag=0x80): _construct = HexAdapter(GreedyBytes) - def __init__(self, fid='6fdd', sfid=None, name='EF.NAFKCA', rec_len={None, None}, + def __init__(self, fid='6fdd', sfid=None, name='EF.NAFKCA', rec_len=(None, None), desc='NAF Key Centre Address', **kwargs): super().__init__(fid=fid, sfid=sfid, name=name, desc=desc, rec_len=rec_len, **kwargs) self._tlv = EF_NAFKCA.NAF_KeyCentreAddress @@ -853,7 +853,7 @@ class EF_NCP_IP_Collection(TLV_IE_Collection, nested=[AccessPointName, Login, Password, BearerDescription]): pass - def __init__(self, fid='6fe2', sfid=None, name='EF.NCP-IP', rec_len={None, None}, + def __init__(self, fid='6fe2', sfid=None, name='EF.NCP-IP', rec_len=(None, None), desc='Network Connectivity Parameters for USIM IP connections', **kwargs): super().__init__(fid=fid, sfid=sfid, name=name, desc=desc, rec_len=rec_len, **kwargs) self._tlv = EF_NCP_IP.EF_NCP_IP_Collection @@ -890,7 +890,7 @@ nested=[KSI_ASME, K_ASME, UplinkNASCount, DownlinkNASCount, IDofNASAlgorithms]): pass - def __init__(self, fid='6fe4', sfid=0x18, name='EF.EPSNSC', rec_len={54, 128}, + def __init__(self, fid='6fe4', sfid=0x18, name='EF.EPSNSC', rec_len=(54, 128), desc='EPS NAS Security Context', **kwargs): super().__init__(fid=fid, sfid=sfid, name=name, desc=desc, rec_len=rec_len, **kwargs) self._tlv = EF_EPSNSC.EPS_NAS_Security_Context @@ -905,7 +905,7 @@ # TS 31.102 Section 4.2.101 class EF_IPS(CyclicEF): - def __init__(self, fid='6ff1', sfid=None, name='EF.IPS', rec_len={4, 4}, + def __init__(self, fid='6ff1', sfid=None, name='EF.IPS', rec_len=(4, 4), desc='IMEI(SV) Pairing Status', **kwargs): super().__init__(fid, sfid=sfid, name=name, desc=desc, rec_len=rec_len, **kwargs) self._construct = Struct('status'/PaddedString(2, 'ascii'), @@ -975,7 +975,7 @@ # TS 31.102 Section 4.4.11.9 class EF_OPL5G(LinFixedEF): def __init__(self, fid='6f08', sfid=0x08, name='EF.OPL5G', desc='5GS Operator PLMN List', **kwargs): - super().__init__(fid=fid, sfid=sfid, name=name, desc=desc, rec_len={10, None}, **kwargs) + super().__init__(fid=fid, sfid=sfid, name=name, desc=desc, rec_len=(10, None), **kwargs) Tai = Struct('mcc_mnc'/BcdAdapter(Bytes(3)), 'tac_min'/HexAdapter(Bytes(3)), 'tac_max'/HexAdapter(Bytes(3))) self._construct = Struct('tai'/Tai, 'pnn_record_id'/Int8ub) @@ -1131,7 +1131,7 @@ EF_ACMmax(service=13), EF_UST(), CyclicEF('6f39', None, 'EF.ACM', - 'Accumulated call meter', rec_len={3, 3}, service=13), + 'Accumulated call meter', rec_len=(3, 3), service=13), TransparentEF('6f3e', None, 'EF.GID1', 'Group Identifier Level 1', service=17), TransparentEF('6f3f', None, 'EF.GID2', 'Group Identifier Level 2', service=18), EF_SPN(service=19), diff --git a/pySim/ts_51_011.py b/pySim/ts_51_011.py index 68b32ce..d16ea72 100644 --- a/pySim/ts_51_011.py +++ b/pySim/ts_51_011.py @@ -343,7 +343,7 @@ # TS 51.011 Section 10.5.1 class EF_ADN(LinFixedEF): def __init__(self, fid='6f3a', sfid=None, name='EF.ADN', desc='Abbreviated Dialing Numbers', **kwargs): - super().__init__(fid, sfid=sfid, name=name, desc=desc, rec_len={14, 30}, **kwargs) + super().__init__(fid, sfid=sfid, name=name, desc=desc, rec_len=(14, 30), **kwargs) self._construct = Struct('alpha_id'/COptional(GsmStringAdapter(Rpad(Bytes(this._.total_len-14)), codec='ascii')), 'len_of_bcd'/Int8ub, 'ton_npi'/TonNpi, @@ -354,7 +354,7 @@ # TS 51.011 Section 10.5.5 class EF_SMS(LinFixedEF): def __init__(self, fid='6f3c', sfid=None, name='EF.SMS', desc='Short messages', **kwargs): - super().__init__(fid, sfid=sfid, name=name, desc=desc, rec_len={176, 176}, **kwargs) + super().__init__(fid, sfid=sfid, name=name, desc=desc, rec_len=(176, 176), **kwargs) def _decode_record_bin(self, raw_bin_data): def decode_status(status): @@ -385,7 +385,7 @@ # TS 51.011 Section 10.5.5 class EF_MSISDN(LinFixedEF): def __init__(self, fid='6f40', sfid=None, name='EF.MSISDN', desc='MSISDN', **kwargs): - super().__init__(fid, sfid=sfid, name=name, desc=desc, rec_len={15, 34}, **kwargs) + super().__init__(fid, sfid=sfid, name=name, desc=desc, rec_len=(15, 34), **kwargs) def _decode_record_hex(self, raw_hex_data): return {'msisdn': dec_msisdn(raw_hex_data)} @@ -427,7 +427,7 @@ raise ValueError def __init__(self, fid='6f42', sfid=None, name='EF.SMSP', desc='Short message service parameters', **kwargs): - super().__init__(fid, sfid=sfid, name=name, desc=desc, rec_len={28, None}, **kwargs) + super().__init__(fid, sfid=sfid, name=name, desc=desc, rec_len=(28, None), **kwargs) ScAddr = Struct('length'/Int8ub, 'ton_npi'/TonNpi, 'call_number'/BcdAdapter(Rpad(Bytes(10)))) self._construct = Struct('alpha_id'/COptional(GsmStringAdapter(Rpad(Bytes(this._.total_len-28)))), 'parameter_indicators'/InvertAdapter(FlagsEnum(Byte, tp_dest_addr=1, tp_sc_addr=2, @@ -455,21 +455,21 @@ # TS 51.011 Section 10.5.8 class EF_SMSR(LinFixedEF): - def __init__(self, fid='6f47', sfid=None, name='EF.SMSR', desc='SMS status reports', rec_len={30, 30}, **kwargs): + def __init__(self, fid='6f47', sfid=None, name='EF.SMSR', desc='SMS status reports', rec_len=(30, 30), **kwargs): super().__init__(fid, sfid=sfid, name=name, desc=desc, rec_len=rec_len, **kwargs) self._construct = Struct( 'sms_record_id'/Int8ub, 'sms_status_report'/HexAdapter(Bytes(29))) class EF_EXT(LinFixedEF): - def __init__(self, fid, sfid=None, name='EF.EXT', desc='Extension', rec_len={13, 13}, **kwargs): + def __init__(self, fid, sfid=None, name='EF.EXT', desc='Extension', rec_len=(13, 13), **kwargs): super().__init__(fid=fid, sfid=sfid, name=name, desc=desc, rec_len=rec_len, **kwargs) self._construct = Struct( 'record_type'/Int8ub, 'extension_data'/HexAdapter(Bytes(11)), 'identifier'/Int8ub) # TS 51.011 Section 10.5.16 class EF_CMI(LinFixedEF): - def __init__(self, fid='6f58', sfid=None, name='EF.CMI', rec_len={2, 21}, + def __init__(self, fid='6f58', sfid=None, name='EF.CMI', rec_len=(2, 21), desc='Comparison Method Information', **kwargs): super().__init__(fid, sfid=sfid, name=name, desc=desc, rec_len=rec_len, **kwargs) self._construct = Struct( @@ -484,9 +484,9 @@ EF_ADN(fid='6f3b', name='EF.FDN', desc='Fixed dialling numbers'), EF_SMS(), LinFixedEF(fid='6f3d', name='EF.CCP', - desc='Capability Configuration Parameters', rec_len={14, 14}), + desc='Capability Configuration Parameters', rec_len=(14, 14)), LinFixedEF(fid='6f4f', name='EF.ECCP', - desc='Extended Capability Configuration Parameters', rec_len={15, 32}), + desc='Extended Capability Configuration Parameters', rec_len=(15, 32)), EF_MSISDN(), EF_SMSP(), EF_SMSS(), @@ -790,7 +790,7 @@ # TS 51.011 Section 10.3.31 class EF_NIA(LinFixedEF): - def __init__(self, fid='6f51', sfid=None, name='EF.NIA', rec_len={1, 32}, + def __init__(self, fid='6f51', sfid=None, name='EF.NIA', rec_len=(1, 32), desc='Network\'s Indication of Alerting', **kwargs): super().__init__(fid, sfid=sfid, name=name, desc=desc, rec_len=rec_len, **kwargs) self._construct = Struct( @@ -895,21 +895,21 @@ # TS 51.011 Section 10.3.42 class EF_OPL(LinFixedEF): - def __init__(self, fid='6fc6', sfid=None, name='EF.OPL', rec_len={8, 8}, desc='Operator PLMN List', **kwargs): + def __init__(self, fid='6fc6', sfid=None, name='EF.OPL', rec_len=(8, 8), desc='Operator PLMN List', **kwargs): super().__init__(fid, sfid=sfid, name=name, desc=desc, rec_len=rec_len, **kwargs) self._construct = Struct('lai'/Struct('mcc_mnc'/BcdAdapter(Bytes(3)), 'lac_min'/HexAdapter(Bytes(2)), 'lac_max'/HexAdapter(Bytes(2))), 'pnn_record_id'/Int8ub) # TS 51.011 Section 10.3.44 + TS 31.102 4.2.62 class EF_MBI(LinFixedEF): - def __init__(self, fid='6fc9', sfid=None, name='EF.MBI', rec_len={4, 5}, desc='Mailbox Identifier', **kwargs): + def __init__(self, fid='6fc9', sfid=None, name='EF.MBI', rec_len=(4, 5), desc='Mailbox Identifier', **kwargs): super().__init__(fid, sfid=sfid, name=name, desc=desc, rec_len=rec_len, **kwargs) self._construct = Struct('mbi_voicemail'/Int8ub, 'mbi_fax'/Int8ub, 'mbi_email'/Int8ub, 'mbi_other'/Int8ub, 'mbi_videocall'/COptional(Int8ub)) # TS 51.011 Section 10.3.45 + TS 31.102 4.2.63 class EF_MWIS(LinFixedEF): - def __init__(self, fid='6fca', sfid=None, name='EF.MWIS', rec_len={5, 6}, + def __init__(self, fid='6fca', sfid=None, name='EF.MWIS', rec_len=(5, 6), desc='Message Waiting Indication Status', **kwargs): super().__init__(fid, sfid=sfid, name=name, desc=desc, rec_len=rec_len, **kwargs) self._construct = Struct('mwi_status'/FlagsEnum(Byte, voicemail=1, fax=2, email=4, other=8, videomail=16), @@ -932,7 +932,7 @@ # TS 51.011 Section 10.3.51 class EF_MMSN(LinFixedEF): - def __init__(self, fid='6fce', sfid=None, name='EF.MMSN', rec_len={4, 20}, desc='MMS Notification', **kwargs): + def __init__(self, fid='6fce', sfid=None, name='EF.MMSN', rec_len=(4, 20), desc='MMS Notification', **kwargs): super().__init__(fid, sfid=sfid, name=name, desc=desc, rec_len=rec_len, **kwargs) self._construct = Struct('mms_status'/HexAdapter(Bytes(2)), 'mms_implementation'/HexAdapter(Bytes(1)), 'mms_notification'/HexAdapter(Bytes(this._.total_len-4)), 'ext_record_nr'/Byte) @@ -974,7 +974,7 @@ class MMS_User_Preferences(TLV_IE_Collection, nested=[MMS_Implementation, MMS_UserPref_ProfileName, MMS_UserPref_Info]): pass - def __init__(self, fid='6fd1', sfid=None, name='EF.MMSUP', rec_len={1, None}, + def __init__(self, fid='6fd1', sfid=None, name='EF.MMSUP', rec_len=(1, None), desc='MMS User Preferences', **kwargs): super().__init__(fid, sfid=sfid, name=name, desc=desc, rec_len=rec_len, **kwargs) self._tlv = EF_MMSUP.MMS_User_Preferences @@ -1000,7 +1000,7 @@ EF_ServiceTable('6f38', None, 'EF.SST', 'SIM service table', table=EF_SST_map, size=(2, 16)), CyclicEF('6f39', None, 'EF.ACM', - 'Accumulated call meter', rec_len={3, 3}), + 'Accumulated call meter', rec_len=(3, 3)), TransparentEF('6f3e', None, 'EF.GID1', 'Group Identifier Level 1'), TransparentEF('6f3f', None, 'EF.GID2', 'Group Identifier Level 2'), EF_SPN(), -- To view, visit
https://gerrit.osmocom.org/c/pysim/+/28710
To unsubscribe, or for help writing mail filters, visit
https://gerrit.osmocom.org/settings
Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I470f4e69c83cb2761861b3350bf8d49e31f4d957 Gerrit-Change-Number: 28710 Gerrit-PatchSet: 1 Gerrit-Owner: laforge <laforge(a)osmocom.org> Gerrit-MessageType: newchange
2 years, 11 months
1
0
0
0
Change in pysim[master]: ts_31_102: Fix EF_EPSLOCI argument ordering
by laforge
laforge has uploaded this change for review. (
https://gerrit.osmocom.org/c/pysim/+/28711
) Change subject: ts_31_102: Fix EF_EPSLOCI argument ordering ...................................................................... ts_31_102: Fix EF_EPSLOCI argument ordering We were invoking the constructor with the description as 4th positional argument, but that was actually the 'size' argument in this case. Let's swap the order to be aligned with other file constructors. Change-Id: I9acee757f096fef0d8bacbec3b52f56267cd52f6 --- M pySim/ts_31_102.py 1 file changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/11/28711/1 diff --git a/pySim/ts_31_102.py b/pySim/ts_31_102.py index 5df7369..aa36b71 100644 --- a/pySim/ts_31_102.py +++ b/pySim/ts_31_102.py @@ -860,8 +860,8 @@ # TS 31.102 Section 4.2.91 class EF_EPSLOCI(TransparentEF): - def __init__(self, fid='6fe3', sfid=0x1e, name='EF.EPSLOCI', size=(18, 18), - desc='EPS Location Information', **kwargs): + def __init__(self, fid='6fe3', sfid=0x1e, name='EF.EPSLOCI', + desc='EPS Location Information', size=(18,18), **kwargs): super().__init__(fid, sfid=sfid, name=name, desc=desc, size=size, **kwargs) upd_status_constr = Enum( Byte, updated=0, not_updated=1, roaming_not_allowed=2) -- To view, visit
https://gerrit.osmocom.org/c/pysim/+/28711
To unsubscribe, or for help writing mail filters, visit
https://gerrit.osmocom.org/settings
Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I9acee757f096fef0d8bacbec3b52f56267cd52f6 Gerrit-Change-Number: 28711 Gerrit-PatchSet: 1 Gerrit-Owner: laforge <laforge(a)osmocom.org> Gerrit-MessageType: newchange
2 years, 11 months
1
0
0
0
Change in pysim[master]: filesystem: Use Tuple for transparent file size
by laforge
laforge has uploaded this change for review. (
https://gerrit.osmocom.org/c/pysim/+/28709
) Change subject: filesystem: Use Tuple for transparent file size ...................................................................... filesystem: Use Tuple for transparent file size As the documentation strings say: The size should be a *tuple*. In reality we so far passed a set. The problem with the set is that ordering is not guaranteed, and hence we cannot assume the first and second item have meaning (minimum vs. default size). While at it, use a type annotation to catch such bugs easily. Change-Id: I553616f8c6c4aaa8f635b3d7d94e8e8f49ed5a56 --- M pySim/filesystem.py M pySim/gsm_r.py M pySim/ts_102_221.py M pySim/ts_31_102.py M pySim/ts_31_102_telecom.py M pySim/ts_51_011.py 6 files changed, 71 insertions(+), 69 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/09/28709/1 diff --git a/pySim/filesystem.py b/pySim/filesystem.py index 182889b..73da0b6 100644 --- a/pySim/filesystem.py +++ b/pySim/filesystem.py @@ -49,6 +49,8 @@ # tuple: logical-and of the listed services requires this file CardFileService = Union[int, List[int], Tuple[int, ...]] +Size = Tuple[int, None | int] + def lchan_nr_from_cla(cla: int) -> int: """Resolve the logical channel number from the CLA byte.""" # TS 102 221 10.1.1 Coding of Class Byte @@ -642,7 +644,7 @@ self._cmd.poutput_json(data) def __init__(self, fid: str, sfid: str = None, name: str = None, desc: str = None, parent: CardDF = None, - size={1, None}, **kwargs): + size: Size = (1, None), **kwargs): """ Args: fid : File Identifier (4 hex digits) @@ -1057,7 +1059,7 @@ """ def __init__(self, fid: str, rec_len: int, sfid: str = None, name: str = None, desc: str = None, - parent: Optional[CardDF] = None, size={1, None}, **kwargs): + parent: Optional[CardDF] = None, size: Size = (1, None), **kwargs): """ Args: fid : File Identifier (4 hex digits) @@ -1245,7 +1247,7 @@ self._cmd.poutput(data) def __init__(self, fid: str, sfid: str = None, name: str = None, desc: str = None, parent: CardDF = None, - size={1, None}, **kwargs): + size: Size = (1, None), **kwargs): """ Args: fid : File Identifier (4 hex digits) diff --git a/pySim/gsm_r.py b/pySim/gsm_r.py index b48469e..ccab87f 100644 --- a/pySim/gsm_r.py +++ b/pySim/gsm_r.py @@ -149,7 +149,7 @@ """Section 7.3""" def __init__(self): - super().__init__(fid='6ff2', sfid=None, name='EF.CallconfC', size={24, 24}, + super().__init__(fid='6ff2', sfid=None, name='EF.CallconfC', size=(24, 24), desc='Call Configuration of emergency calls Configuration') self._construct = Struct('pl_conf'/PlConfAdapter(Int8ub), 'conf_nr'/BcdAdapter(Bytes(8)), @@ -183,7 +183,7 @@ def __init__(self): super().__init__(fid='6ff4', sfid=None, - name='EF.Shunting', desc='Shunting', size={8, 8}) + name='EF.Shunting', desc='Shunting', size=(8, 8)) self._construct = Struct('common_gid'/Int8ub, 'shunting_gid'/HexAdapter(Bytes(7))) @@ -253,7 +253,7 @@ """Section 8.6""" def __init__(self, fid, name, desc): - super().__init__(fid=fid, sfid=None, name=name, desc=desc, size={4, 4}) + super().__init__(fid=fid, sfid=None, name=name, desc=desc, size=(4, 4)) self._construct = Struct('next_table_type'/NextTableType, 'id_of_next_table'/HexAdapter(Bytes(2)), 'dialed_digits'/BcdAdapter(Bytes(1))) diff --git a/pySim/ts_102_221.py b/pySim/ts_102_221.py index 8578f68..6e04e96 100644 --- a/pySim/ts_102_221.py +++ b/pySim/ts_102_221.py @@ -594,7 +594,7 @@ # TS 102 221 Section 13.2 class EF_ICCID(TransparentEF): def __init__(self, fid='2fe2', sfid=0x02, name='EF.ICCID', desc='ICC Identification'): - super().__init__(fid, sfid=sfid, name=name, desc=desc, size={10, 10}) + super().__init__(fid, sfid=sfid, name=name, desc=desc, size=(10, 10)) def _decode_hex(self, raw_hex): return {'iccid': dec_iccid(raw_hex)} @@ -606,7 +606,7 @@ class EF_PL(TransRecEF): def __init__(self, fid='2f05', sfid=0x05, name='EF.PL', desc='Preferred Languages'): super().__init__(fid, sfid=sfid, name=name, - desc=desc, rec_len=2, size={2, None}) + desc=desc, rec_len=2, size=(2, None)) def _decode_record_bin(self, bin_data): if bin_data == b'\xff\xff': @@ -706,7 +706,7 @@ # TS 102 221 Section 13.6 class EF_UMPC(TransparentEF): def __init__(self, fid='2f08', sfid=0x08, name='EF.UMPC', desc='UICC Maximum Power Consumption'): - super().__init__(fid, sfid=sfid, name=name, desc=desc, size={5, 5}) + super().__init__(fid, sfid=sfid, name=name, desc=desc, size=(5, 5)) addl_info = FlagsEnum(Byte, req_inc_idle_current=1, support_uicc_suspend=2) self._construct = Struct( diff --git a/pySim/ts_31_102.py b/pySim/ts_31_102.py index 066ee88..b8a33e7 100644 --- a/pySim/ts_31_102.py +++ b/pySim/ts_31_102.py @@ -349,7 +349,7 @@ class FiveGAuthKeys(TLV_IE_Collection, nested=[K_AUSF, K_SEAF]): pass - def __init__(self, fid='4f05', sfid=0x05, name='EF.5GAUTHKEYS', size={68, None}, + def __init__(self, fid='4f05', sfid=0x05, name='EF.5GAUTHKEYS', size=(68, None), desc='5G authentication keys', **kwargs): super().__init__(fid, sfid=sfid, name=name, desc=desc, size=size, **kwargs) self._tlv = EF_5GAUTHKEYS.FiveGAuthKeys @@ -383,7 +383,7 @@ # TS 31.102 4.4.11.8 class EF_SUCI_Calc_Info(TransparentEF): - def __init__(self, fid="4f07", sfid=0x07, name='EF.SUCI_Calc_Info', size={2, None}, + def __init__(self, fid="4f07", sfid=0x07, name='EF.SUCI_Calc_Info', size=(2, None), desc='SUCI Calc Info', **kwargs): super().__init__(fid, sfid=sfid, name=name, desc=desc, size=size, **kwargs) @@ -506,7 +506,7 @@ class EF_LI(TransRecEF): - def __init__(self, fid='6f05', sfid=None, name='EF.LI', size={2, None}, rec_len=2, + def __init__(self, fid='6f05', sfid=None, name='EF.LI', size=(2, None), rec_len=2, desc='Language Indication'): super().__init__(fid, sfid=sfid, name=name, desc=desc, size=size, rec_len=rec_len) @@ -526,7 +526,7 @@ class EF_Keys(TransparentEF): - def __init__(self, fid='6f08', sfid=0x08, name='EF.Keys', size={33, 33}, + def __init__(self, fid='6f08', sfid=0x08, name='EF.Keys', size=(33, 33), desc='Ciphering and Integrity Keys'): super().__init__(fid, sfid=sfid, name=name, desc=desc, size=size) self._construct = Struct( @@ -534,14 +534,14 @@ # TS 31.102 Section 4.2.6 class EF_HPPLMN(TransparentEF): - def __init__(self, fid='6f31', sfid=0x12, name='EF.HPPLMN', size={1, 1}, + def __init__(self, fid='6f31', sfid=0x12, name='EF.HPPLMN', size=(1, 1), desc='Higher Priority PLMN search period'): super().__init__(fid, sfid=sfid, name=name, desc=desc, size=size) self._construct = Int8ub class EF_UST(EF_UServiceTable): def __init__(self, **kwargs): - super().__init__(fid='6f38', sfid=0x04, name='EF.UST', desc='USIM Service Table', size={1,17}, table=EF_UST_map, **kwargs) + super().__init__(fid='6f38', sfid=0x04, name='EF.UST', desc='USIM Service Table', size=(1,17), table=EF_UST_map, **kwargs) # add those commands to the general commands of a TransparentEF self.shell_commands += [self.AddlShellCommands()] @@ -625,7 +625,7 @@ # TS 31.102 Section 4.2.17 class EF_LOCI(TransparentEF): - def __init__(self, fid='6f7e', sfid=0x0b, name='EF.LOCI', desc='Location information', size={11, 11}): + def __init__(self, fid='6f7e', sfid=0x0b, name='EF.LOCI', desc='Location information', size=(11, 11)): super().__init__(fid, sfid=sfid, name=name, desc=desc, size=size) Lai = Struct('mcc_mnc'/BcdAdapter(Bytes(3)), 'lac'/HexAdapter(Bytes(2))) self._construct = Struct('tmsi'/HexAdapter(Bytes(4)), 'lai'/Lai, 'rfu'/Int8ub, 'lu_status'/Int8ub) @@ -639,7 +639,7 @@ maintenance_off_line = 0x02 cell_test = 0x04 - def __init__(self, fid='6fad', sfid=0x03, name='EF.AD', desc='Administrative Data', size={4, 6}): + def __init__(self, fid='6fad', sfid=0x03, name='EF.AD', desc='Administrative Data', size=(4, 6)): super().__init__(fid, sfid=sfid, name=name, desc=desc, size=size) self._construct = BitStruct( # Byte 1 @@ -654,7 +654,7 @@ # TS 31.102 Section 4.2.23 class EF_PSLOCI(TransparentEF): - def __init__(self, fid='6f73', sfid=0x0c, name='EF.PSLOCI', desc='PS Location information', size={14, 14}): + def __init__(self, fid='6f73', sfid=0x0c, name='EF.PSLOCI', desc='PS Location information', size=(14, 14)): super().__init__(fid, sfid=sfid, name=name, desc=desc, size=size) self._construct = Struct('ptmsi'/HexAdapter(Bytes(4)), 'ptmsi_sig'/HexAdapter(Bytes(3)), 'rai'/HexAdapter(Bytes(6)), 'rau_status'/Int8ub) @@ -705,7 +705,7 @@ # TS 31.102 Section 4.2.47 class EF_EST(EF_UServiceTable): def __init__(self, **kwargs): - super().__init__(fid='6f56', sfid=0x05, name='EF.EST', desc='Enabled Services Table', size={1,None}, table=EF_EST_map, **kwargs) + super().__init__(fid='6f56', sfid=0x05, name='EF.EST', desc='Enabled Services Table', size=(1,None), table=EF_EST_map, **kwargs) # add those commands to the general commands of a TransparentEF self.shell_commands += [self.AddlShellCommands()] @@ -724,28 +724,28 @@ # TS 31.102 Section 4.2.48 class EF_ACL(TransparentEF): - def __init__(self, fid='6f57', sfid=None, name='EF.ACL', size={32, None}, + def __init__(self, fid='6f57', sfid=None, name='EF.ACL', size=(32, None), desc='Access Point Name Control List', **kwargs): super().__init__(fid, sfid=sfid, name=name, desc=desc, size=size, **kwargs) self._construct = Struct('num_of_apns'/Int8ub, 'tlvs'/HexAdapter(GreedyBytes)) # TS 31.102 Section 4.2.51 class EF_START_HFN(TransparentEF): - def __init__(self, fid='6f5b', sfid=0x0f, name='EF.START-HFN', size={6, 6}, + def __init__(self, fid='6f5b', sfid=0x0f, name='EF.START-HFN', size=(6, 6), desc='Initialisation values for Hyperframe number', **kwargs): super().__init__(fid, sfid=sfid, name=name, desc=desc, size=size, **kwargs) self._construct = Struct('start_cs'/Int24ub, 'start_ps'/Int24ub) # TS 31.102 Section 4.2.52 class EF_THRESHOLD(TransparentEF): - def __init__(self, fid='6f5c', sfid=0x10, name='EF.THRESHOLD', size={3, 3}, + def __init__(self, fid='6f5c', sfid=0x10, name='EF.THRESHOLD', size=(3, 3), desc='Maximum value of START', **kwargs): super().__init__(fid, sfid=sfid, name=name, desc=desc, size=size, **kwargs) self._construct = Struct('max_start'/Int24ub) # TS 31.102 (old releases like 3.8.0) Section 4.2.56 class EF_RPLMNAcT(TransRecEF): - def __init__(self, fid='6f65', sfid=None, name='EF.RPLMNAcTD', size={2, 4}, rec_len=2, + def __init__(self, fid='6f65', sfid=None, name='EF.RPLMNAcTD', size=(2, 4), rec_len=2, desc='RPLMN Last used Access Technology', **kwargs): super().__init__(fid, sfid=sfid, name=name, desc=desc, size=size, rec_len=rec_len, **kwargs) def _decode_record_hex(self, in_hex): @@ -754,14 +754,14 @@ # TS 31.102 Section 4.2.77 class EF_VGCSCA(TransRecEF): - def __init__(self, fid='6fd4', sfid=None, name='EF.VGCSCA', size={2, 100}, rec_len=2, + def __init__(self, fid='6fd4', sfid=None, name='EF.VGCSCA', size=(2, 100), rec_len=2, desc='Voice Group Call Service Ciphering Algorithm', **kwargs): super().__init__(fid, sfid=sfid, name=name, desc=desc, size=size, rec_len=rec_len, **kwargs) self._construct = Struct('alg_v_ki_1'/Int8ub, 'alg_v_ki_2'/Int8ub) # TS 31.102 Section 4.2.79 class EF_GBABP(TransparentEF): - def __init__(self, fid='6fd6', sfid=None, name='EF.GBABP', size={3, 50}, + def __init__(self, fid='6fd6', sfid=None, name='EF.GBABP', size=(3, 50), desc='GBA Bootstrapping parameters', **kwargs): super().__init__(fid, sfid=sfid, name=name, desc=desc, size=size, **kwargs) self._construct = Struct('rand'/LV, 'b_tid'/LV, 'key_lifetime'/LV) @@ -812,7 +812,7 @@ # TS 31.102 Section 4.2.85 class EF_EHPLMNPI(TransparentEF): - def __init__(self, fid='6fdb', sfid=None, name='EF.EHPLMNPI', size={1, 1}, + def __init__(self, fid='6fdb', sfid=None, name='EF.EHPLMNPI', size=(1, 1), desc='Equivalent HPLMN Presentation Indication', **kwargs): super().__init__(fid, sfid=sfid, name=name, desc=desc, size=size, **kwargs) self._construct = Struct('presentation_ind' / @@ -860,7 +860,7 @@ # TS 31.102 Section 4.2.91 class EF_EPSLOCI(TransparentEF): - def __init__(self, fid='6fe3', sfid=0x1e, name='EF.EPSLOCI', size={18, 18}, + def __init__(self, fid='6fe3', sfid=0x1e, name='EF.EPSLOCI', size=(18, 18), desc='EPS Location Information', **kwargs): super().__init__(fid, sfid=sfid, name=name, desc=desc, size=size, **kwargs) upd_status_constr = Enum( @@ -897,7 +897,7 @@ # TS 31.102 Section 4.2.96 class EF_PWS(TransparentEF): - def __init__(self, fid='6fec', sfid=None, name='EF.PWS', desc='Public Warning System', size={1, 1}, **kwargs): + def __init__(self, fid='6fec', sfid=None, name='EF.PWS', desc='Public Warning System', size=(1, 1), **kwargs): super().__init__(fid, sfid=sfid, name=name, desc=desc, size=size, **kwargs) pws_config = FlagsEnum( Byte, ignore_pws_in_hplmn_and_equivalent=1, ignore_pws_in_vplmn=2) @@ -926,7 +926,7 @@ # TS 31.102 Section 4.2.106 class EF_FromPreferred(TransparentEF): - def __init__(self, fid='6ff7', sfid=None, name='EF.FromPreferred', size={1, 1}, + def __init__(self, fid='6ff7', sfid=None, name='EF.FromPreferred', size=(1, 1), desc='From Preferred', **kwargs): super().__init__(fid, sfid=sfid, name=name, desc=desc, size=size, **kwargs) self._construct = BitStruct('rfu'/BitsRFU(7), 'from_preferred'/Bit) @@ -954,7 +954,7 @@ # TS 31.102 Section 4.4.11.2 class EF_5GS3GPPLOCI(TransparentEF): - def __init__(self, fid='4f01', sfid=0x01, name='EF.5GS3GPPLOCI', size={20, 20}, + def __init__(self, fid='4f01', sfid=0x01, name='EF.5GS3GPPLOCI', size=(20, 20), desc='5S 3GP location information', **kwargs): super().__init__(fid, sfid=sfid, name=name, desc=desc, size=size, **kwargs) upd_status_constr = Enum( @@ -965,7 +965,7 @@ # TS 31.102 Section 4.4.11.7 class EF_UAC_AIC(TransparentEF): - def __init__(self, fid='4f06', sfid=0x06, name='EF.UAC_AIC', size={4, 4}, + def __init__(self, fid='4f06', sfid=0x06, name='EF.UAC_AIC', size=(4, 4), desc='UAC Access Identities Configuration', **kwargs): super().__init__(fid, sfid=sfid, name=name, desc=desc, size=size, **kwargs) cfg_constr = FlagsEnum(Byte, multimedia_priority_service=1, @@ -1104,7 +1104,7 @@ EF_OPL5G(service=129), EF_SUPI_NAI(service=130), TransparentEF('4F0A', 0x0a, 'EF.Routing_Indicator', - 'Routing Indicator', size={4, 4}, service=124), + 'Routing Indicator', size=(4, 4), service=124), TransparentEF('4F0B', 0x0b, 'EF.URSP', 'UE Route Selector Policies per PLMN', service=132), EF_TN3GPPSNN(service=133), @@ -1136,11 +1136,11 @@ TransparentEF('6f3f', None, 'EF.GID2', 'Group Identifier Level 2', service=18), EF_SPN(service=19), TransparentEF('6f41', None, 'EF.PUCT', - 'Price per unit and currency table', size={5, 5}, service=13), + 'Price per unit and currency table', size=(5, 5), service=13), EF_CBMI(service=15), EF_ACC(sfid=0x06), EF_PLMNsel('6f7b', 0x0d, 'EF.FPLMN', - 'Forbidden PLMNs', size={12, None}), + 'Forbidden PLMNs', size=(12, None)), EF_LOCI(), EF_AD(), EF_CBMID(sfid=0x0e, service=29), @@ -1204,7 +1204,7 @@ EF_MSK(service=69), EF_MUK(service=69), EF_GBANL(service=68), - EF_PLMNsel('6fd9', 0x1d, 'EF.EHPLMN', 'Equivalent HPLMN', size={12, None}, service=71), + EF_PLMNsel('6fd9', 0x1d, 'EF.EHPLMN', 'Equivalent HPLMN', size=(12, None), service=71), EF_EHPLMNPI(service=(71, 73)), # EF_LRPLMNSI ('6fdc', service=74) EF_NAFKCA(service=(68, 76)), @@ -1213,7 +1213,7 @@ EF_NCP_IP(service=80), EF_EPSLOCI('6fe3', 0x1e, 'EF.EPSLOCI', 'EPS location information', service=85), EF_EPSNSC(service=85), - TransparentEF('6fe6', None, 'EF.UFC', 'USAT Facility Control', size={1, 16}), + TransparentEF('6fe6', None, 'EF.UFC', 'USAT Facility Control', size=(1, 16)), TransparentEF('6fe8', None, 'EF.NASCONFIG', 'Non Access Stratum Configuration', service=96), # UICC IARI (only in cards that have no ISIM) service=95 EF_PWS(service=97), diff --git a/pySim/ts_31_102_telecom.py b/pySim/ts_31_102_telecom.py index c020a07..06317b9 100644 --- a/pySim/ts_31_102_telecom.py +++ b/pySim/ts_31_102_telecom.py @@ -234,7 +234,7 @@ # TS 31.102 Section 4.6.4.1 class EF_MST(EF_UServiceTable): - def __init__(self, fid='4F01', sfid=0x01, name='EF.MST', desc='MCS Service Table', size={2,2}, + def __init__(self, fid='4F01', sfid=0x01, name='EF.MST', desc='MCS Service Table', size=(2,2), table=EF_MST_map, **kwargs): super().__init__(fid=fid, sfid=sfid, name=name, desc=desc, size=size, table=table) @@ -265,7 +265,7 @@ # TS 31.102 Section 4.6.5.2 class EF_VST(EF_UServiceTable): - def __init__(self, fid='4F01', sfid=0x01, name='EF.VST', desc='V2X Service Table', size={2,2}, + def __init__(self, fid='4F01', sfid=0x01, name='EF.VST', desc='V2X Service Table', size=(2,2), table=EF_VST_map, **kwargs): super().__init__(fid=fid, sfid=sfid, name=name, desc=desc, size=size, table=table) diff --git a/pySim/ts_51_011.py b/pySim/ts_51_011.py index c6bb194..68b32ce 100644 --- a/pySim/ts_51_011.py +++ b/pySim/ts_51_011.py @@ -448,7 +448,7 @@ def _encode(self, obj, context, path): return 0 if obj else 1 - def __init__(self, fid='6f43', sfid=None, name='EF.SMSS', desc='SMS status', size={2, 8}, **kwargs): + def __init__(self, fid='6f43', sfid=None, name='EF.SMSS', desc='SMS status', size=(2, 8), **kwargs): super().__init__(fid, sfid=sfid, name=name, desc=desc, size=size, **kwargs) self._construct = Struct( 'last_used_tpmr'/Int8ub, 'memory_capacity_exceeded'/self.MemCapAdapter(Int8ub)) @@ -512,7 +512,7 @@ # TS 51.011 Section 10.3.1 class EF_LP(TransRecEF): - def __init__(self, fid='6f05', sfid=None, name='EF.LP', size={1, None}, rec_len=1, + def __init__(self, fid='6f05', sfid=None, name='EF.LP', size=(1, None), rec_len=1, desc='Language Preference'): super().__init__(fid, sfid=sfid, name=name, desc=desc, size=size, rec_len=rec_len) @@ -524,7 +524,7 @@ # TS 51.011 Section 10.3.2 class EF_IMSI(TransparentEF): - def __init__(self, fid='6f07', sfid=None, name='EF.IMSI', desc='IMSI', size={9, 9}): + def __init__(self, fid='6f07', sfid=None, name='EF.IMSI', desc='IMSI', size=(9, 9)): super().__init__(fid, sfid=sfid, name=name, desc=desc, size=size) # add those commands to the general commands of a TransparentEF self.shell_commands += [self.AddlShellCommands(self)] @@ -563,7 +563,7 @@ # TS 51.011 Section 10.3.4 class EF_PLMNsel(TransRecEF): def __init__(self, fid='6f30', sfid=None, name='EF.PLMNsel', desc='PLMN selector', - size={24, None}, rec_len=3, **kwargs): + size=(24, None), rec_len=3, **kwargs): super().__init__(fid, name=name, sfid=sfid, desc=desc, size=size, rec_len=rec_len, **kwargs) def _decode_record_hex(self, in_hex): @@ -580,7 +580,7 @@ # TS 51.011 Section 10.3.6 class EF_ACMmax(TransparentEF): - def __init__(self, fid='6f37', sfid=None, name='EF.ACMmax', size={3, 3}, + def __init__(self, fid='6f37', sfid=None, name='EF.ACMmax', size=(3, 3), desc='ACM maximum value', **kwargs): super().__init__(fid, sfid=sfid, name=name, desc=desc, size=size, **kwargs) self._construct = Struct('acm_max'/Int24ub) @@ -638,7 +638,7 @@ # TS 51.011 Section 10.3.11 class EF_SPN(TransparentEF): def __init__(self, fid='6f46', sfid=None, name='EF.SPN', - desc='Service Provider Name', size={17, 17}, **kwargs): + desc='Service Provider Name', size=(17, 17), **kwargs): super().__init__(fid, sfid=sfid, name=name, desc=desc, size=size, **kwargs) self._construct = BitStruct( # Byte 1 @@ -651,7 +651,7 @@ # TS 51.011 Section 10.3.13 class EF_CBMI(TransRecEF): - def __init__(self, fid='6f45', sfid=None, name='EF.CBMI', size={2, None}, rec_len=2, + def __init__(self, fid='6f45', sfid=None, name='EF.CBMI', size=(2, None), rec_len=2, desc='Cell Broadcast message identifier selection', **kwargs): super().__init__(fid, sfid=sfid, name=name, desc=desc, size=size, rec_len=rec_len, **kwargs) self._construct = GreedyRange(Int16ub) @@ -659,13 +659,13 @@ # TS 51.011 Section 10.3.15 class EF_ACC(TransparentEF): def __init__(self, fid='6f78', sfid=None, name='EF.ACC', - desc='Access Control Class', size={2, 2}, **kwargs): + desc='Access Control Class', size=(2, 2), **kwargs): super().__init__(fid, sfid=sfid, name=name, desc=desc, size=size, **kwargs) self._construct = HexAdapter(Bytes(2)) # TS 51.011 Section 10.3.16 class EF_LOCI(TransparentEF): - def __init__(self, fid='6f7e', sfid=None, name='EF.LOCI', desc='Location Information', size={11, 11}): + def __init__(self, fid='6f7e', sfid=None, name='EF.LOCI', desc='Location Information', size=(11, 11)): super().__init__(fid, sfid=sfid, name=name, desc=desc, size=size) self._construct = Struct('tmsi'/HexAdapter(Bytes(4)), 'lai'/HexAdapter(Bytes(5)), 'tmsi_time'/Int8ub, 'lu_status'/Enum(Byte, updated=0, not_updated=1, plmn_not_allowed=2, @@ -683,7 +683,7 @@ #OP_MODE_DICT = {int(v) : str(v) for v in EF_AD.OP_MODE} #OP_MODE_DICT_REVERSED = {str(v) : int(v) for v in EF_AD.OP_MODE} - def __init__(self, fid='6fad', sfid=None, name='EF.AD', desc='Administrative Data', size={3, 4}): + def __init__(self, fid='6fad', sfid=None, name='EF.AD', desc='Administrative Data', size=(3, 4)): super().__init__(fid, sfid=sfid, name=name, desc=desc, size=size) self._construct = BitStruct( # Byte 1 @@ -704,14 +704,14 @@ # TS 51.011 Section 10.3.20 / 10.3.22 class EF_VGCS(TransRecEF): - def __init__(self, fid='6fb1', sfid=None, name='EF.VGCS', size={4, 200}, rec_len=4, + def __init__(self, fid='6fb1', sfid=None, name='EF.VGCS', size=(4, 200), rec_len=4, desc='Voice Group Call Service', **kwargs): super().__init__(fid, sfid=sfid, name=name, desc=desc, size=size, rec_len=rec_len, **kwargs) self._construct = BcdAdapter(Bytes(4)) # TS 51.011 Section 10.3.21 / 10.3.23 class EF_VGCSS(TransparentEF): - def __init__(self, fid='6fb2', sfid=None, name='EF.VGCSS', size={7, 7}, + def __init__(self, fid='6fb2', sfid=None, name='EF.VGCSS', size=(7, 7), desc='Voice Group Call Service Status', **kwargs): super().__init__(fid, sfid=sfid, name=name, desc=desc, size=size, **kwargs) self._construct = BitStruct( @@ -719,7 +719,7 @@ # TS 51.011 Section 10.3.24 class EF_eMLPP(TransparentEF): - def __init__(self, fid='6fb5', sfid=None, name='EF.eMLPP', size={2, 2}, + def __init__(self, fid='6fb5', sfid=None, name='EF.eMLPP', size=(2, 2), desc='enhanced Multi Level Pre-emption and Priority', **kwargs): super().__init__(fid, sfid=sfid, name=name, desc=desc, size=size, **kwargs) FlagsConstruct = FlagsEnum( @@ -729,7 +729,7 @@ # TS 51.011 Section 10.3.25 class EF_AAeM(TransparentEF): - def __init__(self, fid='6fb6', sfid=None, name='EF.AAeM', size={1, 1}, + def __init__(self, fid='6fb6', sfid=None, name='EF.AAeM', size=(1, 1), desc='Automatic Answer for eMLPP Service', **kwargs): super().__init__(fid, sfid=sfid, name=name, desc=desc, size=size, **kwargs) FlagsConstruct = FlagsEnum( @@ -738,28 +738,28 @@ # TS 51.011 Section 10.3.26 class EF_CBMID(EF_CBMI): - def __init__(self, fid='6f48', sfid=None, name='EF.CBMID', size={2, None}, rec_len=2, + def __init__(self, fid='6f48', sfid=None, name='EF.CBMID', size=(2, None), rec_len=2, desc='Cell Broadcast Message Identifier for Data Download', **kwargs): super().__init__(fid, sfid=sfid, name=name, desc=desc, size=size, rec_len=rec_len, **kwargs) self._construct = GreedyRange(Int16ub) # TS 51.011 Section 10.3.27 class EF_ECC(TransRecEF): - def __init__(self, fid='6fb7', sfid=None, name='EF.ECC', size={3, 15}, rec_len=3, + def __init__(self, fid='6fb7', sfid=None, name='EF.ECC', size=(3, 15), rec_len=3, desc='Emergency Call Codes', **kwargs): super().__init__(fid, sfid=sfid, name=name, desc=desc, size=size, rec_len=rec_len, **kwargs) self._construct = GreedyRange(BcdAdapter(Bytes(3))) # TS 51.011 Section 10.3.28 class EF_CBMIR(TransRecEF): - def __init__(self, fid='6f50', sfid=None, name='EF.CBMIR', size={4, None}, rec_len=4, + def __init__(self, fid='6f50', sfid=None, name='EF.CBMIR', size=(4, None), rec_len=4, desc='Cell Broadcast message identifier range selection', **kwargs): super().__init__(fid, sfid=sfid, name=name, desc=desc, size=size, rec_len=rec_len, **kwargs) self._construct = GreedyRange(Struct('lower'/Int16ub, 'upper'/Int16ub)) # TS 51.011 Section 10.3.29 class EF_DCK(TransparentEF): - def __init__(self, fid='6f2c', sfid=None, name='EF.DCK', size={16, 16}, + def __init__(self, fid='6f2c', sfid=None, name='EF.DCK', size=(16, 16), desc='Depersonalisation Control Keys', **kwargs): super().__init__(fid, sfid=sfid, name=name, desc=desc, size=size, **kwargs) self._construct = Struct('network'/BcdAdapter(Bytes(4)), @@ -768,7 +768,7 @@ 'corporate'/BcdAdapter(Bytes(4))) # TS 51.011 Section 10.3.30 class EF_CNL(TransRecEF): - def __init__(self, fid='6f32', sfid=None, name='EF.CNL', size={6, None}, rec_len=6, + def __init__(self, fid='6f32', sfid=None, name='EF.CNL', size=(6, None), rec_len=6, desc='Co-operative Network List', **kwargs): super().__init__(fid, sfid=sfid, name=name, desc=desc, size=size, rec_len=rec_len, **kwargs) @@ -798,13 +798,13 @@ # TS 51.011 Section 10.3.32 class EF_Kc(TransparentEF): - def __init__(self, fid='6f20', sfid=None, name='EF.Kc', desc='Ciphering key Kc', size={9, 9}, **kwargs): + def __init__(self, fid='6f20', sfid=None, name='EF.Kc', desc='Ciphering key Kc', size=(9, 9), **kwargs): super().__init__(fid, sfid=sfid, name=name, desc=desc, size=size, **kwargs) self._construct = Struct('kc'/HexAdapter(Bytes(8)), 'cksn'/Int8ub) # TS 51.011 Section 10.3.33 class EF_LOCIGPRS(TransparentEF): - def __init__(self, fid='6f53', sfid=None, name='EF.LOCIGPRS', desc='GPRS Location Information', size={14, 14}): + def __init__(self, fid='6f53', sfid=None, name='EF.LOCIGPRS', desc='GPRS Location Information', size=(14, 14)): super().__init__(fid, sfid=sfid, name=name, desc=desc, size=size) self._construct = Struct('ptmsi'/HexAdapter(Bytes(4)), 'ptmsi_sig'/Int8ub, 'rai'/HexAdapter(Bytes(6)), 'rau_status'/Enum(Byte, updated=0, not_updated=1, plmn_not_allowed=2, @@ -812,7 +812,7 @@ # TS 51.011 Section 10.3.35..37 class EF_xPLMNwAcT(TransRecEF): - def __init__(self, fid, sfid=None, name=None, desc=None, size={40, None}, rec_len=5, **kwargs): + def __init__(self, fid, sfid=None, name=None, desc=None, size=(40, None), rec_len=5, **kwargs): super().__init__(fid, sfid=sfid, name=name, desc=desc, size=size, rec_len=rec_len, **kwargs) def _decode_record_hex(self, in_hex): @@ -861,14 +861,14 @@ # TS 51.011 Section 10.3.38 class EF_CPBCCH(TransRecEF): - def __init__(self, fid='6f63', sfid=None, name='EF.CPBCCH', size={2, 14}, rec_len=2, + def __init__(self, fid='6f63', sfid=None, name='EF.CPBCCH', size=(2, 14), rec_len=2, desc='CPBCCH Information', **kwargs): super().__init__(fid, sfid=sfid, name=name, desc=desc, size=size, rec_len=rec_len, **kwargs) self._construct = Struct('cpbcch'/Int16ub) # TS 51.011 Section 10.3.39 class EF_InvScan(TransparentEF): - def __init__(self, fid='6f64', sfid=None, name='EF.InvScan', size={1, 1}, + def __init__(self, fid='6f64', sfid=None, name='EF.InvScan', size=(1, 1), desc='IOnvestigation Scan', **kwargs): super().__init__(fid, sfid=sfid, name=name, desc=desc, size=size, **kwargs) self._construct = FlagsEnum( @@ -958,7 +958,7 @@ class MMS_ConnectivityParamters(TLV_IE_Collection, nested=[MMS_Implementation, MMS_Relay_Server, Interface_to_CN, Gateway]): pass - def __init__(self, fid='6fd0', sfid=None, name='EF.MMSICP', size={1, None}, + def __init__(self, fid='6fd0', sfid=None, name='EF.MMSICP', size=(1, None), desc='MMS Issuer Connectivity Parameters', **kwargs): super().__init__(fid, sfid=sfid, name=name, desc=desc, size=size, **kwargs) self._tlv = EF_MMSICP.MMS_ConnectivityParamters @@ -981,7 +981,7 @@ # TS 51.011 Section 10.3.55 class EF_MMSUCP(TransparentEF): - def __init__(self, fid='6fd2', sfid=None, name='EF.MMSUCP', size={1, None}, + def __init__(self, fid='6fd2', sfid=None, name='EF.MMSUCP', size=(1, None), desc='MMS User Connectivity Parameters', **kwargs): super().__init__(fid, sfid=sfid, name=name, desc=desc, size=size, **kwargs) @@ -998,24 +998,24 @@ 'Higher Priority PLMN search period'), EF_ACMmax(), EF_ServiceTable('6f38', None, 'EF.SST', - 'SIM service table', table=EF_SST_map, size={2, 16}), + 'SIM service table', table=EF_SST_map, size=(2, 16)), CyclicEF('6f39', None, 'EF.ACM', 'Accumulated call meter', rec_len={3, 3}), TransparentEF('6f3e', None, 'EF.GID1', 'Group Identifier Level 1'), TransparentEF('6f3f', None, 'EF.GID2', 'Group Identifier Level 2'), EF_SPN(), TransparentEF('6f41', None, 'EF.PUCT', - 'Price per unit and currency table', size={5, 5}), + 'Price per unit and currency table', size=(5, 5)), EF_CBMI(), TransparentEF('6f7f', None, 'EF.BCCH', - 'Broadcast control channels', size={16, 16}), + 'Broadcast control channels', size=(16, 16)), EF_ACC(), EF_PLMNsel('6f7b', None, 'EF.FPLMN', - 'Forbidden PLMNs', size={12, 12}), + 'Forbidden PLMNs', size=(12, 12)), EF_LOCI(), EF_AD(), TransparentEF('6fa3', None, 'EF.Phase', - 'Phase identification', size={1, 1}), + 'Phase identification', size=(1, 1)), EF_VGCS(), EF_VGCSS(), EF_VGCS('6fb3', None, 'EF.VBS', 'Voice Broadcast Service'), -- To view, visit
https://gerrit.osmocom.org/c/pysim/+/28709
To unsubscribe, or for help writing mail filters, visit
https://gerrit.osmocom.org/settings
Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I553616f8c6c4aaa8f635b3d7d94e8e8f49ed5a56 Gerrit-Change-Number: 28709 Gerrit-PatchSet: 1 Gerrit-Owner: laforge <laforge(a)osmocom.org> Gerrit-MessageType: newchange
2 years, 11 months
1
0
0
0
← Newer
1
...
89
90
91
92
93
94
95
...
218
Older →
Jump to page:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
Results per page:
10
25
50
100
200