Commit Graph

11367 Commits

Author SHA1 Message Date
Donald Sharp
06210d1f40 pbrd: Fix compilation warn -> error
The buffer size was insufficiently sized to hold the
entirety of the data being passed in.

Modify the nht code to use a bit bigger buffer.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-05-15 13:52:02 -04:00
Jarad Olson
47f64e3408 Added optional packages section
Signed-off-by: Jarad Olson <brotherdust+github@gmail.com>
2018-05-15 11:51:40 -06:00
Jarad Olson
acdc582fd5 Change 'Install required packages' to 'Install dependencies'
Signed-off-by: Jarad Olson <brotherdust+github@gmail.com>
2018-05-15 11:51:14 -06:00
Jarad Olson
07b17fdbf7 Change style of required packages list
The required packages list should be easier to parse. Updated the style so it's more similar to the ``./configure`` style later in the document.

Signed-off-by: Jarad Olson <brotherdust+github@gmail.com>
2018-05-15 11:50:34 -06:00
Jarad Olson
6d30cb199c MPLS kernel module name change
Names of the MPLS kernel modules changed slightly in recent kernel. Uses underscore instead of dash.

Signed-off-by: Jarad Olson <brotherdust+github@gmail.com>
2018-05-15 11:50:00 -06:00
Jarad Olson
a500c91ad5 Change order of MPLS configuration
MPLS kernel modules should be initialized *before* enabling forwarding. Otherwise, errors.

Signed-off-by: Jarad Olson <brotherdust+github@gmail.com>
2018-05-15 11:49:18 -06:00
Pascal Mathis
09cd98ebee
bgpd: Improve route-map matching for INET(6) AF
While the current implementation does pay attention to the AF
(inet/inet6) when comparing the IPv4/v6 address against an address-list
/ prefix-list inside a route-map, the AF check is being done rather
late, which leads to CPU cycles being wasted due to unnecessary list
lookups / address matching.

This commit checks the address family of a prefix right inside the
`route_match_ip(v6)_` functions before looking up any address- and/or
prefix-list, which should improve performance.

Signed-off-by: Pascal Mathis <mail@pascalmathis.com>
2018-05-15 19:44:06 +02:00
Rafael Zalamena
05c6f6a3c2
Merge pull request #2101 from qlyoung/stream-fifo-safe
lib: add mt-safe variants for stream_fifo ops
2018-05-15 12:29:45 -03:00
Renato Westphal
02dd46dabc
Merge pull request #2229 from qlyoung/fix-readme-typo
frr: fix typo in README
2018-05-15 11:58:27 -03:00
Renato Westphal
f403d10280
Merge pull request #2133 from Fredi-raspall/fix_label_manager
Fix broken label manager (proxy-mode) and improve of proxy function
2018-05-15 10:00:12 -03:00
Lou Berger
20cc046f72 *: convert tabs to spaces
Signed-off-by: Lou Berger <lberger@labn.net>
2018-05-14 17:08:39 -04:00
Pascal Mathis
3ae8bfa5d8
bgpd: Respect AFI/SAFI when hard-clearing a peer
The current implementation does not respect the AFI+SAFI combination of
a peer when executing a non-soft (hard) clear. An example would be the
command `clear bgp ipv4 unicast *`, which will clear all BGP peers, even
those that do not have IPv4-Unicast activated.

This commit fixes that behavior by applying the same rules to both soft
and hard clear commands, so that peers without a matching AFI+SAFI
combination will be no longer modified.

Additionally, this commit adds warning messages to all `clear bgp
[<afi>] [<safi>] <target>` commands when no matching peers with the given
AFI+SAFI combination could be found.

Both existing and new warning messages have been extended to also
mention the AFI+SAFI combination that is missing, which is more helpful
to the user than a generic expression 'No peer configured'.

