]> git.puffer.fish Git - mirror/frr.git/log
mirror/frr.git
4 years agopbrd: Ensure rule is installed on interface up 7093/head
Donald Sharp [Fri, 11 Sep 2020 17:05:55 +0000 (13:05 -0400)]
pbrd: Ensure rule is installed on interface up

If we are experiencing an interface that is bouncing
very fast and the last operation that we experienced
was a ifdown we will send rule deletions associated
with that interface.  If we have not received notification
that hte rule was removed *but* we immiedately get another
ifup notification when we go to install the rule we
are deciding that it's not ready to send down again,
as that we still think it is installed.

Force the rule installation when we have a interface up
event.

Ticket: CM-31042
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
4 years agobgpd, lib, pbrd, zebra: Pass by ifname
Donald Sharp [Thu, 10 Sep 2020 15:31:39 +0000 (11:31 -0400)]
bgpd, lib, pbrd, zebra: Pass by ifname

When installing rules pass by the interface name across
zapi.

This is being changed because we have a situation where
if you quickly create/destroy ephermeal interfaces under
linux the upper level protocol may be trying to add
a rule for a interface that does not quite exist
at the moment.  Since ip rules actually want the
interface name ( to handle just this sort of situation )
convert over to passing the interface name and storing
it and using it in zebra.

Ticket: CM-31042
Signed-off-by: Stephen Worley <sworley@nvidia.com>
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
4 years agoMerge pull request #6974 from liron-ze/high-cpu-usage
Renato Westphal [Fri, 11 Sep 2020 18:59:27 +0000 (15:59 -0300)]
Merge pull request #6974 from liron-ze/high-cpu-usage

zebra: Solve the problem of high CPU and memory usage when creating t…

4 years agoMerge pull request #6789 from volta-networks/feat_ldp_igp_sync
Renato Westphal [Fri, 11 Sep 2020 18:55:04 +0000 (15:55 -0300)]
Merge pull request #6789 from volta-networks/feat_ldp_igp_sync

ldpd: Add support for LDP-IGP Synchronization

4 years agoMerge pull request #7075 from donaldsharp/snap_fix
Martin Winter [Fri, 11 Sep 2020 13:40:00 +0000 (15:40 +0200)]
Merge pull request #7075 from donaldsharp/snap_fix

snapcraft: Update libyang version

4 years agoMerge pull request #7085 from donaldsharp/nhrpd-leafref-workaround
Rafael Zalamena [Fri, 11 Sep 2020 13:37:53 +0000 (10:37 -0300)]
Merge pull request #7085 from donaldsharp/nhrpd-leafref-workaround

nhrpd: add frr-vrf to the list of implemented yang modules

4 years agonhrpd: add frr-vrf to the list of implemented yang modules 7085/head
Donald Sharp [Fri, 11 Sep 2020 12:51:05 +0000 (08:51 -0400)]
nhrpd: add frr-vrf to the list of implemented yang modules

PR #6376 introduced a VRF leafref in the frr-interface YANG module.
That change exposed a bug in the northbound layer that is causing
nhrpd to crash under certain circumstances. Even though nhrpd wasn't
converted to the new northbound model yet, make it implement the
frr-vrf module in order to work around this problem. This is a
temporary fix until a better solution is available.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
4 years agoMerge pull request #7078 from sworleys/RPM-Doc-Blurb
Jafar Al-Gharaibeh [Fri, 11 Sep 2020 05:27:50 +0000 (00:27 -0500)]
Merge pull request #7078 from sworleys/RPM-Doc-Blurb

doc: add blurb for rpm package server in overview

4 years agodoc: add blurb for rpm package server in overview 7078/head
Stephen Worley [Thu, 10 Sep 2020 21:16:11 +0000 (17:16 -0400)]
doc: add blurb for rpm package server in overview

Add a blurb about the rpm package server in the overview page
so its easier to know where it is. Should be with the debian
one anyway.

Signed-off-by: Stephen Worley <sworley@cumulusnetworks.com>
4 years agosnapcraft: Update libyang version 7075/head
Donald Sharp [Thu, 10 Sep 2020 11:48:53 +0000 (07:48 -0400)]
snapcraft: Update libyang version

Update the snapcraft build of libyang to the version we
actually want to be using v1.0.184

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
4 years agoMerge pull request #6827 from maduri111/bgpd-show-bgp-all
Donatas Abraitis [Thu, 10 Sep 2020 12:11:14 +0000 (15:11 +0300)]
Merge pull request #6827 from maduri111/bgpd-show-bgp-all

bgpd: show <ip> bgp <ipv4/ipv6> all

4 years agoMerge pull request #7064 from donaldsharp/bgp_timings_faster
Donatas Abraitis [Thu, 10 Sep 2020 12:10:11 +0000 (15:10 +0300)]
Merge pull request #7064 from donaldsharp/bgp_timings_faster

tests: Modify bgpd.conf to have faster keepalive/hold timers

4 years agoMerge pull request #7070 from opensourcerouting/pbrd-leafref-workaround
Donald Sharp [Thu, 10 Sep 2020 02:10:00 +0000 (22:10 -0400)]
Merge pull request #7070 from opensourcerouting/pbrd-leafref-workaround

pbrd: add frr-vrf to the list of implemented yang modules

4 years agopbrd: add frr-vrf to the list of implemented yang modules 7070/head
Renato Westphal [Thu, 10 Sep 2020 01:31:59 +0000 (22:31 -0300)]
pbrd: add frr-vrf to the list of implemented yang modules

PR #6376 introduced a VRF leafref in the frr-interface YANG module.
That change exposed a bug in the northbound layer that is causing
pbrd to crash under certain circumstances. Even though pbrd wasn't
converted to the new northbound model yet, make it implement the
frr-vrf module in order to work around this problem. This is a
temporary fix until a better solution is available.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
4 years agoisisd: ldp-igp-sync feature: adding isis support 6789/head
lynne [Wed, 22 Jul 2020 18:32:35 +0000 (14:32 -0400)]
isisd: ldp-igp-sync feature: adding isis support

Signed-off-by: Lynne Morrison <lynne@voltanet.io>
Signed-off-by: Karen Schoener <karen@voltanet.io>
4 years agoospfd: ldp-igp-sync feature: adding ospf support
lynne [Wed, 22 Jul 2020 17:31:14 +0000 (13:31 -0400)]
ospfd: ldp-igp-sync feature: adding ospf support

Signed-off-by: Lynne Morrison <lynne@voltanet.io>
Signed-off-by: Karen Schoener <karen@voltanet.io>
4 years agolib: adding support for LDP IGP Sync feature
Karen Schoener [Wed, 22 Jul 2020 16:41:57 +0000 (12:41 -0400)]
lib: adding support for LDP IGP Sync feature

Signed-off-by: Lynne Morrison <lynne@voltanet.io>
Signed-off-by: Karen Schoener <karen@voltanet.io>
4 years agoldpd: adding topotests for the LDP IGP Sync feature
Karen Schoener [Wed, 22 Jul 2020 16:18:29 +0000 (12:18 -0400)]
ldpd: adding topotests for the LDP IGP Sync feature

