Commit Graph

17062 Commits

Author SHA1 Message Date
Donald Sharp
4875c110d3
Merge pull request #5316 from k0ste/stable_7.2_backports
[7.2] lib: Remove include of deprecated sysctl.h
2019-11-12 10:20:02 -05:00
Mark Stapp
2a987a1599
lib: Remove include of deprecated sysctl.h
Stop including deprecated header file; appears to be unused and
it has been deprecated in recent linux.

Signed-off-by: Mark Stapp <mjs@voltanet.io>
(cherry picked from commit 15e84e5abb)
2019-11-12 14:14:32 +07:00
Donatas Abraitis
f5a5822563
Merge pull request #5173 from opensourcerouting/72-bfdd-vrf-socket
[7.2] bfdd: VRF security improvement
2019-11-08 11:12:15 +02:00
Rafael Zalamena
5b8a2cac81
Merge pull request #5264 from dslicenc/ospf-bfd-72
ospf: 7.2 BFD down not tearing down OSPF adjacency for point-to-point net…
2019-11-01 13:06:29 -03:00
Radhika Mahankali
eb3e472904 ospf: BFD down not tearing down OSPF adjacency for point-to-point network
Root Cause:
Lookup for the point-to-point neighbor was failing because the neighbor
lookup was based on neighbor interface IP address. But, for point-to-point
neighbor the key is router-id for lookup. Lookup failure was causing the
BFD updates from PTM to get dropped.

Fix:
Added walk of the neighbor list if the network type is point-to-point to
find the appropriate neighbor. The match is based on source IP address of
the neighbor since that’s the address registered with BFD for monitoring.

Ticket: CM-20411
Signed-off-by: Radhika Mahankali <radhika@cumulusnetworks.com>
2019-11-01 14:11:21 +00:00
Donald Sharp
ae7b9d4c30
Merge pull request #5254 from ton31337/fix/doc_bgp_redistribute_vpn_7.2
doc: [7.2] Add redistribute vnc-direct command and fix typo in redistribute vnc
2019-10-31 10:25:17 -04:00
Donatas Abraitis
ea045b9a62 doc: Add redistribute vnc-direct command
Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
2019-10-31 09:02:44 +02:00
Donatas Abraitis
6ecad96be4 doc: redistribute vpn --> redistribute vnc
Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
2019-10-31 09:02:40 +02:00
Donald Sharp
21aa0a2b7e
Merge pull request #5243 from ton31337/fix/do_not_include_nexthop_dash_dash_7.2
bgpd: [7.2] Do not send next-hop as :: in MP_REACH_NLRI if no link-local ex…
2019-10-29 13:02:45 -04:00
Donatas Abraitis
33038f887d bgpd: Do not send next-hop as :: in MP_REACH_NLRI if no link-local exists
This is the unusual case when you have global IPv6 address and no link-local
on interface attached. Like here:

eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP
 link/ether 08:00:27:65:c6:82 brd ff:ff:ff:ff:ff:ff
 inet6 2a02:4780:face::1/64 scope global
    valid_lft forever preferred_lft forever

Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
2019-10-29 15:41:27 +02:00
Donald Sharp
514f508fc6
Merge pull request #5230 from ton31337/fix/noip_nhrp_map_7.2
nhrp: [7.2] Make sure `no ip nhrp map <something>` works as expected
2019-10-25 22:25:34 -04:00
Donald Sharp
8d79095429
Merge pull request #5227 from ton31337/fix/override_peers_ttl_if_peer_group_configured_7.2
bgpd: [7.2] Override peer's TTL only if peer-group is configured with TTL
2019-10-25 22:24:48 -04:00
Donald Sharp
dd00b01395
Merge pull request #5233 from ton31337/feature/doc_access_list_sequence_numbers_7.2
doc: [7.2] Update documentation for access-list with sequence numbers
2019-10-25 22:23:59 -04:00
Donatas Abraitis
6445d32a99 doc: Update documentation for access-list with sequence numbers
Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
2019-10-25 21:54:08 +03:00
Donatas Abraitis
fb3e06dd73 nhrp: Make sure no ip nhrp map <something> works as expected
We passed peer as NULL and nothing happened.