Signed-off-by: Pascal Mathis <mail@pascalmathis.com>
2018-05-14 22:52:31 +02:00
Quentin Young
e604688179 frr: fix typo in README
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2018-05-14 11:06:27 -04:00
Quentin Young
62362d70aa
Merge pull request #2223 from ppmathis/fix/no-password-warnings
lib: Improved warnings for 'no (enable) password'
2018-05-14 11:01:19 -04:00
Lou Berger
c274a72fb3 *: fix compile with -enable-address-sanitizer configured
Signed-off-by: Lou Berger <lberger@labn.net>
2018-05-14 07:06:36 -04:00
Pascal Mathis
8d9b8ed99d
bgpd: Improve JSON support for large communities
The current implementation of building JSON output is greatly different
for large communities compared to standard communities. This is mainly
noticeable by the missing 'list' attribute, which usually offers an
array of all communities present on a BGP route.

This commit adds the missing functionality of properly returning a
'list' attribute in JSON output and also tries a similar approach like
the standard communities are using to implement this feature.

Additionally, the 'format' specifier has been completely removed from
large communities string/JSON rendering, as the official RFC8092 specifies that
there is only one canonical representation:

> The canonical representation of BGP Large Communities is three
> separate unsigned integers in decimal notation in the following
> order: Global Administrator, Local Data 1, Local Data 2. Numbers
> MUST NOT contain leading zeros; a zero value MUST be represented with
> a single zero. Each number is separated from the next by a single
> colon. For example: 64496:4294967295:2, 64496:0:0.

As the 'format' specifier has not been used/checked and only one
canonical representation exists per today, there was no reason to keep
the 'format' parameter in the function signature.

Last but not least, the struct attribute 'community_entry.config' is no
longer being used for large communities and instead 'lcommunity_str' is
being called to maintain a similar approach to standard communities.

As a side effect, this also fixed a memory leak inside 'community_entry_free'
which did not free the allocated memory for the 'config' attribute when
dealing with a large community.

Signed-off-by: Pascal Mathis <mail@pascalmathis.com>
2018-05-13 19:37:51 +02:00
Donald Sharp
c02bcc728b
Merge pull request #2225 from xdel/master
Fix compilation against rtrlib with ssh
2018-05-13 13:14:22 -04:00
Pascal Mathis
4911ca9cab
lib: Moved no-password warnings into header file
The warning string which appears when the users executes 'no (enable)
password' was moved into command.h and declared as a constant named
'NO_PASSWD_CMD_WARNING'.

This avoids duplicate code and makes it easy to change the warning
message in all places at once.

Signed-off-by: Pascal Mathis <mail@pascalmathis.com>
2018-05-13 19:11:43 +02:00
Andrey Korolyov
45c0bedaa5 Fix compilation against rtrlib with ssh
Signed-off-by: Andrey Korolyov <andrey@xdel.ru>
2018-05-13 13:36:50 +03:00
Rodny Molina
a4364a44ae vtysh: Extending vtysh to allow question-mark cmds
Currently, "vtysh -c" interface does not provide a logic to parse
commands ending with '?' character. In consequence, the following behavior
is observed:

$ vtysh -c "show bgp ?"
 % Unknown command.

With these changes, i'm extending FRR's parser to be able to handle
these commands, which allow a more friendly interaction with users
that rely on "vtysh -c" interface. The typical use-case here is for
scenarios in which the final users relie on external/their-own CLI and
require a friendly interface to FRR's vtysh cli.

$ vtysh -c "show bgp ?"
  <cr>
   A.B.C.D               Network in the BGP routing table to
   display
   A.B.C.D/M             IPv4 prefix
   X:X::X:X              Network in the BGP routing table to display
   X:X::X:X/M            IPv6 prefix
   attribute-info        List all bgp attribute information
   cidr-only             Display only routes with non-natural netmasks
   community             Display routes matching the communities
   community-info        List all bgp community information
 ...

