| Age | Commit message (Collapse) | Author | 
 | 
Signed-off-by: Z-Yivon <202100460108@mail.sdu.edn.cn>
 | 
 | 
If we have something like:
```
int eth1
 ip router openfabric x
 ipv6 router openfabric x
```
And eth1 is removed, the first `ip router ...` fails and only `ipv6 router ...`
is enabled.
If we leave only:
```
int eth1
 ipv6 router openfabric x
```
Then also, no interface is going to be enabled, which is weird too.
Fixes: https://github.com/FRRouting/frr/issues/17075
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
 | 
 | 
Done with a combination of regex'ing and banging my head against a wall.
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
 | 
 | 
We are passing around the system id using the variable name
of `argv`.  Let's name the variable correctly and pass it around
correctly named.
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
 | 
 | 
Rewrite the BFD integration code to use the new library.
Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
 | 
 | 
Currently we don't allow to configure the interface before the area is
configured. This approach has the following issues:
1. The area config can be deleted even when we have an interface config
   relying on it. The code is not ready for that - we'll have a whole
   bunch of stale pointers if user does that.
2. The code doesn't correctly process the event of changing the VRF for
   an interface. There is no mechanism to ensure that the area exists
   in the new VRF so currently the circuit still stays in the old VRF.
This commit allows an arbitrary order of area/interface configuration.
There is no more need to configure the area before configuring the
interface.
This change fixes both the issues.
Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
 | 
 | 
Should be just a couple non-development, non-test occurrences of this
function left now.
Signed-off-by: Quentin Young <qlyoung@qlyoung.net>
 | 
 | 
1. Created a structure "isis master".
2. All the changes are related to handle ISIS with different vrf.
3. A new variable added in structure "isis" to store the vrf name.
4. The display commands for isis is changed to support different VRFs.
Signed-off-by: Kaushik <kaushik@niralnetworks.com>
 | 
 | 
Add BFD profiles for IS-IS
 | 
 | 
Remove mid-string line breaks, cf. workflow doc:
  .. [#tool_style_conflicts] For example, lines over 80 characters are allowed
     for text strings to make it possible to search the code for them: please
     see `Linux kernel style (breaking long lines and strings)
     <https://www.kernel.org/doc/html/v4.10/process/coding-style.html#breaking-long-lines-and-strings>`_
     and `Issue #1794 <https://github.com/FRRouting/frr/issues/1794>`_.
Scripted commit, idempotent to running:
```
python3 tools/stringmangle.py --unwrap `git ls-files | egrep '\.[ch]$'`
```
Signed-off-by: David Lamparter <equinox@diac24.net>
 | 
 | 
BFD profiles can now be used on the interface level like this:
	interface eth1
	  ip router isis 1
          isis bfd
          isis bfd profile default
Here the 'default' profile needs to be specified as usual in the
bfdd configuration.
Signed-off-by: GalaxyGorilla <sascha@netdef.org>
 | 
 | 
Add a common api that formats a time interval into a string
with different output for short and longer intervals. We do
this in several places, for cli/ui output.
Signed-off-by: Mark Stapp <mjs@voltanet.io>
 | 
 | 
Stop using gmtime() or localtime() everywhere.
Signed-off-by: Mark Stapp <mjs@voltanet.io>
 | 
 | 
The `isisd` will receive a northbound version of the BFD command, so
this is the first step to implement it.
Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
 | 
 | 
There is no need to redefine `struct isis_lsp *lsp` inside of the
if condition. Let's just remove it.
Signed-off-by: Christian Franke <chris@opensourcerouting.org>
 | 
 | 
This is necessary to avoid a name collision with std::for_each
from C++.
Fixes the compilation of the gRPC northbound module.
Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
 | 
 | 
Historically, isisd has been carrying around its own red-black tree to
manage its LSP DB in.  This replaces that with the newly-added
DECLARE_RBTREE_*.  This allows completely removing the dict_* code.
Signed-off-by: David Lamparter <equinox@diac24.net>
 | 
 | 
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
 | 
 | 
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
 | 
 | 
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
 | 
 | 
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
 | 
 | 
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
 | 
 | 
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
 | 
 | 
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
 | 
 | 
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
 | 
 | 
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
 | 
 | 
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
 | 
 | 
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
 | 
 | 
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
 | 
 | 
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
 | 
 | 
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
 | 
 | 
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
 | 
 | 
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
 | 
 | 
This is a simple command but with a complex callback, the only
one in isisd which uses the resource allocation API implemented
in the northbound (i.e. the PREPARE phase).
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
 | 
 | 
These are complex commands to retrofit, partly due to the number of
different callbacks they touch. Additionally, in FRR adding
an interface to an IS-IS area that does not exist also creates that
area. To make sure that this behavior is kept, while at the same
time keeping the northbound api consistent, we need to take extra
care to call the appropriate callbacks to update the YANG tree.
Note that many callbacks rely on the existence of the corresponding
IS-IS area; when these callbacks are joined together in a single
transaction, we need to ensure that the area creation is performed
first, or the config will fail. For this reason, the isis instance
create callback has been given a slightly lower priority than the
others.
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
 | 
 | 
 | 
 | 
Signed-off-by: Christian Franke <chris@opensourcerouting.org>
 | 
 | 
Also track when we received an LSP as do not reflood, as well as the
time when we last considered flooding it.
Signed-off-by: Christian Franke <chris@opensourcerouting.org>
 | 
 | 
Add a command to show to what neighbors an LSP has been flooded.
Signed-off-by: Christian Franke <chris@opensourcerouting.org>
 | 
 | 
Show from where LSP flooding is triggered.
Signed-off-by: Christian Franke <chris@opensourcerouting.org>
 | 
 | 
Add a command `debug openfabric flooding` to allow verification of
correct operation of the OpenFabric flooding optimization algorithm.
Signed-off-by: Christian Franke <chris@opensourcerouting.org>
 | 
 | 
While OpenFabric calculates most tier numbers automatically by the
fabric locality calculation algorithm, that algorithm requires two
systems to be manually configured as tier 0, so it has reference points.
Also, completely manual configuration is possible.
To support this, introduce appropriate CLI commands and flood the
configured information.
Signed-off-by: Christian Franke <chris@opensourcerouting.org>
 | 
 | 
Remove isis_vty.c and create three new files isis_vty_common.c,
isis_vty_fabricd.c and isis_vty_isisd.c which are built into both
daemons, only fabricd and only isisd, respectively.
Signed-off-by: Christian Franke <chris@opensourcerouting.org>
 |