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