Signed-off-by: Lynne Morrison <lynne@voltanet.io>
Signed-off-by: Karen Schoener <karen@voltanet.io>
4 years agoldpd: Adding support for LDP IGP Synchronization
Karen Schoener [Wed, 22 Jul 2020 16:10:59 +0000 (12:10 -0400)]
ldpd: Adding support for LDP IGP Synchronization

Signed-off-by: Lynne Morrison <lynne@voltanet.io>
Signed-off-by: Karen Schoener <karen@voltanet.io>
4 years ago*: Update version string frr-7.6-dev
Donald Sharp [Wed, 9 Sep 2020 14:10:54 +0000 (10:10 -0400)]
*: Update version string

Update the version string to reflect work towards next release

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
4 years agoMerge pull request #7047 from qlyoung/fix-zlog-target-null-deref base_7.5
Mark Stapp [Tue, 8 Sep 2020 19:25:08 +0000 (15:25 -0400)]
Merge pull request #7047 from qlyoung/fix-zlog-target-null-deref

lib: fix possible null dereference in zlog

4 years agoMerge pull request #7031 from dslicenc/global-bgp-update-delay
Donatas Abraitis [Tue, 8 Sep 2020 18:43:51 +0000 (21:43 +0300)]
Merge pull request #7031 from dslicenc/global-bgp-update-delay

Global bgp update delay

4 years agoMerge pull request #7032 from qlyoung/devdocs-libyang-hashtable
Mark Stapp [Tue, 8 Sep 2020 17:03:16 +0000 (13:03 -0400)]
Merge pull request #7032 from qlyoung/devdocs-libyang-hashtable

Dev docs update for libyang, hash table invariants

4 years agotests: Modify bgpd.conf to have faster keepalive/hold timers 7064/head
Donald Sharp [Tue, 8 Sep 2020 16:56:55 +0000 (12:56 -0400)]
tests: Modify bgpd.conf to have faster keepalive/hold timers

Modify bgpd.conf in all easily accessible topotests to use 3 10
as their timers du jour.  This will allow the tests to converge
faster.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
4 years agodoc: update libyang blurb for 1.x 7032/head
Quentin Young [Tue, 1 Sep 2020 18:10:20 +0000 (14:10 -0400)]
doc: update libyang blurb for 1.x

Signed-off-by: Quentin Young <qlyoung@nvidia.com>
4 years agodoc: add notes about hash table invariants
Quentin Young [Tue, 1 Sep 2020 18:10:06 +0000 (14:10 -0400)]
doc: add notes about hash table invariants

Signed-off-by: Quentin Young <qlyoung@nvidia.com>
4 years agoMerge pull request #6376 from opensourcerouting/bump-libyang-req-version-1.x
Donald Sharp [Tue, 8 Sep 2020 16:06:10 +0000 (12:06 -0400)]
Merge pull request #6376 from opensourcerouting/bump-libyang-req-version-1.x

build, yang: bump libyang minimum required version to 1.0.184

4 years agolib: fix possible null dereference in zlog 7047/head
Quentin Young [Wed, 2 Sep 2020 21:24:54 +0000 (17:24 -0400)]
lib: fix possible null dereference in zlog

In some cases one or both of the zlog targets in use here can be null,
we need to check for that.

Interestingly it appears we don't crash even when this is the case.
Undefined behavior ftw

Signed-off-by: Quentin Young <qlyoung@nvidia.com>
4 years agoMerge pull request #6969 from ton31337/feature/autoshutdown_if_rtt_higher_than_specified
Russ White [Tue, 8 Sep 2020 15:28:40 +0000 (11:28 -0400)]
Merge pull request #6969 from ton31337/feature/autoshutdown_if_rtt_higher_than_specified

bgpd: Add `neighbor <neigh> shutdown rtt` command

4 years agotopotests: Add test for bgp update-delay configuration 7031/head
Don slice [Fri, 28 Aug 2020 19:53:03 +0000 (15:53 -0400)]
topotests: Add test for bgp update-delay configuration

Signed-off-by: Don Slice <dslice@nvidia.com>
4 years agobgpd: add global config for update-delay
Don slice [Wed, 5 Aug 2020 19:08:17 +0000 (19:08 +0000)]
bgpd: add global config for update-delay

Enhancement to update-delay configuration to allow setting globally
rather than per-instance.  Setting the update-delay is allowed either
per-vrf or globally, but not both at the same time.

Ticket: CM-31096
Signed-off-by: Don Slice <dslice@nvidia.com>
4 years agodoc: Add `neighbor <x.x.x.x.> shutdown rtt <milliseconds>` 6969/head
Donatas Abraitis [Tue, 18 Aug 2020 20:08:16 +0000 (23:08 +0300)]
doc: Add `neighbor <x.x.x.x.> shutdown rtt <milliseconds>`

Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
4 years agobgpd: Add `neighbor <neigh> shutdown rtt` command
Donatas Abraitis [Sat, 25 Jul 2020 06:10:56 +0000 (09:10 +0300)]
bgpd: Add `neighbor <neigh> shutdown rtt` command

This would be useful in cases with lots of peers and shutdown them
automatically if RTT goes above the specified limit.

A host with 512 or more IPv6 addresses has a higher latency due to
ipv6_addr_label(). This method tries to pick the best candidate address
fo outgoing connection and literally increases processing latency.

```
Samples: 28  of event 'cycles', Event count (approx.): 22131542
  Children      Self  Command  Shared Object      Symbol
  +  100.00%     0.00%  ping6    [kernel.kallsyms]  [k] entry_SYSCALL_64_fastpath
  +  100.00%     0.00%  ping6    [unknown]          [.] 0x0df0ad0b8047022a
  +  100.00%     0.00%  ping6    libc-2.17.so       [.] __sendto_nocancel
  +  100.00%     0.00%  ping6    [kernel.kallsyms]  [k] sys_sendto
  +  100.00%     0.00%  ping6    [kernel.kallsyms]  [k] SYSC_sendto
  +  100.00%     0.00%  ping6    [kernel.kallsyms]  [k] sock_sendmsg
  +  100.00%     0.00%  ping6    [kernel.kallsyms]  [k] inet_sendmsg
  +  100.00%     0.00%  ping6    [kernel.kallsyms]  [k] rawv6_sendmsg
  +  100.00%     0.00%  ping6    [kernel.kallsyms]  [k] ip6_dst_lookup_flow
  +  100.00%     0.00%  ping6    [kernel.kallsyms]  [k] ip6_dst_lookup_tail
  +  100.00%     0.00%  ping6    [kernel.kallsyms]  [k] ip6_route_get_saddr
  +  100.00%     0.00%  ping6    [kernel.kallsyms]  [k] ipv6_dev_get_saddr
  +  100.00%     0.00%  ping6    [kernel.kallsyms]  [k] __ipv6_dev_get_saddr
  +  100.00%     0.00%  ping6    [kernel.kallsyms]  [k] ipv6_get_saddr_eval
  +  100.00%     0.00%  ping6    [kernel.kallsyms]  [k] ipv6_addr_label
  +  100.00%   100.00%  ping6    [kernel.kallsyms]  [k] __ipv6_addr_label
  +    0.00%     0.00%  ping6    [kernel.kallsyms]  [k] schedule
```

This is how it works:

