<p>laforge <strong>submitted</strong> this change.</p><p><a href="https://gerrit.osmocom.org/c/pysim/+/17883">View Change</a></p><div style="white-space:pre-wrap">Approvals:
  Jenkins Builder: Verified
  laforge: Looks good to me, approved

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">utils.py: Add helper method to parse ePDG Identifier from hex string<br><br>The hex string consists of contains zero or more ePDG identifier data objects.<br>Each ePDG Identifier TLV data object consists of tag value of '80', length, address type, identifier.<br><br>TS 31.102 version 13.4.0 Release 13. The same parsing method applies for both EF.ePDGId and EF.ePDGIdEm<br><br>Change-Id: I96fb129d178cfd7ec037989526da77899ae8d344<br>---<br>M pySim/utils.py<br>1 file changed, 34 insertions(+), 0 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/pySim/utils.py b/pySim/utils.py</span><br><span>index ee4d2f3..dbc7337 100644</span><br><span>--- a/pySim/utils.py</span><br><span>+++ b/pySim/utils.py</span><br><span>@@ -402,3 +402,37 @@</span><br><span>               else:</span><br><span>                        bytelist = bytelist[ L+2 : ]</span><br><span>         return ret</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+def dec_epdgid(hexstr):</span><br><span style="color: hsl(120, 100%, 40%);">+ """</span><br><span style="color: hsl(120, 100%, 40%);">+    Decode ePDG Id to get EF.ePDGId or EF.ePDGIdEm.</span><br><span style="color: hsl(120, 100%, 40%);">+       See 3GPP TS 31.102 version 13.4.0 Release 13, section 4.2.102 and 4.2.104.</span><br><span style="color: hsl(120, 100%, 40%);">+    """</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+  # Convert from hex str to int bytes list</span><br><span style="color: hsl(120, 100%, 40%);">+      epdgid_bytes = h2i(hexstr)</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+  s = ""</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+    # Get list of tuples containing parsed TLVs</span><br><span style="color: hsl(120, 100%, 40%);">+   tlvs = TLV_parser(epdgid_bytes)</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+     for tlv in tlvs:</span><br><span style="color: hsl(120, 100%, 40%);">+              # tlv = (T, L, [V])</span><br><span style="color: hsl(120, 100%, 40%);">+           # T = Tag</span><br><span style="color: hsl(120, 100%, 40%);">+             # L = Length</span><br><span style="color: hsl(120, 100%, 40%);">+          # [V] = List of value</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+               # Invalid Tag value scenario</span><br><span style="color: hsl(120, 100%, 40%);">+          if tlv[0] != 0x80:</span><br><span style="color: hsl(120, 100%, 40%);">+                    continue</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+            # First byte in the value has the address type</span><br><span style="color: hsl(120, 100%, 40%);">+                addr_type = tlv[2][0]</span><br><span style="color: hsl(120, 100%, 40%);">+         # TODO: Support parsing of IPv4 and IPv6</span><br><span style="color: hsl(120, 100%, 40%);">+              if addr_type == 0x00: #FQDN</span><br><span style="color: hsl(120, 100%, 40%);">+                   # Skip address tye byte i.e. first byte in value list</span><br><span style="color: hsl(120, 100%, 40%);">+                 content = tlv[2][1:]</span><br><span style="color: hsl(120, 100%, 40%);">+                  s += "\t%s # %s\n" % (i2h(content), i2s(content))</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ return s</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/pysim/+/17883">change 17883</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://gerrit.osmocom.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.osmocom.org/c/pysim/+/17883"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: pysim </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: I96fb129d178cfd7ec037989526da77899ae8d344 </div>
<div style="display:none"> Gerrit-Change-Number: 17883 </div>
<div style="display:none"> Gerrit-PatchSet: 4 </div>
<div style="display:none"> Gerrit-Owner: herlesupreeth <herlesupreeth@gmail.com> </div>
<div style="display:none"> Gerrit-Reviewer: Jenkins Builder </div>
<div style="display:none"> Gerrit-Reviewer: herlesupreeth <herlesupreeth@gmail.com> </div>
<div style="display:none"> Gerrit-Reviewer: laforge <laforge@osmocom.org> </div>
<div style="display:none"> Gerrit-MessageType: merged </div>