]> git.puffer.fish Git - mirror/frr.git/log
mirror/frr.git
5 years agolib: suppress formatting on yang.c module array nb_conversions 6247/head
Quentin Young [Thu, 16 Apr 2020 19:38:11 +0000 (15:38 -0400)]
lib: suppress formatting on yang.c module array

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
5 years agolib: fix style nit in yang_wrappers.c
Quentin Young [Thu, 16 Apr 2020 19:10:19 +0000 (15:10 -0400)]
lib: fix style nit in yang_wrappers.c

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
5 years agozebra: add weight to nb conversion
Chirag Shah [Mon, 6 Apr 2020 21:20:43 +0000 (14:20 -0700)]
zebra: add weight to nb conversion

Signed-off-by: Chirag Shah <chirag@cumulusnetworks.com>
5 years agoyang: add weight in nexthop operational model
Chirag Shah [Sat, 4 Apr 2020 06:08:58 +0000 (23:08 -0700)]
yang: add weight in nexthop operational model

add weight field to operational model.
add leafref to nexthopgroup.
format according to yanglint.

Signed-off-by: Chirag Shah <chirag@cumulusnetworks.com>
5 years agolib: increase xpath maxlen
Chirag Shah [Sat, 4 Apr 2020 00:00:30 +0000 (17:00 -0700)]
lib: increase xpath maxlen

Certain xpath are well 256 characters, increasing
to 512.

Signed-off-by: Chirag Shah <chirag@cumulusnetworks.com>
5 years agozebra: add northbound support for zebra interface
Chirag Shah [Tue, 25 Feb 2020 02:40:29 +0000 (18:40 -0800)]
zebra: add northbound support for zebra interface

Signed-off-by: Chirag Shah <chirag@cumulusnetworks.com>
5 years agolib: remove gcc 4.x workaround for nb structure
Chirag Shah [Fri, 27 Mar 2020 02:00:52 +0000 (19:00 -0700)]
lib: remove gcc 4.x workaround for nb structure

Remove gcc 4.x workaround for variable size array as gcc
check moved to header file.

In lib/northbound.h : struct frr_yang_module_info made
size 1000 for gcc 4.x, where maximum 1000 nodes can fit.

Signed-off-by: Chirag Shah <chirag@cumulusnetworks.com>
5 years agozebra: add nb callbacks for zebra if state
Chirag Shah [Thu, 20 Feb 2020 02:48:47 +0000 (18:48 -0800)]
zebra: add nb callbacks for zebra if state

This is all stub callbacks autogenrated for
zebra interface state data.

Signed-off-by: chirag Shah <chirag@cumulusnetworks.com>
5 years agolib: add interface operational northbound callback
Chirag Shah [Wed, 19 Feb 2020 21:26:41 +0000 (13:26 -0800)]
lib: add interface operational northbound callback

Signed-off-by: Chirag Shah <chirag@cumulusnetworks.com>
5 years agoyang: update zebra interface model
Chirag Shah [Thu, 6 Feb 2020 03:19:09 +0000 (19:19 -0800)]
yang: update zebra interface model

Modify interface config model
and add zebra specific interface state operational data.

augment /frr-interface:lib/frr-interface:interface:
  +--rw zebra
     +--rw ip-addrs* [address-family ip-prefix]
     |  +--rw address-family    identityref
     |  +--rw ip-prefix         ietf-inet-types:ip-prefix
     |  +--rw label?            string
     |  +--rw ip4-peer?         ietf-inet-types:ipv4-prefix
     +--rw multicast?     boolean
     +--rw link-detect?   boolean
     +--rw shutdown?      boolean
     +--rw bandwidth?     uint32
     +--ro state
        +--ro up-count?      uint16
        +--ro down-count?    uint16
        +--ro zif-type?      identityref
        +--ro ptm-status?    string <disabled>
        +--ro vlan-id?       uint16
        +--ro vni-id?        vni-id-type
        +--ro remote-vtep?   ietf-inet-types:ipv4-address
        +--ro mcast-group?   ietf-routing-types:ipv4-multicast-group-address

Signed-off-by: Chirag Shah <chirag@cumulusnetworks.com>
5 years agoyang: add operational data to frr-interface model
Chirag Shah [Wed, 5 Feb 2020 22:23:52 +0000 (14:23 -0800)]
yang: add operational data to frr-interface model

module: frr-interface
  +--rw lib
     +--rw interface* [name vrf]
        +--rw name           string
        +--rw vrf            frr-vrf:vrf-ref
        +--rw description?   string
        +--ro state
           +--ro if-index?      int32
           +--ro mtu?           uint16
           +--ro mtu6?          uint32
           +--ro speed?         uint32
           +--ro metric?        uint32
           +--ro flags?         if-flags-type
           +--ro type?          identityref
           +--ro phy-address?   ietf-yang-types:mac-address

Signed-off-by: Chirag Shah <chirag@cumulusnetworks.com>
5 years agoyang: add ietf interface yang model
Chirag Shah [Tue, 4 Feb 2020 00:09:29 +0000 (16:09 -0800)]
yang: add ietf interface yang model

