xref: /OK3568_Linux_fs/kernel/include/uapi/linux/ipx.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
2*4882a593Smuzhiyun #ifndef _IPX_H_
3*4882a593Smuzhiyun #define _IPX_H_
4*4882a593Smuzhiyun #include <linux/libc-compat.h>	/* for compatibility with glibc netipx/ipx.h */
5*4882a593Smuzhiyun #include <linux/types.h>
6*4882a593Smuzhiyun #include <linux/sockios.h>
7*4882a593Smuzhiyun #include <linux/socket.h>
8*4882a593Smuzhiyun #define IPX_NODE_LEN	6
9*4882a593Smuzhiyun #define IPX_MTU		576
10*4882a593Smuzhiyun 
11*4882a593Smuzhiyun #if __UAPI_DEF_SOCKADDR_IPX
12*4882a593Smuzhiyun struct sockaddr_ipx {
13*4882a593Smuzhiyun 	__kernel_sa_family_t sipx_family;
14*4882a593Smuzhiyun 	__be16		sipx_port;
15*4882a593Smuzhiyun 	__be32		sipx_network;
16*4882a593Smuzhiyun 	unsigned char 	sipx_node[IPX_NODE_LEN];
17*4882a593Smuzhiyun 	__u8		sipx_type;
18*4882a593Smuzhiyun 	unsigned char	sipx_zero;	/* 16 byte fill */
19*4882a593Smuzhiyun };
20*4882a593Smuzhiyun #endif /* __UAPI_DEF_SOCKADDR_IPX */
21*4882a593Smuzhiyun 
22*4882a593Smuzhiyun /*
23*4882a593Smuzhiyun  * So we can fit the extra info for SIOCSIFADDR into the address nicely
24*4882a593Smuzhiyun  */
25*4882a593Smuzhiyun #define sipx_special	sipx_port
26*4882a593Smuzhiyun #define sipx_action	sipx_zero
27*4882a593Smuzhiyun #define IPX_DLTITF	0
28*4882a593Smuzhiyun #define IPX_CRTITF	1
29*4882a593Smuzhiyun 
30*4882a593Smuzhiyun #if __UAPI_DEF_IPX_ROUTE_DEFINITION
31*4882a593Smuzhiyun struct ipx_route_definition {
32*4882a593Smuzhiyun 	__be32        ipx_network;
33*4882a593Smuzhiyun 	__be32        ipx_router_network;
34*4882a593Smuzhiyun 	unsigned char ipx_router_node[IPX_NODE_LEN];
35*4882a593Smuzhiyun };
36*4882a593Smuzhiyun #endif /* __UAPI_DEF_IPX_ROUTE_DEFINITION */
37*4882a593Smuzhiyun 
38*4882a593Smuzhiyun #if __UAPI_DEF_IPX_INTERFACE_DEFINITION
39*4882a593Smuzhiyun struct ipx_interface_definition {
40*4882a593Smuzhiyun 	__be32        ipx_network;
41*4882a593Smuzhiyun 	unsigned char ipx_device[16];
42*4882a593Smuzhiyun 	unsigned char ipx_dlink_type;
43*4882a593Smuzhiyun #define IPX_FRAME_NONE		0
44*4882a593Smuzhiyun #define IPX_FRAME_SNAP		1
45*4882a593Smuzhiyun #define IPX_FRAME_8022		2
46*4882a593Smuzhiyun #define IPX_FRAME_ETHERII	3
47*4882a593Smuzhiyun #define IPX_FRAME_8023		4
48*4882a593Smuzhiyun #define IPX_FRAME_TR_8022       5 /* obsolete */
49*4882a593Smuzhiyun 	unsigned char ipx_special;
50*4882a593Smuzhiyun #define IPX_SPECIAL_NONE	0
51*4882a593Smuzhiyun #define IPX_PRIMARY		1
52*4882a593Smuzhiyun #define IPX_INTERNAL		2
53*4882a593Smuzhiyun 	unsigned char ipx_node[IPX_NODE_LEN];
54*4882a593Smuzhiyun };
55*4882a593Smuzhiyun #endif /* __UAPI_DEF_IPX_INTERFACE_DEFINITION */
56*4882a593Smuzhiyun 
57*4882a593Smuzhiyun #if __UAPI_DEF_IPX_CONFIG_DATA
58*4882a593Smuzhiyun struct ipx_config_data {
59*4882a593Smuzhiyun 	unsigned char	ipxcfg_auto_select_primary;
60*4882a593Smuzhiyun 	unsigned char	ipxcfg_auto_create_interfaces;
61*4882a593Smuzhiyun };
62*4882a593Smuzhiyun #endif /* __UAPI_DEF_IPX_CONFIG_DATA */
63*4882a593Smuzhiyun 
64*4882a593Smuzhiyun /*
65*4882a593Smuzhiyun  * OLD Route Definition for backward compatibility.
66*4882a593Smuzhiyun  */
67*4882a593Smuzhiyun 
68*4882a593Smuzhiyun #if __UAPI_DEF_IPX_ROUTE_DEF
69*4882a593Smuzhiyun struct ipx_route_def {
70*4882a593Smuzhiyun 	__be32		ipx_network;
71*4882a593Smuzhiyun 	__be32		ipx_router_network;
72*4882a593Smuzhiyun #define IPX_ROUTE_NO_ROUTER	0
73*4882a593Smuzhiyun 	unsigned char	ipx_router_node[IPX_NODE_LEN];
74*4882a593Smuzhiyun 	unsigned char	ipx_device[16];
75*4882a593Smuzhiyun 	unsigned short	ipx_flags;
76*4882a593Smuzhiyun #define IPX_RT_SNAP		8
77*4882a593Smuzhiyun #define IPX_RT_8022		4
78*4882a593Smuzhiyun #define IPX_RT_BLUEBOOK		2
79*4882a593Smuzhiyun #define IPX_RT_ROUTED		1
80*4882a593Smuzhiyun };
81*4882a593Smuzhiyun #endif /* __UAPI_DEF_IPX_ROUTE_DEF */
82*4882a593Smuzhiyun 
83*4882a593Smuzhiyun #define SIOCAIPXITFCRT		(SIOCPROTOPRIVATE)
84*4882a593Smuzhiyun #define SIOCAIPXPRISLT		(SIOCPROTOPRIVATE + 1)
85*4882a593Smuzhiyun #define SIOCIPXCFGDATA		(SIOCPROTOPRIVATE + 2)
86*4882a593Smuzhiyun #define SIOCIPXNCPCONN		(SIOCPROTOPRIVATE + 3)
87*4882a593Smuzhiyun #endif /* _IPX_H_ */
88