diff options
Diffstat (limited to 'sys/netatm/ipatm/ipatm_var.h')
-rw-r--r-- | sys/netatm/ipatm/ipatm_var.h | 219 |
1 files changed, 0 insertions, 219 deletions
diff --git a/sys/netatm/ipatm/ipatm_var.h b/sys/netatm/ipatm/ipatm_var.h deleted file mode 100644 index 1232677..0000000 --- a/sys/netatm/ipatm/ipatm_var.h +++ /dev/null @@ -1,219 +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$ - * - */ - -/* - * IP Over ATM Support - * ------------------- - * - * Protocol control blocks - * - */ - -#ifndef _IPATM_IPATM_VAR_H -#define _IPATM_IPATM_VAR_H - -#ifdef _KERNEL -/* - * Structure containing information for each VCC, both SVC and PVC, which - * supports IP traffic. - */ -struct ipvcc { - Qelem_t iv_elem; /* ip_nif queueing links */ - u_short iv_flags; /* VCC flags (see below) */ - u_char iv_state; /* VCC state (see below) */ - Atm_connection *iv_conn; /* Connection manager token */ - struct in_addr iv_dst; /* Peer's IP address */ - struct ip_nif *iv_ipnif; /* IP network interface */ - struct atm_time iv_time; /* Timer controls */ - short iv_idle; /* VCC idle timer */ - u_char iv_parmx; /* Index into provider's vcc params */ - KBuffer *iv_queue; /* Packet waiting for VCC */ - struct arpmap *iv_arpent; /* ARP entry for VCC */ - struct ipvcc *iv_arpnext; /* ARP link field */ - Atm_connection *iv_arpconn; /* ARP connection manager token */ -}; -#define iv_forw iv_elem.q_forw -#define iv_back iv_elem.q_back -#endif /* _KERNEL */ - -/* - * VCC Flags - */ -#define IVF_PVC 0x0001 /* PVC */ -#define IVF_SVC 0x0002 /* SVC */ -#define IVF_LLC 0x0004 /* VCC uses LLC/SNAP encapsulation */ -#define IVF_MAPOK 0x0008 /* VCC ARP mapping is valid */ -#define IVF_NOIDLE 0x0010 /* Do not idle-timeout this VCC */ - -/* - * VCC States - */ -#define IPVCC_FREE 0 /* No VCC associated with entry */ -#define IPVCC_PMAP 1 /* SVC waiting for ARP mapping */ -#define IPVCC_POPEN 2 /* Pending SVC open completion */ -#define IPVCC_PACCEPT 3 /* Pending SVC accept completion */ -#define IPVCC_ACTPENT 4 /* PVC open - waiting for ARP entry */ -#define IPVCC_ACTIVE 5 /* VCC open - available */ -#define IPVCC_CLOSED 6 /* VCC has been closed */ - - -#ifdef _KERNEL -/* - * Structure containing IP-specific information for each ATM network - * interface in the system. - */ -struct ip_nif { - struct ip_nif *inf_next; /* Next on interface chain */ - struct atm_nif *inf_nif; /* ATM network interface */ - u_short inf_state; /* Interface state (see below) */ - struct in_ifaddr *inf_addr; /* Interface's IP address */ - Queue_t inf_vcq; /* VCC connections queue */ - struct ip_serv *inf_serv; /* Interface service provider */ - -/* For use by IP interface service provider (ie signalling manager) */ - caddr_t inf_isintf; /* Interface control block */ - -/* IP/ATM provided interface services */ - void (*inf_arpnotify)/* ARP event notification */ - (struct ipvcc *, int); - int (*inf_ipinput) /* IP packet input */ - (struct ip_nif *, KBuffer *); - int (*inf_createsvc)/* Create an IP SVC */ - (struct ifnet *, u_short, caddr_t, - struct ipvcc **); -}; - -/* - * Network Interface States - */ -#define IPNIF_ADDR 1 /* Waiting for i/f address */ -#define IPNIF_SIGMGR 2 /* Waiting for sigmgr attach */ -#define IPNIF_ACTIVE 3 /* Active */ - - -/* - * Global IP/ATM Statistics - */ -struct ipatm_stat { - u_long ias_rcvstate; /* Packets received, bad vcc state */ - u_long ias_rcvnobuf; /* Packets received, no buf avail */ -}; - - -/* - * Structure to pass parameters for ipatm_openpvc() - */ -struct ipatmpvc { - struct ip_nif *ipp_ipnif; /* PVC's IP network interface */ - u_short ipp_vpi; /* VPI value */ - u_short ipp_vci; /* VCI value */ - Aal_t ipp_aal; /* AAL type */ - Encaps_t ipp_encaps; /* VCC encapsulation */ - struct sockaddr_in ipp_dst; /* Destination's IP address */ - uint8_t ipp_traffic_type; /* CBR, UBR, ... */ - struct t_atm_traffic ipp_traffic; /* traffic parameters */ -}; - - -/* - * Timer macros - */ -#define IPVCC_TIMER(s, t) atm_timeout(&(s)->iv_time, (t), ipatm_timeout) -#define IPVCC_CANCEL(s) atm_untimeout(&(s)->iv_time) - -/* - * Misc useful macros - */ -#define SATOSIN(sa) ((struct sockaddr_in *)(sa)) - - -/* - * Global function declarations - */ - /* ipatm_event.c */ -void ipatm_timeout(struct atm_time *); -void ipatm_connected(void *); -void ipatm_cleared(void *, struct t_atm_cause *); -void ipatm_arpnotify(struct ipvcc *, int); -void ipatm_itimeout(struct atm_time *); - - /* ipatm_if.c */ -int ipatm_nifstat(int, struct atm_nif *, intptr_t); - - /* ipatm_input.c */ -void ipatm_cpcs_data(void *, KBuffer *); -int ipatm_ipinput(struct ip_nif *, KBuffer *); - - /* ipatm_load.c */ - - /* ipatm_output.c */ -int ipatm_ifoutput(struct ifnet *, KBuffer *, struct sockaddr *); - - /* ipatm_usrreq.c */ -int ipatm_ioctl(int, caddr_t, caddr_t); -caddr_t ipatm_getname(void *); - - /* ipatm_vcm.c */ -int ipatm_openpvc(struct ipatmpvc *, struct ipvcc **); -int ipatm_createsvc(struct ifnet *, u_short, caddr_t, - struct ipvcc **); -int ipatm_opensvc(struct ipvcc *); -int ipatm_retrysvc(struct ipvcc *); -void ipatm_activate(struct ipvcc *); -int ipatm_incoming(void *, Atm_connection *, Atm_attributes *, - void **); -int ipatm_closevc(struct ipvcc *, int); -int ipatm_chknif(struct in_addr, struct ip_nif *); -struct ipvcc *ipatm_iptovc(struct sockaddr_in *, struct atm_nif *); - - -/* - * External variables - */ -extern int ipatm_vccnt; -extern int ipatm_vcidle; -extern int ipatm_print; -extern u_long last_map_ipdst; -extern struct ipvcc *last_map_ipvcc; -extern struct ip_nif *ipatm_nif_head; -extern uma_zone_t ipatm_vc_zone; -extern struct ipatm_stat ipatm_stat; -extern struct atm_time ipatm_itimer; -extern Atm_endpoint ipatm_endpt; -extern Atm_attributes ipatm_aal5llc; -extern Atm_attributes ipatm_aal5null; -extern Atm_attributes ipatm_aal4null; - -#ifdef SYSCTL_DECL -SYSCTL_DECL(_net_harp_ip); -#endif - -#endif /* _KERNEL */ - -#endif /* _IPATM_IPATM_VAR_H */ |