Commit Graph

1048 Commits

Author SHA1 Message Date
Daniel Walton
e961923c72 bgpd, etc: changed .LINE to LINE...
Signed-off-by: Daniel Walton <dwalton@cumulusnetworks.com>
2016-09-27 00:07:46 +00:00
Daniel Walton
31500417e4 bgpd: fixed more CHECK MEs
Signed-off-by: Daniel Walton <dwalton@cumulusnetworks.com>
2016-09-26 23:50:02 +00:00
Daniel Walton
39573b33cb bgpd: compress "show ip bgp neighbor received prefix-list"
Signed-off-by: Daniel Walton <dwalton@cumulusnetworks.com>
2016-09-26 20:56:20 +00:00
Daniel Walton
2525cf394a bgpd: compress bgp_show_neighbor_route() calls
Signed-off-by: Daniel Walton <dwalton@cumulusnetworks.com>
2016-09-26 18:44:58 +00:00
Daniel Walton
a636c635ae bgpd: collaps show ip bgp, show ip bgp x.x.x.x, etc calls
Signed-off-by: Daniel Walton <dwalton@cumulusnetworks.com>
2016-09-26 18:08:45 +00:00
Daniel Walton
5bf159563c bgpd: bgp_vty.c compiles now
Signed-off-by: Daniel Walton <dwalton@cumulusnetworks.com>
2016-09-26 04:59:47 +00:00
Daniel Walton
74ca3d330b bgpd: combine "show ip bgp summary" commands into one DEFUN
Signed-off-by: Daniel Walton <dwalton@cumulusnetworks.com>
2016-09-26 01:12:24 +00:00
Quentin Young
c7178fe784 bgpd: minor grammar corrections
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2016-09-26 01:06:40 +00:00
Daniel Walton
b09b5ae033 bgpd: combine "clear bgp, clear ip bgp" commands into one DEFUN
Signed-off-by: Daniel Walton <dwalton@cumulusnetworks.com>
2016-09-26 00:47:13 +00:00
Daniel Walton
199d90a10e Expand #defines in command strings
Signed-off-by: Daniel Walton <dwalton@cumulusnetworks.com>
2016-09-25 16:49:39 +00:00
Daniel Walton
3ce54f7812 Expand #defines in command strings
Signed-off-by: Daniel Walton <dwalton@cumulusnetworks.com>
Reviewed-by:   Donald Sharp <sharpd@cumulusnetworks.com>
Reviewed-by:   Don Slice <dslice@cumulusnetworks.com>
Reviewed-by:   Sam Tannous <stannous@cumulusnetworks.com>

Ticket:
2016-09-25 14:22:48 +00:00
Daniel Walton
9ccf14f739 Expand #defines in command strings
Signed-off-by: Daniel Walton <dwalton@cumulusnetworks.com>
2016-09-25 14:10:48 +00:00
Daniel Walton
8334fd5ade bgpd: fixed more CHECK MEs in bgp_vty.c
Signed-off-by: Daniel Walton <dwalton@cumulusnetworks.com>
2016-09-25 02:29:38 +00:00
Daniel Walton
838758acbe bgpd: fixed some CHECK MEs
Signed-off-by: Daniel Walton <dwalton@cumulusnetworks.com>
2016-09-24 03:14:42 +00:00
Daniel Walton
c500ae4060 bgpd: add 'int idx_foo' argv index variables
Signed-off-by: Daniel Walton <dwalton@cumulusnetworks.com>
2016-09-23 19:45:50 +00:00
Daniel Walton
833e546811 bgpd: fix hosed CMD_RANGE_STR
Signed-off-by: Daniel Walton <dwalton@cumulusnetworks.com>
2016-09-23 14:02:28 +00:00
Daniel Walton
6147e2c694 convert <1-255> to (1-255), ()s to <>s, etc
Signed-off-by: Daniel Walton <dwalton@cumulusnetworks.com>
2016-09-23 13:47:20 +00:00
Daniel Walton
b162fa7858 Change {json} to [json]
Signed-off-by: Daniel Walton <dwalton@cumulusnetworks.com>
2016-09-23 11:39:50 +00:00
Daniel Walton
f412b39a33 ALIAS removal for bgp, ospf, pim, isis, rip, ripng, lib and zebra
Signed-off-by: Daniel Walton <dwalton@cumulusnetworks.com>
2016-09-23 03:55:26 +00:00
Daniel Walton
afec25d911 bgpd: more bgp_vty.c parser conversion
Signed-off-by: Daniel Walton <dwalton@cumulusnetworks.com>
2016-09-22 18:16:18 +00:00
Daniel Walton
4dcadbefd0 bgpd: argv update for all but bgp_vty.c
Signed-off-by: Daniel Walton <dwalton@cumulusnetworks.com>
2016-09-22 15:15:50 +00:00
Lou Berger
e3e29b328d bgpd: Additional Show Commands
These commands were ported forward from these
commits:
f9b6c39 bgpd: Add back old forms of 'show <afi> <safi>' for compatibility
bf1ae6c bgpd: drop machineparse / random "show" improvements
651b402 bgpd: encap show commands
35c3686 bgpd: VPNv6 show commands
135ca15 bgpd: cleanup vty bgp_node_afi/safi utils

