summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2017-01-09 09:41:29 +0100
committerSebastian Huber <sebastian.huber@embedded-brains.de>2017-01-10 09:53:33 +0100
commit46f0b8bd51857affb52a70a48f01569247e5cf4b (patch)
treea2df0132a9bd2f8841b4f729d9fed40d39157b6d
parentNETSTAT(1): Fix name list initialization (diff)
downloadrtems-libbsd-46f0b8bd51857affb52a70a48f01569247e5cf4b.tar.bz2
Enable multi-cast routing support
-rw-r--r--freebsd/usr.bin/netstat/mroute.c2
-rw-r--r--rtemsbsd/include/machine/rtems-bsd-config.h14
-rw-r--r--rtemsbsd/include/machine/rtems-bsd-sysinit.h6
-rw-r--r--testsuite/include/rtems/bsd/test/default-network-init.h2
4 files changed, 24 insertions, 0 deletions
diff --git a/freebsd/usr.bin/netstat/mroute.c b/freebsd/usr.bin/netstat/mroute.c
index 4d9d5b1d..729b63e6 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 02977318..ccc65d70 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 3817ad25..6f18cc2e 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 de73771d..73d247e0 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