```
~# vtysh -c 'show bgp neigh 192.168.0.2 json' | jq '."192.168.0.2".estimatedRttInMsecs'
9
~# tc qdisc add dev eth1 root netem delay 120ms
~# vtysh -c 'show bgp neigh 192.168.0.2 json' | jq '."192.168.0.2".estimatedRttInMsecs'
89
~# vtysh -c 'show bgp neigh 192.168.0.2 json' | jq '."192.168.0.2".estimatedRttInMsecs'
null
~# vtysh -c 'show bgp neigh 192.168.0.2 json' | jq '."192.168.0.2".lastResetDueTo'
"Admin. shutdown"
```

Warning message:
bgpd[14807]: 192.168.0.2 shutdown due to high round-trip-time (200ms > 150ms)

Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
4 years agobgpd: Update RTT on KEEPALIVE message
Donatas Abraitis [Sat, 25 Jul 2020 06:10:15 +0000 (09:10 +0300)]
bgpd: Update RTT on KEEPALIVE message

Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
4 years agoMerge pull request #6982 from achernavin22/ospf_nssa_after_redist
Santosh P K [Mon, 7 Sep 2020 12:54:41 +0000 (18:24 +0530)]
Merge pull request #6982 from achernavin22/ospf_nssa_after_redist

ospfd: install Type-7 when NSSA enabled after redistribution

4 years agoMerge pull request #7040 from qlyoung/fix-evpn-attribute-hash-error
Donatas Abraitis [Sat, 5 Sep 2020 12:47:38 +0000 (15:47 +0300)]
Merge pull request #7040 from qlyoung/fix-evpn-attribute-hash-error

bgpd: modify attr fields before hash insert

4 years agoMerge pull request #7037 from volta-networks/fix_traps_bgp
Donatas Abraitis [Sat, 5 Sep 2020 05:28:19 +0000 (08:28 +0300)]
Merge pull request #7037 from volta-networks/fix_traps_bgp

Fix bgpBackwardTransition traps

4 years agoMerge pull request #7051 from donaldsharp/ospf_test_speedup
Donatas Abraitis [Sat, 5 Sep 2020 05:17:31 +0000 (08:17 +0300)]
Merge pull request #7051 from donaldsharp/ospf_test_speedup

Ospf test speedup

4 years agoMerge pull request #7054 from qlyoung/fix-bgp-mplsvpn-nlri-missing-length-checks
Donatas Abraitis [Sat, 5 Sep 2020 05:17:15 +0000 (08:17 +0300)]
Merge pull request #7054 from qlyoung/fix-bgp-mplsvpn-nlri-missing-length-checks

bgpd: fix mplsvpn nlri garbage heap read

4 years agoMerge pull request #7046 from qlyoung/fix-various-integer-issues
Renato Westphal [Sat, 5 Sep 2020 01:33:48 +0000 (22:33 -0300)]
Merge pull request #7046 from qlyoung/fix-various-integer-issues

Fix various integer signedness / overflow issues

4 years agoMerge pull request #7055 from qlyoung/fix-bgp-localpref-overflow
Renato Westphal [Fri, 4 Sep 2020 21:56:46 +0000 (18:56 -0300)]
Merge pull request #7055 from qlyoung/fix-bgp-localpref-overflow

bgpd: fix asserting read of localpref

4 years agoMerge pull request #6934 from Niral-Networks/niral_dev_vrf_isis_core_pr4
Renato Westphal [Fri, 4 Sep 2020 21:44:56 +0000 (18:44 -0300)]
Merge pull request #6934 from Niral-Networks/niral_dev_vrf_isis_core_pr4

isisd, yang, doc : Support for different VRF in ISIS.

4 years agoMerge pull request #6971 from volta-networks/fix_ldp_no_config
Renato Westphal [Fri, 4 Sep 2020 19:39:16 +0000 (16:39 -0300)]
Merge pull request #6971 from volta-networks/fix_ldp_no_config

ldpd: Fix issue when starting up LDP with no configuration.

4 years agoMerge pull request #6589 from NaveenThanikachalam/gr_fixes
Donatas Abraitis [Fri, 4 Sep 2020 15:39:26 +0000 (18:39 +0300)]
Merge pull request #6589 from NaveenThanikachalam/gr_fixes

bgpd: GR fixes

4 years agoldpd: Fix issue when starting up LDP with no configuration. 6971/head
lynne [Wed, 12 Aug 2020 23:15:24 +0000 (19:15 -0400)]
ldpd: Fix issue when starting up LDP with no configuration.

LDP would mark all routes as learned on a non-ldp interface.  Then
when LDP was configured the labels were not updated correctly.  This
commit fixes issues 6841 and 6842.

Signed-off-by: Lynne Morrison <lynne@voltanet.io>
4 years agoMerge pull request #6826 from pjdruddy/bgp-auth-vrf-frr
Donatas Abraitis [Fri, 4 Sep 2020 13:03:47 +0000 (16:03 +0300)]
Merge pull request #6826 from pjdruddy/bgp-auth-vrf-frr

Bgp auth vrf frr

4 years agoMerge pull request #7053 from mjstapp/fix_ospf6_intf_sa
Donald Sharp [Fri, 4 Sep 2020 10:47:07 +0000 (06:47 -0400)]
Merge pull request #7053 from mjstapp/fix_ospf6_intf_sa

ospf6d: fix SA warning

4 years agoMerge pull request #7052 from mjstapp/fix_stream_get_data
Donald Sharp [Fri, 4 Sep 2020 00:45:05 +0000 (20:45 -0400)]
Merge pull request #7052 from mjstapp/fix_stream_get_data

lib: remove unused stream_get_data api

4 years agoMerge pull request #6891 from opensourcerouting/feature/sr-te-bgpd
Donald Sharp [Thu, 3 Sep 2020 18:52:30 +0000 (14:52 -0400)]
Merge pull request #6891 from opensourcerouting/feature/sr-te-bgpd

bgpd: Add support for SR-TE Policies in route-maps

4 years agobgpd: use stream_rewind_getp() to remove overflow 7046/head
Quentin Young [Wed, 2 Sep 2020 20:44:13 +0000 (16:44 -0400)]
bgpd: use stream_rewind_getp() to remove overflow

Passing a negative argument to a size_t parameter creates an overflow
condition

Signed-off-by: Quentin Young <qlyoung@nvidia.com>
4 years agolib: add stream_rewind_getp()
Quentin Young [Wed, 2 Sep 2020 20:43:29 +0000 (16:43 -0400)]
lib: add stream_rewind_getp()

stream_forward_getp() cannot be used with negative numbers due to the
size_t argument, we'll end up doing overflow arithmetic.

Signed-off-by: Quentin Young <qlyoung@nvidia.com>
4 years agobgpd: fix asserting read of localpref 7055/head
Quentin Young [Thu, 3 Sep 2020 18:10:33 +0000 (14:10 -0400)]
bgpd: fix asserting read of localpref

Attribute may not be long enough to contain a localpref value, resulting
in an assert on stream size. Gracefully handle this case instead.

Signed-off-by: Quentin Young <qlyoung@nvidia.com>
4 years agobgpd: fix mplsvpn nlri garbage heap read 7054/head
Quentin Young [Thu, 3 Sep 2020 17:22:17 +0000 (13:22 -0400)]
bgpd: fix mplsvpn nlri garbage heap read

