Commit Graph

16719 Commits

Author SHA1 Message Date
David Lamparter
6d8b1331f0
Merge pull request #4785 from mjstapp/fix_notif_queued_flag
zebra: clear route QUEUED flag in async notification handler
2019-08-06 11:03:48 +02:00
David Lamparter
3e39ab23a8 Merge pull request #4777 ("Fix VRRP rarely getting stuck in Initialize")
... with a one-char typo fix.

Signed-off-by: David Lamparter <equinox@diac24.net>
2019-08-06 10:52:30 +02:00
David Lamparter
7913714e89 zebra: fix typo
Signed-off-by: David Lamparter <equinox@diac24.net>
2019-08-06 10:52:07 +02:00
David Lamparter
ba7bff1150
bgpd: resolve memleak on show bgp vrf all ipv6 unicast summary… (#4772)
bgpd: resolve memleak on show bgp vrf all ipv6 unicast summary json
2019-08-06 10:49:09 +02:00
Quentin Young
8c79e94636
Merge pull request #4705 from ton31337/fix/set_comm-list_delete_into_config
bgpd: Strip `delete` keyword when looking up for large communities
2019-08-05 16:53:45 -04:00
Quentin Young
c257cce4d6 vrrpd: eliminate potential null deref
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2019-08-05 16:24:45 +00:00
Mark Stapp
272e89030e zebra: clear route QUEUED flag in async notification handler
Ensure that the route-entry QUEUED flag is cleared in the async
notification path, as it is in the normal results processing
code path.

Signed-off-by: Mark Stapp <mjs@voltanet.io>
2019-08-05 10:52:31 -04:00
Don Slice
3c13337daa bgpd: simplify json create/free for memleak fix
Ticket: CM-25616
Signed-off-by: Don Slice <dslice@cumulusnetworks.com>
2019-08-05 05:53:13 -07:00
Mark Stapp
c0b5769ec3
Merge pull request #4779 from donaldsharp/sharp_repeat_fix
sharpd: Fix repeat sub-command to work
2019-08-05 08:40:10 -04:00
Donald Sharp
f54f37c19f sharpd: Fix repeat sub-command to work
The repeat sub-command was not properly repeating.  It was starting
the removal during the install:

2019/08/03 00:10:14.351 SHARP: Inserting 300000 routes
2019/08/03 00:13:01.556 SHARP: Installed All Items 167.204747
2019/08/03 00:13:01.556 SHARP: Removing 300000 routes
2019/08/03 00:13:03.126 SHARP: Inserting 300000 routes
2019/08/03 00:14:34.794 SHARP: Removed all Items 91.668040
2019/08/03 00:16:11.743 SHARP: Installed All Items 188.616462
2019/08/03 00:16:11.743 SHARP: Removing 300000 routes
2019/08/03 00:16:14.256 SHARP: Inserting 300000 routes

This command allows the remove to wait till the install is fully
finished and vice versa:

2019/08/03 00:22:54 SHARP: Inserting 10000 routes
2019/08/03 00:22:55 SHARP: Installed All Items 0.572028
2019/08/03 00:22:55 SHARP: Removing 10000 routes
2019/08/03 00:22:55 SHARP: Removed all Items 0.568284
2019/08/03 00:22:55 SHARP: Inserting 10000 routes
2019/08/03 00:22:56 SHARP: Installed All Items 0.567687
2019/08/03 00:22:56 SHARP: Removing 10000 routes
2019/08/03 00:22:56 SHARP: Removed all Items 0.551011

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2019-08-02 20:35:16 -04:00
Sri Mohana Singamsetty
24cffc55c0
Merge pull request #4752 from chiragshah6/evpn_dev1
zebra: del auto mac when vni is down
2019-08-02 15:56:57 -07:00
Mark Stapp
1f6d307d35
Merge pull request #4775 from sworleys/Log-Double-Unlock
lib: Remove double log mutex unlock
2019-08-02 13:33:18 -04:00
Quentin Young
2e3d75646e vrrpd: try to bind interfaces on if_down notifications
Normally we only opportunistically try to bind interfaces to VRRP
instances upon getting if_add and if_up notifications; now that Zebra
sends if_down notifications when interfaces change while they are down,
we should try to bind when we get those as well.

This solves a bug where VRRP would not bind and activate virtual routers
to valid interfaces because their MACs were changed to VRRP macs while
the interface was down.

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2019-08-02 17:26:05 +00:00
Quentin Young
6f908ded80 zebra: send interface updates when down
When interfaces change while they are up, Zebra sends if_up
notifications with the updated interface info. Change Zebra to send
if_down notifications with interface info when the interface changes
while it is down.

VRRP, at the least, needs these to know about MAC changes while an
interface is down.

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2019-08-02 17:20:45 +00:00
Quentin Young
76bcde9e5d vrrpd: add more dbg logs around interfaces
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2019-08-02 17:20:44 +00:00
Stephen Worley
00a7f422c3 lib: Remove double log mutex unlock
Coverity report caught this log mutex being unlocked twice.
Removing the extra one before the goto statement.

Signed-off-by: Stephen Worley <sworley@cumulusnetworks.com>
2019-08-02 11:15:10 -04:00
Don Slice
f86897b945 bgpd: resolve memleak on show bgp vrf all ipv6 unicast summary json
Problem reported with memory leak when the command "show bgp vrf all
ipv6 unicast summary json" is issued.  Found that the problem only
occurs if the configuration does not actually include the ipv6
address-family but does contain ipv4 unicast peers. If we didn't
match a peer in the address-family being displayed, we would create
the json object but never free it.  This fix actually stops creating
the json object in this section of code and lets the create happen
in the area where the match occurs.

Ticket: CM-25616
Signed-off-by: Don Slice <dslice@cumulusnetworks.com>
2019-08-02 04:50:46 -07:00
Mark Stapp
daeca91f7c
Merge pull request #4766 from donaldsharp/redist_small_fix
zebra: Redistribution should be told about the old route
2019-08-02 07:44:31 -04:00
Sri Mohana Singamsetty
b7655d8476
Merge pull request #4713 from ton31337/fix/set_comm-list_delete_into_config_memcpy
bgpd: Strip `delete` keyword when looking up for communities
2019-08-01 21:19:43 -07:00
Donald Sharp
228a811a2e zebra: Redistribution should be told about the old route
When we are sending a redistribute_update, pass the old_re in
so that if we still have it around we can update the calling protocol.

Test:

router ospf
  redistribute sharp
!

sharp install route 4.5.6.7 nexthop 192.168.201.1 1

Now add a `ip route 4.5.6.7/32 192.168.201.1`.
This causes zebra to replace the sharp route with the static route.
No update is sent to ospf and debug:
2019/08/01 19:02:38.271998 ZEBRA: 0:4.5.6.7/32: Redist update re 0x12fdbda0 (static), old 0x0 (None)

With fix:

2019/08/01 19:15:09.644499 ZEBRA: 0:4.5.6.7/32: Redist update re 0x1ba5bce0 (static), old 0x1beea4e0 (sharp)
2019/08/01 19:15:09.645462 OSPF: ospf_zebra_read_route: from client sharp: vrf_id 0, p 4.5.6.7/32

Ticket: CM-25847
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2019-08-01 19:09:59 -04:00
Renato Westphal
cf347baaef
Merge pull request #4672 from abrahambinu83/ldp_label_release
ldpd: Fix to release MPLS label if its not used anymore
2019-08-01 19:05:12 -03:00
Chirag Shah
6041b6864d zebra: del auto mac when vni is down
Delete an auto MAC with no neighbor associated,
when its VNI is down.

In Following sequence stale MAC entry retained in
FRR (zebra).
- Local MAC-IP pair
- MAC is deleted in bridge fdb table
- VNI is down, triggers IP (neigh) entries removed
from FRR DB.
- MAC retained as AUTO MAC with neigh list count 0.
- When VNI is UP again, stale MAC entry retained in FRR
DB.
When the MAC-IP pair moves behind remote VTEP, local VTEP
fails to add remote entry as its MAC is in auto state.

Ticket:CM-25504
Reviewed By:
Testing Done:

Validated the sequence with fix and auto MAC is deleted
when VNI is down.
When VNI comes up, the remote MAC-IP is added to FRR (Zebra)
and kernel.

Signed-off-by: Chirag Shah <chirag@cumulusnetworks.com>
2019-08-01 13:21:01 -07:00
Chirag Shah
27547880d4 zebra: add info evpn to debugs
Add info info in local mac del debug,
the local sequence and assoicated neigh count.

remote_mac_ip_add modify debug to display
flags value to cover local, remote and auto flags
for the MAC.

Signed-off-by: Chirag Shah <chirag@cumulusnetworks.com>
2019-08-01 13:21:00 -07:00
Mark Stapp
b4898b83bb
Merge pull request #4764 from donaldsharp/doc_v6_doc
doc: Add warning to doc about v6 ecmp route deletion
2019-08-01 14:50:12 -04:00
Donald Sharp
d864f2b43f doc: Add warning to doc about v6 ecmp route deletion
Add a warning to the user documentation about v6 ecmp route
deletion and what version of the linux kernel that you should
be using.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2019-08-01 12:53:15 -04:00
Mark Stapp
bc86a2665a
Merge pull request #4760 from chiragshah6/evpn_dev2
zebra: fix evpn dad clear cmd mac parsing
2019-08-01 12:24:30 -04:00
David Lamparter
b21ea71ea9
Merge pull request #4758 from donaldsharp/test_epoch
tests: Do not use peerUptime as a measure of if a clear worked
2019-08-01 17:07:43 +02:00
Renato Westphal
7a1872316b
Merge pull request #4757 from donaldsharp/import_check_fixup
Import check fixup
2019-08-01 11:40:52 -03:00
David Lamparter
2e2094b7d2
Merge pull request #4723 from sworleys/List-Del-API
List API add const and return object on `*_del`
2019-08-01 16:31:09 +02:00
Donatas Abraitis
ec3b947f6e
Merge pull request #4755 from donaldsharp/ospf_router_id_doc
doc: Fix ospf router-id doc suggestion
2019-08-01 10:30:59 +03:00
Chirag Shah
155b4398b4 zebra: fix evpn dad clear cmd mac parsing
The changes came as part of PR #4730, checks
only variable mac, which is never null. Even
for ip version of cli hits "mac" case statement
and failing the clear cli.

Testing Done:

Before Fix:

VTEP-03# show evpn arp-cache vni 1002 duplicate
VNI 1002 #ARP (IPv4 and IPv6, local and remote) 1

IP                        Type   State    MAC               Remote VTEP
Seq #'s
11.11.11.11               remote active   aa:22:aa:aa:aa:aa 27.0.0.16
7/8

VTEP-03# clear evpn dup-addr vni 1002 ip 11.11.11.11
% Requested MAC does not exist in VNI 1002

Post fix:

VTEP-03# clear evpn dup-addr vni 1002 ip 11.11.11.11
VTEP-03#

VTEP-03# show evpn mac vni all duplicat
VNI 1002 #MACs (local and remote) 1

MAC               Type   Intf/Remote VTEP      VLAN  Seq #'s
aa:aa:aa:aa:aa:aa remote 27.0.0.16                   7/8

Post fix:

VTEP-03# clear evpn dup-addr vni 1002 mac aa:aa:aa:aa:aa:aa
VTEP-03#

VTEP-03# clear evpn dup-addr vni 1002 ip 11.11.11.11
VTEP-03#

Signed-off-by: Chirag Shah <chirag@cumulusnetworks.com>
2019-07-31 14:09:08 -07:00
Mark Stapp
354bed3a2e
Merge pull request #4690 from donaldsharp/staticstuff
Improve staticd handling of nexthops and nht to improve scale
2019-07-31 14:38:00 -04:00
Donald Sharp
64f598fd28
Merge pull request #4754 from opensourcerouting/gen-northbound-improvements
tools: improve gen_northbound_callbacks
2019-07-31 14:28:45 -04:00
Donald Sharp
abdb6bcebd tests: Do not use peerUptime as a measure of if a clear worked
The peerUptime data received from a `show bgp ipv4 uni summ json`
gives you the time in seconds since the peer has come up.
The clear_bgp_and_verify function is checking the peerUptime
for before and after and if they are the same then the test
was declaring a clear failure.

The problem with this is of course that the tests can run fast
enough that the peerUptime is the same for before and after the clear.

Modify the test case to use peerUptimeEstablishedEpoch.
This value is the seconds since the epoch since the establishment
of the peer.  This will allow us to know that a clear happened.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2019-07-31 12:33:55 -04:00
Stephen Worley
0ca16c58a8 lib: Add const to _count() in new list APIs
Add const to the datastructure being passed to the new list APIs
for the `_count()` calls.

Signed-off-by: Stephen Worley <sworley@cumulusnetworks.com>
2019-07-31 11:35:21 -04:00
Stephen Worley
571a045bdf lib: Add identifiers to RB declarations
Checkpatch was complaining about the lack of identifiers here, so
added some.

Signed-off-by: Stephen Worley <sworley@cumulusnetworks.com>
2019-07-31 11:35:21 -04:00
Stephen Worley
7de7c75b29 tests: Add asserts to check return on list *_del
Add some asserts where `list_del()` is called to verify they object
was found when it was deleted.

Signed-off-by: Stephen Worley <sworley@cumulusnetworks.com>
2019-07-31 11:35:21 -04:00
Stephen Worley
da098d78bb lib: Impelement the *_del list API.
The new list api did not implement the `*_del` endpoint as
it was described in the docs here:

http://docs.frrouting.org/projects/dev-guide/en/latest/lists.html#c.Z_del

This patch implements the endpoints to return the object deleted if
found, otherwise NULL for all but the atomic lists.

The atomic list `*_del` code is marked as TODO and will remain undefined
for now.

Signed-off-by: Stephen Worley <sworley@cumulusnetworks.com>
2019-07-31 11:35:21 -04:00
Donald Sharp
e15ed56cb1 zebra: Fix display of show ip import-check A.B.C.D
The 'show ip import-check A.B.C.D` code was generating
a /32 prefix for comparison.  Except import-check was
being used by bgp to track networks.  So they could
have received a /24( or anything the `network A.B.C.D/M`
statement specifies ).

Consequently when we do a `show ip import-check A.B.C.D`
we would never find the network but a `show ip import-check |
grep A.B.C.D` would find it.

Fix the exact comparison to a match.

For the `show ip nht A.B.C.D` case we are comparing
a /32 to a /32 so prefix_match will work still.
While a `show ip import-check A.B.C.D` will now show
the expected behavior as well.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2019-07-31 11:07:58 -04:00
Donald Sharp
d81463ea43 doc: Update documentation to reflect new sharp watch import changes
Update the documentation to reflect the reality on the ground.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2019-07-31 10:50:24 -04:00
Donald Sharp
1be0815df0 sharpd: Update 'sharp watch import` to allow prefix
Instead of defaulting the import-check to a /32
allow the tester to specify any prefix that they want
when doing an import-check.

Test:

donna.cumulusnetworks.com# sharp watch import
  A.B.C.D/M   The v4 prefix for import check to watch
  X:X::X:X/M  The v6 prefix to signal for watching
donna.cumulusnetworks.com# sharp watch import 4.5.6.0/24
donna.cumulusnetworks.com# show ip import-check
4.5.6.0
 resolved via kernel
 via 10.50.11.1, enp0s3
 Client list: sharp(fd 21)
donna.cumulusnetworks.com# sharp watch import 4:5:6::0/64
donna.cumulusnetworks.com# show ipv6 import-check
4:5:6::
 resolved via kernel
 fe80::cad7:19ff:fe0a:fdfd, via enp0s3
 fe80::ce37:abff:fe4f:a601, via enp0s3
 Client list: sharp(fd 21)
donna.cumulusnetworks.com# sharp watch nexthop
  A.B.C.D   The v4 address to signal for watching
  X:X::X:X  The v6 nexthop to signal for watching
donna.cumulusnetworks.com# sharp watch nexthop 4.5.6.7
donna.cumulusnetworks.com# sharp watch nexthop 4:5::6:7
donna.cumulusnetworks.com# show ip nht
4.5.6.7
 unresolved
 Client list: sharp(fd 21)
donna.cumulusnetworks.com# show ipv6 nht
4:5::6:7
 unresolved
 Client list: sharp(fd 21)

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2019-07-31 10:47:46 -04:00
Donald Sharp
2e6f2d6bc7
Merge pull request #4756 from vincentbernat/fix/doc-aspath
doc: fix "match as-path" documentation
2019-07-31 10:45:35 -04:00
Vincent Bernat
c78544342f doc: fix "match as-path" documentation
The documentation says "match aspath" to match an AS path in a
route-map while the directive is "match as-path".

Signed-off-by: Vincent Bernat <vincent@bernat.ch>
2019-07-31 16:40:02 +02:00
Donald Sharp
349ee66419 doc: Fix ospf router-id doc suggestion
The v2 and v3 ospf documentation was suggesting
that the user should use a deprecated command.

Fixes: #4734
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2019-07-30 17:13:55 -04:00
Rafael Zalamena
c681616f87 tools: generate code that handles all cases
Help developers to start implementing northbound with more complete
callbacks.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2019-07-30 15:39:34 -03:00
Russ White
23e5198a5e
Merge pull request #4671 from abrahambinu83/pim_endianness
pimd: handle endianness in pim header structure
2019-07-30 11:18:33 -04:00
Russ White
0cd8c0ff11
Merge pull request #4650 from pguibert6WIND/show_ip_route_table_all
zebra: add show ip route all command to dump all unicast tables
2019-07-30 11:18:10 -04:00
Russ White
40236bf7c7
Merge pull request #4750 from dslicenc/bgp-remove-replace-as
bgpd: stop removing and replacing private asn if it matches the peer
2019-07-30 11:12:56 -04:00
Russ White
3d07ec896e
Merge pull request #4746 from donaldsharp/zebra_rib_improvements
Zebra rib improvements
2019-07-30 11:11:41 -04:00
Russ White
65c52bd33d
Merge pull request #4732 from qlyoung/ercode-oncec
vtysh: only show error codes once
2019-07-30 10:58:45 -04:00