patch-1.3.25 linux/Documentation/networking/arcnet.txt

Next file: linux/Documentation/networking/z8530drv.txt
Previous file: linux/Documentation/networking/arcnet-jumpers.txt
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v1.3.24/linux/Documentation/networking/arcnet.txt linux/Documentation/networking/arcnet.txt
@@ -1,15 +1,15 @@
 
 ----------------------------------------------------------------------------
-NOTE:  See also README.arcnet-jumpers in this directory for jumper-setting
-information if you're like many of us and didn't happen to get a manual with
-your ARCnet card.
+NOTE:  See also README.arcnet-hardware in this directory for jumper-setting
+and cabling information if you're like many of us and didn't happen to get a
+manual with your ARCnet card.
 ----------------------------------------------------------------------------
 
 Since no one seems to listen to me otherwise, perhaps a poem will get your
 attention:
-			This is alpha software
+			This is scary software
 			If it works I DO CARE.
-			
+
 Hmm, I think I'm allowed to call that a poem, even though it's only two
 lines.  Hey, I'm in Computer Science, not English.  Give me a break.
 
@@ -24,26 +24,32 @@
 
 (hey, that was even better than my original poem... this is getting bad!)
 
-Anyway, enough complaining.  Let's get started:
 
----------------------------------------------------------------------------
-			
-These are the ARCnet drivers for Linux.
+--------
+WARNING:
+--------
 
-We're now back to more ALPHA releases after the 1.01 release which made it
-into Linux 1.2.2, so please be careful, and send all possible
-success/failure reports to me.  If I don't know when/if/how it works, I
-won't be able to answer people's questions.  Do we want that?  Of course
-not.
+If you don't e-mail me about your success/failure soon, I may be forced to
+start SINGING.  And we don't want that, do we?
 
-Once again:  DO send me success reports!  I want to know if this is working!
 (You know, it might be argued that I'm pushing this point a little too much. 
 If you think so, why not flame me in a quick little e-mail?  Please also
 include the type of card(s) you're using, software, size of network, and
 whether it's working or not.)
 
-My e-mail address is:
-	apenwarr@foxnet.net
+My e-mail address is: apenwarr@foxnet.net
+
+
+---------------------------------------------------------------------------
+
+			
+These are the ARCnet drivers for Linux.
+
+This new "stable" release has come from many months of on-and-off effort
+from me (Avery Pennarun), many bug reports from users, and in particular a
+lot of input and coding from Tomasz Motylewski.  (I've held off on Tomasz'
+latest patches - but his all-new RFC1051 support is here and waiting for the
+next ALPHA release!)
 
 
 Where do I discuss these drivers?
@@ -62,38 +68,44 @@
 Send all bug (or success) reports to me or to the list.
 
 The people on linux-net@vger.rutgers.edu have also been known to be very
-helpful! :)
+helpful, especially when we're talking about ALPHA Linux kernels that may or
+may not work right in the first place.
 
 
 Other Drivers and Info
 ----------------------
 
-Also, SMC (one of the companies that makes ARCnet cards) has a WorldWideWeb
-site you might be interested in, which includes several drivers for various
-cards including ARCnet.  Try:
+You can try my ARCNET page on the World Wide Web at:
+	http://www.foxnet.net/~apenwarr/arcnet/
+
+Also, SMC (one of the companies that makes ARCnet cards) has a WWW site you
+might be interested in, which includes several drivers for various cards
+including ARCnet.  Try:
 	http://www.smc.com/
 	
 Performance Technologies makes various network software that supports
