mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-05-30 01:16:39 +00:00
![]() Fix the following crash when pim options are (un)configured on an non-existent interface. > r1(config)# int fgljdsf > r1(config-if)# no ip pim unicast-bsm > vtysh: error reading from pimd: Connection reset by peer (104)Warning: closing connection to pimd because of an I/O error! > #0 raise (sig=<optimized out>) at ../sysdeps/unix/sysv/linux/raise.c:50 > #1 0x00007f70c8f32249 in core_handler (signo=11, siginfo=0x7fffff88e4f0, context=0x7fffff88e3c0) at lib/sigevent.c:258 > #2 <signal handler called> > #3 0x0000556cfdd9b16d in lib_interface_pim_address_family_unicast_bsm_modify (args=0x7fffff88f130) at pimd/pim_nb_config.c:1910 > #4 0x00007f70c8efdcb5 in nb_callback_modify (context=0x556d00032b60, nb_node=0x556cffeeb9b0, event=NB_EV_APPLY, dnode=0x556d00031670, resource=0x556d00032b48, errmsg=0x7fffff88f710 "", errmsg_len=8192) > at lib/northbound.c:1538 > #5 0x00007f70c8efe949 in nb_callback_configuration (context=0x556d00032b60, event=NB_EV_APPLY, change=0x556d00032b10, errmsg=0x7fffff88f710 "", errmsg_len=8192) at lib/northbound.c:1888 > #6 0x00007f70c8efee82 in nb_transaction_process (event=NB_EV_APPLY, transaction=0x556d00032b60, errmsg=0x7fffff88f710 "", errmsg_len=8192) at lib/northbound.c:2016 > #7 0x00007f70c8efd658 in nb_candidate_commit_apply (transaction=0x556d00032b60, save_transaction=true, transaction_id=0x0, errmsg=0x7fffff88f710 "", errmsg_len=8192) at lib/northbound.c:1356 > #8 0x00007f70c8efd78e in nb_candidate_commit (context=..., candidate=0x556cffeb0e80, save_transaction=true, comment=0x0, transaction_id=0x0, errmsg=0x7fffff88f710 "", errmsg_len=8192) at lib/northbound.c:1389 > #9 0x00007f70c8f03e58 in nb_cli_classic_commit (vty=0x556d00025a80) at lib/northbound_cli.c:51 > #10 0x00007f70c8f043f8 in nb_cli_apply_changes_internal (vty=0x556d00025a80, > xpath_base=0x7fffff893bb0 "/frr-interface:lib/interface[name='fgljdsf']/frr-pim:pim/address-family[address-family='frr-routing:ipv4']", clear_pending=false) at lib/northbound_cli.c:178 > #11 0x00007f70c8f0475d in nb_cli_apply_changes (vty=0x556d00025a80, xpath_base_fmt=0x556cfdde9fe0 "./frr-pim:pim/address-family[address-family='%s']") at lib/northbound_cli.c:234 > #12 0x0000556cfdd8298f in pim_process_no_unicast_bsm_cmd (vty=0x556d00025a80) at pimd/pim_cmd_common.c:3493 > #13 0x0000556cfddcf782 in no_ip_pim_ucast_bsm (self=0x556cfde40b20 <no_ip_pim_ucast_bsm_cmd>, vty=0x556d00025a80, argc=4, argv=0x556d00031500) at pimd/pim_cmd.c:4950 > #14 0x00007f70c8e942f0 in cmd_execute_command_real (vline=0x556d00032070, vty=0x556d00025a80, cmd=0x0, up_level=0) at lib/command.c:1002 > #15 0x00007f70c8e94451 in cmd_execute_command (vline=0x556d00032070, vty=0x556d00025a80, cmd=0x0, vtysh=0) at lib/command.c:1061 > #16 0x00007f70c8e9499f in cmd_execute (vty=0x556d00025a80, cmd=0x556d00030320 "no ip pim unicast-bsm", matched=0x0, vtysh=0) at lib/command.c:1227 > #17 0x00007f70c8f51e44 in vty_command (vty=0x556d00025a80, buf=0x556d00030320 "no ip pim unicast-bsm") at lib/vty.c:616 > #18 0x00007f70c8f53bdd in vty_execute (vty=0x556d00025a80) at lib/vty.c:1379 > #19 0x00007f70c8f55d59 in vtysh_read (thread=0x7fffff896600) at lib/vty.c:2374 > #20 0x00007f70c8f4b209 in event_call (thread=0x7fffff896600) at lib/event.c:2011 > #21 0x00007f70c8ed109e in frr_run (master=0x556cffdb4ea0) at lib/libfrr.c:1217 > #22 0x0000556cfdddec12 in main (argc=2, argv=0x7fffff896828, envp=0x7fffff896840) at pimd/pim_main.c:165 > (gdb) f 3 > #3 0x0000556cfdd9b16d in lib_interface_pim_address_family_unicast_bsm_modify (args=0x7fffff88f130) at pimd/pim_nb_config.c:1910 > 1910 pim_ifp->ucast_bsm_accept = > (gdb) list > 1905 case NB_EV_ABORT: > 1906 break; > 1907 case NB_EV_APPLY: > 1908 ifp = nb_running_get_entry(args->dnode, NULL, true); > 1909 pim_ifp = ifp->info; > 1910 pim_ifp->ucast_bsm_accept = > 1911 yang_dnode_get_bool(args->dnode, NULL); > 1912 > 1913 break; > 1914 } > (gdb) p pim_ifp > $1 = (struct pim_interface *) 0x0 Fixes: |
||
---|---|---|
.. | ||
.gitignore | ||
AUTHORS | ||
CAVEATS | ||
COMMANDS | ||
DEBUG | ||
LINUX_KERNEL_MROUTE_MFC | ||
Makefile | ||
mtracebis_netlink.c | ||
mtracebis_netlink.h | ||
mtracebis_routeget.c | ||
mtracebis_routeget.h | ||
mtracebis.c | ||
pim6_cmd.c | ||
pim6_cmd.h | ||
pim6_main.c | ||
pim6_mld_protocol.h | ||
pim6_mld.c | ||
pim6_mld.h | ||
pim_addr.c | ||
pim_addr.h | ||
pim_assert.c | ||
pim_assert.h | ||
pim_bfd.c | ||
pim_bfd.h | ||
pim_bsm.c | ||
pim_bsm.h | ||
pim_cmd_common.c | ||
pim_cmd_common.h | ||
pim_cmd.c | ||
pim_cmd.h | ||
pim_errors.c | ||
pim_errors.h | ||
pim_hello.c | ||
pim_hello.h | ||
pim_iface.c | ||
pim_iface.h | ||
pim_ifchannel.c | ||
pim_ifchannel.h | ||
pim_igmp_join.h | ||
pim_igmp_mtrace.c | ||
pim_igmp_mtrace.h | ||
pim_igmp_stats.c | ||
pim_igmp_stats.h | ||
pim_igmp.c | ||
pim_igmp.h | ||
pim_igmpv2.c | ||
pim_igmpv2.h | ||
pim_igmpv3.c | ||
pim_igmpv3.h | ||
pim_instance.c | ||
pim_instance.h | ||
pim_int.c | ||
pim_int.h | ||
pim_join.c | ||
pim_join.h | ||
pim_jp_agg.c | ||
pim_jp_agg.h | ||
pim_macro.c | ||
pim_macro.h | ||
pim_main.c | ||
pim_memory.c | ||
pim_memory.h | ||
pim_mlag.c | ||
pim_mlag.h | ||
pim_mroute.c | ||
pim_mroute.h | ||
pim_msdp_packet.c | ||
pim_msdp_packet.h | ||
pim_msdp_socket.c | ||
pim_msdp_socket.h | ||
pim_msdp.c | ||
pim_msdp.h | ||
pim_msg.c | ||
pim_msg.h | ||
pim_nb_config.c | ||
pim_nb.c | ||
pim_nb.h | ||
pim_neighbor.c | ||
pim_neighbor.h | ||
pim_nht.c | ||
pim_nht.h | ||
pim_oil.c | ||
pim_oil.h | ||
pim_pim.c | ||
pim_pim.h | ||
pim_register.c | ||
pim_register.h | ||
pim_routemap.c | ||
pim_rp.c | ||
pim_rp.h | ||
pim_rpf.c | ||
pim_rpf.h | ||
pim_signals.c | ||
pim_signals.h | ||
pim_sock.c | ||
pim_sock.h | ||
pim_ssm.c | ||
pim_ssm.h | ||
pim_ssmpingd.c | ||
pim_ssmpingd.h | ||
pim_static.c | ||
pim_static.h | ||
pim_str.h | ||
pim_tib.c | ||
pim_tib.h | ||
pim_time.c | ||
pim_time.h | ||
pim_tlv.c | ||
pim_tlv.h | ||
pim_upstream.c | ||
pim_upstream.h | ||
pim_util.c | ||
pim_util.h | ||
pim_vty.c | ||
pim_vty.h | ||
pim_vxlan_instance.h | ||
pim_vxlan.c | ||
pim_vxlan.h | ||
pim_zebra.c | ||
pim_zebra.h | ||
pim_zlookup.c | ||
pim_zlookup.h | ||
pim_zpthread.c | ||
pimd.c | ||
pimd.h | ||
README | ||
subdir.am | ||
test_igmpv3_join.c | ||
TODO | ||
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 --