summaryrefslogtreecommitdiff
path: root/include/rtems/rtems_dhcp_failsafe.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/rtems/rtems_dhcp_failsafe.h')
-rw-r--r--include/rtems/rtems_dhcp_failsafe.h64
1 files changed, 64 insertions, 0 deletions
diff --git a/include/rtems/rtems_dhcp_failsafe.h b/include/rtems/rtems_dhcp_failsafe.h
new file mode 100644
index 0000000000..3c5a59fcb0
--- /dev/null
+++ b/include/rtems/rtems_dhcp_failsafe.h
@@ -0,0 +1,64 @@
+/*
+ Description: Wrapper around DHCP client to restart it when the interface
+ moves to another network.
+
+ Authors: Arnout Vandecappelle <arnout@mind.be>, Essensium/Mind
+ Maarten Van Es <maarten@mind.be>, Essensium/Mind
+ (C) Septentrio 2008
+
+ The license and distribution terms for this file may be
+ found in the file LICENSE in this distribution or at
+ http://www.rtems.org/license/LICENSE.
+*/
+
+#ifndef _RTEMS_DHCP_FAILSAFE_H_
+#define _RTEMS_DHCP_FAILSAFE_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Default settings for the DHCP failsafe. They can be overridden
+ * using rtems_bsdnet_dhcp_failsafe_config(); see that for descriptions.
+ */
+#ifndef RTEMS_DHCP_FAILSAFE_NETWORK_FAIL_TIMEOUT
+#define RTEMS_DHCP_FAILSAFE_NETWORK_FAIL_TIMEOUT 5
+#endif
+
+#ifndef RTEMS_DHCP_FAILSAFE_NETWORK_DOWN_TIME
+#define RTEMS_DHCP_FAILSAFE_NETWORK_DOWN_TIME 30
+#endif
+
+#ifndef RTEMS_DHCP_FAILSAFE_BROADCAST_DELAY
+#define RTEMS_DHCP_FAILSAFE_BROADCAST_DELAY 0
+#endif
+
+#ifndef RTEMS_DHCP_FAILSAFE_DHCP_MONITOR_PRIORITY
+#define RTEMS_DHCP_FAILSAFE_DHCP_MONITOR_PRIORITY 250
+#endif
+
+
+void rtems_bsdnet_do_dhcp_failsafe (void);
+
+/** Set the DHCP fallback options. See the commentary at the top of the
+ * implementation.
+ @note Some of these options can be compile-time disabled - see the code.
+ */
+void rtems_bsdnet_dhcp_failsafe_config(
+ int network_fail_timeout, /**< The number of seconds before the interface is
+ * considered disconnected
+ */
+ int network_down_time, /**< The number of seconds the interface
+ * remains down.
+ */
+ int broadcast_delay, /**< The delay in seconds before broadcasts
+ * are sent.
+ */
+ int dhcp_monitor_priority /**< The monitor priority.*/
+);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif