Commit Graph

3857 Commits

Author SHA1 Message Date
Donald Sharp
3a2bc867f8
Merge pull request #6859 from mjstapp/fix_dplane_sa_again
zebra: fix coverity SA warning in dataplane
2020-08-06 09:42:33 -04:00
Donatas Abraitis
721d703b7c
Merge pull request #6858 from donaldsharp/display_type_string
zebra: When debugging route notifications use string instead of number
2020-08-05 10:52:17 +03:00
Renato Westphal
3b59710cf9
Merge pull request #6857 from mjstapp/fix_lsp_backup_update
zebra: reset LSP backup nh info on update
2020-08-04 19:12:57 -03:00
Donald Sharp
7dee45ef80
Merge pull request #6698 from deastoe/fpm-netlink-fixes
zebra: always set kernel table ID in FPM netlink
2020-08-04 15:59:51 -04:00
Mark Stapp
dd3b6cb57b zebra: fix SA warning in dataplane
A previous SA fix introduced ... a different SA warning; fix it.

Signed-off-by: Mark Stapp <mjs@voltanet.io>
2020-08-04 14:52:43 -04:00
Donald Sharp
3bd61c0493 zebra: When debugging route notifications use string instead of number
Current behavior:
eva# show mem
2020/08/04 18:07:38 ZEBRA: Not Notifying Owner: 2 about prefix 3.3.3.3/32(254) 2 vrf: 0

Fix it to show:

2020/08/04 18:07:38 ZEBRA: Not Notifying Owner: connected about prefix 3.3.3.3/32(254) 2 vrf: 0

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2020-08-04 14:41:00 -04:00
Donald Sharp
070d9eb9c8
Merge pull request #6727 from opensourcerouting/nb-cfg-backoff
lib: introduce configuration back-off timer for YANG-modeled commands
2020-08-04 13:54:55 -04:00
Mark Stapp
301a687af6 zebra: reset LSP backup nh info on update
If an existing LSP nh is updated, ensure any backup nh
info is also reset.

Signed-off-by: Mark Stapp <mjs@voltanet.io>
2020-08-04 12:49:24 -04:00
Sri Mohana Singamsetty
5da931b269
Merge pull request #6812 from mjstapp/fix_dplane_ret_sa
zebra: fix SA warning, handle return code
2020-08-04 09:06:17 -07:00
Stephen Worley
c117742943
Merge pull request #6821 from Niral-Networks/niral_6VPE_6PE_fix
BGP : Fix for nexthop as IPv4 mapped IPv6 address
2020-08-04 11:17:31 -04:00
Quentin Young
35b82b081d
Merge pull request #6770 from opensourcerouting/fpm-race
zebra: FPM fixes
2020-08-04 11:04:22 -04:00
Kaushik
92d6f76988 lib,zebra,bgpd: Fix for nexthop as IPv4 mapped IPv6 address
Added a macro to validate the v4 mapped v6 address.
Modified bgp receive & send updates for v4 mapped v6 address as
nexthop and installing it as recursive nexthop in RIB.
Minor change in fpm while sending the routes for nexthop as
v4 mapped v6 address.

Signed-off-by: Kaushik <kaushik@niralnetworks.com>
2020-08-03 23:24:04 -07:00
Renato Westphal
ca77b518bd *: introduce DEFPY_YANG & friends
DEFPY_YANG will allow the CLI to identify which commands are
YANG-modeled or not before executing them. This is going to be
useful for the upcoming configuration back-off timer work that
needs to commit pending configuration changes before executing a
command that isn't YANG-modeled.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
2020-08-03 15:17:03 -03:00
Mark Stapp
54d321aaa3 zebra: fix SA warning, handle return code
Handle a return code, resolving an SA warning