exit2-debian-9# conf
exit2-debian-9(config)# int gre1
exit2-debian-9(config-if)# ip nhrp map 1.1.1.1 local
exit2-debian-9(config-if)# ip nhrp map 2.2.2.2 3.3.3.3
exit2-debian-9(config-if)# do sh run
...
!
interface gre1
 ip nhrp map 1.1.1.1 local
 ip nhrp map 2.2.2.2 3.3.3.3
!
...
exit2-debian-9(config-if)# no ip nhrp map 1.1.1.1
exit2-debian-9(config-if)# do sh run
...
!
interface gre1
 ip nhrp map 2.2.2.2 3.3.3.3
!

Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
2019-10-25 21:51:38 +03:00
Donatas Abraitis
41c23f912b bgpd: Override peer's TTL only if peer-group is configured with TTL
When a peer-group is configured for an already configured eBGP neighbor,
ebgp-multihop command is removed for that peer.

This fix remains configured peer's ebgp-multihop value if peer-group does
not have ebgp-multihop configured.

!
router bgp 100
 neighbor A8 peer-group
 neighbor A9 peer-group
 neighbor A9 ebgp-multihop 12
 neighbor 3.3.3.3 remote-as 123
 neighbor 3.3.3.3 ebgp-multihop 255
 neighbor 4.4.4.4 remote-as 123
 !

spine1-debian-9#
spine1-debian-9# conf
spine1-debian-9(config)# router bgp 100
spine1-debian-9(config-router)# neighbor 3.3.3.3 peer-group A8
spine1-debian-9(config-router)# do sh run

!
router bgp 100
 neighbor A8 peer-group
 neighbor A9 peer-group
 neighbor A9 ebgp-multihop 12
 neighbor 3.3.3.3 remote-as 123
 neighbor 3.3.3.3 peer-group A8
 neighbor 3.3.3.3 ebgp-multihop 255
 neighbor 4.4.4.4 remote-as 123
!

spine1-debian-9(config-router)# neighbor 4.4.4.4 peer-group A9
spine1-debian-9(config-router)# do sh run

!
router bgp 100
 neighbor A8 peer-group
 neighbor A9 peer-group
 neighbor A9 ebgp-multihop 12
 neighbor 3.3.3.3 remote-as 123
 neighbor 3.3.3.3 peer-group A8
 neighbor 3.3.3.3 ebgp-multihop 255
 neighbor 4.4.4.4 remote-as 123
 neighbor 4.4.4.4 peer-group A9
!

Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
2019-10-25 21:48:44 +03:00
Donatas Abraitis
ee1b470b9f
Merge pull request #5221 from dslicenc/remove-afi-saf-msg-72
bgpd: 7.2 - remove error message for unkown afi/safi combination
2019-10-25 08:37:18 +03:00
Don Slice
5d7c769ac4 bgpd: remove error message for unkown afi/safi combination
Problem reported with error messages appearing in the log
complaining about invalid afi/safi combinations.  Determined
that the error messages were recently added in the function
that turns afi and safi values to strings.  Unfortunately,
the function is called from places using FOREACH_AFI_SAFI,
which spins thru every afi and safi number including some
that are not legal together (ipv4 evpn and l2vpn multicast
for example.)   This fix removes these error messages since
it is not necessarily an error to call it with invalid
combinations.

Ticket: CM-26883
Signed-off-by: Don Slice <dslice@cumulusnetworks.com>
2019-10-24 17:24:49 +00:00
Donatas Abraitis
ada85fceb5
Merge pull request #5198 from manuhalo/fix_bgp_oot_7.2
[7.2]bgpd: fix include path for bgp_bmp_clippy.c
2019-10-21 13:07:38 +03:00
Emanuele Di Pascale
aeb10f04ed bgpd: fix include path for bgp_bmp_clippy.c
not using a relative path was breaking out-of-tree compilation

Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
2019-10-21 10:19:56 +02:00
Donatas Abraitis
2abea60436
Merge pull request #5157 from sworleys/Fix-IF-Infinite-Loop-7.2
[7.2] Fix Interface Infinite Loop Walk
2019-10-16 15:06:41 +03:00
Donald Sharp
7671a03920
Merge pull request #5162 from ton31337/fix/do_not_reconnect_if_prefix_overflow_7.2
bgpd: [7.2] Keep the session down if maximum-prefix is reached
2019-10-16 07:03:59 -04:00
Donatas Abraitis
65f13b3292 tests: Remove sleep from test_bgp_maximum_prefix_invalid_update
Sleep is not needed here while we fail instantly if maximum is reached.

Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
2019-10-16 08:21:35 +03:00
Donatas Abraitis
c0438a0e02 bgpd: Keep the session down if maximum-prefix is reached
Under high load instances with hundreds of thousands of prefixes this
could result in very unstable systems.

