Commit Graph

26797 Commits

Author SHA1 Message Date
Donatas Abraitis
e92739870d bgpd: Use BGP_STR for CLI definitions everywhere for BGP CLI
Just have some cleanup.

Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
2021-08-24 17:38:39 +03:00
Russ White
701bb4c692
Merge pull request #9310 from mobash-rasool/ospfv2-bug-fixes-02
ospfd: NSSA area should not exchange Type-4 LSAs in DD
2021-08-24 09:40:59 -04:00
Russ White
d147c287db
Merge pull request #8729 from gpnaveen/ospf_route_maps
tests: ospf routemap basic test cases 2.
2021-08-24 09:13:57 -04:00
Prerana GB
5874235fb9 doc: Updating the BGP document with BGP fast convergence CLI
Signed-off-by: Prerana G.B <prerana@vmware.com>
2021-08-24 12:23:41 +00:00
Prerana GB
57ea19204c topotests: Topotest changes for new bgp fast convergence knob
Signed-off-by: Kuldeep Kashyap <kashyapk@vmware.com>
2021-08-24 12:23:41 +00:00
Prerana-GB
f852eb9833 bgpd: BGP knob to teardown session immediately when peer is unreachable
When BGP is notified by RIB that peer address is unreachable then BGP session must be brought
down immediately and not wait for the hold-timer expiry. Today single-hop EBGP already behaves
this way but need to change for iBGP and multi-hop EBGP sessions.

Signed-off-by: Prerana G.B <prerana@vmware.com>, Pushpasis Sarkar <spushpasis@vmware.com>
2021-08-24 12:23:38 +00:00
Igor Ryzhov
552deede0e
Merge pull request #9460 from LabNConsulting/chopps/fix-ospf-config
tests: fix ospf json config confusion
2021-08-24 14:08:02 +03:00
Donatas Abraitis
12c9c4133d
Merge pull request #9462 from idryzhov/snapcraft-proto
snapcraft: add missing dependency
2021-08-24 12:35:17 +03:00
Sai Gomathi
fcf5d4386a pimd: IGMP groups are not getting timeout
Problem :
=======
When all the groups from Ixia are stopped,
groups still keep refreshing and not getting timeout

RCA:
====
IGMP Report is coming in include mode without any source address, this problem will come.

Fix :
===
If the requested filter mode is INCLUDE *and* the requested
source list is empty, then the entry corresponding to the
requested interface and multicast address is deleted if present.
If no such entry is present, the request is ignored.

When an interface receives the IGMP report without any source, then the group is deleted.

Signed-off-by: Sai Gomathi <nsaigomathi@vmware.com>
2021-08-23 22:25:30 -07:00
nguggarigoud
cc90defcb6 tests: ospf gr helper topotests with scapy.
Testing ospf gr helper using scapy tool.

Signed-off-by: nguggarigoud <nguggarigoud@vmware.com>
2021-08-23 21:42:09 -07:00
Renato Westphal
b3eebd46d9
Merge pull request #9464 from idryzhov/ospfv3-debug-doc
doc: merge duplicated ospf6d debugging sections
2021-08-24 01:02:45 -03:00
Renato Westphal
6df89791ba ospf6d: remove incorrect debug guard
Also, update the ospf6_topo2 topotest since the expected output
was wrong. With this fix, NSSA routes will be created on r2
("redistribute connected"), and NSSA routes appear in the routing
table as regular external routes.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
2021-08-24 00:39:56 -03:00
Renato Westphal
dd551b9d1f ospf6d: flush external LSAs when NSSA is configured
Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
2021-08-24 00:24:41 -03:00
Renato Westphal
ccfffce4a0 ospf6d: fix flushing of all LSAs when NSSA is unconfigured
Once NSSA is unconfigured on an area, all self-originated Type-7
LSAs need to be flushed. The existing code was iterating over the
LSDB in the wrong way, causing ospf6_nssa_flush_area() to flush
LSAs of all types.  Use the ALL_LSDB_TYPED_ADVRTR macro to perform
the intended iteration correctly.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
2021-08-24 00:24:41 -03:00
Renato Westphal
bb257321b2 ospf6d: don't delete area when NSSA is unconfigured
Once NSSA is unconfigured, the OSPF area should still be operational
as a normal area instead of being deleted.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
2021-08-24 00:24:41 -03:00
Renato Westphal
d36a6a19d9 ospf6d: always unset the E-bit on NSSA ABRs
RFC 3101 - Section 2.1 says:
"(..) Interfaces associated with an NSSA will not send or receive
Type-5 LSAs on that interface but may send and receive Type-7 LSAs.
Therefore, if the N-bit is set in the options field, the E-bit must
be clear."

If the E-bit isn't cleared on an NSSA ABR, that will cause hello
packets to be dropped (due to parameters mismatch), which will
prevent the ABR from forming adjacencies with others routers in
the NSSA area.

