1#ifndef __NET_SPX_H 2#define __NET_SPX_H 3 4#include <net/ipx.h> 5 6struct 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; 16}; 17 18struct ipxspxhdr 19{ struct ipxhdr ipx; 20 struct spxhdr spx; 21}; 22 23#define SPX_SYS_PKT_LEN (sizeof(struct ipxspxhdr)) 24 25#ifdef __KERNEL__ 26struct 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; 49}; 50 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 */ 61 62/* Connection state defines */ 63#define SPX_CLOSED 7 64#define SPX_CONNECTING 8 65#define SPX_CONNECTED 9 66 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 */ 78 79/* 80 * These are good canidates for IOcontrol calls 81 */ 82 83/* Watchdog defines */ 84#define VERIFY_TIMEOUT 3 * HZ 85#define ABORT_TIMEOUT 30 * HZ 86 87/* Packet retransmit defines */ 88#define RETRY_COUNT 10 89#define RETRY_TIME 1 * HZ 90#define MAX_RETRY_DELAY 5 * HZ 91 92#endif /* __KERNEL__ */ 93#endif /* def __NET_SPX_H */ 94