When maximum-prefix is set, but restart timer is not set then the session
flaps between Idle(Pfx) -> Established -> Idle(Pfx) states.

Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
2019-10-16 08:21:31 +03:00
Stephen Worley
38152a1141 lib: Don't add/del from name tree if name isnt set
If the name has not been set yet (we were only passed the
ifindex in some cases like with master/slave timings) then
do not add/del it from the ifname rb tree on the vrf struct.

Doing so causes duplicate entries on the tree and infinte loops
can happen when iterating over it.

Signed-off-by: Stephen Worley <sworley@cumulusnetworks.com>
2019-10-15 17:19:12 -04:00
Stephen Worley
3d231b2d7a lib: Use correct if compare function in tree proto
We were using the incorrect comparison function for the
ifindex-based rb tree. Luckily, we were using the correct one
in RB_GENERATE so I guess that overwrote what was declared in the
prototype?

Signed-off-by: Stephen Worley <sworley@cumulusnetworks.com>
2019-10-15 17:19:12 -04:00
Mark Stapp
fdf4ed925c
Merge pull request #5160 from donaldsharp/7.2_bgp_backports
7.2 bgp backports
2019-10-15 15:38:23 -04:00
Rafael Zalamena
b5e1cf32ef bfdd: bind VRF sockets to devices
Always bind the created sockets to their respective VRF devices. With
this it should be possible to run BFD on VRFs without needing to weaken
the security setting `net.ipv4.udp_l3mdev_accept=1`.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2019-10-15 14:59:10 -03:00
Donald Sharp
dbde9288eb
Merge pull request #5158 from opensourcerouting/72-bfdd-bug-fixes
[7.2] bfdd: pack of bug fixes
2019-10-15 13:33:39 -04:00
Donald Sharp
4c5a5879f7 lib: Fix read beyond end of data structure
Our Address Sanitizer CI is finding this issue:
error	09-Oct-2019 19:28:33	r4: bgpd triggered an exception by AddressSanitizer
error	09-Oct-2019 19:28:33	ERROR: AddressSanitizer: stack-buffer-overflow on address 0x7ffdd425b060 at pc 0x00000068575f bp 0x7ffdd4258550 sp 0x7ffdd4258540
error	09-Oct-2019 19:28:33	READ of size 1 at 0x7ffdd425b060 thread T0
error	09-Oct-2019 19:28:33	    #0 0x68575e in prefix_cmp lib/prefix.c:776
error	09-Oct-2019 19:28:33	    #1 0x5889f5 in rfapiItBiIndexSearch bgpd/rfapi/rfapi_import.c:2230
error	09-Oct-2019 19:28:33	    #2 0x5889f5 in rfapiBgpInfoFilteredImportVPN bgpd/rfapi/rfapi_import.c:3520
error	09-Oct-2019 19:28:33	    #3 0x58b909 in rfapiProcessWithdraw bgpd/rfapi/rfapi_import.c:4071
error	09-Oct-2019 19:28:33	    #4 0x4c459b in bgp_withdraw bgpd/bgp_route.c:3736
error	09-Oct-2019 19:28:33	    #5 0x484122 in bgp_nlri_parse_vpn bgpd/bgp_mplsvpn.c:237
error	09-Oct-2019 19:28:33	    #6 0x497f52 in bgp_nlri_parse bgpd/bgp_packet.c:315
error	09-Oct-2019 19:28:33	    #7 0x49d06d in bgp_update_receive bgpd/bgp_packet.c:1598
error	09-Oct-2019 19:28:33	    #8 0x49d06d in bgp_process_packet bgpd/bgp_packet.c:2274
error	09-Oct-2019 19:28:33	    #9 0x6b9f54 in thread_call lib/thread.c:1531
error	09-Oct-2019 19:28:33	    #10 0x657037 in frr_run lib/libfrr.c:1052
error	09-Oct-2019 19:28:33	    #11 0x42d268 in main bgpd/bgp_main.c:486
error	09-Oct-2019 19:28:33	    #12 0x7f806032482f in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2082f)
error	09-Oct-2019 19:28:33	    #13 0x42bcc8 in _start (/usr/lib/frr/bgpd+0x42bcc8)
error	09-Oct-2019 19:28:33
error	09-Oct-2019 19:28:33	Address 0x7ffdd425b060 is located in stack of thread T0 at offset 240 in frame
error	09-Oct-2019 19:28:33	    #0 0x483945 in bgp_nlri_parse_vpn bgpd/bgp_mplsvpn.c:103
error	09-Oct-2019 19:28:33
error	09-Oct-2019 19:28:33	  This frame has 5 object(s):
error	09-Oct-2019 19:28:33	    [32, 36) 'label'
error	09-Oct-2019 19:28:33	    [96, 108) 'rd_as'
error	09-Oct-2019 19:28:33	    [160, 172) 'rd_ip'
error	09-Oct-2019 19:28:33	    [224, 240) 'prd' <== Memory access at offset 240 overflows this variable
error	09-Oct-2019 19:28:33	    [288, 336) 'p'
error	09-Oct-2019 19:28:33	HINT: this may be a false positive if your program uses some custom stack unwind mechanism or swapcontext
error	09-Oct-2019 19:28:33	      (longjmp and C++ exceptions *are* supported)
error	09-Oct-2019 19:28:33	SUMMARY: AddressSanitizer: stack-buffer-overflow lib/prefix.c:776 prefix_cmp
error	09-Oct-2019 19:28:33	Shadow bytes around the buggy address:
error	09-Oct-2019 19:28:33	  0x10003a8435b0: 00 00 00 00 00 00 f1 f1 f1 f1 00 00 00 00 00 00
error	09-Oct-2019 19:28:33	  0x10003a8435c0: 00 00 00 00 00 00 00 00 00 00 f3 f3 f3 f3 f3 f3
error	09-Oct-2019 19:28:33	  0x10003a8435d0: f3 f3 00 00 00 00 00 00 00 00 00 00 00 00 00 00
error	09-Oct-2019 19:28:33	  0x10003a8435e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 f1 f1
error	09-Oct-2019 19:28:33	  0x10003a8435f0: f1 f1 04 f4 f4 f4 f2 f2 f2 f2 00 04 f4 f4 f2 f2
error	09-Oct-2019 19:28:33	=>0x10003a843600: f2 f2 00 04 f4 f4 f2 f2 f2 f2 00 00[f4]f4 f2 f2
error	09-Oct-2019 19:28:33	  0x10003a843610: f2 f2 00 00 00 00 00 00 f4 f4 f3 f3 f3 f3 00 00
error	09-Oct-2019 19:28:33	  0x10003a843620: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
error	09-Oct-2019 19:28:33	  0x10003a843630: 00 00 00 00 00 00 00 00 00 00 f1 f1 f1 f1 02 f4
error	09-Oct-2019 19:28:33	  0x10003a843640: f4 f4 f2 f2 f2 f2 04 f4 f4 f4 f2 f2 f2 f2 00 00
error	09-Oct-2019 19:28:33	  0x10003a843650: f4 f4 f2 f2 f2 f2 00 00 00 00 f2 f2 f2 f2 00 00
error	09-Oct-2019 19:28:33	Shadow byte legend (one shadow byte represents 8 application bytes):
error	09-Oct-2019 19:28:33	  Addressable:           00
error	09-Oct-2019 19:28:33	  Partially addressable: 01 02 03 04 05 06 07
error	09-Oct-2019 19:28:33	  Heap left redzone:       fa
error	09-Oct-2019 19:28:33	  Heap right redzone:      fb
error	09-Oct-2019 19:28:33	  Freed heap region:       fd
error	09-Oct-2019 19:28:33	  Stack left redzone:      f1
error	09-Oct-2019 19:28:33	  Stack mid redzone:       f2
error	09-Oct-2019 19:28:33	  Stack right redzone:     f3
error	09-Oct-2019 19:28:33	  Stack partial redzone:   f4
error	09-Oct-2019 19:28:33	  Stack after return:      f5
error	09-Oct-2019 19:28:33	  Stack use after scope:   f8
error	09-Oct-2019 19:28:33	  Global redzone:          f9
error	09-Oct-2019 19:28:33	  Global init order:       f6
error	09-Oct-2019 19:28:33	  Poisoned by user:        f7
error	09-Oct-2019 19:28:33	  Container overflow:      fc
error	09-Oct-2019 19:28:33	  Array cookie:            ac
error	09-Oct-2019 19:28:33	  Intra object redzone:    bb
error	09-Oct-2019 19:28:33	  ASan internal:           fe
error	09-Oct-2019 19:28:36	r3: Daemon bgpd not running

