From a47d18e9bf80f1849ec4f54719897def947b0437 Mon Sep 17 00:00:00 2001 From: Ivan Pepelnjak Date: Sun, 4 Feb 2024 08:28:37 +0100 Subject: [PATCH] Release 1.8.0-dev1 --- docs/defaults.md | 1 + docs/module/bgp.md | 5 ++++- docs/module/ospf.md | 1 + docs/release/1.8.md | 24 +++++++++++++++++------- docs/topology/validate.md | 2 ++ netsim/__init__.py | 2 +- 6 files changed, 26 insertions(+), 9 deletions(-) diff --git a/docs/defaults.md b/docs/defaults.md index 1da7faec4..dfc7a1a54 100644 --- a/docs/defaults.md +++ b/docs/defaults.md @@ -1,3 +1,4 @@ +(defaults)= # Topology Defaults *netlab* has dozens of system defaults that specify: diff --git a/docs/module/bgp.md b/docs/module/bgp.md index c1bfe12ea..50eb1f8b5 100644 --- a/docs/module/bgp.md +++ b/docs/module/bgp.md @@ -1,3 +1,4 @@ +(module-bgp)= # BGP Configuration Module This configuration module configures the BGP routing process and BGP neighbors on most [supported platforms](platform-routing-support). The configuration module sets up BGP sessions according to these simple design rules: @@ -49,6 +50,7 @@ Even more BGP features are implemented in the following plugins: * [ebgp.multihop](../plugins/ebgp.multihop.md): implements multihop EBGP sessions. * [bgp.domain](../plugins/bgp.domain.md): allows you to build topologies that reuse the same BGP ASN in different network parts. +(bgp-platform)= ## Platform Support _netlab_ supports most BGP features on [all platforms supporting BGP configuration module](platform-routing-support) (see [platform support table](platform-routing-support) for device-specific caveats). @@ -133,7 +135,7 @@ Instead of using a global list of autonomous systems, you could specify a BGP au Additional per-node BGP configuration parameters include: * **bgp.advertise_loopback** -- when set to `False`, the IP prefixes configured on loopback interfaces are not advertised in BGP. See also [*Advanced Global Configuration Parameters*](#advanced-global-configuration-parameters). -* **bgp.community** -- override global BGP community propagation defaults for this node. See *[BGP Community Propagation](#bgp-communities-propagation)* for more details. +* **bgp.community** -- override global BGP community propagation defaults for this node. See *[](bgp-community-propagation)* for more details. * **bgp.local_as** -- the autonomous system used on all EBGP sessions. * **bgp.next_hop_self** -- use *next-hop-self* on IBGP sessions. This parameter can also be specified as a global value; the system default is **true**. * **bgp.originate** -- a list of additional prefixes to advertise. The advertised prefixes are supported with a static route pointing to *Null0*. @@ -298,6 +300,7 @@ The BGP transformation module can set link *role* on links used for EBGP session **Consequence:** The default settings exclude links with EBGP sessions from IGP processes. See the [Simple BGP Example](bgp_example/simple.md) for more details. +(bgp-community-propagation)= ## BGP Communities Propagation The propagation of BGP communities over IBGP and EBGP sessions is controlled with global- or node-level **bgp.community** attribute. diff --git a/docs/module/ospf.md b/docs/module/ospf.md index 61af529da..f1d92a5d8 100644 --- a/docs/module/ospf.md +++ b/docs/module/ospf.md @@ -1,3 +1,4 @@ +(module-ospf)= # OSPF Configuration Module This configuration module configures OSPFv2 and OSPFv3 routing processes on most supported platforms (see [supported features](#supported-features) and [platform support](#platform-support)). diff --git a/docs/release/1.8.md b/docs/release/1.8.md index c0e9bba28..08152f10c 100644 --- a/docs/release/1.8.md +++ b/docs/release/1.8.md @@ -11,22 +11,29 @@ (release-1.8.0)= ### Release 1.8.0 -* Support for control-plane- and network services daemons running in Linux containers. -* IBGP sessions to routing daemons running on Linux VMs or containers can be established with external-facing IP addresses. -* Set _netlab_ defaults from the environment variables -* Build Docker containers with the **netlab clab build** command +* Support for control plane and network services daemons running in Linux containers. +* Support 4-octet BGP AS numbers, including [large BGP communities](bgp-community-propagation). +* [Validation plugins](validate-plugin) allow you to write more powerful validation tests without creating complex Jinja2 templates +* [IBGP sessions](bgp-ibgp-sessions) to routing daemons running on Linux VMs or containers can be established with external-facing IP addresses. +* Set [_netlab_ defaults](defaults) from the [environment variables](defaults-env) +* Build Docker containers with the **[netlab clab build](netlab-clab-build)** command +* Template search paths and filenames are no longer hardcoded. Most can be configured in [system defaults](defaults) using **defaults.paths** dictionary. **New devices and daemons:** -* BIRD Internet Routing Daemon with OSPF and BGP support +* BIRD Internet Routing Daemon with [OSPF](ospf-platform) and [BGP](bgp-platform) support, including [minimal **bgp.session** support](bgp-session-platforms). + +**New device features:** + +* FRR can use the **neighbor local-as** command to create a fake IBGP session. **Minor improvements:** -* Node- and group data can include any parameter starting with `ansible_` or `netlab_`, making it easier to override Ansible variables for individual nodes. +* Node- and group data can include any parameter starting with `ansible_` or `netlab_`, making overriding Ansible variables for individual nodes easier. **Integration tests:** -Release 1.8.0 includes improved BGP integration tests with automated validation. +Release 1.8.0 includes improved BGP, OSPFv2, and OSPFv3 integration tests with automated validation. ## Breaking changes @@ -39,6 +46,9 @@ Release 1.8.0 includes improved BGP integration tests with automated validation. ### Bug Fixes in Release 1.8.0 +* `netlab initial` could not configure the module(s) specified in the `--module` parameter +* Consider the lab topology directory and current directory when searching for configuration templates. + ## Documentation Fixes ### Documentation Fixes in Release 1.8.0 diff --git a/docs/topology/validate.md b/docs/topology/validate.md index 05376d1db..700522776 100644 --- a/docs/topology/validate.md +++ b/docs/topology/validate.md @@ -1,3 +1,4 @@ +(validate)= # Lab Validation Tests Lab topology can include a series of automated tests. Once the lab runs, you can execute those tests with the **[netlab validate](../netlab/validate.md)** command. The tests can be used in any automated validation process, from checking self-paced training solutions to integration tests and CI/CD pipelines. @@ -9,6 +10,7 @@ Lab topology can include a series of automated tests. Once the lab runs, you can :backlinks: none ``` +(validate-tests)= ## Specifying Validation Tests The **validate** topology element is a dictionary of tests that are executed in the order in which they're specified in the lab topology. diff --git a/netsim/__init__.py b/netsim/__init__.py index d09c18e65..537116ea1 100755 --- a/netsim/__init__.py +++ b/netsim/__init__.py @@ -2,7 +2,7 @@ import sys -__version__ = "1.7.2" +__version__ = "1.8.0-dev1" try: import box