]> git.proxmox.com Git - mirror_frr.git/log
mirror_frr.git
4 years agobgpd: Use uint32_t for maximum-prefix
Donatas Abraitis [Thu, 3 Oct 2019 21:30:28 +0000 (00:30 +0300)]
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>
4 years agoMerge pull request #5092 from sworleys/Fix-Vrf_ID-Decode_7.1
Russ White [Wed, 2 Oct 2019 14:23:28 +0000 (10:23 -0400)]
Merge pull request #5092 from sworleys/Fix-Vrf_ID-Decode_7.1

[7.1] lib: Decode vrf_id update appropriately from zapi

4 years agolib: Decode vrf_id update appropriately from zapi
Stephen Worley [Tue, 1 Oct 2019 23:02:33 +0000 (19:02 -0400)]
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>
4 years agoMerge pull request #5030 from donaldsharp/7.1_send_that_error_bgp
Donatas Abraitis [Sun, 22 Sep 2019 08:21:52 +0000 (11:21 +0300)]
Merge pull request #5030 from donaldsharp/7.1_send_that_error_bgp

7.1 send that error bgp

4 years agobgpd: Invalid NH's should send an apropriate reason code
Donald Sharp [Fri, 20 Sep 2019 10:41:02 +0000 (06:41 -0400)]
bgpd: Invalid NH's should send an apropriate reason code

RFC 4271 sec 6.3 p33, In the case of a BGP_NEXTHOP attribute with an
incorrect value, FRR is supposed to send a notification
and include 'Corresponding type, length and value of the NEXT_HOP
attribute in the notification data.

Fixes: #4997
Signed-off-by: Nikos <ntriantafillis@gmail.com>
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
4 years agobgpd: IPv6 session flapping with MP_REACH_NLRI and 0.0.0.0 in NEXT_HOP attribute
nikos [Thu, 9 May 2019 07:02:16 +0000 (00:02 -0700)]
bgpd: IPv6 session flapping with MP_REACH_NLRI and 0.0.0.0 in NEXT_HOP attribute

This is causing interop issues with vendors. According to the RFC,
receiver should ignore the NEXT_HOP attribute with MP_REACH_NLRI
present.

Signed-off-by: nikos <ntriantafillis@gmail.com>
4 years agobgpd: IPv6 session flapping with MP_REACH_NLRI and 0.0.0.0 in NEXT_HOP attribute
nikos [Sat, 4 May 2019 06:22:30 +0000 (23:22 -0700)]
bgpd: IPv6 session flapping with MP_REACH_NLRI and 0.0.0.0 in NEXT_HOP attribute

This is causing interop issues with vendors. According to the RFC,
receiver should ignore the NEXT_HOP attribute with MP_REACH_NLRI
present.

Signed-off-by: nikos ntriantafillis@gmail.com
4 years agoMerge pull request #4960 from ton31337/fix/check_if_rmap_exists_before_warning
Donald Sharp [Wed, 11 Sep 2019 13:46:32 +0000 (09:46 -0400)]
Merge pull request #4960 from ton31337/fix/check_if_rmap_exists_before_warning

bgpd: [7.1] `neighbor X:X::X default-originate` complains about (null)

4 years agobgpd: `neighbor X:X::X default-originate` complains about (null)
Donald Sharp [Thu, 20 Jun 2019 15:12:35 +0000 (11:12 -0400)]
bgpd: `neighbor X:X::X default-originate` complains about (null)

