xref: /csrg-svn/sys/netiso/tp_user.h (revision 50648)
149268Sbostic /*-
249268Sbostic  * Copyright (c) 1991 The Regents of the University of California.
349268Sbostic  * All rights reserved.
449268Sbostic  *
549268Sbostic  * %sccs.include.redist.c%
649268Sbostic  *
7*50648Ssklower  *	@(#)tp_user.h	7.11 (Berkeley) 07/29/91
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 #ifdef KERNEL
4739191Ssklower #include  "../sys/types.h"
4836419Ssklower #else KERNEL
4936419Ssklower #include  <sys/types.h>
5036419Ssklower #endif KERNEL
5139191Ssklower #endif
5236419Ssklower 
5336419Ssklower #ifndef __TP_USER__
5436419Ssklower #define __TP_USER__
5536419Ssklower 
5636419Ssklower struct tp_conn_param {
5736419Ssklower 	/* PER CONNECTION parameters */
5836419Ssklower 	short	p_Nretrans;
5942490Ssklower 	short	p_dr_ticks;
6036419Ssklower 
6142490Ssklower 	short	p_cc_ticks;
6242490Ssklower 	short	p_dt_ticks;
6336419Ssklower 
6442490Ssklower 	short	p_x_ticks;
6542490Ssklower 	short	p_cr_ticks;
6636419Ssklower 
6742490Ssklower 	short	p_keepalive_ticks;
6842490Ssklower 	short	p_sendack_ticks;
6936419Ssklower 
7042490Ssklower 	short	p_ref_ticks;
7142490Ssklower 	short	p_inact_ticks;
7236419Ssklower 
7342490Ssklower 	short	p_unused;	/* was .. local credit fraction reported (>0) */
7442490Ssklower 	short	p_winsize;
7536419Ssklower 
7642490Ssklower 	u_char	p_tpdusize; 	/* log 2 of size */
7736419Ssklower 
7836419Ssklower 	u_char	p_ack_strat;	/* see comments in tp_pcb.h */
7936419Ssklower 	u_char	p_rx_strat;	/* see comments in tp_pcb.h */
8036419Ssklower 	u_char	p_class;	 	/* class bitmask */
8136419Ssklower 	u_char	p_xtd_format;
8236419Ssklower 	u_char	p_xpd_service;
8336419Ssklower 	u_char	p_use_checksum;
8436419Ssklower 	u_char	p_use_nxpd; 	/* netwk expedited data: not implemented */
8536419Ssklower 	u_char	p_use_rcc;	/* receipt confirmation: not implemented */
8636419Ssklower 	u_char	p_use_efc;	/* explicit flow control: not implemented */
8742490Ssklower 	u_char	p_no_disc_indications;	/* don't deliver indic on disc */
8842490Ssklower 	u_char	p_dont_change_params;	/* use these params as they are */
8936419Ssklower 	u_char	p_netservice;
9042490Ssklower 	u_char	p_version;	/* only here for checking */
9136419Ssklower };
9236419Ssklower 
9337469Ssklower /*
9437469Ssklower  * These sockopt level definitions should be considered for socket.h
9537469Ssklower  */
9637469Ssklower #define	SOL_TRANSPORT	0xfffe
9737469Ssklower #define	SOL_NETWORK	0xfffd
9837469Ssklower 
9936419Ssklower /* get/set socket opt commands */
10036419Ssklower #define		TPACK_WINDOW	0x0 /* ack only on full window */
10136419Ssklower #define		TPACK_EACH		0x1 /* ack every packet */
10236419Ssklower 
10336419Ssklower #define		TPRX_USE_CW		0x8 /* use congestion window transmit */
10436419Ssklower #define		TPRX_EACH		0x4 /* retrans each packet of a set */
10536419Ssklower #define		TPRX_FASTSTART	0x1 /* don't use slow start */
10636419Ssklower 
10744424Ssklower #define TPOPT_INTERCEPT		0x200
10836419Ssklower #define TPOPT_FLAGS			0x300
10936419Ssklower #define TPOPT_CONN_DATA		0x400
11036419Ssklower #define TPOPT_DISC_DATA		0x500
11137469Ssklower #define TPOPT_CFRM_DATA		0x600
11236419Ssklower #define TPOPT_CDDATA_CLEAR	0x700
113*50648Ssklower #define TPOPT_MY_TSEL		0x800
114*50648Ssklower #define TPOPT_PEER_TSEL		0x900
11536419Ssklower #define TPOPT_PERF_MEAS		0xa00
11636419Ssklower #define TPOPT_PSTATISTICS	0xb00
11736419Ssklower #define TPOPT_PARAMS		0xc00 /* to replace a bunch of the others */
11848735Ssklower #define TPOPT_DISC_REASON	0xe00
11936419Ssklower 
12048735Ssklower struct tp_disc_reason {
12148735Ssklower 	struct cmsghdr dr_hdr;
12248735Ssklower 	u_int	dr_reason;
12348735Ssklower };
12448735Ssklower 
12536419Ssklower /*
12636419Ssklower  ***********************flags**********************************
12736419Ssklower  */
12836419Ssklower 
12936419Ssklower /* read only flags */
130*50648Ssklower #define TPFLAG_NLQOS_PDN		(u_char)0x01
13136419Ssklower #define TPFLAG_PEER_ON_SAMENET	(u_char)0x02
132*50648Ssklower #define TPFLAG_GENERAL_ADDR		(u_char)0x04 /* bound to wildcard addr */
13336419Ssklower 
13436419Ssklower 
13536419Ssklower /*
13636419Ssklower  ***********************end flags******************************
13736419Ssklower  */
13836419Ssklower 
13936419Ssklower 
14036419Ssklower #endif __TP_USER__
141