Signed-off-by: Mark Stapp <mjs@voltanet.io>
2020-07-30 14:29:16 -04:00
Rafael Zalamena
e41e0f8135 zebra,fpm: serialize zebra table walks
We were not getting any benefits from attempting to walk all tables at the
same time and it made debugging harder, so lets execute one table walk
per time.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2020-07-28 12:34:12 -03:00
Rafael Zalamena
55eb9d4d7d zebra,fpm: fix race on completion detection
Zebra runs on a different thread than FPM, so we need to synchronize
them by using events. While here, implement completion detection for all
kinds of walk.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2020-07-28 12:34:12 -03:00
Rafael Zalamena
e1afb97fdd zebra,fpm: fix input handling
Two important fixes:

* `stream_read_try` does a dirty trick and converts the `-1` return to
  `-2` when errno is `EAGAIN`, `EWOULDBLOCK` or `EINTR`.
* Don't enable reads until the connection is complete.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2020-07-28 12:34:12 -03:00
Russ White
996b789193
Merge pull request #6758 from chiragshah6/yang_nb6
EVPN northbound conversion for vrf l3vni mapping command
2020-07-28 07:22:24 -04:00
Renato Westphal
790953a387
Merge pull request #6765 from mjstapp/backup_nhg_netlink
lib,zebra: support multiple backup nexthops
2020-07-27 12:49:36 -03:00
Russ White
a90f46738a
Merge pull request #6730 from wesleycoakley/pbrd-dscp-ecn
DSCP / ECN-based PBR Matching
2020-07-23 12:08:38 -04:00
Quentin Young
bd6cec43c3
Merge pull request #6243 from pguibert6WIND/flowspec_some_regression_seen
Flowspec some regression seen
2020-07-23 11:26:00 -04:00
Mark Stapp
ff8d3c2dd4 zebra: add validate function for zapi_labels message
Add a simple validation function for zapi_labels messages; it
checks for and validates backup nexthop indexes currently.

Signed-off-by: Mark Stapp <mjs@voltanet.io>
2020-07-21 08:04:00 -04:00
Chirag Shah
92475ca487 zebra: vrf disable clean up evpn rmac nxthp cache
In networking restart event, l3vni (vxlan) interface followed by
associated vrf interfaces go down/deleted.
L3vni (oper) down event (from zebra to bgp) triggers to
clean up/un-import evpn routes (one-by-one) from the vrf table,
zebra internally removes the route entry from nexthop and RMAC hash.
When all the routes references in nexthop and RMAC db removed,
both (nexthop/rmac) are suppose to be uninstalled from the
bridge fdb and neigh table.
While evpn routes removal in progress, a vrf disable event removes
l3vni to its vrf association.
Subsequent bgp to evpn routes removal does not clean up thus evpn routes
reference to nexthop and RMAC remains in zebra hash.
bridge fdb and neigh tables are flushed out since networking restart brings down
all interfaces which results in flush of fdb and neigh tables.
By product is the zebra does not install nexthop and rmac when routes are re-imported
into vrf in VNI/VRF up event.

The fix is in vrf disable event to flush all l3vni's nexthop and rmac db.

Ticket:CM-30338
Reviewed By:CCR-10489
Testing Done:

Performed multiple networking restart and checked neigh and
bridge fdb tables for respective nexthop and router mac entry
programmed.

Signed-off-by: Chirag Shah <chirag@cumulusnetworks.com>
2020-07-20 20:58:20 -07:00
Chirag Shah
e2bcfa3946 zebra: evpn l3vni map to vrf nb changes
The set of northbound changes for l3vni configuration
command under vrf.

vrf x
 vni 1000 prefix-routes-only

{
  "frr-vrf:lib": {
    "vrf": [
      {
        "name": "vrf1",
        "frr-zebra:zebra": {
          "l3vni-id": 4001
        }
      },
      {
        "name": "vrf2",
        "frr-zebra:zebra": {
          "l3vni-id": 4002,
          "prefix-only": true
        }
      }
    ]
  }
}

Signed-off-by: Chirag Shah <chirag@cumulusnetworks.com>
2020-07-20 18:33:38 -07:00
Mark Stapp
8b117ff02b zebra: include backup nexthops for pseudowires
Include any installed backup nexthops when installing
pseudowires; include installed backups in vty and json
pw show output.