Add ietf interface yant model.
Also include it in the makefile.

Signed-off-by: Chirag Shah <chirag@cumulusnetworks.com>
5 years agoyang: igmp yang definition
Sarita Patra [Wed, 5 Feb 2020 08:52:27 +0000 (00:52 -0800)]
yang: igmp yang definition

Defined frr-igmp.yang file for IGMP protocol.

Co-authored-by: Sarita Patra <saritap@vmware.com>
Co-authored-by: Santosh P K <sapk@vmware.com>
Signed-off-by: Sarita Patra <saritap@vmware.com>
5 years agolib: yang wrapper nexthop type to str
Chirag Shah [Tue, 31 Mar 2020 02:29:32 +0000 (19:29 -0700)]
lib: yang wrapper nexthop type to str

Signed-off-by: Chirag Shah <chirag@cumulusnetworks.com>
5 years agolib: add yang wrapper for type empty
Chirag Shah [Sat, 21 Mar 2020 01:58:16 +0000 (18:58 -0700)]
lib: add yang wrapper for type empty

Signed-off-by: Chirag Shah <chirag@cumulusnetworks.com>
5 years agozebra: stub changes to assimilate re into rib nb
Chirag Shah [Tue, 10 Mar 2020 01:48:30 +0000 (18:48 -0700)]
zebra: stub changes to assimilate re into rib nb

Signed-off-by: Chirag Shah <chirag@cumulusnetworks.com>
5 years agoyang: zebra rib model add route entry
Chirag Shah [Fri, 6 Mar 2020 05:43:41 +0000 (21:43 -0800)]
yang: zebra rib model add route entry

FRR rib model need to accomodate route entries for
a given destination prefix.

Add a list of route entry under the list of prefix.

+--rw ribs
   +--rw rib* [afi-safi-name table-id]
      +--rw table-id         uint32
      +--rw afi-safi-name    identityref
      +--ro route* [prefix]
         +--ro prefix         ietf-inet-types:ip-prefix
         +--ro route-entry* [protocol]
            +--ro protocol           frr-route-types:frr-route-types-v4
            +--ro instance?          uint16
            +--ro distance?          uint8
            +--ro metric?            uint32
            +--ro tag?               uint32
            +--ro selected?          empty
            +--ro installed?         empty
            +--ro failed?            empty
            +--ro queued?            empty
            +--ro internal-flags?    int32
            +--ro internal-status?   int32
            +--ro uptime?            ietf-yang-types:date-and-time
            +--ro nexthop-group* [name]
               +--ro name            string
               +--ro frr-nexthops
                  +--ro nexthop* [nh-type gateway interface]
                     +--ro nh-type             frr-nexthop:nexthop-type
                     +--ro vrf?                frr-vrf:vrf-ref
                     +--ro gateway             frr-nexthop:optional-ip-address
                     +--ro interface           frr-interface:interface-ref
                     +--ro bh-type?            frr-nexthop:blackhole-type
                     +--ro onlink?             boolean <false>
                     +--ro mpls-label-stack
                     |  +--ro entry* [id]
                     |     +--ro id               uint8
                     |     +--ro label?           ietf-routing-types:mpls-label
                     |     +--ro ttl?             uint8
                     |     +--ro traffic-class?   uint8
                     +--ro duplicate?          empty
                     +--ro recursive?          empty
                     +--ro active?             empty
                     +--ro fib?                empty

Signed-off-by: Chirag Shah <chirag@cumulusnetworks.com>
5 years agoyang: zebra rib model remove grouping for ip route
Chirag Shah [Mon, 2 Mar 2020 15:22:45 +0000 (07:22 -0800)]
yang: zebra rib model remove grouping for ip route

Grouping is referencing leaves outside the grouping
from where it is used. Removing it and defining leaves
at the used place.

Signed-off-by: Chirag Shah <chirag@cumulusnetworks.com>
5 years agozebra: convert clear evpn dup addr command to nb
Chirag Shah [Thu, 6 Feb 2020 21:32:34 +0000 (13:32 -0800)]
zebra: convert clear evpn dup addr command to nb

Signed-off-by: Chirag Shah <chirag@cumulusnetworks.com>
5 years agozebra: nb rpc cb for clear evpn dup addr cmd
Chirag Shah [Wed, 29 Jan 2020 20:05:35 +0000 (12:05 -0800)]
zebra: nb rpc cb for clear evpn dup addr cmd

Signed-off-by: Chirag Shah <chirag@cumulusnetworks.com>
5 years agozebra: clear dup detect cleanup for nb conversion
Chirag Shah [Thu, 6 Feb 2020 20:37:28 +0000 (12:37 -0800)]
zebra: clear dup detect cleanup for nb conversion

Signed-off-by: Chirag Shah <chirag@cumulusnetworks.com>
5 years agolib:api to convert mac to yang object
Chirag Shah [Thu, 30 Jan 2020 19:42:58 +0000 (11:42 -0800)]
lib:api to convert mac to yang object

