]> git.proxmox.com Git - mirror_frr.git/log
mirror_frr.git
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 agoospfd: tiny style fix
Quentin Young [Thu, 12 Dec 2019 05:15:25 +0000 (00:15 -0500)]
ospfd: tiny style fix

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
4 years agoospfd: sizeof(pointer) -> sizeof(pointed-at)
Quentin Young [Thu, 12 Dec 2019 05:13:58 +0000 (00:13 -0500)]
ospfd: sizeof(pointer) -> sizeof(pointed-at)

14 years old eh?

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
4 years agoospfd: fix misplaced trust in ip header length
Quentin Young [Thu, 12 Dec 2019 05:09:39 +0000 (00:09 -0500)]
ospfd: fix misplaced trust in ip header length

We actually don't validate the IHL field, although it certainly looks
like we do at a casual glance.

This patch saves us from an assert in case we actually do get an IP
packet with an incorrect header length field.

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
4 years agoMerge pull request #5528 from opensourcerouting/bmp-dns-fixing
Donald Sharp [Wed, 11 Dec 2019 18:22:34 +0000 (13:22 -0500)]
Merge pull request #5528 from opensourcerouting/bmp-dns-fixing

BMP: improve active outbound connection details

4 years agobgpd: Allow failed hostname lookup to continue in bmp (#5399)
David Lamparter [Wed, 11 Dec 2019 18:21:18 +0000 (19:21 +0100)]
bgpd: Allow failed hostname lookup to continue in bmp (#5399)

bgpd: Allow failed hostname lookup to continue in bmp

4 years agoMerge pull request #5494 from opensourcerouting/mlag-module
Donald Sharp [Wed, 11 Dec 2019 18:14:02 +0000 (13:14 -0500)]
Merge pull request #5494 from opensourcerouting/mlag-module

zebra: create zebra_cumulus_mlag module

4 years agozebra: accept async notification for un-install
Mark Stapp [Wed, 11 Dec 2019 16:22:53 +0000 (11:22 -0500)]
zebra: accept async notification for un-install

Handle an async notification when a route-update operation
uninstalls one route in favor of another.

Signed-off-by: Mark Stapp <mjs@voltanet.io>
4 years agoMerge pull request #5497 from donaldsharp/unequality_ecmp
Mark Stapp [Wed, 11 Dec 2019 16:02:15 +0000 (11:02 -0500)]
Merge pull request #5497 from donaldsharp/unequality_ecmp

Unequality ecmp

4 years agoMerge pull request #5527 from opensourcerouting/skiplist-uninit-warning
Mark Stapp [Wed, 11 Dec 2019 14:03:08 +0000 (09:03 -0500)]
Merge pull request #5527 from opensourcerouting/skiplist-uninit-warning

lib/skiplist: fix gcc-9 used-uninitialized warning

4 years agobgpd/bmp: print active outbound connections
David Lamparter [Wed, 11 Dec 2019 12:35:16 +0000 (13:35 +0100)]
bgpd/bmp: print active outbound connections

... including timer & details about current state and last failure.

Fixes: #5401
Signed-off-by: David Lamparter <equinox@diac24.net>
4 years agolib,nhrpd,bgpd/bmp: pass resolver failure details
David Lamparter [Wed, 11 Dec 2019 12:33:36 +0000 (13:33 +0100)]
lib,nhrpd,bgpd/bmp: pass resolver failure details

To keep the calling code agnostic of the DNS resolver libary used, pass
a strerror-style string instead of a status code that would need extra
handling.

Signed-off-by: David Lamparter <equinox@diac24.net>
4 years agobgpd/bmp: actually print uptime
David Lamparter [Wed, 11 Dec 2019 11:34:56 +0000 (12:34 +0100)]
bgpd/bmp: actually print uptime

Forgot to replace the stub here when finishing up...

Signed-off-by: David Lamparter <equinox@diac24.net>
4 years agolib/resolver: support/bypass IP literals
David Lamparter [Wed, 11 Dec 2019 11:27:05 +0000 (12:27 +0100)]
lib/resolver: support/bypass IP literals

libc-ares doesn't do IP literals, so we have to do that before running
off to do DNS.  Since this isn't BMP specific, move to lib/ so NHRP can
benefit too.

Signed-off-by: David Lamparter <equinox@diac24.net>
4 years agolib/skiplist: fix gcc-9 used-uninitialized warning
David Lamparter [Tue, 10 Dec 2019 16:22:49 +0000 (17:22 +0100)]
lib/skiplist: fix gcc-9 used-uninitialized warning

Under some circumstances (apparently depends on several optimization
flags), gcc-9 throws an used-uninitialized warning for this variable in
the skiplist code.  Just initialize to NULL.

Signed-off-by: David Lamparter <equinox@diac24.net>
4 years agozebra: fix sign-compare warning in cumulus mlag
David Lamparter [Wed, 11 Dec 2019 10:41:54 +0000 (11:41 +0100)]
zebra: fix sign-compare warning in cumulus mlag

This trips up the CI on Ubuntu 16.04.  (I guess the code wasn't getting
built there before...)

Signed-off-by: David Lamparter <equinox@diac24.net>
4 years agozebra: create zebra_cumulus_mlag module
David Lamparter [Wed, 4 Dec 2019 03:18:12 +0000 (04:18 +0100)]
zebra: create zebra_cumulus_mlag module

This is pretty much just to get rid of the HAVE_CUMULUS.  The
hook/module API is as "wtf" as it was before...

Signed-off-by: David Lamparter <equinox@diac24.net>
4 years agoMerge pull request #5517 from mjstapp/fix_evpn_state
Donald Sharp [Tue, 10 Dec 2019 22:14:34 +0000 (17:14 -0500)]
Merge pull request #5517 from mjstapp/fix_evpn_state

zebra: use correct state when installing evpn macs

4 years agoMerge pull request #5521 from mjstapp/fix_pim_upstream_sa
Donald Sharp [Tue, 10 Dec 2019 22:14:03 +0000 (17:14 -0500)]
Merge pull request #5521 from mjstapp/fix_pim_upstream_sa

pimd: clear SA warning in pimd

4 years agopimd: clear SA warning in pimd
Mark Stapp [Tue, 10 Dec 2019 17:10:44 +0000 (12:10 -0500)]
pimd: clear SA warning in pimd

Remove a dead store in pim_upstream.c to clear up an SA
warning.

Signed-off-by: Mark Stapp <mjs@voltanet.io>
4 years agoFix bgp transit double free (#5436)
David Lamparter [Tue, 10 Dec 2019 16:56:57 +0000 (17:56 +0100)]
Fix bgp transit double free (#5436)

Fix bgp transit double free

4 years agoMerge pull request #5511 from Jafaral/ipmroute
Russ White [Tue, 10 Dec 2019 13:55:57 +0000 (08:55 -0500)]
Merge pull request #5511 from Jafaral/ipmroute

doc: document ip mroute static route cmd

4 years agoMerge pull request #5513 from m-varasteh/fix-running-entry-in-vrf-change
Renato Westphal [Tue, 10 Dec 2019 13:03:01 +0000 (10:03 -0300)]
Merge pull request #5513 from m-varasteh/fix-running-entry-in-vrf-change

lib: fixes invalid running_entry when VRF is changed

4 years agoMerge pull request #5429 from Spantik/bug_fix
Donatas Abraitis [Tue, 10 Dec 2019 07:43:28 +0000 (09:43 +0200)]
Merge pull request #5429 from Spantik/bug_fix

BGP: BGP assert when it tries to access peer which is closed.

4 years agolib: fixes invalid running_entry when VRF is changed
Mahdi Varasteh [Tue, 10 Dec 2019 05:05:17 +0000 (08:35 +0330)]
lib: fixes invalid running_entry when VRF is changed

we just unset the entry from old node and add it to the new one

Signed-off-by: Mahdi Varasteh <mahdy.varasteh@gmail.com>
4 years agodoc: document ip mroute static route cmd
Jafar Al-Gharaibeh [Mon, 9 Dec 2019 22:55:14 +0000 (16:55 -0600)]
doc: document ip mroute static route cmd

Signed-off-by: Jafar Al-Gharaibeh <jafar@atcorp.com>
4 years agoMerge pull request #5509 from manuhalo/fix_isis_circ_del
Renato Westphal [Mon, 9 Dec 2019 21:34:49 +0000 (18:34 -0300)]
Merge pull request #5509 from manuhalo/fix_isis_circ_del

isisd: clean ipv4/6 circuit config on destroy

4 years agolib,zebra: add api to enforce nexthop sort order when copying
Mark Stapp [Mon, 9 Dec 2019 21:02:57 +0000 (16:02 -0500)]
lib,zebra: add api to enforce nexthop sort order when copying

Add an api that creates a copy of a list of nexthops and
enforces the canonical sort ordering; consolidate some nhg
code to avoid copy-and-paste. The zebra dplane uses
that api when a plugin sets up a list of nexthops, ensuring
that the plugin's list is ordered when it's processed in
zebra.

Signed-off-by: Mark Stapp <mjs@voltanet.io>
4 years agozebra: align dplane notify processing with nhg work
Mark Stapp [Mon, 2 Dec 2019 17:03:57 +0000 (12:03 -0500)]
zebra: align dplane notify processing with nhg work

The processing of dataplane route notifications was a little
off-target after the nexthop-group re-work. This should allow
notifications to work better.

Signed-off-by: Mark Stapp <mjs@voltanet.io>
4 years agolib: Add weight to nexthop for nexthop-group nexthops
Donald Sharp [Fri, 6 Dec 2019 17:28:38 +0000 (12:28 -0500)]
lib: Add weight to nexthop for nexthop-group nexthops

Add the ability to read in the weight of a nexthop and store/handle
it appropriately

nexthop-group BLUE
  nexthop 192.168.201.44 weight 33
  nexthop 192.168.201.45 weight 66
  nexthop 192.168.201.46 weight 99

Is appropriately read in and handled as appropriate.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
4 years agolib, zebra: Allow for encode/decode of nexthop weight in pass down
Donald Sharp [Fri, 6 Dec 2019 15:28:05 +0000 (10:28 -0500)]
lib, zebra: Allow for encode/decode of nexthop weight in pass down

Add code to encode/decode the nexthop weight when we pass it down
into zebra.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
4 years agolib, zebra: Allow for installation of a weighted nexthop
Donald Sharp [Fri, 6 Dec 2019 13:58:47 +0000 (08:58 -0500)]
lib, zebra: Allow for installation of a weighted nexthop

Linux has the idea of allowing a weight to be sent
down as part of a nexthop group to allow the kernel
to weight particular nexthop paths a bit more or less
than others.

See:
http://tldp.org/HOWTO/Adv-Routing-HOWTO/lartc.rpdb.multiple-links.html

Allow for installation into the kernel using the weight attribute
associated with the nexthop.

This code is foundational in that it just sets up the ability
to do this, we do not use it yet.  Further commits will
allow for the pass through of this data from upper level protocols.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
4 years agoisisd: clean ipv4/6 circuit config on destroy
Emanuele Di Pascale [Mon, 9 Dec 2019 17:22:25 +0000 (18:22 +0100)]
isisd: clean ipv4/6 circuit config on destroy

when deleting an isis interface config with 'no [ip|ipv6] router isis'
we are destroying the isis yang container for that interface, but the
actual circuit struct is kept, and so are the flgs determining whether
that circuit is configured for ipv4 and/or ipv6. This caused issues
when removing and re-adding configuration, as the area counters for
ip circuits were not correctly updated and the topology was never
populated.

Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
4 years agobgpd: BGP assert when it tries to access peer which is closed.
Santosh P K [Mon, 25 Nov 2019 16:49:38 +0000 (08:49 -0800)]
bgpd: BGP assert when it tries to access peer which is closed.

Problem: BGP peer pointer is present in keepalive hash table
even when socket has been closed in some race condition.
When keepalive tries to access this peer it asserts.

RCA: Below sequence of events causing assert.
1. Config node peer has went down due to TCP reset
   it's FD has been set to -1.
2. Doppelganger peer goes to established state and it has
   been added to peer hash table for keepalive when it was
   in openconfirm state.
3. Config node parameters including FD are exchanged with
   doppelganger. Doppelganger will not have FD -1.
4. Doppelganger will be deleted as part of this it will
   remove it from the keepalive peer hash table.
5. While removing from hash table it tries to acquire lock.
6. During this time keepalive thread has the lock and in
   a loop trying to send keepalive for peers in hash table.
7. It tries to send keepalive for doppelganger peer with fd
   set to -1 and asserts.

Signed-off-by: Santosh P K <sapk@vmware.com>
4 years agoMerge pull request #5498 from mjstapp/sharp_with_labels
Donald Sharp [Sat, 7 Dec 2019 16:44:02 +0000 (11:44 -0500)]
Merge pull request #5498 from mjstapp/sharp_with_labels

lib,sharpd: support labelled nexthop-groups in sharpd

4 years agoMerge pull request #5499 from sworleys/Pbr-Detail
Jafar Al-Gharaibeh [Sat, 7 Dec 2019 00:02:08 +0000 (18:02 -0600)]
Merge pull request #5499 from sworleys/Pbr-Detail

pbrd: make the show pbr map output better

4 years agoMerge pull request #5421 from sworleys/PBR-Del-Mark-All-Seq
Jafar Al-Gharaibeh [Fri, 6 Dec 2019 23:49:56 +0000 (17:49 -0600)]
Merge pull request #5421 from sworleys/PBR-Del-Mark-All-Seq

pbrd: only remove interface after all seq uninstalled

4 years agoMerge pull request #5355 from AnuradhaKaruppiah/pim-state-machine-fixes
Jafar Al-Gharaibeh [Fri, 6 Dec 2019 23:47:07 +0000 (17:47 -0600)]
Merge pull request #5355 from AnuradhaKaruppiah/pim-state-machine-fixes

PIM state machine fixes

4 years agobgpd: more attribute parsing cleanup & paranoia
Quentin Young [Tue, 3 Dec 2019 20:48:27 +0000 (15:48 -0500)]
bgpd: more attribute parsing cleanup & paranoia

* Move VNC interning to the appropriate spot
* Use existing bgp_attr_flush_encap to free encap sets
* Assert that refcounts are correct before exiting to keep the demons
  contained in their fiery prison

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
4 years agoMerge pull request #4765 from opensourcerouting/defaults-v2
Donald Sharp [Fri, 6 Dec 2019 19:07:42 +0000 (14:07 -0500)]
Merge pull request #4765 from opensourcerouting/defaults-v2

lib/*: new config defaults system, v2

4 years agopbrd: use yes/no for pbr map validity vty output
Stephen Worley [Thu, 5 Dec 2019 22:19:20 +0000 (17:19 -0500)]
pbrd: use yes/no for pbr map validity vty output

Change the pbr map validity state to indicate yes/no
rather than 1/0 in the `show pbr map` command.

Humans aren't robots, so don't use binary.

Signed-off-by: Stephen Worley <sworley@cumulusnetworks.com>
4 years agopbrd: use spaces in show pbr map vty output
Stephen Worley [Thu, 5 Dec 2019 22:00:32 +0000 (17:00 -0500)]
pbrd: use spaces in show pbr map vty output

We were using a mix of spaces and tabsin show pbr map vty output.
Tabs can be inconsistent depending on the system settings.
Using spaces is a safer option for more consistent output.

Signed-off-by: Stephen Worley <sworley@cumulusnetworks.com>
4 years agodoc: add show pbr map doc
Stephen Worley [Thu, 5 Dec 2019 21:26:37 +0000 (16:26 -0500)]
doc: add show pbr map doc

Add some doc for the `show pbr map [NAME] [detail]` command.

Signed-off-by: Stephen Worley <sworley@cumulusnetworks.com>
4 years agopbrd: make vty nexthop/nexthop-group output consistent
Stephen Worley [Thu, 5 Dec 2019 21:17:42 +0000 (16:17 -0500)]
pbrd: make vty nexthop/nexthop-group output consistent

The vty output for pbr maps with a nexthop-group was not
consistent with those configured with an individual nexthop.
Fix that so its easier for users to read.

alfred# show pbr map
  pbr-map TEST1 valid: 1
    Seq: 222 rule: 521
        Installed: yes Reason: Valid
        SRC Match: 2.2.2.2/32
        Nexthop-Group: blue
                Installed: yes Tableid: 10000
    Seq: 333 rule: 632
        Installed: yes Reason: Valid
        SRC Match: 3.3.3.3/32
        Nexthop-Group: blue
                Installed: yes Tableid: 10000
    Seq: 444 rule: 743
        Installed: yes Reason: Valid
        SRC Match: 4.4.4.4/32
        Nexthop-Group: blue
                Installed: yes Tableid: 10000
    Seq: 555 rule: 854
        Installed: yes Reason: Valid
        SRC Match: 5.5.5.5/32
        Nexthop-Group: red
                Installed: yes Tableid: 10001
    Seq: 666 rule: 965
        Installed: yes Reason: Valid
        SRC Match: 6.6.6.6/32
        nexthop 1.1.1.1
                Installed: yes Tableid: 10002
alfred#

Signed-off-by: Stephen Worley <sworley@cumulusnetworks.com>
4 years agopbrd: make show pbr map detail actually work
Stephen Worley [Thu, 5 Dec 2019 20:52:08 +0000 (15:52 -0500)]
pbrd: make show pbr map detail actually work

The `detail` keyword was doing literally nothing. Changed the
default show to be a bit more user friendly and detail
to give the information you might would need for
debugging.

alfred# show pbr map
  pbr-map TEST1 valid: 1
    Seq: 222 rule: 521
    Installed: yes Reason: Valid
        SRC Match: 2.2.2.2/32
        Nexthop-Group: blue(10000) Installed: yes
    Seq: 333 rule: 632
    Installed: yes Reason: Valid
        SRC Match: 3.3.3.3/32
        Nexthop-Group: blue(10000) Installed: yes
    Seq: 444 rule: 743
    Installed: yes Reason: Valid
        SRC Match: 4.4.4.4/32
        Nexthop-Group: blue(10000) Installed: yes
    Seq: 555 rule: 854
    Installed: yes Reason: Valid
        SRC Match: 5.5.5.5/32
        Nexthop-Group: red(10001) Installed: yes
    Seq: 666 rule: 965
    Installed: yes Reason: Valid
        SRC Match: 6.6.6.6/32
     nexthop 1.1.1.1
        Installed: yes Tableid: 10002
alfred# show pbr map detail
  pbr-map TEST1 valid: 1
    Seq: 222 rule: 521
    Installed: 1(1) Reason: Valid
        SRC Match: 2.2.2.2/32
        Nexthop-Group: blue(10000) Installed: 1(1)
    Seq: 333 rule: 632
    Installed: 1(2) Reason: Valid
        SRC Match: 3.3.3.3/32
        Nexthop-Group: blue(10000) Installed: 1(1)
    Seq: 444 rule: 743
    Installed: 1(3) Reason: Valid
        SRC Match: 4.4.4.4/32
        Nexthop-Group: blue(10000) Installed: 1(1)
    Seq: 555 rule: 854
    Installed: 1(4) Reason: Valid
        SRC Match: 5.5.5.5/32
        Nexthop-Group: red(10001) Installed: 1(1)
    Seq: 666 rule: 965
    Installed: 1(5) Reason: Valid
        SRC Match: 6.6.6.6/32
     nexthop 1.1.1.1
        Installed: 1(1) Tableid: 10002
alfred#

Signed-off-by: Stephen Worley <sworley@cumulusnetworks.com>
4 years agopbrd: refactor vty map show output into functions
Stephen Worley [Thu, 5 Dec 2019 20:32:26 +0000 (15:32 -0500)]
pbrd: refactor vty map show output into functions

Refactor the pbr_map and pbr_map_sequence vty output
into some functions to make the code a bit easier to read.

Signed-off-by: Stephen Worley <sworley@cumulusnetworks.com>
4 years agolib,sharpd: support labelled nexthop-groups in sharpd
Mark Stapp [Fri, 6 Dec 2019 18:44:15 +0000 (13:44 -0500)]
lib,sharpd: support labelled nexthop-groups in sharpd

Update sharpd's zapi client code to support labelled nexthops if
they're present in a nexthop-group.

Signed-off-by: Mark Stapp <mjs@voltanet.io>
4 years agoMerge pull request #5332 from mjstapp/remove_zapi_label_flag
Donald Sharp [Fri, 6 Dec 2019 18:19:34 +0000 (13:19 -0500)]
Merge pull request #5332 from mjstapp/remove_zapi_label_flag

*: revise zapi nexthop encoding

4 years agoMerge pull request #5462 from dslicenc/ipv6-ra-lifetime-0
David Lamparter [Fri, 6 Dec 2019 17:23:39 +0000 (18:23 +0100)]
Merge pull request #5462 from dslicenc/ipv6-ra-lifetime-0

zebra: send RA lifetime of 0 before ceasing to advertise RAs

4 years agoMerge pull request #5226 from donaldsharp/interface_fixup
David Lamparter [Fri, 6 Dec 2019 17:21:51 +0000 (18:21 +0100)]
Merge pull request #5226 from donaldsharp/interface_fixup

Interface fixup

4 years agoMerge pull request #5468 from qlyoung/bgpd-remove-bgp-attr-dup
David Lamparter [Fri, 6 Dec 2019 17:19:28 +0000 (18:19 +0100)]
Merge pull request #5468 from qlyoung/bgpd-remove-bgp-attr-dup

bgpd: remove bgp_attr_dup

4 years agoMerge pull request #5218 from mjstapp/fix_topo_kernel_5
David Lamparter [Fri, 6 Dec 2019 17:18:28 +0000 (18:18 +0100)]
Merge pull request #5218 from mjstapp/fix_topo_kernel_5

topotests: Adapt to linux kernel 5+

4 years ago*: revise zapi nexthop encoding
Mark Stapp [Wed, 13 Nov 2019 21:06:06 +0000 (16:06 -0500)]
*: revise zapi nexthop encoding

Use a per-nexthop flag to indicate the presence of labels; add
some utility zapi encode/decode apis for nexthops; use the zapi
apis more consistently.

Signed-off-by: Mark Stapp <mjs@voltanet.io>
4 years agolib: use const in several stream lib apis
Mark Stapp [Fri, 15 Nov 2019 19:32:18 +0000 (14:32 -0500)]
lib: use const in several stream lib apis

Add some const to some stream apis.

Signed-off-by: Mark Stapp <mjs@voltanet.io>
4 years agoMerge pull request #5438 from sworleys/PBR-Fixes
Renato Westphal [Fri, 6 Dec 2019 15:04:05 +0000 (12:04 -0300)]
Merge pull request #5438 from sworleys/PBR-Fixes

pbrd: Assorted Fixes

4 years agoMerge pull request #5439 from mjstapp/nhg_add_labels
Renato Westphal [Fri, 6 Dec 2019 14:17:10 +0000 (11:17 -0300)]
Merge pull request #5439 from mjstapp/nhg_add_labels

lib: support labelled nexthops in nexthop_groups

4 years agotopojson: use empty vtysh.conf for frr-reload.py
David Lamparter [Mon, 2 Dec 2019 22:23:16 +0000 (23:23 +0100)]
topojson: use empty vtysh.conf for frr-reload.py

Signed-off-by: David Lamparter <equinox@diac24.net>
4 years agotools/frr-reload.py: remove stderr redirects
David Lamparter [Tue, 13 Aug 2019 16:24:11 +0000 (18:24 +0200)]
tools/frr-reload.py: remove stderr redirects

These make no sense.  stderr=subprocess.STDOUT means that vtysh's stdout
and stderr are combined and returned by check_output.  We don't expect
errors in that, and we certainly don't log them.

Leaving vtysh's stderr as stderr is perfectly fine, it'll be captured
for logging just like stderr output from frr-reload.py.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
4 years agoospfd: use new defaults mechanism (v2)
David Lamparter [Thu, 1 Aug 2019 16:49:50 +0000 (18:49 +0200)]
ospfd: use new defaults mechanism (v2)

Some preprocessor constants converted to enums to make the names usable
in the preprocessor.

v2: better isolation between core and vty code to make future northbound
conversion easier.

Signed-off-by: David Lamparter <equinox@diac24.net>
4 years agoospfd: remove minor WTF in instance creation
David Lamparter [Thu, 1 Aug 2019 16:39:19 +0000 (18:39 +0200)]
ospfd: remove minor WTF in instance creation

Well, "obviously" this condition block is pointless, since
ospf_router_id_update is called afterwards unconditionally...

(And even if it were needed, it would need to go in ospf_get too.)

Signed-off-by: David Lamparter <equinox@diac24.net>
4 years agobgpd: use new defaults system (v2)
David Lamparter [Thu, 1 Aug 2019 16:50:56 +0000 (18:50 +0200)]
bgpd: use new defaults system (v2)

This moves all the DFLT_BGP_* stuff over to the new defaults mechanism.
bgp_timers_nondefault() added to get better file-scoping.

v2: moved everything into bgp_vty.c so that the core BGP code is
independent of the CLI-specific defaults.  This should make the future
northbound conversion easier.

Signed-off-by: David Lamparter <equinox@diac24.net>
4 years agobgpd: move config-write to bgp_vty.c
David Lamparter [Thu, 1 Aug 2019 15:44:23 +0000 (17:44 +0200)]
bgpd: move config-write to bgp_vty.c

There's no good reason to have this in bgpd.c;  it's just there
historically.  Move it to bgp_vty.c where it makes more sense.

Signed-off-by: David Lamparter <equinox@diac24.net>
4 years agodoc: document defaults mechanism
David Lamparter [Mon, 29 Oct 2018 19:26:53 +0000 (20:26 +0100)]
doc: document defaults mechanism

Signed-off-by: David Lamparter <equinox@diac24.net>
4 years agobuild: apply DFLT_NAME/profiles in init script
David Lamparter [Fri, 26 Oct 2018 17:33:20 +0000 (19:33 +0200)]
build: apply DFLT_NAME/profiles in init script

Hopefully at some point we can get rid of the --enable-datacenter switch
and just have the init script do magic.  Should already work for Cumulus
as it is.

NB: the profile name can't be baked into the package.  The whole point
is to make the package profile-agnostic;  in theory at some point the
exact same package files should work on both, say, a Cumulus switch and
a Linux software BGP DFZ router.

Signed-off-by: David Lamparter <equinox@diac24.net>
4 years agolib/defaults: add bool variable support
David Lamparter [Wed, 4 Dec 2019 03:20:55 +0000 (04:20 +0100)]
lib/defaults: add bool variable support

(I hadn't initially added this because I thought it superfluous, but it
kinda makes things nicer.)

Signed-off-by: David Lamparter <equinox@diac24.net>
4 years agolib: new defaults logic
David Lamparter [Fri, 26 Oct 2018 16:41:00 +0000 (18:41 +0200)]
lib: new defaults logic

Since we've been writing out "frr version" and "frr defaults" for about
a year and a half now, we can now actually use them to manage defaults.

Signed-off-by: David Lamparter <equinox@diac24.net>
4 years agolib: add frr_version_cmp()
David Lamparter [Fri, 26 Oct 2018 13:25:25 +0000 (15:25 +0200)]
lib: add frr_version_cmp()

This just compares 2 version strings.

Signed-off-by: David Lamparter <equinox@diac24.net>
4 years agolib: rename memory_vty.c to lib_vty.c
David Lamparter [Fri, 6 Dec 2019 13:38:55 +0000 (14:38 +0100)]
lib: rename memory_vty.c to lib_vty.c

And memory_init() to lib_cmd_init().

Signed-off-by: David Lamparter <equinox@diac24.net>
4 years agotopotests: Adapt to linux kernel 5+
Mark Stapp [Wed, 23 Oct 2019 16:42:19 +0000 (12:42 -0400)]
topotests: Adapt to linux kernel 5+

Make a few changes to try to support topotests with vrfs
on kernel 5 and later.

Signed-off-by: Mark Stapp <mjs@voltanet.io>
4 years agoMerge pull request #5288 from SumitAgarwal123/bfd_docs
Rafael Zalamena [Fri, 6 Dec 2019 12:35:13 +0000 (09:35 -0300)]
Merge pull request #5288 from SumitAgarwal123/bfd_docs

doc: Adding new CLI and updating existing show output

4 years agoMerge pull request #5493 from ton31337/fix/doc_underline_too_short
Quentin Young [Fri, 6 Dec 2019 06:54:49 +0000 (01:54 -0500)]
Merge pull request #5493 from ton31337/fix/doc_underline_too_short

doc: Add moaar dashes to underline line

4 years agodoc: Add moaar dashes to underline line
Donatas Abraitis [Fri, 6 Dec 2019 06:33:30 +0000 (08:33 +0200)]
doc: Add moaar dashes to underline line

doc/user/bgp.rst:420: WARNING: Title underline too short.
Reject routes with AS_SET or AS_CONFED_SET types
-------------------------------

Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
4 years agoMerge pull request #5464 from qlyoung/fix-bgp-prefix-orf-heap-overflow
Donatas Abraitis [Fri, 6 Dec 2019 06:15:49 +0000 (08:15 +0200)]
Merge pull request #5464 from qlyoung/fix-bgp-prefix-orf-heap-overflow

lib: fix heap buf overflow when adding prefix orf

4 years agoMerge pull request #5478 from mjstapp/fix_ospf_apiserver_sa
Donald Sharp [Fri, 6 Dec 2019 01:56:12 +0000 (20:56 -0500)]
Merge pull request #5478 from mjstapp/fix_ospf_apiserver_sa

ospfd: clean up SA warning

4 years agoMerge pull request #5476 from qlyoung/fix-init-script-bleh
Mark Stapp [Thu, 5 Dec 2019 21:41:48 +0000 (16:41 -0500)]
Merge pull request #5476 from qlyoung/fix-init-script-bleh

tools: [ [ is not valid shell test syntax

4 years agoospfd: clean up SA warning
Mark Stapp [Thu, 5 Dec 2019 21:12:09 +0000 (16:12 -0500)]
ospfd: clean up SA warning

remove an unneeded initialization to clear up an SA report.

Signed-off-by: Mark Stapp <mjs@voltanet.io>
4 years agozebra: use correct state when installing evpn macs
Mark Stapp [Thu, 5 Dec 2019 19:27:17 +0000 (14:27 -0500)]
zebra: use correct state when installing evpn macs

Use correct state/flags when installing EVPN macs; when we
converted from raw netlink to the zebra dataplane, a state value
got lost.

Signed-off-by: Mark Stapp <mjs@voltanet.io>
4 years agotools: [ [ is not valid test syntax
Quentin Young [Thu, 5 Dec 2019 17:57:45 +0000 (12:57 -0500)]
tools: [ [ is not valid test syntax

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
4 years agobgpd: remove bgp_attr_dup
Quentin Young [Tue, 3 Dec 2019 21:01:19 +0000 (16:01 -0500)]
bgpd: remove bgp_attr_dup

yeah

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
4 years agoMerge pull request #5472 from mjstapp/fix_dplane_prov_flags
Donatas Abraitis [Thu, 5 Dec 2019 12:03:35 +0000 (14:03 +0200)]
Merge pull request #5472 from mjstapp/fix_dplane_prov_flags

zebra: capture dplane plugin flags

4 years agoMerge pull request #5471 from sworleys/Doc-Sign-Off
Mark Stapp [Wed, 4 Dec 2019 19:56:58 +0000 (14:56 -0500)]
Merge pull request #5471 from sworleys/Doc-Sign-Off

doc: add doc for easy commit sign-off with `-s`

4 years agozebra: capture dplane plugin flags
Mark Stapp [Wed, 4 Dec 2019 19:54:38 +0000 (14:54 -0500)]
zebra: capture dplane plugin flags

The flags can be important - like "threaded" - so we need to
actually capture them when plugins are registered.

Signed-off-by: Mark Stapp <mjs@voltanet.io>
4 years agoeigrpd, ospfd, pimd: Fix assumption that interface may not be up
Donald Sharp [Thu, 24 Oct 2019 19:09:18 +0000 (15:09 -0400)]
eigrpd, ospfd, pimd: Fix assumption that interface may not be up

Commit: ddbf3e60604019d4b38d51226700e2244cc531b6

This commit modified the interface up handling code in
ZAPI such that the zclient handled the decoding for you.
Prior to this commit ospf assumed that it could use the
old ifp pointer to know state before reading the stream.
This lead to a situation where ospf would `smartly` track
and do the right thing in this situation.  This commit
changed this assumption and in certain scenarios, say
a interface was changed after it was already up would
lead to situations where ospf would not properly handle
the new interface up.

Modify ospf to track data that is important to it in
it's interface->info pointer.

This code pattern was followed in both eigrp and pim.
In eigrp's case it was just behaving weirdly in any event
so fixing this pattern is not a big deal.  In pim's
case it was not properly using this so it's a no-op
to fix.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>