Signed-off-by: Mark Stapp <mjs@voltanet.io>
2020-07-20 15:09:04 -04:00
Mark Stapp
3c0e16228d zebra: improve vty, simplify some primary/backup code
Improve vty output for routes and lsps with backups, including
json. Simplify or correct some code that uses both primary and
backup nexthops in dplane, nht.

Signed-off-by: Mark Stapp <mjs@voltanet.io>
2020-07-20 15:09:04 -04:00
Rafael Zalamena
a203232464 zebra,fpm: fix dead lock on close during startup
Serialize the `fpm_reconnect` function by only allowing one part of our
code to call it, then make sure all zebra threads executions are done
before attempting to close and reset the output stream.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2020-07-20 09:58:14 -03:00
David Lamparter
67ce4ba19b
Merge pull request #6767 from donaldsharp/compile_issues 2020-07-19 11:36:38 +02:00
Santosh P K
3ab3b0f211
Merge pull request #6446 from chiragshah6/evpn_dev
zebra: rib operational nb add vrf key
2020-07-18 19:44:01 +05:30
Donald Sharp
f177a83efc zebra: Possible write beyond buffer length
Prevent string manipulation where we might have data
passed into that is larger than the buffer we are pushing into.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2020-07-18 09:45:08 -04:00
Stephen Worley
55528234ea
Merge pull request #6753 from mjstapp/fix_zebra_backup_sa
zebra: fix SA warnings in backup nexthop code
2020-07-17 17:29:49 -04:00
Chirag Shah
20e310a9b2 zebra: rib operational nb add vrf key
Add vrf as key in Rib operational nexthop list

PR 6296 has added vrf as key in nexthop list.
Rib operational model uses nexthop list, adding
vrf key into northbound callback.

Signed-off-by: Chirag Shah <chirag@cumulusnetworks.com>
2020-07-17 11:58:25 -07:00
Mark Stapp
7483dcbe29 zebra: add a route_entry flag for FIB-specific nexthops
Add a route_entry flag to indicate the presence of a fib
(installed) list of nexthops - more explicit and clearer.

Signed-off-by: Mark Stapp <mjs@voltanet.io>
2020-07-17 13:12:33 -04:00
Mark Stapp
e95f6d21d6 zebra: improve show output for routes with backups
Improve/clarify some show output for routes with backup
nexthops, esp. multiple backups.

Signed-off-by: Mark Stapp <mjs@voltanet.io>
2020-07-17 13:12:33 -04:00
Mark Stapp
474aebd939 lib,sharpd,zebra: initial support for multiple backup nexthops
Initial changes to support a nexthop with multiple backups. Lib
changes to hold a small array in each primary, zapi message
changes to support sending multiple backups, and daemon
changes to show commands to support multiple backups. The config
input for multiple backup indices is not present here.

Signed-off-by: Mark Stapp <mjs@voltanet.io>
2020-07-17 13:12:33 -04:00
Quentin Young
d58258e909
Merge pull request #6296 from vishaldhingra/static
staticd: static route NB configuration code
2020-07-17 12:39:03 -04:00
Philippe Guibert
3b1de7b86d zebra: do not free iptable context, once created
This commit avoids freeing the iptable context, once created. the case
where there is an error when reading zapi stream simply needs to free
the zpi context.

Fixes: ("8b5c4dce07e6 zebra: fix iptable memleak, fix free funcs")

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2020-07-17 17:07:18 +02:00
Donald Sharp
dfbe3a2bd3 zebra: Silently ignore afi 128/129 for rules
We do not need to know anything about rules in afi 128/129
at this point in time.  Just note it with a zebra kernel
debug and move on.  This is not something that a operator
can do anything with and at this point in time FRR
does not care.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2020-07-16 20:59:33 -04:00
Donald Sharp
721026f68c
Merge pull request #6752 from xThaid/evpn_neigh_fix
zebra: fix the installation of the evpn neighbor update
2020-07-16 20:09:08 -04:00
Renato Westphal
2d1ddebc8b
Merge pull request #6706 from donaldsharp/router_id_bullshit
Router id vrf subnode configuration
2020-07-16 18:09:38 -03:00
Mark Stapp
00a9b15005 zebra: include installed backup nexthops in kernel update
Include any installed backups when updating the local kernel
after processing an async notification. This includes routes'
nexthops and LSPs' nhlfes.

