mirror_frr/pimd
Jafar Al-Gharaibeh d23a7d0949 pimd: allow resolving bsr via directly connected secondary address
This only matters to single hop nodes that are adjacent to the bsr. More common
with IPv6 where LL address is used in PIM as the primary address. If the BSR IP
happens to be an address on the same interface, the receiving pim router
rejects the BSR address because it expects the BSR IP to resolve via the LL address
even if we have a connected route for the same BSR IP subnet. Effectively, we want to
allow rpf to be resolved via secondary IPs with connected routes on the same interface,
and not limit them to primary addresses.

Signed-off-by: Jafar Al-Gharaibeh <jafar@atcorp.com>
2024-10-23 15:22:23 -05:00
..
.gitignore pim6d: add skeleton for IPv6 PIM daemon 2022-01-12 18:23:50 +01:00
AUTHORS pimd: Remove unnecessary QuaggaId 2016-12-21 20:26:03 -05:00
CAVEATS pimd: added mtrace caveat 2018-02-27 14:03:39 +01:00
COMMANDS pimd: show ip igmp statistics command 2018-05-04 17:05:19 +02:00
DEBUG pimd: Cleanup the headers. 2017-01-19 10:01:02 -05:00
LINUX_KERNEL_MROUTE_MFC pimd: Remove unnecessary QuaggaId 2016-12-21 20:26:03 -05:00
Makefile build: non-recursive pimd 2017-09-07 16:20:42 +02:00
mtracebis_netlink.c *: manual SPDX License ID conversions 2023-02-09 14:09:07 +01:00
mtracebis_netlink.h *: manual SPDX License ID conversions 2023-02-09 14:09:07 +01:00
mtracebis_routeget.c *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
mtracebis_routeget.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
mtracebis.c *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
pim6_cmd.c pimd: fix dr-priority range 2024-05-08 21:21:30 +02:00
pim6_cmd.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
pim6_main.c pim6d: Fix memory leaks 2023-11-14 02:29:44 -08:00
pim6_mld_protocol.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
pim6_mld.c *: Remove cost of including netinet/icmp.h everywhere 2024-01-04 14:26:33 -05:00
pim6_mld.h pim6d: Fixing core while running MLD conformance test. 2023-07-18 03:11:21 -07:00
pim_addr.c *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
pim_addr.h lib: rename prefixtype to uniontype 2023-11-05 18:19:09 +01:00
pim_assert.c *: Convert THREAD_XXX macros to EVENT_XXX macros 2023-03-24 08:32:17 -04:00
pim_assert.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
pim_bfd.c *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
pim_bfd.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
pim_bsm.c pimd: Process no-forward BSM packet 2023-04-09 22:30:44 -07:00
pim_bsm.h *: Rename struct thread to struct event 2023-03-24 08:32:17 -04:00
pim_cmd_common.c pimd: fix crash unconfiguring rp keepalive timer 2024-04-26 10:14:24 -04:00
pim_cmd_common.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
pim_cmd.c pimd: fix dr-priority range 2024-05-08 21:21:30 +02:00
pim_cmd.h pimd: Option to get IGMP groups and sources for a particular interface 2023-04-11 11:00:39 -07:00
pim_errors.c *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
pim_errors.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
pim_hello.c *: convert struct interface->connected to DLIST 2023-11-22 23:00:30 +01:00
pim_hello.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
pim_iface.c Merge pull request #13627 from anlancs/pimd/pimreg-vrf-add-break 2024-04-10 16:50:07 +05:30
pim_iface.h pimd, pim6d: Move mld/igmp deletion code to a common api 2023-06-07 00:01:05 -07:00
pim_ifchannel.c pimd: fix order of operations for evaluating join 2024-05-08 21:21:30 +02:00
pim_ifchannel.h *: Rename struct thread to struct event 2023-03-24 08:32:17 -04:00
pim_igmp_join.h pim6d: Impelmenting "ipv6 mld join" 2023-04-03 04:05:17 -07:00
pim_igmp_mtrace.c *: convert struct interface->connected to DLIST 2023-11-22 23:00:30 +01:00
pim_igmp_mtrace.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
pim_igmp_stats.c *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
pim_igmp_stats.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
pim_igmp.c *: Convert THREAD_XXX macros to EVENT_XXX macros 2023-03-24 08:32:17 -04:00
pim_igmp.h *: Rename struct thread to struct event 2023-03-24 08:32:17 -04:00
pim_igmpv2.c *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
pim_igmpv2.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
pim_igmpv3.c pimd: fix crash when mixing ssm/any-source joins 2024-05-30 23:20:03 -05:00
pim_igmpv3.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
pim_instance.c pimd: Fix wrong creating order for pimreg 2023-05-30 15:10:03 +08:00
pim_instance.h *: Let's use the native IFNAMSIZ instead of INTERFACE_NAMSIZ 2023-11-21 08:08:29 -05:00
pim_int.c *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
pim_int.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
pim_join.c pimd: Receiving a Join or Prune should be under J_P debugs 2024-01-11 11:50:52 -05:00
pim_join.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
pim_jp_agg.c *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
pim_jp_agg.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
pim_macro.c *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
pim_macro.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
pim_main.c *: fix frr_daemon_info indentation 2024-01-27 19:02:51 +01:00
pim_memory.c *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
pim_memory.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
pim_mlag.c *: Let's use the native IFNAMSIZ instead of INTERFACE_NAMSIZ 2023-11-21 08:08:29 -05:00
pim_mlag.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
pim_mroute.c pimd: Give a clearer warning when the kernel is not compiled right 2024-05-31 11:29:40 -04:00
pim_mroute.h pimd: Cleanup inclusion of headers 2024-03-08 18:04:34 +00:00
pim_msdp_packet.c pimd: Indicating the rp in the msdp sa message 2023-10-04 14:30:44 +10:00
pim_msdp_packet.h *: Rename struct thread to struct event 2023-03-24 08:32:17 -04:00
pim_msdp_socket.c *: Convert event.h to frrevent.h 2023-03-24 08:32:17 -04:00
pim_msdp_socket.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
pim_msdp.c pimd: Fix msdp setting of sa->rp 2024-07-25 18:10:16 +00:00
pim_msdp.h *: Convert struct event_master to struct event_loop 2023-03-24 08:32:17 -04:00
pim_msg.c pimd: Re-align pim_msg_get_jp_group_size 2024-01-12 15:04:59 -05:00
pim_msg.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
pim_nb_config.c pimd: fix crash on non-existent interface 2024-07-22 16:39:09 +00:00
pim_nb.c *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
pim_nb.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
pim_neighbor.c Merge pull request #13020 from SaiGomathiN/2462808-3 2023-05-02 11:55:34 -04:00
pim_neighbor.h *: Rename struct thread to struct event 2023-03-24 08:32:17 -04:00
pim_nht.c pimd: allow resolving bsr via directly connected secondary address 2024-10-23 15:22:23 -05:00
pim_nht.h pimd: use zclient->nexthop_update 2023-11-20 11:24:28 +01:00
pim_oil.c pimd: Use a better name for oil_parent 2023-09-19 13:03:50 -04:00
pim_oil.h pimd: Use a better name for oil_parent 2023-09-19 13:03:50 -04:00
pim_pim.c *: convert struct interface->connected to DLIST 2023-11-22 23:00:30 +01:00
pim_pim.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
pim_register.c pimd: fix null register before aging out reg-stop 2024-05-08 21:21:30 +02:00
pim_register.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
pim_routemap.c *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
pim_rp.c pimd: Make some not very needed debugs more restrictive 2024-01-11 11:50:52 -05:00
pim_rp.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
pim_rpf.c pimd: Make some not very needed debugs more restrictive 2024-01-11 11:50:52 -05:00
pim_rpf.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
pim_signals.c *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
pim_signals.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
pim_sock.c *: zebra.h should not have fcntl.h 2024-01-09 12:50:40 -05:00
pim_sock.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
pim_ssm.c *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
pim_ssm.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
pim_ssmpingd.c pimd: remove redundant closing socket 2023-09-23 21:06:32 +08:00
pim_ssmpingd.h *: Rename struct thread to struct event 2023-03-24 08:32:17 -04:00
pim_static.c pimd: Use a better name for oil_parent 2023-09-19 13:03:50 -04:00
pim_static.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
pim_str.h pimd: Remove pim_addr_dump 2023-07-21 07:29:26 -04:00
pim_tib.c pim6d: Clear channel_oil on prune 2023-06-04 22:23:56 -07:00
pim_tib.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
pim_time.c *: Convert event.h to frrevent.h 2023-03-24 08:32:17 -04:00
pim_time.h *: Convert event.h to frrevent.h 2023-03-24 08:32:17 -04:00
pim_tlv.c *: convert struct interface->connected to DLIST 2023-11-22 23:00:30 +01:00
pim_tlv.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
pim_upstream.c pimd: fix null register before aging out reg-stop 2024-05-08 21:21:30 +02:00
pim_upstream.h pimd: fix null register before aging out reg-stop 2024-05-08 21:21:30 +02:00
pim_util.c pimd: IN_MULTICAST needs host order 2023-03-11 19:39:22 -05:00
pim_util.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
pim_vty.c pim6d: Impelmenting "ipv6 mld join" 2023-04-03 04:05:17 -07:00
pim_vty.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
pim_vxlan_instance.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
pim_vxlan.c pimd: Send up to 10 NULL registers on vxlan startup 2024-01-10 15:36:47 -05:00
pim_vxlan.h pimd: Send up to 10 NULL registers on vxlan startup 2024-01-10 15:36:47 -05:00
pim_zebra.c pimd: Fix crash in pimd 2024-08-24 08:13:28 +00:00
pim_zebra.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
pim_zlookup.c *: add zclient_options_sync 2023-11-23 15:20:13 +01:00
pim_zlookup.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
pim_zpthread.c *: Convert thread_add_XXX functions to event_add_XXX 2023-03-24 08:32:17 -04:00
pimd.c *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
pimd.h *: create a single registry of daemons' default port values 2024-02-01 11:40:02 -05:00
README pimd: fix frr url 2020-03-29 17:19:37 -04:00
subdir.am pimd: Remove pim_addr_dump 2023-07-21 07:29:26 -04:00
test_igmpv3_join.c pim6d: Impelmenting "ipv6 mld join" 2023-04-03 04:05:17 -07:00
TODO pimd: Cleanup TODO file 2018-02-26 21:33:02 -05:00
TROUBLESHOOTING

