Annotation of 43BSD/sys/netns/spp_var.h, revision 1.1.1.1

1.1       root        1: /*
                      2:  * Copyright (c) 1984, 1985, 1986 Regents of the University of California.
                      3:  * All rights reserved.  The Berkeley software License Agreement
                      4:  * specifies the terms and conditions for redistribution.
                      5:  *
                      6:  *     @(#)spp_var.h   7.1 (Berkeley) 6/5/86
                      7:  */
                      8: 
                      9: /*
                     10:  * Sp control block, one per connection
                     11:  */
                     12: struct 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: 
                     60: struct 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;
                     72:        short   notyet;
                     73:        short   lstdup;
                     74: };
                     75: 
                     76: #ifdef KERNEL
                     77: struct spp_istat spp_istat;
                     78: u_short spp_iss;
                     79: extern 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)

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.