Commit Graph

20865 Commits

Author SHA1 Message Date
Rafael Zalamena
f07254d0f5
Merge pull request #6951 from donaldsharp/zebra_table
zebra: Add table id to debug output
2020-08-20 14:25:14 +00:00
Rafael Zalamena
be8d09f125
Merge pull request #6924 from AnuradhaKaruppiah/mem-fixes
bgpd: fixes for problems found during EVPN fuzzing
2020-08-20 14:12:51 +00:00
Olivier Dugeon
0d174b6697 OSPFd: Correct Extended Prefix flooding for SR
PR #6416 that solves opsf crash when segment routing is restarted, introduce a
regression in Extended Prefix flooding: when segment routing prefix is modified
or removed, new segment routing prefix is no more flooded. This patch correct
this regression.

Signed-off-by: Olivier Dugeon <olivier.dugeon@orange.com>
2020-08-20 15:51:48 +02:00
Olivier Dugeon
f786c4d7c9 OSPFd: Explicit Null option for Segment-Routing
Add new option to `segment-routing prefix` command to set the
Explcit Null flag in addition to the No-PHP flag. MPLS LFIB configuration
has been also updated to take into account the Explicit Null flag.

Signed-off-by: Olivier Dugeon <olivier.dugeon@orange.com>
2020-08-20 15:51:48 +02:00
Rafael Zalamena
e99d81a374
Merge pull request #6738 from deastoe/frr-reload-log-level
tools: frr-reload: more detailed log level control
2020-08-20 13:42:34 +00:00
Olivier Dugeon
6f751f1493 ospfd: Add Segment Routing Local Block
RFC 8665 defines a Segment Routing Local Block for Adjacency SID.
This patch provides the possibility to modify the SRLB as well as
reserved the block range from the Label Manager.

 - Introduce new CLI 'segment-routing local-block'
 - Add local block to SRDB structure
 - Parse / Serialize SRLB in Router Information LSA
 - Update OSPF-SR topotest
 - Update documentation

Signed-off-by: Olivier Dugeon <olivier.dugeon@orange.com>
2020-08-20 14:37:40 +02:00
Olivier Dugeon
d81b8e0e1a ospfd: Add Label Manager for Segment Routing
Segment Routing Global Block is now using the Label Manager to reserved
label range. Label Manager connection uses the synchronous mode and dedicated
thread timer is used to establish the connection in safe manner without
blocking OSPFd is the Label Manager is not available.

Signed-off-by: Olivier Dugeon <olivier.dugeon@orange.com>
2020-08-20 14:33:00 +02:00
Rafael Zalamena
b9fb1c87c9
Merge pull request #6954 from donaldsharp/packet_detail
zebra: Limit packet dumps for received data to `detail` level
2020-08-20 10:16:59 +00:00
Renato Westphal
0d206e9d85
Merge pull request #6945 from qlyoung/nb-more-messages
More gRPC logging + errmsg for no changes
2020-08-19 20:14:05 -03:00
Renato Westphal
77463bc8a3 staticd: fix warning when creating routes without SR-TE colors
The SR-TE color YANG leaf is optional so it shouldn't be created
unconditionally (it doesn't have a default value).

Fixes warnings like this when routes are created without specifying
a SR-TE color:
STATIC: libyang: Invalid value "" in "srte-color" element.
(/frr-routing:routing/control-plane-protocols/control-plane-protocol[type='frr-s
taticd:staticd'][name='staticd'][vrf='default']/frr-staticd:staticd/route-list[p
refix='99.0.0.1/32'][afi-safi='frr-routing:ipv4-unicast']/path-list[distance='1'
]/frr-nexthops/nexthop[nh-type='ip4'][vrf='default'][gateway='192.168.1.2'][inte
rface='(null)']/srte-color)

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
2020-08-19 20:07:01 -03:00
Donald Sharp
ec64a77b33 zebra: Limit packet dumps for received data to detail level
When turning on `debug zebra packet detail` or `debug zebra packet recv detail`
only display the detailed packet dump when `detail` is added.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2020-08-19 18:33:05 -04:00
Quentin Young
5bfb669b37 lib: fill nb errmsg when no changes during prep
During the prep phase to apply a northbound commit, if no changes were
detected make sure we fill the error message buffer to explain this.

Signed-off-by: Quentin Young <qlyoung@nvidia.com>
2020-08-19 14:24:32 -04:00
Quentin Young
54c1ad9802
Merge pull request #6949 from ton31337/fix/sizeof_for_bgp_dump_attr_inbgp_attr_malformed
bgpd: Use sizeof() in bgp_dump_attr()
2020-08-19 14:00:01 -04:00
Donald Sharp
c2c02b76bc zebra: Add table id to debug output
There are a bunch of places where the table id is not being outputed
in debug messages for routing changes.  Add in the table id we
are operating on.  This is especially useful for the case where
pbr is working.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2020-08-19 13:59:29 -04:00
Martin Winter
c4006e05a1
python: Make FRR build compatible with python 2.7 and 3.x
Signed-off-by: Martin Winter <mwinter@opensourcerouting.org>
2020-08-19 19:38:28 +02:00
Mark Stapp
cfc0a51f96
Merge pull request #6939 from sworleys/NH-Vrf-Del
lib: fix crash in show nexthop when vrf deleted
2020-08-19 12:15:56 -04:00
David Schweizer
df465afea8
bgpd: documentation for bgp admin shutdown.
* Added an entry in the user documentation for the bgp shutdown cli
  command.

Signed-off-by: David Schweizer <dschweizer@opensourcerouting.org>
2020-08-19 17:31:17 +02:00
Renato Westphal
dbe45aa733
Merge pull request #6941 from donaldsharp/bgp_json_crash
bgpd: Prevent crash when displaying json of a vrf all command
2020-08-19 12:08:44 -03:00
Donatas Abraitis
99ab4d233d bgpd: Use sizeof() in bgp_dump_attr()
Missed this in 5022c8331d

Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
2020-08-19 15:57:26 +03:00
Donald Sharp
b80a2cd394
Merge pull request #6920 from opensourcerouting/nb-errors-apply-phase
lib: don't ignore error messages generated during the commit apply phase
2020-08-19 08:15:24 -04:00
Renato Westphal
4fe5bc8c62
Merge pull request #6943 from ton31337/fix/replace_sizeof_instead_of_constant_for_bgp_dump_attr
bgpd: Use sizeof() in bgp_dump_attr()
2020-08-19 07:36:13 -03:00
Quentin Young
1058646261 lib: add better zlogging to gRPC Commit RPC
Signed-off-by: Quentin Young <qlyoung@nvidia.com>
2020-08-18 16:31:03 -04:00
Stephen Worley
c40e980601 lib: fix crash in show nexthop when vrf deleted
Fix a crash where if we issue a show run after a vrf has been
deleted we would crash here due to not null checking.

Signed-off-by: Stephen Worley <sworley@cumulusnetworks.com>
2020-08-18 14:54:50 -04:00
Donatas Abraitis
5022c8331d bgpd: Use sizeof() in bgp_dump_attr()
Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
2020-08-18 21:43:07 +03:00
Donald Sharp
121067e9c5 bgpd: Prevent crash when displaying json of a vrf all command
When iterating over a `show ip bgp vrf all neighbors json` command
bgp is crashing.

The json variable was being double freed.  When freeing it, set it
to NULL and then check to make sure it exists before we free.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2020-08-18 13:54:03 -04:00
Quentin Young
f088c4e77d
Merge pull request #5702 from vishaldhingra/bgp_nb
bgpd : bgp yang definition
2020-08-18 11:50:09 -04:00
Russ White
48f8e0fdde
Merge pull request #6929 from donaldsharp/bgp_relax_do_not_do_it
bgpd: Actually respect RFC 6286 for router_id
2020-08-18 11:23:52 -04:00
Lou Berger
94133785c1
Merge pull request #6937 from donaldsharp/git_blame_can_be_awesome
*: Give git a clue about our whitespace changes
2020-08-18 11:23:06 -04:00
Quentin Young
b7d3510f2d
Merge pull request #6918 from opensourcerouting/bgp-double-statement-removal
bgpd: removal of double statement.
2020-08-18 11:11:07 -04:00
Donald Sharp
d1ddb77d72 *: Give git a clue about our whitespace changes
If you issue this command:

`git config blame.ignoreRevsFile .git-blame-ignore-revs`

Then when you do a git blame XXX, git will ignore the whitespace
changes we made in mass.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2020-08-18 07:54:07 -04:00
GalaxyGorilla
6fc9528e8b ospfd: bring back some P2P SPF interface code
In the case of P2P links it is possible to use IP unnumbered which
yields a strong dependency to the interface data for nexthop
resolution in the SPF calculations. While the SPF code strives to
be as independent of non-LSA data as possible there is no way
around here: one has to resolve the nexthop for such a special case
using the interface data.

For this purpose a new flag 'spf_root_node' is introduced to signal
that interface data can be used for P2P links. For now this flag is
always 'true' since the SPF currently always uses the calculating
node as the root node. This will change with the introduction of
TI-LFA where other nodes can be root nodes.

Signed-off-by: GalaxyGorilla <sascha@netdef.org>
2020-08-18 11:13:56 +00:00
GalaxyGorilla
3a76b1be88 ospfd: add print helper for SPF trees and route tables
Signed-off-by: GalaxyGorilla <sascha@netdef.org>
2020-08-18 10:58:50 +00:00
GalaxyGorilla
1d376ff539 ospfd: introduce a 'dry run' into SPF code
in OSPF interface data is used for the nexthop resolution
during the SPF algorithm, see RFC2328 16.1.1. However, for
certain technologies like TI-LFA it is desirable to be able
to calculate SPFs for arbitrary root nodes, not just the
calculating node. Since interface data is not available for
other nodes it is necessary to remove this dependency and
make its usage optional, depending on the intent of
changing the RIB with the generated tree (or not).

To signal that a SPF run is used without the intent to
change the RIB an additional flag `spf_dry_run` is
introduced to the ospf_area struct. This flag is currently
only used within the pure SPF code but will be extended
to the SPF postprocessing later on.

Signed-off-by: GalaxyGorilla <sascha@netdef.org>
2020-08-18 10:58:45 +00:00
Donald Sharp
b5c2113e47 bgpd: Actually respect RFC 6286 for router_id
The RFC states:
      The BGP Identifier is a 4-octet, unsigned, non-zero integer that
      should be unique within an AS.  The value of the BGP Identifier
      for a BGP speaker is determined on startup and is the same for
      every local interface and every BGP peer.

We were going slightly beyond this and ensuring that the address
was a specific range of addresses which is no longer relevant.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2020-08-17 13:52:19 -04:00
David Schweizer
1e12ebbca3
bgpd: fix for BGP instance shutdown CLI error.
* Replaced alias for bgp shutdown command with separate regular command
  to prevent internal CLI errors.

Signed-off-by: David Schweizer <dschweizer@opensourcerouting.org>
2020-08-17 17:43:57 +02:00
David Schweizer
f80e35b602
bgpd: minor fix for BGP instance shutdown.
* Fixed missing first word due to wrong start field of string
  concatenation issue.

Signed-off-by: David Schweizer <dschweizer@opensourcerouting.org>
2020-08-17 12:03:27 +02:00
David Schweizer
8389c83aa1
bgpd: enhancement of bgp administrative shutdown
* Added message to RFC 8203 peer notification about BGP instance
  shutdown.
* Added informational log message to instance shutdown enable/disable
  functions.

Signed-off-by: David Schweizer <dschweizer@opensourcerouting.org>
2020-08-17 11:45:02 +02:00
Quentin Young
e121d83163 bgpd: fix bad heap reads in type-2 nlri parsing
Various forms of corrupt packets could trigger reads of garbage heap.

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2020-08-15 08:24:59 -07:00
Quentin Young
4adddf0a29 lib: add STREAM_FORWARD_[GET|ENDP]
Safe stream macros for adjusting buffer pointers

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2020-08-15 08:24:54 -07:00
Donald Sharp
93b35ca9f8
Merge pull request #6724 from Niral-Networks/niral_dev_vrf_isis_core_pr4
ISIS VRF: Transformational changes to support different VRFs.
2020-08-15 07:16:29 -04:00
Renato Westphal
0fe5b904b7 lib: don't ignore error messages generated during the commit apply phase
While a configuration transaction can't be rejected once it reaches
the APPLY phase, we should allow NB callbacks to generate error
or warning messages when a configuration change is being applied.
That should be useful, for example, to return warnings back to
the user informing that the applied configuration has some kind of
inconsistency or is missing something in order to be effectively
activated. The infrastructure for this was already present, but the
northbound layer was ignoring all errors/warnings generated during
the apply/abort phases instead of returning them to the user. This
commit changes that.

In the gRPC plugin, extend the Commit() RPC adding a new
"error_message" field to the response type. This is necessary to
allow errors/warnings to be returned even when the commit operation
succeeds (since grpc::Status::OK doesn't support error messages
like the other status codes).

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
2020-08-14 21:37:14 -03:00
Kaushik
eab88f3655 isisd : Transformational changes to support different VRFs.
1. Created a structure "isis master".
2. All the changes are related to handle ISIS with different vrf.
3. A new variable added in structure "isis" to store the vrf name.
4. The display commands for isis is changed to support different VRFs.

Signed-off-by: Kaushik <kaushik@niralnetworks.com>
2020-08-14 13:46:22 -07:00
Quentin Young
2ed8d0249d
Merge pull request #6898 from opensourcerouting/grpc-proto-relicensing
grpc: relicense the northbound service description file
2020-08-14 14:57:12 -04:00
Donald Sharp
40ce7a4203
Merge pull request #6889 from opensourcerouting/isisd-assorted-fixes
isisd minor fixes and enhancements
2020-08-14 12:50:03 -04:00
Rafael Zalamena
fbbb4629ea
Merge pull request #6863 from donaldsharp/bfd_v6_shenanigans
bfdd: Allow it to work when V6 is completely turned off
2020-08-14 16:12:47 +00:00
vdhingra
2228b116fa bgpd: yang defination
Yang files for bgpd 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>
2020-08-14 07:44:39 -07:00
Donald Sharp
f1446f9885 bfdd: Allow it to work when V6 is completely turned off
Experimental patch to allow us to discuss if we should
allow bfdd to work when v6 is turned off in the kernel.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2020-08-14 09:20:09 -04:00
Donald Sharp
22c9bfb824
Merge pull request #6883 from pjdruddy/evpn-refactor
Evpn refactor
2020-08-14 09:02:25 -04:00
Donald Sharp
bbbfa7f77d
Merge pull request #6899 from opensourcerouting/bfd-knobs
bfdd: support passive mode and minimum TTL
2020-08-14 08:54:36 -04:00
Donald Sharp
bd28118622
Merge pull request #6914 from opensourcerouting/rmap-error-msgs
lib: show prefix error message on configuration failure
2020-08-14 08:47:19 -04:00