]> git.proxmox.com Git - mirror_frr.git/log
mirror_frr.git
4 years agopackaging: Redirect stderr to /dev/null in %post action (frr.spec.in)
Donatas Abraitis [Sun, 5 Jan 2020 14:34:40 +0000 (16:34 +0200)]
packaging: Redirect stderr to /dev/null in %post action (frr.spec.in)

Solves:
```
/usr/bin/sed: couldn't write 40 items to stdout: Broken pipe
/usr/bin/sed: couldn't write 40 items to stdout: Broken pipe
/usr/bin/sed: couldn't write 40 items to stdout: Broken pipe
/usr/bin/sed: couldn't write 40 items to stdout: Broken pipe
/usr/bin/sed: couldn't write 40 items to stdout: Broken pipe
/usr/bin/sed: couldn't write 40 items to stdout: Broken pipe
/usr/bin/sed: couldn't write 40 items to stdout: Broken pipe
```

This happens because `grep -q` returns immediately after first match
and closes the pipe while sed has more output to write.

Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
4 years agoMerge pull request #5611 from qlyoung/fix-bgp-no-listen-docstring
Donatas Abraitis [Fri, 3 Jan 2020 22:39:46 +0000 (00:39 +0200)]
Merge pull request #5611 from qlyoung/fix-bgp-no-listen-docstring

bgpd: fix too much no listen doc string

4 years agoMerge pull request #5604 from qlyoung/add-ubsan-option
Renato Westphal [Fri, 3 Jan 2020 18:14:20 +0000 (15:14 -0300)]
Merge pull request #5604 from qlyoung/add-ubsan-option

configure.ac: add --enable-undefined-sanitizer

4 years agoMerge pull request #5615 from ton31337/feature/supported_rfc_list_add_8212
Quentin Young [Fri, 3 Jan 2020 18:03:14 +0000 (13:03 -0500)]
Merge pull request #5615 from ton31337/feature/supported_rfc_list_add_8212

doc: Add rfc8212 to supported RFCs list

4 years agodoc: Add rfc8212 to supported RFCs list
Donatas Abraitis [Fri, 3 Jan 2020 07:51:17 +0000 (09:51 +0200)]
doc: Add rfc8212 to supported RFCs list

Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
4 years agoMerge pull request #5613 from srimohans/ietf
Quentin Young [Fri, 3 Jan 2020 04:04:38 +0000 (23:04 -0500)]
Merge pull request #5613 from srimohans/ietf

doc: Updating FRR supported RFC list

4 years agodoc: Updating FRR supported RFC list
Sri Mohana Singamsetty [Fri, 3 Jan 2020 00:00:31 +0000 (16:00 -0800)]
doc: Updating FRR supported RFC list

1. Added subsections for BGP, MPLS, ISIS, OSPF etc.
2. Updated RFCs for BGP, MPLS, OSPF.

Signed-off-by: Sri Mohana Singamsetty <msingamsetty@vmware.com>
4 years agobgpd: fix too much no listen doc string
Quentin Young [Thu, 2 Jan 2020 21:26:31 +0000 (16:26 -0500)]
bgpd: fix too much no listen doc string

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
4 years agoconfigure.ac: add --enable-undefined-sanitizer
Quentin Young [Thu, 2 Jan 2020 02:05:02 +0000 (21:05 -0500)]
configure.ac: add --enable-undefined-sanitizer

For UBSan

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
4 years agoMerge pull request #5594 from ton31337/feature/rhel8_docker
Donald Sharp [Wed, 1 Jan 2020 13:36:23 +0000 (08:36 -0500)]
Merge pull request #5594 from ton31337/feature/rhel8_docker

docker: Create build for CentOS 8

4 years agoMerge pull request #5593 from ton31337/feature/rhel8_rpm
Donald Sharp [Wed, 1 Jan 2020 13:35:31 +0000 (08:35 -0500)]
Merge pull request #5593 from ton31337/feature/rhel8_rpm

packaging: Add CentOS 8 support

4 years agoMerge pull request #5602 from donaldsharp/ripng_redistribute
Donatas Abraitis [Wed, 1 Jan 2020 07:33:32 +0000 (09:33 +0200)]
Merge pull request #5602 from donaldsharp/ripng_redistribute

Rip redistribute fixes

4 years agoripd: Fix redistribute/no redistribute rinse repeate commands
Donald Sharp [Tue, 31 Dec 2019 23:48:06 +0000 (18:48 -0500)]
ripd: Fix redistribute/no redistribute rinse repeate commands

ripd was using zclient_redistribute for installation but not
for removal.  As such the lib/zclient.c was not properly tracking
add/removal.  I think it would be best to just let rip to track
this instead of zclient.

