About Kernel Documentation Linux Kernel Contact Linux Resources Linux Blog

Documentation / networking / decnet.txt




Custom Search

Based on kernel version 3.16. Page generated on 2014-08-06 21:40 EST.

1	                    Linux DECnet Networking Layer Information
2	                   ===========================================
3	
4	1) Other documentation....
5	
6	   o Project Home Pages
7	       http://www.chygwyn.com/                      	    - Kernel info
8	       http://linux-decnet.sourceforge.net/                - Userland tools
9	       http://www.sourceforge.net/projects/linux-decnet/   - Status page
10	
11	2) Configuring the kernel
12	
13	Be sure to turn on the following options:
14	
15	    CONFIG_DECNET (obviously)
16	    CONFIG_PROC_FS (to see what's going on)
17	    CONFIG_SYSCTL (for easy configuration)
18	
19	if you want to try out router support (not properly debugged yet)
20	you'll need the following options as well...
21	
22	    CONFIG_DECNET_ROUTER (to be able to add/delete routes)
23	    CONFIG_NETFILTER (will be required for the DECnet routing daemon)
24	
25	    CONFIG_DECNET_ROUTE_FWMARK is optional
26	
27	Don't turn on SIOCGIFCONF support for DECnet unless you are really sure
28	that you need it, in general you won't and it can cause ifconfig to
29	malfunction.
30	
31	Run time configuration has changed slightly from the 2.4 system. If you
32	want to configure an endnode, then the simplified procedure is as follows:
33	
34	 o Set the MAC address on your ethernet card before starting _any_ other
35	   network protocols.
36	
37	As soon as your network card is brought into the UP state, DECnet should
38	start working. If you need something more complicated or are unsure how
39	to set the MAC address, see the next section. Also all configurations which
40	worked with 2.4 will work under 2.5 with no change.
41	
42	3) Command line options
43	
44	You can set a DECnet address on the kernel command line for compatibility
45	with the 2.4 configuration procedure, but in general it's not needed any more.
46	If you do st a DECnet address on the command line, it has only one purpose
47	which is that its added to the addresses on the loopback device.
48	
49	With 2.4 kernels, DECnet would only recognise addresses as local if they
50	were added to the loopback device. In 2.5, any local interface address
51	can be used to loop back to the local machine. Of course this does not
52	prevent you adding further addresses to the loopback device if you
53	want to.
54	
55	N.B. Since the address list of an interface determines the addresses for
56	which "hello" messages are sent, if you don't set an address on the loopback
57	interface then you won't see any entries in /proc/net/neigh for the local
58	host until such time as you start a connection. This doesn't affect the
59	operation of the local communications in any other way though.
60	
61	The kernel command line takes options looking like the following:
62	
63	    decnet.addr=1,2
64	
65	the two numbers are the node address 1,2 = 1.2 For 2.2.xx kernels
66	and early 2.3.xx kernels, you must use a comma when specifying the
67	DECnet address like this. For more recent 2.3.xx kernels, you may
68	use almost any character except space, although a `.` would be the most
69	obvious choice :-)
70	
71	There used to be a third number specifying the node type. This option
72	has gone away in favour of a per interface node type. This is now set
73	using /proc/sys/net/decnet/conf/<dev>/forwarding. This file can be
74	set with a single digit, 0=EndNode, 1=L1 Router and  2=L2 Router.
75	
76	There are also equivalent options for modules. The node address can
77	also be set through the /proc/sys/net/decnet/ files, as can other system
78	parameters.
79	
80	Currently the only supported devices are ethernet and ip_gre. The
81	ethernet address of your ethernet card has to be set according to the DECnet
82	address of the node in order for it to be autoconfigured (and then appear in
83	/proc/net/decnet_dev). There is a utility available at the above
84	FTP sites called dn2ethaddr which can compute the correct ethernet
85	address to use. The address can be set by ifconfig either before or
86	at the time the device is brought up. If you are using RedHat you can
87	add the line:
88	
89	    MACADDR=AA:00:04:00:03:04
90	
91	or something similar, to /etc/sysconfig/network-scripts/ifcfg-eth0 or
92	wherever your network card's configuration lives. Setting the MAC address
93	of your ethernet card to an address starting with "hi-ord" will cause a
94	DECnet address which matches to be added to the interface (which you can
95	verify with iproute2).
96	
97	The default device for routing can be set through the /proc filesystem
98	by setting /proc/sys/net/decnet/default_device to the
99	device you want DECnet to route packets out of when no specific route
100	is available. Usually this will be eth0, for example:
101	
102	    echo -n "eth0" >/proc/sys/net/decnet/default_device
103	
104	If you don't set the default device, then it will default to the first
105	ethernet card which has been autoconfigured as described above. You can
106	confirm that by looking in the default_device file of course.
107	
108	There is a list of what the other files under /proc/sys/net/decnet/ do
109	on the kernel patch web site (shown above).
110	
111	4) Run time kernel configuration
112	
113	This is either done through the sysctl/proc interface (see the kernel web
114	pages for details on what the various options do) or through the iproute2
115	package in the same way as IPv4/6 configuration is performed.
116	
117	Documentation for iproute2 is included with the package, although there is
118	as yet no specific section on DECnet, most of the features apply to both
119	IP and DECnet, albeit with DECnet addresses instead of IP addresses and
120	a reduced functionality.
121	
122	If you want to configure a DECnet router you'll need the iproute2 package
123	since its the _only_ way to add and delete routes currently. Eventually
124	there will be a routing daemon to send and receive routing messages for
125	each interface and update the kernel routing tables accordingly. The
126	routing daemon will use netfilter to listen to routing packets, and
127	rtnetlink to update the kernels routing tables. 
128	
129	The DECnet raw socket layer has been removed since it was there purely
130	for use by the routing daemon which will now use netfilter (a much cleaner
131	and more generic solution) instead.
132	
133	5) How can I tell if its working ?
134	
135	Here is a quick guide of what to look for in order to know if your DECnet
136	kernel subsystem is working.
137	
138	   - Is the node address set (see /proc/sys/net/decnet/node_address)
139	   - Is the node of the correct type 
140	                             (see /proc/sys/net/decnet/conf/<dev>/forwarding)
141	   - Is the Ethernet MAC address of each Ethernet card set to match
142	     the DECnet address. If in doubt use the dn2ethaddr utility available
143	     at the ftp archive.
144	   - If the previous two steps are satisfied, and the Ethernet card is up,
145	     you should find that it is listed in /proc/net/decnet_dev and also
146	     that it appears as a directory in /proc/sys/net/decnet/conf/. The
147	     loopback device (lo) should also appear and is required to communicate
148	     within a node.
149	   - If you have any DECnet routers on your network, they should appear
150	     in /proc/net/decnet_neigh, otherwise this file will only contain the
151	     entry for the node itself (if it doesn't check to see if lo is up).
152	   - If you want to send to any node which is not listed in the
153	     /proc/net/decnet_neigh file, you'll need to set the default device
154	     to point to an Ethernet card with connection to a router. This is
155	     again done with the /proc/sys/net/decnet/default_device file.
156	   - Try starting a simple server and client, like the dnping/dnmirror
157	     over the loopback interface. With luck they should communicate.
158	     For this step and those after, you'll need the DECnet library
159	     which can be obtained from the above ftp sites as well as the
160	     actual utilities themselves.
161	   - If this seems to work, then try talking to a node on your local
162	     network, and see if you can obtain the same results.
163	   - At this point you are on your own... :-)
164	
165	6) How to send a bug report
166	
167	If you've found a bug and want to report it, then there are several things
168	you can do to help me work out exactly what it is that is wrong. Useful
169	information (_most_ of which _is_ _essential_) includes:
170	
171	 - What kernel version are you running ?
172	 - What version of the patch are you running ?
173	 - How far though the above set of tests can you get ?
174	 - What is in the /proc/decnet* files and /proc/sys/net/decnet/* files ?
175	 - Which services are you running ?
176	 - Which client caused the problem ?
177	 - How much data was being transferred ?
178	 - Was the network congested ?
179	 - How can the problem be reproduced ?
180	 - Can you use tcpdump to get a trace ? (N.B. Most (all?) versions of 
181	   tcpdump don't understand how to dump DECnet properly, so including
182	   the hex listing of the packet contents is _essential_, usually the -x flag.
183	   You may also need to increase the length grabbed with the -s flag. The
184	   -e flag also provides very useful information (ethernet MAC addresses))
185	
186	7) MAC FAQ
187	
188	A quick FAQ on ethernet MAC addresses to explain how Linux and DECnet
189	interact and how to get the best performance from your hardware. 
190	
191	Ethernet cards are designed to normally only pass received network frames 
192	to a host computer when they are addressed to it, or to the broadcast address.
193	
194	Linux has an interface which allows the setting of extra addresses for
195	an ethernet card to listen to. If the ethernet card supports it, the
196	filtering operation will be done in hardware, if not the extra unwanted packets
197	received will be discarded by the host computer. In the latter case,
198	significant processor time and bus bandwidth can be used up on a busy
199	network (see the NAPI documentation for a longer explanation of these
200	effects).
201	
202	DECnet makes use of this interface to allow running DECnet on an ethernet 
203	card which has already been configured using TCP/IP (presumably using the 
204	built in MAC address of the card, as usual) and/or to allow multiple DECnet
205	addresses on each physical interface. If you do this, be aware that if your
206	ethernet card doesn't support perfect hashing in its MAC address filter
207	then your computer will be doing more work than required. Some cards
208	will simply set themselves into promiscuous mode in order to receive
209	packets from the DECnet specified addresses. So if you have one of these
210	cards its better to set the MAC address of the card as described above
211	to gain the best efficiency. Better still is to use a card which supports
212	NAPI as well.
213	
214	
215	8) Mailing list
216	
217	If you are keen to get involved in development, or want to ask questions
218	about configuration, or even just report bugs, then there is a mailing
219	list that you can join, details are at:
220	
221	http://sourceforge.net/mail/?group_id=4993
222	
223	9) Legal Info
224	
225	The Linux DECnet project team have placed their code under the GPL. The
226	software is provided "as is" and without warranty express or implied.
227	DECnet is a trademark of Compaq. This software is not a product of
228	Compaq. We acknowledge the help of people at Compaq in providing extra
229	documentation above and beyond what was previously publicly available.
230	
231	Steve Whitehouse <SteveW@ACM.org>
Hide Line Numbers
About Kernel Documentation Linux Kernel Contact Linux Resources Linux Blog

Information is copyright its respective author. All material is available from the Linux Kernel Source distributed under a GPL License. This page is provided as a free service by mjmwired.net.