laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/33064 
)

Change subject: ts_31_102: Add decoder/encoder for DF.5GS/EF.Routing_Indicator
......................................................................

ts_31_102: Add decoder/encoder for DF.5GS/EF.Routing_Indicator

This file is rather important for 5G SA operation, so we should have
a proper encoder/decoder in place.

Change-Id: I1b37fdfc2807976880b2cafb61951f08eebeb344
---
M docs/suci-tutorial.rst
M pySim/ts_31_102.py
2 files changed, 24 insertions(+), 5 deletions(-)

Approvals:
  laforge: Looks good to me, approved
  fixeria: Looks good to me, but someone else must approve
  Jenkins Builder: Verified




diff --git a/docs/suci-tutorial.rst b/docs/suci-tutorial.rst
index 00c060f..fc6e911 100644
--- a/docs/suci-tutorial.rst
+++ b/docs/suci-tutorial.rst
@@ -132,10 +132,8 @@

 ::

-   pySIM-shell (MF/ADF.USIM/DF.5GS/EF.Routing_Indicator)> update_binary 
0071ffff
+   pySIM-shell (MF/ADF.USIM/DF.5GS/EF.Routing_Indicator)> update_binary 
17ffffff

-(the encoding might be different, see `this
-comment 
<https://gist.github.com/mrlnc/01d6300f1904f154d969ff205136b753?permalink_comment_id=4050795#gistcomment-4050795>`__)
 You can also set the routing indicator to **0x0**, which is *valid* and
 means “routing indicator not specified”, leaving it to the modem.

diff --git a/pySim/ts_31_102.py b/pySim/ts_31_102.py
index 76f1358..73c5fd5 100644
--- a/pySim/ts_31_102.py
+++ b/pySim/ts_31_102.py
@@ -1080,6 +1080,16 @@
         super().__init__(fid, sfid=sfid, name=name, desc=desc, **kwargs)
         self._tlv = EF_SUPI_NAI.NAI_TLV_Collection

+# TS 31.102 Section 4.4.11.11
+class EF_Routing_Indicator(TransparentEF):
+    def __init__(self, fid='4f0a', sfid=0x0a, name='EF.Routing_Indicator', 
desc='Routing Indicator', **kwargs):
+        super().__init__(fid, sfid=sfid, name=name, desc=desc, **kwargs)
+        # 3GPP TS 24.501 Table 9.11.3.4.1:
+        # Routing Indicator shall consist of 1 to 4 digits. The coding of this 
field is the
+        # responsibility of home network operator but BCD coding shall be 
used. If a network
+        # operator decides to assign less than 4 digits to Routing Indicator, 
the remaining digits
+        # shall be coded as "1111" to fill the 4 digits coding of Routing 
Indicator
+        self._construct = 
Struct('routing_indicator'/BcdAdapter(Rpad(Bytes(2))), 
'rfu'/HexAdapter(Bytes(2)))

 # TS 31.102 Section 4.4.11.13
 class EF_TN3GPPSNN(TransparentEF):
@@ -1434,8 +1444,7 @@
             EF_SUCI_Calc_Info(service=124),
             EF_OPL5G(service=129),
             EF_SUPI_NAI(service=130),
-            TransparentEF('4F0A', 0x0a, 'EF.Routing_Indicator',
-                          'Routing Indicator', size=(4, 4), service=124),
+            EF_Routing_Indicator(service=124),
             TransparentEF('4F0B', 0x0b, 'EF.URSP',
                           'UE Route Selector Policies per PLMN', service=132),
             EF_TN3GPPSNN(service=133),

--
To view, visit https://gerrit.osmocom.org/c/pysim/+/33064
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.osmocom.org/settings

Gerrit-Project: pysim
Gerrit-Branch: master
Gerrit-Change-Id: I1b37fdfc2807976880b2cafb61951f08eebeb344
Gerrit-Change-Number: 33064
Gerrit-PatchSet: 4
Gerrit-Owner: laforge <[email protected]>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: dexter <[email protected]>
Gerrit-Reviewer: fixeria <[email protected]>
Gerrit-Reviewer: laforge <[email protected]>
Gerrit-Reviewer: merlinchlosta <[email protected]>
Gerrit-MessageType: merged

Reply via email to