Add the 'b' character to the route show display and header to
indicate backup nexthops.

Signed-off-by: Mark Stapp <mjs@voltanet.io>
2020-07-16 14:18:37 -04:00
vdhingra
755100ac89 zebra: Moving afi-safi identity to lib
afi-safi identity handling should be in the common place.

Signed-off-by: VishalDhingra <vdhingra@vmware.com>
2020-07-16 08:40:42 -07:00
Mark Stapp
43a9f66cd1 zebra: fix SA warnings in backup nexthop code
Fix a couple of recent SA warnings that came from backup
nexthop/nhlfe changes.

Signed-off-by: Mark Stapp <mjs@voltanet.io>
2020-07-16 11:00:17 -04:00
Jakub Urbańczyk
45c80fbd08 zebra: fix installing an evpn neighbor update
Fix the function encoding evpn neighbor. The size of the buffer
for the netlink message wasn't correct and because of that we thought that
the message didn't fit entirely in the buffer and thus we were not sending
the update to the kernel.

Signed-off-by: Jakub Urbańczyk <xthaid@gmail.com>
2020-07-16 15:49:05 +02:00
Wesley Coakley
01f23affdb pbrd, zebra, lib: DSCP / ECN-based PBR Matching
Extend PBR maps to discriminate by Differentiated Services Code Point and / or
Explicit Congestion Notification fields. These fields are used in the IP header
for classifying network traffic.

      0     1     2     3     4     5     6     7
    +-----+-----+-----+-----+-----+-----+-----+-----+
    |          DS FIELD, DSCP           | ECN FIELD |
    +-----+-----+-----+-----+-----+-----+-----+-----+
      DSCP: differentiated services codepoint
      ECN:  Explicit Congestion Notification

Signed-off-by: Wesley Coakley <wcoakley@nvidia.com>
Signed-off-by: Saurav Kumar Paul <saurav@cumulusnetworks.com>
2020-07-15 12:59:36 -04:00
David Lamparter
6cde4b4552 *: remove PRI[udx](8|16|32)
These are completely pointless and break coccinelle string replacements.

Scripted commit, idempotent to running:
```
python3 tools/stringmangle.py --pri8-16-32 `git ls-files | egrep '\.[ch]$'`
```

Signed-off-by: David Lamparter <equinox@diac24.net>
2020-07-14 10:43:40 +02:00
David Lamparter
3efd0893d0 *: un-split strings across lines
Remove mid-string line breaks, cf. workflow doc:

  .. [#tool_style_conflicts] For example, lines over 80 characters are allowed
     for text strings to make it possible to search the code for them: please
     see `Linux kernel style (breaking long lines and strings)
     <https://www.kernel.org/doc/html/v4.10/process/coding-style.html#breaking-long-lines-and-strings>`_
     and `Issue #1794 <https://github.com/FRRouting/frr/issues/1794>`_.

Scripted commit, idempotent to running:
```
python3 tools/stringmangle.py --unwrap `git ls-files | egrep '\.[ch]$'`
```

Signed-off-by: David Lamparter <equinox@diac24.net>
2020-07-14 10:37:25 +02:00
Rafael Zalamena
57edbd370e
Merge pull request #6649 from xThaid/dplane_batching2
zebra: netlink cleanup
2020-07-13 17:32:16 -03:00
Quentin Young
6deb3954ff
Merge pull request #5301 from idryzhov/show-interface
[RFC] zebra: remove vrf parameter from "show interface ..." commands
2020-07-13 11:23:53 -04:00
Jakub Urbańczyk
f865339348 zebra: cosmetic changes in the netlink code
Signed-off-by: Jakub Urbańczyk <xthaid@gmail.com>
2020-07-13 16:35:39 +02:00