From 51b18a0e6a51e99fd7e8d0a203b1730466519339 Mon Sep 17 00:00:00 2001 From: Simone Bortolin Date: Fri, 9 Oct 2026 22:37:18 +0200 Subject: [PATCH 1/7] Add the OMCI Wireshark and PCAP tools page omcilog2pcap converts the OMCI logs of Lantiq, Realtek, Sagemcom and Cortina based ONTs to pcap, the OMCI Wireshark dissector decodes them. Refs #46 Co-Authored-By: Claude Opus 5.5 --- tools/omci-wireshark.md | 72 +++++++++++++++++++++++++++++++++++++++++ tools/omcipcap.md | 2 ++ 2 files changed, 74 insertions(+) create mode 100644 tools/omci-wireshark.md diff --git a/tools/omci-wireshark.md b/tools/omci-wireshark.md new file mode 100644 index 00000000..9d8aa7e3 --- /dev/null +++ b/tools/omci-wireshark.md @@ -0,0 +1,72 @@ +--- +title: OMCI Wireshark and PCAP tools +has_children: false +description: Capture the OMCI messages of an ONT and analyze them with Wireshark +--- + +# OMCI Wireshark and PCAP tools + +The OMCI (ONT Management and Control Interface, ITU-T G.984.4 / G.988) messages exchanged between the OLT and the ONT contain the whole provisioning of the line: managed entities, VLAN rules, T-CONTs, GEM ports and the values the OLT expects from the ONT. Capturing them is the best way to understand why an ONT does not work, or to clone the configuration of the ISP ONT. + +The workflow is: + +1. enable the OMCI log on the ONT and copy the log to the PC; +2. convert the log to a `.pcap` file with [omcilog2pcap](https://github.com/hack-gpon/omcilog2pcap); +3. open the `.pcap` file in Wireshark with the [OMCI Wireshark dissector](https://github.com/hack-gpon/omci-wireshark-dissector). + +## omcilog2pcap + +[omcilog2pcap](https://github.com/hack-gpon/omcilog2pcap) converts the OMCI logs of the ONTs into `.pcap` files. It supports the logs of: + +- Lantiq based chips (e.g. [Huawei MA5671A](/ont-huawei-ma5671a)) +- Realtek based chips (e.g. [Technicolor AFM0002TIM](/ont-technicolor-afm0002)) +- Sagemcom devices +- Cortina Access devices: you can merge the `pkt_rx` and `pkt_tx` logs into a single file and the software re-orders the packets automatically + +The current version is written in JavaScript (ALPHA); the previous .NET 7.0 version is in the [`C#` branch](https://github.com/hack-gpon/omcilog2pcap/tree/C%23). + +### Getting the OMCI log on Realtek based sticks + +On the Realtek (Luna SDK) based sticks the OMCI daemon can write a binary log to `/tmp/omcilog`: + +```sh +/etc/scripts/flash set OMCI_DBGLVL 1 +/etc/scripts/flash set OMCI_DBGLOGFILE 1 +reboot +/bin/omcicli set logfile 1 ffffffff +``` + +Then copy the log to the PC, for example: + +```sh +ssh admin@192.168.2.1 "cat /tmp/omcilog" > omcilog.log +``` + +To log the messages since the boot of the stick, add the last command at the end of `etc/runomci.sh` in a custom rootfs. See the [Technicolor AFM0002](/ont-technicolor-afm0002#enabling-ploam-logging) page for the details. + +## OMCI Wireshark dissector + +The [OMCI Wireshark dissector](https://github.com/hack-gpon/omci-wireshark-dissector) is a Lua plugin that decodes the OMCI messages in Wireshark. It requires Wireshark 1.4.3 or newer with Lua 5.1 or newer (check it in *Help > About*). + +To install it, copy both `omci.lua` and `BinDecHex.lua` in the Wireshark personal plugins folder: + +| OS | Folder | +| ------------- | ----------------------------------------- | +| Linux/\*nix | `$HOME/.config/wireshark/plugins` | +| Windows | `%APPDATA%\Wireshark\plugins` | +| macOS | `$HOME/.config/wireshark/plugins` | + +Restart Wireshark and open `omci-example.pcap` from the repository to check that the dissector works. Use the `omci` display filter to show only the OMCI messages. + +The dissector is a fork of [0liv1er/omci-wireshark-dissector](https://github.com/0liv1er/omci-wireshark-dissector), originally published on Google Code. + +## Semantic analysis + +To analyze large captures (failed provisioning, MIB snapshots, VLAN rules of ME 171, T-CONT/GEM topology) see [omcipcap](/omcipcap). + +# Miscellaneous Links + +- [omcilog2pcap](https://github.com/hack-gpon/omcilog2pcap) +- [OMCI Wireshark dissector](https://github.com/hack-gpon/omci-wireshark-dissector) +- [omcipcap](/omcipcap) +- [GPON OMCI VLAN parser](/gpon-omci-vlan-parser) diff --git a/tools/omcipcap.md b/tools/omcipcap.md index f5ccd302..be917b6f 100644 --- a/tools/omcipcap.md +++ b/tools/omcipcap.md @@ -24,3 +24,5 @@ Project: - [GitHub](https://github.com/RainbowCloudLabs/omcipcap) - [PyPI](https://pypi.org/project/omcipcap/) + +To capture the OMCI messages of an ONT and open them in Wireshark see [OMCI Wireshark and PCAP tools](/omci-wireshark). From 635ec10df6b2c22ae9012ca0c66f1474f9278ed7 Mon Sep 17 00:00:00 2001 From: Simone Bortolin Date: Fri, 9 Oct 2026 22:37:18 +0200 Subject: [PATCH 2/7] Add the Sagemcom F@st 5684S (TIM 10 Gb) and F@st 5655v2 Refs #46 Co-Authored-By: Claude Opus 5.5 --- router/sagemcom.md | 4 ++ router/sagemcom_fast_5655v2.md | 78 ++++++++++++++++++++++++++++++++++ router/sagemcom_fast_5684s.md | 74 ++++++++++++++++++++++++++++++++ 3 files changed, 156 insertions(+) create mode 100644 router/sagemcom.md create mode 100644 router/sagemcom_fast_5655v2.md create mode 100644 router/sagemcom_fast_5684s.md diff --git a/router/sagemcom.md b/router/sagemcom.md new file mode 100644 index 00000000..a4904c7b --- /dev/null +++ b/router/sagemcom.md @@ -0,0 +1,4 @@ +--- +title: Sagemcom +has_children: true +--- diff --git a/router/sagemcom_fast_5655v2.md b/router/sagemcom_fast_5655v2.md new file mode 100644 index 00000000..2ca1ab51 --- /dev/null +++ b/router/sagemcom_fast_5655v2.md @@ -0,0 +1,78 @@ +--- +title: Sagemcom F@st 5655v2 +has_children: false +parent: Sagemcom +--- + +# Hardware Specifications + +| | | +| ------------ | ------------------------------------- | +| Vendor/Brand | Sagemcom | +| Model | F@st 5655v2 | +| ODM | ✅ | +| CPU | | +| CPU Clock | | +| Chipset | | +| Flash | | +| RAM | | +| System | | +| Optics | GPON | +| IP address | 192.168.1.1 | +| Web Gui | ✅ user `1234`, password `1234` | +| SSH | ✅ user `1234` (see [Enable SSH and Telnet](#enable-ssh-and-telnet)), `su` password `root` | +| Telnet | ✅ (see [Enable SSH and Telnet](#enable-ssh-and-telnet)) | +| Serial | | +| Form Factor | CPE with ONT | + +The F@st 5655v2 is the GPON modem of the Spanish ISPs MásMóvil, Pepephone and Yoigo. + +# Usage + +## Enable SSH and Telnet + +1. Log in to the web interface (`http://192.168.1.1`, user `1234`, password `1234`). +2. Open the developer console of the browser and run the commands one by one: they enable SSH (port 22) and Telnet (port 23) for the user with `uid` 3. + +```js +$.xmo.getValuesTree("Device"); +$.xmo.getValuesTree("Device/UserAccounts/Users"); +$.xmo.getValuesTree("Device/UserAccounts/Users/User[@uid='3']"); +$.xmo.getValuesTree("Device/UserAccounts/Users/User[@uid='3']/RemoteAccesses"); +$.xmo.getValuesTree("Device/UserAccounts/Users/User[@uid='3']/RemoteAccesses/RemoteAccess[@uid='3']/Enabled"); +$.xmo.getValuesTree("Device/UserAccounts/Users/User[@uid='3']/RemoteAccesses/RemoteAccess[@uid='4']/Enabled"); +$.xmo.setValuesTree("ACCESS_ENABLE_ALL", "Device/UserAccounts/Users/User[@uid='3']/RemoteAccesses/RemoteAccess[@uid='3']/LANRestriction"); +$.xmo.setValuesTree("ACCESS_ENABLE_ALL", "Device/UserAccounts/Users/User[@uid='3']/RemoteAccesses/RemoteAccess[@uid='4']/LANRestriction"); +$.xmo.setValuesTree(22, "Device/UserAccounts/Users/User[@uid='3']/RemoteAccesses/RemoteAccess[@uid='3']/Port"); +$.xmo.setValuesTree(23, "Device/UserAccounts/Users/User[@uid='3']/RemoteAccesses/RemoteAccess[@uid='4']/Port"); +$.xmo.setValuesTree(true, "Device/UserAccounts/Users/User[@uid='3']/RemoteAccesses/RemoteAccess[@uid='3']/Enabled"); +$.xmo.setValuesTree(true, "Device/UserAccounts/Users/User[@uid='3']/RemoteAccesses/RemoteAccess[@uid='4']/Enabled"); +``` + +3. Reboot the modem from the maintenance page. +4. Connect with `ssh 1234@192.168.1.1` and run `su` (password `root`). + +::: info Note +If a command returns `null` or the SSH connection times out, retry with the fiber disconnected. +::: + +# GPON/OMCI settings + +## Getting ONU GPON PLOAM password + +```sh +cat /opt/filesystem2/data/optical_conf.txt +``` + +Alternatively, copy the configuration on a USB stick and search the `RegId` tag (the PLOAM password, in hex) in `cfg.xml`: + +```sh +cp /tmp/cfg.xml /mnt/sda1 +``` + +The mount point can also be `/mnt/sda`. The same file also contains the SIP credentials of the VoIP line. The PLOAM password can be converted from hex to ASCII with the [ASCII/HEX converter](/ascii-hex). + +# Miscellaneous Links + +- [Naseros: GPON and SIP key of the Sagemcom F@st 5655v2](https://naseros.com/2020/07/14/como-extraer-clave-gpon-y-sip-del-sagemcom-fast-5655v2-de-masmovil-pepephone-y-yoigo/) +- [Sagemcom F@st 5684S](/router/sagemcom_fast_5684s) diff --git a/router/sagemcom_fast_5684s.md b/router/sagemcom_fast_5684s.md new file mode 100644 index 00000000..6dcacf2b --- /dev/null +++ b/router/sagemcom_fast_5684s.md @@ -0,0 +1,74 @@ +--- +title: Sagemcom F@st 5684S +has_children: false +alias: TIM Sagemcom 10 Gb +parent: Sagemcom +--- + +# Hardware Specifications + +| | | +| ------------ | ----------------------------------------------------------------------- | +| Vendor/Brand | Sagemcom | +| Model | F@st 5684S (F5684S_v1, F5684S_v2) | +| ODM | ✅ | +| CPU | 4x ARMv8 (Broadcom) | +| CPU Clock | | +| Chipset | Broadcom | +| Flash | | +| RAM | | +| System | Linux 4.1.52 (Broadcom SDK 5.02L.07) | +| Ethernet | 4x 1GbE LAN, 1x 10GbE (LAN or WAN for an external ONT) | +| SFP | 1x SFP+ (XGS-PON stick Sagemcom CS50001) | +| Wi-Fi | Wi-Fi 6 (802.11ax) 2.4 GHz and 5 GHz, 4x4 | +| USB | 2x USB (1x USB 3.0) | +| Phone | 2x FXS (Phone1, Phone2) | +| IP address | | +| Web Gui | ✅ user `admin` | +| SSH | ✅ (see [Enable SSH](#enable-ssh)) | +| Telnet | | +| Serial | | +| Form Factor | CPE with SFP | + +The F@st 5684S is the modem of the TIM FTTH offers up to 10 Gbps (TIM Sagemcom 10 Gb). The XGS-PON line is terminated by the Sagemcom CS50001 SFP+ stick installed in the SFP+ cage of the modem; on the 2.5 Gbps lines TIM can install an external ONT connected to the 10GbE port. + +::: info Note +The CS50001 stick does not bring up the connection with the OLT by itself when used on other hardware (e.g. MikroTik): it is recognized and shows its parameters, but it needs the configuration of the modem. +::: + +## List of software versions + +- AGGHX_1.2.0 (GUI 5.92.3) +- AGGHX_1.3.3 + +# Usage + +## Enable SSH + +The web interface of the Sagemcom F@st modems exposes the `$.xmo` JavaScript object, which reads and writes the internal data model. From the browser developer console of the logged in web interface, the remote accesses of the internal user can be enabled from the LAN: + +```js +var x = $.xmo; +x.init(); +x.login("internal", ""); +$.xmo.setValuesTree("ACCESS_ENABLE_ALL","Device/UserAccounts/Users/User[@uid='3']/RemoteAccesses/RemoteAccess[@uid='1']/LANRestriction"); +``` + +The same data model is used by the other F@st modems, see the [F@st 5655v2](/router/sagemcom_fast_5655v2) for the full procedure. + +## Updating the firmware + +To force the update: back up the settings and keep the reset button pressed for about 30 seconds. + +# Known Bugs + +- The DNS servers cannot be changed (the manual settings go back to automatic). +- The port forwarding rules are applied only after a reboot. +- Random Wi-Fi shutdown (disabling Band Steering reduces it) and full freezes that require a power cycle. + +# Miscellaneous Links + +- [TIM - Sagemcom 10 Gb guides](https://www.tim.it/assistenza/assistenza-tecnica/guide-manuali/sagemcom-10gb) +- [TIM - Sagemcom 10 Gb Quick Guide](https://www.tim.it/content/dam/flytoco-areapubblica-aemfe/tim_it/pdf/assistenza-tecnica/guide-manuali/tim-sagemcom-10gb/qg-sagemcom-10gb.pdf) +- [HWUpgrade forum](https://www.hwupgrade.it/forum/archive/index.php/t-2970213.html) +- [OpenWrt forum: OpenWrt for Sagemcom F@5684](https://forum.openwrt.org/t/openwrt-for-sagemcom-f-5684/143254) From 15f407047291166b3e283fe71694fcc34414ad3f Mon Sep 17 00:00:00 2001 From: Simone Bortolin Date: Fri, 9 Oct 2026 22:37:18 +0200 Subject: [PATCH 3/7] Add a Copy as Markdown button to the EEPROM decoders The Lantiq and ethtool EEPROM decoders can copy the decoded table as a markdown table, ready to be pasted into a wiki page. Refs #46 Co-Authored-By: Claude Opus 5.5 --- .vitepress/theme/components/LantiqEeprom.vue | 40 +++++++++++++++++++- 1 file changed, 38 insertions(+), 2 deletions(-) diff --git a/.vitepress/theme/components/LantiqEeprom.vue b/.vitepress/theme/components/LantiqEeprom.vue index 96b989c0..02b220cc 100644 --- a/.vitepress/theme/components/LantiqEeprom.vue +++ b/.vitepress/theme/components/LantiqEeprom.vue @@ -40,6 +40,9 @@ +