Signed-off-by: Chirag Shah <chirag@cumulusnetworks.com>
5 years agozebra: nb callbacks support
Chirag Shah [Wed, 29 Jan 2020 17:38:03 +0000 (09:38 -0800)]
zebra: nb callbacks support

Definition of the northbound callbacks
and associated YANG data paths for zebra.

Signed-off-by: Chirag Shah <chirag@cumulusnetworks.com>
5 years agoyang: add zebra model in makefile
Chirag Shah [Fri, 13 Dec 2019 01:43:19 +0000 (17:43 -0800)]
yang: add zebra model in makefile

Signed-off-by: Chirag Shah <chirag@cumulusnetworks.com>
5 years ago*: frr nexthop yang in makefile
Chirag Shah [Wed, 29 Jan 2020 17:38:03 +0000 (09:38 -0800)]
*: frr nexthop yang in makefile

Signed-off-by: Chirag Shah <chirag@cumulusnetworks.com>
5 years agoyang: zebra rib operational model
Chirag Shah [Fri, 6 Dec 2019 02:48:14 +0000 (18:48 -0800)]
yang: zebra rib operational model

augment /frr-vrf:lib/frr-vrf:vrf:
  +--rw ribs
     +--rw rib* [afi-safi-name table-id]
        +--rw table-id         uint32
        +--rw afi-safi-name    identityref
        +--ro route* [prefix]
           +--ro prefix             ietf-inet-types:ip-prefix
           +--ro protocol?          frr-route-types:frr-route-types-v4
           +--ro protocol-v6?       frr-route-types:frr-route-types-v6
           +--ro vrf?               frr-vrf:vrf-ref
           +--ro distance?          uint8
           +--ro metric?            uint32
           +--ro tag?               uint32
           +--ro selected?          empty
           +--ro installed?         empty
           +--ro failed?            empty
           +--ro queued?            empty
           +--ro internal-flags?    int32
           +--ro internal-status?   int32
           +--ro uptime?            ietf-yang-types:date-and-time
           +--ro nexthop-group* [name]
              +--ro name            string
              +--ro frr-nexthops
                 +--ro nexthop* [nh-type gateway interface]
                    +--ro nh-type             frr-nexthop:nexthop-type
                    +--ro vrf?                frr-vrf:vrf-ref
                    +--ro gateway             frr-nexthop:optional-ip-address
                    +--ro interface           frr-interface:interface-ref
                    +--ro bh-type?            frr-nexthop:blackhole-type
                    +--ro onlink?             boolean <false>
                    +--ro mpls-label-stack
                    |  +--ro entry* [id]
                    |     +--ro id               uint8
                    |     +--ro label?           ietf-routing-types:mpls-label
                    |     +--ro ttl?             uint8
                    |     +--ro traffic-class?   uint8
                    +--ro duplicate?          empty
                    +--ro recursive?          empty
                    +--ro active?             empty
                    +--ro fib?                empty

Signed-off-by: Chirag Shah <chirag@cumulusnetworks.com>
5 years agoyang: revert leafref to get interface cmd working
Chirag Shah [Sat, 21 Mar 2020 23:46:24 +0000 (16:46 -0700)]
yang: revert leafref to get interface cmd working

Unable to access interface command:
root@bharat:~/stash/libyang/build# dpkg-query -W | grep libyang
libyang-dev 0.16.105-3~ubuntu18.04.1
libyang0.16 0.16.105-3~ubuntu18.04.1
root@bharat:~/stash/libyang/build# vtysh
bharat# config t
bharat(config)# interface lo
% Configuration failed: validation error.

Please check the logs for more details.

Logfile:
2020/03/21 16:48:55 ZEBRA: libyang: Leafref
"/frr-vrf:lib/frr-vrf:vrf/frr-vrf:name" of value "default"
points to a non-existing leaf.
(/frr-interface:lib/interface[name='lo'][vrf='default']/vrf)
2020/03/21 16:48:55 ZEBRA: [EC 100663337]
nb_candidate_commit_prepare: failed to validate
candidate configuration

CI system failure:
2020/03/21 18:53:18 ZEBRA: libyang: Leafref
"/frr-vrf:lib/frr-vrf:vrf/frr-vrf:name" of value "default"
points to a non-existing leaf.
(/frr-interface:lib/interface[name='r1-eth0'][vrf='default']/vrf)
2020/03/21 18:53:18 ZEBRA: [EC 100663337] nb_candidate_commit_prepare:
failed to validate candidate configuration
2020/03/21 18:53:18 ZEBRA: libyang: Leafref
"/frr-vrf:lib/frr-vrf:vrf/frr-vrf:name" of value "default"
points to a non-existing leaf.
(/frr-interface:lib/interface[name='r1-eth1'][vrf='default']/vrf)

Signed-off-by: Chirag Shah <chirag@cumulusnetworks.com>
5 years agolib: convert vrf cmd to northbound config callback
Chirag Shah [Sat, 21 Mar 2020 21:35:14 +0000 (14:35 -0700)]
lib: convert vrf cmd to northbound config callback