This problem didn't affect the existing NSSA topotest by chance
of luck.  In that topotest, in the NSSA ABR, the NSSA area is
configured before any interface is associated to it. That caused
ospf6_check_and_set_router_abr() to return false, leading to
the unsetting of the E-bit. With this fix, the order in which
areas/interfaces are configured shouldn't matter because the E-bit
will always be unset on NSSA areas.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
2021-08-24 00:24:41 -03:00
Christian Hopps
e83c0fb125 tests: use correct key for deleting entry.
OSPF mixes uses of "delete" and "del_action" depending on which library
function is called. It's a bug-prone mess that needs fixing; however, for
now we fix the one obvious incorrect use in this test.

Signed-off-by: Christian Hopps <chopps@labn.net>
2021-08-23 21:42:20 -04:00
nguggarigoud
d43837e6be tests: ospf routemap basic test cases 2.
Signed-off-by: nguggarigoud <nguggarigoud@vmware.com>
2021-08-23 17:34:33 -07:00
nguggarigoud
9e3bab5f1a tests: adding 11 bgp v4 over v6 test cases.
Signed-off-by: nguggarigoud <nguggarigoud@vmware.com>
2021-08-23 17:20:24 -07:00
Igor Ryzhov
37cb0475e1 lib, zebra: move vrf netns commands from lib to zebra
"[no] netns NAME" commands are part of the lib, but they are actually
zebra-only:
- they are using vrf_netns_handler_create and its description clearly
  says that it "should be called from zebra only"
- vtysh sends these commands only to zebra
- only zebra outputs the netns related config
- zebra notifies other daemons about netns attachment

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2021-08-23 23:54:12 +03:00
Igor Ryzhov
07679ad98a *: explicitly print "exit" at the end of every node config
There is a possibility that the same line can be matched as a command in
some node and its parent node. In this case, when reading the config,
this line is always executed as a command of the child node.

For example, with the following config:
```
router ospf
 network 193.168.0.0/16 area 0
!
mpls ldp
 discovery hello interval 111
!
```
Line `mpls ldp` is processed as command `mpls ldp-sync` inside the
`router ospf` node. This leads to a complete loss of `mpls ldp` node
configuration.

To eliminate this issue and all possible similar issues, let's print an
explicit "exit" at the end of every node config.

This commit also changes indentation for a couple of existing exit
commands so that all existing commands are on the same level as their
corresponding node-entering commands.

Fixes #9206.

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2021-08-23 22:08:20 +03:00
Igor Ryzhov
ac9103aadc pathd: rework config printing code
Instead of setting a config_write callback for each node, set a single
callback and print all config from there. It is necessary for the
following work on explicit "exit" command in every node.

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2021-08-23 22:08:20 +03:00
Igor Ryzhov
fc43980f25 tools: significantly simplify frr-reload context processing
Currently, in frr-reload we:
- store a list of single-line context keywords which needs to be
  frequently updated,
- have a separate "if" clause for every node and subnode we have in FRR.

Instead, we can store the tree of all known FRR nodes. This tree needs
to be updated whenever we add a new node, which is not frequent. And,
most importantly, it allows us to write node-agnostic code and save more
than 250 LOC.

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2021-08-23 22:08:20 +03:00
Igor Ryzhov
724739e5c9 doc: merge duplicated ospf6d debugging sections
Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2021-08-23 21:23:32 +03:00
Igor Ryzhov
6b73885556
Merge pull request #9446 from mobash-rasool/ospfv3-bug-fixes
ospf6d: External LSAs reoriginates on every redistribute CLI
2021-08-23 19:00:23 +03:00
Stephen Worley
95b4a691dd
Merge pull request #9337 from dlqs/lua2
lib: check return on str2sockunion
2021-08-23 08:20:33 -06:00
Mark Stapp
b87c5f4dd1
Merge pull request #9434 from anlancs/fix-zebra-mpls-cmd
zebra: fix wrong check of mpls command
2021-08-23 09:02:15 -04:00
Igor Ryzhov
d889f6f9dd snapcraft: add missing dependency
Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2021-08-23 15:08:05 +03:00
Mobashshera Rasool
058c4c783f ospf6d: External LSAs reoriginates on every redistribute CLI
Problem Statement:
==================
Everytime redistribute CLI is executed, external LSAs are
re-originated. When there is no change in the CLI parameters
the LSAs should not get re-originated.

Fix:
=================
Check if the CLI params are same, do not re-originate the LSA.

Fixes: #9445

Signed-off-by: Mobashshera Rasool <mrasool@vmware.com>
2021-08-23 04:47:10 -07:00
Igor Ryzhov
cc86d66028
Merge pull request #9436 from anlancs/fix-vtysh-bfd-exit
vtysh: add "exit" for bfd's profile node
2021-08-23 14:30:13 +03:00
Igor Ryzhov
20c3ffbef1
Merge pull request #9456 from proelbtn/fix-running-config
fix some SRv6 configuration isn't saved correctly
2021-08-23 14:24:03 +03:00
Donatas Abraitis
e71f76f4fb
Merge pull request #9426 from pguibert6WIND/evpn_igp_metric
bgpd: imported evpn rt5 routes copy igpmetric
2021-08-22 21:45:11 +03:00
David Lamparter
4f2ac850af
Merge pull request #9455 from LabNConsulting/chopps/fix-zebtest-fixed-sleep
tests: use std polling for results in zebra_rib test
2021-08-22 20:35:29 +02:00
anlan_cs
37692712a5 ospf6d: fix lock leak of using ALL_LSDB in GR helper
The lsa and lsanext must be unlocked if break out of ALL_LSDB loop.