This is the result of this code pattern in rfapi/rfapi_import.c:

prefix_cmp((struct prefix *)&bpi_result->extra->vnc.import.rd,
	   (struct prefix *)prd))

Effectively prd or vnc.import.rd are `struct prefix_rd` which
are being typecast to a `struct prefix`.  Not a big deal except commit
1315d74de9 modified the prefix_cmp
function to allow for a sorted prefix_cmp.  In prefix_cmp
we were looking at the offset and shift.  In the case
of vnc we were passing a prefix length of 64 which is the exact length of
the remaining data structure for struct prefix_rd.  So we calculated
a offset of 8 and a shift of 0.  The data structures for the prefix
portion happened to be equal to 64 bits of data. So we checked that
with the memcmp got a 0 and promptly read off the end of the data
structure for the numcmp.  The fix is if shift is 0 that means thei
the memcmp has checked everything and there is nothing to do.

Please note: We will still crash if we set the prefixlen > then
~312 bits currently( ie if the prefixlen specifies a bit length
longer than the prefix length ).  I do not think there is
anything to do here( nor am I sure how to correct this either )
as that we are going to have some severe problems when we muck
up the prefixlen.

Fixes: #5025
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2019-10-15 13:20:42 -04:00
Donald Sharp
8d6393ce8f bgpd: When creating extra from stack ensure it is zero'ed out
BGP code assumes that the extra data is zero'ed out.  Ensure that we
are not leaving any situation that the data on the stack is actually all
0's when we pass it around as a pointer later.

