summaryrefslogtreecommitdiffstats
path: root/sys/netatm/atm_cm.h
diff options
context:
space:
mode:
Diffstat (limited to 'sys/netatm/atm_cm.h')
-rw-r--r--sys/netatm/atm_cm.h351
1 files changed, 0 insertions, 351 deletions
diff --git a/sys/netatm/atm_cm.h b/sys/netatm/atm_cm.h
deleted file mode 100644
index c9e6dc5..0000000
--- a/sys/netatm/atm_cm.h
+++ /dev/null
@@ -1,351 +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$
- *
- */
-
-/*
- * Core ATM Services
- * -----------------
- *
- * ATM Connection Management definitions
- *
- */
-
-#ifndef _NETATM_ATM_CM_H
-#define _NETATM_ATM_CM_H
-
-/*
- * Forward declaration
- */
-struct atm_connection;
-struct atm_attributes;
-
-
-#ifdef _KERNEL
-/*
- * Structure used to define a kernel ATM endpoint service module and its
- * associated entry points. An endpoint service is defined as a kernel
- * entity which will serve as the endpoint of an ATM connection, i.e. it is
- * responsible for issuing/receiving requests to/from the connection manager.
- */
-struct atm_endpoint {
- struct atm_endpoint *ep_next; /* Next in registry list */
- u_int ep_id; /* Endpoint ID (see below) */
-
-/* Exported functions: Miscellaneous */
- int (*ep_ioctl) /* Ioctl */
- (int, caddr_t, caddr_t);
- caddr_t (*ep_getname) /* Get application/owner name */
- (void *);
-
-/* Exported functions: Connection Manager Control API */
- void (*ep_connected) /* Call connected */
- (void *);
- void (*ep_cleared) /* Call cleared */
- (void *, struct t_atm_cause *);
- int (*ep_incoming) /* Incoming call */
- (void *, struct atm_connection *,
- struct atm_attributes *, void **);
- int (*ep_addparty) /* Add Party notification */
- (void *, int, int);
- int (*ep_dropparty) /* Drop Party notification */
- (void *, int, int);
-
-/* Exported functions: Connection Manager Data API: CPCS */
- void (*ep_cpcs_ctl) /* Control operation */
- (int, void *, void *);
- void (*ep_cpcs_data) /* Received data */
- (void *, KBuffer *);
-
-/* Exported functions: Connection Manager Data API: SAAL */
- void (*ep_saal_ctl) /* Control operation */
- (int, void *, void *);
- void (*ep_saal_data) /* Received data */
- (void *, KBuffer *);
-
-/* Exported functions: Connection Manager Data API: SSCOP */
- void (*ep_sscop_ctl) /* Control operation */
- (int, void *, void *, void *);
- void (*ep_sscop_data) /* Received data */
- (void *, KBuffer *, u_int);
-};
-typedef struct atm_endpoint Atm_endpoint;
-#endif /* _KERNEL */
-
-/*
- * Endpoint IDs
- */
-#define ENDPT_UNKNOWN 0 /* Unknown */
-#define ENDPT_IP 1 /* IP over ATM */
-#define ENDPT_ATMARP 2 /* ATMARP */
-#define ENDPT_SPANS_SIG 3 /* SPANS Signalling */
-#define ENDPT_SPANS_CLS 4 /* SPANS CLS */
-#define ENDPT_UNI_SIG 5 /* UNI Signalling */
-#define ENDPT_SOCK_AAL5 6 /* Socket - AAL5 */
-#define ENDPT_SOCK_SSCOP 7 /* Socket - SSCOP */
-#define ENDPT_MAX 7
-
-
-/*
- * ATM Connection Attributes
- *
- * Note: Attribute tag values are the same as the SVE_tag values.
- * Unless otherwise specified, attribute field values are the same
- * as the corresponding socket option values.
- * The above values are all defined in netatm/atm.h.
- */
-
-/* AAL Attributes */
-struct t_atm_aal4 {
- int32_t forward_max_SDU_size;
- int32_t backward_max_SDU_size;
- int32_t SSCS_type;
- int32_t mid_low;
- int32_t mid_high;
-};
-
-struct attr_aal {
- int tag; /* Attribute tag */
- Aal_t type; /* AAL type (discriminator) */
- union {
- struct t_atm_aal4 aal4;
- struct t_atm_aal5 aal5;
- } v; /* Attribute value */
-};
-
-/* Traffic Descriptor Attributes */
-struct attr_traffic {
- int tag; /* Attribute tag */
- struct t_atm_traffic v; /* Attribute value */
-};
-
-/* Broadband Bearer Attributes */
-struct attr_bearer {
- int tag; /* Attribute tag */
- struct t_atm_bearer v; /* Attribute value */
-};
-
-/* Broadband High Layer Information Attributes */
-struct attr_bhli {
- int tag; /* Attribute tag */
- struct t_atm_bhli v; /* Attribute value */
-};
-
-/* Broadband Low Layer Information Attributes */
-struct attr_blli {
- int tag_l2; /* Layer 2 attribute tag */
- int tag_l3; /* Layer 3 attribute tag */
- struct t_atm_blli v; /* Attribute value */
-};
-
-/* Logical Link Control Attributes (multiplexing use only, not signalled) */
-struct attr_llc {
- int tag; /* Attribute tag */
- struct t_atm_llc v; /* Attribute value */
-};
-
-/* Called Party Attributes */
-struct attr_called {
- int tag; /* Attribute tag */
- Atm_addr addr; /* Called party address */
- Atm_addr subaddr; /* Called party subaddress */
-};
-
-/* Calling Party Attributes */
-struct attr_calling {
- int tag; /* Attribute tag */
- Atm_addr addr; /* Calling party address */
- Atm_addr subaddr; /* Calling party subaddress */
- struct t_atm_caller_id cid; /* Caller ID */
-};
-
-/* Quality of Service Attributes */
-struct attr_qos {
- int tag; /* Attribute tag */
- struct t_atm_qos v; /* Attribute value */
-};
-
-/* Transit Network Attributes */
-struct attr_transit {
- int tag; /* Attribute tag */
- struct t_atm_transit v; /* Attribute value */
-};
-
-/* Cause Attributes */
-struct attr_cause {
- int tag; /* Attribute tag */
- struct t_atm_cause v; /* Attribute value */
-};
-
-
-struct atm_attributes {
- struct atm_nif *nif; /* Network interface */
- u_int api; /* Connect Mgr Data API (see below) */
- int api_init;/* API initialization parameter */
- u_short headin; /* Input buffer headroom */
- u_short headout;/* Output buffer headroom */
- struct attr_aal aal; /* AAL attributes */
- struct attr_traffic traffic;/* Traffic descriptor attributes */
- struct attr_bearer bearer; /* Broadband bearer attributes */
- struct attr_bhli bhli; /* Broadband high layer attributes */
- struct attr_blli blli; /* Broadband low layer attributes */
- struct attr_llc llc; /* Logical link control attributes */
- struct attr_called called; /* Called party attributes */
- struct attr_calling calling;/* Calling party attributes */
- struct attr_qos qos; /* Quality of service attributes */
- struct attr_transit transit;/* Transit network attributes */
- struct attr_cause cause; /* Cause attributes */
-};
-typedef struct atm_attributes Atm_attributes;
-
-/*
- * Connection Manager Data APIs
- */
-#define CMAPI_CPCS 0 /* AAL CPCS */
-#define CMAPI_SAAL 1 /* Signalling AAL */
-#define CMAPI_SSCOP 2 /* Reliable data (SSCOP) */
-
-
-#ifdef _KERNEL
-/*
- * ATM Connection Instance
- *
- * There will be one connection block for each endpoint <-> Connection Manager
- * API instance. Note that with connection multiplexors (e.g. LLC), there
- * may be multiple connections per VCC.
- */
-struct atm_connection {
- struct atm_connection *co_next; /* Multiplexor/listen queue link */
- struct atm_connection *co_mxh; /* Connection multiplexor head */
- u_char co_flags; /* Connection flags (see below) */
- u_char co_state; /* User <-> CM state (see below) */
- Encaps_t co_mpx; /* Multiplexor type */
- void *co_toku; /* Endpoint's session token */
- Atm_endpoint *co_endpt; /* Endpoint service */
- struct atm_connvc *co_connvc; /* Connection VCC */
- struct attr_llc co_llc; /* Connection LLC header */
- Atm_attributes *co_lattr; /* Listening attributes */
-};
-typedef struct atm_connection Atm_connection;
-
-/*
- * Connection Flags
- */
-#define COF_P2P 0x01 /* Point-to-point */
-#define COF_P2MP 0x02 /* Point-to-multipoint */
-
-/*
- * Endpoint <-> Connection Manager States
- */
-#define COS_FREE 0 /* Not allocated */
-#define COS_OUTCONN 1 /* Outgoing connection pending */
-#define COS_LISTEN 2 /* Listening for connection */
-#define COS_INCONN 3 /* Incoming connection pending */
-#define COS_INACCEPT 4 /* Incoming connection accepted */
-#define COS_ACTIVE 5 /* Connection active */
-#define COS_CLEAR 6 /* Connection is clearing */
-
-
-/*
- * ATM Connection VCC Instance
- *
- * There will be one connection-vcc block for each VCC created by the
- * Connection Manager. For multiplexed connections, there may be multiple
- * connection blocks associated with each connection-vcc. This block is
- * used to control the Connection Manager <-> VCC interface, including the
- * interfaces to stack management and the signalling manager.
- */
-struct atm_connvc {
- Qelem_t cvc_q; /* Queueing links */
- Atm_connection *cvc_conn; /* Connection head */
- struct vccb *cvc_vcc; /* VCC for connection */
- struct sigmgr *cvc_sigmgr; /* VCC signalling manager */
- u_char cvc_flags; /* Connection flags (see below) */
- u_char cvc_state; /* CM - VCC state (see below) */
- void *cvc_tokl; /* Stack lower layer token */
- void (*cvc_lower) /* Stack lower layer handler */
- (int, void *, intptr_t, intptr_t);
- u_short cvc_upcnt; /* Up stack calls in progress */
- u_short cvc_downcnt; /* Down stack calls in progress */
- KBuffer *cvc_rcvq; /* Packet receive queue */
- int cvc_rcvqlen; /* Receive queue length */
- Atm_attributes cvc_attr; /* VCC attributes */
- struct atm_time cvc_time; /* Timer controls */
-};
-typedef struct atm_connvc Atm_connvc;
-
-/*
- * Connection Flags
- */
-#define CVCF_ABORTING 0x01 /* VCC abort is pending */
-#define CVCF_INCOMQ 0x02 /* VCC is on incoming queue */
-#define CVCF_CONNQ 0x04 /* VCC is on connection queue */
-#define CVCF_CALLER 0x08 /* We are the call originator */
-
-/*
- * Connection Manager <-> VCC States
- */
-#define CVCS_FREE 0 /* Not allocated */
-#define CVCS_SETUP 1 /* Call setup pending */
-#define CVCS_INIT 2 /* Stack INIT pending */
-#define CVCS_INCOMING 3 /* Incoming call present */
-#define CVCS_ACCEPT 4 /* Incoming call accepted */
-#define CVCS_REJECT 5 /* Incoming call rejected */
-#define CVCS_ACTIVE 6 /* Stack active */
-#define CVCS_RELEASE 7 /* Connection release pending */
-#define CVCS_CLEAR 8 /* Call has been cleared */
-#define CVCS_TERM 9 /* Stack TERM pending */
-
-
-/*
- * Connection VCC variables
- */
-#define CVC_RCVQ_MAX 3 /* Max length of receive queue */
-
-
-/*
- * Timer macros
- */
-#define CVC_TIMER(s, t) atm_timeout(&(s)->cvc_time, (t), atm_cm_timeout)
-#define CVC_CANCEL(s) atm_untimeout(&(s)->cvc_time)
-
-
-/*
- * Connection Manager Statistics
- */
-struct atm_cm_stat {
- u_long cms_llcdrop; /* Packets dropped by llc demux'ing */
- u_long cms_llcid; /* Packets with unknown llc id */
- u_long cms_rcvconn; /* Packets dropped, bad conn state */
- u_long cms_rcvconnvc; /* Packets dropped, bad connvc state */
-};
-
-void atm_cm_init(void);
-
-#endif /* _KERNEL */
-
-#endif /* _NETATM_ATM_CM_H */
OpenPOWER on IntegriCloud