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{ 10 sa_family_t sipx_family; 11 __u16 sipx_port; 12 __u32 sipx_network; 13 unsigned char sipx_node[IPX_NODE_LEN]; 14 __u8 sipx_type; 15 unsigned char sipx_zero; /* 16 byte fill */ 16}; 17 18/* 19 * So we can fit the extra info for SIOCSIFADDR into the address nicely 20 */ 21 22#define sipx_special sipx_port 23#define sipx_action sipx_zero 24#define IPX_DLTITF 0 25#define IPX_CRTITF 1 26 27typedef struct ipx_route_definition 28{ 29 __u32 ipx_network; 30 __u32 ipx_router_network; 31 unsigned char ipx_router_node[IPX_NODE_LEN]; 32} ipx_route_definition; 33 34typedef struct ipx_interface_definition 35{ 36 __u32 ipx_network; 37 unsigned char ipx_device[16]; 38 unsigned char ipx_dlink_type; 39#define IPX_FRAME_NONE 0 40#define IPX_FRAME_SNAP 1 41#define IPX_FRAME_8022 2 42#define IPX_FRAME_ETHERII 3 43#define IPX_FRAME_8023 4 44#define IPX_FRAME_TR_8022 5 /* obsolete */ 45 unsigned char ipx_special; 46#define IPX_SPECIAL_NONE 0 47#define IPX_PRIMARY 1 48#define IPX_INTERNAL 2 49 unsigned char ipx_node[IPX_NODE_LEN]; 50} ipx_interface_definition; 51 52typedef struct ipx_config_data 53{ 54 unsigned char ipxcfg_auto_select_primary; 55 unsigned char ipxcfg_auto_create_interfaces; 56} ipx_config_data; 57 58/* 59 * OLD Route Definition for backward compatibility. 60 */ 61 62struct ipx_route_def 63{ 64 __u32 ipx_network; 65 __u32 ipx_router_network; 66#define IPX_ROUTE_NO_ROUTER 0 67 unsigned char ipx_router_node[IPX_NODE_LEN]; 68 unsigned char ipx_device[16]; 69 unsigned short ipx_flags; 70#define IPX_RT_SNAP 8 71#define IPX_RT_8022 4 72#define IPX_RT_BLUEBOOK 2 73#define IPX_RT_ROUTED 1 74}; 75 76#define SIOCAIPXITFCRT (SIOCPROTOPRIVATE) 77#define SIOCAIPXPRISLT (SIOCPROTOPRIVATE+1) 78#define SIOCIPXCFGDATA (SIOCPROTOPRIVATE+2) 79#define SIOCIPXNCPCONN (SIOCPROTOPRIVATE+3) 80 81#ifdef __KERNEL__ 82#include <linux/skbuff.h> 83 84extern int ipxrtr_route_skb(struct sk_buff *); 85extern int ipx_if_offset(unsigned long ipx_net_number); 86extern void ipx_remove_socket(struct sock *sk); 87#endif /* def __KERNEL__ */ 88 89#endif /* def _IPX_H_ */ 90