summaryrefslogtreecommitdiff
path: root/pimd/pim_igmp.c
AgeCommit message (Collapse)Author
2017-03-31pimd: Cleanup unused variable writeDonald Sharp
There exists a common pattern in pim where we were setting a variable to a value in the error case when we would no longer need it. Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-02-24pimd: Add hash lookup for igmp group'sDonald Sharp
When we receive a group in a IGMP report let's look it up based upon a hash instead of a list. Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-02-24pimd: Remove unnecessary igmp checkDonald Sharp
When we receive a igmp packet, there is no need to ensure that it is a igmp packet, as that is what we have asked for. Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-02-24pimd: Remove unnecessary ip header length checks on receipt.Donald Sharp
The kernel will not hand us a malformed packet. Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-02-03pimd: Allow a interface in a vrf to be configured.Donald Sharp
This fixes the issue a crash when we have configured an interface inside of a vrf, and apply pim commands to it. Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-01-19pimd: Cleanup the headers.Donald Sharp
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-01-17Merge remote-tracking branch 'origin/master' into pim_lib_work2Donald Sharp
2016-12-21pimd: With igmpv2 turned on don't accept 224.0.0.0/24 groupsDonald Sharp
When a group is in the 224.0.0.0/24 range and we have igmp v2 turned on do not allow it to be considered for inclusion as a mroute. Ticket: CM-13855 Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com> Reviewed-by:
2016-12-21pimd: Don't allow invalid groups to be passed for igmpDonald Sharp
When we receive a invalid group( say outside of the 224/4 range) don't allow it to create state. Nicely reject the rejectable. Ticket: CM-13821 Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2016-12-21pimd: Cleanup igmp read socketDonald Sharp
With the change over to using the kernel upcall for igmp messages, we need to add in a read thread for the igmp socket to drain the igmp socket's receive queue. Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2016-12-21pimd: Remove unnecessary assertsDonald Sharp
When we handle the thread arguments, there is no need to assert. As that if they are wrong, we are going down shortly anyways. Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2016-12-21pimd: Fix 'ip igmp join ..'Donald Sharp
When a static igmp join is issued, before routing has come up, the ability to recover was accidently removed from the code. Ticket: CM-13379 Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2016-12-21pimd: Clean up the interface deletionDonald Sharp
When cleaning up the interface, actually clean up data associated with that interface. Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2016-12-21pimd: replace grp_str[100] with grp_str[INET_ADDRSTRLEN]Daniel Walton
Signed-off-by: Daniel Walton <dwalton@cumulusnetworks.com>
2016-12-21pimd: add support for IGMPv2Daniel Walton
Signed-off-by: Daniel Walton <dwalton@cumulusnetworks.com> Ticket: CM-7962
2016-12-21pimd: Allow igmp query to go out immediately on startupDonald Sharp
When starting up allow the 1st query to go out immediately, well ok 1 second, and then the next queries to go out in query_interval/4 seconds until startup mode is finished. Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2016-12-21pimd: Remove unnecessary QuaggaIdDonald Sharp
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2016-12-21pimd: Use XCALLOC instead of XMALLOCDonald Sharp
Ensure that all data structures start out as 0 filled. Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2016-12-21pimd: Fix use of 0 for NULLDonald Sharp
pimd uses allot of 0's to represent NULL. Not a good programming practice. Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2016-12-20build: remove $Format tagsDavid Lamparter
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2016-08-18*: use an ifindex_t type, defined in lib/if.h, for ifindex valuesPaul Jakma
(cherry picked from commit 9099f9b2a66e86f8a90d7fe18f61bd2bb1bc6744)
2016-07-12pimd: Stale IGMP groups left behindDonald Sharp
When a toin IGMPv3 join is received, the code was always auto creating the igmp group associated with the received packet. The RFC clearly states though that if a INCLUDE is received for a group with 0 sources and we have received nothing the igmpv3 packet should be ignored. Ticket: CM-11260 Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2016-07-11pimd: static joins no longer workedDonald Sharp
Static joins were killed by a previous commit, which has been backed out. I've recoded the igmp join code to ignore 224.0.0.0/24 from ourselves a bit differently now. Ticket: CM-11751 Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2016-07-11Revert "pimd: Prevent igmp packet loopback."Donald Sharp
This reverts commit 5bbcd1f0fd82e0e982700dbc12dd959629e91b58. This commit badly breaks local 'ip igmp join XXX YYY' commands. Revert this and fix the issue a slightly different way Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2016-06-29pimd: Prevent igmp packet loopback.Donald Sharp
pim is joining the 224.0.0.13 and 224.0.0.22 groups This is causing the creation of (*, 224.0.0.13) and (*, 224.0.0.22) multicast routes which are immediately sent to the pim network. If we are the originator of the igmp report than there is no need to accept the packet for processing. Ticket: CM-11397 Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2016-06-28pimd: Bind pim sockets to interface they are associated withDonald Sharp
When pim is receiving packets, each interface's fd is receiving packets for all interfaces. Modify the code to bind the pim interface sockets to the interface they were created for. Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2016-06-23pimd: Removing extra assertsDonald Sharp
in the igmp_group_free path, the normal deletion path was causing asserts to happen. There is no need to have asserts here for this reason. Further testing done w/ valgrind. Ticket: CM-11401 Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2016-06-23pimd: Fix igmp Trace loggingDonald Sharp
In general we don't need to know when a read is scheduled. Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2016-06-17pimd: Apparently compilers are evilDonald Sharp
Fix up some compiler issues from clang to gcc. Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2016-06-06pimd: igmp_add_group_by_addr remove unneeded parameterDonald Sharp
We were passing in the interface name when we were also passing in the igmp pointer which has this information. Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2016-05-25pimd: merge pimd as of 2015-01-19David Lamparter
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>