NLRI parsing for mpls vpn was missing several length checks that could
easily result in garbage heap reads past the end of nlri->packet.

Convert the whole function to use stream APIs for automatic bounds
checking...

Signed-off-by: Quentin Young <qlyoung@nvidia.com>
4 years agoMerge pull request #6926 from kuldeepkash/dynamic_route_leak
Martin Winter [Thu, 3 Sep 2020 17:03:22 +0000 (19:03 +0200)]
Merge pull request #6926 from kuldeepkash/dynamic_route_leak

tests: Add bgp_vrf_dynamic_route_leak test suite

4 years agoospf6d: fix SA warning 7053/head
Mark Stapp [Thu, 3 Sep 2020 16:57:36 +0000 (12:57 -0400)]
ospf6d: fix SA warning

Fix an SA issue in ospf6_interface.c.

Signed-off-by: Mark Stapp <mjs@voltanet.io>
4 years agolib: remove unused stream_get_data api 7052/head
Mark Stapp [Thu, 3 Sep 2020 16:37:55 +0000 (12:37 -0400)]
lib: remove unused stream_get_data api

Signed-off-by: Mark Stapp <mjs@voltanet.io>
4 years agobgpd: show < ip > bgp < ipv4 | ipv6 > all 6827/head
Madhuri Kuruganti [Thu, 30 Jul 2020 15:19:09 +0000 (20:49 +0530)]
bgpd: show < ip > bgp < ipv4 | ipv6 > all

This commit
=> provides "all" option, to display the table entries for all(or specific) AFI/SAFIs.
=> Also introduced "show_flags" to avoid passing multiple arguments(use_json, wide, all)
   to functions

1. show <ip> bgp <ipv4/ipv6> <all> <wide|json>
2. show <ip> bgp <ipv4/ipv6> <all> summary <json>
3. show <ip> bgp <ipv4/ipv6> <all> cidr-only <wide|json>
4. show <ip> bgp <ipv4/ipv6> <all> community <wide|json>
5. show <ip> bgp <ipv4/ipv6> <all> dampening <dampened-paths|flap-statistics|parameters> <wide|json>
6. show <ip> bgp <ipv4/ipv6> <all> neighbors A.B.C.D advertised-routes|filtered-routes|received-routes <wide|json>

show bgp all summary            == show ip bgp all summary      => output is same => display entries for all AFIs and for each SAFI.
show bgp ipv4 all summary       == show ip bgp ipv4 all summary => output is same => display entries for each SAFI in AFI_IP
show bgp ipv6 all summary       == show ip bgp ipv6 all summart => output is same => display entries for each SAFI in AFI_IP6

similarly for all other commands.

sample output
1. show <ip> bgp <ipv4/ipv6> <all> <wide|json>

router# show ip bgp all wide

For address family: IPv4 Unicast

BGP table version is 6, local router ID is 1.1.1.1, vrf id 0
Default local pref 100, local AS 1
Status codes:  s suppressed, d damped, h history, * valid, > best, = multipath,
               i internal, r RIB-failure, S Stale, R Removed
Nexthop codes: @NNN nexthop's vrf id, < announce-nh-self
Origin codes:  i - IGP, e - EGP, ? - incomplete

   Network                                      Next Hop                                  Metric LocPrf Weight Path
*> 1.1.1.1/32                                   0.0.0.0                                        0         32768 ?
*>i2.2.2.2/32                                   192.168.56.152                                 0    100      0 ?
* i10.0.2.0/24                                  192.168.56.152                                 0    100      0 ?
*>                                              0.0.0.0                                        0         32768 ?
* i192.168.56.0/24                              192.168.56.152                                 0    100      0 ?
*>                                              0.0.0.0                                        0         32768 ?
*>i192.168.123.245/32                           192.168.56.152                                 0    100      0 ?
*>i192.168.223.245/32                           192.168.56.152                                 0    100      0 ?

Displayed  6 routes and 8 total paths

For address family: IPv6 Unicast

BGP table version is 3, local router ID is 1.1.1.1, vrf id 0
Default local pref 100, local AS 1
Status codes:  s suppressed, d damped, h history, * valid, > best, = multipath,
               i internal, r RIB-failure, S Stale, R Removed
Nexthop codes: @NNN nexthop's vrf id, < announce-nh-self
Origin codes:  i - IGP, e - EGP, ? - incomplete

   Network                                      Next Hop                                  Metric LocPrf Weight Path
*> 2001:db8::1/128                              ::                                             0         32768 ?
*>i2001:db8::2/128                              fe80::a00:27ff:fefc:2aa                        0    100      0 ?
*> 2001:db8:85a3::8a2e:370:7334/128             ::                                             0         32768 ?

Displayed  3 routes and 3 total paths
router#

router# show ip bgp ipv4 all wide

For address family: IPv4 Unicast

BGP table version is 6, local router ID is 1.1.1.1, vrf id 0
Default local pref 100, local AS 1
Status codes:  s suppressed, d damped, h history, * valid, > best, = multipath,
               i internal, r RIB-failure, S Stale, R Removed
Nexthop codes: @NNN nexthop's vrf id, < announce-nh-self
Origin codes:  i - IGP, e - EGP, ? - incomplete

   Network                                      Next Hop                                  Metric LocPrf Weight Path
*> 1.1.1.1/32                                   0.0.0.0                                        0         32768 ?
*>i2.2.2.2/32                                   192.168.56.152                                 0    100      0 ?
* i10.0.2.0/24                                  192.168.56.152                                 0    100      0 ?
*>                                              0.0.0.0                                        0         32768 ?
* i192.168.56.0/24                              192.168.56.152                                 0    100      0 ?
*>                                              0.0.0.0                                        0         32768 ?
*>i192.168.123.245/32                           192.168.56.152                                 0    100      0 ?
*>i192.168.223.245/32                           192.168.56.152                                 0    100      0 ?

Displayed  6 routes and 8 total paths
router#

router#
router# show ip bgp ipv6 all wide

For address family: IPv6 Unicast

BGP table version is 3, local router ID is 1.1.1.1, vrf id 0
Default local pref 100, local AS 1
Status codes:  s suppressed, d damped, h history, * valid, > best, = multipath,
               i internal, r RIB-failure, S Stale, R Removed
Nexthop codes: @NNN nexthop's vrf id, < announce-nh-self
Origin codes:  i - IGP, e - EGP, ? - incomplete

   Network                                      Next Hop                                  Metric LocPrf Weight Path
*> 2001:db8::1/128                              ::                                             0         32768 ?
*>i2001:db8::2/128                              fe80::a00:27ff:fefc:2aa                        0    100      0 ?
*> 2001:db8:85a3::8a2e:370:7334/128             ::                                             0         32768 ?

Displayed  3 routes and 3 total paths
router#

router# show bgp all wide

For address family: IPv4 Unicast

BGP table version is 6, local router ID is 1.1.1.1, vrf id 0
Default local pref 100, local AS 1
Status codes:  s suppressed, d damped, h history, * valid, > best, = multipath,
               i internal, r RIB-failure, S Stale, R Removed
Nexthop codes: @NNN nexthop's vrf id, < announce-nh-self
Origin codes:  i - IGP, e - EGP, ? - incomplete

   Network                                      Next Hop                                  Metric LocPrf Weight Path