Please note in issue #5025, Lou reported a different valgrind
issue, which is not the same issue:

==7313== Conditional jump or move depends on uninitialised value(s)
==7313== at 0x181F9F: subgroup_announce_check (bgp_route.c:1555)
==7313== by 0x1A112B: subgroup_announce_table (bgp_updgrp_adv.c:641)
==7313== by 0x1A1340: subgroup_announce_route (bgp_updgrp_adv.c:704)
==7313== by 0x1A13E3: subgroup_coalesce_timer (bgp_updgrp_adv.c:331)
==7313== by 0x4EBA615: thread_call (thread.c:1531)
==7313== by 0x4E8AC37: frr_run (libfrr.c:1052)
==7313== by 0x1429E0: main (bgp_main.c:486)
==7313==
==7313== Conditional jump or move depends on uninitialised value(s)
==7313== at 0x201C0E: rfapi_vty_out_vncinfo (rfapi_vty.c:429)
==7313== by 0x18D0D6: route_vty_out (bgp_route.c:7481)
==7313== by 0x18DD76: bgp_show_table (bgp_route.c:9365)
==7313== by 0x1930C4: bgp_show_table_rd (bgp_route.c:9471)
==7313== by 0x1932A3: bgp_show (bgp_route.c:9510)
==7313== by 0x193E68: show_ip_bgp_json (bgp_route.c:10284)
==7313== by 0x4E6D024: cmd_execute_command_real.isra.2 (command.c:1072)
==7313== by 0x4E6F51E: cmd_execute_command (command.c:1131)
==7313== by 0x4E6F686: cmd_execute (command.c:1285)
==7313== by 0x4EBF9C4: vty_command (vty.c:516)
==7313== by 0x4EBFB9F: vty_execute (vty.c:1285)
==7313== by 0x4EC250F: vtysh_read (vty.c:2119)
==7313==

