diff options
author | rwatson <rwatson@FreeBSD.org> | 2008-05-25 22:11:40 +0000 |
---|---|---|
committer | rwatson <rwatson@FreeBSD.org> | 2008-05-25 22:11:40 +0000 |
commit | a3623cb733d4a3ddcf8ba280724b8ce3f19a7a58 (patch) | |
tree | afe56b8f23cfc7884850445d064a110b6ac85c9e /usr.sbin/atm/scspd/scsp_var.h | |
parent | 2f956b205ca6c855f85983809448ddc387407d46 (diff) | |
download | FreeBSD-src-a3623cb733d4a3ddcf8ba280724b8ce3f19a7a58.zip FreeBSD-src-a3623cb733d4a3ddcf8ba280724b8ce3f19a7a58.tar.gz |
Remove netatm from HEAD as it is not MPSAFE and relies on the now removed
NET_NEEDS_GIANT. netatm has been disconnected from the build for ten
months in HEAD/RELENG_7. Specifics:
- netatm include files
- netatm command line management tools
- libatm
- ATM parts in rescue and sysinstall
- sample configuration files and documents
- kernel support as a module or in NOTES
- netgraph wrapper nodes for netatm
- ctags data for netatm.
- netatm-specific device drivers.
MFC after: 3 weeks
Reviewed by: bz
Discussed with: bms, bz, harti
Diffstat (limited to 'usr.sbin/atm/scspd/scsp_var.h')
-rw-r--r-- | usr.sbin/atm/scspd/scsp_var.h | 461 |
1 files changed, 0 insertions, 461 deletions
diff --git a/usr.sbin/atm/scspd/scsp_var.h b/usr.sbin/atm/scspd/scsp_var.h deleted file mode 100644 index fbbddc7..0000000 --- a/usr.sbin/atm/scspd/scsp_var.h +++ /dev/null @@ -1,461 +0,0 @@ -/* - * - * =================================== - * HARP | Host ATM Research Platform - * =================================== - * - * - * This Host ATM Research Platform ("HARP") file (the "Software") is - * made available by Network Computing Services, Inc. ("NetworkCS") - * "AS IS". NetworkCS does not provide maintenance, improvements or - * support of any kind. - * - * NETWORKCS MAKES NO WARRANTIES OR REPRESENTATIONS, EXPRESS OR IMPLIED, - * INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY - * AND FITNESS FOR A PARTICULAR PURPOSE, AS TO ANY ELEMENT OF THE - * SOFTWARE OR ANY SUPPORT PROVIDED IN CONNECTION WITH THIS SOFTWARE. - * In no event shall NetworkCS be responsible for any damages, including - * but not limited to consequential damages, arising from or relating to - * any use of the Software or related support. - * - * Copyright 1994-1998 Network Computing Services, Inc. - * - * Copies of this Software may be made, however, the above copyright - * notice must be reproduced on all copies. - * - * @(#) $FreeBSD$ - * - */ - -/* - * Server Cache Synchronization Protocol (SCSP) Support - * ---------------------------------------------------- - * - * SCSP message formats - * - */ - -#ifndef _SCSP_SCSP_VAR_H -#define _SCSP_SCSP_VAR_H - - -/* - * Protocol constants - */ -#define SCSP_Open_Interval 30 -#define SCSP_HELLO_Interval 3 -#define SCSP_HELLO_DF 3 -#define SCSP_CAReXmitInterval 3 -#define SCSP_CSUSReXmitInterval 3 -#define SCSP_CSA_HOP_CNT 3 -#define SCSP_CSUReXmitInterval 2 -#define SCSP_CSUReXmitMax 5 - - -/* - * Operational constants - */ -#define SCSPD_CONFIG "/etc/scspd.conf" -#define SCSPD_DIR "/tmp" -#define SCSPD_DUMP "/tmp/scspd.dump" -#define SCSP_HASHSZ 19 -#define SCSPD_SOCK_NAME "SCSPD" - - -/* - * HELLO finite state machine states - */ -#define SCSP_HFSM_DOWN 0 -#define SCSP_HFSM_WAITING 1 -#define SCSP_HFSM_UNI_DIR 2 -#define SCSP_HFSM_BI_DIR 3 -#define SCSP_HFSM_STATE_CNT SCSP_HFSM_BI_DIR + 1 - - -/* - * HELLO finite state machine events - */ -#define SCSP_HFSM_VC_ESTAB 0 -#define SCSP_HFSM_VC_CLOSED 1 -#define SCSP_HFSM_HELLO_T 2 -#define SCSP_HFSM_RCV_T 3 -#define SCSP_HFSM_RCVD 4 -#define SCSP_HFSM_EVENT_CNT SCSP_HFSM_RCVD + 1 - - -/* - * Cache Alignment finite state machine states - */ -#define SCSP_CAFSM_DOWN 0 -#define SCSP_CAFSM_NEG 1 -#define SCSP_CAFSM_MASTER 2 -#define SCSP_CAFSM_SLAVE 3 -#define SCSP_CAFSM_UPDATE 4 -#define SCSP_CAFSM_ALIGNED 5 -#define SCSP_CAFSM_STATE_CNT SCSP_CAFSM_ALIGNED + 1 - - -/* - * Cache Alignment finite state machine events - */ -#define SCSP_CAFSM_HELLO_UP 0 -#define SCSP_CAFSM_HELLO_DOWN 1 -#define SCSP_CAFSM_CA_MSG 2 -#define SCSP_CAFSM_CSUS_MSG 3 -#define SCSP_CAFSM_CSU_REQ 4 -#define SCSP_CAFSM_CSU_REPLY 5 -#define SCSP_CAFSM_CA_T 6 -#define SCSP_CAFSM_CSUS_T 7 -#define SCSP_CAFSM_CSU_T 8 -#define SCSP_CAFSM_CACHE_UPD 9 -#define SCSP_CAFSM_CACHE_RSP 10 -#define SCSP_CAFSM_EVENT_CNT SCSP_CAFSM_CACHE_RSP + 1 - - -/* - * Client Interface finite state machine states - */ -#define SCSP_CIFSM_NULL 0 -#define SCSP_CIFSM_SUM 1 -#define SCSP_CIFSM_UPD 2 -#define SCSP_CIFSM_ALIGN 3 -#define SCSP_CIFSM_STATE_CNT SCSP_CIFSM_ALIGN + 1 - - -/* - * Client Interface finite state machine events - */ -#define SCSP_CIFSM_CA_DOWN 0 -#define SCSP_CIFSM_CA_SUMM 1 -#define SCSP_CIFSM_CA_UPD 2 -#define SCSP_CIFSM_CA_ALIGN 3 -#define SCSP_CIFSM_SOL_RSP 4 -#define SCSP_CIFSM_UPD_REQ 5 -#define SCSP_CIFSM_UPD_RSP 6 -#define SCSP_CIFSM_CSU_REQ 7 -#define SCSP_CIFSM_CSU_REPLY 8 -#define SCSP_CIFSM_CSU_SOL 9 -#define SCSP_CIFSM_EVENT_CNT SCSP_CIFSM_CSU_SOL + 1 - - -/* - * Server connection states (not part of any FSM) - */ -#define SCSP_SS_NULL 0 -#define SCSP_SS_CFG 1 -#define SCSP_SS_ACTIVE 2 - - -/* - * Hash a cache key - * - * key pointer to an Scsp_ckey structure - */ -#define SCSP_HASH(key) scsp_hash((key)) - - -/* - * Add a cache summary entry to a client's cache summary - * - * cpp pointer to a server control block - * key pointer to an Scsp_cse structure - */ -#define SCSP_ADD(cpp, key) \ -{ \ - Scsp_cse **c; \ - c = &(cpp)->ss_cache[SCSP_HASH(&(key)->sc_key)]; \ - LINK2TAIL((key), Scsp_cse, *c, sc_next); \ -} - - -/* - * Delete a cache summary entry from a client's cache summary - * - * cpp pointer to a server control block - * s pointer to an Scsp_cse structure - */ -#define SCSP_DELETE(cpp, s) \ -{ \ - Scsp_cse **c; \ - c = &(cpp)->ss_cache[SCSP_HASH(&(s)->sc_key)]; \ - UNLINK((s), Scsp_cse, *c, sc_next); \ -} - - -/* - * Search a client's cache summary for a given key - * - * cpp pointer to a server control block - * key pointer to an Scsp_ckey structure to find - * s Scsp_cse structure pointer to be set - */ -#define SCSP_LOOKUP(cpp, key, s) \ -{ \ - for ((s) = (cpp)->ss_cache[SCSP_HASH(key)]; \ - (s); \ - (s) = (s)->sc_next) { \ - if (scsp_cmp_key((key), &(s)->sc_key) == 0) \ - break; \ - } \ -} - - -/* - * SCSP pending connection control block - * - * The pending connection block is used to keep track of server - * connections which are open but haven't been identified yet. - */ -struct scsp_pending { - struct scsp_pending *sp_next; - int sp_sock; -}; -typedef struct scsp_pending Scsp_pending; - - -/* - * SCSP Server instance control block - */ -struct scsp_server { - struct scsp_server *ss_next; /* Server chain */ - char *ss_name; /* Server name */ - char ss_intf[IFNAMSIZ]; /* Interface */ - Atm_media ss_media; /* Physical comm medium */ - char ss_state; /* Server connection state */ - u_long ss_pid; /* Protocol ID */ - int ss_id_len; /* ID length */ - int ss_ckey_len; /* Cache key length */ - u_long ss_sgid; /* Server group ID */ - u_long ss_fid; /* Family ID */ - int ss_sock; /* Socket to client */ - int ss_dcs_lsock; /* DCS listen socket */ - Scsp_id ss_lsid; /* Local Server ID */ - Atm_addr ss_addr; /* Local ATM addr */ - Atm_addr ss_subaddr; /* Local ATM subaddr */ - int ss_mtu; /* Interface MTU */ - int ss_mark; - struct scsp_dcs *ss_dcs; /* Ptr to list of DCSs */ - struct scsp_cse *ss_cache[SCSP_HASHSZ]; /* Client's cache */ -}; -typedef struct scsp_server Scsp_server; - - -/* - * SCSP client cache summary entry control block - */ -struct scsp_cse { - struct scsp_cse *sc_next; /* Next on chain */ - long sc_seq; /* CSA sequence no */ - Scsp_ckey sc_key; /* Cache key */ - Scsp_id sc_oid; /* Origin ID */ -}; -typedef struct scsp_cse Scsp_cse; - - -/* - * CSU Request retransmission control block - */ -struct scsp_csu_rexmt { - struct scsp_csu_rexmt *sr_next; /* Next rexmit block */ - struct scsp_dcs *sr_dcs; /* DCS block */ - Scsp_csa *sr_csa; /* CSAs for rexmit */ - Harp_timer sr_t; /* Rexmit timer */ -}; -typedef struct scsp_csu_rexmt Scsp_csu_rexmt; - - -/* - * SCSP DCS control block - */ -struct scsp_dcs { - struct scsp_dcs *sd_next; /* DCS chain */ - Scsp_server *sd_server; /* Local server */ - Scsp_id sd_dcsid; /* DCS ID */ - Atm_addr sd_addr; /* DCS ATM address */ - Atm_addr sd_subaddr; /* DCS ATM subaddress */ - int sd_sock; /* Socket to DCS */ - Harp_timer sd_open_t; /* Open VCC retry timer */ - int sd_hello_state; /* Hello FSM state */ - int sd_hello_int; /* Hello interval */ - int sd_hello_df; /* Hello dead factor */ - int sd_hello_rcvd; /* Hello msg received */ - Harp_timer sd_hello_h_t; /* Hello timer */ - Harp_timer sd_hello_rcv_t; /* Hello receive timer */ - int sd_ca_state; /* CA FSM state */ - long sd_ca_seq; /* CA sequence number */ - int sd_ca_rexmt_int; /* CA rexmit interval */ - Scsp_msg *sd_ca_rexmt_msg; /* Saved CA msg */ - Scsp_cse *sd_ca_csas; /* CSAS still to send */ - Harp_timer sd_ca_rexmt_t; /* CA rexmit timer */ - int sd_csus_rexmt_int; /* CSUS rexmit int */ - Scsp_csa *sd_crl; /* Cache req list */ - Scsp_msg *sd_csus_rexmt_msg; /* Saved CSUS msg */ - Harp_timer sd_csus_rexmt_t; /* CSUS rexmit timer */ - int sd_hops; /* CSA hop count */ - Scsp_csa *sd_csu_ack_pend; /* CSUs to be ACKed */ - Scsp_csa *sd_csu_ack; /* CSUs ACKed */ - int sd_csu_rexmt_int; /* CSU Req rxmt time */ - int sd_csu_rexmt_max; /* CSU Req rxmt limit */ - Scsp_csu_rexmt *sd_csu_rexmt; /* CSU Req rxmt queue */ - int sd_client_state; /* Client I/F state */ -}; -typedef struct scsp_dcs Scsp_dcs; - -/* - * Trace options - */ -#define SCSP_TRACE_HFSM 1 /* Trace the Hello FSM */ -#define SCSP_TRACE_CAFSM 2 /* Trace the CA FSM */ -#define SCSP_TRACE_CFSM 4 /* Trace the server I/F FSM */ -#define SCSP_TRACE_HELLO_MSG 8 /* Trace Hello protocol msgs */ -#define SCSP_TRACE_CA_MSG 16 /* Trace CA protocol msgs */ -#define SCSP_TRACE_IF_MSG 32 /* Trace server I/F msgs */ - - -/* - * Global variables - */ -extern char *prog; -extern FILE *cfg_file; -extern int parse_line; -extern char *scsp_config_file; -extern FILE *scsp_log_file; -extern int scsp_log_syslog; -extern Scsp_server *scsp_server_head; -extern Scsp_pending *scsp_pending_head; -extern int scsp_max_socket; -extern int scsp_debug_mode; -extern int scsp_trace_mode; -extern FILE *scsp_trace_file; - - -/* - * Executable functions - */ -/* scsp_cafsm.c */ -extern int scsp_cafsm(Scsp_dcs *, int, void *); - -/* scsp_config.c */ -extern int scsp_config(char *); -extern int start_dcs(void); -extern int finish_dcs(void); -extern int set_dcs_addr(char *, char *); -extern int set_dcs_ca_rexmit(int); -extern int set_dcs_csus_rexmit(int); -extern int set_dcs_csu_rexmit(int); -extern int set_dcs_csu_rexmit_max(int); -extern int set_dcs_hello_df(int); -extern int set_dcs_hello_int(int); -extern int set_dcs_hops(int); -extern int set_dcs_id(char *); -extern int set_intf(char *); -extern int set_protocol(int); -extern int set_server_group(int); -extern int start_server(char *); -extern int finish_server(void); -extern int set_log_file(char *); - -/* scsp_config_lex.c */ -extern int yylex(void); - -/* scsp_config_parse.y */ -#if __STDC__ -extern void parse_error(const char *, ...); -#else -extern void parse_error(char *, va_alist); -#endif - -/* scsp_hfsm.c */ -extern int scsp_hfsm(Scsp_dcs *, int, Scsp_msg *); - -/* scsp_if.c */ -extern int scsp_cfsm(Scsp_dcs *, int, Scsp_msg *, Scsp_if_msg *); - -/* scsp_input.c */ -extern void scsp_free_msg(Scsp_msg *); -extern Scsp_msg *scsp_parse_msg(char *, int); - -/* scsp_log.c */ -#if __STDC__ -extern void scsp_log(const int, const char *, ...); -extern void scsp_trace(const char *, ...); -#else -extern void scsp_log(int, char *, va_alist); -extern void scsp_trace(const char *, va_alist); -#endif -extern void scsp_open_trace(); -extern void scsp_trace_msg(Scsp_dcs *, Scsp_msg *, int); -extern void scsp_mem_err(char *); - -/* scsp_msg.c */ -extern void scsp_csus_ack(Scsp_dcs *, Scsp_msg *); -extern int scsp_send_ca(Scsp_dcs *); -extern int scsp_send_csus(Scsp_dcs *); -extern int scsp_send_csu_req(Scsp_dcs *, Scsp_csa *); -extern int scsp_send_csu_reply(Scsp_dcs *, Scsp_csa *); -extern int scsp_send_hello(Scsp_dcs *); - -/* scsp_output.c */ -extern int scsp_format_msg(Scsp_dcs *, Scsp_msg *, char **); -extern int scsp_send_msg(Scsp_dcs *, Scsp_msg *); - -/* scsp_print.c */ -extern char *format_hfsm_state(int); -extern char *format_hfsm_event(int); -extern char *format_cafsm_state(int); -extern char *format_cafsm_event(int); -extern char *format_cifsm_state(int); -extern char *format_cifsm_event(int); -extern void print_scsp_cse(FILE *, Scsp_cse *); -extern void print_scsp_msg(FILE *, Scsp_msg *); -extern void print_scsp_if_msg(FILE *, Scsp_if_msg *); -extern void print_scsp_pending(FILE *, Scsp_pending *); -extern void print_scsp_server(FILE *, Scsp_server *); -extern void print_scsp_dcs(FILE *, Scsp_dcs *); -extern void print_scsp_dump(); - -/* scsp_socket.c */ -extern Scsp_dcs * scsp_find_dcs(int); -extern Scsp_server * scsp_find_server(int); -extern int scsp_dcs_connect(Scsp_dcs *); -extern int scsp_dcs_listen(Scsp_server *); -extern Scsp_dcs * scsp_dcs_accept(Scsp_server *); -extern int scsp_dcs_read(Scsp_dcs *); -extern int scsp_server_listen(); -extern int scsp_server_accept(int); -extern Scsp_if_msg * scsp_if_sock_read(int); -extern int scsp_if_sock_write(int, Scsp_if_msg *); -extern int scsp_server_read(Scsp_server *); -extern int scsp_send_cache_ind(Scsp_server *); -extern int scsp_pending_read(Scsp_pending *); - -/* scsp_subr.c */ -extern int scsp_hash(Scsp_ckey *); -extern int scsp_cmp_id(Scsp_id *, Scsp_id *); -extern int scsp_cmp_key(Scsp_ckey *, Scsp_ckey *); -extern int scsp_is_atmarp_server(char *); -extern Scsp_cse * scsp_dup_cse(Scsp_cse *); -extern Scsp_csa * scsp_dup_csa(Scsp_csa *); -extern Scsp_csa * scsp_cse2csas(Scsp_cse *); -extern void scsp_dcs_cleanup(Scsp_dcs *); -extern void scsp_dcs_delete(Scsp_dcs *); -extern void scsp_server_shutdown(Scsp_server *); -extern void scsp_server_delete(Scsp_server *); -extern int scsp_get_server_info(Scsp_server *); -extern void scsp_process_ca(Scsp_dcs *, Scsp_ca *); -extern void scsp_process_cache_rsp(Scsp_server *, Scsp_if_msg *); -extern int scsp_propagate_csa( Scsp_dcs *, Scsp_csa *); -extern void scsp_update_cache( Scsp_dcs *, Scsp_csa *); -extern void scsp_reconfigure(); - -/* scsp_timer.c */ -extern void scsp_open_timeout(Harp_timer *); -extern void scsp_hello_timeout(Harp_timer *); -extern void scsp_hello_rcv_timeout(Harp_timer *); -extern void scsp_ca_retran_timeout(Harp_timer *); -extern void scsp_csus_retran_timeout(Harp_timer *); -extern void scsp_csu_req_retran_timeout(Harp_timer *); - - - -#endif /* _SCSP_SCSP_VAR_H */ |