This is the first drop of those commits.  The files have
changed too much and the diffs to extensive to try to do it
in one piece.  Break it up into smaller code chunks.

Original Code:
Signed-off-by: Lou Berger <lberger@labn.net>

Forward Port:
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2016-09-21 10:07:04 -04:00
Donald Sharp
4d41dd8ba2 bgpd: Revert --enable-bgp-standalone
Reverts the --enable-bgp-standalone and makes it so that you
need to use --enable-cumulus to get the cumulus behavior.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2016-09-20 07:57:41 -04:00
David Lamparter
896af92e5b vtysh: work around gcc bug #69981
The memtypes changes break gcc -O0 build (none of the other optimisation
levels are affected, *any* of -Og, -Os, -O1, etc. make this go away).
Unfortunately, the option supposed to control this doesn't actually work
(-fno-keep-static-const; that not working is the actual gcc bug).

The workaround is to avoid DECLARE_MTYPE statements when their paired
DEFINE_MTYPE isn't linked in.  Thankfully, that's only a problem in a
single place in vtysh where bgp_memory.h gets chain-included.
(vtysh.c -> bgp_vty.h -> bgpd.h -> bgp_memory.h)

So, this just breaks the chain at bgp_vty.h.

No other compiler (clang & icc tested) has exhibited this problem.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2016-09-19 16:31:08 -04:00
David Lamparter
4a1ab8e405 *: split & distribute memtypes and stop (re|ab)using lib/ MTYPEs
This is a rather large mechanical commit that splits up the memory types
defined in lib/memtypes.c and distributes them into *_memory.[ch] files
in the individual daemons.

The zebra change is slightly annoying because there is no nice place to
put the #include "zebra_memory.h" statement.

bgpd, ospf6d, isisd and some tests were reusing MTYPEs defined in the
library for its own use.  This is bad practice and would break when the
memtype are made static.

Acked-by: Vincent JARDIN <vincent.jardin@6wind.com>
Acked-by: Donald Sharp <sharpd@cumulusnetworks.com>
[CF: rebased for cmaster-next]
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
Signed-off-by: Christian Franke <chris@opensourcerouting.org>
2016-09-19 16:31:04 -04:00
David Lamparter
fc7948fafe lib: migrate to new memory-type handling
Move over to the new allocation counting added in the previous commit.

(This commit is mostly mechanical.)

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
Acked-by: Vincent JARDIN <vincent.jardin@6wind.com>
2016-09-19 18:35:50 +02:00
Donald Sharp
ea863ec6f7 lib, bgpd: Remove 'struct fifo' from lib/zebra.h
The 'struct fifo' and it's accompanying #defines do not
belong in lib/zebra.h.  Move them into their own header.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
(cherry picked from commit b0d02889624eaafa0984873dcd78c086418bdf13)
2016-09-16 21:22:30 -04:00
Lou Berger
a008f49a85 bgpd: Add flag to not change e{u,g}id on startup and run as unprivileged user
* bgp_main.c: add -S / --skip_runas flag to not change effective user/group
  on start up.  Enables bgpd to be run by unprivileged user.
2016-09-09 16:06:59 -04:00
Donald Sharp
03809024fd bgpd: Fix startup a bit more
There were several issues here.  The zprivs_init is being
called *before* the cli is read in to influence the user
we are running as.  This needs to be rectified.  Additionally
we need to move the log creation till after cli arguments
are read.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2016-09-09 16:01:27 -04:00
Donald Sharp
1d808091d3 bgpd: Allow connections with no v4|6 addr's in some conditions
When compiling/running in with --enable-bgp-standalone=yes allow
v4 sessions to be established with no v4 address configured.
Additionally allow v6 connections with no v6 addresses
configured.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2016-09-09 11:02:54 -04:00
Donald Sharp
7709c62dc6 bgpd: Display 'no neighbor 192.168.33.44 activate'
Since the default for ipv4 unicast is to now assume
that the neighbor is activated, print out the
no neighbor 192.168.33.44 activate
line when it is explicitly turned off.

