Commit Graph

14190 Commits

Author SHA1 Message Date
Donald Sharp
4b7e606625 bgpd: Convert struct bgp_info to struct bgp_path_info
Do a straight conversion of `struct bgp_info` to `struct bgp_path_info`.
This commit will setup the rename of variables as well.

This is being done because `struct bgp_info` is not descriptive
of what this data actually is.  It is path information for routes
that we keep to build the actual routes nexthops plus some extra
information.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-10-09 14:14:25 -04:00
Donald Sharp
1defdda8e8 bgpd: Convert BGP_INFO_XXX to BGP_PATH_XXX
Search and replace all BGP_INFO_XXX to BGP_PATH_XXX

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-10-09 14:14:25 -04:00
Donald Sharp
360660c643 bgpd: Rename some BGP_PATH_XXX to BGP_PATH_SHOW_XXX
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-10-09 14:14:25 -04:00
Olivier Dugeon
13894ce894
Merge pull request #3077 from rgirada/ospf_2980_fix
ospfd: Resolved the inconsistency behavior when “default-info origina…
2018-10-09 19:07:33 +02:00
Christian Franke
490a6fc716 isisd: don't add deprecated bfd command 2018-10-09 17:59:46 +02:00
Quentin Young
22bca40d60
Merge pull request #3037 from patrasar/2851
bgpd: remove ip prefix from as-path, <large,ext>community-list
2018-10-09 11:56:26 -04:00
Olivier Dugeon
c7aa8432f2
Merge pull request #3143 from rgirada/fix_3124
ospfd: default route got flushed after lsa refresh timer.
2018-10-09 17:52:49 +02:00
rgirada
1fb93326ad ospfd: issue with the "default-information originate always" command #2980
Made changes such that message wont be sent to zebra to validate default
route existence  if user configured with “always”.

Signed-off-by: rgirada <rgirada@vmware.com>
2018-10-09 02:52:27 -07:00
Quentin Young
3156b2d58d
Merge pull request #3132 from toreanderson/fix_routemap_prefixlist_match_doc
doc: correct route map match for prefix lists
2018-10-08 14:08:06 -04:00
rgirada
a6b4e1fded ospfd: default route got flushed after lsa refresh timer.
Default route type is not considered while  processing  lsa
refresh timer  expiry   which intern makes it flushed from lsdb.

Signed-off-by: rgirada <rgirada@vmware.com>
2018-10-07 23:22:58 -07:00
Russ White
4d43d33d25
Merge pull request #3125 from dslicenc/linklocal-nht
bgpd: allow nht registration on ipv6 link-local addresses
2018-10-07 21:47:01 -04:00
Russ White
62edc9c9e3
Merge pull request #3133 from qlyoung/bgp-fix-broken-show-community-cmds
fix broken bgp community show cmds
2018-10-07 21:45:33 -04:00
Donald Sharp
19bd3dffc1 bgpd: Do a bit better job of tracking the bgp->peerhash
When we add/remove peers we need to do a bit better job
of tracking them in the bgp->peerhash.

1) When we have the doppelganger take over, make sure the
winner is the one represented in the peerhash.

2) When creating the doppelganger, leave the current one
in place instead of blindly replacing it.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-10-07 20:55:52 -04:00
Donald Sharp
cc4d4ce822 bgpd: Cleanup peer->su handling
Cleanup calls where we were passing in the su for
peer creation a tiny bit.

Creating a peer from the cli will always have a conf_if *or*
a su but not both. While a doppelganger will have both.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-10-07 20:55:52 -04:00
Donald Sharp
825d98347d bgpd: Add ability to dump the bgp peerhash
The bgp->peerhash is a secretive bit of data that we use
to quickly lookup data about peers.  Unfortunately
since we had not way to look at it, we had no way
of knowing if it had gotten in or out of sync.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-10-07 20:55:52 -04:00
Jafar Al-Gharaibeh
1c7e6ef3d8
Merge pull request #3135 from donaldsharp/zapi_handler_cabbage
zebra: Cleanup call parameters to some functions
2018-10-06 00:20:12 -05:00
Jafar Al-Gharaibeh
41df11abc7
Merge pull request #3119 from pacovn/Coverity_1465497_dead_code
zebra: dead code (Coverity 1465497)
2018-10-06 00:18:52 -05:00
Ameya Dharkar
50e05855f0 bgpd: BGP JSON show commands enhancements
1. "show bgp ipv4 json"
  - Corresponding CLI has "network" field which displays a prefix in
    'prefix/prefixlen' format. Added this "network" field to JSON as well.
  - Following fields have different names in JSON and CLI.
      CLI      JSON
      metric   med
      locPrf   localPref
      path     aspath

    Added fields "metric", "locPrf" and "path" in JSON for CLI/JSON
    consistency. Older JSON fields med, localPref, aspath will be
    deprecated in future.

