OpenSolaris_b135/uts/common/sys/xti_osi.h

/*
 * CDDL HEADER START
 *
 * The contents of this file are subject to the terms of the
 * Common Development and Distribution License, Version 1.0 only
 * (the "License").  You may not use this file except in compliance
 * with the License.
 *
 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
 * or http://www.opensolaris.org/os/licensing.
 * See the License for the specific language governing permissions
 * and limitations under the License.
 *
 * When distributing Covered Code, include this CDDL HEADER in each
 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
 * If applicable, add the following below this CDDL HEADER, with the
 * fields enclosed by brackets "[]" replaced with your own identifying
 * information: Portions Copyright [yyyy] [name of copyright owner]
 *
 * CDDL HEADER END
 */
/*	Copyright (c) 1996-1998 Sun Microsystems, Inc.	*/
/*	  All Rights Reserved  	*/


#ifndef _SYS_XTI_OSI_H
#define	_SYS_XTI_OSI_H

#pragma ident	"%Z%%M%	%I%	%E% SMI"

#include <sys/types.h>

#ifdef	__cplusplus
extern "C" {
#endif

#if !defined(_XPG5)

/*
 * SPECIFIC ISO OPTION AND MANAGEMENT PARAMETERS
 *
 * Note:
 * Unfortunately, XTI specification test assertions require exposing in
 * headers options that are not implemented. They also require exposing
 * Internet and OSI related options as part of inclusion of <xti.h>
 *
 */


/*
 * Definitions of ISO transport classes
 */

#define	T_CLASS0	0
#define	T_CLASS1	1
#define	T_CLASS2	2
#define	T_CLASS3	3
#define	T_CLASS4	4


/*
 * Definition of the priorities
 */

#define	T_PRITOP	0
#define	T_PRIHIGH	1
#define	T_PRIMID	2
#define	T_PRILOW	3
#define	T_PRIDFLT	4

/*
 * Definitions of the protection levels
 */

#define	T_NOPROTECT		1
#define	T_PASSIVEPROTECT	2
#define	T_ACTIVEPROTECT		4

/*
 * Default values for the length of TPDUs
 * Note: Sigh ! This obsolete constant required according to XTI test
 *	 assertions.
 */

#define	T_LTPDUDFLT	128	/* define obsolete in XPG4 */

/*
 * rate structure
 */

struct rate {
	t_scalar_t	targetvalue;	/* target value */
	t_scalar_t	minacceptvalue;	/* value of minimum */
					/* acceptable quality */
};

/*
 * reqvalue structure
 */

struct reqvalue {
	struct rate called;	/* called rate */
	struct rate calling;	/* calling rate */
};

/*
 * thrpt structure
 */

struct thrpt {
	struct reqvalue maxthrpt; /* maximum throughput */
	struct reqvalue avgthrpt; /* average throughput */
};

/*
 * transdel structure
 */

struct transdel {
	struct reqvalue maxdel;	/* maximum transit delay */
	struct reqvalue avgdel;	/* average throughput */
};

/*
 * Protocol Levels
 */

#define	ISO_TP	0x0100

/*
 * Options for Quality of Service and Expedited Data (ISO 8072:1986)
 */

#define	TCO_THROUGHPUT		0x0001
#define	TCO_TRANSDEL		0x0002
#define	TCO_RESERRORRATE	0x0003
#define	TCO_TRANSFFAILPROB	0x0004
#define	TCO_ESTFAILPROB		0x0005
#define	TCO_RELFAILPROB		0x0006
#define	TCO_ESTDELAY		0x0007
#define	TCO_RELDELAY		0x0008
#define	TCO_CONNRESIL		0x0009
#define	TCO_PROTECTION		0x000a
#define	TCO_PRIORITY		0x000b
#define	TCO_EXPD		0x000c

#define	TCL_TRANSDEL		0x000d
#define	TCL_RESERRORRATE	TCO_RESERRORRATE
#define	TCL_PROTECTION		TCO_PROTECTION
#define	TCL_PRIORITY		TCO_PRIORITY


/*
 * Management Options
 */

#define	TCO_LTPDU		0x0100
#define	TCO_ACKTIME		0x0200
#define	TCO_REASTIME		0x0300
#define	TCO_EXTFORM		0x0400
#define	TCO_FLOWCTRL		0x0500
#define	TCO_CHECKSUM		0x0600
#define	TCO_NETEXP		0x0700
#define	TCO_NETRECPTCF		0x0800
#define	TCO_PREFCLASS		0x0900
#define	TCO_ALTCLASS1		0x0a00
#define	TCO_ALTCLASS2		0x0b00
#define	TCO_ALTCLASS3		0x0c00
#define	TCO_ALTCLASS4		0x0d00

#define	TCL_CHECKSUM		TCO_CHECKSUM

#endif /* !defined(_XPG5) */

#ifdef	__cplusplus
}
#endif

#endif	/* _SYS_XTI_OSI_H */