The `neighbor X:X::X default-originate command is complaining
that:
The route-map '(null)' does not exist.

Upon inspection of the code we were passing a NULL
string to the lookup.  Testing for null gets us this:

donna.cumulusnetworks.com# conf t
donna.cumulusnetworks.com(config)# router bgp 99
donna.cumulusnetworks.com(config-router)# neighbor 2001:1::1:2 remote-as 99
donna.cumulusnetworks.com(config-router)# neighbor 2001:1::1:2 default-originate
donna.cumulusnetworks.com(config-router)# end
donna.cumulusnetworks.com# show run
Building configuration...

Current configuration:
!
frr version 7.2-dev
frr defaults datacenter
hostname donna.cumulusnetworks.com
log stdout
no ipv6 forwarding
!
ip route 4.5.6.7/32 10.50.11.4
!
router bgp 99
 neighbor 2001:1::1:2 remote-as 99
 !
 address-family ipv4 unicast
  neighbor 2001:1::1:2 default-originate

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
4 years agoMerge pull request #4938 from ton31337/feature/documentation_for_rfc8212_7.1
Donald Sharp [Fri, 6 Sep 2019 11:37:05 +0000 (07:37 -0400)]
Merge pull request #4938 from ton31337/feature/documentation_for_rfc8212_7.1

doc: [7.1] Add documentation for `bgp ebgp-requires-policy` command

4 years agodoc: Add documentation for `bgp ebgp-requires-policy` command
Donatas Abraitis [Thu, 5 Sep 2019 16:57:46 +0000 (19:57 +0300)]
doc: Add documentation for `bgp ebgp-requires-policy` command

Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
4 years agoMerge pull request #4899 from ton31337/fix/no_aspath_prepend_last_7.1
Donald Sharp [Thu, 29 Aug 2019 15:55:59 +0000 (11:55 -0400)]
Merge pull request #4899 from ton31337/fix/no_aspath_prepend_last_7.1

bgpd: [7.1] Add 'no set as-path prepend last-as X' command

4 years agobgpd: Update doc for some as-path route-map commands
Donald Sharp [Mon, 26 Aug 2019 13:56:53 +0000 (09:56 -0400)]
bgpd: Update doc for some as-path route-map commands

Update the documentation for some as-path route-map commands.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
4 years agobgpd: Add 'no set as-path prepend last-as X' command
Donald Sharp [Mon, 26 Aug 2019 13:49:18 +0000 (09:49 -0400)]
bgpd: Add 'no set as-path prepend last-as X' command

The `set as-path prepend last-as X` command had no, 'no' form
of the command.  Add this into the cli.

Testing:
!
route-map BLARBLE permit 10
 set as-path prepend last-as 3
!
!
router bgp 9999
 neighbor 10.50.12.118 remote-as external
 neighbor 10.50.12.118 ebgp-multihop 30
 !
 address-family ipv4 unicast
  neighbor 10.50.12.118 route-map BLARBLE in
 !
!

eva# show bgp ipv4 uni 4.4.4.4
BGP routing table entry for 4.4.4.4/32
Paths: (1 available, best #1, table default)
  Advertised to non peer-group peers:
  10.50.12.118
  999 999 999 999
    10.50.12.118 from 10.50.12.118 (10.50.12.118)
      Origin incomplete, metric 0, valid, external, best (First path received)
      Last update: Mon Aug 26 09:47:17 2019

eva# conf
eva(config)# route-map BLARBLE permit 10
eva(config-route-map)# no set as-path prepend last-as 3
eva(config-route-map)# end
eva# clear bgp ipv4 uni *
eva# show bgp ipv4 uni 4.4.4.4
BGP routing table entry for 4.4.4.4/32
Paths: (1 available, best #1, table default)
  Advertised to non peer-group peers:
  10.50.12.118
  999
    10.50.12.118 from 10.50.12.118 (10.50.12.118)
      Origin incomplete, metric 0, valid, external, best (First path received)
      Last update: Mon Aug 26 09:48:31 2019

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
4 years agoMerge pull request #4853 from rtrlib/2019-08-16-bugfix-7-1
Donald Sharp [Tue, 20 Aug 2019 13:51:53 +0000 (09:51 -0400)]
Merge pull request #4853 from rtrlib/2019-08-16-bugfix-7-1

bgpd: rpki fixes (stable/7.1)

4 years agobgpd: fix bgp_table range lookup
Marcel Röthke [Fri, 16 Aug 2019 14:20:05 +0000 (16:20 +0200)]
bgpd: fix bgp_table range lookup

In case the topmost node has a larger prefix length than the lookup
prefix it never matches even if it was still lower than maxlen

This also alters a test case to check for this bug.

Signed-off-by: Marcel Röthke <marcel.roethke@haw-hamburg.de>
4 years agobgpd: remove initial sync timeout in rpki startup code
Marcel Röthke [Fri, 16 Aug 2019 10:52:47 +0000 (12:52 +0200)]
bgpd: remove initial sync timeout in rpki startup code

The initial sync timeout breaks config load and is not necessary anyway.

Fix #4827

Signed-off-by: Marcel Röthke <marcel.roethke@haw-hamburg.de>
4 years agoMerge pull request #4743 from opensourcerouting/7.1/ospfd-default-originate
Russ White [Tue, 6 Aug 2019 12:29:08 +0000 (08:29 -0400)]
Merge pull request #4743 from opensourcerouting/7.1/ospfd-default-originate

[7.1] ospfd: fix default originate always

4 years agobgpd: [7.1] Strip `delete` keyword when looking up for communit… (#4769)
David Lamparter [Tue, 6 Aug 2019 08:41:07 +0000 (10:41 +0200)]
bgpd: [7.1] Strip `delete` keyword when looking up for communit… (#4769)

bgpd: [7.1] Strip `delete` keyword when looking up for communities

4 years agobgpd: [7.1] Strip `delete` keyword when looking up for lcommuni… (#4786)
David Lamparter [Tue, 6 Aug 2019 08:40:26 +0000 (10:40 +0200)]
bgpd: [7.1] Strip `delete` keyword when looking up for lcommuni… (#4786)

bgpd: [7.1] Strip `delete` keyword when looking up for lcommunities

4 years agobgpd: Strip `delete` keyword when looking up for lcommunities
Donatas Abraitis [Thu, 18 Jul 2019 12:29:20 +0000 (15:29 +0300)]
bgpd: Strip `delete` keyword when looking up for lcommunities

Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
4 years agotopotests: Check if set-comm-list is working under route-map scope
Donatas Abraitis [Fri, 26 Jul 2019 06:16:49 +0000 (09:16 +0300)]
topotests: Check if set-comm-list is working under route-map scope

Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
4 years agobgpd: Convert to network byte order before passing value to `community_del_val`
Donatas Abraitis [Fri, 19 Jul 2019 13:15:52 +0000 (16:15 +0300)]
bgpd: Convert to network byte order before passing value to `community_del_val`

community_val_get() returns ntohl(val) which is used in more places like
community_include(), community_add_val(), but community_del_val() is missing
back conversion htonl().

Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
4 years agobgpd: Strip `delete` keyword when looking up for communities
Donatas Abraitis [Fri, 19 Jul 2019 12:56:58 +0000 (15:56 +0300)]
bgpd: Strip `delete` keyword when looking up for communities

Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
4 years agoMerge pull request #4749 from ton31337/fix/next-hop-self_force_alias_for_ipv6_7.1
Donald Sharp [Tue, 30 Jul 2019 14:01:31 +0000 (10:01 -0400)]
Merge pull request #4749 from ton31337/fix/next-hop-self_force_alias_for_ipv6_7.1

bgpd: [7.1] Add hidden `next-hop-self all` for all address families

4 years agobgpd: Add hidden `next-hop-self all` for all address families
Donatas Abraitis [Wed, 24 Jul 2019 16:05:51 +0000 (19:05 +0300)]
bgpd: Add hidden `next-hop-self all` for all address families

Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
4 years agoospfd: re-fix default origination check
David Lamparter [Mon, 29 Jul 2019 12:44:26 +0000 (14:44 +0200)]
ospfd: re-fix default origination check

ospf->external[DEFAULT_ROUTE] and zclient->default_information don't
line up with each other; the former is only used for "originate always".

Fixes: #4237
Signed-off-by: David Lamparter <equinox@diac24.net>
4 years agoRevert "ospfd: default route got flushed after lsa refresh timer."
David Lamparter [Mon, 29 Jul 2019 12:04:06 +0000 (14:04 +0200)]
Revert "ospfd: default route got flushed after lsa refresh timer."

This reverts commit a6b4e1fdedb290e8d86f73b0d7f842f7042b26af.

This fix is wrong too.

Signed-off-by: David Lamparter <equinox@diac24.net>
4 years agoMerge pull request #4662 from opensourcerouting/fix-outdated-candidate-7.1
Russ White [Tue, 16 Jul 2019 13:19:15 +0000 (09:19 -0400)]
Merge pull request #4662 from opensourcerouting/fix-outdated-candidate-7.1

[7.1] lib: fix outdated candidate configuration issue

4 years agoMerge pull request #4665 from ton31337/fix/show_delete_suboption_for_set_comm-list_7.1
Quentin Young [Wed, 10 Jul 2019 16:06:18 +0000 (12:06 -0400)]
Merge pull request #4665 from ton31337/fix/show_delete_suboption_for_set_comm-list_7.1

bgpd: [7.1] Show `delete` sub-option for `set [l]comm-list <list> delete`

4 years agobgpd: Show `delete` sub-option for `set [l]comm-list <list> delete`
Donatas Abraitis [Wed, 26 Jun 2019 12:06:10 +0000 (15:06 +0300)]
bgpd: Show `delete` sub-option for `set [l]comm-list <list> delete`

Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
4 years agolib: fix outdated candidate configuration issue
Renato Westphal [Mon, 27 May 2019 22:48:13 +0000 (19:48 -0300)]
lib: fix outdated candidate configuration issue

Even when using the classic CLI mode (i.e. when --tcli is not
used), the northbound code still uses vty->candidate_config
to perform configuration changes. From the perspective of the
user, the running configuration is being edited directly, but
under the hood the northbound layer does a full configuration
transaction for each command.  When the running configuration is
edited by a northbound client other than the CLI (e.g. kernel,
gRPC), vty->candidate_config might become outdated, and this can
lead to lots of weird problems. To fix this, always regenerate
vty->candidate_config before each configuration command when
using the classic CLI mode. When using the transactional CLI,
the user needs to update the candidate manually using the "update"
command, otherwise the "commit" command will fail with this error:
"% Candidate configuration needs to be updated before commit".

Fixes some problems reported by Don after moving an interface from
one VRF to another one while zebra is running.

Reported-by: Don Slice <dslice@cumulusnetworks.com>
Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
4 years agoMerge pull request #4646 from ton31337/feature/validate_lcommunity_7.1
Donald Sharp [Tue, 9 Jul 2019 01:47:58 +0000 (21:47 -0400)]
Merge pull request #4646 from ton31337/feature/validate_lcommunity_7.1

bgpd: [7.1] Validate large-community-list against UINT_MAX

4 years agobgpd: Validate large-community-list against UINT_MAX
Donatas Abraitis [Tue, 2 Jul 2019 12:35:26 +0000 (15:35 +0300)]
bgpd: Validate large-community-list against UINT_MAX

Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
4 years ago[7.1] *: s/TRUE/true/, s/FALSE/false/ (#4633)
David Lamparter [Wed, 3 Jul 2019 12:36:16 +0000 (14:36 +0200)]
[7.1] *: s/TRUE/true/, s/FALSE/false/ (#4633)

[7.1] *: s/TRUE/true/, s/FALSE/false/

4 years ago*: s/TRUE/true/, s/FALSE/false/
Quentin Young [Mon, 1 Jul 2019 17:26:05 +0000 (17:26 +0000)]
*: s/TRUE/true/, s/FALSE/false/

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
4 years agoMerge pull request #4611 from donaldsharp/7_1_igmp_connected_source
Jafar Al-Gharaibeh [Thu, 27 Jun 2019 18:50:20 +0000 (21:50 +0300)]
Merge pull request #4611 from donaldsharp/7_1_igmp_connected_source

[7.1]pimd: Dissallow query to be received from a non-connected source

4 years agopimd: Dissallow query to be received from a non-connected source
Donald Sharp [Tue, 25 Jun 2019 04:30:11 +0000 (00:30 -0400)]
pimd: Dissallow query to be received from a non-connected source

When we receive an igmp query on a interface, ensure that the
source address of the packet is connected to the incoming
interface.  This will prevent a meanie from crafting a igmp
packet with a source address less than ours and causing
us to suspend query activities.

Fixes: #1692
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
4 years agoMerge pull request #4595 from ton31337/feature/autocomplete/bgp_peer-groups_7.1
Donald Sharp [Sun, 23 Jun 2019 23:01:37 +0000 (19:01 -0400)]
Merge pull request #4595 from ton31337/feature/autocomplete/bgp_peer-groups_7.1

bgpd: [7.1] List all groups dynamically for commands with peer-group

4 years agobgpd: List all groups dynamically for commands with peer-group
Donatas Abraitis [Tue, 11 Jun 2019 20:29:32 +0000 (23:29 +0300)]
bgpd: List all groups dynamically for commands with peer-group

Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
4 years agoMerge pull request #4593 from ton31337/fix/match_ip_nexthop_type_blackhole_7.1
Donald Sharp [Sat, 22 Jun 2019 14:09:34 +0000 (10:09 -0400)]
Merge pull request #4593 from ton31337/fix/match_ip_nexthop_type_blackhole_7.1

rmap: [7.1] Backport changes regarding `no match ip next-hop type`

4 years agormap: Minor changes in comments regarding match ip[v6] next-hop type
Donatas Abraitis [Sat, 22 Jun 2019 06:30:44 +0000 (09:30 +0300)]
rmap: Minor changes in comments regarding match ip[v6] next-hop type

Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
4 years agormap: Modify cli helper text for `match_ipv6_next_hop_type_cmd`
Donatas Abraitis [Sat, 22 Jun 2019 06:29:19 +0000 (09:29 +0300)]
rmap: Modify cli helper text for `match_ipv6_next_hop_type_cmd`

Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
4 years agormap: Add hooks into zebra,ospf,rip for `match ip next-hop type blackhole`
Donatas Abraitis [Fri, 21 Jun 2019 15:51:33 +0000 (18:51 +0300)]
rmap: Add hooks into zebra,ospf,rip for `match ip next-hop type blackhole`

Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
4 years agoFRRouting release 7.1 frr-7.1
David Lamparter [Tue, 18 Jun 2019 04:15:21 +0000 (06:15 +0200)]
FRRouting release 7.1

- gRPC northbound plugin
- "table NNN" removed from zebra
- more dataplane MT work
- EVPN in non-default VRFs
- RFC 8212 (default deny policy for eBGP)
- RFC 8106 (IPv6 RA DNS options)

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
4 years agoMerge pull request #4539 from opensourcerouting/7.1/watchfrr-sd-timeout
Donald Sharp [Mon, 17 Jun 2019 19:18:33 +0000 (15:18 -0400)]
Merge pull request #4539 from opensourcerouting/7.1/watchfrr-sd-timeout

[7.1] tools: retain sanity when reloading under systemd

4 years agotools: retain sanity when reloading under systemd
David Lamparter [Sun, 9 Jun 2019 23:35:04 +0000 (01:35 +0200)]
tools: retain sanity when reloading under systemd

Without this, we end up restarting watchfrr with the systemd watchdog
non-functional & tripped a bit later.  Also, if watchfrr is in the
"control" cgroup, systemd 232 will kill it.  (241 apparently doesn't.
Can't find anything about this in systemd's ChangeLog though.)

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
(cherry picked from commit 9c251d376ad8e604c25767b32c2816e9ae75a738)

4 years ago7.1: isisd: The RFC states that v6 addresses are limited to 16 in a hello … (#4475)
David Lamparter [Thu, 6 Jun 2019 17:44:03 +0000 (19:44 +0200)]
7.1: isisd: The RFC states that v6 addresses are limited to 16 in a hello … (#4475)

7.1: isisd: The RFC states that v6 addresses are limited to 16 in a hello …

4 years agoisisd: The RFC states that v6 addresses are limited to 16 in a hello packet
Donald Sharp [Wed, 5 Jun 2019 01:15:43 +0000 (21:15 -0400)]
isisd: The RFC states that v6 addresses are limited to 16 in a hello packet

The RFC states we can send only up to 16 v6 addresses in a hello packet
and cannot send sub tlv's of that type.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
4 years agoMerge pull request #4462 from donaldsharp/7.1_bfd_access_list
Rafael Zalamena [Wed, 5 Jun 2019 14:37:55 +0000 (11:37 -0300)]
Merge pull request #4462 from donaldsharp/7.1_bfd_access_list

7.1: bfdd: Modify bfdd to quietly accept access-lists

4 years agobfdd: Modify bfdd to quietly accept access-lists
Donald Sharp [Wed, 5 Jun 2019 01:38:11 +0000 (21:38 -0400)]
bfdd: Modify bfdd to quietly accept access-lists

The `access-list ...` command was causing bfdd to return
'unknown commands'.  Make bfdd at least cognizant of
access-lists enough to not create strange error messages

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
4 years agoMerge pull request #4425 from ton31337/feature/show_fqdn_in_show_ip_bgp_7.1
Donald Sharp [Thu, 30 May 2019 16:59:16 +0000 (12:59 -0400)]
Merge pull request #4425 from ton31337/feature/show_fqdn_in_show_ip_bgp_7.1

bgpd: [7.1] Show FQDN in `show [ip] bgp` output

4 years agobgpd: Show FQDN in `show [ip] bgp` output
Donatas Abraitis [Mon, 20 May 2019 13:43:01 +0000 (16:43 +0300)]
bgpd: Show FQDN in `show [ip] bgp` output

We already show this information in `show [ip] bgp <prefix`, thus why don't
show it in global output. It's very handy when using at scale and to see
the whole picture instead of resolving neighbor manually.

It will show FQDN only if `bgp default show-hostname` is toggled.

Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
4 years agoMerge pull request #4423 from ton31337/feature/delete_prefix_list_by_sequence_number_7.1
Donald Sharp [Thu, 30 May 2019 13:01:54 +0000 (09:01 -0400)]
Merge pull request #4423 from ton31337/feature/delete_prefix_list_by_sequence_number_7.1

plist: [7.1] Delete prefix-list by sequence number

4 years agoplist: Delete prefix-list by sequence number
Donatas Abraitis [Fri, 24 May 2019 06:22:09 +0000 (09:22 +0300)]
plist: Delete prefix-list by sequence number

Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
4 years agoMerge pull request #4411 from opensourcerouting/feature/fix-isis-route-deletion-7.1
Donald Sharp [Wed, 29 May 2019 13:11:57 +0000 (09:11 -0400)]
Merge pull request #4411 from opensourcerouting/feature/fix-isis-route-deletion-7.1

isisd: del routes when area is unconfigured

4 years agoisisd: del routes when area is unconfigured
Emanuele Di Pascale [Tue, 28 May 2019 14:46:06 +0000 (16:46 +0200)]
isisd: del routes when area is unconfigured

attempt to fix #4399

Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
4 years agoMerge pull request #4406 from opensourcerouting/snap-fix-7.1
Donald Sharp [Wed, 29 May 2019 01:05:08 +0000 (21:05 -0400)]
Merge pull request #4406 from opensourcerouting/snap-fix-7.1

[7.1] Snap fixes for 7.1

4 years agosnapcraft: Add libdb5.3 dependency
Martin Winter [Tue, 28 May 2019 22:56:24 +0000 (00:56 +0200)]
snapcraft: Add libdb5.3 dependency

Signed-off-by: Martin Winter <mwinter@opensourcerouting.org>
4 years agosnapcraft: Disable libyang CACHE for snap package (Temp workaround)
Martin Winter [Mon, 18 Feb 2019 15:57:24 +0000 (07:57 -0800)]
snapcraft: Disable libyang CACHE for snap package (Temp workaround)

There seems to be a bug in latest libyang running when running in
a snap container which causes a failure of the cache logic. Disable
CACHE for now as it's not yet needed. Will be re-enabled in a later
release

Signed-off-by: Martin Winter <mwinter@opensourcerouting.org>
4 years agosnapcraft: Add FabricD to Snap package
Martin Winter [Thu, 7 Feb 2019 23:12:14 +0000 (15:12 -0800)]
snapcraft: Add FabricD to Snap package

Signed-off-by: Martin Winter <mwinter@opensourcerouting.org>
4 years agosnapcraft: Update bgpd to use newer rpki lib
Martin Winter [Thu, 7 Feb 2019 22:44:47 +0000 (14:44 -0800)]
snapcraft: Update bgpd to use newer rpki lib

Signed-off-by: Martin Winter <mwinter@opensourcerouting.org>
4 years agosnapcraft: Add libyang to snap package
Martin Winter [Thu, 17 Jan 2019 19:02:04 +0000 (11:02 -0800)]
snapcraft: Add libyang to snap package

Signed-off-by: Martin Winter <mwinter@opensourcerouting.org>
4 years agosnapcraft: Add missing staticd.conf.default
Martin Winter [Thu, 7 Feb 2019 15:07:25 +0000 (07:07 -0800)]
snapcraft: Add missing staticd.conf.default

Signed-off-by: Martin Winter <mwinter@opensourcerouting.org>
4 years agosnapcraft: Don't stage libc6
Martin Winter [Thu, 17 Jan 2019 19:01:05 +0000 (11:01 -0800)]
snapcraft: Don't stage libc6

Signed-off-by: Martin Winter <mwinter@opensourcerouting.org>
4 years agosnapcraft: Update RTRLIB to 0.6.3
Martin Winter [Thu, 17 Jan 2019 16:32:47 +0000 (08:32 -0800)]
snapcraft: Update RTRLIB to 0.6.3

Signed-off-by: Martin Winter <mwinter@opensourcerouting.org>
4 years agoMerge pull request #4381 from opensourcerouting/7.1/dlist
Quentin Young [Fri, 24 May 2019 00:37:26 +0000 (20:37 -0400)]
Merge pull request #4381 from opensourcerouting/7.1/dlist

[7.1] DLIST / BGP adv_fifo deletion fix

4 years agobgpd: use DLIST for adv_fifo
David Lamparter [Mon, 20 May 2019 21:41:16 +0000 (23:41 +0200)]
bgpd: use DLIST for adv_fifo

I mistakenly assumed that something called "FIFO" would primarily be
used by removing items from the front.  This isn't the case for the
adv_fifo... so use a DLIST there to make sure deletions from the middle
of the queue are fast.

Signed-off-by: David Lamparter <equinox@diac24.net>
(cherry picked from commit 5ac8ecbabd9638f726fdff5d49b43e675a47e434)

4 years agolib: add DECLARE_DLIST (double-linked list)
David Lamparter [Sun, 12 May 2019 10:05:44 +0000 (12:05 +0200)]
lib: add DECLARE_DLIST (double-linked list)

Turns out we need one of these.  Same API as DECLARE_LIST, but deleting
random items is much faster.

Signed-off-by: David Lamparter <equinox@diac24.net>
(cherry picked from commit fdad523b547e68a2170a7e5fec4bad98222cb9a0)

4 years agoMerge pull request #4356 from donaldsharp/7.1_updates
Renato Westphal [Mon, 20 May 2019 13:34:39 +0000 (10:34 -0300)]
Merge pull request #4356 from donaldsharp/7.1_updates

7.1 updates

5 years agobgpd: display bgp neighbor advertised-routes json warning message
Sarita Patra [Tue, 14 May 2019 13:22:19 +0000 (06:22 -0700)]
bgpd: display bgp neighbor advertised-routes json warning message

Issue 1:
Getting an empty json without any warning message, while executing
the command "show ip bgp neighbor <x.x.x.x> advertised-routes
json" when the bgp instance is not present or getting created.

Issue 2:
Getting an empty json without any warning message, while executing
the command "show ip bgp vrf/view <name> advertised-routes json"
when the specified view/vrf is not present.

Fix:
Display warning message while executing the above cli commands, when
the bgp instance, specified vrf is not present.

Signed-off-by: Sarita Patra <saritap@vmware.com>
5 years agolib: fix crash in the CLI grammar sandbox
Renato Westphal [Mon, 13 May 2019 18:18:57 +0000 (15:18 -0300)]
lib: fix crash in the CLI grammar sandbox

The CLI grammer sandbox needs to initialize the northbound subsystem
otherwise the running_config global variable won't be set, which
leads to crashes.

Fixes #4319.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
5 years agodoc: fix ospf6d router-id cmd
Emanuele Di Pascale [Mon, 13 May 2019 11:05:59 +0000 (13:05 +0200)]
doc: fix ospf6d router-id cmd

in ospf6d, the 'router-id' command must be prefixed with 'ospf6'.
Update the docs to reflect this.

Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
5 years agobgpd: evpn json cli bug fix
Lakshman Krishnamoorthy [Sat, 11 May 2019 16:33:10 +0000 (09:33 -0700)]
bgpd: evpn json cli bug fix

Bug: If there are 2 different prefixes under an rd, the
output of "show bgp l2vpn evpn json" would print only one of the
prefixes.

RCA: prefix info was added to the json_object once per rd. Hence,
prefix and rd were added just once, as the loop iterated over all
the prefixes and paths.

This is related to my earlier commit that went in via PR 4283:
https://github.com/FRRouting/frr/pull/4283

Signed-off-by: Lakshman Krishnamoorthy <lkrishnamoor@vmware.com>
5 years agodoc: add doc for zebra dplane cli
Mark Stapp [Wed, 8 May 2019 18:12:55 +0000 (14:12 -0400)]
doc: add doc for zebra dplane cli

Add some notes about the cli associated with the zebra
dataplane.

Signed-off-by: Mark Stapp <mjs@voltanet.io>
5 years agozebra: unset sticky mac upon local deletion
Chirag Shah [Thu, 9 May 2019 19:25:44 +0000 (12:25 -0700)]
zebra: unset sticky mac upon local deletion

if the local sticky mac delete request is received,
if there are associated neighbor entries present, mac's
only local flag is removed and marked as auto mac.

this results in next local mac learning automatically assumes
mac is sticky.

There is a case when bridge learning off is configured, user
configures sticky mac via bridge fdb add.
This MAC learns associated neighbor entry.
Later user deletes stick mac via bridge fdb del, this triggers
frr to delete mac but if there are neighbors present, frr marks
MAC as AUTO but does not remove sticky flag.
User enables bridge learning on which triggers
The mac to learn as dynamic entry and in absence of this
fix, the mac is marked as sticky.

Ticket:CM-24968
Reviewed By:CCR-8683
Testing Done:

Validated broken condition with internally reproduction
with fix and without.

Signed-off-by: Chirag Shah <chirag@cumulusnetworks.com>
5 years agodoc: add doc for bgp maximum-prefix knob
Quentin Young [Wed, 8 May 2019 19:29:13 +0000 (19:29 +0000)]
doc: add doc for bgp maximum-prefix knob

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
5 years agobgpd: Evpn json cli output missing
Lakshman Krishnamoorthy [Tue, 7 May 2019 21:07:35 +0000 (14:07 -0700)]
bgpd: Evpn json cli output missing

Issue1: The following json cli commands are broken (they dont display
anything):
1. show [ip] bgp l2vpn evpn json
2. show [ip] bgp l2vpn evpn all neighbors <IP> routes json
3. show [ip] bgp l2vpn evpn rd <RD> json
4. show [ip] bgp l2vpn evpn rd <RD> neighbors <IP> routes json

RCA1: The existing json_object was partially filled.
Some fields like "prefix", "prefixLen", etc were not
filled in the json_object.
RCA2: Code missing to display the constructed json_object.

Issue2: Column header not shown on bgp evpn commands.
Fix: turned on the flag to display header

Output after fix:
The above commands have been made to follow the existing output style of
"show bgp l2vpn evpn routes json"
leaf-1# sh bgp l2vpn evpn json
{
  "bgpTableVersion":1,
  "bgpLocalRouterId":"10.100.0.1",
  "defaultLocPrf":100,
  "localAS":65000,
  "10.100.0.1:3":{
    "rd":"10.100.0.1:3",
    "[3]:[0]:[32]:[10.100.0.1]":{
      "prefix":"[3]:[0]:[32]:[10.100.0.1]",
      "prefixLen":288,
      "paths":[
        {
          "valid":true,
          "bestpath":true,
          "pathFrom":"external",
          "routeType":3,
          "ethTag":0,
          "ipLen":32,
          "ip":"10.100.0.1",
          "weight":32768,
          "peerId":"(unspec)",
          "aspath":"",
          "path":"",
          "origin":"IGP",
          "nexthops":[
            {
              "ip":"10.100.0.1",
              "afi":"ipv4",
              "used":true
            }
          ]
        }
      ]
    }
  },
..........
..........
  "10.100.0.2:2":{
    "rd":"10.100.0.2:2",
    "[3]:[0]:[32]:[10.100.0.2]":{
      "prefix":"[3]:[0]:[32]:[10.100.0.2]",
      "prefixLen":288,
      "paths":[
        {
          "valid":true,
          "bestpath":true,
          "pathFrom":"external",
          "routeType":3,
          "ethTag":0,
          "ipLen":32,
          "ip":"10.100.0.2",
          "weight":0,
          "peerId":"205.0.113.2",
          "aspath":"65002",
          "path":"65002",
          "origin":"IGP",
          "nexthops":[
            {
              "ip":"10.100.0.2",
              "afi":"ipv4",
              "used":true
            }
          ]
        },
        {
          "valid":true,
          "pathFrom":"external",
          "routeType":3,
          "ethTag":0,
          "ipLen":32,
          "ip":"10.100.0.2",
          "weight":0,
          "peerId":"203.0.113.4",
          "aspath":"65001 65002",
          "path":"65001 65002",
          "origin":"IGP",
          "nexthops":[
            {
              "ip":"10.100.0.2",
              "afi":"ipv4",
              "used":true
            }
          ]
        }
      ]
    }
  },
....
....
  "numPrefix":10,
  "totalPrefix":10
}
leaf-1# sh bgp l2vpn evpn
BGP table version is 1, local router ID is 10.100.0.1
Status codes:s suppressed, d damped, h history, * valid, > best, i - int
Origin codes: i - IGP, e - EGP, ? - incomplete

   Network          Next Hop            Metric LocPrf Weight Path
Route Distinguisher: ip 10.100.0.1:3

*> [3]:[0]:[32]:[10.100.0.1]
                    10.100.0.1                         32768 i
Route Distinguisher: ip 10.100.0.1:4

*> [3]:[0]:[32]:[10.100.0.1]
                    10.100.0.1                         32768 i
Route Distinguisher: ip 10.100.0.1:5

*> [3]:[0]:[32]:[10.100.0.1]
                    10.100.0.1                         32768 i
Route Distinguisher: ip 10.100.0.1:6

*> [3]:[0]:[32]:[10.100.0.1]
                    10.100.0.1                         32768 i
Route Distinguisher: ip 10.100.0.2:2

*> [3]:[0]:[32]:[10.100.0.2]
                    10.100.0.2                             0 65002 i
*  [3]:[0]:[32]:[10.100.0.2]
                    10.100.0.2                             0 65001 65002
Route Distinguisher: ip 10.100.0.2:3

*> [3]:[0]:[32]:[10.100.0.2]
                    10.100.0.2                             0 65002 i
*  [3]:[0]:[32]:[10.100.0.2]
                    10.100.0.2                             0 65001 65002
Route Distinguisher: ip 10.100.0.2:4

*> [3]:[0]:[32]:[10.100.0.2]
                    10.100.0.2                             0 65002 i
*  [3]:[0]:[32]:[10.100.0.2]
                    10.100.0.2                             0 65001 65002

Displayed 10 out of 10 total prefixes

Signed-off-by: Lakshman Krishnamoorthy <lkrishnamoor@vmware.com>
5 years agoisisd: Don't set subtlv structure if we didn't unpack any subtlvs
Christian Franke [Fri, 10 May 2019 11:24:38 +0000 (13:24 +0200)]
isisd: Don't set subtlv structure if we didn't unpack any subtlvs

This ensures deserialized and serialized TLV representation is
consistent.

5 years agoPimd : S,G Mroute entries are not expiring even after KAT expiry,
rgirada [Fri, 3 May 2019 17:35:48 +0000 (10:35 -0700)]
Pimd : S,G Mroute entries are not expiring  even after KAT expiry,
       become stale entries.

Topology:
--------
Source
|
FHR
|
RP ------ LHR --- Recv1
|
Recv2

Root case :
-----------
When RP acts as a LHR i.e RP has a local receiver and registed for
the same group where LHR connected receiver also registered for the
same multicast group.When RP receives a (s,g) join form LHR , it
increments upstream ref count to two to track the Local membership
as well.But at the time of KAT expiry in RP , upstream reference
is not being removed Which is added to track local membership which
is causing to make these entries as stale in RP and FHR.

Fix : Made the change such that it removes the upstream reference
if it is added to track the local memberships.

Signed-off-by: Rajesh Girada <rgirada@vmware.com>
5 years agolib, bgpd: Disallow processing of duplicate config.
Naveen Thanikachalam [Wed, 8 May 2019 09:58:27 +0000 (02:58 -0700)]
lib, bgpd: Disallow processing of duplicate config.

This fix aims to reduce the load on BGPD when certain
exisiting configurations are replayed.
Specifically, the fix prevents BGPD from processing
routes when the following already existing configurations
are replayed:
1) A match criteria is configured within a route-map.
2) When "call" is invoked within a route-map.
3) When a route-map is tied to a BGP neighbor.

Signed-off-by: NaveenThanikachalam <nthanikachal@vmware.com>
5 years agolib : Child rmap not sending an update to parent rmap,if there is an update in child...
vishaldhingra [Thu, 9 May 2019 03:53:35 +0000 (20:53 -0700)]
lib : Child rmap not sending an update to parent rmap,if there is an update in child rmap.

Route map library creates a hash table to save the dependency binding.
route-map LRM permit 1
call rLRM
Whenever there is change in child routemap(rLRM), it tries to
find the dependency mapping with the child route map MATCH event
and it fails.The handing of match add and match delete was missing
to get the correct dependency,here it's LRM.
This fix would correct the flow to get the correct dependency.

Signed-off-by: vishaldhingra <vdhingra@vmware.com>
5 years agoMerge pull request #4336 from mjstapp/fix_vrf_lsps_7_1
Donald Sharp [Tue, 14 May 2019 17:35:57 +0000 (13:35 -0400)]
Merge pull request #4336 from mjstapp/fix_vrf_lsps_7_1

zebra: [7.1] remove vrf LSPs when vrf is deleted

5 years agozebra: [7.1] remove vrf LSPs when vrf is deleted
Mark Stapp [Tue, 14 May 2019 16:21:29 +0000 (12:21 -0400)]
zebra: [7.1] remove vrf LSPs when vrf is deleted

Try to remove any LSPs associated with a vrf when the vrf is
deleted. The vrf code was calling a helpful zebra_mpls api,
but that api was basically a no-op for vrfs other than
the default.

Signed-off-by: Mark Stapp <mjs@voltanet.io>
5 years agoconfigure: Update Version to be 7.1
Donald Sharp [Wed, 8 May 2019 13:51:27 +0000 (09:51 -0400)]
configure: Update Version to be 7.1

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
5 years agoMerge pull request #4286 from vishaldhingra/show_expanded
Donald Sharp [Wed, 8 May 2019 11:56:00 +0000 (07:56 -0400)]
Merge pull request #4286 from vishaldhingra/show_expanded

bgpd : lcommlist not shows the standard and expanded conf. correctly.

5 years agobgpd : lcommlist not shows the standard and expanded conf. correctly.
vishaldhingra [Wed, 8 May 2019 04:12:03 +0000 (21:12 -0700)]
bgpd : lcommlist not shows the standard and expanded conf. correctly.

lcommunity_list_show uses the wrong macro to calculate the style.
Use the correct one LARGE_COMMUNITY_LIST_STANDARD.

Signed-off-by: vishaldhingra<vdhingra@vmware.com>
5 years agoMerge pull request #4280 from qlyoung/remove-yang-strreplace-func
Renato Westphal [Tue, 7 May 2019 21:52:16 +0000 (18:52 -0300)]
Merge pull request #4280 from qlyoung/remove-yang-strreplace-func

lib: remove str_replace function

5 years agoMerge pull request #4277 from rtrlib/2019-05-07-master-bugfix
Quentin Young [Tue, 7 May 2019 20:54:50 +0000 (16:54 -0400)]
Merge pull request #4277 from rtrlib/2019-05-07-master-bugfix

RPKI fixes/improvements

5 years agoMerge pull request #4082 from opensourcerouting/grpc-nb-plugin
Quentin Young [Tue, 7 May 2019 20:53:17 +0000 (16:53 -0400)]
Merge pull request #4082 from opensourcerouting/grpc-nb-plugin

gRPC northbound plugin

5 years agoMerge pull request #4215 from Orange-OpenSource/TE
Quentin Young [Tue, 7 May 2019 20:41:20 +0000 (16:41 -0400)]
Merge pull request #4215 from Orange-OpenSource/TE

ospfd: Correct Link-ID and Remote IP for TE LSA

5 years agolib: remove str_replace function
Quentin Young [Tue, 7 May 2019 17:53:23 +0000 (17:53 +0000)]
lib: remove str_replace function

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
5 years agoMerge pull request #4273 from donaldsharp/doc_zebra_command
Sri Mohana Singamsetty [Tue, 7 May 2019 16:30:09 +0000 (09:30 -0700)]
Merge pull request #4273 from donaldsharp/doc_zebra_command

doc: Add a couple of missed `show zebra ...` comamnds to doc

5 years agoMerge pull request #4270 from opensourcerouting/libyang-compat
Lou Berger [Tue, 7 May 2019 15:07:39 +0000 (11:07 -0400)]
Merge pull request #4270 from opensourcerouting/libyang-compat

lib, yang: disable libyang custom user types temporarily

5 years agobgpd: fix rpki module build without ssh support
Marcel Röthke [Tue, 7 May 2019 15:00:30 +0000 (17:00 +0200)]
bgpd: fix rpki module build without ssh support

Signed-off-by: Marcel Röthke <marcel.roethke@haw-hamburg.de>
5 years agobgpd: add missing newline to a warning message in the rpki module
Marcel Röthke [Tue, 7 May 2019 14:59:28 +0000 (16:59 +0200)]
bgpd: add missing newline to a warning message in the rpki module

Signed-off-by: Marcel Röthke <marcel.roethke@haw-hamburg.de>
5 years agodoc: Add a couple of missed `show zebra ...` comamnds to doc
Donald Sharp [Tue, 7 May 2019 02:51:45 +0000 (22:51 -0400)]
doc: Add a couple of missed `show zebra ...` comamnds to doc

Noticed that a couple of the `show zebra ...` commands are missing
from the zebra documentation that I use a bunch.  Let's add them
in.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
5 years agoMerge pull request #4266 from vishaldhingra/lcomm_dyn
Donald Sharp [Tue, 7 May 2019 02:16:28 +0000 (22:16 -0400)]
Merge pull request #4266 from vishaldhingra/lcomm_dyn

bgpd : dynamic modification in lcomm-list is not taking effect.

5 years agoMerge pull request #4268 from qlyoung/frrstr-replace
Renato Westphal [Tue, 7 May 2019 02:14:38 +0000 (23:14 -0300)]
Merge pull request #4268 from qlyoung/frrstr-replace

lib: add string replace function

5 years agoMerge pull request #4244 from donaldsharp/pim_single_interface
Renato Westphal [Tue, 7 May 2019 02:10:03 +0000 (23:10 -0300)]
Merge pull request #4244 from donaldsharp/pim_single_interface

pimd: Stop crash in show of single interface