2. "show bgp ipv6 json"
  - Similar changes as "show bgp ipv4 json"
  - JSON does not have "prefix", "prefixLen" fields which are present in IPv4
  command. Added these fields as they are useful.

3. "show bgp ipv4/ipv6 neighbor <neighbor_addr> advertised-routes json"
  - Added "network" field.
  - Added locPrf, path fields for CLI/JSON consistency. localPref, aspath will
  be deprecated in future.

4. "show bgp ipv4/ipv6 summary json"
  - Added "pfxRcd" for CLI/JSON consistency.
    "prefixReceivedCount" will be deprecated in future.
  - Added "pfxSnt" for peers. This count is obtalned from corresponding
    update_subgroup. This needed a fix in the code where we copy fields
    for a split update_subgroup from the parent update_subgrp.
    New subgrp should inherit subgrp->scount(Count of advertized prefixes)
    of the parent subgrp.

5. "show bgp neighbor json"
  - Added "sentPrefixCounter"

6. "show bgp ipv4/ipv6 <prefix> json"
  - Added "metric" field for CLI/JSON consistency.
    "med" will be deprecated in future.

Signed-off-by: Ameya Dharkar <adharkar@vmware.org>
2018-10-05 15:06:17 -07:00
Donald Sharp
a393281d47 zebra: Cleanup unused file
The zebra_vxlan_null.c file is never used.  Let's remove
from our build system.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-10-05 10:00:52 -04:00
Christian Franke
a5eba4e9a5 isisd: Track BFD state and take down adjacency on failure
Signed-off-by: Christian Franke <chris@opensourcerouting.org>
2018-10-05 14:08:34 +02:00
Christian Franke
2815f817e5 isisd: Add debugging for BFD
Signed-off-by: Christian Franke <chris@opensourcerouting.org>
2018-10-05 14:08:23 +02:00
Christian Franke
ab880eaf30 isisd: Implement BFD replay function
Signed-off-by: Christian Franke <chris@opensourcerouting.org>
2018-10-05 14:08:18 +02:00
Christian Franke
20a42f0194 isisd: Register/deregister BFD peers for adjacencies
Signed-off-by: Christian Franke <chris@opensourcerouting.org>
2018-10-05 14:07:51 +02:00
Christian Franke
3015e3d15e isisd: Write BFD config
Signed-off-by: Christian Franke <chris@opensourcerouting.org>
2018-10-05 14:07:45 +02:00
Christian Franke
d56afe53aa isisd: Add a hook when writing interface config
Signed-off-by: Christian Franke <chris@opensourcerouting.org>
2018-10-05 14:05:31 +02:00
Christian Franke
215eccb0b8 isisd: Add BFD configuration commands
Signed-off-by: Christian Franke <chris@opensourcerouting.org>
2018-10-05 14:05:30 +02:00
Christian Franke
a5b5e946ce isisd: Replace isis_event_adjacency_state_change with a hook
Signed-off-by: Christian Franke <chris@opensourcerouting.org>
2018-10-05 14:05:28 +02:00
Christian Franke
52df822874 isisd: Register as BFD client
Signed-off-by: Christian Franke <chris@opensourcerouting.org>
2018-10-05 14:05:26 +02:00
Christian Franke
ad10378940 isisd: Add forward declaration of struct isis_route_info
Signed-off-by: Christian Franke <chris@opensourcerouting.org>
2018-10-05 14:05:22 +02:00
Christian Franke
a0d5840bb7 zebra_ptm: Add IS-IS and OpenFabric as protocols supporting BFD
Signed-off-by: Christian Franke <chris@opensourcerouting.org>
2018-10-05 14:04:27 +02:00
Christian Franke
4943f243b5 zebra_ptm: Introduce IS_BFD_ENABLED_PROTOCOL macro
Unify the check if a client supports BFD into one location.

Signed-off-by: Christian Franke <chris@opensourcerouting.org>
2018-10-05 14:04:15 +02:00
Tore Anderson
ec3bff6fd5 doc: correct route map match for prefix lists
This corrects the route map documentation to add the missing "prefix-list"
keyword, which is necessary when matching against a prefix list (as opposed to
an access list).

Additionally, change hyphens for underscores in the variables the user is
supposed to substitute in those commands, to prevent any confusion with the
"prefix-list" keyword itself, and also to make it more consistent with the
other documented commands (which are already using underscores).

