/* * * =================================== * 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: src/usr.sbin/atm/scspd/scsp_if.h,v 1.2 1999/08/28 01:15:33 peter Exp $ * @(#) $DragonFly: src/usr.sbin/atm/scspd/scsp_if.h,v 1.2 2003/06/17 04:29:52 dillon Exp $ * */ /* * Server Cache Synchronization Protocol (SCSP) Support * ---------------------------------------------------- * * Interface to server clients of SCSP * */ #ifndef _SCSP_SCSP_IF_H #define _SCSP_SCSP_IF_H /* * SCSP configuration message */ struct scsp_cfg_msg { char atmarp_netif[IFNAMSIZ]; }; typedef struct scsp_cfg_msg Scsp_cfg_msg; /* * SCSP cache summary */ struct scsp_sum_msg { u_short ss_hops; /* Hop count */ u_char ss_null; /* Null flag */ long ss_seq; /* CSA seq. no. */ Scsp_ckey ss_key; /* Cache key */ Scsp_id ss_oid; /* Originator ID */ }; typedef struct scsp_sum_msg Scsp_sum_msg; /* * SCSP constants for ATMARP */ #define SCSP_ATMARP_PROTO 1 #define SCSP_ATMARP_SIDL 4 #define SCSP_ATMARP_RIDL 4 #define SCSP_ATMARP_CKL 4 #define SCSP_ATMARP_OIDL 4 /* * SCSP ATMARP message */ struct scsp_atmarp_msg { u_char sa_state; /* Cache entry state (below) */ struct in_addr sa_cpa; /* Cached protocol address */ Atm_addr sa_cha; /* Cached ATM address */ Atm_addr sa_csa; /* Cached ATM subaddress */ Scsp_ckey sa_key; /* Cache key for entry */ Scsp_id sa_oid; /* Originator ID */ long sa_seq; /* Sequence no. */ }; typedef struct scsp_atmarp_msg Scsp_atmarp_msg; #define SCSP_ASTATE_NEW 0 /* ATMARP new server registration */ #define SCSP_ASTATE_UPD 1 /* ATMARP server refreshed */ #define SCSP_ASTATE_DEL 2 /* ATMARP server data deleted */ /* * SCSP constants for NHRP */ #define SCSP_NHRP_PROTO 2 #define SCSP_NHRP_SIDL 4 #define SCSP_NHRP_RIDL 4 #define SCSP_NHRP_CKL 4 #define SCSP_NHRP_OIDL 4 /* * SCSP NHRP message */ struct scsp_nhrp_msg { u_short sn_af; /* Address family */ u_short sn_proto; /* NHRP protocol type */ u_char sn_snap[5]; /* SNAP */ u_char sn_ver; /* NHRP version number */ u_short sn_flags; /* Flags */ u_long sn_rid; /* Request ID */ u_char sn_state; /* State */ u_char sn_prel; /* Prefix length */ u_short sn_mtu; /* Maximum transmission unit */ u_short sn_hold; /* Holding time */ Atm_addr sn_addr; /* Server network address */ Atm_addr sn_saddr; /* Server network subaddress */ struct in_addr sn_paddr; /* Server protocol address */ Scsp_ckey sn_key; /* Cache key for entry */ Scsp_id sn_oid; /* Originator ID */ }; typedef struct scsp_nhrp_msg Scsp_nhrp_msg; #define SCSP_NSTATE_NEW 0 /* New NHRP server */ #define SCSP_NSTATE_UPD 1 /* NHRP server re-registered */ #define SCSP_NSTATE_DEL 2 /* NHRP server data purged */ #define SCSP_NSTATE_NSD 3 /* NHRP no such data in server */ /* * SCSP/server message header */ struct scsp_if_msg_hdr { u_char sh_type; /* Message type */ u_char sh_rc; /* Response code */ u_short sh_proto; /* SCSP protocol ID */ int sh_len; /* Length of message */ u_long sh_tok; /* Token from SCSP daemon */ }; typedef struct scsp_if_msg_hdr Scsp_if_msg_hdr; /* * SCSP-server message */ struct scsp_if_msg { Scsp_if_msg_hdr si_hdr; /* Header fields */ union { Scsp_cfg_msg siu_cfg; /* Config data */ Scsp_sum_msg siu_sum; /* Cache summary */ Scsp_atmarp_msg siu_atmarp; /* ATMARP update */ Scsp_nhrp_msg siu_nhrp; /* NHRP update */ } si_u; }; typedef struct scsp_if_msg Scsp_if_msg; #define si_type si_hdr.sh_type #define si_rc si_hdr.sh_rc #define si_proto si_hdr.sh_proto #define si_len si_hdr.sh_len #define si_tok si_hdr.sh_tok #define si_cfg si_u.siu_cfg #define si_sum si_u.siu_sum #define si_atmarp si_u.siu_atmarp #define si_nhrp si_u.siu_nhrp /* * Message types */ #define SCSP_NOP_REQ 1 #define SCSP_CFG_REQ 2 #define SCSP_CFG_RSP 3 #define SCSP_CACHE_IND 4 #define SCSP_CACHE_RSP 5 #define SCSP_SOLICIT_IND 6 #define SCSP_SOLICIT_RSP 7 #define SCSP_UPDATE_IND 8 #define SCSP_UPDATE_REQ 9 #define SCSP_UPDATE_RSP 10 /* * Response codes */ #define SCSP_RSP_OK 0 #define SCSP_RSP_ERR 1 #define SCSP_RSP_REJ 2 #define SCSP_RSP_NOT_FOUND 3 #endif /* _SCSP_SCSP_IF_H */