mirror_frr/pimd
David Lamparter 89cb86aeb0 build, vtysh: extract vtysh commands from .xref
Rather than running selected source files through the preprocessor and a
bunch of perl regex'ing to get the list of all DEFUNs, use the data
collected in frr.xref.

This not only eliminates issues we've been having with preprocessor
failures due to nonexistent header files, but is also much faster.
Where extract.pl would take 5s, this now finishes in 0.2s.  And since
this is a non-parallelizable build step towards the end of the build
(dependent on a lot of other things being done already), the speedup is
actually noticeable.

Also files containing CLI no longer need to be listed in `vtysh_scan`
since the .xref data covers everything.  `#ifndef VTYSH_EXTRACT_PL`
checks are equally obsolete.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2022-10-26 17:12:34 +01: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
COPYING pimd: merge pimd as of 2015-01-19 2016-05-25 20:38:32 -04: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 pimd: Intentionally downcast to a uint32_t value 2022-08-24 08:28:51 -04:00
mtracebis_netlink.h *: conform with COMMUNITY.md formatting rules, via 'make indent' 2018-03-06 14:04:32 -05:00
mtracebis_routeget.c *: fix config.h/zebra.h include order 2018-09-08 21:30:42 +02:00
mtracebis_routeget.h pimd: Multicast traceroute client and router 2018-02-19 23:13:55 +01:00
mtracebis.c pimd: replace inet_ntoa 2020-10-22 10:13:56 -04:00
pim6_cmd.c build, vtysh: extract vtysh commands from .xref 2022-10-26 17:12:34 +01:00
pim6_cmd.h pim6d: Add "[no] debug pimv6 bsm" cli 2022-10-20 01:07:48 -07:00
pim6_main.c pimd: Assign a vty port value for v6 2022-09-28 08:27:02 -04:00
pim6_mld_protocol.h pim6d: add fresh MLD implementation 2022-05-06 16:01:59 +02:00
pim6_mld.c build, vtysh: extract vtysh commands from .xref 2022-10-26 17:12:34 +01:00
pim6_mld.h pim6d: Completing "ipv6 mld last-member-query-count" command. 2022-08-28 23:33:07 -07:00
pim_addr.c pim6d: remove PIM_V6_TEMP_BREAK 2022-02-16 16:40:56 +01:00
pim_addr.h pimd,pim6d: Change the show running commands based on address family 2022-09-26 00:09:45 -07:00
pim_assert.c pimd: Disable receiving assert msg on passive interface 2022-05-12 23:51:21 -07:00
pim_assert.h pim6d: IPv6-adjust assert-related addrs 2022-02-14 06:45:03 +01:00
pim_bfd.c pim6d: Adding show running for ipv6 mld commands 2022-02-28 01:38:41 -08:00
pim_bfd.h pimd: rework BFD integration 2021-04-23 09:28:57 -03:00
pim_br.c pim6d: Replace pim_br_unknown with PIMADDR_ANY 2022-03-10 03:24:52 -08:00
pim_br.h pim6d: Replace pim_br_unknown with PIMADDR_ANY 2022-03-10 03:24:52 -08:00
pim_bsm.c pimd: fix unaligned accesses 2022-07-12 12:48:04 +02:00
pim_bsm.h pim6d: add pimv6 support for bsmmsg_grpinfo 2022-07-07 10:56:45 -07:00
pim_cmd_common.c Merge pull request #12094 from patrasar/pimv6_rp_linklocal 2022-10-21 10:34:28 +03:00
pim_cmd_common.h pimd: Move "show ip pim bsm-database" cmd to DEFPY 2022-10-20 01:07:48 -07:00
pim_cmd.c build, vtysh: extract vtysh commands from .xref 2022-10-26 17:12:34 +01:00
pim_cmd.h pimd: Moving the common functions from pim_cmd.c 2022-03-28 23:53:24 -07:00
pim_errors.c pimd: PIM_[ERR|WARN] -> EC_PIM 2018-09-13 19:12:58 +00:00
pim_errors.h pimd: PIM_[ERR|WARN] -> EC_PIM 2018-09-13 19:12:58 +00:00
pim_hello.c pimd, pim6d: send secondary address in PIM hello packet 2022-09-30 03:35:49 -07:00
pim_hello.h pim6d: IPv6-adjust Hello/TLV processing 2022-02-14 06:45:03 +01:00
pim_iface.c Merge pull request #11872 from AbhishekNR/const_igmp_gm 2022-09-19 17:48:24 +03:00
pim_iface.h pim6d: Changing igmp_enable to gm_enable. 2022-06-27 05:52:02 -07:00
pim_ifchannel.c pimd: ch->upstream cannot be NULL 2022-08-15 15:45:05 -04:00
pim_ifchannel.h pim6d: IPv6-adjust pim_ifchannel_* 2022-02-14 06:45:03 +01:00
pim_igmp_join.h pim6d: drop off IGMP code 2022-02-16 16:40:56 +01:00
pim_igmp_mtrace.c pimd: un-dependency-hell pim_instance.h 2022-05-06 15:10:57 +02:00
pim_igmp_mtrace.h pimd: Modifying struct igmp_sock to gm_sock for IPv6 2021-12-03 10:27:12 -08:00
pim_igmp_stats.c pimd: Add additional IGMP stats (peak number of groups) 2022-03-15 14:08:35 +02:00
pim_igmp_stats.h pimd: Add additional IGMP stats (peak number of groups) 2022-03-15 14:08:35 +02:00
pim_igmp.c pimd: IGMP Querier election is not correct in LAN scenario 2022-09-27 05:04:24 -07:00
pim_igmp.h pimd, pim6d: Changing IGMP to GM in few macro's. 2022-09-18 22:15:19 -07:00
pim_igmpv2.c pimd, pim6d: Changing IGMP to GM in debug macros. 2022-09-13 23:29:33 -07:00
pim_igmpv2.h pimd: Modifying struct igmp_sock to gm_sock for IPv6 2021-12-03 10:27:12 -08:00
pim_igmpv3.c pimd, pim6d: Changing IGMP to GM in debug macros. 2022-09-13 23:29:33 -07:00
pim_igmpv3.h pim6d: drop off IGMP code 2022-02-16 16:40:56 +01:00
pim_instance.c pimd, pim6d: Send register msg via register socket 2022-08-04 00:49:10 -07:00
pim_instance.h pimd: Modifying member of pim_instance to accomodate IPv6 changes 2022-08-26 01:14:08 -07:00
pim_int.c *: reindent 2017-07-17 14:04:07 +02:00
pim_int.h *: make consistent & update GPLv2 file headers 2017-05-15 16:37:41 +02:00
pim_join.c pimd: Handle rpf_addr in join/prune processing 2022-07-06 02:41:48 -07:00
pim_join.h pimd: Handle pim join/prune recv flow for ipv6 2022-02-28 10:36:04 -08:00
pim_jp_agg.c pimd: Handle rpf_addr in join/prune processing 2022-07-06 02:41:48 -07:00
pim_jp_agg.h pimd: un-dependency-hell pim_instance.h 2022-05-06 15:10:57 +02:00
pim_macro.c pimd: un-dependency-hell pim_instance.h 2022-05-06 15:10:57 +02:00
pim_macro.h pimd: Modifying in_addr to pim_addr in struct pim_interface for IPv6 2022-01-10 21:10:29 -08:00
pim_main.c pimd, pim6d: Changing IGMP to GM in debug macros 2022-09-06 00:15:38 -07:00
pim_memory.c *: require semicolon after DEFINE_MTYPE & co 2021-03-17 06:18:17 +01:00
pim_memory.h *: require semicolon after DEFINE_MTYPE & co 2021-03-17 06:18:17 +01:00
pim_mlag.c *: Fix spelling of atleast 2022-04-19 08:25:03 -04:00
pim_mlag.h pim6d: drop off MLAG code 2022-02-16 16:40:56 +01:00
pim_mroute.c pimd,pim6d: Modifying IGMP to GM in PIM_DEBUG_IGMP_PACKETS to PIM_DEBUG_GM_PACKETS 2022-09-04 22:46:09 -07:00
pim_mroute.h build, vtysh: extract vtysh commands from .xref 2022-10-26 17:12:34 +01:00
pim_msdp_packet.c pimd: un-dependency-hell pim_instance.h 2022-05-06 15:10:57 +02:00
pim_msdp_packet.h *: Change thread->func to return void instead of int 2022-02-23 19:56:04 -05:00
pim_msdp_socket.c pimd: un-dependency-hell pim_instance.h 2022-05-06 15:10:57 +02:00
pim_msdp_socket.h pimd: Make msdp struct pim_instance * aware 2017-07-24 13:51:37 -04:00
pim_msdp.c pimd: un-dependency-hell pim_instance.h 2022-05-06 15:10:57 +02:00
pim_msdp.h *: Change thread->func to return void instead of int 2022-02-23 19:56:04 -05:00
pim_msg.c pim6d: Handle rpf_addr in pim_msg_build_jp_groups() 2022-07-06 02:41:47 -07:00
pim_msg.h pim6d: include IPv6 pseudoheader in TX checksums 2022-03-28 14:13:23 +02:00
pim_nb_config.c Merge pull request #11900 from patrasar/pimv6_lmqt 2022-09-16 03:51:38 -07:00
pim_nb.c pimd: Northbound support for pim passive enable 2022-05-12 23:51:21 -07:00
pim_nb.h pimd: Northbound support for pim passive enable 2022-05-12 23:51:21 -07:00
pim_neighbor.c pimd: Removal of unused function pim_neighbor_find_prefix 2022-09-02 09:50:28 -07:00
pim_neighbor.h pimd: Removal of unused function pim_neighbor_find_prefix 2022-09-02 09:50:28 -07:00
pim_nht.c pimd: Update mroute IIF based on Nexthop received from Zebra 2022-07-28 13:03:46 -07:00
pim_nht.h pim6d: bsr nht handling for IPV6 2022-07-07 07:53:40 -07:00
pim_oil.c pimd: Fix the setting of oif_flags in channel oil 2022-06-15 00:55:55 -07:00
pim_oil.h pimd: Remove unused extern pim_channel_oil_list 2022-07-05 02:25:03 -07:00
pim_pim.c pim6d: Removal of IPV6_HDRINCL option 2022-06-13 16:51:01 +05:30
pim_pim.h pimd: Disable sending of control packets on passive interface 2022-05-12 23:51:21 -07:00
pim_register.c pimd, pim6d: Send register msg via register socket 2022-08-04 00:49:10 -07:00
pim_register.h pim6d: Send register msg with IPv6 global address 2022-06-21 20:44:10 -07:00
pim_routemap.c bgpd, lib, ospf6d, ospfd, pimd, zebra: Rework routemap event callback 2019-05-10 18:43:21 -04:00
pim_rp.c pimd, pim6d: Using ttable for displaying "show ip/ipv6 pim rp-info" command output. 2022-08-16 21:51:58 -07:00
pim_rp.h pim6d: Implementing "show ipv6 pim rp-info" CLI 2022-03-28 23:53:15 -07:00
pim_rpf.c pim6d: Pass pim_addr for pim_nht callbacks. 2022-07-06 02:56:43 -07:00
pim_rpf.h pimd: modify rpf_addr from prefix to pim_addr 2022-07-06 02:41:47 -07:00
pim_signals.c *: Convert quagga_signal_X to frr_signal_X 2021-11-11 14:41:27 -05:00
pim_signals.h *: Convert quagga_signal_X to frr_signal_X 2021-11-11 14:41:27 -05:00
pim_sock.c pim6d: mroute stuck in register state, multicast traffic getting drops 2022-08-23 00:09:20 -07:00
pim_sock.h pimd, pim6d: Send register msg via register socket 2022-08-04 00:49:10 -07:00
pim_ssm.c pimd: un-dependency-hell pim_instance.h 2022-05-06 15:10:57 +02:00
pim_ssm.h pimd: un-dependency-hell pim_instance.h 2022-05-06 15:10:57 +02:00
pim_ssmpingd.c pimd: un-dependency-hell pim_instance.h 2022-05-06 15:10:57 +02:00
pim_ssmpingd.h pim6d: Changes done in pim_ssmpingd to support v6 2022-03-16 13:54:24 +05:30
pim_static.c pimd: fix static mroute to also take into account the input interface 2022-07-28 16:27:19 -05:00
pim_static.h pimd: un-dependency-hell pim_instance.h 2022-05-06 15:10:57 +02:00
pim_str.c pimd: remove pim_str_sg_dump() 2022-01-17 14:02:18 +01:00
pim_str.h pim6d: Longest possible length of a (S,G) string is 94 bytes 2022-07-12 04:46:57 -07:00
pim_tib.c pimd, pim6d: Changing IGMP to GM in debug macros. 2022-09-13 23:29:33 -07:00
pim_tib.h pimd: refactor/split IGMP integration 2022-03-12 22:47:08 +01:00
pim_time.c pimd: actually return msec in timer_remain_msec() 2021-11-17 11:17:44 +01:00
pim_time.h *: make consistent & update GPLv2 file headers 2017-05-15 16:37:41 +02:00
pim_tlv.c pimd, pim6d: send secondary address in PIM hello packet 2022-09-30 03:35:49 -07:00
pim_tlv.h pimd, pim6d: send secondary address in PIM hello packet 2022-09-30 03:35:49 -07:00
pim_upstream.c pimd: pim_upstream_add up must exist 2022-08-15 15:45:05 -04:00
pim_upstream.h pim6d: Adjust rpf_addr in pim_upstream 2022-07-06 02:41:47 -07:00
pim_util.c pimd, pim6d: Define pim_addr_is_multicast API 2022-10-20 01:11:52 -07:00
pim_util.h pimd, pim6d: Define pim_addr_is_multicast API 2022-10-20 01:11:52 -07:00
pim_vty.c pimd,pim6d: Change the show running commands based on address family 2022-09-26 00:09:45 -07:00
pim_vty.h pimd: un-dependency-hell pim_instance.h 2022-05-06 15:10:57 +02:00
pim_vxlan_instance.h pimd: handle ipmr-lo operational state changes 2020-02-14 09:18:30 -08:00
pim_vxlan.c pim6d: Pass pim_addr for pim_nht callbacks. 2022-07-06 02:56:43 -07:00
pim_vxlan.h pimd: un-dependency-hell pim_instance.h 2022-05-06 15:10:57 +02:00
pim_zebra.c pim6d: Adjust rpf_addr in pim_zebra 2022-07-06 02:41:47 -07:00
pim_zebra.h pimd: Remove the api from .h file since there is no definition of it 2022-07-17 23:01:52 -07:00
pim_zlookup.c pimd: Fix v4-over-v6 nexthop handling 2022-10-17 14:13:33 -07:00
pim_zlookup.h pimd: un-dependency-hell pim_instance.h 2022-05-06 15:10:57 +02:00
pim_zpthread.c pimd: un-dependency-hell pim_instance.h 2022-05-06 15:10:57 +02:00
pimd.c pimd: Limit pim's ecmp to what zebra tells us is the multipath 2022-06-23 13:29:19 -04:00
pimd.h pimd: Remove some unused defines in pimd.h 2022-09-28 08:27:02 -04:00
README pimd: fix frr url 2020-03-29 17:19:37 -04:00
subdir.am build, vtysh: extract vtysh commands from .xref 2022-10-26 17:12:34 +01:00
test_igmpv3_join.c pimd: Remove #if 0 code from system 2021-01-28 13:37:53 -05:00
TODO pimd: Cleanup TODO file 2018-02-26 21:33:02 -05:00
TROUBLESHOOTING pimd: merge pimd as of 2015-01-19 2016-05-25 20:38:32 -04:00

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 --