+ +

Info

For more information, see the {{ revision }} specification.

@@ -79,6 +82,9 @@
+

+ +

Info

For more information, see the {{ revision }} specification.

@@ -857,7 +863,8 @@ export default { } ] }, - eeprom_switch: "A0" + eeprom_switch: "A0", + copied: false } }, props: ['type'], @@ -1099,6 +1106,35 @@ export default { } }, methods: { + eepromMarkdown: function () { + const cell = (str) => (str ?? '').toString().replaceAll('**', '').replaceAll('|', '\\|').replace(/\s+/g, ' ').trim(); + const rows = this.eeprom_json.map(it => { + const hex = it.value ? `\`${this.chunk(it.value)?.map(b => `0x${b}`)?.join(' ')}\`` : ''; + return `| ${cell(it.address)} | ${cell(it.size)} | ${cell(it.name)} | ${hex} | ${cell(it.human)} | ${cell(it.description)} |`; + }); + return [ + `EEPROM ${this.eeprom_switch} (${this.revision})`, + '', + '| address | size | name | hex value | decoded value | description |', + '| ------- | ---- | ---- | --------- | ------------- | ----------- |', + ...rows + ].join('\n'); + }, + copyMarkdown: async function () { + const markdown = this.eepromMarkdown(); + try { + await navigator.clipboard.writeText(markdown); + } catch (e) { + const textarea = document.createElement('textarea'); + textarea.value = markdown; + document.body.appendChild(textarea); + textarea.select(); + document.execCommand('copy'); + document.body.removeChild(textarea); + } + this.copied = true; + setTimeout(() => this.copied = false, 2000); + }, getPart: function (startIndex, endIndex) { return this.eeprom_decode?.slice(startIndex * 2, (endIndex + 1) * 2)?.join(''); }, @@ -1423,4 +1459,4 @@ table td { word-wrap: break-word; word-break: break-word; } - \ No newline at end of file + From 2bf5a39e93e67564009b810d7e25882425552b89 Mon Sep 17 00:00:00 2001 From: Simone Bortolin Date: Fri, 9 Oct 2026 22:40:39 +0200 Subject: [PATCH 4/7] Use the C# version of omcilog2pcap in the OMCI Wireshark page The C# version is now the default branch of omcilog2pcap: document the supported log formats (also Huawei S800E/B450), the release executables, the usage and the 0x88B5 EtherType of the generated frames; the js port has never been tested. Co-Authored-By: Claude Opus 5.5 --- tools/omci-wireshark.md | 27 +++++++++++++++++++++------ 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/tools/omci-wireshark.md b/tools/omci-wireshark.md index 9d8aa7e3..8eca158d 100644 --- a/tools/omci-wireshark.md +++ b/tools/omci-wireshark.md @@ -16,14 +16,29 @@ The workflow is: ## omcilog2pcap -[omcilog2pcap](https://github.com/hack-gpon/omcilog2pcap) converts the OMCI logs of the ONTs into `.pcap` files. It supports the logs of: +[omcilog2pcap](https://github.com/hack-gpon/omcilog2pcap) converts the OMCI logs of the ONTs into `.pcap` files. The format of the log is detected automatically: -- Lantiq based chips (e.g. [Huawei MA5671A](/ont-huawei-ma5671a)) -- Realtek based chips (e.g. [Technicolor AFM0002TIM](/ont-technicolor-afm0002)) -- Sagemcom devices -- Cortina Access devices: you can merge the `pkt_rx` and `pkt_tx` logs into a single file and the software re-orders the packets automatically +| Log | Detected by | +| ------------------------------------------------------------------------------------- | -------------------------- | +| Lantiq based chips (e.g. [Huawei MA5671A](/ont-huawei-ma5671a)), `omcid` log | `[omcid]` lines | +| Sagemcom devices (e.g. the TIM [F@st 5684S](/router/sagemcom_fast_5684s)) | `:omci capture:` lines | +| Cortina Access devices: merge the `pkt_rx` and `pkt_tx` logs into a single file, the packets are re-ordered automatically | ` debug: ` lines | +| Huawei (e.g. [OptiXstar S800E](/xgs/ont-huawei-optixstar-s800e), B450) | `OLT->ONT` / `ONT->OLT` blocks | +| Realtek based chips (e.g. [Technicolor AFM0002TIM](/ont-technicolor-afm0002)): one OMCI message in hex per line | any other text log | -The current version is written in JavaScript (ALPHA); the previous .NET 7.0 version is in the [`C#` branch](https://github.com/hack-gpon/omcilog2pcap/tree/C%23). +The default version is the .NET 7.0 one (native AOT), in the [`C#` branch](https://github.com/hack-gpon/omcilog2pcap/tree/C%23). The Windows executables (x64 and arm64) are in the [releases](https://github.com/hack-gpon/omcilog2pcap/releases/tag/release); on other OS build it from `src/` with the .NET SDK. + +To convert a log, drag and drop it on the executable, or pass it as argument: + +```sh +omcilog2pcap_winx64.exe omci_log.txt +``` + +The `.pcap` file is written in the current directory with the same name as the log (`omci_log.pcap`). Each OMCI message is wrapped in a fake Ethernet frame with EtherType `0x88B5` (OLT MAC `08:87:01:70:17:01`, ONT MAC `08:87:88:00:00:00`), which is the EtherType the dissector is registered on. + +::: warning +The [`js` branch](https://github.com/hack-gpon/omcilog2pcap/tree/js) contains an experimental JavaScript port (ALPHA) that has never been tested: use the `C#` version. +::: ### Getting the OMCI log on Realtek based sticks From 98d9af9e77d71ae1f58b1e3e2755743f37145ed9 Mon Sep 17 00:00:00 2001 From: Simone Bortolin Date: Fri, 9 Oct 2026 22:40:55 +0200 Subject: [PATCH 5/7] Make the omcilog2pcap instructions independent of the release Co-Authored-By: Claude Opus 5.5 --- tools/omci-wireshark.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/omci-wireshark.md b/tools/omci-wireshark.md index 8eca158d..c1953783 100644 --- a/tools/omci-wireshark.md +++ b/tools/omci-wireshark.md @@ -26,12 +26,12 @@ The workflow is: | Huawei (e.g. [OptiXstar S800E](/xgs/ont-huawei-optixstar-s800e), B450) | `OLT->ONT` / `ONT->OLT` blocks | | Realtek based chips (e.g. [Technicolor AFM0002TIM](/ont-technicolor-afm0002)): one OMCI message in hex per line | any other text log | -The default version is the .NET 7.0 one (native AOT), in the [`C#` branch](https://github.com/hack-gpon/omcilog2pcap/tree/C%23). The Windows executables (x64 and arm64) are in the [releases](https://github.com/hack-gpon/omcilog2pcap/releases/tag/release); on other OS build it from `src/` with the .NET SDK. +The default version is the .NET one (native AOT), in the [`C#` branch](https://github.com/hack-gpon/omcilog2pcap/tree/C%23). Download the executable for your OS from the [releases](https://github.com/hack-gpon/omcilog2pcap/releases), or build it from `src/` with the .NET SDK. To convert a log, drag and drop it on the executable, or pass it as argument: ```sh -omcilog2pcap_winx64.exe omci_log.txt +omcilog2pcap omci_log.txt ``` The `.pcap` file is written in the current directory with the same name as the log (`omci_log.pcap`). Each OMCI message is wrapped in a fake Ethernet frame with EtherType `0x88B5` (OLT MAC `08:87:01:70:17:01`, ONT MAC `08:87:88:00:00:00`), which is the EtherType the dissector is registered on. From 13fff459beb54dd77e1c5438507d7a96e9b2073e Mon Sep 17 00:00:00 2001 From: Simone Bortolin Date: Fri, 9 Oct 2026 22:45:21 +0200 Subject: [PATCH 6/7] Merge the OMCI PCAP Analyzer page into the OMCI Wireshark page omcipcap becomes a section of the OMCI Wireshark and PCAP tools page; the old URL redirects to it. The Huawei log format is listed without models, since only a comment of the parser names them. Co-Authored-By: Claude Opus 5.5 --- tools/omci-wireshark.md | 21 ++++++++++++++++----- tools/omcipcap.md | 25 ++----------------------- 2 files changed, 18 insertions(+), 28 deletions(-) diff --git a/tools/omci-wireshark.md b/tools/omci-wireshark.md index c1953783..c2df683f 100644 --- a/tools/omci-wireshark.md +++ b/tools/omci-wireshark.md @@ -12,7 +12,8 @@ The workflow is: 1. enable the OMCI log on the ONT and copy the log to the PC; 2. convert the log to a `.pcap` file with [omcilog2pcap](https://github.com/hack-gpon/omcilog2pcap); -3. open the `.pcap` file in Wireshark with the [OMCI Wireshark dissector](https://github.com/hack-gpon/omci-wireshark-dissector). +3. open the `.pcap` file in Wireshark with the [OMCI Wireshark dissector](https://github.com/hack-gpon/omci-wireshark-dissector); +4. optionally, analyze large captures with [omcipcap](#omcipcap). ## omcilog2pcap @@ -23,7 +24,7 @@ The workflow is: | Lantiq based chips (e.g. [Huawei MA5671A](/ont-huawei-ma5671a)), `omcid` log | `[omcid]` lines | | Sagemcom devices (e.g. the TIM [F@st 5684S](/router/sagemcom_fast_5684s)) | `:omci capture:` lines | | Cortina Access devices: merge the `pkt_rx` and `pkt_tx` logs into a single file, the packets are re-ordered automatically | ` debug: ` lines | -| Huawei (e.g. [OptiXstar S800E](/xgs/ont-huawei-optixstar-s800e), B450) | `OLT->ONT` / `ONT->OLT` blocks | +| Huawei devices | `OLT->ONT` / `ONT->OLT` blocks | | Realtek based chips (e.g. [Technicolor AFM0002TIM](/ont-technicolor-afm0002)): one OMCI message in hex per line | any other text log | The default version is the .NET one (native AOT), in the [`C#` branch](https://github.com/hack-gpon/omcilog2pcap/tree/C%23). Download the executable for your OS from the [releases](https://github.com/hack-gpon/omcilog2pcap/releases), or build it from `src/` with the .NET SDK. @@ -75,13 +76,23 @@ Restart Wireshark and open `omci-example.pcap` from the repository to check that The dissector is a fork of [0liv1er/omci-wireshark-dissector](https://github.com/0liv1er/omci-wireshark-dissector), originally published on Google Code. -## Semantic analysis +## omcipcap -To analyze large captures (failed provisioning, MIB snapshots, VLAN rules of ME 171, T-CONT/GEM topology) see [omcipcap](/omcipcap). +[omcipcap](https://github.com/RainbowCloudLabs/omcipcap) is an open-source GPON/XGS-PON OMCI semantic analysis framework for `.pcap` and `.pcapng` files. It complements packet-level inspection tools such as Wireshark by reconstructing protocol-level engineering information from OMCI traffic: + +- Detect OMCI provisioning failures and error responses +- Build and compare MIB snapshots +- Analyze Extended VLAN Tagging Operation Configuration Data (ME 171) +- Reconstruct T-CONT, GEM Port and Priority Queue relationships +- Generate OMCI topology information +- Produce structured JSON and Markdown output for automation and AI-assisted analysis +- Support vendor-specific Managed Entity definitions and semantic extensions + +It is available on [GitHub](https://github.com/RainbowCloudLabs/omcipcap) and [PyPI](https://pypi.org/project/omcipcap/). # Miscellaneous Links - [omcilog2pcap](https://github.com/hack-gpon/omcilog2pcap) - [OMCI Wireshark dissector](https://github.com/hack-gpon/omci-wireshark-dissector) -- [omcipcap](/omcipcap) +- [omcipcap](https://github.com/RainbowCloudLabs/omcipcap) - [GPON OMCI VLAN parser](/gpon-omci-vlan-parser) diff --git a/tools/omcipcap.md b/tools/omcipcap.md index be917b6f..4e1c7f0c 100644 --- a/tools/omcipcap.md +++ b/tools/omcipcap.md @@ -2,27 +2,6 @@ title: OMCI PCAP Analyzer has_children: false description: Tool for semantic analysis of GPON/XGS-PON OMCI PCAP files +redirect_to: /omci-wireshark#omcipcap +nav_exclude: true --- - -# omcipcap - -[omcipcap](https://github.com/RainbowCloudLabs/omcipcap) is an open-source GPON/XGS-PON OMCI semantic analysis framework for `.pcap` and `.pcapng` files. - -It complements packet-level inspection tools such as Wireshark by reconstructing protocol-level engineering information from OMCI traffic. - -Main features include: - -- Detect OMCI provisioning failures and error responses -- Build and compare MIB snapshots -- Analyze Extended VLAN Tagging Operation Configuration Data (ME 171) -- Reconstruct T-CONT, GEM Port and Priority Queue relationships -- Generate OMCI topology information -- Produce structured JSON and Markdown output for automation and AI-assisted analysis -- Support vendor-specific Managed Entity definitions and semantic extensions - -Project: - -- [GitHub](https://github.com/RainbowCloudLabs/omcipcap) -- [PyPI](https://pypi.org/project/omcipcap/) - -To capture the OMCI messages of an ONT and open them in Wireshark see [OMCI Wireshark and PCAP tools](/omci-wireshark). From fed92471f95dc11f69792195ae06dbc8426effb7 Mon Sep 17 00:00:00 2001 From: Simone Bortolin Date: Fri, 9 Oct 2026 22:50:30 +0200 Subject: [PATCH 7/7] List the Huawei S800E and B450 among the omcilog2pcap formats Co-Authored-By: Claude Opus 5.5 --- tools/omci-wireshark.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/omci-wireshark.md b/tools/omci-wireshark.md index c2df683f..122a1791 100644 --- a/tools/omci-wireshark.md +++ b/tools/omci-wireshark.md @@ -24,7 +24,7 @@ The workflow is: | Lantiq based chips (e.g. [Huawei MA5671A](/ont-huawei-ma5671a)), `omcid` log | `[omcid]` lines | | Sagemcom devices (e.g. the TIM [F@st 5684S](/router/sagemcom_fast_5684s)) | `:omci capture:` lines | | Cortina Access devices: merge the `pkt_rx` and `pkt_tx` logs into a single file, the packets are re-ordered automatically | ` debug: ` lines | -| Huawei devices | `OLT->ONT` / `ONT->OLT` blocks | +| Huawei devices (e.g. [OptiXstar S800E](/xgs/ont-huawei-optixstar-s800e), B450) | `OLT->ONT` / `ONT->OLT` blocks | | Realtek based chips (e.g. [Technicolor AFM0002TIM](/ont-technicolor-afm0002)): one OMCI message in hex per line | any other text log | The default version is the .NET one (native AOT), in the [`C#` branch](https://github.com/hack-gpon/omcilog2pcap/tree/C%23). Download the executable for your OS from the [releases](https://github.com/hack-gpon/omcilog2pcap/releases), or build it from `src/` with the .NET SDK.