← Back to list

Simplifying OMCI Diagnostics: A Cross-Platform Python Tool for GPON/XGS-PON Analysis

As an embedded firmware engineer working with GPON and XGS-PON technologies, I often found myself struggling with the complexity of…

Dong Yuan Shih · 2026-04-30 14:52 · 0 claps · 2.2 min read
#gpon #omci #pcap-analysis #python3 #wireshark
Open on Medium ↗
Wiki topics: CLI · Clinical Medicine

Simplifying OMCI Diagnostics: A Cross-Platform Python Tool for GPON/XGS-PON Analysis

As an embedded firmware engineer working with GPON and XGS-PON technologies, I often found myself struggling with the complexity of analyzing OMCI messages from raw PCAP files. Whether it was comparing MIB snapshots or calculating RTT, the manual process was always time-consuming.

That is why I developed omcipcap — a lightweight, Python-based diagnostic tool designed to streamline the analysis of G.988 protocols. Today, I am excited to announce that omcipcap is officially available on PyPI, making it easier than ever for the network engineering community to access and deploy.

Key Highlights to Include:

  • Instant Deployment: No more manual setup; simply run pip install omcipcap.
  • Cross-Platform Binaries: Built with GitHub Actions to provide native executables for Linux, Windows, and macOS.
  • Deep Analysis: Features include RTT latency tracking and MIB difference analysis.
  • Automated Workflow: Leverages OIDC Trusted Publishing to ensure secure and synchronized releases.

The Core Philosophy: A Schema-Driven Architecture

Beyond its standalone utility, omcipcap is built as a framework for developers. The internal logic is centered around two main pillars that make it highly extensible:

  • Dynamic Protocol Engine: The parser in omci.py automatically detects Baseline vs. Extended message formats based on the Device ID (G.988). This ensures that whether you are working with legacy GPON or modern XGS-PON traces, the extraction is always accurate.
  • Schema-Driven MIB Model: Instead of hard-coding hundreds of individual Managed Entity (ME) classes, I implemented a single MIBInstance class driven by an external schema.

Why this matters for developers: By decoupling the ME definition from the parsing logic, omcipcap allows programmers to:

  1. Add new MEs simply by updating a JSON/Dictionary schema without touching the core code.
  2. Chain & Compare data structures easily, as every ME follows a consistent interface, making complex MIB “diffs” or relationship mapping straightforward to implement.

Supported function:

  • omcipcap check

  • omcipcap diff

  • omcipcap graphic

  • omcipcap vlan_tbl

Github repo:

https://github.com/daneshih1125/omcipcap


메타데이터
post_id
64e7df897dd1
slug
simplifying-omci-diagnostics-a-cross-platform-python-tool-for-gpon-xgs-pon-analysis-64e7df897dd1
url
https://medium.com/@daneshih1125/simplifying-omci-diagnostics-a-cross-platform-python-tool-for-gpon-xgs-pon-analysis-64e7df897dd1
canonical_url
https://medium.com/@daneshih1125/simplifying-omci-diagnostics-a-cross-platform-python-tool-for-gpon-xgs-pon-analysis-64e7df897dd1
author_url
https://medium.com/@daneshih1125
status
ok
fetched_at
2026-06-17 08:20:12