Signed-off-by: Chirag Shah <chirag@cumulusnetworks.com>
5 years ago*: include vrf northbound module in init
Chirag Shah [Wed, 11 Mar 2020 20:14:08 +0000 (13:14 -0700)]
*: include vrf northbound module in init

Signed-off-by: Chirag Shah <chirag@cumulusnetworks.com>
5 years agolib: vrf northbound callbacks
Chirag Shah [Wed, 11 Mar 2020 01:20:49 +0000 (18:20 -0700)]
lib: vrf northbound callbacks

Signed-off-by: Chirag Shah <chirag@cumulusnetworks.com>
5 years agolib: yang defination for basic frr-routing
vdhingra [Wed, 11 Dec 2019 05:57:37 +0000 (21:57 -0800)]
lib: yang defination for basic frr-routing

Yang files for basic frr-routing used by other
daemons like staticd and pim

Co-authored-by: Santosh P K <sapk@vmware.com>
Co-authored-by: vishaldhingra <vdhingra@vmware.com>
Signed-off-by: vishaldhingra <vdhingra@vmware.com>
5 years agostaticd: yang defination
vdhingra [Tue, 3 Dec 2019 14:00:51 +0000 (06:00 -0800)]
staticd: yang defination

Yang files for staticd to use northbound APIs

Co-authored-by: Santosh P K <sapk@vmware.com>
Co-authored-by: vishaldhingra <vdhingra@vmware.com>
Signed-off-by: vishaldhingra <vdhingra@vmware.com>
5 years agolib: FRR next-hop yang data model.
Santosh P K [Fri, 20 Dec 2019 08:30:57 +0000 (00:30 -0800)]
lib: FRR next-hop yang data model.

A common nexthop and group nexthop yang data model
for all protocols in FRR.

Co-authored-by: Santosh P K <sapk@vmware.com>
Co-authored-by: Vishaldhingra <vdhingra@vmware.com>
Signed-off-by: Santosh P K <sapk@vmware.com>
5 years agoyang: add vrf ref to interface model
Chirag Shah [Mon, 3 Feb 2020 21:31:32 +0000 (13:31 -0800)]
yang: add vrf ref to interface model

module: frr-interface
  +--rw lib
     +--rw interface* [name vrf]
        +--rw name           string
        +--rw vrf            frr-vrf:vrf-ref
        +--rw description?   string

Signed-off-by: Chirag Shah <chirag@cumulusnetworks.com>
5 years ago*: add frr-vrf yang module in makefile
Chirag Shah [Mon, 9 Dec 2019 02:18:04 +0000 (18:18 -0800)]
*: add frr-vrf yang module in makefile

lib: Adding frr-vrf yang module to common place
so it can be accessed from all frr modules.

Signed-off-by: Chirag Shah <chirag@cumulusnetworks.com>
5 years agoyang: add vrf model
Chirag Shah [Fri, 6 Dec 2019 04:47:01 +0000 (20:47 -0800)]
yang: add vrf model

module: frr-vrf
  +--rw lib
     +--rw vrf* [name]
        +--rw name      string
        +--ro id?       uint32
        +--ro active?   boolean <false>
        +--rw netns {netns}?
           +--rw name?   string

Signed-off-by: Chirag Shah <chirag@cumulusnetworks.com>
5 years agoMerge pull request #6238 from donaldsharp/test_evpn_vxlan_cleanup
Donatas Abraitis [Thu, 16 Apr 2020 13:05:34 +0000 (16:05 +0300)]
Merge pull request #6238 from donaldsharp/test_evpn_vxlan_cleanup

tests: Cleanup bgp config for evpn vxlan topotest

5 years agotests: Cleanup bgp config for evpn vxlan topotest 6238/head
Donald Sharp [Thu, 16 Apr 2020 11:04:27 +0000 (07:04 -0400)]
tests: Cleanup bgp config for evpn vxlan topotest

The bgp configuration for the vxlan topotest mixed
and matched some configuration that does not belong
for an IBGP setup.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
5 years agoMerge pull request #6237 from ton31337/fix/show_hostname_in_bgp
Donald Sharp [Thu, 16 Apr 2020 10:45:42 +0000 (06:45 -0400)]
Merge pull request #6237 from ton31337/fix/show_hostname_in_bgp

bgpd: Show hostname in `show [ip] bgp ...` only if nexthop is connected

5 years agotests: Check if the right next-hop is shown (bgp_show_ip_bgp_fqdn) 6237/head
Donatas Abraitis [Thu, 16 Apr 2020 07:37:21 +0000 (10:37 +0300)]
tests: Check if the right next-hop is shown (bgp_show_ip_bgp_fqdn)

Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
5 years agobgpd: Show hostname in `show [ip] bgp ...` only if nexthop is connected
Donatas Abraitis [Thu, 16 Apr 2020 07:36:59 +0000 (10:36 +0300)]
bgpd: Show hostname in `show [ip] bgp ...` only if nexthop is connected

The problem is when using kinda such topologies:
(192.168.1.1/32) r1 <-- eBGP --> r2 <-- iBGP --> r3

Looking at r3's nexthop for 192.168.1.1/32 we have it as r2, but really
it MUST be r1.