-ARCnet.
+ARCnet:
 	http://www.perftech.com/ or ftp to ftp.perftech.com.
 	
 Novell makes a networking stack for DOS which includes ARCnet drivers.  Try
 ftp'ing to ftp.novell.com.
 
 You can get the Crynwr packet driver collection (including arcether.com, the
-one you'll want for arcnet cards) from oak.oakland.edu:/simtel/msdos/pktdrvr.
-It won't work perfectly on a 386+ without patches, though, and also doesn't
-like several cards.  Mail me if you want a fixed version.  (Ahem:  I may or
-may not have a 100% fixed version by the time I get your mail!)
+one you'll want to use with arcnet cards) from
+oak.oakland.edu:/simtel/msdos/pktdrvr. It won't work perfectly on a 386+
+without patches, though, and also doesn't like several cards.  Mail me if
+you want a fixed version.  (Ahem: I may or may not have a 100% fixed version
+by the time I get your mail!)
 
 
 Loadable Module Support
 -----------------------
 
-This is a available starting with 0.42 ALPHA.
+Configure and rebuild Linux.  When asked, answer 'n' to "arcnet support" if
+you want to use the loadable module.
 
-Configure and rebuild Linux.  When asked, say NO to "arcnet support" if you
-want loadable module support.
+Actually, with Linux 1.3.24 and higher, you should answer 'm' to build the
+module.
 
 	make config
 	make dep
@@ -101,10 +113,6 @@
 	make zImage
 	make modules
 	
-	
-Booting into your "ARCnet" Kernel
----------------------------------
-
 If you're using a loadable module, you need to use insmod to load the
 module, and you need to specify various characteristics of your card on the
 command line.  For example:
@@ -113,9 +121,14 @@
 You can also add a num=1, num=2 etc for additional arcnet cards that will
 use arc1, arc2 etc for their device names (instead of the default, arc0).
 	
-Otherwise the driver will load and probe for your card automatically.
-	
-Now go read the NET-2-HOWTO and ETHERNET-HOWTO for Linux; they should be
+
+Using the Driver
+----------------
+
+If you build your kernel with ARCnet support included, it should probe for
+your card automatically when you boot.
+
+Go read the NET-2-HOWTO and ETHERNET-HOWTO for Linux; they should be
 available where you picked up this driver.  Think of your ARCnet as a
 souped-up (or down, as the case may be) ethernet card.
 
@@ -145,34 +158,199 @@
 LAN Manager and Windows for Workgroups: These programs use protocols that
         are incompatible with the internet standard.  They try to pretend
         the cards are ethernet, and confuse everyone else on the network. 
-        However, v1.93 ALPHA and later of the Linux ARCnet driver support
-        this protocol via the 'arc0e' device.  After setting up arc0 as
-        usual, ifconfig and set up routes to your ethernet-encap hosts
-        through arc0e.  There may be non-Microsoft products that support
-        this protocol as well, so it was changed in 1.93 ALPHA from arc0w
-        to arc0e.
+        
+        However, v2.00 of the Linux ARCnet driver supports this protocol via
+        the 'arc0e' device.  See the section on "Multiprotocol Support" for
+	more information.
         
 	Using the freeware Samba server and clients for Linux, you can now
 	interface quite nicely with TCP/IP-based WfWg or Lan Manager
-	networks.  In addition, the Linux host can be used as a router
-	between the standard and WfWg protocols, so hosts that could
-	previously never talk to each other should now be able to.
-
-        This feature is still in early testing, so please e-mail with any
-	comments/questions you might have.
+	networks.
 	
+Windows 95: Tools are included with Win95 that let you use either the LANMAN
+	style network drivers (NDIS) or Novell drivers (ODI) to handle your
+	ARCnet packets.  If you use ODI, you'll need to use the 'arc0'
+	device with Linux.  If you use NDIS, then try the 'arc0e' device. 
+	See the "Multiprotocol Support" section below if you need arc0e,
+	you're completely insane, and/or you need to build some kind of
+	hybrid network that uses both encapsulation types.
+
 OS2: Has not been tested.  The "correct" solution would be to buy either of
 	IBM's "TCP/IP for OS/2" or "Warp Connect" packages.  However,
 	ftp.microsoft.com also has a freeware Lan Manager for OS/2 client
-	which should use the same protocol as WfWg does.  This has not been
-	tested, however.  Please mail me with any results.
-        
+	which should use the same protocol as WfWg does.  I had no luck
+	installing it under Warp, however.  Please mail me with any results.
+
 NetBSD/AmiTCP: These use an old version of the Internet standard ARCnet
-	protocol which is incompatible with the Linux driver at present. 
-	Work to support these is underway and should be available in a
-	standard release soon.
+	protocol (RFC1051) which is incompatible with the Linux driver at
+	present.  Work to support these is underway and should be available
+	in an ALPHA release very soon.
+	
+
+Using Multiprotocol ARCnet
+--------------------------
+
+The ARCnet driver v2.00 supports two protocols, each on its own "virtual
+network device":
+	arc0  - RFC1201 protocol, the official internet standard which just
+		happens to be 100% compatible with Novell's TRXNET driver. 
+		Version 1.00 of the ARCnet driver _only_ supported this
+		protocol.  arc0 is the faster of the two protocols, and
+		allows larger packets to be used because it supports RFC1201
+		"packet splitting" operations.  Unless you have a specific
+		need to use a different protocol, I highly suggest that you
+		stick with this one.
+		
+	arc0e - "Ethernet-Encapsulation" which sends packets over ARCnet
+		that are actually a lot like Ethernet packets, including the
+		6-byte hardware addresses.  This protocol is compatible with
+		Microsoft's NDIS ARCnet driver, like the one in WfWg and
+		LANMAN.  Because the MTU of 493 is actually smaller than the
+		one "required" by TCP/IP (576), there is a chance that some
+		network operations will not work properly.  The Linux TCP/IP
+		layer can compensate in most cases, however, by
+		automatically fragmenting the TCP/IP packets to make them
+		fit.  arc0e also works slightly more slowly than arc0, for
+		reasons yet to be determined.  (Probably it's the smaller
+		MTU that does it)
+
+The arc0e device is created automatically when you first 'ifconfig' the arc0
+device.  To actually use arc0e, though, you need to 'ifconfig' it as well. 
+There are a number of ways you can set up your network then:
+
+
+1. Single Protocol.
+
+   This is the simplest way to configure your network: use just one of the
+   two available protocols.  As mentioned above, it's a good idea to use
+   only arc0 unless you have a good reason (like some other software, ie.
+   WfWg, that only works with arc0e).
+   
+   If you need only arc0, then the following commands should get you going:
+   	ifconfig arc0 MY.IP.ADD.RESS
+   	route add MY.IP.ADD.RESS arc0
+   	route add SUB.NET.ADD.RESS arc0
+   	[etc]
+   	
+   If you need arc0e (and only arc0e), it's a little different:
+   	ifconfig arc0 up     /* the IP address doesn't matter on arc0 */
+   	ifconfig arc0e MY.IP.ADD.RESS
+   	route add MY.IP.ADD.RESS arc0e
+   	route add SUB.NET.ADD.RESS arc0e
+
+
+2. More than one protocol on the same wire.
+
+   Now things start getting confusing.  To even try it, you may need to be
+   partly crazy.  Here's what *I* did.  :)
+
+   I have three computers on my home network; two Linux boxes (which prefer
+   RFC1201 protocol), and one XT that can't run Linux but runs the free
+   Microsoft LANMAN Client instead.
+   
+   Worse, one of the Linux computers (freedom) also has a modem and acts as
+   a router to my information provider.  The other Linux box (insight) also
+   has its own IP address and needs to use freedom as its default gateway. 
+   The XT (patience), however, does not have its own internet IP address and
+   so I assigned it one on a "private subnet" (as defined by RFC1597).
+   
+   To start with, take a simple network with just insight and freedom. 
+   Insight needs to:
+   	- talk to freedom via RFC1201 (arc0) protocol, because I like it
+	  more and it's faster.
+	- use freedom as its internet gateway.
+	
+   That's pretty easy to do.  Set up insight like this:
+   	ifconfig arc0 insight
+   	route add insight arc0
+   	route add freedom arc0	/* I would use the subnet here (like I said
+					to to in "single protocol" above),
+   					but the rest of the subnet
+   					unfortunately lies across the PPP
+   					link on freedom, which confuses
+   					things. */
+   	route add default gw freedom
+   	
+   And freedom gets configured like so:
+   	ifconfig arc0 freedom
+   	route add freedom arc0
+   	route add insight arc0
+   	/* and default gateway is configured by PPP */
+   	
+   Great, now insight talks to freedom directly on arc0, and sends packets
+   to the internet through freedom.  If you didn't know how to do the above,
+   you should probably stop reading this section now because it only gets
+   worse.
+
+   Now, how do I add patience into the network?  It will be using LANMAN
+   Client, which means I need the arc0e device.  It needs to be able to talk
+   to both insight and freedom, and also use freedom as a gateway to the
+   internet.  (Recall that patience has a "private IP address" which won't
+   work on the internet; that's okay, I configured Linux IP masquerading on
+   freedom for this subnet).
+   
+   So patience (necessarily; I don't have another IP number from my
+   provider) has an IP address on a different subnet than freedom and
+   insight, but needs to use freedom as an internet gateway.  Worse, most
+   DOS networking programs, including LANMAN, have braindead networking
+   schemes that rely completely on the netmask and a 'default gateway' to
+   determine how to route packets.  This means that to get to freedom or
+   insight, patience WILL send through its default gateway, regardless of
+   the fact that both freedom and insight (courtesy of the arc0e device)
+   could understand a direct transmission.
+   
+   I compensate by giving freedom an extra IP address - aliased 'gatekeeper'
+   - that is on my private subnet, the same subnet that patience is on.  I
+   then define gatekeeper to be the default gateway for patience.
+   
+   To configure freedom (in addition to the commands above):
+   	ifconfig arc0e gatekeeper
+   	route add gatekeeper arc0e
+   	route add patience arc0e
+   
+   This way, freedom will send all packets for patience through arc0e,
+   giving its IP address as gatekeeper (on the private subnet).  When it
+   talks to insight or the internet, it will use its "freedom" internet IP
+   address.
+   
+   You will notice that we haven't configured the arc0e device on insight. 
+   This would work, but is not really necessary, and would require me to
+   assign insight another special IP number from my private subnet.  Since
+   both insight and patience are using freedom as their default gateway, the
+   two can already talk to each other.
+   
+   It's quite fortunate that I set things up like this the first time
+   through (cough cough) because it's really handy when I boot insight into
+   DOS.  There, it runs the Novell ODI protocol stack, which only works with
+   RFC1201 ARCnet.  In this mode it would be impossible for insight to
+   communicate directly with patience, since the Novell stack is
+   incompatible with Microsoft's Ethernet-Encap.  Without changing any
+   settings on freedom or patience, I simply set freedom as the default
+   gateway for insight (now in DOS, remember) and all the forwarding happens
+   "automagically" between the two hosts that would normally not be able to
+   communicate at all.
+   
+   For those who like diagrams, I have created two "virtual subnets" on the
+   same physical ARCnet wire.  You can picture it like this:
+   
+                                                    
+          [RFC1201 NETWORK]                   [ETHER-ENCAP NETWORK]
+      (registered internet subnet)           (RFC1597 private subnet)
+  
+                             (IP Masquerade)
+          /---------------\         *            /---------------\
+          |               |         *            |               |
+          |               +-Freedom-*-Gatekeeper-+               |
+          |               |    |    *            |               |
+          \-------+-------/    |                 \-------+-------/
+                  |            |                         |
+               Insight         |                      Patience
+                           (Internet)
+                        
 
 
+
+                                                    
 It works: what now?
 -------------------
 
@@ -221,12 +399,15 @@
 	ifconfig arc0 down metric 1xxx
 	/etc/rc.d/rc.inet1
 where "xxx" is the debug level you want.  For example, "metric 1015" would put
-you at debug level 15.  Debug level 7 is currently the default.
+you at debug level 15.  Debug level 3 is currently the default.
 
 Note that the debug level is (as of v1.90 ALPHA) a binary combination of
 different debug flags; so debug level 7 is really 1+2+4 or
 D_NORMAL+D_INIT+D_EXTRA.  To reach D_DURING, you would add 8 to this,
 resulting in debug level 15.
+
+If you don't understand that, you probably don't want to know anyway. 
+E-mail me about your problem.
 
 
 I want to send money: what now?

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov with Sam's (original) version
of this