Loading utils/oids/oid.md +46 −46 Original line number Diff line number Diff line Loading @@ -6,76 +6,76 @@ graph TD; 0.4.0["etsi (0)"] 0.4.0.2["securityDomain (2)"] 0.4.0.3280["common-parameters (3280)"] 0.4.0.2.4["informationHandover (4)"] 0.4.0.2.2["lawfulIntercept (2)"] 0.4.0.2.3["retainedData (3)"] 0.4.0.2.4["informationHandover (4)"] 0.4.0.3280.261["version261 (261)"] 0.4.0.2.3.0["rdHeader (0)"] 0.4.0.2.2.1["hi2 (1)"] 0.4.0.2.2.0["hi1 (0)"] 0.4.0.2.4.0["ilhi (0)"] 0.4.0.2.2.1["hi2 (1)"] 0.4.0.2.2.5["li-ps (5)"] 0.4.0.2.2.5.6["pstnIsdn (6)"] 0.4.0.2.3.0["rdHeader (0)"] 0.4.0.2.4.0["ilhi (0)"] 0.4.0.2.2.0.1["notificationOperations (1)"] 0.4.0.2.2.1.18["version17 (18)"] 0.4.0.2.2.5.1["genHeader (1)"] 0.4.0.2.2.5.2["email (2)"] 0.4.0.2.2.5.3["iPAccess (3)"] 0.4.0.2.2.5.4["l2Access (4)"] 0.4.0.2.2.0.1["notificationOperations (1)"] 0.4.0.2.4.0.0["ilhiPdu (0)"] 0.4.0.2.3.0.33["version33 (33)"] 0.4.0.2.2.5.5["iPMultimedia (5)"] 0.4.0.2.2.1.18["version17 (18)"] 0.4.0.2.2.5.2["email (2)"] 0.4.0.2.2.5.1.40["version40 (40)"] 0.4.0.2.2.5.6["pstnIsdn (6)"] 0.4.0.2.3.0.33["version33 (33)"] 0.4.0.2.4.0.0["ilhiPdu (0)"] 0.4.0.2.2.0.1.7["version7 (7)"] 0.4.0.2.2.5.6.6["version6 (6)"] 0.4.0.2.2.5.3.20["version20 (20)"] 0.4.0.2.4.0.0.2["version2 (2)"] 0.4.0.2.2.5.1.40["version40 (40)"] 0.4.0.2.2.5.2.20["version20 (20)"] 0.4.0.2.2.5.5.17["version17 (17)"] 0.4.0.2.2.5.3.20["version20 (20)"] 0.4.0.2.2.5.4.10["version10 (10)"] 0.4.0.2.2.5.3-->0.4.0.2.2.5.3.20 0.4.0.2.2.5.5.17["version17 (17)"] 0.4.0.2.2.5.6.6["version6 (6)"] 0.4.0.2.4.0.0.2["version2 (2)"] 0-->0.4 0.4-->0.4.0 0.4.0-->0.4.0.2 0.4.0-->0.4.0.3280 0.4.0.2-->0.4.0.2.2 0.4.0.2-->0.4.0.2.3 0.4.0.2-->0.4.0.2.4 0.4.0.2.2-->0.4.0.2.2.0 0.4.0.2.2-->0.4.0.2.2.1 0.4.0.2.2.0.1-->0.4.0.2.2.0.1.7 0.4.0.2.2.5-->0.4.0.2.2.5.5 0.4.0.2.2.5.6-->0.4.0.2.2.5.6.6 0.4.0.2.2-->0.4.0.2.2.5 0.4.0.2-->0.4.0.2.3 0.4.0.2.4-->0.4.0.2.4.0 0.4.0.2.4.0-->0.4.0.2.4.0.0 0.4.0.2.2.5.1-->0.4.0.2.2.5.1.40 0.4.0.2.2.5-->0.4.0.2.2.5.2 0.4.0.2.2.5-->0.4.0.2.2.5.4 0.4.0.2.3.0-->0.4.0.2.3.0.33 0.4.0-->0.4.0.3280 0.4.0.2.2.5.4-->0.4.0.2.2.5.4.10 0.4.0.2.2.0-->0.4.0.2.2.0.1 0.4.0.2.2.0.1-->0.4.0.2.2.0.1.7 0.4.0.2.2.1-->0.4.0.2.2.1.18 0.4.0.2.2.5-->0.4.0.2.2.5.1 0.4.0.2.2.5-->0.4.0.2.2.5.2 0.4.0.2.2.5-->0.4.0.2.2.5.3 0.4.0.2.2-->0.4.0.2.2.0 0-->0.4 0.4.0.2.2.0-->0.4.0.2.2.0.1 0.4.0.2.2.5-->0.4.0.2.2.5.4 0.4.0.2.2.5-->0.4.0.2.2.5.5 0.4.0.2.2.5-->0.4.0.2.2.5.6 0.4.0.3280-->0.4.0.3280.261 0.4.0.2.2.5-->0.4.0.2.2.5.1 0.4.0.2.4.0.0-->0.4.0.2.4.0.0.2 0.4.0.2.2.5.5-->0.4.0.2.2.5.5.17 0.4.0.2.2.5.1-->0.4.0.2.2.5.1.40 0.4.0.2.2.5.2-->0.4.0.2.2.5.2.20 0.4.0-->0.4.0.2 0.4.0.2-->0.4.0.2.4 0.4.0.2.2.5.3-->0.4.0.2.2.5.3.20 0.4.0.2.2.5.4-->0.4.0.2.2.5.4.10 0.4.0.2.2.5.5-->0.4.0.2.2.5.5.17 0.4.0.2.2.5.6-->0.4.0.2.2.5.6.6 0.4.0.2.3-->0.4.0.2.3.0 0.4-->0.4.0 0.4.0.2-->0.4.0.2.2 0.4.0.2.3.0-->0.4.0.2.3.0.33 0.4.0.2.4-->0.4.0.2.4.0 0.4.0.2.4.0-->0.4.0.2.4.0.0 0.4.0.2.4.0.0-->0.4.0.2.4.0.0.2 0.4.0.3280-->0.4.0.3280.261 ``` # OID list | Spec | Module name | Version | OID relative to {itu-t(0) identified-organization(4) etsi(0)} | | ---- | ----------- | ------- | -------- | |[TS 102 232-1](https://forge.etsi.org/rep/li/schemas-definitions/-/blob/main/102232-1)|[HI1NotificationOperations](https://forge.etsi.org/rep/li/schemas-definitions/-/blob/main/102232-1/HI1NotificationOperations.asn?ref_type=heads)|7|securityDomain(2) lawfulIntercept(2) hi1(0) notificationOperations(1) version7(7)| |[TS 102 232-1](https://forge.etsi.org/rep/li/schemas-definitions/-/blob/main/102232-1)|[HI2Operations](https://forge.etsi.org/rep/li/schemas-definitions/-/blob/main/102232-1/HI2Operations.asn?ref_type=heads)|18|securityDomain(2) lawfulIntercept(2) hi2(1) version17(18)| |[TS 102 232-1](https://forge.etsi.org/rep/li/schemas-definitions/-/blob/main/102232-1)|[LI-PS-PDU](https://forge.etsi.org/rep/li/schemas-definitions/-/blob/main/102232-1/LI-PS-PDU.asn?ref_type=heads)|40|securityDomain(2) lawfulIntercept(2) li-ps(5) genHeader(1) version40(40)| |[TS 102 232-2](https://forge.etsi.org/rep/li/schemas-definitions/-/blob/main/102232-2)|[EmailPDU](https://forge.etsi.org/rep/li/schemas-definitions/-/blob/main/102232-2/EmailPDU.asn?ref_type=heads)|20|securityDomain(2) lawfulIntercept(2) li-ps(5) email(2) version20(20)| |[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) version33(33)| |[TS 102 232-3](https://forge.etsi.org/rep/li/schemas-definitions/-/blob/main/102232-3)|[IPAccessPDU](https://forge.etsi.org/rep/li/schemas-definitions/-/blob/main/102232-3/IPAccessPDU.asn?ref_type=heads)|20|securityDomain(2) lawfulIntercept(2) li-ps(5) iPAccess(3) version20(20)| |[TS 102 232-4](https://forge.etsi.org/rep/li/schemas-definitions/-/blob/main/102232-4)|[L2AccessPDU](https://forge.etsi.org/rep/li/schemas-definitions/-/blob/main/102232-4/L2AccessPDU.asn?ref_type=heads)|10|securityDomain(2) lawfulIntercept(2) li-ps(5) l2Access(4) version10(10)| |[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) version2(2)| |[TS 102 232-5](https://forge.etsi.org/rep/li/schemas-definitions/-/blob/main/102232-5)|[IPMultimediaPDU](https://forge.etsi.org/rep/li/schemas-definitions/-/blob/main/102232-5/IPMultimediaPDU.asn?ref_type=heads)|17|securityDomain(2) lawfulIntercept(2) li-ps(5) iPMultimedia(5) version17(17)| |[TS 102 232-2](https://forge.etsi.org/rep/li/schemas-definitions/-/blob/main/102232-2)|[EmailPDU](https://forge.etsi.org/rep/li/schemas-definitions/-/blob/main/102232-2/EmailPDU.asn?ref_type=heads)|20|securityDomain(2) lawfulIntercept(2) li-ps(5) email(2) version20(20)| |[TS 102 232-4](https://forge.etsi.org/rep/li/schemas-definitions/-/blob/main/102232-4)|[L2AccessPDU](https://forge.etsi.org/rep/li/schemas-definitions/-/blob/main/102232-4/L2AccessPDU.asn?ref_type=heads)|10|securityDomain(2) lawfulIntercept(2) li-ps(5) l2Access(4) version10(10)| |[TS 102 232-1](https://forge.etsi.org/rep/li/schemas-definitions/-/blob/main/102232-1)|[HI1NotificationOperations](https://forge.etsi.org/rep/li/schemas-definitions/-/blob/main/102232-1/HI1NotificationOperations.asn?ref_type=heads)|7|securityDomain(2) lawfulIntercept(2) hi1(0) notificationOperations(1) version7(7)| |[TS 102 232-1](https://forge.etsi.org/rep/li/schemas-definitions/-/blob/main/102232-1)|[LI-PS-PDU](https://forge.etsi.org/rep/li/schemas-definitions/-/blob/main/102232-1/LI-PS-PDU.asn?ref_type=heads)|40|securityDomain(2) lawfulIntercept(2) li-ps(5) genHeader(1) version40(40)| |[TS 102 232-1](https://forge.etsi.org/rep/li/schemas-definitions/-/blob/main/102232-1)|[HI2Operations](https://forge.etsi.org/rep/li/schemas-definitions/-/blob/main/102232-1/HI2Operations.asn?ref_type=heads)|18|securityDomain(2) lawfulIntercept(2) hi2(1) version17(18)| |[TS 102 232-6](https://forge.etsi.org/rep/li/schemas-definitions/-/blob/main/102232-6)|[PstnIsdnPDU](https://forge.etsi.org/rep/li/schemas-definitions/-/blob/main/102232-6/PstnIsdnPDU.asn?ref_type=heads)|6|securityDomain(2) lawfulIntercept(2) li-ps(5) pstnIsdn(6) version6(6)| |[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) version33(33)| |[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) version2(2)| |[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) version261(261)| utils/oids/oid.py +24 −10 Original line number Diff line number Diff line Loading @@ -52,6 +52,7 @@ class OIDArc: return self return self.hierarchy()[0] regex = re.compile(r"^(.+?){(.*?)}", re.DOTALL) arc_regex = re.compile(r"(.+?)\(([0-9]+?)\)") root = Path("./") Loading @@ -69,7 +70,7 @@ for asn_file in asn_files: continue text = asn_file.read_text() spec = f"TS {asn_file.parts[0][0:3]} {asn_file.parts[0][3:]}" url = f"https://forge.etsi.org/rep/li/schemas-definitions/-/blob/main/{str(asn_file).replace("\\","/")}?ref_type=heads" url = f"https://forge.etsi.org/rep/li/schemas-definitions/-/blob/main/{str(asn_file).replace('\\', '/')}?ref_type=heads" matches = regex.findall(text) for match in matches: module_name = match[0].strip() Loading @@ -88,16 +89,29 @@ for oid in oids: oid_arc_sets.append(set()) oid_arc_sets[i].add(f'{a.as_numerical()}["{a.label} ({a.value})"]\n') if a.child is not None: oid_arc_edges.add(f'{a.as_numerical()}-->{a.child.as_numerical()}\n') oid_arc_edges.add(f"{a.as_numerical()}-->{a.child.as_numerical()}\n") dia_string = "# OID hierarchy\n" dia_string += '```mermaid\ngraph TD;\n' dia_string += "```mermaid\ngraph TD;\n" def label_to_key(label): oidstr = label.partition("[")[0] oidlist = list(map(int, oidstr.split("."))) return oidlist def edge_to_key(edge): oidstr = edge.replace("-->", ".-1.") oidlist = list(map(int, oidstr.split("."))) return oidlist for level in oid_arc_sets: for item in level: for item in sorted(level, key=label_to_key): dia_string += item for edge in oid_arc_edges: for edge in sorted(oid_arc_edges, key=edge_to_key): dia_string += edge dia_string += "```" Loading Loading
utils/oids/oid.md +46 −46 Original line number Diff line number Diff line Loading @@ -6,76 +6,76 @@ graph TD; 0.4.0["etsi (0)"] 0.4.0.2["securityDomain (2)"] 0.4.0.3280["common-parameters (3280)"] 0.4.0.2.4["informationHandover (4)"] 0.4.0.2.2["lawfulIntercept (2)"] 0.4.0.2.3["retainedData (3)"] 0.4.0.2.4["informationHandover (4)"] 0.4.0.3280.261["version261 (261)"] 0.4.0.2.3.0["rdHeader (0)"] 0.4.0.2.2.1["hi2 (1)"] 0.4.0.2.2.0["hi1 (0)"] 0.4.0.2.4.0["ilhi (0)"] 0.4.0.2.2.1["hi2 (1)"] 0.4.0.2.2.5["li-ps (5)"] 0.4.0.2.2.5.6["pstnIsdn (6)"] 0.4.0.2.3.0["rdHeader (0)"] 0.4.0.2.4.0["ilhi (0)"] 0.4.0.2.2.0.1["notificationOperations (1)"] 0.4.0.2.2.1.18["version17 (18)"] 0.4.0.2.2.5.1["genHeader (1)"] 0.4.0.2.2.5.2["email (2)"] 0.4.0.2.2.5.3["iPAccess (3)"] 0.4.0.2.2.5.4["l2Access (4)"] 0.4.0.2.2.0.1["notificationOperations (1)"] 0.4.0.2.4.0.0["ilhiPdu (0)"] 0.4.0.2.3.0.33["version33 (33)"] 0.4.0.2.2.5.5["iPMultimedia (5)"] 0.4.0.2.2.1.18["version17 (18)"] 0.4.0.2.2.5.2["email (2)"] 0.4.0.2.2.5.1.40["version40 (40)"] 0.4.0.2.2.5.6["pstnIsdn (6)"] 0.4.0.2.3.0.33["version33 (33)"] 0.4.0.2.4.0.0["ilhiPdu (0)"] 0.4.0.2.2.0.1.7["version7 (7)"] 0.4.0.2.2.5.6.6["version6 (6)"] 0.4.0.2.2.5.3.20["version20 (20)"] 0.4.0.2.4.0.0.2["version2 (2)"] 0.4.0.2.2.5.1.40["version40 (40)"] 0.4.0.2.2.5.2.20["version20 (20)"] 0.4.0.2.2.5.5.17["version17 (17)"] 0.4.0.2.2.5.3.20["version20 (20)"] 0.4.0.2.2.5.4.10["version10 (10)"] 0.4.0.2.2.5.3-->0.4.0.2.2.5.3.20 0.4.0.2.2.5.5.17["version17 (17)"] 0.4.0.2.2.5.6.6["version6 (6)"] 0.4.0.2.4.0.0.2["version2 (2)"] 0-->0.4 0.4-->0.4.0 0.4.0-->0.4.0.2 0.4.0-->0.4.0.3280 0.4.0.2-->0.4.0.2.2 0.4.0.2-->0.4.0.2.3 0.4.0.2-->0.4.0.2.4 0.4.0.2.2-->0.4.0.2.2.0 0.4.0.2.2-->0.4.0.2.2.1 0.4.0.2.2.0.1-->0.4.0.2.2.0.1.7 0.4.0.2.2.5-->0.4.0.2.2.5.5 0.4.0.2.2.5.6-->0.4.0.2.2.5.6.6 0.4.0.2.2-->0.4.0.2.2.5 0.4.0.2-->0.4.0.2.3 0.4.0.2.4-->0.4.0.2.4.0 0.4.0.2.4.0-->0.4.0.2.4.0.0 0.4.0.2.2.5.1-->0.4.0.2.2.5.1.40 0.4.0.2.2.5-->0.4.0.2.2.5.2 0.4.0.2.2.5-->0.4.0.2.2.5.4 0.4.0.2.3.0-->0.4.0.2.3.0.33 0.4.0-->0.4.0.3280 0.4.0.2.2.5.4-->0.4.0.2.2.5.4.10 0.4.0.2.2.0-->0.4.0.2.2.0.1 0.4.0.2.2.0.1-->0.4.0.2.2.0.1.7 0.4.0.2.2.1-->0.4.0.2.2.1.18 0.4.0.2.2.5-->0.4.0.2.2.5.1 0.4.0.2.2.5-->0.4.0.2.2.5.2 0.4.0.2.2.5-->0.4.0.2.2.5.3 0.4.0.2.2-->0.4.0.2.2.0 0-->0.4 0.4.0.2.2.0-->0.4.0.2.2.0.1 0.4.0.2.2.5-->0.4.0.2.2.5.4 0.4.0.2.2.5-->0.4.0.2.2.5.5 0.4.0.2.2.5-->0.4.0.2.2.5.6 0.4.0.3280-->0.4.0.3280.261 0.4.0.2.2.5-->0.4.0.2.2.5.1 0.4.0.2.4.0.0-->0.4.0.2.4.0.0.2 0.4.0.2.2.5.5-->0.4.0.2.2.5.5.17 0.4.0.2.2.5.1-->0.4.0.2.2.5.1.40 0.4.0.2.2.5.2-->0.4.0.2.2.5.2.20 0.4.0-->0.4.0.2 0.4.0.2-->0.4.0.2.4 0.4.0.2.2.5.3-->0.4.0.2.2.5.3.20 0.4.0.2.2.5.4-->0.4.0.2.2.5.4.10 0.4.0.2.2.5.5-->0.4.0.2.2.5.5.17 0.4.0.2.2.5.6-->0.4.0.2.2.5.6.6 0.4.0.2.3-->0.4.0.2.3.0 0.4-->0.4.0 0.4.0.2-->0.4.0.2.2 0.4.0.2.3.0-->0.4.0.2.3.0.33 0.4.0.2.4-->0.4.0.2.4.0 0.4.0.2.4.0-->0.4.0.2.4.0.0 0.4.0.2.4.0.0-->0.4.0.2.4.0.0.2 0.4.0.3280-->0.4.0.3280.261 ``` # OID list | Spec | Module name | Version | OID relative to {itu-t(0) identified-organization(4) etsi(0)} | | ---- | ----------- | ------- | -------- | |[TS 102 232-1](https://forge.etsi.org/rep/li/schemas-definitions/-/blob/main/102232-1)|[HI1NotificationOperations](https://forge.etsi.org/rep/li/schemas-definitions/-/blob/main/102232-1/HI1NotificationOperations.asn?ref_type=heads)|7|securityDomain(2) lawfulIntercept(2) hi1(0) notificationOperations(1) version7(7)| |[TS 102 232-1](https://forge.etsi.org/rep/li/schemas-definitions/-/blob/main/102232-1)|[HI2Operations](https://forge.etsi.org/rep/li/schemas-definitions/-/blob/main/102232-1/HI2Operations.asn?ref_type=heads)|18|securityDomain(2) lawfulIntercept(2) hi2(1) version17(18)| |[TS 102 232-1](https://forge.etsi.org/rep/li/schemas-definitions/-/blob/main/102232-1)|[LI-PS-PDU](https://forge.etsi.org/rep/li/schemas-definitions/-/blob/main/102232-1/LI-PS-PDU.asn?ref_type=heads)|40|securityDomain(2) lawfulIntercept(2) li-ps(5) genHeader(1) version40(40)| |[TS 102 232-2](https://forge.etsi.org/rep/li/schemas-definitions/-/blob/main/102232-2)|[EmailPDU](https://forge.etsi.org/rep/li/schemas-definitions/-/blob/main/102232-2/EmailPDU.asn?ref_type=heads)|20|securityDomain(2) lawfulIntercept(2) li-ps(5) email(2) version20(20)| |[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) version33(33)| |[TS 102 232-3](https://forge.etsi.org/rep/li/schemas-definitions/-/blob/main/102232-3)|[IPAccessPDU](https://forge.etsi.org/rep/li/schemas-definitions/-/blob/main/102232-3/IPAccessPDU.asn?ref_type=heads)|20|securityDomain(2) lawfulIntercept(2) li-ps(5) iPAccess(3) version20(20)| |[TS 102 232-4](https://forge.etsi.org/rep/li/schemas-definitions/-/blob/main/102232-4)|[L2AccessPDU](https://forge.etsi.org/rep/li/schemas-definitions/-/blob/main/102232-4/L2AccessPDU.asn?ref_type=heads)|10|securityDomain(2) lawfulIntercept(2) li-ps(5) l2Access(4) version10(10)| |[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) version2(2)| |[TS 102 232-5](https://forge.etsi.org/rep/li/schemas-definitions/-/blob/main/102232-5)|[IPMultimediaPDU](https://forge.etsi.org/rep/li/schemas-definitions/-/blob/main/102232-5/IPMultimediaPDU.asn?ref_type=heads)|17|securityDomain(2) lawfulIntercept(2) li-ps(5) iPMultimedia(5) version17(17)| |[TS 102 232-2](https://forge.etsi.org/rep/li/schemas-definitions/-/blob/main/102232-2)|[EmailPDU](https://forge.etsi.org/rep/li/schemas-definitions/-/blob/main/102232-2/EmailPDU.asn?ref_type=heads)|20|securityDomain(2) lawfulIntercept(2) li-ps(5) email(2) version20(20)| |[TS 102 232-4](https://forge.etsi.org/rep/li/schemas-definitions/-/blob/main/102232-4)|[L2AccessPDU](https://forge.etsi.org/rep/li/schemas-definitions/-/blob/main/102232-4/L2AccessPDU.asn?ref_type=heads)|10|securityDomain(2) lawfulIntercept(2) li-ps(5) l2Access(4) version10(10)| |[TS 102 232-1](https://forge.etsi.org/rep/li/schemas-definitions/-/blob/main/102232-1)|[HI1NotificationOperations](https://forge.etsi.org/rep/li/schemas-definitions/-/blob/main/102232-1/HI1NotificationOperations.asn?ref_type=heads)|7|securityDomain(2) lawfulIntercept(2) hi1(0) notificationOperations(1) version7(7)| |[TS 102 232-1](https://forge.etsi.org/rep/li/schemas-definitions/-/blob/main/102232-1)|[LI-PS-PDU](https://forge.etsi.org/rep/li/schemas-definitions/-/blob/main/102232-1/LI-PS-PDU.asn?ref_type=heads)|40|securityDomain(2) lawfulIntercept(2) li-ps(5) genHeader(1) version40(40)| |[TS 102 232-1](https://forge.etsi.org/rep/li/schemas-definitions/-/blob/main/102232-1)|[HI2Operations](https://forge.etsi.org/rep/li/schemas-definitions/-/blob/main/102232-1/HI2Operations.asn?ref_type=heads)|18|securityDomain(2) lawfulIntercept(2) hi2(1) version17(18)| |[TS 102 232-6](https://forge.etsi.org/rep/li/schemas-definitions/-/blob/main/102232-6)|[PstnIsdnPDU](https://forge.etsi.org/rep/li/schemas-definitions/-/blob/main/102232-6/PstnIsdnPDU.asn?ref_type=heads)|6|securityDomain(2) lawfulIntercept(2) li-ps(5) pstnIsdn(6) version6(6)| |[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) version33(33)| |[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) version2(2)| |[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) version261(261)|
utils/oids/oid.py +24 −10 Original line number Diff line number Diff line Loading @@ -52,6 +52,7 @@ class OIDArc: return self return self.hierarchy()[0] regex = re.compile(r"^(.+?){(.*?)}", re.DOTALL) arc_regex = re.compile(r"(.+?)\(([0-9]+?)\)") root = Path("./") Loading @@ -69,7 +70,7 @@ for asn_file in asn_files: continue text = asn_file.read_text() spec = f"TS {asn_file.parts[0][0:3]} {asn_file.parts[0][3:]}" url = f"https://forge.etsi.org/rep/li/schemas-definitions/-/blob/main/{str(asn_file).replace("\\","/")}?ref_type=heads" url = f"https://forge.etsi.org/rep/li/schemas-definitions/-/blob/main/{str(asn_file).replace('\\', '/')}?ref_type=heads" matches = regex.findall(text) for match in matches: module_name = match[0].strip() Loading @@ -88,16 +89,29 @@ for oid in oids: oid_arc_sets.append(set()) oid_arc_sets[i].add(f'{a.as_numerical()}["{a.label} ({a.value})"]\n') if a.child is not None: oid_arc_edges.add(f'{a.as_numerical()}-->{a.child.as_numerical()}\n') oid_arc_edges.add(f"{a.as_numerical()}-->{a.child.as_numerical()}\n") dia_string = "# OID hierarchy\n" dia_string += '```mermaid\ngraph TD;\n' dia_string += "```mermaid\ngraph TD;\n" def label_to_key(label): oidstr = label.partition("[")[0] oidlist = list(map(int, oidstr.split("."))) return oidlist def edge_to_key(edge): oidstr = edge.replace("-->", ".-1.") oidlist = list(map(int, oidstr.split("."))) return oidlist for level in oid_arc_sets: for item in level: for item in sorted(level, key=label_to_key): dia_string += item for edge in oid_arc_edges: for edge in sorted(oid_arc_edges, key=edge_to_key): dia_string += edge dia_string += "```" Loading