xref: /csrg-svn/sys/netiso/tp_user.h (revision 63222)
149268Sbostic /*-
2*63222Sbostic  * Copyright (c) 1991, 1993
3*63222Sbostic  *	The Regents of the University of California.  All rights reserved.
449268Sbostic  *
549268Sbostic  * %sccs.include.redist.c%
649268Sbostic  *
7*63222Sbostic  *	@(#)tp_user.h	8.1 (Berkeley) 06/10/93
849268Sbostic  */
949268Sbostic 
1036419Ssklower /***********************************************************
1136419Ssklower 		Copyright IBM Corporation 1987
1236419Ssklower 
1336419Ssklower                       All Rights Reserved
1436419Ssklower 
1536419Ssklower Permission to use, copy, modify, and distribute this software and its
1636419Ssklower documentation for any purpose and without fee is hereby granted,
1736419Ssklower provided that the above copyright notice appear in all copies and that
1836419Ssklower both that copyright notice and this permission notice appear in
1936419Ssklower supporting documentation, and that the name of IBM not be
2036419Ssklower used in advertising or publicity pertaining to distribution of the
2136419Ssklower software without specific, written prior permission.
2236419Ssklower 
2336419Ssklower IBM DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
2436419Ssklower ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
2536419Ssklower IBM BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
2636419Ssklower ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
2736419Ssklower WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
2836419Ssklower ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
2936419Ssklower SOFTWARE.
3036419Ssklower 
3136419Ssklower ******************************************************************/
3236419Ssklower 
3336419Ssklower /*
3436419Ssklower  * ARGO Project, Computer Sciences Dept., University of Wisconsin - Madison
3536419Ssklower  */
3636419Ssklower /*
3736419Ssklower  * ARGO TP
3836419Ssklower  *
3936419Ssklower  * $Header: tp_user.h,v 5.2 88/11/04 15:44:44 nhall Exp $
4036419Ssklower  * $Source: /usr/argo/sys/netiso/RCS/tp_user.h,v $
4136419Ssklower  *
4236419Ssklower  * These are the values a real-live user ;-) needs.
4336419Ssklower  */
4436419Ssklower 
4539191Ssklower #ifndef _TYPES_
4636419Ssklower #include  <sys/types.h>
4739191Ssklower #endif
4836419Ssklower 
4936419Ssklower #ifndef __TP_USER__
5036419Ssklower #define __TP_USER__
5136419Ssklower 
5236419Ssklower struct tp_conn_param {
5336419Ssklower 	/* PER CONNECTION parameters */
5436419Ssklower 	short	p_Nretrans;
5542490Ssklower 	short	p_dr_ticks;
5636419Ssklower 
5742490Ssklower 	short	p_cc_ticks;
5842490Ssklower 	short	p_dt_ticks;
5936419Ssklower 
6042490Ssklower 	short	p_x_ticks;
6142490Ssklower 	short	p_cr_ticks;
6236419Ssklower 
6342490Ssklower 	short	p_keepalive_ticks;
6442490Ssklower 	short	p_sendack_ticks;
6536419Ssklower 
6642490Ssklower 	short	p_ref_ticks;
6742490Ssklower 	short	p_inact_ticks;
6836419Ssklower 
6951996Ssklower 	short	p_ptpdusize;	/* preferred tpdusize/128 */
7042490Ssklower 	short	p_winsize;
7136419Ssklower 
7242490Ssklower 	u_char	p_tpdusize; 	/* log 2 of size */
7336419Ssklower 
7436419Ssklower 	u_char	p_ack_strat;	/* see comments in tp_pcb.h */
7536419Ssklower 	u_char	p_rx_strat;	/* see comments in tp_pcb.h */
7636419Ssklower 	u_char	p_class;	 	/* class bitmask */
7736419Ssklower 	u_char	p_xtd_format;
7836419Ssklower 	u_char	p_xpd_service;
7936419Ssklower 	u_char	p_use_checksum;
8036419Ssklower 	u_char	p_use_nxpd; 	/* netwk expedited data: not implemented */
8136419Ssklower 	u_char	p_use_rcc;	/* receipt confirmation: not implemented */
8236419Ssklower 	u_char	p_use_efc;	/* explicit flow control: not implemented */
8342490Ssklower 	u_char	p_no_disc_indications;	/* don't deliver indic on disc */
8442490Ssklower 	u_char	p_dont_change_params;	/* use these params as they are */
8536419Ssklower 	u_char	p_netservice;
8642490Ssklower 	u_char	p_version;	/* only here for checking */
8736419Ssklower };
8836419Ssklower 
8937469Ssklower /*
9037469Ssklower  * These sockopt level definitions should be considered for socket.h
9137469Ssklower  */
9237469Ssklower #define	SOL_TRANSPORT	0xfffe
9337469Ssklower #define	SOL_NETWORK	0xfffd
9437469Ssklower 
9536419Ssklower /* get/set socket opt commands */
9636419Ssklower #define		TPACK_WINDOW	0x0 /* ack only on full window */
9736419Ssklower #define		TPACK_EACH		0x1 /* ack every packet */
9836419Ssklower 
9936419Ssklower #define		TPRX_USE_CW		0x8 /* use congestion window transmit */
10036419Ssklower #define		TPRX_EACH		0x4 /* retrans each packet of a set */
10136419Ssklower #define		TPRX_FASTSTART	0x1 /* don't use slow start */
10236419Ssklower 
10344424Ssklower #define TPOPT_INTERCEPT		0x200
10436419Ssklower #define TPOPT_FLAGS			0x300
10536419Ssklower #define TPOPT_CONN_DATA		0x400
10636419Ssklower #define TPOPT_DISC_DATA		0x500
10737469Ssklower #define TPOPT_CFRM_DATA		0x600
10836419Ssklower #define TPOPT_CDDATA_CLEAR	0x700
10950648Ssklower #define TPOPT_MY_TSEL		0x800
11050648Ssklower #define TPOPT_PEER_TSEL		0x900
11136419Ssklower #define TPOPT_PERF_MEAS		0xa00
11236419Ssklower #define TPOPT_PSTATISTICS	0xb00
11336419Ssklower #define TPOPT_PARAMS		0xc00 /* to replace a bunch of the others */
11448735Ssklower #define TPOPT_DISC_REASON	0xe00
11536419Ssklower 
11648735Ssklower struct tp_disc_reason {
11748735Ssklower 	struct cmsghdr dr_hdr;
11848735Ssklower 	u_int	dr_reason;
11948735Ssklower };
12048735Ssklower 
12136419Ssklower /*
12236419Ssklower  ***********************flags**********************************
12336419Ssklower  */
12436419Ssklower 
12536419Ssklower /* read only flags */
12650648Ssklower #define TPFLAG_NLQOS_PDN		(u_char)0x01
12736419Ssklower #define TPFLAG_PEER_ON_SAMENET	(u_char)0x02
12850648Ssklower #define TPFLAG_GENERAL_ADDR		(u_char)0x04 /* bound to wildcard addr */
12936419Ssklower 
13036419Ssklower 
13136419Ssklower /*
13236419Ssklower  ***********************end flags******************************
13336419Ssklower  */
13436419Ssklower 
13536419Ssklower 
13660359Sbostic #endif /* __TP_USER__ */
137