Correct erroneous copyright information.
[unix-history] / usr / src / sys / netns / spp_var.h
CommitLineData
8ae0e4b4 1/*
79b7ed8c 2 * Copyright (c) 1984, 1985 Regents of the University of California.
8ae0e4b4
KM
3 * All rights reserved. The Berkeley software License Agreement
4 * specifies the terms and conditions for redistribution.
5 *
79b7ed8c 6 * @(#)spp_var.h 6.4 (Berkeley) %G%
8ae0e4b4 7 */
cbf839b6
KS
8
9/*
10 * Sp control block, one per connection
11 */
12struct sppcb {
13 struct spidp_q s_q; /* queue for out-of-order receipt */
14 struct nspcb *s_nspcb; /* backpointer to internet pcb */
15 u_char s_state;
16 u_char s_flags;
17#define SF_AK 0x01 /* Acknowledgement requested */
18#define SF_DELACK 0x02 /* Ak, waiting to see if we xmit*/
19#define SF_HI 0x04 /* Show headers on input */
20#define SF_HO 0x08 /* Show headers on output */
21#define SF_PI 0x10 /* Packet (datagram) interface */
22 u_short s_mtu; /* Max packet size for this stream */
23/* use sequence fields in headers to store sequence numbers for this
24 connection */
25 struct spidp s_shdr; /* prototype header to transmit */
26#define s_cc s_shdr.si_cc /* connection control (for EM bit) */
27#define s_dt s_shdr.si_dt /* datastream type */
28#define s_sid s_shdr.si_sid /* source connection identifier */
29#define s_did s_shdr.si_did /* destination connection identifier */
30#define s_seq s_shdr.si_seq /* sequence number */
31#define s_ack s_shdr.si_ack /* acknowledge number */
32#define s_alo s_shdr.si_alo /* allocation number */
33#define s_dport s_shdr.si_dna.x_port /* where we are sending */
34 struct sphdr s_rhdr; /* last received header (in effect!)*/
35 u_short s_rack; /* their acknowledge number */
36 u_short s_ralo; /* their allocation number */
37 u_short s_snt; /* highest packet # we have sent */
38
39/* timeout stuff */
40 short s_idle; /* time idle */
41 short s_timer[TCPT_NTIMERS]; /* timers */
42 short s_rxtshift; /* log(2) of rexmt exp. backoff */
43 u_short s_rtseq; /* packet being timed */
44 short s_rtt; /* timer for round trips */
45 short s_srtt; /* averaged timer */
46 char s_force; /* which timer expired */
47
48/* out of band data */
49 char s_oobflags;
50#define SF_SOOB 0x08 /* sending out of band data */
51#define SF_IOOB 0x10 /* receiving out of band data */
52 char s_iobc; /* input characters */
53/* debug stuff */
54 u_short s_want; /* Last candidate for sending */
55};
56
57#define nstosppcb(np) ((struct sppcb *)(np)->nsp_pcb)
58#define sotosppcb(so) (nstosppcb(sotonspcb(so)))
59
60struct spp_istat {
61 short hdrops;
62 short badsum;
63 short badlen;
64 short slotim;
65 short fastim;
66 short nonucn;
67 short noconn;
68 short notme;
69 short wrncon;
70 short bdreas;
71 short gonawy;
f1f25520
KS
72 short notyet;
73 short lstdup;
cbf839b6
KS
74};
75
76#ifdef KERNEL
77struct spp_istat spp_istat;
78u_short spp_iss;
79extern struct sppcb *spp_close(), *spp_disconnect(),
80 *spp_usrclosed(), *spp_timers(), *spp_drop();
81#endif
82
83#define SPP_ISSINCR 128
84/*
85 * SPP sequence numbers are 16 bit integers operated
86 * on with modular arithmetic. These macros can be
87 * used to compare such integers.
88 */
89#define SSEQ_LT(a,b) (((short)((a)-(b))) < 0)
90#define SSEQ_LEQ(a,b) (((short)((a)-(b))) <= 0)
91#define SSEQ_GT(a,b) (((short)((a)-(b))) > 0)
92#define SSEQ_GEQ(a,b) (((short)((a)-(b))) >= 0)