Commit Graph

18060 Commits

Author SHA1 Message Date
David Lamparter
eb51bb9b1f lib: random unused bits cleanup
Signed-off-by: David Lamparter <equinox@diac24.net>
2019-12-14 12:41:19 +01:00
David Lamparter
25d8623340 lib/prefix: flip the bitrot compost
Signed-off-by: David Lamparter <equinox@diac24.net>
2019-12-14 12:28:18 +01:00
David Lamparter
1b3e9a21dd lib: make some variables static
Signed-off-by: David Lamparter <equinox@diac24.net>
2019-12-13 06:22:34 +01:00
David Lamparter
33de8d1dd0 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>
2019-12-13 06:22:34 +01:00
David Lamparter
9fe602a17c lib: make rcu_free() NULL-safe
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2019-12-13 06:22:34 +01:00
David Lamparter
420dcec358 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>
2019-12-13 06:22:34 +01:00
Jafar Al-Gharaibeh
a10dbc9f7f
Merge pull request #5532 from donaldsharp/leaks
Leaks
2019-12-12 22:47:45 -06:00
Donald Sharp
ebeae7d58d 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>
2019-12-12 19:33:42 -05:00
Donald Sharp
0783b36d0e 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>
2019-12-12 18:48:04 -05:00
Jafar Al-Gharaibeh
297def9386
Merge pull request #5531 from qlyoung/fix-ospf-ip-hl-trust
Fix ospf ip hl trust
2019-12-12 13:19:36 -06:00
Quentin Young
e947b307fc ospfd: tiny style fix
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2019-12-12 01:03:18 -05:00
Quentin Young
5405a012b4 ospfd: sizeof(pointer) -> sizeof(pointed-at)
14 years old eh?

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2019-12-12 01:03:18 -05:00
Quentin Young
01e3c3764d 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>
2019-12-12 01:03:13 -05:00
Donald Sharp
2003a265bb
Merge pull request #5528 from opensourcerouting/bmp-dns-fixing
BMP: improve active outbound connection details
2019-12-11 13:22:34 -05:00
David Lamparter
7f2c2596e3
bgpd: Allow failed hostname lookup to continue in bmp (#5399)
bgpd: Allow failed hostname lookup to continue in bmp
2019-12-11 19:21:18 +01:00
Donald Sharp
37f4c2fb02
Merge pull request #5494 from opensourcerouting/mlag-module
zebra: create zebra_cumulus_mlag module
2019-12-11 13:14:02 -05:00
Mark Stapp
c81c2303e6
Merge pull request #5497 from donaldsharp/unequality_ecmp
Unequality ecmp
2019-12-11 11:02:15 -05:00
Mark Stapp
9880c0f3ae
Merge pull request #5527 from opensourcerouting/skiplist-uninit-warning
lib/skiplist: fix gcc-9 used-uninitialized warning
2019-12-11 09:03:08 -05:00
David Lamparter
150470da79 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>
2019-12-11 13:36:24 +01:00
David Lamparter
3286ca0750 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>
2019-12-11 13:33:36 +01:00
David Lamparter
9e89da8c55 bgpd/bmp: actually print uptime
Forgot to replace the stub here when finishing up...

Signed-off-by: David Lamparter <equinox@diac24.net>
2019-12-11 12:34:56 +01:00
David Lamparter
125dc9525b 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>
2019-12-11 12:27:05 +01:00
David Lamparter
6ce59f0bfe 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>
2019-12-11 11:44:52 +01:00
David Lamparter
668b6011b3 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>
2019-12-11 11:41:54 +01:00
David Lamparter
d621815a0e 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>
2019-12-11 11:40:47 +01:00
Donald Sharp
659a3e4288
Merge pull request #5517 from mjstapp/fix_evpn_state
zebra: use correct state when installing evpn macs
2019-12-10 17:14:34 -05:00
Donald Sharp
5857e8411a
Merge pull request #5521 from mjstapp/fix_pim_upstream_sa
pimd: clear SA warning in pimd
2019-12-10 17:14:03 -05:00
Mark Stapp
174d3891ab 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>
2019-12-10 12:10:44 -05:00
David Lamparter
2d7932e153
Fix bgp transit double free (#5436)
Fix bgp transit double free
2019-12-10 17:56:57 +01:00
Russ White
7d708d3c01
Merge pull request #5511 from Jafaral/ipmroute
doc: document ip mroute static route cmd
2019-12-10 08:55:57 -05:00
Renato Westphal
531868034a
Merge pull request #5513 from m-varasteh/fix-running-entry-in-vrf-change
lib: fixes invalid running_entry when VRF is changed
2019-12-10 10:03:01 -03:00
Donatas Abraitis
e9613d32cc
Merge pull request #5429 from Spantik/bug_fix
BGP: BGP assert when it tries to access peer which is closed.
2019-12-10 09:43:28 +02:00
Mahdi Varasteh
ced28861d4 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>
2019-12-10 08:38:45 +03:30
Jafar Al-Gharaibeh
6a40ad3ee1 doc: document ip mroute static route cmd
Signed-off-by: Jafar Al-Gharaibeh <jafar@atcorp.com>
2019-12-09 16:55:14 -06:00
Renato Westphal
c3a964360d
Merge pull request #5509 from manuhalo/fix_isis_circ_del
isisd: clean ipv4/6 circuit config on destroy
2019-12-09 18:34:49 -03:00
Donald Sharp
597371a615 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>
2019-12-09 13:39:59 -05:00
Donald Sharp
bd054c1aa2 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>
2019-12-09 13:37:37 -05:00
Donald Sharp
df7fb5800b 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>
2019-12-09 13:37:37 -05:00
Emanuele Di Pascale
d38a3cb24a 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>
2019-12-09 18:22:25 +01:00
Santosh P K
74e00a55c1 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>
2019-12-09 09:10:57 -08:00
Donald Sharp
0dcbec72aa
Merge pull request #5498 from mjstapp/sharp_with_labels
lib,sharpd: support labelled nexthop-groups in sharpd
2019-12-07 11:44:02 -05:00
Jafar Al-Gharaibeh
73373085bc
Merge pull request #5499 from sworleys/Pbr-Detail
pbrd: make the show pbr map output better
2019-12-06 18:02:08 -06:00
Jafar Al-Gharaibeh
5bc47da6b5
Merge pull request #5421 from sworleys/PBR-Del-Mark-All-Seq
pbrd: only remove interface after all seq uninstalled
2019-12-06 17:49:56 -06:00
Jafar Al-Gharaibeh
94c1ae82da
Merge pull request #5355 from AnuradhaKaruppiah/pim-state-machine-fixes
PIM state machine fixes
2019-12-06 17:47:07 -06:00
Quentin Young
5e0e9c09f6 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>
2019-12-06 14:33:54 -05:00
Donald Sharp
4f63093247
Merge pull request #4765 from opensourcerouting/defaults-v2
lib/*: new config defaults system, v2
2019-12-06 14:07:42 -05:00
Stephen Worley
1ce24b9b88 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>
2019-12-06 14:04:02 -05:00
Stephen Worley
b740126d97 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>
2019-12-06 14:04:02 -05:00
Stephen Worley
b781c0869d 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>
2019-12-06 14:04:02 -05:00
Stephen Worley
add5e0a4cf 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>
2019-12-06 14:04:02 -05:00