GNPy's in-memory representation is closely modeled on the legacy JSON files. Everything is a node, and the edges hold no data. In our YANG models this is different, and all Fiber instances are stored as links. Originally I wanted to be smart with Fused nodes and automatically remove them "when they are not needed". In legacy JSON, the `Fused` thingy was sometimes placed as a magic clue to signify that no EDFA can be put on that particular place. This is not needed in YANG, so I wanted to remove these extra Fused nodes, but boy, was it a deep hole to dig myself in. FIXME: EDFAs are still placed even though the docs say otherwise! Change-Id: I27bd9414e8237d94b980a200ce9f9792602b5430
GNPy: Optical Route Planning and DWDM Network Optimization
GNPy is an open-source, community-developed library for building route planning and optimization tools in real-world mesh optical networks. We are a consortium of operators, vendors, and academic researchers sponsored via the Telecom Infra Project's OOPT/PSE working group. Together, we are building this tool for rapid development of production-grade route planning tools which is easily extensible to include custom network elements and performant to the scale of real-world mesh optical networks.
Quick Start
Install either via Docker, or as a Python package. Read our documentation, learn from the demos, and get in touch with us.
This example demonstrates how GNPy can be used to check the expected SNR at the end of the line by varying the channel input power:
GNPy can do much more, including acting as a Path Computation Engine, tracking bandwidth requests, or advising the SDN controller about a best possible path through a large DWDM network. Learn more about this in the documentation.