Fixes: #5599
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
4 years agoripngd: Fix redistribute/no redistribute rinse repeat commands
Donald Sharp [Tue, 31 Dec 2019 23:41:16 +0000 (18:41 -0500)]
ripngd: Fix redistribute/no redistribute rinse repeat commands

ripngd was using zclient_redistribute for installation but not
for removal.  As such the lib/zclient.c was not properly tracking
add/removal.  I think it would be best to just let ripng to track
this instead of zclient.

Fixes: #5599
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
4 years agoMerge pull request #5589 from ton31337/fix/send_fsm_error_notification_where_needed
Donald Sharp [Tue, 31 Dec 2019 14:11:11 +0000 (09:11 -0500)]
Merge pull request #5589 from ton31337/fix/send_fsm_error_notification_where_needed

bgpd: Send notification to the peer on FSM error

4 years agoMerge pull request #5595 from ton31337/fix/bgp_listen_definition
Donald Sharp [Tue, 31 Dec 2019 14:10:04 +0000 (09:10 -0500)]
Merge pull request #5595 from ton31337/fix/bgp_listen_definition

bgpd: Change description for `[no] bgp listen limit` commands

4 years agoMerge pull request #5598 from zoltan/bgp_cfg_typo
Donatas Abraitis [Tue, 31 Dec 2019 12:19:35 +0000 (14:19 +0200)]
Merge pull request #5598 from zoltan/bgp_cfg_typo

bgpd: fix console typo

4 years agoMerge pull request #5597 from chiragshah6/evpn_dev2
Donatas Abraitis [Tue, 31 Dec 2019 09:07:44 +0000 (11:07 +0200)]
Merge pull request #5597 from chiragshah6/evpn_dev2

bgpd: skip ra for blackhole nexthop type

4 years agobgpd: fix console typo
Zoltan Arnold Nagy [Mon, 30 Dec 2019 18:32:18 +0000 (19:32 +0100)]
bgpd: fix console typo

The console printout had a typo for the number of configured peers label.

Signed-off-by: Zoltan Arnold Nagy <zoltan.arnold.nagy@gmail.com>
4 years agobgpd: Send notification to the peer on FSM error
Donatas Abraitis [Mon, 30 Dec 2019 15:11:04 +0000 (17:11 +0200)]
bgpd: Send notification to the peer on FSM error

We should send a NOTIFICATION message with the Error Code Finite State
Machine Error if we receive NOTIFICATION in OpenSent state
as defined in https://tools.ietf.org/html/rfc4271#section-8.2.2

Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
4 years agobgpd: skip ra for blackhole nexthop type
Chirag Shah [Tue, 3 Dec 2019 20:08:01 +0000 (12:08 -0800)]
bgpd: skip ra for blackhole nexthop type

bgp nexthop cache update triggers RA for global ipv6
nexthop update.
In case of blackhole route type the outgoing interface
information is NULL which leads to bgpd crash.

Skip sending RA for blackhole nexthop type.

Ticket:CM-27299
Reviewed By:
Testing Done:

Configure bgp neighbor over global ipv6 address.
Configure static blackhole route with prefix includes
connected ipv6 global address.
Upon link flap, zebra sends nexthop update to bgp.
Bgp nexthop cache skips sending RA for blackhole nexthop type.

router bgp 65002
 bgp router-id 91.189.93.190
 ...
 neighbor 2001:67c:1360::b peer-group internal

static route:
ipv6 route 2001:67c:1360::/48 Null0 254

iface rowlink.4010
        address 91.189.93.190/32
        address 2001:67c:1360::a/128

Trigger ifdown rowlink.4010; ifup rowlink.4010

Signed-off-by: Chirag Shah <chirag@cumulusnetworks.com>
4 years agoMerge pull request #5596 from donaldsharp/md5_doc
Donatas Abraitis [Sun, 29 Dec 2019 19:11:01 +0000 (21:11 +0200)]
Merge pull request #5596 from donaldsharp/md5_doc

doc: Add bgp neighbor password command

4 years agodoc: Add bgp neighbor password command
Donald Sharp [Fri, 27 Dec 2019 14:20:38 +0000 (09:20 -0500)]
doc: Add bgp neighbor password command

The bgp neighbor password command was not documented additionally
the fact that you may need to instruct the kernel to have more
memory available for tcp sockets when using this feature on a large
number of peers.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
4 years agobgpd: Change description for `[no] bgp listen limit` commands
Donatas Abraitis [Fri, 27 Dec 2019 13:36:28 +0000 (15:36 +0200)]
bgpd: Change description for `[no] bgp listen limit` commands

It's quite confusing when you see this:
```
exit1-debian-9(config-router)# bgp listen
  listen  Configure BGP defaults
```