INTRODUCTION

        qpimd aims to implement a PIM (Protocol Independent Multicast)
	daemon for the FRR Routing Suite.

	qpimd implements PIM-SM (Sparse Mode) of RFC 4601.
        Additionally MSDP has been implemented.

	In order to deliver end-to-end multicast routing control
	plane, qpimd includes the router-side of IGMPv[2|3] (RFC 3376).

LICENSE

        qpimd - pimd for FRR
        Copyright (C) 2008 Everton da Silva Marques

        qpimd is free software; you can redistribute it and/or modify
        it under the terms of the GNU General Public License as
        published by the Free Software Foundation; either version 2,
        or (at your option) any later version.

        qpimd is distributed in the hope that it will be useful, but
        WITHOUT ANY WARRANTY; without even the implied warranty of
        MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
        GNU General Public License for more details.

        You should have received a copy of the GNU General Public
        License along with qpimd; see the file COPYING.  If not, write
        to the Free Software Foundation, Inc., 59 Temple Place - Suite
        330, Boston, MA 02111-1307, USA.

HOME SITE

        qpimd lives at:

        https://github.com/frrouting/frr

PLATFORMS

	qpimd has been tested with Debian Jessie.

REQUIREMENTS

	qpimd requires FRR (2.0 or higher)


CONFIGURATION COMMANDS

	See available commands in the file pimd/COMMANDS.