Signed-off-by: Tore Anderson <tore@redpill-linpro.com>
2018-10-05 09:06:54 +02:00
Sarita Patra
7336e10117 bgpd: remove ip prefix from as-path, <large,ext>community-list
The existing commands "ip as-path", "ip community list", "ip extcommunity
list" & "ip largecommunity list" is used to configure both for ipv4 and
ipv6. So the prefix "ip" is removed from these commands.
All the configuration, show related configuration, show running config
& boot up with write memory is also verified with the provided fix.

Signed-off-by: Sarita Patra <saritap@vmware.com>
2018-10-04 21:50:44 -07:00
Quentin Young
78230371e9
Merge pull request #3098 from opensourcerouting/watchfrr-delay
tools/frr + watchfrr spring cleaning (southern hemisphere)
2018-10-04 15:04:56 -04:00
Quentin Young
cee9c03192 bgpd: complete description code for communities
When this description code was added, it was all dead code since none of
the bools that checked if the communities were present were ever changed
from 0.

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2018-10-04 18:12:33 +00:00
Quentin Young
cf4898bc99 bgpd: fix broken show community commands
SHA c5f1e1b broke about half of the community-related show commands; fix
them

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2018-10-04 17:46:52 +00:00
Rafael Zalamena
416f79bf51
Merge pull request #3126 from pacovn/Coverity_1424529_null_check
isisd: null check (Coverity 1424529)
2018-10-04 10:37:06 -03:00
Donald Sharp
15007d0053
Merge pull request #3127 from pacovn/Coverity_1472236_Improper_use_of_negative_value
zebra: netlink socket check (Coverity 1472236)
2018-10-04 09:26:33 -04:00
David Lamparter
416784e810
Merge pull request #3128 from donaldsharp/cpp_notice_build_failure
lib: Include compiler.h as early as is possible in the build
2018-10-04 11:09:48 +02:00
Quentin Young
56f67d6870
Merge pull request #3087 from opensourcerouting/bfd-memleak
bfdd: fix memory leak and echo-mode start
2018-10-03 18:43:34 -04:00
Lou Berger
139221f250
Merge pull request #3043 from qlyoung/doc-bgpd-multiple-ass
Doc bgpd multiple ASes
2018-10-03 18:03:48 -04:00
Rafael Zalamena
c4345fbf71 lib: refactor thread_execute
Don't allocate threads in the stack, but use the standardized
`thread_get` and `thread_add_unused` to avoid creating corner cases in
the thread API.

This fixes a thread mutex memory leak in FreeBSD.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2018-10-03 16:32:11 -03:00
Rafael Zalamena
6655966d2c lib: fix a memory leak in FreeBSD
Two important changes:
* Centralize the thread teardown procedure;
* Save and restore thread mutex context to avoid losing the memory
  pointer;

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2018-10-03 16:32:11 -03:00
F. Aragon
c9f7d10b8a
zebra: netlink socket check (Coverity 1472236)
Signed-off-by: F. Aragon <paco@voltanet.io>
2018-10-03 20:28:01 +02:00
Donald Sharp
728806e6f8 lib: Include compiler.h as early as is possible in the build
The compiler.h header provides us with some useful macro's
that we are using in the system.  We do not know exactly
where the CPP_NOTICE and CPP_WARN macros are used but
they can move around.  Place this header early in the
build then.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-10-03 13:41:21 -04:00
F. Aragon
7968405d87
isisd: null check (Coverity 1424529)
Signed-off-by: F. Aragon <paco@voltanet.io>
2018-10-03 16:38:49 +02:00
Don Slice
687a2b5dcc bgpd: allow nht registration on ipv6 link-local addresses
Signed-off-by: Don Slice <dslice@cumulusnetworks.com>
Testing Done: bgp-smoke completed with no new failures

While testing 5549 support using global addresses, discovered that
ipv6 nexthop tracking thru a route-reflector didn't work.  Since
the next-hop used for remote nexthops resolves to the link-local
of the route-reflector, we need to track it in order to react to
interface down events.  Also tripped over a crash in certain cases
which is also resolved in this fix.
2018-10-03 12:24:57 +00:00
Quentin Young
195c746165 doc: embellish bgp view docs
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2018-10-02 20:14:14 +00:00
Quentin Young
edde3ce9c2 doc: add extra information on bgp views and vrfs
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2018-10-02 20:14:14 +00:00
Quentin Young
c8a5e5e190 doc: clarify documentation on BGP multiple AS
Documentation on how to use multiple autonomous systems was inaccurate
and a bit scattered. Clarify usage of VRFs with multiple autonomous
systems, how to configure them, and their distinction from views. Also
moves a block on L3VPN VRFs out of the 'Basic Concepts' section.

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2018-10-02 20:14:14 +00:00