Home | History | Annotate | Download | only in linux
      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