Signed-off-by: Rodny Molina <rmolina@linkedin.com>
2018-05-12 18:59:11 -07:00
Pascal Mathis
eb83f7ce84
lib: Improved warnings for 'no (enable) password'
When the user executes one of the commands 'no password' or 'no enable
password', a warning message gets shown to inform the user of the
security implications.

While the current implementation works, a warning message gets printed
once for each daemon, which can lead to seeing the same message many
times. This does not affect functionality, but looks like an error to
the user as it can be seen within issue #1432.

This commit only prints the warning message inside lib when vtysh
dispatch is not being used. Additionally, the warning message was copied
into the vtysh command handlers, so that they get printed exactly once.

Signed-off-by: Pascal Mathis <mail@pascalmathis.com>
2018-05-12 22:22:09 +02:00
Russ White
05859298a3
Merge pull request #2217 from donaldsharp/pim_threads
Pim cleanup when networking restarts under itself
2018-05-12 06:41:27 -04:00
Russ White
439fcfd306
Merge pull request #2216 from qlyoung/fix-doc-warnings
doc: cleanup zebra vrf docs
2018-05-12 06:40:14 -04:00
Russ White
596b724cc1
Merge pull request #2215 from qlyoung/docuser-building-openbsd6
doc: update pkg version for automake on openbsd6
2018-05-12 06:39:29 -04:00
Russ White
0231e11c1a
Merge pull request #2214 from donaldsharp/pointer_counting
More bgp fixes
2018-05-12 06:38:57 -04:00
Russ White
cfe50de15b
Merge pull request #2213 from donaldsharp/errno
some small bgp issues
2018-05-12 06:38:02 -04:00
Russ White
4f366c086c
Merge pull request #2211 from chiragshah6/ospf_vrf_dev
ospfd: packet fifo init in interface create
2018-05-12 06:37:00 -04:00
Russ White
8d659e9168
Merge pull request #2197 from qlyoung/docuser-debianpkg
doc: move Debian packaging docs to dev docs
2018-05-12 06:27:26 -04:00
Russ White
2d6d27bcf1
Merge pull request #2196 from LabNConsulting/working/master/bgpd-shutdown-race
BGP: Preclude race condition between listener thread and core during shutdown
2018-05-12 06:27:00 -04:00
Russ White
16c3f08823
Merge pull request #2189 from qlyoung/move-bug-reports-to-docs
doc: move REPORTING-BUGS to user docs
2018-05-12 06:25:48 -04:00
Russ White
8b07901a37
Merge pull request #2187 from qlyoung/remove-netbsd
frr: remove README.NetBSD
2018-05-12 06:25:17 -04:00
Russ White
efe6e16ade
Merge pull request #2171 from pguibert6WIND/misc_crashes_moving_ifp_from_netns
Misc crashes moving ifp from netns
2018-05-12 06:24:45 -04:00
Russ White
6b50b12ac7
Merge pull request #2162 from qlyoung/fix-vpath-build
doc: support VPATH builds
2018-05-12 06:23:03 -04:00
Russ White
71ef4ee49a
Merge pull request #2132 from donaldsharp/missed_stuff
Missed stuff
2018-05-12 06:18:15 -04:00
Russ White
1b6e597cca
Merge pull request #2124 from donaldsharp/missed
bgpd, zebra: Handle EVPN router MAC per next hop
2018-05-12 06:16:02 -04:00
Donald Sharp
48d331e7dd pimd: Clean up rpf_hash *after* upstream cleanup
Cleanup the pim->rpf_hash after upstream cleanup is done
since upstream cleanup uses the rpf_hash to cleanup itself.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-05-11 18:39:09 -04:00
Donald Sharp
26bb1fd528 pimd: Allow interface to move in and out of vrfs
When we get an interface move event track the correct
pim instance.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-05-11 18:38:01 -04:00
Donald Sharp
399495806c pimd: Cleanup all pim_ifp pointers on termination
Properly cleanup pim_ifp pointers on termination

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-05-11 18:36:24 -04:00
Donald Sharp
7692c5ae82 pimd: Cleanup ifchannel deletion
When we are being told to go away, cleanup ifchannel deletion
a bit better.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-05-11 18:36:24 -04:00
Donald Sharp
845d9af76a pimd: Cleanup msdp shutdown
Shutdown pim msdp code a bit better.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-05-11 18:36:24 -04:00
Donald Sharp
172e45dc30 pimd: Cleanup the deletion event a tiny bit
The pim_upstream_free command was leaving slag by
not deleting data associated with the upstream
data structure.  Modify the code to explicitly free
all data associated with an upstream on a pim instance
deletion event.  Additionally the end result is that
the pim_upstream_free command is not needed anymore

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-05-11 18:36:24 -04:00
Quentin Young
80ca5b6d75 doc: cleanup zebra vrf docs
* Fix missing references
* Fix displaced reference target
* Fix miscellaneous typos
* Remove duplicate CLI documentation
* Rewrap lines to 80 characters

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2018-05-11 16:08:06 -04:00
Quentin Young
6dc2757463 doc: update pkg version for automake on openbsd6
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2018-05-11 16:05:14 -04:00
Donald Sharp
5456d3b844
Merge pull request #2172 from msablic/pim_igmp_stats
pimd: show ip igmp statistics command
2018-05-11 13:48:31 -04:00
Donald Sharp
2c263b3bca
Merge pull request #2207 from ppmathis/fix/bgpd-snmp-peer-lookup
bgpd: fix and improve snmp peer lookups
2018-05-11 09:32:08 -04:00
Lou Berger
d2b349f9c8
Merge pull request #2202 from dslicenc/bgp-neigh-auto-complete
bgpd: fix auto-completion for neighbors and peer-groups
2018-05-11 08:49:17 -04:00
Donald Sharp
971c03d1ce
Merge pull request #2208 from ppmathis/fix/debianpkg-env-pager
debianpkg: improve VTYSH_PAGER environment check
2018-05-11 08:08:47 -04:00
Donald Sharp
deb253051a
Merge pull request #2212 from ppmathis/feature/implement-no-password-cmd
lib: Ported 'no (enable) password' from stable/3.0
2018-05-11 08:07:18 -04:00
vivek
450e362d2a bgpd: Set NEXT_HOP attribute for EVPN imported routes
Ensure that when EVPN routes are imported into a VRF as IPv4 routes,
the NEXT_HOP attribute is set. In the absence of this, this attribute
is currently not generated when advertising the route to peers in the
VRF. It is to be noted that the source route (the EVPN route) will only
have the MP_REACH_NLRI attribute that contains the next hop in it.

Signed-off-by: Vivek Venkatraman <vivek@cumulusnetworks.com>
Reviewed-by:   Mitesh Kanjariya <mitesh@cumulusnetworks.com>
Reviewed-by:   Don Slice <dslice@cumulusnetworks.com>
2018-05-11 08:02:42 -04:00
vivek
528cd74fd3 bgpd: Update parent entry's refcount for imported routes
Imported routes in a VRF routing table have a reference to their parent
route entry which resides in the EVPN or IPVPN routing table. Ensure that
this reference uses appropriate locking so that the parent entry doesn't
get freed prematurely.

Signed-off-by: Vivek Venkatraman <vivek@cumulusnetworks.com>
Reviewed-by:   Donald Sharp <sharpd@cumulusnetworks.com>
(cherry picked from commit 13cb6b22ba9d558b1b4a1e8752f63f13242462a7)

Conflicts:
	bgpd/bgp_mplsvpn.c

Ticket: CM-20471
Testing Done:
a) Ran vrf_route_leak tests without fix and hit crash, ran twice with fix
and did not see the crash.
b) Ran evpn-smoke and ensured there were no new failures.
2018-05-11 08:02:05 -04:00