blob: 30f031db12f60c9c5f94a2194b09663f1b20e552 [file] [log] [blame]
Linus Torvalds1da177e2005-04-16 15:20:36 -07001#ifndef _IPX_H_
2#define _IPX_H_
Mikko Rapeli53dc65d2016-08-22 20:33:21 +02003#include <linux/libc-compat.h> /* for compatibility with glibc netipx/ipx.h */
Jaswinder Singh Rajputd6d20f52009-01-30 21:49:07 +05304#include <linux/types.h>
Linus Torvalds1da177e2005-04-16 15:20:36 -07005#include <linux/sockios.h>
6#include <linux/socket.h>
7#define IPX_NODE_LEN 6
8#define IPX_MTU 576
9
Mikko Rapeli53dc65d2016-08-22 20:33:21 +020010#if __UAPI_DEF_SOCKADDR_IPX
Linus Torvalds1da177e2005-04-16 15:20:36 -070011struct sockaddr_ipx {
Ben Hutchingsbcb949b2011-08-24 18:43:55 +000012 __kernel_sa_family_t sipx_family;
Al Viro4833ed02006-11-03 00:27:06 -080013 __be16 sipx_port;
14 __be32 sipx_network;
Linus Torvalds1da177e2005-04-16 15:20:36 -070015 unsigned char sipx_node[IPX_NODE_LEN];
16 __u8 sipx_type;
17 unsigned char sipx_zero; /* 16 byte fill */
18};
Mikko Rapeli53dc65d2016-08-22 20:33:21 +020019#endif /* __UAPI_DEF_SOCKADDR_IPX */
Linus Torvalds1da177e2005-04-16 15:20:36 -070020
21/*
22 * So we can fit the extra info for SIOCSIFADDR into the address nicely
23 */
24#define sipx_special sipx_port
25#define sipx_action sipx_zero
26#define IPX_DLTITF 0
27#define IPX_CRTITF 1
28
Mikko Rapeli53dc65d2016-08-22 20:33:21 +020029#if __UAPI_DEF_IPX_ROUTE_DEFINITION
Linus Torvalds1da177e2005-04-16 15:20:36 -070030struct ipx_route_definition {
Al Viro4833ed02006-11-03 00:27:06 -080031 __be32 ipx_network;
32 __be32 ipx_router_network;
Linus Torvalds1da177e2005-04-16 15:20:36 -070033 unsigned char ipx_router_node[IPX_NODE_LEN];
34};
Mikko Rapeli53dc65d2016-08-22 20:33:21 +020035#endif /* __UAPI_DEF_IPX_ROUTE_DEFINITION */
Linus Torvalds1da177e2005-04-16 15:20:36 -070036
Mikko Rapeli53dc65d2016-08-22 20:33:21 +020037#if __UAPI_DEF_IPX_INTERFACE_DEFINITION
Linus Torvalds1da177e2005-04-16 15:20:36 -070038struct ipx_interface_definition {
Al Viro4833ed02006-11-03 00:27:06 -080039 __be32 ipx_network;
Linus Torvalds1da177e2005-04-16 15:20:36 -070040 unsigned char ipx_device[16];
41 unsigned char ipx_dlink_type;
42#define IPX_FRAME_NONE 0
43#define IPX_FRAME_SNAP 1
44#define IPX_FRAME_8022 2
45#define IPX_FRAME_ETHERII 3
46#define IPX_FRAME_8023 4
Paul Gortmakerd0a24a32012-05-23 04:43:45 +000047#define IPX_FRAME_TR_8022 5 /* obsolete */
Linus Torvalds1da177e2005-04-16 15:20:36 -070048 unsigned char ipx_special;
49#define IPX_SPECIAL_NONE 0
50#define IPX_PRIMARY 1
51#define IPX_INTERNAL 2
52 unsigned char ipx_node[IPX_NODE_LEN];
53};
Mikko Rapeli53dc65d2016-08-22 20:33:21 +020054#endif /* __UAPI_DEF_IPX_INTERFACE_DEFINITION */
55
56#if __UAPI_DEF_IPX_CONFIG_DATA
Linus Torvalds1da177e2005-04-16 15:20:36 -070057struct ipx_config_data {
58 unsigned char ipxcfg_auto_select_primary;
59 unsigned char ipxcfg_auto_create_interfaces;
60};
Mikko Rapeli53dc65d2016-08-22 20:33:21 +020061#endif /* __UAPI_DEF_IPX_CONFIG_DATA */
Linus Torvalds1da177e2005-04-16 15:20:36 -070062
63/*
64 * OLD Route Definition for backward compatibility.
65 */
66
Mikko Rapeli53dc65d2016-08-22 20:33:21 +020067#if __UAPI_DEF_IPX_ROUTE_DEF
Linus Torvalds1da177e2005-04-16 15:20:36 -070068struct ipx_route_def {
Al Viro4833ed02006-11-03 00:27:06 -080069 __be32 ipx_network;
70 __be32 ipx_router_network;
Linus Torvalds1da177e2005-04-16 15:20:36 -070071#define IPX_ROUTE_NO_ROUTER 0
72 unsigned char ipx_router_node[IPX_NODE_LEN];
73 unsigned char ipx_device[16];
74 unsigned short ipx_flags;
75#define IPX_RT_SNAP 8
76#define IPX_RT_8022 4
77#define IPX_RT_BLUEBOOK 2
78#define IPX_RT_ROUTED 1
79};
Mikko Rapeli53dc65d2016-08-22 20:33:21 +020080#endif /* __UAPI_DEF_IPX_ROUTE_DEF */
Linus Torvalds1da177e2005-04-16 15:20:36 -070081
82#define SIOCAIPXITFCRT (SIOCPROTOPRIVATE)
83#define SIOCAIPXPRISLT (SIOCPROTOPRIVATE + 1)
84#define SIOCIPXCFGDATA (SIOCPROTOPRIVATE + 2)
85#define SIOCIPXNCPCONN (SIOCPROTOPRIVATE + 3)
86#endif /* _IPX_H_ */