Import 2.2.8pre2
[davej-history.git] / include / net / spx.h
bloba449b891bec77c851525acccf46f8d401d145ac6
1 #ifndef __NET_SPX_H
2 #define __NET_SPX_H
4 #include <net/ipx.h>
6 struct spxhdr
7 { __u8 cctl;
8 __u8 dtype;
9 #define SPX_DTYPE_ECONN 0xFE /* Finished */
10 #define SPX_DTYPE_ECACK 0xFF /* Ok */
11 __u16 sconn; /* Connection ID */
12 __u16 dconn; /* Connection ID */
13 __u16 sequence;
14 __u16 ackseq;
15 __u16 allocseq;
18 struct ipxspxhdr
19 { struct ipxhdr ipx;
20 struct spxhdr spx;
23 #define SPX_SYS_PKT_LEN (sizeof(struct ipxspxhdr))
25 #ifdef __KERNEL__
26 struct spx_opt
27 { int state;
28 int sndbuf;
29 int retries; /* Number of WD retries */
30 int retransmits; /* Number of retransmits */
31 int max_retries;
32 int wd_interval;
33 void *owner;
34 __u16 dest_connid; /* Net order */
35 __u16 source_connid; /* Net order */
36 __u16 sequence; /* Host order - our current pkt # */
37 __u16 alloc; /* Host order - max seq we can rcv now */
38 __u16 rmt_ack; /* Host order - last pkt ACKd by remote */
39 __u16 rmt_seq;
40 __u16 acknowledge;
41 __u16 rmt_alloc; /* Host order - max seq remote can handle now */
42 ipx_address dest_addr;
43 ipx_address source_addr;
44 struct timer_list watchdog; /* Idle watch */
45 struct timer_list retransmit; /* Retransmit timer */
46 struct sk_buff_head rcv_queue;
47 struct sk_buff_head transmit_queue;
48 struct sk_buff_head retransmit_queue;
51 /* Packet connectino control defines */
52 #define CCTL_SPXII_XHD 0x01 /* SPX2 extended header */
53 #define CCTL_SPX_UNKNOWN 0x02 /* Unknown (unused ??) */
54 #define CCTL_SPXII_NEG 0x04 /* Negotiate size */
55 #define CCTL_SPXII 0x08 /* Set for SPX2 */
56 #define CCTL_EOM 0x10 /* End of message marker */
57 #define CCTL_URG 0x20 /* Urgent marker in SPP (not used in SPX?) */
58 #define CCTL_ACK 0x40 /* Send me an ACK */
59 #define CCTL_CTL 0x80 /* Control message */
60 #define CCTL_SYS CCTL_CTL /* Spec uses CCTL_SYS */
62 /* Connection state defines */
63 #define SPX_CLOSED 7
64 #define SPX_CONNECTING 8
65 #define SPX_CONNECTED 9
67 /* Packet transmit types - Internal */
68 #define DATA 0 /* Data */
69 #define ACK 1 /* Data ACK */
70 #define WDACK 2 /* WD ACK */
71 #define CONACK 3 /* Connection Request ACK */
72 #define CONREQ 4 /* Connection Request */
73 #define WDREQ 5 /* WD Request */
74 #define DISCON 6 /* Informed Disconnect */
75 #define DISACK 7 /* Informed Disconnect ACK */
76 #define RETRAN 8 /* Int. Retransmit of packet */
77 #define TQUEUE 9 /* Int. Transmit of a queued packet */
80 * These are good canidates for IOcontrol calls
83 /* Watchdog defines */
84 #define VERIFY_TIMEOUT 3 * HZ
85 #define ABORT_TIMEOUT 30 * HZ
87 /* Packet retransmit defines */
88 #define RETRY_COUNT 10
89 #define RETRY_TIME 1 * HZ
90 #define MAX_RETRY_DELAY 5 * HZ
92 #endif /* __KERNEL__ */
93 #endif /* def __NET_SPX_H */