[rtems-libbsd commit] Enable multi-cast routing support
Sebastian Huber
sebh at rtems.org
Tue Jan 10 10:06:12 UTC 2017
Module: rtems-libbsd
Branch: master
Commit: 46f0b8bd51857affb52a70a48f01569247e5cf4b
Changeset: http://git.rtems.org/rtems-libbsd/commit/?id=46f0b8bd51857affb52a70a48f01569247e5cf4b
Author: Sebastian Huber <sebastian.huber at embedded-brains.de>
Date: Mon Jan 9 09:41:29 2017 +0100
Enable multi-cast routing support
---
freebsd/usr.bin/netstat/mroute.c | 2 ++
rtemsbsd/include/machine/rtems-bsd-config.h | 14 ++++++++++++++
rtemsbsd/include/machine/rtems-bsd-sysinit.h | 6 ++++++
testsuite/include/rtems/bsd/test/default-network-init.h | 2 ++
4 files changed, 24 insertions(+)
diff --git a/freebsd/usr.bin/netstat/mroute.c b/freebsd/usr.bin/netstat/mroute.c
index 4d9d5b1..729b63e 100644
--- a/freebsd/usr.bin/netstat/mroute.c
+++ b/freebsd/usr.bin/netstat/mroute.c
@@ -420,10 +420,12 @@ mrt_stats()
mstaddr = nl[N_MRTSTAT].n_value;
+#ifndef __rtems__
if (mstaddr == 0) {
fprintf(stderr, "No IPv4 MROUTING kernel support.\n");
return;
}
+#endif /* __rtems__ */
if (fetch_stats("net.inet.ip.mrtstat", mstaddr, &mrtstat,
sizeof(mrtstat), kread_counters) != 0)
diff --git a/rtemsbsd/include/machine/rtems-bsd-config.h b/rtemsbsd/include/machine/rtems-bsd-config.h
index 0297731..ccc65d7 100644
--- a/rtemsbsd/include/machine/rtems-bsd-config.h
+++ b/rtemsbsd/include/machine/rtems-bsd-config.h
@@ -98,6 +98,18 @@ extern "C" {
#define RTEMS_BSD_CFGDECL_NET_PF_UNIX
#endif /* RTEMS_BSD_CONFIG_NET_PF_UNIX */
+#if defined(RTEMS_BSD_CONFIG_NET_IP_MROUTE)
+ #define RTEMS_BSD_CFGDECL_NET_IP_MROUTE SYSINIT_NEED_NET_IP_MROUTE
+#else
+ #define RTEMS_BSD_CFGDECL_NET_IP_MROUTE
+#endif /* RTEMS_BSD_CONFIG_NET_IP_MROUTE */
+
+#if defined(RTEMS_BSD_CONFIG_NET_IP6_MROUTE)
+ #define RTEMS_BSD_CFGDECL_NET_IP6_MROUTE SYSINIT_NEED_NET_IP6_MROUTE
+#else
+ #define RTEMS_BSD_CFGDECL_NET_IP6_MROUTE
+#endif /* RTEMS_BSD_CONFIG_NET_IP6_MROUTE */
+
/*
* Bridging.
* https://www.freebsd.org/doc/handbook/network-bridging.html
@@ -198,6 +210,8 @@ extern "C" {
* Create the networking modules and interfaces.
*/
RTEMS_BSD_CFGDECL_NET_PF_UNIX;
+ RTEMS_BSD_CFGDECL_NET_IP_MROUTE;
+ RTEMS_BSD_CFGDECL_NET_IP6_MROUTE;
RTEMS_BSD_CFGDECL_NET_IF_BRIDGE;
RTEMS_BSD_CFGDECL_NET_IF_LAGG;
RTEMS_BSD_CFGDECL_NET_IF_VLAN;
diff --git a/rtemsbsd/include/machine/rtems-bsd-sysinit.h b/rtemsbsd/include/machine/rtems-bsd-sysinit.h
index 3817ad2..6f18cc2 100644
--- a/rtemsbsd/include/machine/rtems-bsd-sysinit.h
+++ b/rtemsbsd/include/machine/rtems-bsd-sysinit.h
@@ -84,6 +84,12 @@
#define SYSINIT_NEED_NET_PF_UNIX \
SYSINIT_DOMAIN_REFERENCE(local)
+#define SYSINIT_NEED_NET_IP_MROUTE \
+ SYSINIT_MODULE_REFERENCE(ip_mroute)
+
+#define SYSINIT_NEED_NET_IP6_MROUTE \
+ SYSINIT_MODULE_REFERENCE(ip6_mroute)
+
#define SYSINIT_NEED_NET_IF_BFE \
SYSINIT_DRIVER_REFERENCE(bfe, pci)
diff --git a/testsuite/include/rtems/bsd/test/default-network-init.h b/testsuite/include/rtems/bsd/test/default-network-init.h
index de73771..73d247e 100644
--- a/testsuite/include/rtems/bsd/test/default-network-init.h
+++ b/testsuite/include/rtems/bsd/test/default-network-init.h
@@ -306,6 +306,8 @@ Init(rtems_task_argument arg)
#endif
#define RTEMS_BSD_CONFIG_NET_PF_UNIX
+#define RTEMS_BSD_CONFIG_NET_IP_MROUTE
+#define RTEMS_BSD_CONFIG_NET_IP6_MROUTE
#define RTEMS_BSD_CONFIG_NET_IF_LAGG
#define RTEMS_BSD_CONFIG_NET_IF_VLAN
#define RTEMS_BSD_CONFIG_BSP_CONFIG
More information about the vc
mailing list