*> 1.1.1.1/32                                   0.0.0.0                                        0         32768 ?
*>i2.2.2.2/32                                   192.168.56.152                                 0    100      0 ?
* i10.0.2.0/24                                  192.168.56.152                                 0    100      0 ?
*>                                              0.0.0.0                                        0         32768 ?
* i192.168.56.0/24                              192.168.56.152                                 0    100      0 ?
*>                                              0.0.0.0                                        0         32768 ?
*>i192.168.123.245/32                           192.168.56.152                                 0    100      0 ?
*>i192.168.223.245/32                           192.168.56.152                                 0    100      0 ?

Displayed  6 routes and 8 total paths

For address family: IPv6 Unicast

BGP table version is 3, local router ID is 1.1.1.1, vrf id 0
Default local pref 100, local AS 1
Status codes:  s suppressed, d damped, h history, * valid, > best, = multipath,
               i internal, r RIB-failure, S Stale, R Removed
Nexthop codes: @NNN nexthop's vrf id, < announce-nh-self
Origin codes:  i - IGP, e - EGP, ? - incomplete

   Network                                      Next Hop                                  Metric LocPrf Weight Path
*> 2001:db8::1/128                              ::                                             0         32768 ?
*>i2001:db8::2/128                              fe80::a00:27ff:fefc:2aa                        0    100      0 ?
*> 2001:db8:85a3::8a2e:370:7334/128             ::                                             0         32768 ?

Displayed  3 routes and 3 total paths
router#
router#

router# show bgp ipv4 all wide

For address family: IPv4 Unicast

BGP table version is 6, local router ID is 1.1.1.1, vrf id 0
Default local pref 100, local AS 1
Status codes:  s suppressed, d damped, h history, * valid, > best, = multipath,
               i internal, r RIB-failure, S Stale, R Removed
Nexthop codes: @NNN nexthop's vrf id, < announce-nh-self
Origin codes:  i - IGP, e - EGP, ? - incomplete

   Network                                      Next Hop                                  Metric LocPrf Weight Path
*> 1.1.1.1/32                                   0.0.0.0                                        0         32768 ?
*>i2.2.2.2/32                                   192.168.56.152                                 0    100      0 ?
* i10.0.2.0/24                                  192.168.56.152                                 0    100      0 ?
*>                                              0.0.0.0                                        0         32768 ?
* i192.168.56.0/24                              192.168.56.152                                 0    100      0 ?
*>                                              0.0.0.0                                        0         32768 ?
*>i192.168.123.245/32                           192.168.56.152                                 0    100      0 ?
*>i192.168.223.245/32                           192.168.56.152                                 0    100      0 ?

Displayed  6 routes and 8 total paths
router#

router# show bgp ipv6 all wide

For address family: IPv6 Unicast

BGP table version is 3, local router ID is 1.1.1.1, vrf id 0
Default local pref 100, local AS 1
Status codes:  s suppressed, d damped, h history, * valid, > best, = multipath,
               i internal, r RIB-failure, S Stale, R Removed
Nexthop codes: @NNN nexthop's vrf id, < announce-nh-self
Origin codes:  i - IGP, e - EGP, ? - incomplete

   Network                                      Next Hop                                  Metric LocPrf Weight Path
*> 2001:db8::1/128                              ::                                             0         32768 ?
*>i2001:db8::2/128                              fe80::a00:27ff:fefc:2aa                        0    100      0 ?
*> 2001:db8:85a3::8a2e:370:7334/128             ::                                             0         32768 ?

Displayed  3 routes and 3 total paths
router#

Router1# show bgp all dampening parameters

For address family: IPv4 Unicast
Half-life time: 15 min
Reuse penalty: 750
Suppress penalty: 2000
Max suppress time: 60 min
Max suppress penalty: 12000

For address family: IPv4 Multicast
Half-life time: 20 min
Reuse penalty: 1000
Suppress penalty: 10000
Max suppress time: 40 min
Max suppress penalty: 4000

For address family: IPv4 VPN
dampening not enabled for IPv4 VPN

For address family: IPv4 Encap
dampening not enabled for IPv4 Encap

For address family: IPv4 Labeled Unicast
dampening not enabled for IPv4 Labeled Unicast

For address family: IPv4 Flowspec
dampening not enabled for IPv4 Flowspec

For address family: IPv6 Unicast
dampening not enabled for IPv6 Unicast

For address family: IPv6 Multicast
Half-life time: 10 min
Reuse penalty: 1500
Suppress penalty: 15000
Max suppress time: 20 min
Max suppress penalty: 6000

For address family: IPv6 VPN
dampening not enabled for IPv6 VPN

For address family: IPv6 Encap
dampening not enabled for IPv6 Encap

For address family: IPv6 Labeled Unicast
dampening not enabled for IPv6 Labeled Unicast

For address family: IPv6 Flowspec
dampening not enabled for IPv6 Flowspec

For address family: L2VPN EVPN
dampening not enabled for L2VPN EVPN
router#

bgpd: all option with json-c apis used

Replaced vty_out with json-c wrapper functions for all option
support to show <ip> bgp commands