Incidentally correct the comment of ALL_LSDB.

Signed-off-by: anlan_cs <anlan_cs@tom.com>
2021-08-22 05:26:20 -04:00
anlan_cs
4d97dde2d1 ospf6d: suppress coverity warning of return value
Fix #CID 1506511

Signed-off-by: anlan_cs <anlan_cs@tom.com>
2021-08-21 22:04:12 -04:00
Igor Ryzhov
b52cc03cab
Merge pull request #9441 from wesleycoakley/staticd-warn-nonexistent-route
staticd: warn on attempted delete of non-existent route
2021-08-21 23:11:29 +03:00
Christian Hopps
b604f58641 tests: use std polling for results in zebra_rib test
In particular, the fixed 2 second sleep here was not long enough.
Switch to standard run_and_expect polling to make test more robust.

Signed-off-by: Christian Hopps <chopps@labn.net>
2021-08-21 13:44:48 -04:00
Donald Sharp
3c9fb01d26
Merge pull request #9453 from LabNConsulting/chopps/fix-netns-vrfs
tests: uniq vrf names when using netns
2021-08-21 12:24:42 -04:00
Christian Hopps
6a95bfc8b0 tests: uniq vrf names when using netns
- In order to run tests in parallel the netns-based vrfs need to
have unique names primarily bc they are all tracked/looked-up in
`/run/netns` which is not network namespace nesting friendly

- use ip(8) exclusively rather than a mix of `ip` and `ifconfig`
and `vconfig`, reducing required pkg count by a couple.

Signed-off-by: Christian Hopps <chopps@labn.net>
2021-08-21 06:13:52 -04:00
Donald Sharp
fc69721913
Merge pull request #9450 from LabNConsulting/chopps/fix-bgp-gr-test
tests: fix broken bgp GR test (non-deterministic)
2021-08-20 16:18:19 -04:00
Martin Winter
6ca120470d
tests: Change bgp_multiview_topo1 to json output
Signed-off-by: Martin Winter <mwinter@opensourcerouting.org>
2021-08-20 18:26:40 +02:00
Christian Hopps
8d2e57fe28 tests: fix broken bgp GR test (non-deterministic)
- bugs in the support library function `verify_gr_address_family`
allowed this test to pass depending on ordering of python dictinoary
keys. Fix the bugs, fix the test.

Signed-off-by: Christian Hopps <chopps@labn.net>
2021-08-20 08:24:23 -04:00
Ryoga Saito
2dc1fa1322 tests: update bgp_prefix_sid2
exabgp's config in bgp_prefix_sid2 is also missing header, so added

Signed-off-by: Ryoga Saito <contact@proelbtn.com>
2021-08-20 09:01:27 +00:00
Renato Westphal
1dbb9e7660
Merge pull request #9447 from donaldsharp/ipset_entry_notify
zebra: Fix usage to enum in notify functions
2021-08-19 23:58:39 -03:00
Renato Westphal
f70b917249
Merge pull request #8935 from rgirada/ospfv3_gr_helper
ospf6d: Support for ospfv3  graceful restart  helper functionality
2021-08-19 15:01:34 -03:00
Mark Stapp
8fd5502b0c lib: avoid double-free in zmq wrapper callbacks
There were paths where the zmq wrapper lib could call user
callbacks that would free the internal context struct, but the
context was then used in the lib code. Use a boolean to avoid
freeing the context within an application callback.

Restore logic that frees the context within the 'cancel' api.

Signed-off-by: Mark Stapp <mjs.ietf@gmail.com>
2021-08-19 13:31:33 -04:00
Mark Stapp
cf2182c013 lib: clear caller's pointer when freeing context struct
The zeromq lib wrapper uses an internal context struct to help
interact with the libfrr event mechanism. When freeing that
context struct, ensure the caller's pointer is also cleared.

Signed-off-by: Mark Stapp <mjs.ietf@gmail.com>
2021-08-19 13:31:33 -04:00
Donald Sharp
33c0851873 zebra: Fix usage to enum in notify functions
For some reason commit #ef524230a6baa decided
to remove enums and switch to uint16_t.  Which
is not the right thing to do.  Put it back

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2021-08-19 11:31:05 -04:00
Donald Sharp
2cb694ba13
Merge pull request #9218 from LabNConsulting/chopps/pim-timers
Improve pim timers
2021-08-19 07:35:45 -04:00
Ryoga Saito
53970de3c2 bpgd: add missing sid setting in address-family
current bgpd doesn't write sid setting, resulting to fail to save
configuration correctly.

Signed-off-by: Ryoga Saito <contact@proelbtn.com>
2021-08-19 05:59:32 +00:00