mirror_frr/pimd
Donatas Abraitis 42982834d4 pimd: Return empty JSON if we query non existing interface for IGMP stats
Now we return all zeroed stats, which seems wrong. Handle the same way, as
with PIM interfaces. Return empty JSON and a warning for VTYSH.

```
exit1-debian-11# sh ip igmp statistics interface belekas
% No such interface
exit1-debian-11# sh ip igmp statistics interface belekas json
{
}
```

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2022-03-15 17:08:35 +02: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 ripd ripngd: variable shadowing fixes 2018-09-12 12:55:31 +02: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 pim6d: Adding "ipv6 pim rp <> prefix-list <>" cli to pimv6 2022-03-08 00:57:51 -08:00
pim6_cmd.h pim6d: Adding "ipv6 pim sm" cli 2022-03-01 07:23:44 -08:00
pim6_main.c pim6d: reenable pim_init() 2022-03-12 22:57:34 +01:00
pim6_stubs.c Merge pull request #10694 from opensourcerouting/pim6-nht-reenable 2022-03-09 11:51:18 -05:00
pim_addr.c pim6d: remove PIM_V6_TEMP_BREAK 2022-02-16 16:40:56 +01:00
pim_addr.h pim6d: moving FRR_PIM_AF_XPATH_VAL into pim_nb.h 2022-02-28 15:57:47 -08:00
pim_assert.c *: Change thread->func to return void instead of int 2022-02-23 19:56:04 -05: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 pim6d: Modify pim_rp_del for PIMv4/PIMv6 2022-03-08 00:57:51 -08:00
pim_bsm.h pim6d: Modify pim_rp_new for pimv6 2022-03-08 00:57:51 -08:00
pim_cmd_common.c pimd: Fix Null pointer dereferences 2022-03-11 10:07:01 -08:00
pim_cmd_common.h pimd: Modify "ip pim rp <> prefix-list <>" command 2022-03-08 00:54:49 -08:00
pim_cmd.c pimd: Return empty JSON if we query non existing interface for IGMP stats 2022-03-15 17:08:35 +02:00
pim_cmd.h pimd : Add support for MLAG Register & Un-register 2019-11-13 19:46:52 -08: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 pim6d: IPv6-adjust Hello/TLV processing 2022-02-14 06:45:03 +01:00
pim_hello.h pim6d: IPv6-adjust Hello/TLV processing 2022-02-14 06:45:03 +01:00
pim_iface.c pimd: Add IGMP join sent/failed statistics 2022-03-13 19:31:34 +02:00
pim_iface.h pimd: Add IGMP join sent/failed statistics 2022-03-13 19:31:34 +02:00
pim_ifchannel.c pim6d: fix some format strings for IPv6 2022-03-11 13:43:19 +01: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: Add IGMP join sent/failed statistics 2022-03-13 19:31:34 +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: Show total received messages IGMP stats 2022-03-14 22:49:23 +02:00
pim_igmp_stats.h pimd: Show total received messages IGMP stats 2022-03-14 22:49:23 +02:00
pim_igmp.c pimd: Add additional IGMP stats (generic/group specific queries sent) 2022-03-14 10:50:28 +02:00
pim_igmp.h pimd: Add additional IGMP stats (generic/group specific queries sent) 2022-03-14 10:50:28 +02:00
pim_igmpv2.c Merge pull request #10012 from AbhishekNR/upstream 2022-03-15 07:54:04 -04: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 Merge pull request #10012 from AbhishekNR/upstream 2022-03-15 07:54:04 -04:00
pim_igmpv3.h pim6d: drop off IGMP code 2022-02-16 16:40:56 +01:00
pim_instance.c *: rework renaming the default VRF 2021-12-21 22:09:29 +03:00
pim_instance.h pimd: de-circularize includes 2021-08-27 10:41:23 +02: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 pim6d: encode PIM joins correctly 2022-03-12 22:57:34 +01: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 pim6d: IPv6-adjust RPF lookups 2022-02-16 16:32:26 +01:00
pim_jp_agg.h pimd: Modifying in_addr to pim_addr in struct pim_jp_agg_group for IPv6 2022-01-10 21:10:29 -08:00
pim_macro.c pim6d: IPv6-adjust pim_ifchannel_* 2022-02-14 06:45:03 +01: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: move iface lib initialization to a proper place 2022-01-24 20:14:18 +03: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 *: Change thread->func to return void instead of int 2022-02-23 19:56:04 -05:00
pim_mlag.h pim6d: drop off MLAG code 2022-02-16 16:40:56 +01:00
pim_mroute.c Merge pull request #10657 from patrasar/pim_remove_in_addr_none 2022-03-02 10:42:17 +01:00
pim_mroute.h pim6d: IPv6-adjust mroute code 2022-02-16 16:40:56 +01:00
pim_msdp_packet.c bgpd, lib, pimd: Remove sockopt_cork 2022-03-12 08:21:16 -05: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 *: Change thread->func to return void instead of int 2022-02-23 19:56:04 -05:00
pim_msdp_socket.h pimd: Make msdp struct pim_instance * aware 2017-07-24 13:51:37 -04:00
pim_msdp.c *: Change thread->func to return void instead of int 2022-02-23 19:56:04 -05: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: remove PIM_V6_TEMP_BREAK 2022-02-16 16:40:56 +01:00
pim_msg.h pim6d: Abstract api to get src and dst from ip hdr 2022-03-10 03:01:47 -08:00
pim_nb_config.c pim6d: Add pim_get_all_mcast_group api 2022-03-08 00:57:51 -08:00
pim_nb.c pim: Keeping list of address-family under gmp container 2022-01-17 05:10:20 -08:00
pim_nb.h pim6d: moving FRR_PIM_AF_XPATH_VAL into pim_nb.h 2022-02-28 15:57:47 -08:00
pim_neighbor.c *: Change thread->func to return void instead of int 2022-02-23 19:56:04 -05:00
pim_neighbor.h pim6d: IPv6-adjust neigh->source_addr 2022-02-14 06:45:03 +01:00
pim_nht.c pimd: be more informative about missing neighbors 2022-03-12 22:57:28 +01:00
pim_nht.h pimd: add back blocking RPF for BSM 2021-11-17 11:17:44 +01:00
pim_oil.c pimd: add safety check to OIL add/del 2022-03-12 22:47:08 +01:00
pim_oil.h pim6d: IPv6-adjust mroute code 2022-02-16 16:40:56 +01:00
pim_pim.c Merge pull request #10786 from opensourcerouting/pim6-pim-prep 2022-03-14 09:35:37 -04:00
pim_pim.h pim6d: IPv6-adjust pim_msg_send() and related 2022-02-14 06:45:03 +01:00
pim_register.c pimd: A wrong address family means the register-stop receive fails 2022-03-14 15:52:37 -04:00
pim_register.h pim6d: Parsing pimv6 register msg 2022-03-10 03:24:46 -08: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: Show group-type under show ip pim rp-info 2022-03-12 10:41:07 +02:00
pim_rp.h pimd: Show group-type under show ip pim rp-info 2022-03-12 10:41:07 +02:00
pim_rpf.c pim6d: Modify apis in pim_rpf.c for PIMv4/PIMv6 2022-03-08 00:57:51 -08:00
pim_rpf.h Merge pull request #10657 from patrasar/pim_remove_in_addr_none 2022-03-02 10:42:17 +01: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 pimd: Add IGMP join sent/failed statistics 2022-03-13 19:31:34 +02:00
pim_sock.h pimd: Add IGMP join sent/failed statistics 2022-03-13 19:31:34 +02:00
pim_ssm.c pimd: refactor/split IGMP integration 2022-03-12 22:47:08 +01:00
pim_ssm.h pimd: Show group-type under show ip pim rp-info 2022-03-12 10:41:07 +02:00
pim_ssmpingd.c pim6d: pim6d socket changes 2022-03-12 15:59:01 +01:00
pim_ssmpingd.h pimd: Make pim_ssmpingd.c 'struct pim_instance' aware 2017-07-24 13:51:37 -04:00
pim_static.c pim6d: Adding show running for ipv6 mld commands 2022-02-28 01:38:41 -08:00
pim_static.h pim6d: IPv6-adjust static multicast routes 2022-02-16 16:40:56 +01:00
pim_str.c pimd: remove pim_str_sg_dump() 2022-01-17 14:02:18 +01:00
pim_str.h pimd: remove pim_addr_copy 2022-01-17 14:08:32 +01:00
pim_tib.c pimd: refactor/split IGMP integration 2022-03-12 22:47:08 +01: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 pim6d: decode IPv6 source addresses 2022-03-12 22:57:34 +01:00
pim_tlv.h pim6d: IPv6-adjust Hello/TLV processing 2022-02-14 06:45:03 +01:00
pim_upstream.c Merge pull request #10583 from donaldsharp/pim_upstream_timers 2022-03-15 14:35:30 +02:00
pim_upstream.h pim6d: Handling IPV6 in pim_upstream 2022-02-28 11:10:00 -08:00
pim_util.c pim6d: Add pim_get_all_mcast_group api 2022-03-08 00:57:51 -08:00
pim_util.h pim6d: Add pim_get_all_mcast_group api 2022-03-08 00:57:51 -08:00
pim_vty.c pimd: Change the show running commands based on address family 2022-02-28 01:38:41 -08:00
pim_vty.h pim6d: Adding show running for ipv6 mld commands 2022-02-28 01:38:41 -08:00
pim_vxlan_instance.h pimd: handle ipmr-lo operational state changes 2020-02-14 09:18:30 -08:00
pim_vxlan.c *: Change thread->func to return void instead of int 2022-02-23 19:56:04 -05:00
pim_vxlan.h pimd: move, rename and deploy pim_addr_is_any() 2022-01-17 14:03:26 +01:00
pim_zebra.c pim6d: reenable address management code 2022-03-12 22:47:13 +01:00
pim_zebra.h pimd: refactor/split IGMP integration 2022-03-12 22:47:08 +01:00
pim_zlookup.c pim6d: pim_nht changes for pimv6 2022-02-28 13:36:02 -08:00
pim_zlookup.h pim6d: IPv6-adjust RPF lookups 2022-02-16 16:32:26 +01:00
pim_zpthread.c *: Change thread->func to return void instead of int 2022-02-23 19:56:04 -05:00
pimd.c pim6d: Adding the base changes 2022-02-28 01:38:24 -08:00
pimd.h pim6d: IPv6-adjust pim_msg_send() and related 2022-02-14 06:45:03 +01:00
README pimd: fix frr url 2020-03-29 17:19:37 -04:00
subdir.am pimd: refactor/split IGMP integration 2022-03-12 22:47:08 +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 --