SMCRoute 2.5.6

SMCRoute is a daemon and command line tool to manipulate the multicast routing table in the UNIX kernel. Both FreeBSD and Linux kernels are supported. SMCRoute can be used as an alternative to dynamic multicast routing daemons like mrouted or pimd in situations where (only) static multicast routes should be maintained and/or no proper IGMP/MLD signaling exists.

Tags multicast daemon unix linux
License GNU GPL
State stable

Recent Releases

2.5.629 Nov 2022 03:35 minor feature: Update ChangeLog and bump version for v2.5.6 release Signed-off-by: Joachim Wiberg lt;troglobit@gmail.com gt;.
2.5.522 Nov 2021 03:15 minor feature: Update changelog and bump version for v2.5.5 release Signed-off-by: Joachim Wiberg lt;troglobit@gmail.com gt;.
2.5.326 Sep 2021 08:25 minor feature: New tests to verify add/del of IPv4/IPv6 routes in kernel MFC. build warning with gcc 10.2.1: "comparison is always true due to limited range of data type". Build warning with --disable-mrdisc configure option. cannot remove routes added with smcroutectl add, only affects add/del at runtime with smcroutectl, not.conf reload. build problem on Debian/kFreeBSD, used wrong queue.h.
2.5.229 Aug 2021 07:25 minor feature: Allow installing routes with no outbound interfaces. Reinitialize VIFs on reload in case of new interfaces. Handle cases when interfaces change ifindex, i.e. they've first been removed and then re-added with the same name. VIF leak when deleting interfaces with MRDISC enabled. handling when an (S,G) moves to another IIF. This where the SMCRoute kernel cache was out of sync with the kernel MFC. handling of lost/disabled interfaces at reload. This a couple of where routes were not updated properly at runtime. Update interface flags on reload, this when SMCRoute failed to detect interfaces that had their MULTICAST flag set or cleared at runtime Skip setsockopt() for IPC sockets. This warnings in syslog about failing to disable MULTICAST_LOOP and MULTICAST_ALL.
2.5.123 Aug 2021 03:16 minor feature: Add.sha256 checksum to dist files, useful for packagers. systemd Notify integration, restore NotifyAccess=main. ftbfs on older compilers, e.g. gcc 4.8.3, use -std=gnu99. Documentation refs in systemd unit file, new man pages.
2.5.019 Aug 2021 15:16 major feature: Highlights include; native /etc/smcroute.d/*.conf support and seamless update/removal of routes and groups by reloading .conf files or using smcroutectl. More details in the ChangeLog.
2.4.415 Feb 2019 01:45 minor feature: Allow same outbound interface as inbound for routes, only warn user. Systemd unit file hardening, recommended by Debian. Discontinued GPG signing, unused and signed with only one dev key. IGMP header checksum missing from mrdisc frames. Unblock all matching, and currently blocked, (S,G) to a. Newly installed (*,G) route, only the first know was unblocked. Timer nanosecond causing loss of address refresh on DHCP. Interfaces. Interface monitoring feature introduced in v2.4.3. Calling init script with stop does not stop smcrouted. ifindex in UNIX/POSIX is an interger, not unsigned short.
2.4.308 Nov 2018 09:05 minor feature: Add strlcat() replacement from OpenBSD, use instead of strcat(). smcrouted should never log to system console, proposed by Westermo. smcrouted fails to join multicast groups on interfaces that do not yet have an IP address when smcrouted starts up, or when it receives SIGHUP, e.g. DHCP client interfaces. This patch release adds a timer refresh of interface addresses that retries multicast group joins until an address is set. This is similar to, but does not handle interfaces that do not exist yet. Make sure Linux alias interfaces (baseif:num) are registered as baseif. Westermo found that use of alias interfaces cause multiple VIFs to be registered for the same base interface causing multicast routes to use the wrong inbound or outbound VIF. Alias interfacesuse the same underlying physical interface so only one VIF needed. display of route counters and column alignment. Minor spelling, found by Debian. Add missing status command to SysV init script, found by Debian. Simplify utimensat() replacement, AT_SYMLINK_NOFOLLOW unused.
2.4.209 Sep 2018 15:42 minor bugfix: Minor fixes for upcoming Debian release. Changes: Add wrapper script smcroute for use with old style startup scripts, Add symlinks to man pages for smcrouted.8 and smcroutectl.8, Update SysV init script, daemon now called smcrouted. Fixes: Fix #96: A .conf line may be missing final newline, this is fine, Spellcheck smcroute.conf example, Fix Lintian warning (Debian) for unbreakable line in man page
2.4.116 Jun 2018 14:15 minor bugfix: Allow re-configuration of unprivileged smcrouted, and minor updates/spellcheck of documentation and example .conf
2.4.011 Feb 2018 14:14 major feature: Interface wildcard support, disabled IPv4 `mrdisc` by default, and several fixes to `smcroutectl` tool.
2.3.113 Jun 2017 21:57 major bugfix: Fixes buggy interface and VIF re-initialization on SIGHUP, invalid interface name reference in mrdisc support, and a log macro bug in the .conf parser.
2.3.028 May 2017 20:36 major feature: Separation of daemon and client, with many new features in the client. Also, now loopback is supported!
2.2.203 Feb 2017 15:45 minor feature: New client command, -F, for immediately flushing dynamically learned (*,G) routes from the cache. New cache flush timeout option causes endless. Select() loop. Reported by Ramon Fried, @mellowcandle.
2.2.110 Jan 2017 09:45 minor feature: Portability, replace use of non-std __progname with small function. systemd.service file missing -d to start daemon.
2.2.004 Dec 2016 20:05 minor feature: Support for dropping root privileges after opening the multicast routing socket and creating the PID file. Support for Source Specific Multicast group subscription (only IPv4). Support for systemd, service file included and installed by default. Remove GNUisms to be able to build and run on Alpine Linux (musl libc). Add OpenBSD queue.h for systems that do not have any *BSD sys/queue.h . Coding style cleanup and minor refactor.
2.1.120 Aug 2016 20:25 minor feature: When SIGHUP is received SMCRoute now touches its PID file as an Acknowledgement. This is used by some process supervision daemons, Like Finit, on system Configuration changes to detect when a daemon is done. The mtime is Set using the utimensat() function to ensure nanosecond resolution. Minor memory leak at exit. The Valgrind tool warns. That all memory is not freed when smcroute exits. On most modern UNIX systems, on platforms with MMU, this is not a problem, but on Older systems, or uClinux, memory is not freed at program exit. Removing wildcard route at runtime does not work if no. Kernel routes have been set. IPv6 disabled by default, despite what configure says. in its help text. Enabling it disables it... by enablig IPv6 by default.
2.1.017 Feb 2016 21:37 major feature: Lots of new features and bug fixes, see https://github.com/troglobit/smcroute/releases/tag/2.1.0 for details