Commit Graph

18880 Commits

Author SHA1 Message Date
Donatas Abraitis
e2521429a6 bgpd: Use readable macros for peer->gtsm_hops instead of literals
Do the same way like BGP_DEFAULT_TTL

Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
2020-02-10 16:23:09 +02:00
Karen Schoener
b290da1d44 tests: Fix LDP topotest to validate MPLS LDP CLI output
Fixing existing ldp-topol test to validate MPLS LDP CLI output.

Signed-off-by: Karen Schoener <karen@voltanet.io>
2020-02-10 08:39:06 -05:00
Donatas Abraitis
9da3d9f176 Merge pull request #5772 from adharkar/frr-master-ipv6_nexthop
bgpd: EVPN crash because of incorrect nexthop for IPv6 prefix
2020-02-10 11:09:32 +02:00
Donatas Abraitis
95f7965d09 *: Remove parenthesis on return for constants
Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
2020-02-09 14:21:56 +02:00
Donatas Abraitis
5f1032f291 tools: Add coccinelle script to remove parenthesis on return
Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
2020-02-09 14:21:36 +02:00
Donatas Abraitis
ed7dd81c68 Merge pull request #5781 from LabNConsulting/working/master/tt-catch-notifications
topotest: bgp_l3vpn_to_bgp_vrf - report unexpected BGP notifications
2020-02-09 09:12:05 +02:00
Lou Berger
f2ebe24292 topotest: bgp_l3vpn_to_bgp_vrf - report unexpected BGP notifications
Signed-off-by: Lou Berger <lberger@labn.net>
2020-02-08 10:36:49 -05:00
Chirag Shah
256f86b655 zebra:remote vtep delete handling
The existing behavior is when a remote VTEP is deleted,
its associatedneighbor (arp) and MAC entries are removed from
zebra database and do not wait for explicit type-2 route
withdraw from originating VTEP.
Remote type-2 route delete checks if VTEP is present before
removing the entry.
The behavior works fine when all evpn routes points to the
same nexthop as the VTEP IP.

In MLAG topology with advertise-pip, self type-2 and type-5 routes
are advertised with individual VTEP IP as nexthop ip for the route.

When a new VNI is created, it is assigned individual IP as tunnel-ip
then it transition to anycast IP (of the MLAG). During the transition,
type-3 route (VTEP delete) withdraw is sent for the individual IP.
The remote VTEP delete should not trigger to remove evpn routes pointing
to VTEP IP. Instead the route will be removed via explicit withdraw.

Ticket:CM-27752
Reviewed By:CCR-9722
Testing Done:

In evpn with MLAG deployment with advertise-pip and advertise-svi-ip
enabled, validated remote vtep delete does not remove self type-2 routes
from zebra DB. Upon explicit type-2 withdraw routes are removed.

Signed-off-by: Chirag Shah <chirag@cumulusnetworks.com>
2020-02-07 17:02:39 -08:00
Donatas Abraitis
835e9c5d51 doc: Add few words about bgp disable-ebgp-connected-route-check
Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
2020-02-07 20:57:52 +02:00
Ameya Dharkar
4e72ff729d bgpd: EVPN crash because of incorrect nexthop for IPv6 prefix
RCA:
When we install IPv6 prefix imported from EVPN RT-5 in vrf, nexthop of the IPv6
route should be IPv4 mapped IPv6 address. In function
install_evpn_route_entry_in_vrf, we generate a new attribute with IPv4 mapped
IPv6 nexthop, but we use parent->attr while creating the actual route.
Thus, Ipv4 nexthop is assigned to this route.
Because of this incorrect nexthop, we observed a crash in function
update_ipv6nh_for_route_install.

Fix:
Pass the new attribute with Ipv4 mapped Ipv6 nexthop to
bgp_create_evpn_bgp_path_info