Checking if the nexthop is connected solves the problem even for cases
when route-reflectors are used.

Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
5 years agoMerge pull request #6232 from ton31337/fix/validate_lcommunities
Donald Sharp [Wed, 15 Apr 2020 18:19:16 +0000 (14:19 -0400)]
Merge pull request #6232 from ton31337/fix/validate_lcommunities

bgpd: Validate all large communities if specified more per line

5 years agoMerge pull request #6229 from donaldsharp/netlink_request_fixup
Rafael Zalamena [Wed, 15 Apr 2020 16:45:58 +0000 (13:45 -0300)]
Merge pull request #6229 from donaldsharp/netlink_request_fixup

zebra: Modify netlink_request to statisfy coverity

5 years agobgpd: Validate all large communities if specified more per line 6232/head
Donatas Abraitis [Wed, 15 Apr 2020 15:21:24 +0000 (18:21 +0300)]
bgpd: Validate all large communities if specified more per line

```
(config)# bgp large-community-list standard FRR-1 permit 1:1:1:1
% Malformed community-list value
(config)# bgp large-community-list standard FRR-1 permit 1:1:1 1:2
% Malformed community-list value
(config)# bgp large-community-list standard FRR-1 permit 1:1:1 1:2 3:3:2
% Malformed community-list value
(config)# bgp large-community-list standard FRR-1 permit 1:1:1 1:2 3:3:2 0:0:0
% Malformed community-list value
(config)# bgp large-community-list standard FRR-1 permit 0:0:1231321231414
% Malformed community-list value
(config)# bgp large-community-list standard FRR-1 permit 1:1:1 1:2:3 3:3:2 0:0:
% Malformed community-list value
(config)# bgp large-community-list standard FRR-1 permit 1:1:1 1:2:3 3:3:2 0:2:3
(config)# bgp large-community-list standard FRR-1 permit 1:1:1 1:2:3 3:3:2
(config)#
```

Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
5 years agoMerge pull request #6230 from donaldsharp/nhrp_json_silliness
Donatas Abraitis [Wed, 15 Apr 2020 15:06:38 +0000 (18:06 +0300)]
Merge pull request #6230 from donaldsharp/nhrp_json_silliness

nhrpd: Actually allow json output

5 years agoMerge pull request #6226 from LabNConsulting/ziemba/ldpd-fix-md5key-length
Renato Westphal [Wed, 15 Apr 2020 14:46:30 +0000 (11:46 -0300)]
Merge pull request #6226 from LabNConsulting/ziemba/ldpd-fix-md5key-length

ldpd: ldp_vty_neighbor_password(): fix auth.md5key_len calculation

5 years agonhrpd: Actually allow json output 6230/head
Donald Sharp [Wed, 15 Apr 2020 13:25:54 +0000 (09:25 -0400)]
nhrpd: Actually allow json output

Add the correct pointer check to see if we should
be doing json output.

Discovered by SA.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
5 years agozebra: Modify netlink_request to statisfy coverity 6229/head
Donald Sharp [Wed, 15 Apr 2020 12:56:03 +0000 (08:56 -0400)]
zebra: Modify netlink_request to statisfy coverity

The netlink_request function takes a `struct nlmsghdr *`
pointer from a common pattern that we use:

struct {
struct nlmsghdr n;
struct fib_rule_hdr frh;
char buf[NL_PKT_BUF_SIZE];
} req;

We were calling it `netlink_request(Socket, &req.n)`

The problem here is that coverity, rightly so, sees that
we access the data after the nlmsghdr in netlink_request and
tells us we have an read beyond end of the structure.  While
we know we haven't mangled anything up here because of manual
inspection coverity doesn't have this knowledge implicitly.

So let's modify the code call to netlink_request to pass in the
void pointer of the req structure itself, cast to the appropriate
data structure in the function and do the right thing.  Hopefully
the coverity SA will be happy and we can move on with our life.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
5 years agoMerge pull request #6154 from donaldsharp/check_interface_working
Renato Westphal [Wed, 15 Apr 2020 02:37:47 +0000 (23:37 -0300)]
Merge pull request #6154 from donaldsharp/check_interface_working

tests: Add a route-map test to ensure it accepts an unknown intf name

5 years agoldpd: ldp_vty_neighbor_password(): fix auth.md5key_len calculation 6226/head
G. Paul Ziemba [Wed, 15 Apr 2020 02:08:57 +0000 (19:08 -0700)]
ldpd: ldp_vty_neighbor_password(): fix auth.md5key_len calculation

Per issue #6202

Very long passwords (>79 chars) get truncated: save truncated
length in nbrp->auth.md5key_len instead of original length.

Signed-off-by: G. Paul Ziemba <paulz@labn.net>
5 years agoMerge pull request #6225 from qlyoung/fix-zebra-counter-printf-specifiers
Renato Westphal [Wed, 15 Apr 2020 00:03:09 +0000 (21:03 -0300)]
Merge pull request #6225 from qlyoung/fix-zebra-counter-printf-specifiers