Sample output:
Router2# show bgp all json
{
"ipv4Unicast":{
 "vrfId": 0,
 "vrfName": "default",
 "tableVersion": 8,
 "routerId": "128.16.16.1",
 "defaultLocPrf": 100,
 "localAS": 2,
 "routes": { "128.16.16.0/24": [
  {
    "valid":true,
    "bestpath":true,
    "pathFrom":"external",
    "prefix":"128.16.16.0",
    "prefixLen":24,
    "network":"128.16.16.0\/24",
    "metric":0,
    "weight":32768,
    "peerId":"(unspec)",
    "path":"",
    "origin":"IGP",
    "nexthops":[
      {
        "ip":"0.0.0.0",
        "hostname":"router",
        "afi":"ipv4",
        "used":true
      }
    ]
  }
],"130.130.0.0/16": [
  {
    "valid":true,
    "bestpath":true,
    "pathFrom":"external",
    "prefix":"130.130.0.0",
    "prefixLen":16,
    "network":"130.130.0.0\/16",
    "metric":0,
    "weight":32768,
    "peerId":"(unspec)",
    "path":"",
    "origin":"IGP",
    "nexthops":[
      {
        "ip":"0.0.0.0",
        "hostname":"router",
        "afi":"ipv4",
        "used":true
      }
    ]
  }
],"192.168.50.0/24": [
  {
    "valid":true,
    "bestpath":true,
    "pathFrom":"external",
    "prefix":"192.168.50.0",
    "prefixLen":24,
    "network":"192.168.50.0\/24",
    "metric":0,
    "weight":0,
    "peerId":"10.10.20.3",
    "path":"3",
    "origin":"IGP",
    "nexthops":[
      {
        "ip":"10.10.20.3",
        "hostname":"router",
        "afi":"ipv4",
        "used":true
      }
    ]
  }
],"200.200.200.0/24": [
  {
    "valid":true,
    "bestpath":true,
    "pathFrom":"external",
    "prefix":"200.200.200.0",
    "prefixLen":24,
    "network":"200.200.200.0\/24",
    "metric":0,
    "weight":0,
    "peerId":"10.10.10.1",
    "path":"1",
    "origin":"IGP",
    "nexthops":[
      {
        "ip":"10.10.10.1",
        "hostname":"router",
        "afi":"ipv4",
        "used":true
      }
    ]
  }
] } }
,
"ipv4Multicast":{
 "vrfId": 0,
 "vrfName": "default",
 "tableVersion": 0,
 "routerId": "128.16.16.1",
 "defaultLocPrf": 100,
 "localAS": 2,
 "routes": {  } }
,
"ipv4Flowspec":{
 "vrfId": 0,
 "vrfName": "default",
 "tableVersion": 0,
 "routerId": "128.16.16.1",
 "defaultLocPrf": 100,
 "localAS": 2,
 "routes": {  } }
,
"ipv6Unicast":{
 "vrfId": 0,
 "vrfName": "default",
 "tableVersion": 11,
 "routerId": "128.16.16.1",
 "defaultLocPrf": 100,
 "localAS": 2,
 "routes": { "2001:db8::2/128": [
  {
    "valid":true,
    "bestpath":true,
    "pathFrom":"external",
    "prefix":"2001:db8::2",
    "prefixLen":128,
    "network":"2001:db8::2\/128",
    "metric":0,
    "weight":32768,
    "peerId":"(unspec)",
    "path":"",
    "origin":"incomplete",
    "nexthops":[
      {
        "ip":"::",
        "hostname":"router",
        "afi":"ipv6",
        "scope":"global",
        "used":true
      }
    ]
  }
],"2001:db8::3/128": [
  {
    "valid":true,
    "bestpath":true,
    "pathFrom":"external",
    "prefix":"2001:db8::3",
    "prefixLen":128,
    "network":"2001:db8::3\/128",
    "metric":0,
    "weight":0,
    "peerId":"10.10.20.3",
    "path":"3",
    "origin":"incomplete",
    "nexthops":[
      {
        "ip":"2001:db8:0:20::3",
        "hostname":"router",
        "afi":"ipv6",
        "scope":"global"
      },
      {
        "ip":"fe80::a00:27ff:fe76:6738",
        "hostname":"router",
        "afi":"ipv6",
        "scope":"link-local",
        "used":true
      }
    ]
  }
],"2001:db8:0:20::/64": [
  {
    "valid":true,
    "pathFrom":"external",
    "prefix":"2001:db8:0:20::",
    "prefixLen":64,
    "network":"2001:db8:0:20::\/64",
    "metric":0,
    "weight":0,
    "peerId":"10.10.20.3",
    "path":"3",
    "origin":"incomplete",
    "nexthops":[
      {
        "ip":"2001:db8:0:20::3",
        "hostname":"router",
        "afi":"ipv6",
        "scope":"global"
      },
      {
        "ip":"fe80::a00:27ff:fe76:6738",
        "hostname":"router",
        "afi":"ipv6",
        "scope":"link-local",
        "used":true
      }
    ]
  },
  {
    "valid":true,
    "bestpath":true,
    "pathFrom":"external",
    "prefix":"2001:db8:0:20::",
    "prefixLen":64,
    "network":"2001:db8:0:20::\/64",
    "metric":0,
    "weight":32768,
    "peerId":"(unspec)",
    "path":"",
    "origin":"incomplete",
    "nexthops":[
      {
        "ip":"::",
        "hostname":"router",
        "afi":"ipv6",
        "scope":"global",
        "used":true
      }
    ]
  }
] } }
,
"ipv6Multicast":{
 "vrfId": 0,
 "vrfName": "default",
 "tableVersion": 0,
 "routerId": "128.16.16.1",
 "defaultLocPrf": 100,
 "localAS": 2,
 "routes": {  } }
}
Router2#

Signed-off-by: Madhuri Kuruganti <k.madhuri@samsung.com>
4 years agotests: Reduce run time of bgp_l3vpn_to_bgp_vrf 7051/head
Donald Sharp [Thu, 3 Sep 2020 14:52:54 +0000 (10:52 -0400)]
tests: Reduce run time of bgp_l3vpn_to_bgp_vrf

Reduces run time of the bgp_l3vpn_to_bgp_vrf topotests
from ~118 seconds to ~87 seconds by reducing hello timers
in bgp and ospf

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
4 years agotests: Reduce bfd-topo2 run time
Donald Sharp [Thu, 3 Sep 2020 14:39:19 +0000 (10:39 -0400)]
tests: Reduce bfd-topo2 run time

Reduce run time of bfd-topo2 from ~62 seconds to ~33 seconds
by modifying the hello/dead intervals for both ospf and ospfv3

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
4 years agotests: Reduce ldp-oc-acl-topo1 run time
Donald Sharp [Thu, 3 Sep 2020 14:31:09 +0000 (10:31 -0400)]
tests: Reduce ldp-oc-acl-topo1 run time

Reduce the ldp-oc-acl-topo1 test run time from ~69 seconds
to ~39 seconds.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
4 years agotests: Reduce bgp-evpn-vxlan-topo1 run time
Donald Sharp [Thu, 3 Sep 2020 14:23:28 +0000 (10:23 -0400)]
tests: Reduce bgp-evpn-vxlan-topo1 run time

Reduce the runtime from ~82 seconds to ~51 seconds by
reducing hello/hold timers for both bgp and ospf.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
4 years agotests: Reduce ospf-topo1 run time
Donald Sharp [Thu, 3 Sep 2020 14:14:22 +0000 (10:14 -0400)]
tests: Reduce ospf-topo1 run time

Reduce run time from ~114 seconds to ~55 seconds by
configuring hello/dead interval timers for ospf and ospfv3

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
4 years agotests: Reduce bgp_l3vpn_to_bgp_direct run time
Donald Sharp [Thu, 3 Sep 2020 13:59:11 +0000 (09:59 -0400)]
tests: Reduce bgp_l3vpn_to_bgp_direct run time

Reduce run time from ~76 seconds to ~47 seconds by modifying
both bgp and ospf timers to be more aggressive

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
4 years agotests: Reduce ldp-vpls-topo1 run time
Donald Sharp [Thu, 3 Sep 2020 13:34:19 +0000 (09:34 -0400)]
tests: Reduce ldp-vpls-topo1 run time

Reduce this tests run time from ~76 seconds to ~49 seconds
by decreasing the hello/dead interval timers in ospf

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
4 years agotests: Speedup bgp_rfapi_basic_sanity run
Donald Sharp [Thu, 3 Sep 2020 13:20:12 +0000 (09:20 -0400)]
tests: Speedup bgp_rfapi_basic_sanity run

Decrease run time from ~70 seconds to ~41 seconds by
reducing hello/dead interval timers in ospf

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
4 years agotests: Speedup bfd-profiles-topo1 runtime
Donald Sharp [Thu, 3 Sep 2020 13:09:20 +0000 (09:09 -0400)]
tests: Speedup bfd-profiles-topo1 runtime

Decrease run time from ~70 seconds to ~60 seconds
by modifying the hello/dead interval interface timers
in ospf

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
4 years agotests: Decrease ospf-sr-topo1 run time
Donald Sharp [Thu, 3 Sep 2020 13:02:43 +0000 (09:02 -0400)]
tests: Decrease ospf-sr-topo1 run time

