summaryrefslogtreecommitdiff
path: root/net/ndproxy/files
diff options
context:
space:
mode:
Diffstat (limited to 'net/ndproxy/files')
-rw-r--r--net/ndproxy/files/ndproxy.in73
-rw-r--r--net/ndproxy/files/pkg-message.in22
2 files changed, 95 insertions, 0 deletions
diff --git a/net/ndproxy/files/ndproxy.in b/net/ndproxy/files/ndproxy.in
new file mode 100644
index 000000000000..548c21388903
--- /dev/null
+++ b/net/ndproxy/files/ndproxy.in
@@ -0,0 +1,73 @@
+#!/bin/sh
+#
+# $FreeBSD$
+#
+
+# PROVIDE: ndproxy
+# REQUIRE: NETWORKING sysctl
+# KEYWORD: nojail
+
+. /etc/rc.subr
+
+name="ndproxy"
+rcvar=ndproxy_enable
+start_cmd="ndproxy_start"
+stop_cmd="ndproxy_stop"
+
+ndproxy_start()
+{
+ echo "Starting ndproxy:"
+ if ! sysctl net.inet6.ndproxyconf_uplink_interface > /dev/null 2>&1; then
+ if ! kldload ndproxy > /dev/null 2>&1; then
+ echo Failure loading ndproxy.
+ return;
+ fi
+ fi
+
+ sysctl net.inet6.ndproxycount=0
+
+ if [ -z "${ndproxy_uplink_interface}" ]; then
+ echo "Warning: ndproxy_uplink_interface should be defined in rc.conf (see ndproxy(4))."
+ fi
+ sysctl net.inet6.ndproxyconf_uplink_interface=${ndproxy_uplink_interface}
+
+ if [ -z "${ndproxy_downlink_mac_address}" ]; then
+ echo "Warning: ndproxy_downlink_mac_address should be defined in rc.conf (see ndproxy(4))."
+ fi
+ sysctl net.inet6.ndproxyconf_downlink_mac_address=${ndproxy_downlink_mac_address}
+
+ if [ -z "${ndproxy_uplink_ipv6_addresses}" ]; then
+ echo "Warning: ndproxy_uplink_ipv6_addresses should be defined in rc.conf (see ndproxy(4))."
+ fi
+ sysctl net.inet6.ndproxyconf_exception_ipv6_addresses=${ndproxy_exception_ipv6_addresses}
+
+ # Note that ndproxy_exception_ipv6_addresses may be left empty.
+
+ if [ -n "${ndproxy_uplink_interface}" ]; then
+ if ! ifconfig ${ndproxy_uplink_interface} | head -1 | grep -q PPROMISC; then
+ echo "Putting interface ${ndproxy_uplink_interface} into permanently promiscuous mode."
+ ifconfig ${ndproxy_uplink_interface} promisc
+ fi
+ fi
+ sysctl net.inet6.ndproxyconf_uplink_ipv6_addresses=${ndproxy_uplink_ipv6_addresses}
+
+ echo Done.
+}
+
+ndproxy_stop()
+{
+ echo "Stopping ndproxy:"
+
+ if ! sysctl net.inet6.ndproxyconf_uplink_interface > /dev/null 2>&1; then
+ echo Failure unloading ndproxy.
+ else
+ if ! kldunload ndproxy > /dev/null 2>&1; then
+ echo Failure unloading ndproxy.
+ else
+ echo Done.
+ fi
+ fi
+}
+
+load_rc_config $name
+run_rc_command "$1"
diff --git a/net/ndproxy/files/pkg-message.in b/net/ndproxy/files/pkg-message.in
new file mode 100644
index 000000000000..4b65b7629f51
--- /dev/null
+++ b/net/ndproxy/files/pkg-message.in
@@ -0,0 +1,22 @@
+-------------------------------------------------------------------------------
+IMPORTANT! MAKE SURE TO READ THE FOLLOWING!
+
+Please remember to reinstall this port after kernel source update.
+
+ndproxy is configured using four sysctl kernel states. The boot script
+(%%PREFIX%%/etc/rc.d/ndproxy) can set those states using rc.conf variables.
+
+Here is the corresponding rc.conf variable to each sysctl kernel state:
+
+sysctl kernel state rc.conf corresponding variable
+-------------------------------------------------------------------------------
+net.inet6.ndproxyconf_uplink_interface ndproxy_uplink_interface
+net.inet6.ndproxyconf_downlink_mac_address ndproxy_downlink_mac_address
+net.inet6.ndproxyconf_exception_ipv6_addresses ndproxy_exception_ipv6_addresses
+net.inet6.ndproxyconf_uplink_ipv6_addresses ndproxy_uplink_ipv6_addresses
+
+The network interface set in ndproxy_uplink_interface will be put into
+permanently promiscuous mode.
+
+IMPORTANT! MAKE SURE TO READ THE ABOVE!
+-------------------------------------------------------------------------------