zebra: use %u for unsigned when printing counters

5 years agoMerge pull request #6214 from opensourcerouting/bfdd-debug
Donald Sharp [Tue, 14 Apr 2020 23:06:10 +0000 (19:06 -0400)]
Merge pull request #6214 from opensourcerouting/bfdd-debug

bfdd: code/logging/debug improvements

5 years agoMerge pull request #6211 from mjstapp/fix_zebra_cov
Quentin Young [Tue, 14 Apr 2020 22:25:38 +0000 (18:25 -0400)]
Merge pull request #6211 from mjstapp/fix_zebra_cov

zebra: fix some coverity SA warnings

5 years agoMerge pull request #5510 from opensourcerouting/dplane-fpm-netlink
Mark Stapp [Tue, 14 Apr 2020 20:40:05 +0000 (16:40 -0400)]
Merge pull request #5510 from opensourcerouting/dplane-fpm-netlink

zebra: netlink FPM interface using zebra data plane

5 years agozebra: use %u for unsigned when printing counters 6225/head
Quentin Young [Tue, 14 Apr 2020 19:02:30 +0000 (15:02 -0400)]
zebra: use %u for unsigned when printing counters

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
5 years agoMerge pull request #5812 from pguibert6WIND/bgp_stats_all
Donald Sharp [Tue, 14 Apr 2020 18:36:21 +0000 (14:36 -0400)]
Merge pull request #5812 from pguibert6WIND/bgp_stats_all

Bgp stats all

5 years agoMerge pull request #6218 from qlyoung/fix-ospf-router-lsa-missing-length-check
Olivier Dugeon [Tue, 14 Apr 2020 17:49:53 +0000 (19:49 +0200)]
Merge pull request #6218 from qlyoung/fix-ospf-router-lsa-missing-length-check

ospfd: router LSA link info missing length check

5 years agozebra: fix hash_backet typo in data plane FPM 5510/head
Rafael Zalamena [Mon, 23 Mar 2020 17:06:41 +0000 (14:06 -0300)]
zebra: fix hash_backet typo in data plane FPM

Implement the fix made in `master` to the remain pieces of code in the
data plane FPM module.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
5 years agozebra: hide verbose data plane FPM log messages
Rafael Zalamena [Tue, 11 Feb 2020 13:46:01 +0000 (10:46 -0300)]
zebra: hide verbose data plane FPM log messages

To enable them just configure `debug zebra fpm`.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
5 years agozebra: fix some formatting/style issues
Rafael Zalamena [Mon, 10 Feb 2020 21:40:43 +0000 (18:40 -0300)]
zebra: fix some formatting/style issues

* Break lines longer than 80 columns.
* Remove space after '('.
* Use '%pIX' instead of 'inet_ntop'.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
5 years agozebra: data plane FPM add support RMAC VNI
Rafael Zalamena [Mon, 13 Jan 2020 19:34:03 +0000 (16:34 -0300)]
zebra: data plane FPM add support RMAC VNI

Store VNI information in the data plane context so we can use it to
build the FPM netlink update with that information later.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
5 years agozebra: fix style on data plane FPM module
Rafael Zalamena [Wed, 8 Jan 2020 19:31:23 +0000 (16:31 -0300)]
zebra: fix style on data plane FPM module

*   Use 32bit atomic instead of 64bit.
*   Don't use semicolon at the end of macros.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
5 years agobuild: fix data plane FPM netlink module
Rafael Zalamena [Fri, 3 Jan 2020 20:22:27 +0000 (17:22 -0300)]
build: fix data plane FPM netlink module

Changes:

*   Let the package builder scripts know that we have a new module that
    needs to be taken care of.
*   Include the frr atomic header to avoid undeclared atomic operations.
*   Disable build on *BSDs because the code is using some zebra netlink
    functions only available for Linux.
*   Move data plane FPM module outside old FPM automake definition.
*   Fix atomic usage for Ubuntu 14.04 (always use explicit).

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
5 years agozebra: use atomic operations in FPM
Rafael Zalamena [Tue, 17 Dec 2019 13:03:54 +0000 (10:03 -0300)]
zebra: use atomic operations in FPM

FPM has a thread to encode and enqueue output buffer that might compete
with zebra RIB/RMAC walk on startup, so lets use atomic operations to
make sure we are not getting statistic/counters wrong.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
5 years agozebra: queue data plane context for FPM
Rafael Zalamena [Thu, 12 Dec 2019 18:04:23 +0000 (15:04 -0300)]
zebra: queue data plane context for FPM

Enqueue all contexts inside FPM to avoid losing updates and to move all
processing to the FPM thread.

This helps in situations with huge amount of routes (e.g. BGP peer
flapping with a million routes).

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
5 years agozebra: improve FPM output buffer handling
Rafael Zalamena [Thu, 12 Dec 2019 13:11:28 +0000 (10:11 -0300)]
zebra: improve FPM output buffer handling

Add counters to debug the output buffer usage and pull down its data
when the remote receiver is slow (so we get more space for writes).

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
5 years agozebra: simplify FPM buffer full detection
Rafael Zalamena [Wed, 11 Dec 2019 21:04:50 +0000 (18:04 -0300)]
zebra: simplify FPM buffer full detection