And:
```
exit1-debian-9(config-router)# no bgp listen
  listen  unset maximum number of BGP Dynamic Neighbors that can be created
```

Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
4 years agodocker: Create build for CentOS 8
Donatas Abraitis [Fri, 27 Dec 2019 12:08:31 +0000 (14:08 +0200)]
docker: Create build for CentOS 8

Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
4 years agopackaging: Fix bogus date in frr.spec.in
Donatas Abraitis [Fri, 27 Dec 2019 09:38:48 +0000 (11:38 +0200)]
packaging: Fix bogus date in frr.spec.in

```
RPM build errors:
    bogus date in %changelog: Sun May 28 2018 Rafael Zalamena <rzalamena@opensourcerouting.org> - 7.3_dev_MyRPMVersion
```

Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
4 years agodoc: Use proper numbering for `packaging-redhat.rst`
Donatas Abraitis [Fri, 27 Dec 2019 09:04:35 +0000 (11:04 +0200)]
doc: Use proper numbering for `packaging-redhat.rst`

Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
4 years agodoc: Add a section in `Building FRR` for CentOS 8
Donatas Abraitis [Thu, 26 Dec 2019 20:34:55 +0000 (22:34 +0200)]
doc: Add a section in `Building FRR` for CentOS 8

Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
4 years agopackaging: Adopt frr.spec.in to CentOS 8
Donatas Abraitis [Mon, 23 Dec 2019 17:24:19 +0000 (19:24 +0200)]
packaging: Adopt frr.spec.in to CentOS 8

Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
4 years agoMerge pull request #5350 from sworleys/Fix-NS-Defualt-Info
Philippe Guibert [Thu, 26 Dec 2019 16:46:08 +0000 (17:46 +0100)]
Merge pull request #5350 from sworleys/Fix-NS-Defualt-Info

zebra: Fix default ns->info should point to default zebra_ns

4 years agoMerge pull request #5579 from donaldsharp/pim_ip_mroute_last
Jafar Al-Gharaibeh [Sun, 22 Dec 2019 18:45:40 +0000 (12:45 -0600)]
Merge pull request #5579 from donaldsharp/pim_ip_mroute_last

vtysh: Ensure interface `ip mroute ...` commands are last

4 years agoMerge pull request #5584 from qlyoung/pim-fix-iph-trust
Jafar Al-Gharaibeh [Sun, 22 Dec 2019 18:45:00 +0000 (12:45 -0600)]
Merge pull request #5584 from qlyoung/pim-fix-iph-trust

pimd: readd iph length checks

4 years agoMerge pull request #5583 from donaldsharp/multicast_nh
Jafar Al-Gharaibeh [Sun, 22 Dec 2019 18:37:37 +0000 (12:37 -0600)]
Merge pull request #5583 from donaldsharp/multicast_nh

bgpd: Allow ipv4 multicast to use v4 nexthops

4 years agoMerge pull request #5581 from Jafaral/pimroute-rf
Quentin Young [Sun, 22 Dec 2019 18:36:39 +0000 (13:36 -0500)]
Merge pull request #5581 from Jafaral/pimroute-rf

pimd: refactor ip mroute cmd

4 years agoMerge pull request #5585 from qlyoung/fix-pimd-mtrace-missing-length-check
Jafar Al-Gharaibeh [Sun, 22 Dec 2019 18:36:08 +0000 (12:36 -0600)]
Merge pull request #5585 from qlyoung/fix-pimd-mtrace-missing-length-check

pimd: fix missing igmp mtrace length check

4 years agopimd: readd iph length checks
Quentin Young [Sun, 22 Dec 2019 01:19:47 +0000 (20:19 -0500)]
pimd: readd iph length checks

Kernel might not hand us a bad packet, but better safe than sorry here.
Validate the IP header length field. Also adds an additional check that
the packet length is sufficient for an IGMP packet, and a check that we
actually have enough for an ip header at all.

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
4 years agoMerge pull request #5268 from qlyoung/vrrp-vrf
Donatas Abraitis [Sun, 22 Dec 2019 18:16:47 +0000 (20:16 +0200)]
Merge pull request #5268 from qlyoung/vrrp-vrf

VRRP VRF support

4 years agopimd: fix missing igmp mtrace length check
Quentin Young [Sun, 22 Dec 2019 02:02:15 +0000 (21:02 -0500)]
pimd: fix missing igmp mtrace length check

We check that the IGMP message is sufficently sized for an mtrace query,
but not a response, leading to uninitialized stack read.

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
4 years agobgpd: Allow ipv4 multicast to use v4 nexthops
Donald Sharp [Sat, 21 Dec 2019 01:06:56 +0000 (20:06 -0500)]
bgpd: Allow ipv4 multicast to use v4 nexthops

When passing a v4 multicast route to a peer send
the v4 nexthop as a preferred methodology.

Fixes: #5582
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
4 years agopimd: refactor ip mroute cmd
Jafar Al-Gharaibeh [Fri, 20 Dec 2019 21:30:55 +0000 (15:30 -0600)]
pimd: refactor ip mroute cmd

