summaryrefslogtreecommitdiffstats
path: root/net/protocols.c
blob: 0a15b477349d76f85887da811164fba6ca81eba5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
/*
 *	Protocol initializer table. Here separately for convenience
 *
 */
 
 
#include <linux/config.h>
#include <linux/types.h>
#include <linux/kernel.h>
#include <linux/net.h>
#include <linux/fs.h>

#ifdef	CONFIG_UNIX
#include <linux/un.h>
#include <net/af_unix.h>
#endif

#ifdef	CONFIG_INET
#include <linux/inet.h>
#ifdef	CONFIG_IPV6
extern void inet6_proto_init(struct net_proto *pro);
#endif
#endif	/* INET */

#ifdef CONFIG_ECONET
extern void econet_proto_init(struct net_proto *pro);
#endif

#ifdef CONFIG_NETLINK
extern void netlink_proto_init(struct net_proto *pro);
#endif

#ifdef CONFIG_PACKET
extern void packet_proto_init(struct net_proto *pro);
#endif

#if defined(CONFIG_IPX) || defined(CONFIG_IPX_MODULE)
#define NEED_802
#include <net/ipxcall.h>
#endif

#ifdef CONFIG_X25
#include <net/x25call.h>
#endif

#ifdef CONFIG_LAPB
#include <net/lapbcall.h>
#endif

#ifdef CONFIG_AX25
#include <net/ax25call.h>
#ifdef CONFIG_NETROM
#include <net/nrcall.h>
#endif
#ifdef CONFIG_ROSE
#include <net/rosecall.h>
#endif
#endif

#ifdef CONFIG_IRDA
#include <net/irda/irdacall.h>
#endif

#if defined(CONFIG_DECNET)
#include <net/decnet_call.h>
#endif

#if defined(CONFIG_ATALK) || defined(CONFIG_ATALK_MODULE)
#define NEED_802
#include <net/atalkcall.h>
#endif

#if defined(CONFIG_NETBEUI)
#define NEED_LLC
#include <net/netbeuicall.h>
#endif

#if defined(CONFIG_LLC)
#define NEED_LLC
#endif

#include <net/psnapcall.h>

#ifdef CONFIG_TR
#include <linux/netdevice.h>
#include <linux/trdevice.h>
extern void rif_init(struct net_proto *);
#endif

#ifdef NEED_LLC
#define NEED_802
#include <net/llccall.h>
#endif

#ifdef NEED_802
#include <net/p8022call.h>
#endif

/*
 *	Protocol Table
 */
 
struct net_proto protocols[] = {
#ifdef  CONFIG_NETLINK
  { "NETLINK",	netlink_proto_init	},
#endif

#ifdef  CONFIG_PACKET
  { "PACKET",	packet_proto_init	},
#endif

#ifdef	CONFIG_UNIX
  { "UNIX",	unix_proto_init	},			/* Unix domain socket family 	*/
#endif

#ifdef NEED_802
  { "802.2",	p8022_proto_init },			/* 802.2 demultiplexor		*/
  { "SNAP",	snap_proto_init },			/* SNAP demultiplexor		*/
#endif

#ifdef CONFIG_TR
  { "RIF",	rif_init },				/* RIF for Token ring		*/
#endif  

#ifdef NEED_LLC
  { "802.2LLC", llc_init },				/* 802.2 LLC */
#endif  

#ifdef CONFIG_AX25  
  { "AX.25",	ax25_proto_init },			/* Amateur Radio AX.25 */
#ifdef CONFIG_NETROM
  { "NET/ROM",	nr_proto_init },			/* Amateur Radio NET/ROM */
#endif
#ifdef CONFIG_ROSE
  { "Rose",	rose_proto_init },			/* Amateur Radio X.25 PLP */
#endif
#endif  
#ifdef CONFIG_DECNET
  { "DECnet",   decnet_proto_init },                    /* DECnet */
#endif
#ifdef	CONFIG_INET
  { "INET",	inet_proto_init	},			/* TCP/IP */
#ifdef	CONFIG_IPV6
  { "INET6",	inet6_proto_init},			/* IPv6	*/
#endif
#endif

#ifdef  CONFIG_IPX
  { "IPX",	ipx_proto_init },			/* IPX				*/
#endif

#ifdef CONFIG_ATALK
  { "DDP",	atalk_proto_init },			/* Netatalk Appletalk driver	*/
#endif

#ifdef CONFIG_LAPB
  { "LAPB",     lapb_proto_init },			/* LAPB protocols */
#endif

#ifdef CONFIG_X25
  { "X.25",	x25_proto_init },			/* CCITT X.25 Packet Layer */
#endif

#ifdef CONFIG_ECONET
  { "Econet",	econet_proto_init },			/* Acorn Econet */
#endif

#ifdef CONFIG_IRDA
  { "IrDA",     irda_proto_init },                     /* IrDA protocols */
#endif

  { NULL,	NULL		}			/* End marker			*/
};