|
|
1.1 ! root 1: /* ! 2: * Copyright (c) 1982, 1986 Regents of the University of California. ! 3: * All rights reserved. ! 4: * ! 5: * Redistribution and use in source and binary forms are permitted ! 6: * provided that the above copyright notice and this paragraph are ! 7: * duplicated in all such forms and that any documentation, ! 8: * advertising materials, and other materials related to such ! 9: * distribution and use acknowledge that the software was developed ! 10: * by the University of California, Berkeley. The name of the ! 11: * University may not be used to endorse or promote products derived ! 12: * from this software without specific prior written permission. ! 13: * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR ! 14: * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED ! 15: * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. ! 16: * ! 17: * @(#)tcp_seq.h 7.3 (Berkeley) 6/29/88 ! 18: */ ! 19: ! 20: /* ! 21: * TCP sequence numbers are 32 bit integers operated ! 22: * on with modular arithmetic. These macros can be ! 23: * used to compare such integers. ! 24: */ ! 25: #define SEQ_LT(a,b) ((int)((a)-(b)) < 0) ! 26: #define SEQ_LEQ(a,b) ((int)((a)-(b)) <= 0) ! 27: #define SEQ_GT(a,b) ((int)((a)-(b)) > 0) ! 28: #define SEQ_GEQ(a,b) ((int)((a)-(b)) >= 0) ! 29: ! 30: /* ! 31: * Macros to initialize tcp sequence numbers for ! 32: * send and receive from initial send and receive ! 33: * sequence numbers. ! 34: */ ! 35: #define tcp_rcvseqinit(tp) \ ! 36: (tp)->rcv_adv = (tp)->rcv_nxt = (tp)->irs + 1 ! 37: ! 38: #define tcp_sendseqinit(tp) \ ! 39: (tp)->snd_una = (tp)->snd_nxt = (tp)->snd_max = (tp)->snd_up = \ ! 40: (tp)->iss ! 41: ! 42: #define TCP_ISSINCR (125*1024) /* increment for tcp_iss each second */ ! 43: ! 44: #ifdef KERNEL ! 45: tcp_seq tcp_iss; /* tcp initial send seq # */ ! 46: #endif
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.