/*	Copyright (c) 1996-1998 Sun Microsystems, Inc.	*/
/*	  All Rights Reserved  	*/


#ifndef _SYS_XTI_OSI_H
#define	_SYS_XTI_OSI_H

#pragma ident	"@(#)xti_osi.h	1.6	98/04/28 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 */
