xref: /csrg-svn/sys/netiso/tp_user.h (revision 36419)
1*36419Ssklower /***********************************************************
2*36419Ssklower 		Copyright IBM Corporation 1987
3*36419Ssklower 
4*36419Ssklower                       All Rights Reserved
5*36419Ssklower 
6*36419Ssklower Permission to use, copy, modify, and distribute this software and its
7*36419Ssklower documentation for any purpose and without fee is hereby granted,
8*36419Ssklower provided that the above copyright notice appear in all copies and that
9*36419Ssklower both that copyright notice and this permission notice appear in
10*36419Ssklower supporting documentation, and that the name of IBM not be
11*36419Ssklower used in advertising or publicity pertaining to distribution of the
12*36419Ssklower software without specific, written prior permission.
13*36419Ssklower 
14*36419Ssklower IBM DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
15*36419Ssklower ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
16*36419Ssklower IBM BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
17*36419Ssklower ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
18*36419Ssklower WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
19*36419Ssklower ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
20*36419Ssklower SOFTWARE.
21*36419Ssklower 
22*36419Ssklower ******************************************************************/
23*36419Ssklower 
24*36419Ssklower /*
25*36419Ssklower  * ARGO Project, Computer Sciences Dept., University of Wisconsin - Madison
26*36419Ssklower  */
27*36419Ssklower /*
28*36419Ssklower  * ARGO TP
29*36419Ssklower  *
30*36419Ssklower  * $Header: tp_user.h,v 5.2 88/11/04 15:44:44 nhall Exp $
31*36419Ssklower  * $Source: /usr/argo/sys/netiso/RCS/tp_user.h,v $
32*36419Ssklower  *
33*36419Ssklower  * These are the values a real-live user ;-) needs.
34*36419Ssklower  */
35*36419Ssklower 
36*36419Ssklower #ifdef KERNEL
37*36419Ssklower #include  "../h/types.h"
38*36419Ssklower #else KERNEL
39*36419Ssklower #include  <sys/types.h>
40*36419Ssklower #endif KERNEL
41*36419Ssklower 
42*36419Ssklower #ifndef __TP_USER__
43*36419Ssklower #define __TP_USER__
44*36419Ssklower 
45*36419Ssklower struct tp_conn_param {
46*36419Ssklower 	/* PER CONNECTION parameters */
47*36419Ssklower 	short	p_Nretrans;
48*36419Ssklower 	short p_dr_ticks;
49*36419Ssklower 
50*36419Ssklower 	short p_cc_ticks;
51*36419Ssklower 	short p_dt_ticks;
52*36419Ssklower 
53*36419Ssklower 	short p_x_ticks;
54*36419Ssklower 	short p_cr_ticks;
55*36419Ssklower 
56*36419Ssklower 	short p_keepalive_ticks;
57*36419Ssklower 	short p_sendack_ticks;
58*36419Ssklower 
59*36419Ssklower 	short p_ref_ticks;
60*36419Ssklower 	short p_inact_ticks;
61*36419Ssklower 
62*36419Ssklower 	short p_unused;	/* local credit fraction reported (>0) no longer used*/
63*36419Ssklower 	short p_winsize;
64*36419Ssklower 
65*36419Ssklower 	u_char p_tpdusize; 	/* log 2 of size */
66*36419Ssklower 
67*36419Ssklower 	u_char	p_ack_strat;	/* see comments in tp_pcb.h */
68*36419Ssklower 	u_char	p_rx_strat;	/* see comments in tp_pcb.h */
69*36419Ssklower 	u_char	p_class;	 	/* class bitmask */
70*36419Ssklower 	u_char	p_xtd_format;
71*36419Ssklower 	u_char	p_xpd_service;
72*36419Ssklower 	u_char	p_use_checksum;
73*36419Ssklower 	u_char	p_use_nxpd; 	/* netwk expedited data: not implemented */
74*36419Ssklower 	u_char	p_use_rcc;	/* receipt confirmation: not implemented */
75*36419Ssklower 	u_char	p_use_efc;	/* explicit flow control: not implemented */
76*36419Ssklower 	u_char	p_no_disc_indications; /* don't deliver indic on disc */
77*36419Ssklower 	u_char	p_dont_change_params; /* use these params as they are */
78*36419Ssklower 	u_char	p_netservice;
79*36419Ssklower };
80*36419Ssklower 
81*36419Ssklower /* get/set socket opt commands */
82*36419Ssklower #define		TPACK_WINDOW	0x0 /* ack only on full window */
83*36419Ssklower #define		TPACK_EACH		0x1 /* ack every packet */
84*36419Ssklower 
85*36419Ssklower #define		TPRX_USE_CW		0x8 /* use congestion window transmit */
86*36419Ssklower #define		TPRX_EACH		0x4 /* retrans each packet of a set */
87*36419Ssklower #define		TPRX_FASTSTART	0x1 /* don't use slow start */
88*36419Ssklower 
89*36419Ssklower #define TPOPT_FLAGS			0x300
90*36419Ssklower #define TPOPT_CONN_DATA		0x400
91*36419Ssklower #define TPOPT_DISC_DATA		0x500
92*36419Ssklower #define TPOPT_CDDATA_CLEAR	0x700
93*36419Ssklower #define TPOPT_PERF_MEAS		0xa00
94*36419Ssklower #define TPOPT_PSTATISTICS	0xb00
95*36419Ssklower #define TPOPT_PARAMS		0xc00 /* to replace a bunch of the others */
96*36419Ssklower #define TPOPT_MY_TSEL		0x800
97*36419Ssklower #define TPOPT_PEER_TSEL		0x900
98*36419Ssklower 
99*36419Ssklower /*
100*36419Ssklower  ***********************flags**********************************
101*36419Ssklower  */
102*36419Ssklower 
103*36419Ssklower /* read only flags */
104*36419Ssklower #define TPFLAG_DISC_DATA_OUT	(u_char)0x10 /* disc data present */
105*36419Ssklower #define TPFLAG_DISC_DATA_IN		(u_char)0x20 /* disc data present */
106*36419Ssklower #define TPFLAG_CONN_DATA_OUT	(u_char)0x40 /* conn data present */
107*36419Ssklower #define TPFLAG_CONN_DATA_IN		(u_char)0x80 /* conn data present */
108*36419Ssklower #define TPFLAG_XPD_PRESENT		(u_char)0x08 /* xpd data present */
109*36419Ssklower #define TPFLAG_PEER_ON_SAMENET	(u_char)0x02
110*36419Ssklower #define TPFLAG_NLQOS_PDN		(u_char)0x01
111*36419Ssklower 
112*36419Ssklower 
113*36419Ssklower /*
114*36419Ssklower  ***********************end flags******************************
115*36419Ssklower  */
116*36419Ssklower 
117*36419Ssklower 
118*36419Ssklower #endif __TP_USER__
119