Reduce ospf-sr-topo1 run time from ~60 seconds to ~30 seconds
by shortening the hello and dead timers.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
4 years agotests: ospf-topo2 speed up
Donald Sharp [Wed, 2 Sep 2020 20:23:54 +0000 (16:23 -0400)]
tests: ospf-topo2 speed up

Modify ospf hello/dead timers to speed up run time from ~25 seconds to
~17 seconds.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
4 years agotests: Modify ldp-oc-topo1 to run faster
Donald Sharp [Wed, 2 Sep 2020 20:16:48 +0000 (16:16 -0400)]
tests: Modify ldp-oc-topo1 to run faster

Convert run times by lowering hello/dead interval timers to
smaller values from ~66 seconds to ~36 seconds.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
4 years agotests: Speedup ldp-topo1 tests
Donald Sharp [Wed, 2 Sep 2020 20:07:15 +0000 (16:07 -0400)]
tests: Speedup ldp-topo1 tests

These ospf timer changes, speed up convergence from ~85 seconds to
~40 seconds.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
4 years agoMerge pull request #7043 from donaldsharp/bgp_features_speedup
Mark Stapp [Thu, 3 Sep 2020 12:14:46 +0000 (08:14 -0400)]
Merge pull request #7043 from donaldsharp/bgp_features_speedup

tests: Speed up bgp_features topotests by a lot

4 years agoospfd: install Type-7 when NSSA enabled after redistribution 6982/head
Alexander Chernavin [Tue, 25 Aug 2020 09:50:39 +0000 (05:50 -0400)]
ospfd: install Type-7 when NSSA enabled after redistribution

If NSSA is enabled before redistribution is configured, Type-7 LSA's
are installed. But if NSSA is enabled after redistribution is
configured, Type-7 LSAs are missing.

With this change, when NSSA is enabled, scan for external LSA's and
if they exist, install Type-7.

Signed-off-by: Alexander Chernavin <achernavin@netgate.com>
4 years agoMerge pull request #6987 from Niral-Networks/acl_fix
Santosh P K [Thu, 3 Sep 2020 04:21:21 +0000 (09:51 +0530)]
Merge pull request #6987 from Niral-Networks/acl_fix

lib, ospf : Fix when redist is performed with route-map using access-list

4 years agolib: remove overflow arithmetic from hash stats
Quentin Young [Wed, 2 Sep 2020 20:02:55 +0000 (16:02 -0400)]
lib: remove overflow arithmetic from hash stats

Signed values get converted to unsigned for addition, so when the value
to adjust a stats variable for hash tables was negative this resulted in
overflow arithmetic, which we generally don't want.

Signed-off-by: Quentin Young <qlyoung@nvidia.com>
4 years agobgpd: make flag values explicitly unsigned
Quentin Young [Wed, 2 Sep 2020 19:11:26 +0000 (15:11 -0400)]
bgpd: make flag values explicitly unsigned

When using these flag #defines, by default their types are integers but
they are always used in conjunction with unsigned integers, which
introduces some implicit conversions that really ought to be avoided.

Signed-off-by: Quentin Young <qlyoung@nvidia.com>
4 years agolib: explicitly cast -1 to uid_t
Quentin Young [Wed, 2 Sep 2020 19:05:43 +0000 (15:05 -0400)]
lib: explicitly cast -1 to uid_t

We should be explicit about what's happening here

Signed-off-by: Quentin Young <qlyoung@nvidia.com>
4 years agotests: Speed up bgp_features topotests by a lot 7043/head
Donald Sharp [Wed, 2 Sep 2020 19:42:01 +0000 (15:42 -0400)]
tests: Speed up bgp_features topotests by a lot

Initial run of topotests on my machine takes ~210 seconds
With these changes we are at ~40 seconds

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
4 years agobgpd: modify attr fields before hash insert 7040/head
Quentin Young [Wed, 2 Sep 2020 17:16:35 +0000 (13:16 -0400)]
bgpd: modify attr fields before hash insert

bgp_attr_intern(attr) takes an attribute, duplicates it, and inserts it
into the attribute hash table, returning the inserted attr. This is done
when processing a bgp update. We store the returned attribute in the
path info struct. However, later on we modify one of the fields of the
attribute. This field is inspected by attrhash_cmp, the function that
allows the hash table to select the correct item from the hash chain for
a given key when doing a lookup on an item. By modifying the field after
it's been inserted, we open the possibility that two items in the same
chain that at insertion time were differential by attrhash_cmp becomes
equal according to that function. When performing subsequent hash
lookups, it is then indeterminate which of the equivalent items the hash
table will select from the chain (in practice it is the first one but
this may not be the one we want). Thus, it is illegal to modify
data used by a hash comparison function after inserting that data into
a hash table.

In fact this is occurring for attributes. We insert two attributes that
hash to the same key and thus end up in the same hash chain. Then we
modify one of them such that the two items now compare equal. Later one
we want to release the second item from the chain before XFREE()'ing it,
but since the two items compare equal we get the first item back, then
free the second one, which constitutes two bugs, the first being the
wrong attribute removed from the hash table and the second being a
dangling pointer stored in the hash table.

To rectify this we need to perform any modifications to an attr before
it is inserted into the table, i.e., before calling bgp_attr_intern().
This patch does that by moving the sole modification to the attr that
occurs after the insert (that I have seen) before that call.

Signed-off-by: Quentin Young <qlyoung@nvidia.com>
4 years agobgpd: fix invocation of bgpTrapBackwardTransition 7037/head
Babis Chalios [Tue, 4 Aug 2020 13:19:25 +0000 (15:19 +0200)]
bgpd: fix invocation of bgpTrapBackwardTransition

The bgpTrapBackwardTransition callback was being called only during
bgp_stop and only under the condition that peer status was Established.
The MIB defines that the event should be generated for every transition
of the BGP FSM from a higher to a lower state.

Signed-off-by: Babis Chalios <mail@bchalios.io>
4 years agoMerge pull request #6997 from opensourcerouting/cisco-acl-name
Donald Sharp [Wed, 2 Sep 2020 12:26:57 +0000 (08:26 -0400)]
Merge pull request #6997 from opensourcerouting/cisco-acl-name

lib,yang: allow cisco access lists to use names plus fixes

4 years agoMerge pull request #7027 from Niral-Networks/niral_dev_vrf_ospf6
Donald Sharp [Wed, 2 Sep 2020 12:25:09 +0000 (08:25 -0400)]
Merge pull request #7027 from Niral-Networks/niral_dev_vrf_ospf6

ospf6d : Preparing for ospf6d VRF support.

4 years agoMerge pull request #7033 from mjstapp/fix_pbr_nhg_sa
Donald Sharp [Wed, 2 Sep 2020 12:20:21 +0000 (08:20 -0400)]
Merge pull request #7033 from mjstapp/fix_pbr_nhg_sa

pbrd: fix SA warnings in nhg map

4 years agoospfd : Fix in lsa refresh when redist is done with route-map using access-list. 6987/head
Kaushik [Mon, 31 Aug 2020 11:32:30 +0000 (04:32 -0700)]
ospfd : Fix in lsa refresh when redist is done with route-map using access-list.

1. Minor change in distribute-list update timer based on lsa flag.

