OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [trunk/] [linux/] [linux-2.4/] [include/] [net/] [ipx.h] - Blame information for rev 1765

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 1275 phoenix
/*
2
 *      The following information is in its entirety obtained from:
3
 *
4
 *      Novell 'IPX Router Specification' Version 1.10
5
 *              Part No. 107-000029-001
6
 *
7
 *      Which is available from ftp.novell.com
8
 */
9
 
10
#ifndef _NET_INET_IPX_H_
11
#define _NET_INET_IPX_H_
12
 
13
#include <linux/netdevice.h>
14
#include <net/datalink.h>
15
#include <linux/ipx.h>
16
 
17
typedef struct
18
{
19
        __u32   net;
20
        __u8    node[IPX_NODE_LEN];
21
        __u16   sock;
22
} ipx_address;
23
 
24
#define ipx_broadcast_node      "\377\377\377\377\377\377"
25
#define ipx_this_node           "\0\0\0\0\0\0"
26
 
27
#define IPX_MAX_PPROP_HOPS 8
28
 
29
struct ipxhdr
30
{
31
        __u16           ipx_checksum __attribute__ ((packed));
32
#define IPX_NO_CHECKSUM 0xFFFF
33
        __u16           ipx_pktsize __attribute__ ((packed));
34
        __u8            ipx_tctrl;
35
        __u8            ipx_type;
36
#define IPX_TYPE_UNKNOWN        0x00
37
#define IPX_TYPE_RIP            0x01    /* may also be 0 */
38
#define IPX_TYPE_SAP            0x04    /* may also be 0 */
39
#define IPX_TYPE_SPX            0x05    /* SPX protocol */
40
#define IPX_TYPE_NCP            0x11    /* $lots for docs on this (SPIT) */
41
#define IPX_TYPE_PPROP          0x14    /* complicated flood fill brdcast */
42
        ipx_address     ipx_dest __attribute__ ((packed));
43
        ipx_address     ipx_source __attribute__ ((packed));
44
};
45
 
46
typedef struct ipx_interface {
47
        /* IPX address */
48
        __u32           if_netnum;
49
        unsigned char   if_node[IPX_NODE_LEN];
50
        atomic_t        refcnt;
51
 
52
        /* physical device info */
53
        struct net_device       *if_dev;
54
        struct datalink_proto   *if_dlink;
55
        unsigned short  if_dlink_type;
56
 
57
        /* socket support */
58
        unsigned short  if_sknum;
59
        struct sock     *if_sklist;
60
        spinlock_t      if_sklist_lock;
61
 
62
        /* administrative overhead */
63
        int             if_ipx_offset;
64
        unsigned char   if_internal;
65
        unsigned char   if_primary;
66
 
67
        struct ipx_interface    *if_next;
68
}       ipx_interface;
69
 
70
typedef struct ipx_route {
71
        __u32         ir_net;
72
        ipx_interface *ir_intrfc;
73
        unsigned char ir_routed;
74
        unsigned char ir_router_node[IPX_NODE_LEN];
75
        struct ipx_route *ir_next;
76
        atomic_t      refcnt;
77
}       ipx_route;
78
 
79
#ifdef __KERNEL__
80
struct ipx_cb {
81
        u8 ipx_tctrl;
82
        u32 ipx_dest_net;
83
        u32 ipx_source_net;
84
        struct {
85
                u32 netnum;
86
                int index;
87
        } last_hop;
88
};
89
#endif
90
#define IPX_MIN_EPHEMERAL_SOCKET        0x4000
91
#define IPX_MAX_EPHEMERAL_SOCKET        0x7fff
92
 
93
extern int ipx_register_spx(struct proto_ops **, struct net_proto_family *);
94
extern int ipx_unregister_spx(void);
95
 
96
#endif /* def _NET_INET_IPX_H_ */

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.