summaryrefslogtreecommitdiffstats
path: root/contrib/isc-dhcp/includes/failover.h
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/isc-dhcp/includes/failover.h')
-rw-r--r--contrib/isc-dhcp/includes/failover.h313
1 files changed, 0 insertions, 313 deletions
diff --git a/contrib/isc-dhcp/includes/failover.h b/contrib/isc-dhcp/includes/failover.h
deleted file mode 100644
index 2fd880d..0000000
--- a/contrib/isc-dhcp/includes/failover.h
+++ /dev/null
@@ -1,313 +0,0 @@
-/* failover.h
-
- Definitions for address trees... */
-
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 2000-2003 by Internet Software Consortium
- *
- * Permission to use, copy, modify, and distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR
- * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
- * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * Internet Systems Consortium, Inc.
- * 950 Charter Street
- * Redwood City, CA 94063
- * <info@isc.org>
- * http://www.isc.org/
- *
- * This software has been written for Internet Systems Consortium
- * by Ted Lemon in cooperation with Vixie Enterprises and Nominum, Inc.
- * To learn more about Internet Systems Consortium, see
- * ``http://www.isc.org/''. To learn more about Vixie Enterprises,
- * see ``http://www.vix.com''. To learn more about Nominum, Inc., see
- * ``http://www.nominum.com''.
- */
-
-#if defined (FAILOVER_PROTOCOL)
-struct failover_option_info {
- int code;
- const char *name;
- enum { FT_UINT8, FT_IPADDR, FT_UINT32, FT_BYTES, FT_TEXT_OR_BYTES,
- FT_DDNS, FT_DDNS1, FT_UINT16, FT_TEXT,
- FT_UNDEF, FT_DIGEST } type;
- int num_present;
- int offset;
- u_int32_t bit;
-};
-
-typedef struct {
- unsigned count;
- u_int8_t *data;
-} failover_option_t;
-
-#define FM_OFFSET(x) (long)(&(((failover_message_t *)0) -> x))
-
-/* Failover message options: */
-#define FTO_BINDING_STATUS 1
-#define FTB_BINDING_STATUS 0x00000002
-#define FTO_ASSIGNED_IP_ADDRESS 2
-#define FTB_ASSIGNED_IP_ADDRESS 0x00000004
-#define FTO_SERVER_ADDR 3
-#define FTB_SERVER_ADDR 0x00000008
-#define FTO_ADDRESSES_TRANSFERRED 4
-#define FTB_ADDRESSES_TRANSFERRED 0x00000010
-#define FTO_CLIENT_IDENTIFIER 5
-#define FTB_CLIENT_IDENTIFIER 0x00000020
-#define FTO_CHADDR 6
-#define FTB_CHADDR 0x00000040
-#define FTO_DDNS 7
-#define FTB_DDNS 0x00000080
-#define FTO_REJECT_REASON 8
-#define FTB_REJECT_REASON 0x00000100
-#define FTO_MESSAGE 9
-#define FTB_MESSAGE 0x00000200
-#define FTO_MCLT 10
-#define FTB_MCLT 0x00000400
-#define FTO_VENDOR_CLASS 11
-#define FTB_VENDOR_CLASS 0x00000800
-#define FTO_LEASE_EXPIRY 13
-#define FTB_LEASE_EXPIRY 0x00002000
-#define FTO_POTENTIAL_EXPIRY 14
-#define FTB_POTENTIAL_EXPIRY 0x00004000
-#define FTO_GRACE_EXPIRY 15
-#define FTB_GRACE_EXPIRY 0x00008000
-#define FTO_CLTT 16
-#define FTB_CLTT 0x00010000
-#define FTO_STOS 17
-#define FTB_STOS 0x00020000
-#define FTO_SERVER_STATE 18
-#define FTB_SERVER_STATE 0x00040000
-#define FTO_SERVER_FLAGS 19
-#define FTB_SERVER_FLAGS 0x00080000
-#define FTO_VENDOR_OPTIONS 20
-#define FTB_VENDOR_OPTIONS 0x00100000
-#define FTO_MAX_UNACKED 21
-#define FTB_MAX_UNACKED 0x00200000
-#define FTO_RECEIVE_TIMER 23
-#define FTB_RECEIVE_TIMER 0x00800000
-#define FTO_HBA 24
-#define FTB_HBA 0x01000000
-#define FTO_MESSAGE_DIGEST 25
-#define FTB_MESSAGE_DIGEST 0x02000000
-#define FTO_PROTOCOL_VERSION 26
-#define FTB_PROTOCOL_VERSION 0x04000000
-#define FTO_TLS_REQUEST 27
-#define FTB_TLS_REQUEST 0x08000000
-#define FTO_TLS_REPLY 28
-#define FTB_TLS_REPLY 0x10000000
-#define FTO_REQUEST_OPTIONS 29
-#define FTB_REQUEST_OPTIONS 0x20000000
-#define FTO_REPLY_OPTIONS 30
-#define FTB_REPLY_OPTIONS 0x40000000
-#define FTO_MAX FTO_REPLY_OPTIONS
-
-/* Failover protocol message types: */
-#define FTM_POOLREQ 1
-#define FTM_POOLRESP 2
-#define FTM_BNDUPD 3
-#define FTM_BNDACK 4
-#define FTM_CONNECT 5
-#define FTM_CONNECTACK 6
-#define FTM_UPDREQ 7
-#define FTM_UPDDONE 8
-#define FTM_UPDREQALL 9
-#define FTM_STATE 10
-#define FTM_CONTACT 11
-#define FTM_DISCONNECT 12
-
-/* Reject reasons: */
-
-#define FTR_ILLEGAL_IP_ADDR 1
-#define FTR_FATAL_CONFLICT 2
-#define FTR_MISSING_BINDINFO 3
-#define FTR_TIMEMISMATCH 4
-#define FTR_INVALID_MCLT 5
-#define FTR_MISC_REJECT 6
-#define FTR_DUP_CONNECTION 7
-#define FTR_INVALID_PARTNER 8
-#define FTR_TLS_UNSUPPORTED 9
-#define FTR_TLS_UNCONFIGURED 10
-#define FTR_TLS_REQUIRED 11
-#define FTR_DIGEST_UNSUPPORTED 12
-#define FTR_DIGEST_UNCONFIGURED 13
-#define FTR_VERSION_MISMATCH 14
-#define FTR_MISSING_BIND_INFO 15
-#define FTR_OUTDATED_BIND_INFO 16
-#define FTR_LESS_CRIT_BIND_INFO 17
-#define FTR_NO_TRAFFIC 18
-#define FTR_HBA_CONFLICT 19
-#define FTR_UNKNOWN 254
-
-#define DHCP_FAILOVER_MAX_MESSAGE_SIZE 2048
-
-/* Failover server flags. */
-#define FTF_STARTUP 1
-
-typedef struct failover_message {
- int refcnt;
- struct failover_message *next;
-
- u_int8_t type;
-
- u_int8_t binding_status;
- u_int8_t protocol_version;
- u_int8_t reject_reason;
- u_int8_t server_flags;
- u_int8_t server_state;
- u_int8_t tls_reply;
- u_int8_t tls_request;
- u_int32_t stos;
- u_int32_t time;
- u_int32_t xid;
- u_int32_t addresses_transferred;
- u_int32_t assigned_addr;
- u_int32_t client_ltt;
- u_int32_t expiry;
- u_int32_t grace_expiry;
- u_int32_t max_unacked;
- u_int32_t mclt;
- u_int32_t potential_expiry;
- u_int32_t receive_timer;
- u_int32_t server_addr;
- failover_option_t chaddr;
- failover_option_t client_identifier;
- failover_option_t hba;
- failover_option_t message;
- failover_option_t reply_options;
- failover_option_t request_options;
- ddns_fqdn_t ddns;
- failover_option_t vendor_class;
- failover_option_t vendor_options;
-
- int options_present;
-} failover_message_t;
-
-typedef struct {
- OMAPI_OBJECT_PREAMBLE;
- struct option_cache *peer_address;
- unsigned peer_port;
- int options_present;
- enum dhcp_flink_state {
- dhcp_flink_start,
- dhcp_flink_message_length_wait,
- dhcp_flink_message_wait,
- dhcp_flink_disconnected,
- dhcp_flink_state_max
- } state;
- failover_message_t *imsg;
- struct _dhcp_failover_state *state_object;
- u_int16_t imsg_len;
- unsigned imsg_count;
- u_int8_t imsg_payoff; /* Pay*load* offset. :') */
- u_int32_t xid;
-} dhcp_failover_link_t;
-
-typedef struct _dhcp_failover_listener {
- OMAPI_OBJECT_PREAMBLE;
- struct _dhcp_failover_listener *next;
- omapi_addr_t address;
-} dhcp_failover_listener_t;
-#endif /* FAILOVER_PROTOCOL */
-
-/* A failover peer. */
-enum failover_state {
- unknown_state,
- partner_down,
- normal,
- communications_interrupted,
- resolution_interrupted,
- potential_conflict,
- recover,
- recover_done,
- shut_down,
- paused,
- startup,
- recover_wait
-};
-
-/* Service states are simplifications of failover states, particularly
- useful because the startup state isn't actually implementable as a
- seperate failover state without maintaining a state stack. */
-
-enum service_state {
- unknown_service_state,
- cooperating,
- not_cooperating,
- service_partner_down,
- not_responding,
- service_startup
-};
-
-#if defined (FAILOVER_PROTOCOL)
-typedef struct _dhcp_failover_config {
- struct option_cache *address;
- int port;
- u_int32_t max_flying_updates;
- enum failover_state state;
- TIME stos;
- u_int32_t max_response_delay;
-} dhcp_failover_config_t;
-
-typedef struct _dhcp_failover_state {
- OMAPI_OBJECT_PREAMBLE;
- struct _dhcp_failover_state *next;
- char *name; /* Name of this failover instance. */
- dhcp_failover_config_t me; /* My configuration. */
- dhcp_failover_config_t partner; /* Partner's configuration. */
- enum failover_state saved_state; /* Saved state during startup. */
- struct data_string server_identifier; /* Server identifier (IP addr) */
- u_int32_t mclt;
-
- u_int8_t *hba; /* Hash bucket array for load balancing. */
- int load_balance_max_secs;
-
- enum service_state service_state;
- const char *nrr; /* Printable reason why we're in the
- not_responding service state (empty
- string if we are responding. */
-
- dhcp_failover_link_t *link_to_peer; /* Currently-established link
- to peer. */
-
- enum {
- primary, secondary
- } i_am; /* We are primary or secondary in this relationship. */
-
- TIME last_packet_sent; /* Timestamp on last packet we sent. */
- TIME last_timestamp_received; /* The last timestamp we sent that
- has been returned by our partner. */
- TIME skew; /* The skew between our clock and our partner's. */
- struct lease *update_queue_head; /* List of leases we haven't sent
- to peer. */
- struct lease *update_queue_tail;
-
- struct lease *ack_queue_head; /* List of lease updates the peer
- hasn't yet acked. */
- struct lease *ack_queue_tail;
-
- struct lease *send_update_done; /* When we get a BNDACK for this
- lease, send an UPDDONE message. */
- int cur_unacked_updates; /* Number of updates we've sent
- that have not yet been acked. */
-
- /* List of messages which we haven't
- acked yet. */
- failover_message_t *toack_queue_head;
- failover_message_t *toack_queue_tail;
- int pending_acks; /* Number of messages in the toack
- queue. */
- int pool_count; /* Number of pools referencing this
- failover state object. */
-} dhcp_failover_state_t;
-
-#define DHCP_FAILOVER_VERSION 1
-#endif /* FAILOVER_PROTOCOL */
OpenPOWER on IntegriCloud