Remove code duplication and document hardcoded values.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
5 years agozebra: implement FPM counters
Rafael Zalamena [Wed, 11 Dec 2019 16:59:42 +0000 (13:59 -0300)]
zebra: implement FPM counters

Add commands to show and reset FPM counters.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
5 years agozebra: CLI commands for new FPM interface
Rafael Zalamena [Tue, 10 Dec 2019 20:10:10 +0000 (17:10 -0300)]
zebra: CLI commands for new FPM interface

Add commands to enable/disable and configure FPM.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
5 years agozebra: data plane FPM RMAC walk code
Rafael Zalamena [Mon, 9 Dec 2019 15:37:35 +0000 (12:37 -0300)]
zebra: data plane FPM RMAC walk code

Implement the code that walks the RMAC to send routes that are already
inside installed in the OS.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
5 years agozebra: adapt and export rmac netlink functions
Rafael Zalamena [Mon, 9 Dec 2019 15:36:18 +0000 (12:36 -0300)]
zebra: adapt and export rmac netlink functions

Those functions are going to be used by the new data plane plugin for
netlink FPM.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
5 years agoMerge pull request #6197 from sworleys/PBR-Atomic
Russ White [Tue, 14 Apr 2020 15:58:54 +0000 (11:58 -0400)]
Merge pull request #6197 from sworleys/PBR-Atomic

pbrd,zebra: implement `set *` and `match *` replace

5 years agoMerge pull request #6096 from pjdruddy/vxlan_evpn_topo_test
Donald Sharp [Tue, 14 Apr 2020 15:53:48 +0000 (11:53 -0400)]
Merge pull request #6096 from pjdruddy/vxlan_evpn_topo_test

tests: add basic topotest for VXLAN EVPN

5 years agoospfd: router LSA link info missing length check 6218/head
Quentin Young [Tue, 14 Apr 2020 04:39:15 +0000 (00:39 -0400)]
ospfd: router LSA link info missing length check

Fix
- Modulo check on data length not inclusive enough
- Garbage heap read when bounds checking

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
5 years agopbrd: fix wording in pbr_send_pbr_map comment 6197/head
Stephen Worley [Tue, 14 Apr 2020 15:09:54 +0000 (11:09 -0400)]
pbrd: fix wording in pbr_send_pbr_map comment

Fix some bad wording in a comment when deciding whether
to send a pbr map sequence to zebra.

Signed-off-by: Stephen Worley <sworley@cumulusnetworks.com>
5 years agozebra: data plane FPM RIB walk code
Rafael Zalamena [Wed, 4 Dec 2019 18:07:11 +0000 (15:07 -0300)]
zebra: data plane FPM RIB walk code

Implement the code that walks the RIB to send routes that are already
inside the RIB.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
5 years agozebra: data plane plugin for FPM netlink
Rafael Zalamena [Wed, 4 Dec 2019 13:39:18 +0000 (10:39 -0300)]
zebra: data plane plugin for FPM netlink

Initial import of the new zebra data plane plugin for FPM netlink.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
5 years agozebra: dataplane context reset and init apis
Mark Stapp [Tue, 10 Dec 2019 19:53:46 +0000 (14:53 -0500)]
zebra: dataplane context reset and init apis

Add a public reset api, so a context can be reset and reused;
add apis to init a context for a route or mac update.

Signed-off-by: Mark Stapp <mjs@voltanet.io>
5 years agozebra: export netlink function and change return
Rafael Zalamena [Wed, 4 Dec 2019 13:37:40 +0000 (10:37 -0300)]
zebra: export netlink function and change return

Instead of retuning always `0`, lets return the amount of used bytes for
the message. This will be used by the new FPM interface to know how many
bytes we must reserve for the output buffer.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
5 years agozebra: simplify netlink_route_multipath
Rafael Zalamena [Mon, 2 Dec 2019 16:03:35 +0000 (13:03 -0300)]
zebra: simplify netlink_route_multipath

*   Remove variable `family`;
*   Remove always false `RTM_DELROUTE` checks;

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
5 years agozebra: simplify some netlink debug messages
Rafael Zalamena [Fri, 29 Nov 2019 21:15:02 +0000 (18:15 -0300)]
zebra: simplify some netlink debug messages

*   Use `inet_ntop` instead of `inet_ntoa`
*   Replace function name with `__func__`
*   Inline functions

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
5 years agozebra: generalize netlink route talk function
Rafael Zalamena [Fri, 29 Nov 2019 18:19:47 +0000 (15:19 -0300)]
zebra: generalize netlink route talk function

Generalize the netlink route message building function so it can be used
in the future by the netlink Forwarding Plane Manager (FPM) interface.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
5 years agoMerge pull request #6201 from adharkar/frr-master-fpm_mac
Russ White [Tue, 14 Apr 2020 13:30:47 +0000 (09:30 -0400)]
Merge pull request #6201 from adharkar/frr-master-fpm_mac

