summaryrefslogtreecommitdiffstats
path: root/pimd (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Merge pull request #1044 from donaldsharp/combinationJafar Al-Gharaibeh2017-08-319-23/+59
|\ | | | | Coverity Cleanup of Stuff
| * pimd: Cleanup a variety of SA issuesDonald Sharp2017-08-259-23/+59
| | | | | | | | | | | | | | | | 1) Error check return from setsockopt and sockets 2) Check return codes for str2prefix 3) Clean up some potential NULL References Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
* | pimd: Fix pim->keep_alive_time missed patchDonald Sharp2017-08-301-1/+1
| | | | | | | | | | | | | | | | The commit '19b807c pimd: Allow the keepalive time to be per vrf.' is missing some data. Probably as a result of the indentation and I accidently dropped it. Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
* | pimd: Add missed frame for vrf based interfaceDonald Sharp2017-08-301-2/+2
| | | | | | | | | | | | | | | | pim is vrf aware and the interface based line for vrf's was not being started with a vrf_frame as the non interface based line was. Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
* | pimd: Fix indentation issue that slipped in?Donald Sharp2017-08-301-1/+1
| | | | | | | | Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
* | *: remove empty "interface XYZ" config blocksDavid Lamparter2017-08-291-2/+2
| | | | | | | | | | | | | | | | Using the previously-added vty_frame() support, this gets rid of all the pointless empty "interface XYZ" blocks that get added for any interface that shows up in the system (e.g. dummys, tunnels, etc.) Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
* | *: fix compiler warningsDavid Lamparter2017-08-261-1/+1
|/ | | | | | | | Specifically, gcc 4.2.1 on OpenBSD 6.0 warns about these; they're bogus (gcc 4.2, being rather old, isn't quite as "intelligent" as newer versions; the newer ones apply more logic and less warnings.) Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
* pimd: Cleanup S,GRPt prune handling on Mroute LossDonald Sharp2017-08-244-68/+71
| | | | | | | | | | | | | 1) Clean up display of S,GRPt prune state to be more meaningful 2) Upon receipt of a S,GRPt prune make sure we transition to the correct state 3) Upon loss of a S,GRPt prune make sure we transition to the correct state as well as immediately send a *,G join upstream to propagate the loss of the prune. 4) Removal of a weird S,G state being installed upon loss of a S,G RPt prune. Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
* pimd: Cleanup a debug for vrfDonald Sharp2017-08-241-2/+3
| | | | Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
* *: Add 'show debugging' command from vtyshDonald Sharp2017-08-211-6/+9
| | | | | | | Allow vtysh to query every daemon about its debugging status in one go. Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
* Merge pull request #1003 from donaldsharp/pim_mem_leakJafar Al-Gharaibeh2017-08-181-0/+2
|\ | | | | pimd: Fix memory leak on failure case
| * pimd: Fix memory leak on failure caseDonald Sharp2017-08-171-0/+2
| | | | | | | | | | | | | | When we fail to create upstream we were not properly cleaning up all memory. Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
* | Merge pull request #1001 from dwalton76/pimd-CMD-WARNINGJafar Al-Gharaibeh2017-08-181-1/+1
|\ \ | |/ |/| pimd: "No Path to RP address specified" should exit 0
| * pimd: "No Path to RP address specified" should exit 0Daniel Walton2017-08-171-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Daniel Walton <dwalton@cumulusnetworks.com> This could happen if routing isn't up yet but the command did take so we should exit 0 here. Testing: root@cel-redxp-10[frr-dwalton76]# vtysh -c 'conf t' -c' ip pim rp 11.11.11.11' % No Path to RP address specified: 11.11.11.11 root@cel-redxp-10[frr-dwalton76]# echo $? 0 root@cel-redxp-10[frr-dwalton76]#
* | Merge pull request #984 from donaldsharp/debuggingDavid Lamparter2017-08-162-17/+68
|\ \ | | | | | | Some Small Pim Issues
| * | pimd: Add 'show ip msdp vrf all sa ...' commandDonald Sharp2017-08-151-0/+49
| | | | | | | | | | | | | | | | | | Allow the ability to iterate over all vrfs. Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
| * | pimd: Rename duplicate JSON keyDonald Sharp2017-08-151-1/+1
| | | | | | | | | | | | Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
| * | pimd: Add more vrf debugging to pim_upstream.cDonald Sharp2017-08-151-14/+15
| | | | | | | | | | | | | | | | | | | | | Cleanup a few missed spots of debugging to know what vrf we are talking about. Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
| * | pimd: Allow user to specify ip address for 'no ip pim use-source'Donald Sharp2017-08-151-2/+3
| |/ | | | | | | Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
* | Merge pull request #979 from donaldsharp/ifchannel_fixDavid Lamparter2017-08-161-0/+3
|\ \ | | | | | | pimd: Ensure cleanup of S,G on ifchannel failure to create
| * | pimd: Ensure cleanup of S,G on ifchannel failure to createDonald Sharp2017-08-151-0/+3
| |/ | | | | | | | | | | | | | | | | | | There exists a path for ifchannel creation that if a S,G fails to create and a corresponding *,G ifchannel is there, the S,G will be deleted but we were leaving the S,G in the *,G ifchannel sources list. Remove from the list in this case Ticket: CM-17605 Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
* | Merge pull request #972 from chiragshah6/mdevDavid Lamparter2017-08-162-21/+44
|\ \ | |/ |/| Pim Bfd related changes
| * pimd: pim bfd vrf awareChirag Shah2017-08-141-17/+25
| | | | | | | | | | | | | | | | | | BFD replay for all interfaces was only considering VRF_DEFAULT interface list. The change will walk all VRFs, interface list per VRF to register pim neighbor with BFD. Signed-off-by: Chirag shah <chirag@cumulusnetworks.com>
| * pimd: Fix pim bfd config order dependecnyChirag Shah2017-08-141-4/+19
| | | | | | | | | | | | | | | | | | | | | | Upon frr restart vtysh replays pim bfd configuration cli before pim sm command, this results in failure of pim bfd config on the VIF as it is not pim enabled yet. Inside pim bfd configuration, call to create PIM vif handler if it is not created yet. no ip pim bfd, if pim is not enabled display warning and return. Signed-off-by: Chirag Shah <chirag@cumulusnetworks.com>
* | pimd: Remove mroute when RPF is goneDonald Sharp2017-08-111-10/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This does three things: 1) When we get a RPF_FAILURE, remove the mroute associated with it. -> This way when the RPF comes back we can just add the mroute in as part of the normal scanning process. 2) When we do a ecmp_nexthop_search return 1 when we found something we can use. 3) Ignore output from pim_update_rp_nh -> When we do a ecmp_nexthop_search ignore the return code and do not attempt to gather it up to return to the calling function. It is just ignored and we were not taking into account the what of multiple RP's we were looking at. Ticket: CM-17218 Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
* | pimd: Single Upstream join when Keepalive timer popsDonald Sharp2017-08-111-0/+7
|/ | | | | | | | If a single S,G is being deleted because the keepalive timer has timed out, Send a *,G join upstream to clear the S,G RPT prune bit. Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
* Merge pull request #922 from qlyoung/pim-cliJafar Al-Gharaibeh2017-08-071-4/+4
|\ | | | | pimd: some pim cli fixes
| * pimd: some pim cli fixesQuentin Young2017-08-071-4/+4
| | | | | | | | Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
* | pimd: Fix crash on iface down due to secondary address listDonald Sharp2017-08-041-86/+60
| | | | | | | | | | | | | | | | | | | | | | The secondary address list was being added/removed as we went. I see no reason to have special bookkeeping for this list. Just add it on interface startup and then remove it on deletion. Removes some very specialized coding that was saving a very small amount of space. Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
* | pimd: Lookup S,G ifchannel after we create itDonald Sharp2017-08-041-2/+8
|/ | | | | | | | | | | | There are situations where we receive a *,G with a S,G,RPT Prune embedded where we do not actually have any S,G yet(MSDP with multiple RP's with the same address). As such since we only need to lookup the S,G ifchannel once, do it after the recv_prune. Ticket: CM-17230 Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
* pimd: Squash some more memory leaksDonald Sharp2017-08-027-6/+15
| | | | | | | | | | | When a interface is flapped we were leaking some memory associated with link lists. Especially in the jp_agg code. If your network was/is stable and you are not running at any scale you probably would not see this as impactful at all. Ticket: CM-16392 Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
* pimd: Clean back pointer upon deletionDonald Sharp2017-08-021-0/+1
| | | | | | | | | | | | The channel_oil has a back pointer(up) to the upstream data structure. If we are planning on keeping the channel oil (due to ref count issues) longer than keeping the upstream, when we delete the upstream we were not clearing the back pointer to up. This would result in a situation where if that memory has started to be used again it will cause a crash and other fun things. Ticket: CM-17092 Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
* pimd: Add `ip pim rp keep-alive-time X`Donald Sharp2017-08-022-0/+38
| | | | | Ticket: CM-17134 Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
* pimd: Add some more vrf debug informationDonald Sharp2017-08-021-7/+10
| | | | Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
* pimd: Cleanup nht debugsDonald Sharp2017-08-022-8/+11
| | | | Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
* pimd: Clean up mroute_add_vif debuggingDonald Sharp2017-08-021-4/+8
| | | | Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
* pimd: Convert to using a RB tree for the pim_ifp ifchannel_listDonald Sharp2017-08-025-119/+75
| | | | | | | | This patch does two things: 1) Converts the pim_ifp->ifchannel_list to a pim_ifp->ifchannel_rb 2) Removes the hashing to use the RB RB_FIND instead. Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
* pimd: Rename pim_ifp->pim_ifchannel_listDonald Sharp2017-08-024-33/+31
| | | | | | | Remove the redundant information in pim_ifp->pim_ifchannel_list just call it pim_ifp->ifchannel_list Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
* pimd: Remove almost duplicate pim->ifchannel_listDonald Sharp2017-08-024-295/+368
| | | | | | | | | | | | The pim->ifchannel_list can be duplicated by iterating over each vrf and then over each pim_ifp->pim_ifchannel_list Since list handling is taking allot of time at scale convert over to using this value. Additionally clean up pim_cmd.c to have helper functions to handle the actual encoding of data for output. Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
* pimd: fix `show ip msdp...` NPD when vrf unknownQuentin Young2017-07-281-4/+11
| | | | Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
* pimd: Fix msdp cleanup issuesDonald Sharp2017-07-281-1/+11
| | | | Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
* pimd: Allow the keepalive time to be per vrf.Donald Sharp2017-07-2810-21/+22
| | | | | | Allow the keepalive period to be per vrf. Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
* pimd: Setup hash names appropriatelyDonald Sharp2017-07-257-11/+38
| | | | Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
* pimd: NHT upstream list is inefficientDonald Sharp2017-07-255-117/+114
| | | | | | | | | | | | The NHT upstream list at scale is horribly inefficient due to keeping a sorted list of upstream entries. The attempting to find the upstream and the insertion of it into the upstream_list was consuming a large amount of cpu cycles. Convert to a hash, allow add/deletions to effectively become O(1) events. Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
* pimd: Clean PNC cache handling on shutdownDonald Sharp2017-07-251-5/+7
| | | | Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
* pimd: Use JSON_STRDonald Sharp2017-07-251-27/+27
| | | | Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
* pimd: Warn to stderr in failure case for test_igmpv3_joinDonald Sharp2017-07-241-1/+1
| | | | Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
* pimd: Cleanup unused assignmentDonald Sharp2017-07-241-1/+1
| | | | Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
* pimd: Fix missing docstring in 'no debug pim trace detail'Donald Sharp2017-07-241-1/+2
| | | | Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
* pimd: Fix linux build on older kernelsDonald Sharp2017-07-241-0/+4
| | | | Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>