Jan Kundrát 936b17c151 YANG: Network Topology
The topology model (`tip-photonic-topology`) uses `leafref`s for
"instantiating" actual nodes from models defined in the equipment
library. The topology is unidirectional.

At first, I used an ad-hoc, custom topology for simplicity. This was
changed in response to Jonas' comment; there's clearly no need to
reinvent this particular wheel. Now the model builds on top of RFC8345.

Both [`ietf-network-topology`](https://tools.ietf.org/html/rfc8345#section-4.2)
and the associated `ietf-network` are needed.  The augmentations make it
a bit harder to see the YANG rendering of the resulting modules, but
that's just how the IETF model was designed.  There's nothing to fix on
our side.

The `must` statements which ensure that a topology is well-connected
leaves much to be desired. I guess I just don't buy the reasoning about
`require-instance: false` given in the RFC. If you need to break
topology, use a datastore which is defined to have broken referential
integrity, e.g., `operational`. Oh well.

Unlike the previous JSON files, this puts the fiber data into `nt:link`.

This occurred to me when in Angers at the face-to-face meeting. I talked
with Esther about the way the
draft-ietf-ccamp-optical-impairment-topology-yang is structured.
Basically, they decided to stick the whole Optical Multiplex Section
(OMS) into a `te:link` instead of using topologies and layer adaptations
-- something which felt strange to me, given my software engineering
background and (especially) my lack of hands-on experience with building
and running of optical networks (it looks like CESNET's focus is quite
unusual after all). One of the reasons for not using a `nw:node` and
using an `nt:link` instead is that "there's no NETCONF end point to use
to talk to a fiber".

The situation is similar here; there's little point in using a
full-blown node when modeling something which just boils down to a link.
This doesn't mean that the GNPy code shall change -- it's just about
changing the representation in user-facing data, such as network
topologies.

This cuts quite a lot of boilerplate, so it's a good change, IMHO. On
the other hand, I wasn't really able to "optimize out" the extra `Fused`
nodes just yet.

Change-Id: I2208fa81e63df6e13cb502bd2c4b0cfbfdb0ed3b
2021-06-06 12:22:51 +02:00
2021-06-06 12:22:51 +02:00
2021-06-06 12:22:51 +02:00
2018-06-22 18:55:26 -04:00
2021-06-06 12:22:51 +02:00
2020-04-23 18:38:36 +02:00
2019-12-17 11:13:00 +01:00
2020-06-18 20:30:34 +02:00
2019-12-17 11:13:00 +01:00
2021-06-02 23:22:32 +02:00
2018-03-12 14:43:58 -04:00
2019-05-24 01:38:12 +02:00
2020-03-25 19:34:42 +01:00
2021-06-01 01:26:53 +02:00

GNPy: Optical Route Planning and DWDM Network Optimization

Install via pip Python versions Documentation status CI Gerrit Contributors Code Quality via LGTM.com Code Coverage via codecov DOI

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.

GNPy with an OLS system

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:

Running a simple simulation example

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.

Description
No description provided
Readme BSD-3-Clause 19 MiB
Latest
2025-09-26 10:01:21 +00:00
Languages
Python 100%