]> git.puffer.fish Git - mirror/frr.git/log
mirror/frr.git
8 years agocumulus, tools: Allow nhrpd to be brought up
Donald Sharp [Tue, 7 Mar 2017 15:49:46 +0000 (10:49 -0500)]
cumulus, tools: Allow nhrpd to be brought up

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
8 years agodistro/redhat: package nhrpd
Timo Teräs [Tue, 14 Feb 2017 11:07:39 +0000 (13:07 +0200)]
distro/redhat: package nhrpd

Signed-off-by: Timo Teräs <timo.teras@iki.fi>
[DL: adapted for FRR, changed port number 2612->2610]
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
8 years agonhrpd: workaround old kernel vs. glibc definition conflics
Timo Teräs [Tue, 14 Feb 2017 09:55:09 +0000 (11:55 +0200)]
nhrpd: workaround old kernel vs. glibc definition conflics

fixes https://bugzilla.quagga.net/show_bug.cgi?id=908

With kernel-headers-3.10.0 we have:

In file included from netlink_gre.c:15:0:
/usr/include/linux/ipv6.h:19:8: error: redefinition of 'struct in6_pktinfo'
 struct in6_pktinfo {
        ^
In file included from netlink_gre.c:10:0:
/usr/include/netinet/in.h:536:8: note: originally defined here
 struct in6_pktinfo
        ^
In file included from netlink_gre.c:15:0:
/usr/include/linux/ipv6.h:24:8: error: redefinition of 'struct ip6_mtuinfo'
 struct ip6_mtuinfo {
        ^
In file included from netlink_gre.c:10:0:
/usr/include/netinet/in.h:543:8: note: originally defined here
 struct ip6_mtuinfo

So instead of libc's netinet/in.h include kernel's linux/in.h
and the add sys/socket.h for struct sockaddr since it does not
seem to be defined in kernel headers.

Signed-off-by: Timo Teräs <timo.teras@iki.fi>
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
8 years agodoc: add initial nhrpd documentation
Timo Teräs [Tue, 24 Jan 2017 14:42:19 +0000 (16:42 +0200)]
doc: add initial nhrpd documentation

[DL: resolved renaming & conflicts]
Signed-off-by: Timo Teräs <timo.teras@iki.fi>
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
8 years agonhrpd: include headers in dist tarball
David Lamparter [Sun, 12 Feb 2017 13:25:26 +0000 (14:25 +0100)]
nhrpd: include headers in dist tarball

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
8 years agonhrpd: change VTY port 2612->2610
David Lamparter [Sun, 12 Feb 2017 12:41:37 +0000 (13:41 +0100)]
nhrpd: change VTY port 2612->2610

2612 is already in use for ldpd.
(Change to SERVICES file resolved in rebasing)

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
8 years agonhrpd: adapt to API changes
David Lamparter [Sat, 11 Feb 2017 20:29:57 +0000 (21:29 +0100)]
nhrpd: adapt to API changes

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
8 years agonhrpd: implement next hop resolution protocol
Timo Teräs [Thu, 19 Jan 2017 15:27:01 +0000 (17:27 +0200)]
nhrpd: implement next hop resolution protocol

This provides DMVPN support and integrates to strongSwan. Please read
README.nhrpd and README.kernel for more details.

[DL: cherry-picked from dafa05e65fe4b3b3ed5525443f554215ba14f42c]
[DL: merge partially resolved, this commit will not build.]
Signed-off-by: Timo Teräs <timo.teras@iki.fi>
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
8 years agoMerge branch 'frr/pull/255' ("vtysh: Fix cli help string to have only 1 mention of...
David Lamparter [Tue, 7 Mar 2017 15:13:49 +0000 (16:13 +0100)]
Merge branch 'frr/pull/255' ("vtysh: Fix cli help string to have only 1 mention of vty_socket")

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
8 years agoMerge branch 'frr/pull/246' ("Pim command cleanup")
David Lamparter [Tue, 7 Mar 2017 15:09:30 +0000 (16:09 +0100)]
Merge branch 'frr/pull/246' ("Pim command cleanup")

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
8 years agoMerge branch 'frr/pull/240' ("lib, bgpd: clean up headers")
David Lamparter [Tue, 7 Mar 2017 15:03:36 +0000 (16:03 +0100)]
Merge branch 'frr/pull/240' ("lib, bgpd: clean up headers")

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
8 years agoMerge branch 'frr/pull/236' ("tools: frr-reload.py needs to treat "mpls" as a single...
David Lamparter [Tue, 7 Mar 2017 15:02:41 +0000 (16:02 +0100)]
Merge branch 'frr/pull/236' ("tools: frr-reload.py needs to treat "mpls" as a single line context")

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
8 years agoMerge branch 'frr/pull/228' ("doc: add CLI implementation documentation")
David Lamparter [Tue, 7 Mar 2017 15:01:37 +0000 (16:01 +0100)]
Merge branch 'frr/pull/228' ("doc: add CLI implementation documentation")

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
8 years agoMerge pull request #251 from donaldsharp/bgp_view
Martin Winter [Tue, 7 Mar 2017 14:51:10 +0000 (06:51 -0800)]
Merge pull request #251 from donaldsharp/bgp_view

BGP Display

8 years agovtysh: Fix cli help string to have only 1 mention of vty_socket 255/head
Donald Sharp [Tue, 7 Mar 2017 00:49:05 +0000 (19:49 -0500)]
vtysh: Fix cli help string to have only 1 mention of vty_socket

When you run 'vtysh -h' the option '--vty_socket' is listed twice.
Fixes issue #253

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
8 years agobgpd: Remove dead code 251/head
Donald Sharp [Mon, 6 Mar 2017 18:59:06 +0000 (13:59 -0500)]
bgpd: Remove dead code

Remove the accidently left code.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
8 years agobgpd: Fix more assignments inside of if statement
Donald Sharp [Mon, 6 Mar 2017 15:43:15 +0000 (10:43 -0500)]
bgpd: Fix more assignments inside of if statement

Code inspection showed a bunch more spots where
we were assigning the safi inside of a if statement

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
8 years agobgpd: Fix broken if statement
Donald Sharp [Mon, 6 Mar 2017 15:29:14 +0000 (10:29 -0500)]
bgpd: Fix broken if statement

When outputting routes associated with a 'struct bgp'
do not force the safi to bee SAFI_EVPN and cause output
to be hosed.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
8 years agoMerge pull request #249 from opensourcerouting/ldpd-rfcs
Donald Sharp [Sun, 5 Mar 2017 02:04:46 +0000 (21:04 -0500)]
Merge pull request #249 from opensourcerouting/ldpd-rfcs

ldpd: implement new RFCs and other assorted enhancements

8 years agoldpd: add missing htonl and ntohl in PF_KEY code 249/head
Renato Westphal [Fri, 3 Mar 2017 20:50:22 +0000 (17:50 -0300)]
ldpd: add missing htonl and ntohl in PF_KEY code

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
8 years agoldpd: always check if the received labels are valid
Renato Westphal [Fri, 3 Mar 2017 20:50:22 +0000 (17:50 -0300)]
ldpd: always check if the received labels are valid

We were doing some sanity checks only for labels of Label Mapping
messages. Now do the same checks for labels of Label Release and Label
Withdraw messages as well.

While here, plug a small memleak in the error path of recv_labelmessage().

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
8 years agoldpd: remove unnecessary memcpy's
Renato Westphal [Fri, 3 Mar 2017 20:50:22 +0000 (17:50 -0300)]
ldpd: remove unnecessary memcpy's

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
8 years agoldpd: send VPLS MAC withdrawals
Renato Westphal [Fri, 3 Mar 2017 20:50:22 +0000 (17:50 -0300)]
ldpd: send VPLS MAC withdrawals

RFC 4762 says that MAC address withdrawal messages can be used to
improve convergence time in VPLS networks. This patch makes ldpd send
MAC withdrawals whenever a non-pseudowire interface pertaining to a
VPLS goes down. The processing of received MAC withdrawals will be
implemented later.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
8 years agoldpd: fix parsing of optional tlvs in address messages
Renato Westphal [Fri, 3 Mar 2017 20:50:22 +0000 (17:50 -0300)]
ldpd: fix parsing of optional tlvs in address messages

We were aborting the session upon receipt of MAC Address Withdrawal
messages. Now make the parser aware that optional TLVs are possible in
address messages.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
8 years agoldpd: implement RFC 5919 (LDP End-of-LIB)
Renato Westphal [Fri, 3 Mar 2017 20:50:22 +0000 (17:50 -0300)]
ldpd: implement RFC 5919 (LDP End-of-LIB)

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
8 years agoldpd: implement RFC 6667 (Typed Wildcard FEC for PWid)
Renato Westphal [Fri, 3 Mar 2017 20:50:22 +0000 (17:50 -0300)]
ldpd: implement RFC 6667 (Typed Wildcard FEC for PWid)

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
8 years agoldpd: implement RFC 5918 (Typed Wildcard FEC)
Renato Westphal [Fri, 3 Mar 2017 20:50:22 +0000 (17:50 -0300)]
ldpd: implement RFC 5918 (Typed Wildcard FEC)

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
8 years agoldpd: implement RFC 5561 (LDP Capabilities)
Renato Westphal [Fri, 3 Mar 2017 20:50:22 +0000 (17:50 -0300)]
ldpd: implement RFC 5561 (LDP Capabilities)

This patch per-se doesn't introduce any useful functionality, but prepares
the ground for new enhancements to ldpd (i.e. implementation of new RFCs
that make use of LDP capabilities).

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
8 years agoldpd: implement support for PWid group wildcards
Renato Westphal [Fri, 3 Mar 2017 20:50:22 +0000 (17:50 -0300)]
ldpd: implement support for PWid group wildcards

This was missing from our original RFC 4447 VPLS implementation. Now
ldpd understands group wildcards as mandated by the RFC, but we still
don't send them ourselves. I can't see any case in which sending a group
wildcard would be useful, but nonetheless this patch provides a function
called lde_send_labelwithdraw_pwid_wcard() which is ready to be used in
the future anytime we feel like it might be useful.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
8 years agoldpd: fix processing of Label Withdraw messages
Renato Westphal [Fri, 3 Mar 2017 20:50:22 +0000 (17:50 -0300)]
ldpd: fix processing of Label Withdraw messages

Whenever we receive a Label Withdraw message with an optional Label
TLV, we should check if this label matches the label previously
received from this neighbor for this FEC. If they don't match then we
shouldn't uninstall the previous label from the kernel. This fixes a
misinterpretation from the "Receive Label Withdraw" algorithm described
in the A.1.5 section of RFC 5036.

Also, simplify the check of pending withdraws in lde_check_release()
and lde_check_release_wcard().

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
8 years agoldpd: the PW Status is an unknown TLV
Renato Westphal [Fri, 3 Mar 2017 20:50:22 +0000 (17:50 -0300)]
ldpd: the PW Status is an unknown TLV

Without this fix, any LDP speaker that doesn't implement RFC 4447 will
shut down the session upon receipt of a PWid Label Mapping (unless the
use of the PW-Status TLV is disabled via configuration).

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
8 years agoldpd: send correct status code on error condition
Renato Westphal [Fri, 3 Mar 2017 20:50:22 +0000 (17:50 -0300)]
ldpd: send correct status code on error condition

The Unknown TLV status code is reserved for cases where we don't know
how to process a given TLV and its Unknown TLV bit is not set.

In the case of Address Messages, the Address List TLV is mandatory and
should appear before any optional TLV in the message. If that doesn't
happen the correct status notification to send is "Missing Message
Parameters" (non-fatal error).

Also, add a missing htons when creating an Address List TLV. Since the
value of TLV_TYPE_ADDRLIST is 0x0101 this missing htons wasn't noticed
earlier.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
8 years agoldpd: create helper functions to log sent/received messages
Renato Westphal [Fri, 3 Mar 2017 20:50:22 +0000 (17:50 -0300)]
ldpd: create helper functions to log sent/received messages

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
8 years agoldpd: provide more detailed output when logging notification messages
Renato Westphal [Fri, 3 Mar 2017 20:50:22 +0000 (17:50 -0300)]
ldpd: provide more detailed output when logging notification messages

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
8 years agoldpd: kill send_notification_nbr()
Renato Westphal [Fri, 3 Mar 2017 20:50:22 +0000 (17:50 -0300)]
ldpd: kill send_notification_nbr()

Be more clever and trigger the PDU SENT event inside send_notification()
when tcp->nbr is set. This way we can eliminate send_notification_nbr()
and always use send_notification() instead.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
8 years agoldpd: minor tweaks
Renato Westphal [Fri, 3 Mar 2017 20:50:22 +0000 (17:50 -0300)]
ldpd: minor tweaks

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
8 years agoldpd: replace hand-rolled 'for' loop with specialized macro
Renato Westphal [Fri, 3 Mar 2017 20:50:22 +0000 (17:50 -0300)]
ldpd: replace hand-rolled 'for' loop with specialized macro

No intentional functional change.

Original author: Kenneth R Westerback <krw@openbsd.org>
Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
8 years agotools: frr-reload.py needs to treat "no " as a single line context 236/head
Daniel Walton [Fri, 3 Mar 2017 19:57:27 +0000 (19:57 +0000)]
tools: frr-reload.py needs to treat "no " as a single line context

Signed-off-by: Daniel Walton <dwalton@cumulusnetworks.com>
Reviewed-by: Donald Sharp <sharpd@cumulusnetworks.com>
8 years agoMerge pull request #245 from donaldsharp/ldpd_load
Renato Westphal [Fri, 3 Mar 2017 16:25:17 +0000 (13:25 -0300)]
Merge pull request #245 from donaldsharp/ldpd_load

Ldpd load

8 years agolib: Cleanup missing help strings for 'show commandtree..' 245/head
Donald Sharp [Fri, 3 Mar 2017 15:54:10 +0000 (10:54 -0500)]
lib: Cleanup missing help strings for 'show commandtree..'

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
8 years agocumulus: Add startup parameters for ldpd
Donald Sharp [Fri, 3 Mar 2017 15:47:10 +0000 (10:47 -0500)]
cumulus: Add startup parameters for ldpd

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
8 years agoMerge pull request #233 from donaldsharp/ecmp1
Renato Westphal [Fri, 3 Mar 2017 15:42:52 +0000 (12:42 -0300)]
Merge pull request #233 from donaldsharp/ecmp1

bgpd, zebra: Allow setting ecmp from daemon cli

8 years agobgp: Fix view/vrf lookup
Donald Sharp [Thu, 2 Mar 2017 18:31:01 +0000 (13:31 -0500)]
bgp: Fix view/vrf lookup

This commit fixes the view/vrf lookup that got broken.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
8 years agopimd: Fix 'show ip pim state' command 246/head
Donald Sharp [Thu, 2 Mar 2017 15:57:45 +0000 (10:57 -0500)]
pimd: Fix 'show ip pim state' command

The 'show ip pim state' command was not
working quite correctly from when
we moved over to the new vtysh-grammar.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
8 years agopimd: Hide 'ip multicast-routing' command
Donald Sharp [Thu, 2 Mar 2017 15:33:23 +0000 (10:33 -0500)]
pimd: Hide 'ip multicast-routing' command

Automatically turn on pim if the daemon is turned on.
Hide the 'ip multicast-routing' command
Disable the 'no ip multicast-routing' command
Do not display the 'ip multicast-routing' command.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
8 years agopimd: Turn on igmp when igmp commands are entered
Donald Sharp [Thu, 2 Mar 2017 15:12:52 +0000 (10:12 -0500)]
pimd: Turn on igmp when igmp commands are entered

When you enter these commands, under an interface:

ip igmp version ...
ip igmp query-interval ...
ip igmp query-max-response-time ...
ip igmp query-max-response-time-dsec ...

These commands will now just turn on igmp for the
interface.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
8 years agocumulus: Add new daemons to daemons file
Donald Sharp [Thu, 2 Mar 2017 13:58:55 +0000 (08:58 -0500)]
cumulus: Add new daemons to daemons file

Add the existence of new daemons to the daemons
file.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
8 years agotools: Allow ldpd to be started
Donald Sharp [Thu, 2 Mar 2017 13:57:46 +0000 (08:57 -0500)]
tools: Allow ldpd to be started

Allow ldpd to be started at runtime with the frr script.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
8 years agobgpd: remove unnecessary #include "vty.h" 239/head 240/head
Quentin Young [Thu, 2 Mar 2017 02:08:01 +0000 (02:08 +0000)]
bgpd: remove unnecessary #include "vty.h"

Per previous commit, these are no longer necessary.

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
8 years agobgpd: add vty.h to bgpd.h
Quentin Young [Thu, 2 Mar 2017 01:45:55 +0000 (01:45 +0000)]
bgpd: add vty.h to bgpd.h

`struct vty` referenced in body of bgpd.h, so it should be #include'd.

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
8 years agolib: add stream.h, vty.h, zebra.h to plist.h
Quentin Young [Thu, 2 Mar 2017 02:02:52 +0000 (02:02 +0000)]
lib: add stream.h, vty.h, zebra.h to plist.h

Since `afi_t` and `struct vty` are used in plist.h, the appropriate
headers for them should be included.

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
8 years agotools: frr-reload.py needs to treat "mpls" as a single line context
Daniel Walton [Wed, 1 Mar 2017 17:20:34 +0000 (21:20 +0400)]
tools: frr-reload.py needs to treat "mpls" as a single line context

Signed-off-by: Daniel Walton <dwalton@cumulusnetworks.com>
Reviewed-by: Donald Sharp <sharpd@cumulusnetworks.com>
8 years agoMerge pull request #230 from qlyoung/remove-quagga_clkid
Russ White [Wed, 1 Mar 2017 14:52:50 +0000 (09:52 -0500)]
Merge pull request #230 from qlyoung/remove-quagga_clkid

lib: remove unused quagga_clkid

8 years agoMerge pull request #224 from donaldsharp/pim_patches_feb
Russ White [Wed, 1 Mar 2017 14:52:24 +0000 (09:52 -0500)]
Merge pull request #224 from donaldsharp/pim_patches_feb

Pim patches feb

8 years agoMerge pull request #231 from qlyoung/monotime-retab
Russ White [Wed, 1 Mar 2017 14:48:51 +0000 (09:48 -0500)]
Merge pull request #231 from qlyoung/monotime-retab

lib: monotime.h tabs -> spaces

8 years agoMerge pull request #234 from donaldsharp/v6_multipath_rework1
Russ White [Wed, 1 Mar 2017 14:48:04 +0000 (09:48 -0500)]
Merge pull request #234 from donaldsharp/v6_multipath_rework1

V6 multipath rework1

8 years agoMerge pull request #235 from donaldsharp/coverity1
Russ White [Wed, 1 Mar 2017 14:46:21 +0000 (09:46 -0500)]
Merge pull request #235 from donaldsharp/coverity1

Coverity

8 years agobgpd: Cleanup grabbag of coverity scan issues found 235/head
Donald Sharp [Wed, 1 Mar 2017 12:47:37 +0000 (07:47 -0500)]
bgpd: Cleanup grabbag of coverity scan issues found

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
8 years agoisisd: Clean up leaked memory
Donald Sharp [Wed, 1 Mar 2017 12:46:42 +0000 (07:46 -0500)]
isisd: Clean up leaked memory

When in error path clean up the route table
created.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
8 years agoospf6d: Fix write beyond data structure
Donald Sharp [Wed, 1 Mar 2017 12:45:21 +0000 (07:45 -0500)]
ospf6d: Fix write beyond data structure

Converting a 'struct prefix6' to a 'struct prefix'
and then doing a memcpy of the contents writes
beyond the end of the data structure.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
8 years agopimd: Fix use of value after free
Donald Sharp [Wed, 1 Mar 2017 12:44:13 +0000 (07:44 -0500)]
pimd: Fix use of value after free

Fix the usage of source after it has
been explicitly free'd.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
8 years agozebra: Allow multiple rib deletes from linux kernel 234/head
Donald Sharp [Thu, 16 Feb 2017 21:59:20 +0000 (16:59 -0500)]
zebra: Allow multiple rib deletes from linux kernel

The kernel can send a DELROUTE with a individual
nexthop.  Technically this is meant to delete that
individual nexthop from the route but zebra
has no way to do this currently.  So we just delete
the route.

V4 -> Never sends a DELROUTE with multiple nexthops
as a way to modify the rib.  It sends a a NEWROUTE
with RTM_REPLACE with the new appropriate route.

V6 -> Sends a DELROUTE with multiple nexthops
which is supposed to be interpreted as a
subtraction from the route.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
8 years agozebra: Add multipath parsing to V6
Donald Sharp [Mon, 30 Jan 2017 19:50:06 +0000 (14:50 -0500)]
zebra: Add multipath parsing to V6

In the near future it will be possible to recieve v6 multipath netlink
messages.  This code change is in prep for it.  In the meantime the
v6 code path will continue to work as per normal.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
8 years agozebra: Refactor netlink_route_change and netlink_route_change_read_unicast
Donald Sharp [Mon, 30 Jan 2017 19:40:14 +0000 (14:40 -0500)]
zebra: Refactor netlink_route_change and netlink_route_change_read_unicast

These two functions were basically the same.  Refactor to be
one function.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
8 years agozebra: Add knowledge of whether or not we are acting under startup conditions
Donald Sharp [Fri, 27 Jan 2017 18:33:08 +0000 (13:33 -0500)]
zebra: Add knowledge of whether or not we are acting under startup conditions

The reading if unicast routes from the kernel acts subtly differently
between reading in the routes from the kernel on startup and
reading a new route or getting a response for a route.

Add startup flag(currently ignored) so that we can start
consolidating the functionality.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
8 years agobgpd, zebra: Allow setting ecmp from daemon cli 233/head
Donald Sharp [Thu, 3 Nov 2016 23:59:19 +0000 (19:59 -0400)]
bgpd, zebra: Allow setting ecmp from daemon cli

When starting up bgp and zebra now, you can specify
-e <number> or --ecmp <number>
and that number will be used as the maximum ecmp
that can be used.

The <number specified must be >= 1 and <= MULTIPATH_NUM
that Quagga is compiled with.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
8 years agoMerge pull request #226 from donaldsharp/evpn_fix
Russ White [Tue, 28 Feb 2017 13:57:13 +0000 (08:57 -0500)]
Merge pull request #226 from donaldsharp/evpn_fix

bgpd: Fix help strings for new command

8 years agoMerge pull request #229 from ChairmanTubeAmp/martinb-lower-frr.conf
Donald Sharp [Mon, 27 Feb 2017 20:49:15 +0000 (15:49 -0500)]
Merge pull request #229 from ChairmanTubeAmp/martinb-lower-frr.conf

Lowercase frr.conf

8 years agolib: remove unused quagga_clkid 230/head
Quentin Young [Mon, 27 Feb 2017 19:40:33 +0000 (19:40 +0000)]
lib: remove unused quagga_clkid

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
8 years agolib: monotime.h tabs -> spaces 231/head
Quentin Young [Mon, 27 Feb 2017 18:50:51 +0000 (18:50 +0000)]
lib: monotime.h tabs -> spaces

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
8 years agoLowercase frr.conf 229/head
Martín Beauchamp [Mon, 27 Feb 2017 18:26:20 +0000 (13:26 -0500)]
Lowercase frr.conf

8 years agodoc: add CLI implementation documentation 228/head
Quentin Young [Mon, 27 Feb 2017 01:53:52 +0000 (01:53 +0000)]
doc: add CLI implementation documentation

Needs additions & modifications from David Lamparter prior to merge.

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
8 years agobgpd: Fix help strings for new command 226/head
Donald Sharp [Fri, 24 Feb 2017 20:08:48 +0000 (15:08 -0500)]
bgpd: Fix help strings for new command

Fix the help strings to be correct.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
8 years agopimd: Get Static mroutes displaying again 224/head
Donald Sharp [Fri, 24 Feb 2017 15:29:15 +0000 (10:29 -0500)]
pimd: Get Static mroutes displaying again

The static mroutes were making the assumption that the vif index
and the ifindex were the same.  This is not necessarily the case.

Additionally if we are displaying a *,G route only display
the G.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
8 years agoMerge pull request #219 from opensourcerouting/feature/isis-draft-ietf-rtgwg-backoff...
Donald Sharp [Fri, 24 Feb 2017 15:09:19 +0000 (10:09 -0500)]
Merge pull request #219 from opensourcerouting/feature/isis-draft-ietf-rtgwg-backoff-algo

Add support for draft-ietf-rtgwg-backoff-algo to IS-IS

8 years agopimd: Move group handling to it's own function for J/P message
Donald Sharp [Wed, 15 Feb 2017 02:32:16 +0000 (21:32 -0500)]
pimd: Move group handling to it's own function for J/P message

When we are handling a J/P message, move the group handling
to it's own function.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
8 years agopimd: Add hash lookup for igmp group's
Donald Sharp [Wed, 15 Feb 2017 01:45:31 +0000 (20:45 -0500)]
pimd: Add hash lookup for igmp group's

When we receive a group in a IGMP report
let's look it up based upon a hash
instead of a list.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
8 years agopimd: Intelligently drop wrvifwhole packets in some cases
Donald Sharp [Wed, 15 Feb 2017 01:03:18 +0000 (20:03 -0500)]
pimd: Intelligently drop wrvifwhole packets in some cases

Suppose we have this

(*,G) IIF = swp1  OIL: swp3
(S,G) IIF = swp2  OIL: swp3 swp4

There exists situations where we can receive the mcast
packet for (S,G) on both swp1 and swp2.  In this case
the packet received on swp1 will be sent from the kernel
to us as a WRVIF and WRVIFWHOLE.

As per normal, WRVIF packet processing handles the assert
case so we know we have not received the packet on a downstream
interface, so no assert.

The WRVIFWHOLE packet processing can then check to see if
it received the packet as a result of the (*,G) mroute
from upstream.  If we have then we can safely drop
the packet.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
8 years agopimd: Refactor pim_joinprune_send
Donald Sharp [Tue, 14 Feb 2017 17:23:28 +0000 (12:23 -0500)]
pimd: Refactor pim_joinprune_send

Refactor pim_joinprune_send to use 'struct rpf'

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
8 years agopimd: Refactor pim_rpf_update to take a 'struct pim_rpf'
Donald Sharp [Tue, 14 Feb 2017 15:41:28 +0000 (10:41 -0500)]
pimd: Refactor pim_rpf_update to take a 'struct pim_rpf'

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
8 years agopimd: Refactor functions
Donald Sharp [Mon, 13 Feb 2017 19:18:48 +0000 (14:18 -0500)]
pimd: Refactor functions

Refactor the add and delete functions.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
8 years agopimd: Make ifchannel lookup a hash lookup
Donald Sharp [Mon, 13 Feb 2017 01:16:08 +0000 (20:16 -0500)]
pimd: Make ifchannel lookup a hash lookup

When we are at scale, it is possible that
we have a very large number of ifchannels
per interface.  So make lookup for
that situation to be a hash lookup.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
8 years agopimd: Trust the compiler
Donald Sharp [Sat, 11 Feb 2017 11:54:56 +0000 (06:54 -0500)]
pimd: Trust the compiler

When we set a variable to NULL, there is no
need to assert on it the following line.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
8 years agopimd: Narrow inheritance search down to interface we are interested in.
Donald Sharp [Sat, 11 Feb 2017 11:53:00 +0000 (06:53 -0500)]
pimd: Narrow inheritance search down to interface we are interested in.

When we are only looking at one ifchannel, for inheritance, narrow
the search down to only the interface/ifchannel we are interested in

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
8 years agopimd: Remove unnecessary igmp check
Donald Sharp [Fri, 10 Feb 2017 20:54:23 +0000 (15:54 -0500)]
pimd: Remove unnecessary igmp check

When we receive a igmp packet, there is no need
to ensure that it is a igmp packet, as that is
what we have asked for.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
8 years agopimd: Remove unnecessary ip header length checks on receipt.
Donald Sharp [Fri, 10 Feb 2017 20:48:42 +0000 (15:48 -0500)]
pimd: Remove unnecessary ip header length checks on receipt.

The kernel will not hand us a malformed packet.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
8 years agopimd: Remove unnecessary check in packet process path
Donald Sharp [Fri, 10 Feb 2017 20:26:41 +0000 (15:26 -0500)]
pimd: Remove unnecessary check in packet process path

When we get a packet from the network for pim, we do not
need to check to see that it is a pim packet, since that
is what we've asked to receive.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
8 years agopimd: Only debug in the unusual case
Donald Sharp [Fri, 10 Feb 2017 20:14:16 +0000 (15:14 -0500)]
pimd: Only debug in the unusual case

When receiving a J/P packet, only check to see if we should
log when the J/P packet is not for us.

Very slight performance improvement additionally

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
8 years agopimd: Remove unneeded parameter
Donald Sharp [Fri, 10 Feb 2017 20:04:17 +0000 (15:04 -0500)]
pimd: Remove unneeded parameter

pim_upstream_join_timer_decrease_to_t_override passed in
a `struct in_addr` that in all cases was part of the
upstream data structure that was passed in already.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
8 years agopimd: Add packed data structures for building j/p messages
Donald Sharp [Fri, 10 Feb 2017 19:05:42 +0000 (14:05 -0500)]
pimd: Add packed data structures for building j/p messages

Switch pim over to using packed data structures for building
Join/Prune messages to be sent.

This is a pre-cursor to the ability to handle the ability
to aggregate Join/Prune messages together.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
8 years agopimd: Assume buffer size passed in is of sufficient size
Donald Sharp [Fri, 10 Feb 2017 18:46:52 +0000 (13:46 -0500)]
pimd: Assume buffer size passed in is of sufficient size

For:
pim_msg_build_header
pim_msg_addr_encode_ipv4_ucast
pim_msg_addr_encode_ipv4_group
pim_msg_addr_encode_ipv4_source

Assume that the buffer size passed in is of sufficient size
already.  This is assured already because buffer sizes
are checked for minimum lengths for the entire packet
ahead of time.  So we are double checking.

Additionally at scale we will be calling these functions
a very very large number of times.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
8 years agopimd: Add 'struct pim_msg_header' packed data structure.
Donald Sharp [Thu, 9 Feb 2017 18:47:42 +0000 (13:47 -0500)]
pimd: Add 'struct pim_msg_header' packed data structure.

Add the 'struct pim_msg_header' and convert
all places that encoded/decoded the message header
to use it.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
8 years agopimd: Document the J/P packet format a bit better.
Donald Sharp [Thu, 9 Feb 2017 18:13:07 +0000 (13:13 -0500)]
pimd: Document the J/P packet format a bit better.

Document the J/P packet format and ensure
that the smallest size packet that we
may send will actually fit.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
8 years agopimd: Convert sizes to #defines
Donald Sharp [Thu, 9 Feb 2017 17:53:00 +0000 (12:53 -0500)]
pimd: Convert sizes to #defines

Convert the const int size of the encoded
types to #defines so that they can be
used elsewhere.

Return Null instead of 0.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
8 years agoMerge remote-tracking branch 'origin/stable/2.0'
Donald Sharp [Fri, 24 Feb 2017 14:32:47 +0000 (09:32 -0500)]
Merge remote-tracking branch 'origin/stable/2.0'

8 years agoMerge pull request #221 from LabNConsulting/working/2.0/patch/issue-218
Donald Sharp [Fri, 24 Feb 2017 01:19:39 +0000 (20:19 -0500)]
Merge pull request #221 from LabNConsulting/working/2.0/patch/issue-218

bgpd: Fix issue #218

8 years agobgpd: Fix issue #218 221/head
Lou Berger [Thu, 23 Feb 2017 22:48:47 +0000 (17:48 -0500)]
bgpd: Fix issue #218
      Wrong offset was used when using global V6 address in place of
      v6 LL.  (Introduced in earlier fix of broken RD advertisement.)

      Tested by @dslice in master.

Signed-off-by: Lou Berger <lberger@labn.net>
8 years agoMerge pull request #220 from opensourcerouting/fixes/addpath_id
Donald Sharp [Thu, 23 Feb 2017 15:53:51 +0000 (10:53 -0500)]
Merge pull request #220 from opensourcerouting/fixes/addpath_id

Fix bgp_info_addpath_{rx,tx}_str if addpath info is not present

8 years agobgpd: fix bgp_info_addpath_{rx,tx}_str if addpath info is not present 220/head
Christian Franke [Thu, 23 Feb 2017 13:27:00 +0000 (14:27 +0100)]
bgpd: fix bgp_info_addpath_{rx,tx}_str if addpath info is not present

The buffer needs to be set to length 0 if nothing is written into
it, otherwise bgpd will log uninitialized memory, disclosing information
and possibly leading to a crash.

Signed-off-by: Christian Franke <chris@opensourcerouting.org>
8 years agorelease: FRR 2.0-rc2 frr-2.0-rc2
Martin Winter [Thu, 23 Feb 2017 12:47:59 +0000 (19:47 +0700)]
release: FRR 2.0-rc2

Signed-off-by: Martin Winter <mwinter@opensourcerouting.org>