1#ifndef _IPX_H_
2#define _IPX_H_
3#include <linux/sockios.h>
4#include <linux/socket.h>
5#define IPX_NODE_LEN	6
6#define IPX_MTU		576
7
8struct sockaddr_ipx {
9	sa_family_t	sipx_family;
10	__be16		sipx_port;
11	__be32		sipx_network;
12	unsigned char 	sipx_node[IPX_NODE_LEN];
13	__u8		sipx_type;
14	unsigned char	sipx_zero;	/* 16 byte fill */
15};
16
17/*
18 * So we can fit the extra info for SIOCSIFADDR into the address nicely
19 */
20#define sipx_special	sipx_port
21#define sipx_action	sipx_zero
22#define IPX_DLTITF	0
23#define IPX_CRTITF	1
24
25struct ipx_route_definition {
26	__be32        ipx_network;
27	__be32        ipx_router_network;
28	unsigned char ipx_router_node[IPX_NODE_LEN];
29};
30
31struct ipx_interface_definition {
32	__be32        ipx_network;
33	unsigned char ipx_device[16];
34	unsigned char ipx_dlink_type;
35#define IPX_FRAME_NONE		0
36#define IPX_FRAME_SNAP		1
37#define IPX_FRAME_8022		2
38#define IPX_FRAME_ETHERII	3
39#define IPX_FRAME_8023		4
40#define IPX_FRAME_TR_8022       5 /* obsolete */
41	unsigned char ipx_special;
42#define IPX_SPECIAL_NONE	0
43#define IPX_PRIMARY		1
44#define IPX_INTERNAL		2
45	unsigned char ipx_node[IPX_NODE_LEN];
46};
47
48struct ipx_config_data {
49	unsigned char	ipxcfg_auto_select_primary;
50	unsigned char	ipxcfg_auto_create_interfaces;
51};
52
53/*
54 * OLD Route Definition for backward compatibility.
55 */
56
57struct ipx_route_def {
58	__be32		ipx_network;
59	__be32		ipx_router_network;
60#define IPX_ROUTE_NO_ROUTER	0
61	unsigned char	ipx_router_node[IPX_NODE_LEN];
62	unsigned char	ipx_device[16];
63	unsigned short	ipx_flags;
64#define IPX_RT_SNAP		8
65#define IPX_RT_8022		4
66#define IPX_RT_BLUEBOOK		2
67#define IPX_RT_ROUTED		1
68};
69
70#define SIOCAIPXITFCRT		(SIOCPROTOPRIVATE)
71#define SIOCAIPXPRISLT		(SIOCPROTOPRIVATE + 1)
72#define SIOCIPXCFGDATA		(SIOCPROTOPRIVATE + 2)
73#define SIOCIPXNCPCONN		(SIOCPROTOPRIVATE + 3)
74#endif /* _IPX_H_ */
75