combine:
  ip mroute INTERFACE A.B.C.D
  ip mroute INTERFACE A.B.C.D A.B.C.D

into:
  ip mroute INTERFACE A.B.C.D [A.B.C.D]

Signed-off-by: Jafar Al-Gharaibeh <jafar@atcorp.com>
4 years agoMerge pull request #5567 from opensourcerouting/bring-them-back
Mark Stapp [Fri, 20 Dec 2019 19:05:07 +0000 (14:05 -0500)]
Merge pull request #5567 from opensourcerouting/bring-them-back

lib: fix build of the northbound plugins

4 years agoMerge pull request #5563 from mjstapp/fix_nhg_depends_find
Quentin Young [Fri, 20 Dec 2019 18:06:29 +0000 (13:06 -0500)]
Merge pull request #5563 from mjstapp/fix_nhg_depends_find

zebra: improve efficiency of depends_find()

4 years agovtysh: Ensure interface `ip mroute ...` commands are last
Donald Sharp [Fri, 20 Dec 2019 14:47:30 +0000 (09:47 -0500)]
vtysh: Ensure interface `ip mroute ...` commands are last

Ensure when displaying interface based ip mroute commands that they
are last.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
4 years agoMerge pull request #5574 from ton31337/fix/no_bgp_listen_range_peer-group
Donald Sharp [Fri, 20 Dec 2019 13:28:41 +0000 (08:28 -0500)]
Merge pull request #5574 from ton31337/fix/no_bgp_listen_range_peer-group

bgpd: Make sure we can use `no bgp listen range ...`

4 years agobgpd: Make sure we can use `no bgp listen range ...`
Donatas Abraitis [Thu, 19 Dec 2019 20:09:47 +0000 (22:09 +0200)]
bgpd: Make sure we can use `no bgp listen range ...`

Fixes:
```
exit1-debian-9(config-router)# no bgp listen range 192.168.10.0/24 peer-group TEST
% Peer-group does not exist
exit1-debian-9(config-router)#
```
Closes https://github.com/FRRouting/frr/issues/5570

Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
4 years agolib: fix build of the northbound plugins
Renato Westphal [Thu, 19 Dec 2019 15:44:37 +0000 (12:44 -0300)]
lib: fix build of the northbound plugins

Commit 1b3e9a21dd4 removed the global visibility of the yang_modules
variable, breaking the build of all northbound plugins. Revert a
small part of that commit to fix this issue.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
4 years agoMerge pull request #5566 from ton31337/fix/ebgp-requires-policy_with_ibgp
Donald Sharp [Thu, 19 Dec 2019 14:55:19 +0000 (09:55 -0500)]
Merge pull request #5566 from ton31337/fix/ebgp-requires-policy_with_ibgp

 bgpd: Do not apply eBGP policy for iBGP peers

4 years agoMerge pull request #5543 from Jafaral/routerid
Donatas Abraitis [Thu, 19 Dec 2019 09:26:18 +0000 (11:26 +0200)]
Merge pull request #5543 from Jafaral/routerid

zebra: add 'show router-id'

4 years agotests: Test if eBGP policy is not applied to iBGP peers
Donatas Abraitis [Thu, 19 Dec 2019 08:53:05 +0000 (10:53 +0200)]
tests: Test if eBGP policy is not applied to iBGP peers

Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
4 years agobgpd: Do not apply eBGP policy for iBGP peers
Donatas Abraitis [Thu, 19 Dec 2019 08:51:13 +0000 (10:51 +0200)]
bgpd: Do not apply eBGP policy for iBGP peers

Treat iBGP peers as they have a policy applied.

Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
4 years agoMerge pull request #5549 from donaldsharp/automated
Donatas Abraitis [Thu, 19 Dec 2019 08:09:39 +0000 (10:09 +0200)]
Merge pull request #5549 from donaldsharp/automated

doc: Update workflow to include new automated testing Requirement

4 years agoMerge pull request #5561 from qlyoung/doc-update-overview
Donatas Abraitis [Thu, 19 Dec 2019 08:09:23 +0000 (10:09 +0200)]
Merge pull request #5561 from qlyoung/doc-update-overview

Doc update overview

4 years agoMerge pull request #5564 from taspelund/end-of-rib_notification
Sri Mohana Singamsetty [Thu, 19 Dec 2019 05:13:49 +0000 (21:13 -0800)]
Merge pull request #5564 from taspelund/end-of-rib_notification

bgpd: Remove misleading 'NOTIFICATION' string from End-of-RIB log

4 years agovrrpd: support namespace vrf too
Quentin Young [Wed, 18 Dec 2019 21:01:44 +0000 (16:01 -0500)]
vrrpd: support namespace vrf too

