#ifndef __NET_SPX_H #define __NET_SPX_H #include struct spxhdr { __u8 cctl; __u8 dtype; #define SPX_DTYPE_ECONN 0xFE /* Finished */ #define SPX_DTYPE_ECACK 0xFF /* Ok */ __u16 sconn; /* Connection ID */ __u16 dconn; /* Connection ID */ __u16 sequence; __u16 ackseq; __u16 allocseq; }; struct ipxspxhdr { struct ipxhdr ipx; struct spxhdr spx; }; #define SPX_SYS_PKT_LEN (sizeof(struct ipxspxhdr)) #ifdef __KERNEL__ struct spx_opt { int state; int sndbuf; int retries; /* Number of WD retries */ int retransmits; /* Number of retransmits */ int max_retries; int wd_interval; void *owner; __u16 dest_connid; /* Net order */ __u16 source_connid; /* Net order */ __u16 sequence; /* Host order - our current pkt # */ __u16 alloc; /* Host order - max seq we can rcv now */ __u16 rmt_ack; /* Host order - last pkt ACKd by remote */ __u16 rmt_seq; __u16 acknowledge; __u16 rmt_alloc; /* Host order - max seq remote can handle now */ ipx_address dest_addr; ipx_address source_addr; struct timer_list watchdog; /* Idle watch */ struct timer_list retransmit; /* Retransmit timer */ struct sk_buff_head rcv_queue; struct sk_buff_head transmit_queue; struct sk_buff_head retransmit_queue; }; /* Packet connectino control defines */ #define CCTL_SPXII_XHD 0x01 /* SPX2 extended header */ #define CCTL_SPX_UNKNOWN 0x02 /* Unknown (unused ??) */ #define CCTL_SPXII_NEG 0x04 /* Negotiate size */ #define CCTL_SPXII 0x08 /* Set for SPX2 */ #define CCTL_EOM 0x10 /* End of message marker */ #define CCTL_URG 0x20 /* Urgent marker in SPP (not used in SPX?) */ #define CCTL_ACK 0x40 /* Send me an ACK */ #define CCTL_CTL 0x80 /* Control message */ #define CCTL_SYS CCTL_CTL /* Spec uses CCTL_SYS */ /* Connection state defines */ #define SPX_CLOSED 7 #define SPX_CONNECTING 8 #define SPX_CONNECTED 9 /* Packet transmit types - Internal */ #define DATA 0 /* Data */ #define ACK 1 /* Data ACK */ #define WDACK 2 /* WD ACK */ #define CONACK 3 /* Connection Request ACK */ #define CONREQ 4 /* Connection Request */ #define WDREQ 5 /* WD Request */ #define DISCON 6 /* Informed Disconnect */ #define DISACK 7 /* Informed Disconnect ACK */ #define RETRAN 8 /* Int. Retransmit of packet */ #define TQUEUE 9 /* Int. Transmit of a queued packet */ /* * These are good canidates for IOcontrol calls */ /* Watchdog defines */ #define VERIFY_TIMEOUT 3 * HZ #define ABORT_TIMEOUT 30 * HZ /* Packet retransmit defines */ #define RETRY_COUNT 10 #define RETRY_TIME 1 * HZ #define MAX_RETRY_DELAY 5 * HZ #endif /* __KERNEL__ */ #endif /* def __NET_SPX_H */