Co-authored-by: harios <hari@niralnetworks.com>
Signed-off-by: Kaushik <kaushik@niralnetworks.com>
4 years agoMerge pull request #7010 from wesleycoakley/pbrd-more-selective
Mark Stapp [Tue, 1 Sep 2020 18:54:18 +0000 (14:54 -0400)]
Merge pull request #7010 from wesleycoakley/pbrd-more-selective

pbrd: be more selective about route updates

4 years agopbrd: fix SA warning in nhg map 7033/head
Mark Stapp [Tue, 1 Sep 2020 18:23:40 +0000 (14:23 -0400)]
pbrd: fix SA warning in nhg map

Fix SA warnings in nhg map functions.

Signed-off-by: Mark Stapp <mjs@voltanet.io>
4 years agopbrd: nh "valid" semantics in nexthop tracking 7010/head
Wesley Coakley [Tue, 1 Sep 2020 16:34:48 +0000 (12:34 -0400)]
pbrd: nh "valid" semantics in nexthop tracking

Signed-off-by: Wesley Coakley <wcoakley@nvidia.com>
4 years agotests: Add bgp_vrf_dynamic_route_leak test suite 6926/head
Kuldeep Kashyap [Mon, 17 Aug 2020 04:41:51 +0000 (04:41 +0000)]
tests: Add bgp_vrf_dynamic_route_leak test suite

1. Added test to verify bgp vrf dynamic route leak functionality
2. Total execution time is ~8 mins
3. Added kernel version check, these script would be run for kernel version >= 4.19

Signed-off-by: Kuldeep Kashyap <kashyapk@vmware.com>
4 years agotests: Add f/w support for bgp_vrf_dynamic_route_leak tests automation
Kuldeep Kashyap [Mon, 17 Aug 2020 03:57:55 +0000 (03:57 +0000)]
tests: Add f/w support for bgp_vrf_dynamic_route_leak tests automation

1. Adding f/w support for bgp_vrf_dynamic_route_leak tests automation

Signed-off-by: Kuldeep Kashyap <kashyapk@vmware.com>
4 years agopbrd: be more selective about route updates
Wesley Coakley [Thu, 27 Aug 2020 14:04:52 +0000 (10:04 -0400)]
pbrd: be more selective about route updates

Given a received nexthop update, only send down an update to the
relevant nexthop group. Avoid sending down superfluous updates

Signed-off-by: Wesley Coakley <wcoakley@nvidia.com>
4 years agoMerge pull request #7003 from GalaxyGorilla/ospf_ti_lfa_prep
Olivier Dugeon [Tue, 1 Sep 2020 14:39:29 +0000 (16:39 +0200)]
Merge pull request #7003 from GalaxyGorilla/ospf_ti_lfa_prep

ospfd: use a new vertex list for every SPF run

4 years agoMerge pull request #7016 from donaldsharp/pbr_vrf_is_burf
Russ White [Tue, 1 Sep 2020 14:31:20 +0000 (10:31 -0400)]
Merge pull request #7016 from donaldsharp/pbr_vrf_is_burf

Pbr vrf is burf

4 years agoMerge pull request #7023 from donaldsharp/eigrp_fixups
Russ White [Tue, 1 Sep 2020 14:20:32 +0000 (10:20 -0400)]
Merge pull request #7023 from donaldsharp/eigrp_fixups

Eigrp fixups

4 years agoMerge pull request #7028 from xThaid/netlink_buff
Mark Stapp [Tue, 1 Sep 2020 12:43:13 +0000 (08:43 -0400)]
Merge pull request #7028 from xThaid/netlink_buff

zebra: increase netlink receive buffer size

4 years agoospf6d : Preparing for ospf6d VRF support. 7027/head
Kaushik [Tue, 1 Sep 2020 08:31:49 +0000 (01:31 -0700)]
ospf6d : Preparing for ospf6d VRF support.

1. Removed the VRF_DEFAULT dependency from ospf6d.
2. The dependency on show command still exist
   will be fixed when the ospf6 master is available.

Co-authored-by: Harios <hari@niralnetworks.com>
Signed-off-by: Kaushik <kaushik@niralnetworks.com>
4 years agozebra: increase netlink receive buffer size 7028/head
Jakub Urbańczyk [Tue, 1 Sep 2020 09:35:16 +0000 (11:35 +0200)]
zebra: increase netlink receive buffer size

Signed-off-by: Jakub Urbańczyk <xthaid@gmail.com>
4 years agotests: topotest for bgp authentication 6826/head
Pat Ruddy [Thu, 6 Aug 2020 08:37:23 +0000 (09:37 +0100)]
tests: topotest for bgp authentication

18 tests which cover
authenticated passord session extablishment
password removal
wrong password
over default, default prefix-based, vrf, vrf prefix-based, multi-vrf and
multi-vrf prefix-based configurations

Signed-off-by: Pat Ruddy <pat@voltanet.io>
4 years agobgpd: do not clear password if peer is dynamic
Pat Ruddy [Mon, 20 Jul 2020 12:54:04 +0000 (13:54 +0100)]
bgpd: do not clear password if peer is dynamic

When deleting a dynamic peer, unsetting md5 password would cause
it to be unset on the listener allowing unauthenticated connections
from any peer in the range.
Check for dynamic peers in peer delete and avoid this.

Signed-off-by: Pat Ruddy <pat@voltanet.io>
4 years agobgpd: associate listener with the appropriate bgp instance
Pat Ruddy [Tue, 21 Jul 2020 14:03:41 +0000 (15:03 +0100)]
bgpd: associate listener with  the appropriate bgp instance

When setting authentication on a BGP peer in a VRF the listener is
looked up from a global list. However there is no check that the
listener is the one associated with the VRF being configured. This
can result in the wrong listener beiong configured with a password,
leaving the intended listener in an open authentication state.
To simplify this lookup stash a pointer to the bgp instance in
the listener on creating (in the same way as is done for NS-based
VRFS).

Signed-off-by: Pat Ruddy <pat@voltanet.io>
4 years agotopotests : Topotest for different VRF in isisd 6934/head
harios_niral [Tue, 1 Sep 2020 07:56:44 +0000 (00:56 -0700)]
topotests : Topotest for different VRF in isisd

1. Topotest for isis-vrf is added for ipv4 and ipv6.
2. Test case for checking isis topology.
3. Test case for checking zebra isis routes.
4. Test case for checking linux vrf routes.
5. 2 new API's written in topotest/lib for checking vrf routes.

Co-authored-by: Kaushik <kaushik@niralnetworks.com>"
Signed-off-by: harios_niral <hari@niralnetworks.com>
4 years agodoc, yang, isisd : Support for different VRF in isisd
harios_niral [Tue, 18 Aug 2020 07:26:51 +0000 (00:26 -0700)]
doc, yang, isisd : Support for different VRF in isisd

1. Added isis with different vrf and it's dependecies.
2. Added new vrf leaf in yang.
3. A minor change for IF_DOWN_FROM_Z passing argrument is
   replaced with ifp pointer in api "isis_if_delete_hook()".
4. Minor fix in the isisd spf unit test.

Co-authored-by: Kaushik <kaushik@niralnetworks.com>"
Signed-off-by: harios_niral <hari@niralnetworks.com>