summaryrefslogtreecommitdiffstats
path: root/pimd/pim_rpf.h (follow)
Commit message (Collapse)AuthorAgeFilesLines
* pim6d: IPv6-adjust RPF lookupsDavid Lamparter2022-02-161-1/+1
| | | | Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
* pimd: Modifying in_addr to pim_addr in struct pim_nexthop for IPv6.sarita patra2022-01-111-1/+2
| | | | | | | | Changed struct in_addr last_lookup to struct PIM_ADDR last_lookup which is to be used in both IPv4 and IPv6(Both MLD and IGMP). Reviewed-by: Mobashshera Rasool <mrasool@vmware.com> Signed-off-by: sarita patra <saritap@vmware.com>
* pimd: de-circularize includesDavid Lamparter2021-08-271-3/+0
| | | | | | | pimd's include files are very interdependent. Let's chop that down a bit to gain some flexibility. Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
* pimd: add caller string prefix to pim_rpf_update logsAnuradha Karuppiah2019-11-151-1/+1
| | | | | | No functional change; log enhancements only. Signed-off-by: Anuradha Karuppiah <anuradhak@cumulusnetworks.com>
* pimd: Remove unnecessary boolean to pim_rpf_updateDonald Sharp2019-06-071-2/+2
| | | | | | | | We already log whether or not we add nht tracking, having an additional boolean to say to log another line is a bit over the top. Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
* lib: hashing functions should take const argumentsQuentin Young2019-05-141-1/+1
| | | | | | | | | | It doesn't make much sense for a hash function to modify its argument, so const the hash input. BGP does it in a couple places, those cast away the const. Not great but not any worse than it was. Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
* pimd: pim_nexthop_lookup should return true/falseDonald Sharp2019-04-021-2/+2
| | | | | | | | | | | | The current reverse logic led to this code construct if (!pim_nexthop_lookup(...)) { //Do something successfull } This is backwards and will cause logic errors when people use this code. Fix to use true/false for success/failure. Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
* pimd: clear upstream rpf information when RP becomes not reachableSarita Patra2019-02-251-1/+2
| | | | | | | | | | | | | | | | | When route to RP gets modified, FRR receives a notification from zebra, and call the function pim_resolve_upstream_nh() to compute the nexthop and update upstream->rpf structure. Issue: In case when RP becomes not reachable, FRR only uninstall the mroute from the kernal, but not update the upstream->rpf structure. Fix: When FRR receives a notification from zebra saying RP becomes not reachable, then update the following fields. 1. update channel_oil incoming interface as MAXVIFS 2. Un-install the mroute from the kernel. 3. Switch upstream state from JOINED to NOTJOINED. 4. Clear the nexthop information of the upstream. Signed-off-by: Sarita Patra <saritap@vmware.com>
* *: Replace hash_cmp function return value to a boolDonald Sharp2018-10-191-1/+1
| | | | | | | | | The ->hash_cmp and linked list ->cmp functions were sometimes being used interchangeably and this really is not a good thing. So let's modify the hash_cmp function pointer to return a boolean and convert everything to use the new syntax. Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
* pimd: Move some data tracking variables per VRFDonald Sharp2018-03-181-3/+1
| | | | | | | There were a few more global variables that needed to be per vrf. So move them over. Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
* pimd: Cleanup some basic crashes from mistakes made converting to vrfDonald Sharp2017-07-241-1/+2
| | | | Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
* pimd: Convert pim_rp.c to use 'struct pim_instance *'Donald Sharp2017-07-241-2/+2
| | | | Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
* pimd: Refactor code to be in better spotsDonald Sharp2017-07-241-0/+3
| | | | | | | | 1) Create pim_instance.[ch] to allow us to handle the instance information there 2) Refactor some pim_rpf_ and some pim_rp commands into appropriate files and appropriate includes. Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
* *: reindentreindent-master-afterwhitespace / reindent2017-07-171-20/+18
| | | | | | indent.py `git ls-files | pcregrep '\.[ch]$' | pcregrep -v '^(ldpd|babeld|nhrpd)/'` Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
* *: make consistent & update GPLv2 file headersDavid Lamparter2017-05-151-18/+17
| | | | | | | | | | | The FSF's address changed, and we had a mixture of comment styles for the GPL file header. (The style with * at the beginning won out with 580 to 141 in existing files.) Note: I've intentionally left intact other "variations" of the copyright header, e.g. whether it says "Zebra", "Quagga", "FRR", or nothing. Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
* pimd: Nexthop tracking supportChirag Shah2017-03-161-1/+1
| | | | | | | | | | | | | Add pim Nexthop tracking feature 1st part where, specific RP or Source address (unicast address) register with Zebra. Once nexthop update received from Zebra for a given address, scan RP or upstream entries impacted by the change in nexthop. Reviewed By: CCR-5761, Donald Sharp <sharpd@cumulusnetworks.com> Testing Done: Tested with multiple RPs and multiple *,G entries at LHR. Add new Nexthop or remove one of the link towards RP and verify RP and upstream nexthop update. similar test done at RP with multiple S,G entries to reach source. Signed-off-by: Chirag Shah <chirag@cumulusnetworks.com>
* pimd: Join/Prune AggregationDonald Sharp2017-03-021-0/+1
| | | | | | | | Add the ability for PIM to send Join/Prunes as an aggregated message instead of individual messages for each S,G. Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
* pimd: Refactor pim_rpf_update to take a 'struct pim_rpf'Donald Sharp2017-02-241-1/+1
| | | | Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
* Merge remote-tracking branch 'origin/master' into pim_lib_work2Donald Sharp2017-01-181-1/+0
|\
| * build: remove $Format tagsDavid Lamparter2016-12-201-2/+0
| | | | | | | | Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
* | pimd: Add the ability to test if the RPF' is the sameDonald Sharp2016-12-221-0/+1
| | | | | | | | | | | | | | Test the ability to see if two RPF' are the same or not. Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
* | pimd: Add basic nexthop lookup cached information.Donald Sharp2016-12-221-0/+6
| | | | | | | | | | | | | | Cache the last time we looked up the nexthop for this particular address. Store time to usec accuracy. Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
* | pimd: Rework approach for needing nbrsDonald Sharp2016-12-221-1/+1
| | | | | | | | | | | | | | | | | | | | | | Pim sometimes needs the upstream rpf lookup to only take into account if we have a nbr out the selected interface or not. Move the code for this to a better spot so we can make a more intelligent decision here. Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
* | pimd: switch pim_rpf.h to use 'struct prefix' for addressDonald Sharp2016-12-221-2/+4
| | | | | | | | | | | | | | | | mrib_nexthop_addr and rpf_addr should be 'struct prefix' so that we can safely handle unnumbered data from a nexthop lookup in zebra Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
* | pimd: Move rpf code into pim_rpf.hDonald Sharp2016-12-221-0/+32
| | | | | | | | | | | | The pim_rpf code needs to be in pim_rpf.h as that it belongs in there. Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
* | pimd - Fix rpf lookup to what it was originallyDonald Sharp2016-12-221-5/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I tried to be smart and skirt around rpf lookup if I knew the incoming interface. This turns out to be not necessarily a good thing because we can easily have asymetrical routing. This fix removes the attempt to cache the ifp we received the incoming packet on and just lets the lookup work like it should. Additionally it removes the weird hardcoding of the rpf interface from the register stuff. Ticket: CM-12530 Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com> reb
* | pimd: Remove unnecessary QuaggaIdDonald Sharp2016-12-221-1/+0
|/ | | | Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
* pim: Fix NOCACHE to use incoming interfaceDonald Sharp2016-06-171-2/+3
| | | | | | | | | | | When the kernel sends a NOCACHE message to pim we were looking up the interface to use for the incoming multicast packet based upon the source. No need to do that trust that the kernel has properly identified it and use that. Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
* pimd: merge pimd as of 2015-01-19David Lamparter2016-05-261-0/+36
Welcome pimd to the Quagga daemon zoo! This is a merge of commit 77ae369 ("pimd: Log ifindex found for an interface when zebra lib reports a new connected address."), with the intermediate "reconnect" changes removed (c9adf00...d274381). d274381 is replaced with b162ab7, which includes some changes. In addition, 4 reconnect-related changes and 1 cosmetic one have been bumped out. The rebase command used to produce the branch that is merged here is: git rebase --onto b162ab7 c9adf00 77ae369 Note that 3 patches had their author rewritten from "Anonymous SR#108542 <>" (which is not a valid git author ID) to: "Savannah SR#108542 <nbahr@atcorp.com>" (which is the e-mail address listed in the associated Savannah ticket) Signed-off-by: David Lamparter <equinox@opensourcerouting.org>