Repository navigation
How this project works
When the road in front of you is blocked, or the work turns hard, take an hour off and do something completely different. The answer shows up on its own.
It is not a technique, and it does not fit in a table. But nearly two years of this project had their share of dead ends - nineteen against one fault alone - and this is the rule I hold to whenever one appears.
Five more came out of the work itself, each learned by paying for the alternative. They are in the road, with what each one cost.
- Read the vendor's own sources before probing the hardware. The adapters of chapter 4 taught it first; the port tags of chapter 9 taught it again.
- Write down what did not work, with the measurement. Nineteen negatives against the XGS 3300's last hop meant nineteen things nobody tried twice.
- Withdraw a claim in the same place it was made. Struck through, with what replaced it beside it, never deleted - a log that quietly edits itself is not a log.
- A number that has not been taken is not a number nobody needs. A row of the progress table read 0% for months; measuring it took an afternoon.
- Ask what a measurement cannot see. For a week every datapath figure was a transmit figure, while the receive path was broken badly enough that no download ever finished.
- Every measurement is photographed - the run, in its console window, the moment it finishes - and published with how it was taken, on a page of its own. A figure on a badge links to that page.
- Only what was tested is claimed, and the claim names the build it was tested with.
- Nothing private reaches the repository: no addresses, hardware addresses or serial numbers. A check fails any change that carries one in text; photographs are blurred by hand.
- Facts are transcribed, expression is not copied - the boundary with the vendors' material, stated in docs/provenance.md.
- A problem becomes an issue, and the issue carries what was learned from it.
- Every page is dated with its last review, and a monthly check lists the ones that are due (docs/INDEX.md).
- A changelog worth reading: every change sorted as a fix, an improvement or documentation, and a release made when a fix is ready or when improvements have gathered - never for every merge (chapter 11).
Copyright © 2026 Abdelmonem Awad · os-xgs-npu, BSD-2-Clause · OPNsense® is a registered trademark of Deciso B.V.; Sophos® and XGS are trademarks of Sophos Ltd. This project is independent of both.
Before the repository
- Two computers in one box
- The XGS 136 arrives
- Eight months of looking
- The first XGS 3300
- Reverse engineering
- A firmware of its own
- The host and the coprocessor
In the repository
- Fourteen ports on the XGS 136
- The XGS 3300 and the last hop
- From ports to offload
- An appliance again
Using it
Also
The repositories