diff options
Diffstat (limited to 'usr.sbin/atm/scspd/scsp_msg.h')
-rw-r--r-- | usr.sbin/atm/scspd/scsp_msg.h | 461 |
1 files changed, 0 insertions, 461 deletions
diff --git a/usr.sbin/atm/scspd/scsp_msg.h b/usr.sbin/atm/scspd/scsp_msg.h deleted file mode 100644 index bedea8a..0000000 --- a/usr.sbin/atm/scspd/scsp_msg.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_MSG_H -#define _SCSP_SCSP_MSG_H - - -/* - * ATMARP constants - */ -#define ARP_ATMFORUM 19 -#define ARP_TL_TMASK 0x40 /* Type mask */ -#define ARP_TL_NSAPA 0x00 /* Type = ATM Forum NSAPA */ -#define ARP_TL_E164 0x40 /* Type = E.164 */ -#define ARP_TL_LMASK 0x3f /* Length mask */ - - -/* - * SCSP version number - */ -#define SCSP_VER_1 1 - - -/* - * SCSP message types - */ -#define SCSP_CA_MSG 1 -#define SCSP_CSU_REQ_MSG 2 -#define SCSP_CSU_REPLY_MSG 3 -#define SCSP_CSUS_MSG 4 -#define SCSP_HELLO_MSG 5 - - -/* - * SCSP Client Protocol IDs - */ -#define SCSP_PROTO_ATMARP 1 -#define SCSP_PROTO_NHRP 2 -#define SCSP_PROTO_MARS 3 -#define SCSP_PROTO_DHCP 4 -#define SCSP_PROTO_LNNI 5 - - -/* - * Extension types - */ -#define SCSP_EXT_END 0 -#define SCSP_EXT_AUTH 1 -#define SCSP_EXT_VENDOR 2 - -/* - * Sequence number bounds - */ -#define SCSP_CSA_SEQ_MIN 0x80000001 -#define SCSP_CSA_SEQ_MAX 0x7FFFFFFF - - -/* - * Sender, Receiver, or Originator ID lengths - */ -#define SCSP_ATMARP_ID_LEN 4 -#define SCSP_NHRP_ID_LEN 4 -#define SCSP_MAX_ID_LEN 4 - - -/* - * Cache Key lengths - */ -#define SCSP_ATMARP_KEY_LEN 4 -#define SCSP_NHRP_KEY_LEN 4 -#define SCSP_MAX_KEY_LEN 4 - - -/* - * Fixed header - */ -struct scsp_nhdr { - u_char sh_ver; /* SCSP version */ - u_char sh_type; /* Message type */ - u_short sh_len; /* Message length */ - u_short sh_checksum; /* IP checksum over message */ - u_short sh_ext_off; /* Offset of first extension */ -}; - - -/* - * Mandatory common part - */ -struct scsp_nmcp { - u_short sm_pid; /* Protocol ID */ - u_short sm_sgid; /* Server group ID */ - u_short sm_fill_0; /* Unused */ - u_short sm_flags; /* Flags--see below */ - u_char sm_sid_len; /* Sender ID length */ - u_char sm_rid_len; /* Receiver ID length */ - u_short sm_rec_cnt; /* Number of records */ -#ifdef NOTDEF - /* Variable length fields */ - u_char sm_sid[]; /* Sender ID (variable) */ - u_char sm_rid[]; /* Receiver ID (variable) */ -#endif -}; - - -/* - * Extensions part - */ -struct scsp_next { - u_short se_type; /* Extension type */ - u_short se_len; /* Length */ -#ifdef NOTDEF - /* Variable length fields */ - u_char se_value[]; /* Extension value */ -#endif -}; - - -/* - * Cache State Advertisement record or - * Cache State Advertisement Summary record - */ -struct scsp_ncsa { - u_short scs_hop_cnt; /* Hop count */ - u_short scs_len; /* Record length */ - u_char scs_ck_len; /* Cache key length */ - u_char scs_oid_len; /* Originator ID length */ - u_short scs_nfill; /* Null bit and filler */ - long scs_seq; /* Sequence number */ -#ifdef NOTDEF - /* Variable length fields */ - u_char scs_ckey[]; /* Cache key */ - u_char scs_oid[]; /* Originator ID */ - u_char scs_proto[]; /* Protocol-specific (in CSA) */ -#endif -}; - -#define SCSP_CSAS_NULL 0x8000 - - -/* - * Cache Alignment message - */ -struct scsp_nca { - long sca_seq; /* Sequence number */ - struct scsp_nmcp sca_mcp; /* Mandatory common */ -#ifdef NOTDEF - /* Variable length fields */ - struct scsp_ncsa sca_rec[]; /* CSASs */ -#endif -}; - -#define SCSP_CA_M 0x8000 /* Master/Slave bit */ -#define SCSP_CA_I 0x4000 /* Initialization bit */ -#define SCSP_CA_O 0x2000 /* More bit */ - - -/* - * Cache State Update Request, Cache State Update Reply, or - * Cache State Update Solicit message - */ -struct scsp_ncsu_msg { - struct scsp_nmcp scr_mcp; /* Mandatory common */ -#ifdef NOTDEF - /* Variable length fields */ - struct scsp_ncsa scr_rec[]; /* CSAs */ -#endif -}; - - -/* - * Hello message - */ -struct scsp_nhello { - u_short sch_hi; /* Hello interval */ - u_short sch_df; /* Dead factor */ - u_short sch_fill_0; /* Unused */ - u_short sch_fid; /* Family ID */ - struct scsp_nmcp sch_mcp; /* Mandatory common */ -#ifdef NOTDEF - /* Variable-length fields */ - struct scsp_nrid sch_rid[]; /* Receiver IDs */ -#endif -}; - - -/* - * ATMARP-specific Cache State Advertisement record - */ -struct scsp_atmarp_ncsa { - u_short sa_hrd; /* Hardware type -- 0x0013 */ - u_short sa_pro; /* Protocol type -- 0x0800 */ - u_char sa_shtl; /* Src ATM addr type/len */ - u_char sa_sstl; /* Src ATM subaddr type/len */ - u_char sa_state; /* State */ - u_char sa_fill1; /* Unused */ - u_char sa_spln; /* Src proto addr type */ - u_char sa_thtl; /* Tgt ATM addr type/len */ - u_char sa_tstl; /* Tgt ATM subaddr type/len */ - u_char sa_tpln; /* Tgt proto addr len */ -#ifdef NOTDEF - /* Variable-length fields */ - u_char sa_sha[]; /* Source ATM addr */ - u_char sa_ssa[]; /* Source ATM subaddr */ - u_char sa_spa[]; /* Source IP addr */ - u_char sa_tha[]; /* Target ATM addr */ - u_char sa_tsa[]; /* Target ATM subaddr */ - u_char sa_tpa[]; /* Target IP addr */ -#endif -}; - - -/* - * NHRP-specific Cache State Advertisement record - */ -struct scsp_nhrp_ncsa { - u_short sn_af; /* Address family */ - u_short sn_pro; /* NHRP protocol type */ - u_char sn_snap[5]; /* SNAP header */ - u_char sn_ver; /* NHRP version no. */ - u_short sn_flags; /* Flags */ - u_long sn_rid; /* Request ID */ - u_char sn_state; /* State */ - u_char sn_pln; /* Prefix length */ - u_short sn_fill1; /* Unused */ - u_short sn_mtu; /* MTU */ - u_short sn_hold; /* Holding time */ - u_char sn_csatl; /* Client addr type/len */ - u_char sn_csstl; /* Client subaddr type/len */ - u_char sn_cpln; /* Client proto addr len */ - u_char sn_pref; /* Preference for next hop */ -#ifdef NOTDEF - /* Variable-length fields */ - u_char sn_csa[]; /* Client subnetwork addr */ - u_char sn_css[]; /* Client subnetwork subaddr */ - u_char sn_cpa[]; /* Client protocol addr */ -#endif -}; - - -/* - * SCSP messages in internal format - * - * - * Fixed message header - */ -struct scsp_hdr { - u_char msg_type; /* Message type */ -}; -typedef struct scsp_hdr Scsp_hdr; - - -/* - * Sender or Receiver ID structure - */ -struct scsp_id { - struct scsp_id *next; /* Next ID */ - u_char id_len; /* ID length */ - u_char id[SCSP_MAX_ID_LEN]; /* ID */ -}; -typedef struct scsp_id Scsp_id; - - -/* - * Cacke Key structure - */ -struct scsp_ckey { - u_char key_len; /* Cache key length */ - u_char key[SCSP_MAX_KEY_LEN]; /* Cache key */ -}; -typedef struct scsp_ckey Scsp_ckey; - - -/* - * Mandatory common part - */ -struct scsp_mcp { - u_short pid; /* Protocol ID */ - u_short sgid; /* Server group ID */ - u_short flags; /* Flags */ - u_short rec_cnt; /* No. of records attached */ - Scsp_id sid; /* Sender ID */ - Scsp_id rid; /* Receiver ID */ -}; -typedef struct scsp_mcp Scsp_mcp; - - -/* - * Extensions part - */ -struct scsp_ext { - struct scsp_ext *next; /* Next extension */ - u_short type; /* Extension type */ - u_short len; /* Length */ -#ifdef NOTDEF - /* Variable length fields */ - u_char value[]; /* Extension value */ -#endif -}; -typedef struct scsp_ext Scsp_ext; - - -/* - * Cache State Advertisement record or - * Cache State Advertisement Summary record - */ -struct scsp_csa { - struct scsp_csa *next; /* Next CSAS record */ - u_short hops; /* Hop count */ - u_char null; /* Null flag */ - u_long seq; /* CSA seq. no. */ - Scsp_ckey key; /* Cache key */ - Scsp_id oid; /* Originator ID */ - int trans_ct; /* No. of times CSA sent */ - struct scsp_atmarp_csa *atmarp_data; /* ATMARP data */ -#ifdef NOTDEF - struct scsp_nhrp_csa *nhrp_data; /* NHRP data */ -#endif -}; -typedef struct scsp_csa Scsp_csa; - -/* - * Macro to free a CSA and any associated protocol-specific data - */ -#define SCSP_FREE_CSA(c) \ -{ \ - if ((c)->atmarp_data) \ - free((c)->atmarp_data); \ - free((c)); \ -} - - -/* - * Cache Alignment message - */ -struct scsp_ca { - long ca_seq; /* CA msg sequence no. */ - u_char ca_m; /* Master/slave bit */ - u_char ca_i; /* Initialization bit */ - u_char ca_o; /* More bit */ - Scsp_mcp ca_mcp; /* Mandatory common part */ - Scsp_csa *ca_csa_rec; /* Ptr. to CSAS records */ -}; -typedef struct scsp_ca Scsp_ca; - - -/* - * Cache State Update Request, Cache State Update Reply, or - * Cache State Update Solicit message - */ -struct scsp_csu_msg { - Scsp_mcp csu_mcp; /* Mandatory common part */ - Scsp_csa *csu_csa_rec; /* Ptr. to CSA records */ -}; -typedef struct scsp_csu_msg Scsp_csu_msg; - - -/* - * Hello message - */ -struct scsp_hello { - u_short hello_int; /* Hello interval */ - u_short dead_factor; /* When is DCS dead? */ - u_short family_id; /* Family ID */ - Scsp_mcp hello_mcp; /* Mandatory common part */ -}; -typedef struct scsp_hello Scsp_hello; - - -/* - * NHRP-specific Cache State Advertisement record - */ -struct scsp_nhrp_csa { - u_char req_id; /* Request ID */ - u_char state; /* State */ - u_char pref_len; /* Prefix length */ - u_short flags; /* See below */ - u_short mtu; /* Maximim transmission unit */ - u_short hold_time; /* Entry holding time */ - u_char caddr_tlen; /* Client addr type/length */ - u_char csaddr_tlen; /* Client subaddr type/length */ - u_char cproto_len; /* Client proto addr length */ - u_char pref; /* Preference */ - Atm_addr caddr; /* Client address */ - Atm_addr csaddr; /* Client subaddress */ - struct in_addr cproto_addr; /* Client protocol address */ -}; -typedef struct scsp_nhrp Scsp_nhrp; - -#define SCSP_NHRP_UNIQ 0x8000 -#define SCSP_NHRP_ARP 0x4000 - - -/* - * ATMARP-specific Cache State Advertisement record - */ -struct scsp_atmarp_csa { - u_char sa_state; /* State */ - Atm_addr sa_sha; /* Source ATM addr */ - Atm_addr sa_ssa; /* Source ATM subaddr */ - struct in_addr sa_spa; /* Source IP addr */ - Atm_addr sa_tha; /* Target ATM addr */ - Atm_addr sa_tsa; /* Target ATM subaddr */ - struct in_addr sa_tpa; /* Target IP addr */ -}; -typedef struct scsp_atmarp_csa Scsp_atmarp_csa; - - -/* - * SCSP message - */ -struct scsp_msg { - Scsp_hdr sc_hdr; - union { - Scsp_ca *sc_u_ca; - Scsp_csu_msg *sc_u_csu_msg; - Scsp_hello *sc_u_hello; - } sc_msg_u; - Scsp_ext *sc_ext; -}; -typedef struct scsp_msg Scsp_msg; - -#define sc_msg_type sc_hdr.msg_type -#define sc_ca sc_msg_u.sc_u_ca -#define sc_csu_msg sc_msg_u.sc_u_csu_msg -#define sc_hello sc_msg_u.sc_u_hello - -#endif /* _SCSP_SCSP_MSG_H */ |