Commit Graph

18604 Commits

Author SHA1 Message Date
Dinesh Dutt
642b081be3
Merge pull request #1 from FRRouting/master
Merging from upstream tree
2019-08-12 06:19:54 -07:00
Mark Stapp
595ad74b77
Merge pull request #4793 from qlyoung/fix-bgp-labeled-unicast-addpath
bgpd: tx addpath info for labeled unicast
2019-08-12 08:51:36 -04:00
Donald Sharp
3a6a0888f0
Merge pull request #4817 from NaveenThanikachalam/652
bgpd: Optimizing route-map's processing of dependencies.
2019-08-12 08:45:51 -04:00
Naveen Thanikachalam
47c8fa1f87 bgpd: Optimizing route-map's processing of dependencies.
Say for eg., 256 prefix-list entries are pasted to VTYSH.
This results in BGP processing the events for several minutes.

BGPD starts a timer for 5 seconds when the first dependency configuraion
is received. On timer expiry, BGP process dependent route-maps.
After this processing, BGPD reads the configurations received in the
next 5 seconds and then re-processes the route-maps from the beginning.
This cyclic re-processing consumes time and CPU cycles.

Instead of starting a timer when the first configuration is received,
everytime a configuration is received, the existing timer is reset.
This would mean that all the configurations are read first before the timer
expires. This eliminates the cyclic re-processing.

Signed-off-by: NaveenThanikachalam nthanikachal@vmware.com
2019-08-12 00:51:46 -07:00
Naveen Thanikachalam
82cdf28d2f bgpd: Large-communities CLI accepts configurations sans attributes.
BGP large-communities configuration CLI is successful even if
the command is configured without any attributes.
For ex., the below commands are successful.
         1) "bgp large-community-list standard TEST permit"
         2) "bgp large-community-list standard TEST deny"

The CLI definitions that allow these erroneous configurations need to be removed.

Signed-off-by: NaveenThanikachalam nthanikachal@vmware.com
2019-08-11 21:41:43 -07:00
Donald Sharp
1d6358e6cb
Merge pull request #4813 from NaveenThanikachalam/604
bgpd: Standard large-communities CLI does not return error when it's configured with reg-ex.
2019-08-11 16:46:33 -04:00
Donald Sharp
269bca525d
Merge pull request #4816 from NaveenThanikachalam/610
bgpd: Assertion failed during shutdown.
2019-08-11 11:58:36 -04:00
Naveen Thanikachalam
dfb6fd1dd1 bgpd: Assertion failed during shutdown.
A race condition causes the failure.
The function "make_info()" sets the path info's peer to
bgp instance's "peer_self" which is created when BGP is first
configured and deleted only when BGP is brought down completely.
A race condition causes the bgp instances's "peer_self" to be
removed before the routes are being pulled off from the aggregate
address.

If the bgp instance's "peer_self" is NULL or, if BGP is being deleted,
the aggregate route must not be reinstalled.

Signed-off-by: NaveenThanikachalam nthanikachal@vmware.com
2019-08-11 03:56:12 -07:00
Naveen Thanikachalam
6aee38481a bgpd: Standard large-communities CLI does not return error when it's configured with reg-ex.
The CLI to configure the standard format large-communities attribute
accepts regular expressions as well.
For ex., the below configuration is accepted.
         "bgp large-community-list standard TEST permit 1:1 100:*"

The code to parse the large-communities does identify the configuration
as invalid however, error returned isn't processed.
The code has to be modified to handle the error.

Signed-off-by: NaveenThanikachalam nthanikachal@vmware.com
2019-08-11 00:29:32 -07:00
Donald Sharp
ab0ef7a392
Merge pull request #4803 from ddutt/master
Support for display of received and advertised EVPN routes from neigh…
2019-08-10 15:41:18 -04:00
Donald Sharp
ba5d0acfc0
Merge pull request #4811 from adharkar/frr-master-rtm_vni
Zebra: Incorrect L3VNI for FPM rtmsg for EVPN RT-5 prefix
2019-08-09 20:39:34 -04:00
Ameya Dharkar
cc83907475 Zebra: Incorrect L3VNI for FPM rtmsg for EVPN RT-5 prefix
We used the vrf_id in the rtm_table field of the netlink rtmsg to fetch L3VNI.
But, now we program table_id to rtm_table field instead of vrf_id.
Thus, L3VNI fetched using rtm_table is incorrect.

Instead, use nexthop->vrf_id to fetch the L3VNI.

Signed-off-by: Ameya Dharkar <adharkar@vmware.com>
2019-08-09 15:23:46 -07:00
Russ White
fbae9087cd
Merge pull request #4806 from chiragshah6/evpn_dev1
zebra: fix advertise svi ip as macip route
2019-08-09 07:32:57 -04:00
Chirag Shah
838cef6d7e zebra: fix advertise svi ip as macip route
PR #3745 added EVPN feature to advertise individual
SVI-IPs as MAC-IP routes.
Fix a condition in zebra to send MAC and IP pair
to bgpd when the feature is enabled.

Testing Done:

Originator VTEP:
TORC11:~# ip -br addr show VxU-1002
VxU-1002         UP             45.0.2.2/24 2001:fee1:0:2::2/64

show bgp l2vpn evpn vni 1004
VNI: 1004 (known to the kernel)
  Type: L2
  Tenant-Vrf: default
  RD: 27.0.0.11:3
  Advertise-svi-macip : Yes
  Import Route Target:
    10:1004
  Export Route Target:
    10:1004

Remote vtep evpn route output for 45.0.4.2:

BGP routing table entry for 27.0.0.11:3:[2]:[0]:[48]:[00:02:00:00:00:2f]:[32]:[45.0.4.2]
Paths: (2 available, best #1)
  Advertised to non peer-group peers:
  MSP1(uplink-1) MSP2(uplink-2)
  Route [2]:[0]:[48]:[00:02:00:00:00:2f]:[32]:[45.0.4.2] VNI 1004
  64435 65546
    36.0.0.11 from MSP1(uplink-1) (27.0.0.9)
      Origin IGP, valid, external, bestpath-from-AS 64435, best (First path received)
      Extended Community: RT:10:1004 ET:8
      Last update: Thu Aug  8 18:09:13 2019

Signed-off-by: Chirag Shah <chirag@cumulusnetworks.com>
2019-08-08 12:01:19 -07:00
Sri Mohana Singamsetty
3af7a9e92f
Merge pull request #4724 from satheeshkarra/pim_fixes
pimd: NH Updates are missing at PIM during boot up
2019-08-08 09:57:18 -07:00
Michal Ruprich
0513a27153 ospfd,ripd: Enabling build with openssl
Enabling openssl library for md5 authentication in RIP and OSPF

Signed-off-by: Michal Ruprich <michalruprich@gmail.com>
2019-08-08 16:03:20 +02:00
Donald Sharp
76eb017923
Merge pull request #4497 from opensourcerouting/rcu
RCU support
2019-08-08 08:41:07 -04:00
Dinesh Dutt
dcc1615e1b bgpd: Display received and advertised EVPN routes from neighbors
"show bgp l2vpn evpn neighbors <neighbor> [advertised-routes|routes]' did
not work due to various bugs. First, the command only accepted IPv4
addresses as valid neighbor ID, thereby rejecting unnumbered BGP and IPv6
neighbor address. Second, the SAFI was hardcoded to MPLS_VPN even though
we were passing the safi. Third, "all" made no sense in the command context
and to make the command uniform across all address families, I removed the
"all" keyword from the command.

Signed-off-by: Dinesh G Dutt <ddps4u@gmail.com>
2019-08-08 04:17:26 +00:00
Donald Sharp
a6e85307c3 staticd: Fix blackhole routes being installed
When we are ready to install a route, we were treating
blackhole routes as something that should be nexthop tracked
which does not work as well as one would expect.

Additionally add some test code to show that this actually
fixes this issue.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2019-08-07 21:55:23 -04:00
Donald Sharp
3a738964ec
Merge pull request #4763 from opensourcerouting/ds-work
lib: get rid of pqueue_*, use DECLARE_HEAP in thread.c
2019-08-07 16:45:02 -04:00
Donald Sharp
94a01fb26e zebra: Allow v4 or v6 addresses to be optional after vrf X in show ip nht
The `show ip nht vrf EVA ...` command was not allowing you to only
specify the vrf anymore.  Fix this:

robot# show ip nht vrf EVA
  <cr>
  A.B.C.D   IPv4 Address
  X:X::X:X  IPv6 Address
robot# show ip nht vrf EVA 4.5.6.7
robot# show ip nht vrf EVA
robot#

Ticket: CM-25831
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2019-08-07 15:02:43 -04:00
Donald Sharp
88a3b65e19 eigrpd: When iterating over all eigrp instances, narrow to correct vrf
When iterating over all eigrp instances, narrow to the correct
vrf that we are working on.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2019-08-06 22:47:40 -03:00
Donald Sharp
4174743969 doc: Update eigrp documentation
Update the eigrp documentation to reflect the new vrf sub-commands.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2019-08-06 22:47:19 -03:00
Donald Sharp
cae06ae04a eigrpd: Convert cli to be able to use [vrf NAME]
Modify the cli to allow us to specify the [vrf NAME]
and also get rid of the usages of VRF_DEFAULT that we can.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2019-08-06 22:47:03 -03:00
Donald Sharp
e78ebbd5c3 eigrpd: Convert eigrp_packet.c to not use VRF_DEFAULT
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2019-08-06 22:42:31 -03:00
Donald Sharp
d0ac2662ac eigrpd: Convert eigrp_network.c to not use VRF_DEFAULT
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2019-08-06 22:42:20 -03:00
Donald Sharp
4cfff48a25 eigrpd: Update eigrp_filter.c to use VRF_DEFAULT
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2019-08-06 22:42:12 -03:00
Donald Sharp
2d4592e4c3 eigrpd: Convert eigrp_hello.c to not use VRF_DEFAULT
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2019-08-06 22:42:05 -03:00
Donald Sharp
2ea6b572b5 eigrpd: Convert eigrp_neighor.c to not use VRF_DEFAULT
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2019-08-06 22:41:54 -03:00
Donald Sharp
17c0e58653 eigrpd: Remove VRF_DEFAULT from eigrp_fsm.c
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2019-08-06 22:41:46 -03:00
Donald Sharp
0da93ecfd7 eigrpd: Update eigrp_topology.c to not use VRF_DEFAULT
Push out the pass in of struct eigrp to all functions
in eigrp_topology.c so we do not lookup the eigrp pointer.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2019-08-06 22:41:37 -03:00
Donald Sharp
0e64ed0228 eigrpd: Convert eigrp_zebra.c to use appropriate vrf_id
Use the appropriate vrf_id in eigrp_zebra based off of the
struct eigrp *eigrp.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2019-08-06 22:41:28 -03:00
Donald Sharp
e944996140 eigrpd: Add router eigrp AS [vrf NAME] and various stuff
Add the ability to parse `router eigrp AS [vrf NAME]` and
modify eigrp_lookup to actually handle a vrf_id for us.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2019-08-06 22:41:05 -03:00
Donald Sharp
128ed7604d eigrpd: Create a socket per vrf for communication
Setup EIGRP to use a socket per vrf for communication
amongst it's peers.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2019-08-06 21:45:14 -03:00
Donald Sharp
c20fa244a1 eigrpd: Add various vrf handling functions
Basic enable/disable/add/delete vrf handling functions.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2019-08-06 21:26:47 -03:00
Donald Sharp
daa64bdf49 eigrpd: Use the eigrp->vrf_id where we can immediately transform
For those places where we can immediately transform the usage
of VRF_DEFAULT to eigrp->vrf_id do so.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2019-08-06 21:26:23 -03:00
Donald Sharp
c371cd6bf0 eigrpd: Add vrf_id to struct eigrp
Initial setup of adding a vrf_id to the `struct eigrp`.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2019-08-06 21:10:02 -03:00
Donald Sharp
1825b8a216
Merge pull request #4781 from opensourcerouting/eigrpd-northbound
eigrpd: migrate to northbound
2019-08-06 19:38:30 -04:00
Quentin Young
ec15e1b588 bgpd: tx addpath info for labeled unicast
Labeled unicast needs path IDs too!

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2019-08-06 21:46:46 +00:00
Quentin Young
edc2457546
Merge pull request #4792 from opensourcerouting/doc_libcap
doc: suggest the installation of the libcap development library
2019-08-06 15:51:30 -04:00
Quentin Young
e2573d34b2
Merge pull request #4791 from mjstapp/fix_doc_te_limits
docs: Add notes about limited MPLS-TE support
2019-08-06 15:50:24 -04:00
Mark Stapp
85400b29ac docs: Add notes about limited MPLS-TE support
Add notes to several docs about the limits to FRR's current
MPLS-TE support, which is limited to some routing protocol
LSA/TLV support. It wasn't very clear that FRR does not offer
a complete TE/RSVP-TE solution at this time.

Also removed some stale info about configure script options.

Signed-off-by: Mark Stapp <mjs@voltanet.io>
2019-08-06 15:47:36 -04:00
Renato Westphal
4d50168e02 doc: suggest the installation of the libcap development library
All FRR Linux packages are built using libcap-dev (or libcap-devel)
installed in the system. Update the build instructions to suggest
FRR developers to do the same. The main motivation for this is that
the seteuid() system call is too expensive and overall less secure
compared to using the Linux capabilities framework.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
2019-08-06 15:53:42 -03:00
Quentin Young
3c1c172f02
Merge pull request #4790 from opensourcerouting/ctype-cast
*: fix ctype casts
2019-08-06 13:21:13 -04:00
David Lamparter
31140be108 debian: add .gitignore file
Ignore the build results when dpkg-buildpackage was run in the source
directory.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2019-08-06 16:56:15 +02:00
David Lamparter
fefa5e0ff5 *: fix ctype (isalpha & co.) casts
The correct cast for these is (unsigned char), because "char" could be
signed and thus have some negative value.  isalpha & co. expect an int
arg that is positive, i.e. 0-255.  So we need to cast to (unsigned char)
when calling any of these.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2019-08-06 16:54:52 +02:00
David Lamparter
c8ec87df6e
all: remove logical-router functionality (#4774)
all: remove logical-router functionality
2019-08-06 16:45:56 +02:00
Donald Sharp
7040d52aaf
Merge pull request #4776 from pogojotz/write-config-fix
Replace internal linked-list in vtysh_config with RB-tree
2019-08-06 09:58:42 -04:00
Russ White
112fed90ed
Merge pull request #4733 from opensourcerouting/route-map-yang
yang: models for route map and filters
2019-08-06 09:20:37 -04:00
Russ White
1437a72108
Merge pull request #4742 from opensourcerouting/ospfd-default-originate
ospfd: fix & clean up default origination
2019-08-06 08:26:54 -04:00