[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