Ticket: CM-12809
Reported-by: Lou Berger <lberger@labn.net>
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
Reviewed-by:
2016-09-09 09:46:28 -04:00
Donald Sharp
bc06d287d1 bgpd: Fix standalone to better handle getsockopt failure
When getsockopt(...,SO_BINDTODEVICE,...); fails
assume the bgp instance we are interested is the default
one.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2016-09-09 08:51:45 -04:00
Donald Sharp
dfee47aa92 Merge remote-tracking branch 'origin/cmaster' into cmaster-next 2016-09-08 19:37:42 -04:00
Donald Sharp
b5826a12a2 bgpd: Allow bgp to work standalone
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2016-09-08 18:48:02 -04:00
vivek
8c4f63817a bgpd: Process directly connected IBGP peers upon interface down
When we have a single-hop BFD session for any peering, it really means
that the peering is directly connected (maybe over a L2 network), whether
it is IBGP or EBGP. In such a case, upon link down, immediately process
IBGP peers too (and bring them down), not just EBGP peers.

This change eliminates some peculiar state transitions in specific IBGP
topologies, thus getting rid of the problem of nexthops remaining inactive
in the zebra RIB.

Signed-off-by: Vivek Venkatraman <vivek@cumulusnetworks.com>
Reviewed-by:   Donald Sharp <sharpd@cumulusnetworks.com>
Reviewed-by:   Daniel Walton <dwalton@cumulusnetworks.com>

Ticket: CM-12390
Reviewed By: CCR-5156
Testing Done: Manual, bgp-smoke
2016-09-08 10:03:30 -07:00
vivek
80c2442a9b lib, bgpd: Log next hops
Signed-off-by: Vivek Venkatraman <vivek@cumulusnetworks.com>
Reviewed-by:   Donald Sharp <sharpd@cumulusnetworks.com>
Reviewed-by:   Daniel Walton <dwalton@cumulusnetworks.com>

Ticket: CM-12390
Reviewed By: CCR-5156
Testing Done: Manual
2016-09-08 09:53:26 -07:00
vivek
72a5e63bad bgpd: Enhance path selection logs
Signed-off-by: Vivek Venkatraman <vivek@cumulusnetworks.com>
Reviewed-by:   Donald Sharp <sharpd@cumulusnetworks.com>
Reviewed-by:   Daniel Walton <dwalton@cumulusnetworks.com>

Ticket: CM-12390
Reviewed By: CCR-5136
Testing Done: Manual

(cherry picked from commit a6086ad408)
2016-09-06 12:38:21 -07:00
vivek
a60b9a3718 bgpd: Fix route install upon multipath nexthop change
In multipath selection, there can be a scenario where the set of route
entries selected as multipath can be the same (i.e., from the same peers)
but one or more of these may have a change to the BGP next hop. In this
case, the route needs to be installed again in zebra even if the best
route entry selected has not changed, otherwise the zebra RIB may have
a different set of next hops (and first hops) than what the routing
protocol selected.

This patch handles this scenario by re-installing the route if any BGP
attribute has changed for any of the multipaths. Not all BGP attributes
are of relevance to the zebra RIB, but this approach follows existing
logic used in the code (e.g., when BGP attributes for the best route
entry has changed).

Signed-off-by: Vivek Venkatraman <vivek@cumulusnetworks.com>
Reviewed-by:   Donald Sharp <sharpd@cumulusnetworks.com>
Reviewed-by:   Daniel Walton <dwalton@cumulusnetworks.com>
Reviewed-by:   Sid Khot <sidkhot@cumulusnetworks.com>

Ticket: CM-12390
Reviewed By: CCR-5135
Testing Done: Manual, bgp-smoke

(cherry picked from commit e10720512e)
2016-09-06 12:38:09 -07:00
vivek
f4b6d7e9bf bgpd: Fix route install upon non-best nexthop change
After BGP path selection, even if the best route entry selected has not
changed, ensure that the route is installed again in zebra if any non-best
but multipath route entry has a nexthop resolution change.

In the absence of this fix, if a non-best multipath route entry had a
nexthop resolution change (such as being resolved over two first hops instead
of one), the route would get reinstalled into zebra only in some situations
(i.e., when the best route entry had its IGP change flag set). If the route
does not get reinstalled by BGP, the corresponding route in the zebra RIB
would not have all the first hops.

Signed-off-by: Vivek Venkatraman <vivek@cumulusnetworks.com>
Reviewed-by:   Donald Sharp <sharpd@cumulusnetworks.com>
Reviewed-by:   Daniel Walton <dwalton@cumulusnetworks.com>
Reviewed-by:   Sid Khot <sidkhot@cumulusnetworks.com>

Ticket: CM-12390
Reviewed By: CCR-5134
Testing Done: Manual, bgp-smoke

(cherry picked from commit 3064bf43a7)
2016-09-06 12:37:43 -07:00
Donald Sharp
5e6d589c37 bgpd: Fix call of bgp_address_destroy
We were prematurely deleting the bgp->address_hash.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2016-09-06 12:32:22 -04:00
vivek
a6086ad408 bgpd: Enhance path selection logs
Signed-off-by: Vivek Venkatraman <vivek@cumulusnetworks.com>
Reviewed-by:   Donald Sharp <sharpd@cumulusnetworks.com>
Reviewed-by:   Daniel Walton <dwalton@cumulusnetworks.com>