-.-

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
4 years agobgpd: Remove misleading 'NOTIFICATION' string from End-of-RIB log
Trey Aspelund [Wed, 18 Dec 2019 20:58:26 +0000 (15:58 -0500)]
bgpd: Remove misleading 'NOTIFICATION' string from End-of-RIB log

'NOTIFICATION' string in this message incorrectly implies a BGP
Notification message was the cause of this log. Removing it to
reduce confusion and replacing with function name.

Signed-off-by: Trey Aspelund <taspelund@cumulusnetworks.com>
4 years agolib: document vrf_socket(), vrf_bind()
Quentin Young [Wed, 18 Dec 2019 20:58:08 +0000 (15:58 -0500)]
lib: document vrf_socket(), vrf_bind()

These two don't really do what you might expect, document them

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
4 years agozebra: improve efficiency of depends_find()
Mark Stapp [Wed, 18 Dec 2019 20:34:37 +0000 (15:34 -0500)]
zebra: improve efficiency of depends_find()

Do less malloc and free in depends_find(), when looking for
a singleton nexthop in the nhg hash.

Signed-off-by: Mark Stapp <mjs@voltanet.io>
4 years agodoc: fix duplicate -S option in bgpd manpage
Quentin Young [Wed, 18 Dec 2019 19:14:36 +0000 (14:14 -0500)]
doc: fix duplicate -S option in bgpd manpage

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
4 years agodoc: update overview.rst for the new millennium
Quentin Young [Wed, 18 Dec 2019 19:09:31 +0000 (14:09 -0500)]
doc: update overview.rst for the new millennium

Provide a more succinct summary of what FRR is, what it does, where it
sits in the network stack. Also remove some outdated comments about
features.

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
4 years agoMerge pull request #5559 from mjstapp/fix_test_typelist
Quentin Young [Wed, 18 Dec 2019 19:20:25 +0000 (14:20 -0500)]
Merge pull request #5559 from mjstapp/fix_test_typelist

tests: fix endian bug in test_typelist

4 years agoMerge pull request #5556 from donaldsharp/ospf_use_after
Mark Stapp [Wed, 18 Dec 2019 18:44:04 +0000 (13:44 -0500)]
Merge pull request #5556 from donaldsharp/ospf_use_after

ospfd: Prevent use after free on shutdown

4 years agotests: fix endian bug in test_typelist
Mark Stapp [Wed, 18 Dec 2019 15:52:08 +0000 (10:52 -0500)]
tests: fix endian bug in test_typelist

Fix a byte-swapping bug that appeared on big-endian arch but
wasn't visible on little-endian runs.

Signed-off-by: Mark Stapp <mjs@voltanet.io>
4 years agoospfd: Prevent use after free on shutdown
Donald Sharp [Wed, 18 Dec 2019 14:23:38 +0000 (09:23 -0500)]
ospfd: Prevent use after free on shutdown

Address Sanitizer is reporting this issue:

==26177==ERROR: AddressSanitizer: heap-use-after-free on address 0x6120000238d8 at pc 0x7f88f7c4fa93 bp 0x7fff9a641830 sp 0x7fff9a641820
READ of size 8 at 0x6120000238d8 thread T0
    #0 0x7f88f7c4fa92 in if_delete lib/if.c:290
    #1 0x42192e in ospf_vl_if_delete ospfd/ospf_interface.c:912
    #2 0x42192e in ospf_vl_delete ospfd/ospf_interface.c:990
    #3 0x4a6208 in no_ospf_area_vlink ospfd/ospf_vty.c:1227
    #4 0x7f88f7c1553d in cmd_execute_command_real lib/command.c:1073
    #5 0x7f88f7c19b1e in cmd_execute_command lib/command.c:1132
    #6 0x7f88f7c19e8e in cmd_execute lib/command.c:1288
    #7 0x7f88f7cd7523 in vty_command lib/vty.c:516
    #8 0x7f88f7cd79ff in vty_execute lib/vty.c:1285
    #9 0x7f88f7cde4f9 in vtysh_read lib/vty.c:2119
    #10 0x7f88f7ccb845 in thread_call lib/thread.c:1549
    #11 0x7f88f7c5d6a7 in frr_run lib/libfrr.c:1093
    #12 0x412976 in main ospfd/ospf_main.c:221
    #13 0x7f88f73b082f in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2082f)
    #14 0x413c78 in _start (/usr/local/master/sbin/ospfd+0x413c78)

Effectively we are in a shutdown phase and as part of shutdown we delete the
ospf interface pointer ( ifp->info ).  The interface deletion code
was modified in the past year to pass in the address of operator
to allow us to NULL out the holding pointer.  The catch here
is that we free the oi and then delete the interface passing
in the address of the oi->ifp pointer, causing a use after free.