Signed-off-by: Ameya Dharkar <adharkar@vmware.com>
2020-02-06 13:51:46 -08:00
Donatas Abraitis
892fedb611 bgpd: Replace bgp_flag_* to [UN]SET/CHECK_FLAG macros
Most of the code uses macros, thus let's keep the code unified.

Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
2020-02-06 17:11:38 +02:00
Donatas Abraitis
b7c4949184 tools: Add coccinelle script to replace all bgp_flag_* functions
Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
2020-02-06 16:24:22 +02:00
Donald Sharp
8c5c49ace8 bgpd: Cleanup compile error?
For some reason we are getting a compile error around a variable I didn't
touch in the other commits.  Make it happy.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2020-02-06 08:23:13 -05:00
Russ White
5bf7fe566d
Merge pull request #5722 from donaldsharp/kernel_routes
Kernel routes
2020-02-06 08:04:42 -05:00
Donald Sharp
36955f90e3
Merge pull request #5767 from ton31337/fix/replace_s_addr_0_to_INADDR_ANY
MOAR CODE NAZI: replace s_addr 0 => INADDR_ANY
2020-02-06 07:30:21 -05:00
Donald Sharp
49fbe06640
Merge pull request #5765 from Spantik/bugs
OSPF: Multi instance broken
2020-02-06 07:27:27 -05:00
Donald Sharp
c4fb250491 bgpd: Fix up some poor formatting
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2020-02-06 07:24:53 -05:00
Donald Sharp
e26c305530 bgpd: Store data in final temp variable
There is no need to have a temp variable to then store that
data in another temporary variable.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2020-02-06 07:24:53 -05:00
Donald Sharp
af34d2da11 bgpd: bgp_nexthop_self optimize afi and new_afi handling
The new_afi and afi were being used over and over.  Switch
to the end result we want and just use that from the get go.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2020-02-06 07:24:53 -05:00
Donald Sharp
2ec802d173 bgpd: Remove prefix pointer creation
The creation of a prefix pointer is unnecessary.  Save the
prefix as part of the actual data structure.  This will
reduce the data needed by 8 bytes per nexthop stored.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2020-02-06 07:24:53 -05:00
Donald Sharp
e61f7c0a10 bgpd: show martian nexthops improve code flow
The show martian nexthops command for bgp had some strangely
duplicated code.  Refactor.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2020-02-06 07:24:53 -05:00
Donatas Abraitis
5fc7946dd7 tools: Add coccinelle script to replace s_addr 0 to INADDR_ANY
Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
2020-02-06 09:00:13 +02:00
Donatas Abraitis
975a328e2e *: Replace s_addr 0 => INADDR_ANY
Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
2020-02-06 09:00:12 +02:00
Donatas Abraitis
85c58de773
Merge pull request #5761 from qlyoung/fix-bgp-gr-cruft
Fix bgp gr style
2020-02-06 08:16:25 +02:00
Santosh P K
128f16f90e OSPF: Multi instance broken
Multi instance ospf support was broken due to PR #4564.
Adding fix back and extra checks to support multi instance
OSPF.

Fixes issues #5343 & #5741

Signed-off-by: Santosh P K <sapk@vmware.com>
2020-02-05 09:44:49 -08:00
Donald Sharp
792465c09f
Merge pull request #5104 from opensourcerouting/route-map-nbv2
lib: migrate route map to use northbound
2020-02-05 11:54:21 -05:00
Rafael Zalamena
7966110676 lib: fix route-map YANG module on old gcc versions
Copy the fix made in 'lib/if.c' to 'lib/routemap_northbound.c' so we can
have a working YANG model when compiled with GCC version less than 5.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2020-02-05 11:09:31 -03:00
Donatas Abraitis
4ba5a9c55f bgpd: Update some attributes how they are handled if malformed
According to https://tools.ietf.org/html/rfc7606 some of the attributes
MUST be handled as "treat-as-withdraw" approach.

Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
2020-02-05 11:01:39 +02:00
Renato Westphal
75995e4348
Merge pull request #5758 from sworleys/Doc-No-Pbr-Dyn-Rules
doc: indicate non-support for dynamic pbr maps
2020-02-05 01:50:19 -03:00
Renato Westphal
ecaeb3b697
Merge pull request #5750 from qlyoung/fix-null-after-xfree
*: don't null after XFREE; XFREE does this itself
2020-02-05 01:49:08 -03:00
Renato Westphal
8f6ebcbeb2
Merge pull request #5760 from ton31337/fix/shorthand_operator
zebra: Use shorthand operator in ifm_read()
2020-02-05 01:45:55 -03:00
Quentin Young
03ed0334e8
Merge pull request #5717 from pguibert6WIND/flowspec_issue_redistribute
Flowspec issue redistribute
2020-02-04 15:48:24 -05:00
Quentin Young
8b457c7ba7
Merge pull request #5759 from ton31337/fix/void_no_return
zebra, lib: Remove return from void functions
2020-02-04 15:45:01 -05:00
Quentin Young
362353195a bgpd, lib: fix style from BGP GR code
This patch fixes the noncompliant style for the following commit range:

4a6e80fbf
2ba1fe695
efcb2ebbb
8c48b3b69
dc95985fe
0f0444fbd
85ef4179a
eb451ee58
2d3dd828d
9e3b51a7f
d6e3c15b6
34aa74486
6102cb7fe
d7b3cda6f
2bb5d39b1
5f9c1aa29
5cce3f054
3a75afa4b
f009ff269
cfd47646b
2986cac29
055679e91
034e185dc
794b37d52
b0965c44e
949b0f24f
63696f1d8

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2020-02-04 15:19:04 -05:00
Quentin Young
36e8dd8afb bgpd: use _RO list iter variant for gr macro
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2020-02-04 15:10:54 -05:00
Quentin Young
e1b36e132b *: remove null check before XFREE
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2020-02-04 13:19:37 -05:00
Donatas Abraitis
b49a912271 zebra: Use shorthand operator in ifm_read()
Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
2020-02-04 20:12:17 +02:00
Donatas Abraitis
c33b17feb1 tools: Add coccinelle script to check if we use shorthand operators
Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
2020-02-04 20:08:50 +02:00
Donatas Abraitis
1cb17e8101 tools: Add coccinelle script to check if void does not have return
Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
2020-02-04 20:07:17 +02:00
Donatas Abraitis
5ee080f00a zebra, lib: Remove return from void functions
Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
2020-02-04 20:05:21 +02:00
Rafael Zalamena
54a35ff48b lib: fix route map northbound memory leak
Keep a list of hook contexts used by northbound so we don't lose the
pointer when free()ing the route map index entry data.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2020-02-04 14:05:43 -03:00
Rafael Zalamena
91835f1fd2 *: fix route map integration
Add the appropriated code to bootstrap route map northbound for all
daemons.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2020-02-04 14:05:43 -03:00
Rafael Zalamena
e324ef433c lib: add backward compatibility for route map
Allow old CLI users to still print their configuration without migrating
to northbound.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2020-02-04 14:05:43 -03:00
Rafael Zalamena
a162869ef0 lib: fix route map generic error output
Two fixes here:

*   Don't attempt to use `vty` pointer in vty;
*   When `vty` is unavailable output to log;

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2020-02-04 14:05:43 -03:00
Rafael Zalamena
a513824c34 yang/lib: add filter model to code
This fixes a warning on daemons that use route map about filter yang
model not being included in the binary.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2020-02-04 14:05:43 -03:00
Rafael Zalamena
2b3e4807ec lib: implement new route map CLI
Use the northbound back-end instead of the old route map CLI.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2020-02-04 14:05:43 -03:00
Rafael Zalamena
686d244f00 lib: implement route map northbound
Based on the route map old CLI, implement the route map handling using
the exported functions.

Use a curry-like programming pattern avoid code repetition when
destroying match/set entries. This is needed by other daemons that
implement custom route map functions and need to pass to lib their
specific destroy functions.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2020-02-04 14:05:43 -03:00
Rafael Zalamena
a7282663ef lib: export route map structures and functions
These exported items are going to be used by the new northbound CLI.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2020-02-04 14:05:43 -03:00
Rafael Zalamena
0c0e73045b yang: update route map model
Important changes:

  * Rename top container `route-map` to `lib`;
  * Rename list `instance` to `route-map`;
  * Move route map repeated data to list `entry`;
  * Use interface reference instead of typedef'ed string;
  * Remove some zebra specific route map conditions;
  * Protect `tag` set value with `when "./action = 'tag'"`;

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2020-02-04 14:05:43 -03:00
Quentin Young
0445dc7d4e
Merge pull request #5169 from ton31337/feature/sequence_numbers_for_community_lists
bgpd: Use sequence numbers for community lists
2020-02-04 11:56:29 -05:00