zebra: Address sequencing issue while sending RMAC via FPM

5 years agoMerge pull request #6219 from qlyoung/fix-ospf-opaque-so-lsa-uaf
Russ White [Tue, 14 Apr 2020 13:18:38 +0000 (09:18 -0400)]
Merge pull request #6219 from qlyoung/fix-ospf-opaque-so-lsa-uaf

ospfd: fix uaf upon rx of self-originated lsa

5 years agoMerge pull request #6221 from opensourcerouting/defaults-fix-version-cmp
Donatas Abraitis [Tue, 14 Apr 2020 13:01:21 +0000 (16:01 +0300)]
Merge pull request #6221 from opensourcerouting/defaults-fix-version-cmp

lib/defaults: fix version number comparison

5 years agoMerge pull request #6011 from patrasar/pim-no-msdp-group-cmd
Donald Sharp [Tue, 14 Apr 2020 12:35:09 +0000 (08:35 -0400)]
Merge pull request #6011 from patrasar/pim-no-msdp-group-cmd

pimd: added no ip msdp mesh-group <word>

5 years agodoc: update BFD debugging section 6214/head
Rafael Zalamena [Mon, 13 Apr 2020 19:34:11 +0000 (16:34 -0300)]
doc: update BFD debugging section

Show more information about BFD debug feature.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
5 years agotopotest: enable bfd debugs on all BFD tests
Rafael Zalamena [Mon, 13 Apr 2020 19:01:34 +0000 (16:01 -0300)]
topotest: enable bfd debugs on all BFD tests

Lets attempt to get the most out of the debug messages.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
5 years agobfdd: add more zebra debug messages
Rafael Zalamena [Mon, 13 Apr 2020 18:22:13 +0000 (15:22 -0300)]
bfdd: add more zebra debug messages

Uncomment old debug about relayed messages from zebra.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
5 years agobfdd: constify satostr
Rafael Zalamena [Mon, 13 Apr 2020 18:18:17 +0000 (15:18 -0300)]
bfdd: constify satostr

Detect modifications to the `sockaddr_any` struct.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
5 years agobfdd: remove time calculation debugs
Rafael Zalamena [Mon, 13 Apr 2020 18:17:31 +0000 (15:17 -0300)]
bfdd: remove time calculation debugs

These were disabled by default and not used by a long time.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
5 years agobfdd: simplify code flow
Rafael Zalamena [Mon, 13 Apr 2020 17:23:03 +0000 (14:23 -0300)]
bfdd: simplify code flow

Don't attempt to handle out-of-memory situations: XMALLOC/XCALLOC will
`assert` if there is no memory left.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
5 years agobfdd: add debug fine tuning capabilities
Rafael Zalamena [Mon, 13 Apr 2020 10:36:23 +0000 (07:36 -0300)]
bfdd: add debug fine tuning capabilities

Move most of the log messages to debug guards so they only get activated
if the user configured the proper debug level.

Current debug levels:
- Peer events.
- Zebra events.
- Network layer debugs.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
5 years agoMerge pull request #6017 from sarav511/ovrride
Donald Sharp [Tue, 14 Apr 2020 12:32:32 +0000 (08:32 -0400)]
Merge pull request #6017 from sarav511/ovrride

pimd: Join not sent within prune override time when received non local prune

5 years agoMerge pull request #6196 from dslicenc/ospf6d-brouter-loop
David Lamparter [Tue, 14 Apr 2020 12:12:17 +0000 (14:12 +0200)]
Merge pull request #6196 from dslicenc/ospf6d-brouter-loop

ospf6d: stop looping thru same Inter-Area Router LSAs

5 years agozebra: fix some coverity SA warnings 6211/head
Mark Stapp [Mon, 13 Apr 2020 14:25:48 +0000 (10:25 -0400)]
zebra: fix some coverity SA warnings

Fix several coverity scan warnings.

Signed-off-by: Mark Stapp <mjs@voltanet.io>
5 years agolib/defaults: don't use "static" in a weird way 6221/head
David Lamparter [Tue, 14 Apr 2020 11:23:57 +0000 (13:23 +0200)]
lib/defaults: don't use "static" in a weird way

This didn't break anything but it's not really correct either.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
5 years agolib/defaults: more bool confusion
David Lamparter [Tue, 14 Apr 2020 11:22:38 +0000 (13:22 +0200)]
lib/defaults: more bool confusion

Sigh.  Initializing a bool to -1 gives 1.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
5 years agoMerge pull request #5988 from xThaid/zebra_vrf_logs
David Lamparter [Tue, 14 Apr 2020 10:52:31 +0000 (12:52 +0200)]
Merge pull request #5988 from xThaid/zebra_vrf_logs

zebra: Add vrf name and id to debugs

5 years agoMerge pull request #6215 from vivek-cumulus/wtecmp_linkbw_doc
David Lamparter [Tue, 14 Apr 2020 10:45:12 +0000 (12:45 +0200)]
Merge pull request #6215 from vivek-cumulus/wtecmp_linkbw_doc

doc: Documentation for weighted ECMP and link bandwidth