summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* ripngd: Fix redistribute/no redistribute rinse repeat commandsDonald Sharp2020-01-011-2/+2
| | | | | | | | | | ripngd was using zclient_redistribute for installation but not for removal. As such the lib/zclient.c was not properly tracking add/removal. I think it would be best to just let ripng to track this instead of zclient. Fixes: #5599 Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
* Merge pull request #5579 from donaldsharp/pim_ip_mroute_lastJafar Al-Gharaibeh2019-12-221-0/+2
|\ | | | | vtysh: Ensure interface `ip mroute ...` commands are last
| * vtysh: Ensure interface `ip mroute ...` commands are lastDonald Sharp2019-12-201-0/+2
| | | | | | | | | | | | | | Ensure when displaying interface based ip mroute commands that they are last. Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
* | Merge pull request #5584 from qlyoung/pim-fix-iph-trustJafar Al-Gharaibeh2019-12-222-7/+18
|\ \ | | | | | | pimd: readd iph length checks
| * | pimd: readd iph length checksQuentin Young2019-12-222-7/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | Kernel might not hand us a bad packet, but better safe than sorry here. Validate the IP header length field. Also adds an additional check that the packet length is sufficient for an IGMP packet, and a check that we actually have enough for an ip header at all. Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
* | | Merge pull request #5583 from donaldsharp/multicast_nhJafar Al-Gharaibeh2019-12-221-1/+3
|\ \ \ | | | | | | | | bgpd: Allow ipv4 multicast to use v4 nexthops
| * | | bgpd: Allow ipv4 multicast to use v4 nexthopsDonald Sharp2019-12-211-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When passing a v4 multicast route to a peer send the v4 nexthop as a preferred methodology. Fixes: #5582 Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
* | | | Merge pull request #5581 from Jafaral/pimroute-rfQuentin Young2019-12-221-119/+28
|\ \ \ \ | | | | | | | | | | pimd: refactor ip mroute cmd
| * | | | pimd: refactor ip mroute cmdJafar Al-Gharaibeh2019-12-211-119/+28
| | |/ / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | combine: ip mroute INTERFACE A.B.C.D ip mroute INTERFACE A.B.C.D A.B.C.D into: ip mroute INTERFACE A.B.C.D [A.B.C.D] Signed-off-by: Jafar Al-Gharaibeh <jafar@atcorp.com>
* | | | Merge pull request #5585 from qlyoung/fix-pimd-mtrace-missing-length-checkJafar Al-Gharaibeh2019-12-221-0/+10
|\ \ \ \ | | | | | | | | | | pimd: fix missing igmp mtrace length check
| * | | | pimd: fix missing igmp mtrace length checkQuentin Young2019-12-221-0/+10
| |/ / / | | | | | | | | | | | | | | | | | | | | | | | | We check that the IGMP message is sufficently sized for an mtrace query, but not a response, leading to uninitialized stack read. Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
* | | | Merge pull request #5268 from qlyoung/vrrp-vrfDonatas Abraitis2019-12-224-13/+72
|\ \ \ \ | |/ / / |/| | | VRRP VRF support
| * | | vrrpd: support namespace vrf tooQuentin Young2019-12-181-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | -.- Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
| * | | lib: document vrf_socket(), vrf_bind()Quentin Young2019-12-182-2/+24
| | | | | | | | | | | | | | | | | | | | | | | | These two don't really do what you might expect, document them Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
| * | | vrrpd: add vrf supportQuentin Young2019-12-092-9/+35
| | | | | | | | | | | | | | | | Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
| * | | vrrpd: handle failure to lookup parent ifaceQuentin Young2019-12-091-0/+9
| | | | | | | | | | | | | | | | Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
* | | | Merge pull request #5567 from opensourcerouting/bring-them-backMark Stapp2019-12-202-1/+4
|\ \ \ \ | | | | | | | | | | lib: fix build of the northbound plugins
| * | | | lib: fix build of the northbound pluginsRenato Westphal2019-12-192-1/+4
| | |_|/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | Commit 1b3e9a21dd4 removed the global visibility of the yang_modules variable, breaking the build of all northbound plugins. Revert a small part of that commit to fix this issue. Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
* | | | Merge pull request #5563 from mjstapp/fix_nhg_depends_findQuentin Young2019-12-201-12/+12
|\ \ \ \ | | | | | | | | | | zebra: improve efficiency of depends_find()
| * | | | zebra: improve efficiency of depends_find()Mark Stapp2019-12-181-12/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Do less malloc and free in depends_find(), when looking for a singleton nexthop in the nhg hash. Signed-off-by: Mark Stapp <mjs@voltanet.io>
* | | | | Merge pull request #5574 from ton31337/fix/no_bgp_listen_range_peer-groupDonald Sharp2019-12-201-1/+1
|\ \ \ \ \ | | | | | | | | | | | | bgpd: Make sure we can use `no bgp listen range ...`
| * | | | | bgpd: Make sure we can use `no bgp listen range ...`Donatas Abraitis2019-12-191-1/+1
|/ / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixes: ``` exit1-debian-9(config-router)# no bgp listen range 192.168.10.0/24 peer-group TEST % Peer-group does not exist exit1-debian-9(config-router)# ``` Closes https://github.com/FRRouting/frr/issues/5570 Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
* | | | | Merge pull request #5566 from ton31337/fix/ebgp-requires-policy_with_ibgpDonald Sharp2019-12-196-22/+81
|\ \ \ \ \ | | | | | | | | | | | | bgpd: Do not apply eBGP policy for iBGP peers
| * | | | | tests: Test if eBGP policy is not applied to iBGP peersDonatas Abraitis2019-12-195-22/+75
| | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
| * | | | | bgpd: Do not apply eBGP policy for iBGP peersDonatas Abraitis2019-12-191-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Treat iBGP peers as they have a policy applied. Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
* | | | | | Merge pull request #5543 from Jafaral/routeridDonatas Abraitis2019-12-192-0/+50
|\ \ \ \ \ \ | |/ / / / / |/| | | | | zebra: add 'show router-id'
| * | | | | zebra: add 'show router-id'Jafar Al-Gharaibeh2019-12-172-0/+50
| | |_|_|/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | router-id is buried deep in "show running-config", this new command makes it easy to retrieve the user configured router-id. Example: # configure terminal (config)# router-id 1.2.3.4 (config)# end # show router-id router-id 1.2.3.4 # configure terminal (config)# no router-id 1.2.3.4 (config)# end # show router-id # Signed-off-by: Jafar Al-Gharaibeh <jafar@atcorp.com>
* | | | | Merge pull request #5549 from donaldsharp/automatedDonatas Abraitis2019-12-191-1/+8
|\ \ \ \ \ | | | | | | | | | | | | doc: Update workflow to include new automated testing Requirement
| * | | | | doc: Update workflow to include new automated testing RequirementDonald Sharp2019-12-171-1/+8
| | |/ / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | Update the workflow.rst file to outline new requirement for features to include automated testing of some sort. Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
* | | | | Merge pull request #5561 from qlyoung/doc-update-overviewDonatas Abraitis2019-12-192-83/+64
|\ \ \ \ \ | | | | | | | | | | | | Doc update overview
| * | | | | doc: fix duplicate -S option in bgpd manpageQuentin Young2019-12-181-5/+0
| | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
| * | | | | doc: update overview.rst for the new millenniumQuentin Young2019-12-181-78/+64
| | |_|/ / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Provide a more succinct summary of what FRR is, what it does, where it sits in the network stack. Also remove some outdated comments about features. Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
* | | | | Merge pull request #5564 from taspelund/end-of-rib_notificationSri Mohana Singamsetty2019-12-191-4/+5
|\ \ \ \ \ | | | | | | | | | | | | bgpd: Remove misleading 'NOTIFICATION' string from End-of-RIB log
| * | | | | bgpd: Remove misleading 'NOTIFICATION' string from End-of-RIB logTrey Aspelund2019-12-181-4/+5
|/ / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 'NOTIFICATION' string in this message incorrectly implies a BGP Notification message was the cause of this log. Removing it to reduce confusion and replacing with function name. Signed-off-by: Trey Aspelund <taspelund@cumulusnetworks.com>
* | | | | Merge pull request #5559 from mjstapp/fix_test_typelistQuentin Young2019-12-181-4/+5
|\ \ \ \ \ | | | | | | | | | | | | tests: fix endian bug in test_typelist
| * | | | | tests: fix endian bug in test_typelistMark Stapp2019-12-181-4/+5
| | |/ / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix a byte-swapping bug that appeared on big-endian arch but wasn't visible on little-endian runs. Signed-off-by: Mark Stapp <mjs@voltanet.io>
* | | | | Merge pull request #5556 from donaldsharp/ospf_use_afterMark Stapp2019-12-181-1/+3
|\ \ \ \ \ | |_|/ / / |/| | | | ospfd: Prevent use after free on shutdown
| * | | | ospfd: Prevent use after free on shutdownDonald Sharp2019-12-181-1/+3
|/ / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Address Sanitizer is reporting this issue: ==26177==ERROR: AddressSanitizer: heap-use-after-free on address 0x6120000238d8 at pc 0x7f88f7c4fa93 bp 0x7fff9a641830 sp 0x7fff9a641820 READ of size 8 at 0x6120000238d8 thread T0 #0 0x7f88f7c4fa92 in if_delete lib/if.c:290 #1 0x42192e in ospf_vl_if_delete ospfd/ospf_interface.c:912 #2 0x42192e in ospf_vl_delete ospfd/ospf_interface.c:990 #3 0x4a6208 in no_ospf_area_vlink ospfd/ospf_vty.c:1227 #4 0x7f88f7c1553d in cmd_execute_command_real lib/command.c:1073 #5 0x7f88f7c19b1e in cmd_execute_command lib/command.c:1132 #6 0x7f88f7c19e8e in cmd_execute lib/command.c:1288 #7 0x7f88f7cd7523 in vty_command lib/vty.c:516 #8 0x7f88f7cd79ff in vty_execute lib/vty.c:1285 #9 0x7f88f7cde4f9 in vtysh_read lib/vty.c:2119 #10 0x7f88f7ccb845 in thread_call lib/thread.c:1549 #11 0x7f88f7c5d6a7 in frr_run lib/libfrr.c:1093 #12 0x412976 in main ospfd/ospf_main.c:221 #13 0x7f88f73b082f in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2082f) #14 0x413c78 in _start (/usr/local/master/sbin/ospfd+0x413c78) Effectively we are in a shutdown phase and as part of shutdown we delete the ospf interface pointer ( ifp->info ). The interface deletion code was modified in the past year to pass in the address of operator to allow us to NULL out the holding pointer. The catch here is that we free the oi and then delete the interface passing in the address of the oi->ifp pointer, causing a use after free. Fixes: #5555 Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
* | | | Merge pull request #5552 from sworleys/NHG-Set-RTNH_F_ONLINKDonatas Abraitis2019-12-181-0/+3
|\ \ \ \ | | | | | | | | | | zebra: set RTNH_F_ONLINK in nexthop creation
| * | | | zebra: set RTNH_F_ONLINK in nexthop creationStephen Worley2019-12-171-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We were not setting the RTNH_F_ONLINK flag where appropriate when creating nexthop objects in the kernel. Set it on the nhmsg.nh_flags netlink message. Signed-off-by: Stephen Worley <sworley@cumulusnetworks.com>
* | | | | Merge pull request #5514 from Jafaral/nhrp-docsQuentin Young2019-12-171-15/+78
|\ \ \ \ \ | |/ / / / |/| | | | doc: add discussion for a handful of nhrp commands
| * | | | doc: add discussion for a handful of nhrp commandsJafar Al-Gharaibeh2019-12-171-15/+78
| | | | | | | | | | | | | | | | | | | | Signed-off-by: Jafar Al-Gharaibeh <jafar@atcorp.com>
* | | | | Merge pull request #5548 from mjstapp/vty_nhg_aliasQuentin Young2019-12-173-5/+10
|\ \ \ \ \ | |_|/ / / |/| | | | vtysh: add an alias for the nexthop-group config targets
| * | | | vtysh: add an alias for the nexthop-group config targetsMark Stapp2019-12-173-5/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Use an alias for the daemons who process the nexthop-group config cli; makes it easier to expand that list in the future. Signed-off-by: Mark Stapp <mjs@voltanet.io>
* | | | | Merge pull request #5508 from ton31337/feature/show_ip_route_summary_jsonQuentin Young2019-12-171-45/+197
|\ \ \ \ \ | | | | | | | | | | | | zebra: Print json output for show_route_summary_cmd
| * | | | | zebra: Print json output for show_route_summary_cmdDonatas Abraitis2019-12-121-45/+197
| | |_|_|/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ``` spine1-debian-9# sh ip route summary json { "routes":[ { "fib":1, "rib":1, "type":"kernel" }, { "fib":11, "rib":11, "type":"connected" }, { "fib":2, "rib":2, "type":"ebgp" }, { "fib":1, "rib":1, "type":"ibgp" } ], "routesTotal":15, "routesTotalFib":15 } spine1-debian-9# sh ipv6 route summary json { "routes":[ { "fib":7, "rib":7, "type":"connected" } ], "routesTotal":7, "routesTotalFib":7 } ``` Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
* | | | | Merge pull request #5541 from sworleys/NHG-FixesRuss White2019-12-172-2/+2
|\ \ \ \ \ | | | | | | | | | | | | zebra: a couple nhg fixes
| * | | | | zebra: pass type when finding individual nexthopStephen Worley2019-12-161-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When we are doing a lookup on an individual nexthop, we should still be passing along the type that gets passed via the arguments. Otherwise, we will always think we own that NHE when in reality anyone could have put that into the kernel. Before this patch, nexthops in the kernel will get swepped out even if we didn't create them. Signed-off-by: Stephen Worley <sworley@cumulusnetworks.com>
| * | | | | zebra: null check re->nhe not re->nhe->nhg on attachStephen Worley2019-12-161-1/+1
| | |_|_|/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We should be NULL checking the entire re->nhe struct, not the group inside of it. When we get routes from the kernel using a nexthop group (and future protocols) they will only pass us an ID to use. Hence, this struct can (and will be) NULL on first attach when only passed an ID. There shouldn't be a situation where we have an re->nhe and don't have an re->nhe->nhg anyway. Before this patch you can easily make zebra crash by creating a route in the kernel using a nexthop group and starting zebra. `ip next add dev lo id 111` `ip route add 1.1.1.1/32 nhid 111` Signed-off-by: Stephen Worley <sworley@cumulusnetworks.com>
* | | | | Merge pull request #5540 from sworleys/NH-Defualt-Weight-OneRuss White2019-12-171-1/+17
|\ \ \ \ \ | |/ / / / |/| | | | lib: default nexthop weights to one