Fixes: #5555
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
4 years agoMerge pull request #5552 from sworleys/NHG-Set-RTNH_F_ONLINK
Donatas Abraitis [Wed, 18 Dec 2019 06:06:31 +0000 (08:06 +0200)]
Merge pull request #5552 from sworleys/NHG-Set-RTNH_F_ONLINK

zebra: set RTNH_F_ONLINK in nexthop creation

4 years agozebra: add 'show router-id'
Jafar Al-Gharaibeh [Tue, 17 Dec 2019 06:02:12 +0000 (00:02 -0600)]
zebra: add 'show router-id'

router-id is buried deep in "show running-config", this new
command makes it easy to retrieve the user configured router-id.
Example:

  # configure terminal
  (config)# router-id 1.2.3.4
  (config)# end

  # show router-id
  router-id 1.2.3.4

  # configure terminal
  (config)# no router-id 1.2.3.4
  (config)# end

  # show router-id
  #

Signed-off-by: Jafar Al-Gharaibeh <jafar@atcorp.com>
4 years agoMerge pull request #5514 from Jafaral/nhrp-docs
Quentin Young [Tue, 17 Dec 2019 20:17:35 +0000 (15:17 -0500)]
Merge pull request #5514 from Jafaral/nhrp-docs

doc: add discussion for a handful of nhrp commands

4 years agodoc: Update workflow to include new automated testing Requirement
Donald Sharp [Tue, 17 Dec 2019 15:32:37 +0000 (10:32 -0500)]
doc: Update workflow to include new automated testing Requirement

Update the workflow.rst file to outline new requirement for
features to include automated testing of some sort.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
4 years agozebra: set RTNH_F_ONLINK in nexthop creation
Stephen Worley [Tue, 17 Dec 2019 19:24:22 +0000 (14:24 -0500)]
zebra: set RTNH_F_ONLINK in nexthop creation

We were not setting the RTNH_F_ONLINK flag where appropriate
when creating nexthop objects in the kernel.

Set it on the nhmsg.nh_flags netlink message.

Signed-off-by: Stephen Worley <sworley@cumulusnetworks.com>
4 years agodoc: add discussion for a handful of nhrp commands
Jafar Al-Gharaibeh [Tue, 17 Dec 2019 17:03:09 +0000 (11:03 -0600)]
doc: add discussion for a handful of nhrp commands

Signed-off-by: Jafar Al-Gharaibeh <jafar@atcorp.com>
4 years agoMerge pull request #5548 from mjstapp/vty_nhg_alias
Quentin Young [Tue, 17 Dec 2019 16:18:55 +0000 (11:18 -0500)]
Merge pull request #5548 from mjstapp/vty_nhg_alias

vtysh: add an alias for the nexthop-group config targets

4 years agoMerge pull request #5508 from ton31337/feature/show_ip_route_summary_json
Quentin Young [Tue, 17 Dec 2019 15:05:13 +0000 (10:05 -0500)]
Merge pull request #5508 from ton31337/feature/show_ip_route_summary_json

zebra: Print json output for show_route_summary_cmd

4 years agovtysh: add an alias for the nexthop-group config targets
Mark Stapp [Tue, 17 Dec 2019 14:56:26 +0000 (09:56 -0500)]
vtysh: add an alias for the nexthop-group config targets

Use an alias for the daemons who process the nexthop-group
config cli; makes it easier to expand that list in the future.

Signed-off-by: Mark Stapp <mjs@voltanet.io>
4 years agoMerge pull request #5541 from sworleys/NHG-Fixes
Russ White [Tue, 17 Dec 2019 13:30:37 +0000 (08:30 -0500)]
Merge pull request #5541 from sworleys/NHG-Fixes

zebra: a couple nhg fixes

4 years agoMerge pull request #5540 from sworleys/NH-Defualt-Weight-One
Russ White [Tue, 17 Dec 2019 13:29:46 +0000 (08:29 -0500)]
Merge pull request #5540 from sworleys/NH-Defualt-Weight-One

lib: default nexthop weights to one

4 years agozebra: pass type when finding individual nexthop
Stephen Worley [Mon, 16 Dec 2019 21:46:30 +0000 (16:46 -0500)]
zebra: pass type when finding individual nexthop

When we are doing a lookup on an individual nexthop,
we should still be passing along the type that gets passed
via the arguments. Otherwise, we will always think we own that
NHE when in reality anyone could have put that into the
kernel.

Before this patch, nexthops in the kernel will get swepped
out even if we didn't create them.

Signed-off-by: Stephen Worley <sworley@cumulusnetworks.com>
4 years agozebra: null check re->nhe not re->nhe->nhg on attach
Stephen Worley [Mon, 16 Dec 2019 21:37:14 +0000 (16:37 -0500)]
zebra: null check re->nhe not re->nhe->nhg on attach

We should be NULL checking the entire re->nhe struct, not
the group inside of it. When we get routes from the kernel
using a nexthop group (and future protocols) they will only
pass us an ID to use. Hence, this struct can (and will be)
NULL on first attach when only passed an ID.