that is causing the actual crash.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2019-10-15 13:18:13 -04:00
Donald Sharp
21d5940494 bgpd: Ensure that struct prefix_rd rd is zero'ed out
We are passing around the created rd, Just make sure that
the data is zero'ed out.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2019-10-15 13:17:48 -04:00
Donald Sharp
931066c074 bgpd: AS paths are uint32_t instead of integers
We have some JSON output that was displaying high order
AS path data as negative numbers:

{
 "paths":[
    {
      "aspath":{
        "string":"4200010118 4200010000 20473 1299",
        "segments":[
          {
            "type":"as-sequence",
            "list":[
              -94957178,
              -94957296,
              20473,
              1299
            ]
          }
        ],

Notice "String" output -vs- the list.

With fixed code:

  "paths":[
    {
      "aspath":{
        "string":"64539 4294967000 15096 6939 7922 7332 4249",
        "segments":[
          {
            "type":"as-sequence",
            "list":[
              64539,
              4294967000,
              15096,
              6939,
              7922,
              7332,
              4249
            ]
          }
        ],

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2019-10-15 13:15:45 -04:00
Donald Sharp
c9df216851 bgpd: Soft reconfig-in should find the right bgp_path_info
When using soft reconfiguration inbound we are storing packet
data on the side for replaying when necessary.  The problem here
is that we are just grabbing the first bgp_path_info and using
that as the base.  What happens when we have soft-reconfig turned
on with multiple bgp_path_info's for a path?  This was introduced
in commit 8692c50652, yes back
in 2012!  I would argue, though, that it was just broken
in a different way before this.

Choose the correct bgp_path_info that corresponds to the peer
we received the data from for rethinking.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2019-10-15 13:15:28 -04:00
Martin Winter
b606b4e7f6 FRRouting Release 7.2
ALL Daemons
    -N <namespace> to allow for config file locating when running FRR
      inside of a namespace
    Impoved Testing across all daemons
BFD
    VRF Support
    Conversion to Northbound interface
BGP
    Aggregate-address add route-map support
    BMP Support
    Improved JSON output for many commands
    `show bgp afi safi summary failed` command
    `clear bop *` clears all peers
    Show FQDN for `show bgp ipv4 uni` commands
    Display BestPath selection reason as part of show commands
EIGRP
    Infrastructure changes to allow VRF's
    SIGHUP signals the config reload
    Conversion to Northbound interface
ISIS
    BFD Support
    Support for circuits with MTU > 8192
PBRD
    fwmark support as part of match criteria
    autocompletion of PBRMAPS
    Improved Nexthop Support
PIMD
    PIM-BSM receive support
     Improved debugging support
    Store ECMP paths that are not currently legal for use
    Disallow igmp query from a non-connected source
    Many new cli improvements and changes
VRRPD
    Add Support for RFC 3768 and RFC 5798
Route-Maps
    Add sequence numbers to access-lists
    Add `match ip next-hop type blackhole`
    Improved ability to notice dependency changes
SHARPD
    `sharp watch [import|nexthop]` you can now specify a prefix instead
     of assuming a /32
STATICD
    Significantly Improved NHT
ZEBRA
    Many dataplane improvements for routes, neighbor table and EVPN
    NHT cli can now be specified per VRF and improved ability to control
     NHT data being shown
    Removed duplicate processing of routes
    Improved debugablility
    RMAC and VxLan support for the FPM
LIB
    RCU support
    Nexthop Group Improvements
    `log-filter WORD` added
Building
    openssl support
    libcap should be used as part of build or significant slowdowns will
     be experienced
    Lua builds have been fixed
    Improved Cross building
Snapcraft
    Add Fabricd
    Add Libyan
    Update rtrlib and rpki

Signed-off-by: Martin Winter <mwinter@opensourcerouting.org>
2019-10-15 16:44:47 +02:00
Rafael Zalamena
80420ce34d bfdd: don't allow link-local without interface
When using link-local addresses we must provide scope-id to the
operating system so it knows where to send packets.

Spotted by Pavel Ivashchenko (@zays26).

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2019-10-14 15:05:41 -03:00
Rafael Zalamena
f106240130 bfdd: simplify session observers code
Don't be selective about what to observe, always observe all possible
aspects of the session that may change on run-time (i.e. bind address,
interface and VRF existence).

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2019-10-14 14:32:57 -03:00
Rafael Zalamena
2d0d00ce46 bfdd: set session down after disabling it
If a session is no longer able to send/receive packets, it is very
likely it will be down in a few milliseconds so lets speed up the
process and correctly mark it as down.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2019-10-14 14:32:38 -03:00
Rafael Zalamena
90104e23f2 bfdd: disable sockets polling before closing it
Otherwise the `thread_read` will keep waking us up to handle closing
sockets which are never unregistered.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2019-10-14 14:32:24 -03:00
Philippe Guibert
d6dc32f6f6 bfdd: upon vrf disable, unlink bfd session with vrf
bfd session has a vrf pointer that needs to be reset, when vrf is
disabled.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2019-10-14 14:32:16 -03:00
SumitAgarwal123
a72ac295b9 bfdd: Fixing coredump in log
Param missing in debug log, leading to coredump

Signed-off-by: Sayed Mohd Saquib <sayed.saquib@broadcom.com>
2019-10-14 14:32:05 -03:00
Quentin Young
364af5fd27
Merge pull request #5115 from ton31337/feature/maximum-prefix_uint64_to_uint32_7.2
bgpd: [7.2] Use uint32_t for maximum-prefix
2019-10-09 15:33:22 -04:00
Donatas Abraitis
f6aea80e1d bgpd: Use uint32_t for maximum-prefix
Currently we have unsigned long which is not what we defined
in CLI (1-4294967295).

Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
2019-10-07 21:19:28 +03:00
Renato Westphal
c93f27d52f
Merge pull request #5096 from donaldsharp/72_static_fix_for_ROUTE_ALL
[7.2]zebra: Fix redistribution deletion for ZEBRA_ROUTE_ALL
2019-10-02 16:22:07 -03:00
Donald Sharp
8309f3f3da
Merge pull request #5076 from ak503/libfrr_crash_7_2
7.2: zebra: if_is_loopback_or_vrf crash if if_lookup_by_index return …
2019-10-02 10:13:24 -04:00
Donald Sharp
cb2e7df3a0
Merge pull request #5073 from ton31337/fix/no_aggregate-address_command_for_route-map_7.2
bgpd: [7.2] Accept no aggregate-address <IP> route-map <RMAP> commands
2019-10-02 10:12:21 -04:00
Donatas Abraitis
1af14f412e
Merge pull request #5091 from sworleys/Fix-Vrf_ID-Decode_7.2
[7.2] lib: Decode vrf_id update appropriately from zapi
2019-10-02 17:11:46 +03:00
Donald Sharp
90081e8f7c zebra: Fix redistribution deletion for ZEBRA_ROUTE_ALL
commit ee8a72f315

broke the usage of ZEBRA_ROUTE_ALL as a valid redistribution
command.  This commit puts it back in.  LDP uses ZEBRA_ROUTE_ALL
as an option to say it is interested in all REDISTRIBUTION events.

Fixes: #5072
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2019-10-02 09:32:59 -04:00
Stephen Worley
9594bc4053 lib: Decode vrf_id update appropriately from zapi
The vrf_id in `zsend_interface_vrf_update()` is encoded as
a long via `stream_putl()`, we should decode it as such
as well.

Signed-off-by: Stephen Worley <sworley@cumulusnetworks.com>
2019-10-01 19:14:19 -04:00
Donald Sharp
d39a09b547
Merge pull request #5089 from cfra/fix/7.2/isis-threeway
isisd: Fix handling of neighbor circuit id in three way handshake
2019-10-01 19:13:47 -04:00