Ticket: CM-12390
Reviewed By: CCR-5136
Testing Done: Manual
2016-09-05 10:53:06 -07:00
vivek
e10720512e bgpd: Fix route install upon multipath nexthop change
In multipath selection, there can be a scenario where the set of route
entries selected as multipath can be the same (i.e., from the same peers)
but one or more of these may have a change to the BGP next hop. In this
case, the route needs to be installed again in zebra even if the best
route entry selected has not changed, otherwise the zebra RIB may have
a different set of next hops (and first hops) than what the routing
protocol selected.

This patch handles this scenario by re-installing the route if any BGP
attribute has changed for any of the multipaths. Not all BGP attributes
are of relevance to the zebra RIB, but this approach follows existing
logic used in the code (e.g., when BGP attributes for the best route
entry has changed).

Signed-off-by: Vivek Venkatraman <vivek@cumulusnetworks.com>
Reviewed-by:   Donald Sharp <sharpd@cumulusnetworks.com>
Reviewed-by:   Daniel Walton <dwalton@cumulusnetworks.com>
Reviewed-by:   Sid Khot <sidkhot@cumulusnetworks.com>

Ticket: CM-12390
Reviewed By: CCR-5135
Testing Done: Manual, bgp-smoke
2016-09-05 10:49:16 -07:00
vivek
3064bf43a7 bgpd: Fix route install upon non-best nexthop change
After BGP path selection, even if the best route entry selected has not
changed, ensure that the route is installed again in zebra if any non-best
but multipath route entry has a nexthop resolution change.

In the absence of this fix, if a non-best multipath route entry had a
nexthop resolution change (such as being resolved over two first hops instead
of one), the route would get reinstalled into zebra only in some situations
(i.e., when the best route entry had its IGP change flag set). If the route
does not get reinstalled by BGP, the corresponding route in the zebra RIB
would not have all the first hops.

Signed-off-by: Vivek Venkatraman <vivek@cumulusnetworks.com>
Reviewed-by:   Donald Sharp <sharpd@cumulusnetworks.com>
Reviewed-by:   Daniel Walton <dwalton@cumulusnetworks.com>
Reviewed-by:   Sid Khot <sidkhot@cumulusnetworks.com>

Ticket: CM-12390
Reviewed By: CCR-5134
Testing Done: Manual, bgp-smoke
2016-09-05 10:35:19 -07:00
Donald Sharp
0adfc78872 bgpd: Fix crash in 'show ip nexthop'
With the addition of the AFI_ETHER we need
to initialize the appropriate tables for
nexthop's.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2016-09-04 20:05:16 -04:00
Renato Westphal
9cc8cd0279 bgpd: fix bug in ecommunity_match
The offset used to compare extended communities should be increased by
steps of ECOMMUNITY_SIZE and not one by one.
2016-09-03 11:05:51 -04:00
Balaji
5c9e5a8df8 bgpd: Addition of bgp dampening configuration commands under IPv4 Multicast address family mode.
Signed-off-by: Balaji Gurudoss <balajig81@gmail.com>
Signed-off-by: Balaji Gurudoss <balajig81@gmail.com>
Tested-by: NetDEF CI System <cisystem@netdef.org>
2016-09-03 11:05:51 -04:00
Balaji
58a9027570 bgpd: Addition of dampening show commands under v4 unicast/multicast tree
Patch contains addition of show ip bgp ipv4 (unicast| multicast)
dampening tree.

Signed-off-by: Balaji Gurudoss <balajig81@gmail.com>
Signed-off-by: Balaji Gurudoss <balajig81@gmail.com>
2016-09-03 11:05:51 -04:00
Philippe Guibert
eb6f1b41e8 bgpd: Add new configuration cli for graceful restart.
There is support to configure graceful restart timer. This is the
time to wait to delete stale routes before a BGP open message is
received.

bgp graceful-restart restart-time <1-3600>
no bgp graceful-restart [<1-255>]

* bgpd/bgp_vty.c
  * Define command strings for above CLI
* bgpd/bgpd.c
  * bgp_config_write(): Output graceful restart-time configuration

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
Tested-by: NetDEF CI System <cisystem@netdef.org>
2016-09-03 11:05:51 -04:00
Igor Ryzhov
6e13ed4af9 bgpd: fix wrong help strings of "match peer" and "no match peer" commands
Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
Tested-by: NetDEF CI System <cisystem@netdef.org>
2016-09-03 11:05:51 -04:00
Lou Berger
32ac65d9fa lib: add AF_ETHERNET/AFI_ETHER 2016-09-03 11:05:51 -04:00