There shouldn't be a situation where we have an re->nhe
and don't have an re->nhe->nhg anyway.

Before this patch you can easily make zebra crash by creating a
route in the kernel using a nexthop group and starting zebra.

`ip next add dev lo id 111`
`ip route add 1.1.1.1/32 nhid 111`

Signed-off-by: Stephen Worley <sworley@cumulusnetworks.com>
4 years agolib: default nexthop weights to one
Stephen Worley [Mon, 16 Dec 2019 20:42:37 +0000 (15:42 -0500)]
lib: default nexthop weights to one

Default all nexthop weights to one. The linux kernel does
some weird stuff where it adds one to all nexthop weight values
it gets. So, we added df7fb5800b3798057747873c8be245eb13f3ec36 with
some special subtracing/adding to account for this. Though, that patch
did not account for the default case of the weight being zero for
elements in the group.

Hence, this patch defaults the nexthop weight to one during creation.
This should be a valid value on all platforms anyway so shouldn't
affect anything.

Signed-off-by: Stephen Worley <sworley@cumulusnetworks.com>
4 years agoMerge pull request #5502 from ton31337/fix/rr_do_not_show_fqdn
Sri Mohana Singamsetty [Mon, 16 Dec 2019 17:43:01 +0000 (09:43 -0800)]
Merge pull request #5502 from ton31337/fix/rr_do_not_show_fqdn

bgpd: Show `ip` and `fqdn` in json output for `show [ip] bgp json`

4 years agoMerge pull request #5379 from pogojotz/fix-bgp-neighbors-prefix-count-segfault
Sri Mohana Singamsetty [Mon, 16 Dec 2019 17:41:35 +0000 (09:41 -0800)]
Merge pull request #5379 from pogojotz/fix-bgp-neighbors-prefix-count-segfault

bgpd: Special handling for 2-level routing tables

4 years agoMerge pull request #5427 from liam-mcb/igmp-join-any
Donald Sharp [Mon, 16 Dec 2019 12:47:41 +0000 (07:47 -0500)]
Merge pull request #5427 from liam-mcb/igmp-join-any

pimd: Add command to join any-source multicast.

4 years agoMerge pull request #5523 from donaldsharp/mlag_single_compile
David Lamparter [Mon, 16 Dec 2019 12:45:36 +0000 (13:45 +0100)]
Merge pull request #5523 from donaldsharp/mlag_single_compile

mlag compile issue fixups

4 years agoMerge pull request #5535 from opensourcerouting/santa-elf
Donald Sharp [Mon, 16 Dec 2019 12:42:47 +0000 (07:42 -0500)]
Merge pull request #5535 from opensourcerouting/santa-elf

*: cleanup elves were here

4 years agozebra: Do not build mlag protobuf support if version 3 is not avail
Donald Sharp [Tue, 10 Dec 2019 19:06:33 +0000 (14:06 -0500)]
zebra: Do not build mlag protobuf support if version 3 is not avail

Older versions of protobuf-c do not support version 3 of the
protocol.  Add a check into the system to see if we have
version 3 available and if so, compile it in.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
4 years agozebra: Allow zebra_mlag to compile with no j factor
Donald Sharp [Tue, 10 Dec 2019 01:48:21 +0000 (20:48 -0500)]
zebra: Allow zebra_mlag to compile with no j factor

If you compile FRR with no j factor zebra_mlag.c fails to
build because the vtysh extraction methodology runs first
before the protobuf compiler runs and that compilation does
not have the proper dependancy chain built for the inclusions
that zebra_mlag.c had.  Moving the DEF* code into a zebra_mlag_vty.c
which can be included in the vtysh extraction code and has
no mlag.proto dependancies makes the compilation work better.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
4 years agotools: symalyzer
David Lamparter [Wed, 27 Nov 2019 22:19:10 +0000 (23:19 +0100)]
tools: symalyzer

Signed-off-by: David Lamparter <equinox@diac24.net>
4 years agolib/linklist: flip the bitrot compost
David Lamparter [Wed, 27 Nov 2019 21:52:50 +0000 (22:52 +0100)]
lib/linklist: flip the bitrot compost

The whole lib/linklist.c code shouldn't really be used for new code (the
lib/typesafe.h bits are better.)  So, a new need for these unused
functions shouldn't be coming up.

Signed-off-by: David Lamparter <equinox@diac24.net>
4 years agolib: random unused bits cleanup
David Lamparter [Wed, 27 Nov 2019 20:49:00 +0000 (21:49 +0100)]
lib: random unused bits cleanup

Signed-off-by: David Lamparter <equinox@diac24.net>
4 years agolib/prefix: flip the bitrot compost
David Lamparter [Wed, 27 Nov 2019 20:43:27 +0000 (21:43 +0100)]
lib/prefix: flip the bitrot compost