KNOWN CAVEATS

	See list of known caveats in the file pimd/CAVEATS.

SUPPORT

	Please post comments, questions, patches, bug reports at the
	support site:

        https://frrouting.org/frr

RELATED WORK

	igmprt:	An IGMPv3-router implementation
	- http://www.loria.fr/~lahmadi/igmpv3-router.html

	USC pimd: PIMv2-SM daemon
	- http://netweb.usc.edu/pim/pimd (URL broken in 2008-12-23)
	- http://packages.debian.org/source/sid/pimd (from Debian)

	troglobit pimd: This is the original USC pimd from
	http://netweb.usc.edu/pim/. In January 16, 2010 it was revived
	with the intention to collect patches floating around in
	Debian, Gentoo, Lintrack and other distribution repositories
	and to provide a central point of collaboration.
	- http://github.com/troglobit/pimd

	zpimd: zpimd is not dependent of zebra or any other routing daemon
	- ftp://robur.slu.se/pub/Routing/Zebra
	- http://sunsite2.icm.edu.pl/pub/unix/routing/zpimd

	mrd6: an IPv6 Multicast Router for Linux systems
	- http://fivebits.net/proj/mrd6/

	MBGP: Implementation of RFC 2858 for Quagga
	- git://git.coplanar.net/~balajig/quagga
	- http://www.gossamer-threads.com/lists/quagga/dev/18000

REFERENCES

	IANA Protocol Independent Multicast (PIM) Parameters
	http://www.iana.org/assignments/pim-parameters/pim-parameters.txt

	Address Family Numbers
	http://www.iana.org/assignments/address-family-numbers

                              -- END --