Commit 1dfbe937 authored by Mark Canterbury's avatar Mark Canterbury
Browse files

Now with better diagram

parent 5bcf19f6
Loading
Loading
Loading
Loading
Loading
+64 −62
Original line number Diff line number Diff line
@@ -12,68 +12,70 @@
|[TS 102 657](https://forge.etsi.org/rep/li/schemas-definitions/-/blob/main/102657)|[RDMessage](https://forge.etsi.org/rep/li/schemas-definitions/-/blob/main/102657/RDMessage.asn?ref_type=heads)|33|securityDomain(2) retainedData(3) rdHeader(0)|
|[TS 103 462](https://forge.etsi.org/rep/li/schemas-definitions/-/blob/main/103462)|[ILHIPDU](https://forge.etsi.org/rep/li/schemas-definitions/-/blob/main/103462/ILHIPDU.asn?ref_type=heads)|2|securityDomain(2) informationHandover(4) ilhi(0) ilhiPdu(0)|
|[TS 103 280](https://forge.etsi.org/rep/li/schemas-definitions/-/blob/main/103280)|[Common-Parameters](https://forge.etsi.org/rep/li/schemas-definitions/-/blob/main/103280/TS_103_280.asn1?ref_type=heads)|261|common-parameters(3280)|
# OID hierarchy
```mermaid
graph TD;
0.4[identified-organization]
  itu-t-->identified-organization
0.4.0[etsi]
  identified-organization-->etsi
0.4.0.2[securityDomain]
  etsi-->securityDomain
0.4.0.2.2[lawfulIntercept]
  securityDomain-->lawfulIntercept
0.4.0.2.2.0[hi1]
  lawfulIntercept-->hi1
0.4.0.2.2.0.1[notificationOperations]
  hi1-->notificationOperations
0.4.0.2.2.0.1.7[version7]
  notificationOperations-->version7
0.4.0.2.2.1[hi2]
  lawfulIntercept-->hi2
0.4.0.2.2.1.18[version17]
  hi2-->version17
0.4.0.2.2.5[li-ps]
  lawfulIntercept-->li-ps
0.4.0.2.2.5.1[genHeader]
  li-ps-->genHeader
0.4.0.2.2.5.1.40[version40]
  genHeader-->version40
0.4.0.2.2.5.2[email]
  li-ps-->email
0.4.0.2.2.5.2.20[version20]
  email-->version20
0.4.0.2.2.5.3[iPAccess]
  li-ps-->iPAccess
0.4.0.2.2.5.3.20[version20]
  iPAccess-->version20
0.4.0.2.2.5.5[iPMultimedia]
  li-ps-->iPMultimedia
0.4.0.2.2.5.5.17[version17]
  iPMultimedia-->version17
0.4.0.2.2.5.6[pstnIsdn]
  li-ps-->pstnIsdn
0.4.0.2.2.5.6.6[version6]
  pstnIsdn-->version6
0.4.0.2.2.4[l2Access]
  lawfulIntercept-->l2Access
0.4.0.2.2.4.10[version10]
  l2Access-->version10
0.4.0.2.3[retainedData]
  securityDomain-->retainedData
0.4.0.2.3.0[rdHeader]
  retainedData-->rdHeader
0.4.0.2.3.0.33[version33]
  rdHeader-->version33
0.4.0.2.4[informationHandover]
  securityDomain-->informationHandover
0.4.0.2.4.0[ilhi]
  informationHandover-->ilhi
0.4.0.2.4.0.0[ilhiPdu]
  ilhi-->ilhiPdu
0.4.0.2.4.0.0.2[version2]
  ilhiPdu-->version2
0.4.0.3280[common-parameters]
  etsi-->common-parameters
0.4.0.3280.261[version261]
  common-parameters-->version261
  .0["itu-t (0)"]
0.4["identified-organization (4)"]
  .0-->0.4
0.4.0["etsi (0)"]
  0.4-->0.4.0
0.4.0.2["securityDomain (2)"]
  0.4.0-->0.4.0.2
0.4.0.2.2["lawfulIntercept (2)"]
  0.4.0.2-->0.4.0.2.2
0.4.0.2.2.0["hi1 (0)"]
  0.4.0.2.2-->0.4.0.2.2.0
0.4.0.2.2.0.1["notificationOperations (1)"]
  0.4.0.2.2.0-->0.4.0.2.2.0.1
0.4.0.2.2.0.1.7["version7 (7)"]
  0.4.0.2.2.0.1-->0.4.0.2.2.0.1.7
0.4.0.2.2.1["hi2 (1)"]
  0.4.0.2.2-->0.4.0.2.2.1
0.4.0.2.2.1.18["version17 (18)"]
  0.4.0.2.2.1-->0.4.0.2.2.1.18
0.4.0.2.2.5["li-ps (5)"]
  0.4.0.2.2-->0.4.0.2.2.5
0.4.0.2.2.5.1["genHeader (1)"]
  0.4.0.2.2.5-->0.4.0.2.2.5.1
0.4.0.2.2.5.1.40["version40 (40)"]
  0.4.0.2.2.5.1-->0.4.0.2.2.5.1.40
0.4.0.2.2.5.2["email (2)"]
  0.4.0.2.2.5-->0.4.0.2.2.5.2
0.4.0.2.2.5.2.20["version20 (20)"]
  0.4.0.2.2.5.2-->0.4.0.2.2.5.2.20
0.4.0.2.2.5.3["iPAccess (3)"]
  0.4.0.2.2.5-->0.4.0.2.2.5.3
0.4.0.2.2.5.3.20["version20 (20)"]
  0.4.0.2.2.5.3-->0.4.0.2.2.5.3.20
0.4.0.2.2.5.5["iPMultimedia (5)"]
  0.4.0.2.2.5-->0.4.0.2.2.5.5
0.4.0.2.2.5.5.17["version17 (17)"]
  0.4.0.2.2.5.5-->0.4.0.2.2.5.5.17
0.4.0.2.2.5.6["pstnIsdn (6)"]
  0.4.0.2.2.5-->0.4.0.2.2.5.6
0.4.0.2.2.5.6.6["version6 (6)"]
  0.4.0.2.2.5.6-->0.4.0.2.2.5.6.6
0.4.0.2.2.4["l2Access (4)"]
  0.4.0.2.2-->0.4.0.2.2.4
0.4.0.2.2.4.10["version10 (10)"]
  0.4.0.2.2.4-->0.4.0.2.2.4.10
0.4.0.2.3["retainedData (3)"]
  0.4.0.2-->0.4.0.2.3
0.4.0.2.3.0["rdHeader (0)"]
  0.4.0.2.3-->0.4.0.2.3.0
0.4.0.2.3.0.33["version33 (33)"]
  0.4.0.2.3.0-->0.4.0.2.3.0.33
0.4.0.2.4["informationHandover (4)"]
  0.4.0.2-->0.4.0.2.4
0.4.0.2.4.0["ilhi (0)"]
  0.4.0.2.4-->0.4.0.2.4.0
0.4.0.2.4.0.0["ilhiPdu (0)"]
  0.4.0.2.4.0-->0.4.0.2.4.0.0
0.4.0.2.4.0.0.2["version2 (2)"]
  0.4.0.2.4.0.0-->0.4.0.2.4.0.0.2
0.4.0.3280["common-parameters (3280)"]
  0.4.0-->0.4.0.3280
0.4.0.3280.261["version261 (261)"]
  0.4.0.3280-->0.4.0.3280.261
```
 No newline at end of file
+4 −16
Original line number Diff line number Diff line
@@ -110,29 +110,17 @@ for asn_file in asn_files:
            oid_tree = oid.root()
        else:
            oid_tree.merge(oid)
        # last_arc = None
        # last_tree = oid_tree
        # oid_str = ""
        # for arc in oids:
        #     arc_parts = arc_regex.match(arc)
        #     label = arc_parts[1]
        #     index = arc_parts[2]
        #     if arc in last_tree:
        #         last_tree = last_tree[arc]
        #     else:
        #         last_tree[arc] = {}
        #         last_tree = last_tree[arc]
        #     last_arc = arc_parts
        markdown_string += f"|[{spec}](https://forge.etsi.org/rep/li/schemas-definitions/-/blob/main/{'/'.join(asn_file.parts[:-1])})|{link}|{oid.value}|{relative_oids}|\n"

def draw_tree(d : OIDArc):
    global markdown_string
    for child in d.children:
        markdown_string += f"{child.as_numerical()}[{child.label}]\n"
        markdown_string += f"  {d.label}-->{child.label}\n"
        markdown_string += f'{child.as_numerical()}["{child.label} ({child.value})"]\n'
        markdown_string += f"  {d.as_numerical()}-->{child.as_numerical()}\n"
        draw_tree(child)

markdown_string += '```mermaid\ngraph TD;\n'
markdown_string += "# OID hierarchy\n"
markdown_string += '```mermaid\ngraph TD;\n  .0["itu-t (0)"]\n'
draw_tree(oid_tree)
markdown_string += "```"