Signed-off-by: David Lamparter <equinox@diac24.net>
4 years agoMerge pull request #5452 from mjstapp/fix_notify_nhg
Donald Sharp [Fri, 13 Dec 2019 19:11:34 +0000 (14:11 -0500)]
Merge pull request #5452 from mjstapp/fix_notify_nhg

zebra: align dplane notify processing with nhg work

4 years agolib: make some variables static
David Lamparter [Wed, 27 Nov 2019 20:17:57 +0000 (21:17 +0100)]
lib: make some variables static

Signed-off-by: David Lamparter <equinox@diac24.net>
4 years agolib: completely get rid of the MTYPE alias hack
David Lamparter [Wed, 13 Nov 2019 23:21:10 +0000 (00:21 +0100)]
lib: completely get rid of the MTYPE alias hack

Sometimes the easiest solution is hardest to find... the whole point of
all this "static const", aliasing, & co. was to make "MTYPE_FOO" usable
without adding the extra & as in "&MTYPE_FOO".  Making it a size-1 array
does that perfectly through the magic of ISO C array decay...

Signed-off-by: David Lamparter <equinox@diac24.net>
4 years agolib: make rcu_free() NULL-safe
David Lamparter [Wed, 13 Nov 2019 14:42:32 +0000 (15:42 +0100)]
lib: make rcu_free() NULL-safe

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
4 years agobgpd: remove redundant VNC build specs
David Lamparter [Wed, 27 Nov 2019 18:05:35 +0000 (19:05 +0100)]
bgpd: remove redundant VNC build specs

rfapi_descriptor_rfp_utils.c is already built into libbgp.a and these
include paths have no effect at all.

Signed-off-by: David Lamparter <equinox@diac24.net>
4 years agoMerge pull request #5532 from donaldsharp/leaks
Jafar Al-Gharaibeh [Fri, 13 Dec 2019 04:47:45 +0000 (22:47 -0600)]
Merge pull request #5532 from donaldsharp/leaks

Leaks

4 years agoisisd: Free memory when confused
Donald Sharp [Fri, 13 Dec 2019 00:30:21 +0000 (19:30 -0500)]
isisd: Free memory when confused

When you call into lsp_update with confusion, the lsp is purged
and we do not do anything with the created tlv's from parsing
the incoming data.  To prevent the tlv's from being leaked
note confusion and delete the unneeded data.

Fixes: #5496
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
4 years agoripd, ripngd: Free up list after call into nb_cli_rpc
Donald Sharp [Thu, 12 Dec 2019 23:48:04 +0000 (18:48 -0500)]
ripd, ripngd: Free up list after call into nb_cli_rpc

We have a clear memory leak after running `clear ip rip`
Fix this.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
4 years agoMerge pull request #5531 from qlyoung/fix-ospf-ip-hl-trust
Jafar Al-Gharaibeh [Thu, 12 Dec 2019 19:19:36 +0000 (13:19 -0600)]
Merge pull request #5531 from qlyoung/fix-ospf-ip-hl-trust

Fix ospf ip hl trust

4 years agozebra: handle route notification with no nexthops
Mark Stapp [Thu, 12 Dec 2019 14:53:55 +0000 (09:53 -0500)]
zebra: handle route notification with no nexthops

Handle the special case where a route update contains
no installed nexthops - that means the route is not
installed.

Signed-off-by: Mark Stapp <mjs@voltanet.io>
4 years agozebra: Print json output for show_route_summary_cmd
Donatas Abraitis [Mon, 9 Dec 2019 07:33:48 +0000 (09:33 +0200)]
zebra: Print json output for show_route_summary_cmd

```
spine1-debian-9# sh ip route summary json
{
  "routes":[
    {
      "fib":1,
      "rib":1,
      "type":"kernel"
    },
    {
      "fib":11,
      "rib":11,
      "type":"connected"
    },
    {
      "fib":2,
      "rib":2,
      "type":"ebgp"
    },
    {
      "fib":1,
      "rib":1,
      "type":"ibgp"
    }
  ],
  "routesTotal":15,
  "routesTotalFib":15
}
spine1-debian-9# sh ipv6 route summary json
{
  "routes":[
    {
      "fib":7,
      "rib":7,
      "type":"connected"
    }
  ],
  "routesTotal":7,
  "routesTotalFib":7
}
```

Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
4 years agopimd: Add command to join any-source multicast.
Liam McBirnie [Thu, 5 Dec 2019 20:57:50 +0000 (21:57 +0100)]
pimd: Add command to join any-source multicast.

Allow 'ip igmp join' to join group for any source if no source is
specified.
Disallow joining source "0.0.0.0" as it is used to define an
any-source multicast group.

Signed-off-by: Liam McBirnie <liam.mcbirnie@boeing.com>