Documentation/networking/arcnet-hardware.rst
Source file repositories/reference/linux-study-clean/Documentation/networking/arcnet-hardware.rst
File Facts
- System
- Linux kernel
- Corpus path
Documentation/networking/arcnet-hardware.rst- Extension
.rst- Size
- 12552 bytes
- Lines
- 308
- Domain
- Support Tooling And Documentation
- Bucket
- Documentation
- Inferred role
- Support Tooling And Documentation: documentation
- Status
- atlas-only
Why This File Exists
Repository support layer: documentation, build tooling, samples, user-space helper tools, generated initramfs support, licenses, and validation utilities.
- Repository support layer: documentation, build tooling, samples, user-space helper tools, generated initramfs support, licenses, and validation utilities.
Dependency Surface
- No C-style include directives detected by the generator.
Detected Declarations
- No top-level syscall, struct, function, initcall, or export declaration detected by the generator.
Annotated Snippet
.. SPDX-License-Identifier: GPL-2.0
===============
ARCnet Hardware
===============
:Author: Avery Pennarun <apenwarr@worldvisions.ca>
.. note::
This file is a supplement to arcnet.rst. Please read that for general
driver configuration help.
Because so many people (myself included) seem to have obtained ARCnet cards
without manuals, this file contains a quick introduction to ARCnet hardware
and some cabling tips. If you have any other information, do not hesitate to
:ref:`send an email to netdev <arcnet-netdev>`.
Introduction to ARCnet
======================
ARCnet is a network type which works in a way similar to popular Ethernet
networks but which is also different in some very important ways.
First of all, you can get ARCnet cards in at least two speeds: 2.5 Mbps
(slower than Ethernet) and 100 Mbps (faster than normal Ethernet). In fact,
there are others as well, but these are less common. The different hardware
types, as far as I'm aware, are not compatible and so you cannot wire a
100 Mbps card to a 2.5 Mbps card, and so on. From what I hear, my driver does
work with 100 Mbps cards, but I haven't been able to verify this myself,
since I only have the 2.5 Mbps variety. It is probably not going to saturate
your 100 Mbps card. Stop complaining. :)
You also cannot connect an ARCnet card to any kind of Ethernet card and
expect it to work.
There are two "types" of ARCnet - STAR topology and BUS topology. This
refers to how the cards are meant to be wired together. According to most
available documentation, you can only connect STAR cards to STAR cards and
BUS cards to BUS cards. That makes sense, right? Well, it's not quite
true; see below under "Cabling."
Once you get past these little stumbling blocks, ARCnet is actually quite a
well-designed standard. It uses something called "modified token passing"
which makes it completely incompatible with so-called "Token Ring" cards,
but which makes transfers much more reliable than Ethernet does. In fact,
ARCnet will guarantee that a packet arrives safely at the destination, and
even if it can't possibly be delivered properly (ie. because of a cable
break, or because the destination computer does not exist) it will at least
tell the sender about it.
Because of the carefully defined action of the "token", it will always make
a pass around the "ring" within a maximum length of time. This makes it
useful for realtime networks.
In addition, all known ARCnet cards have an (almost) identical programming
interface. This means that with one ARCnet driver you can support any
card, whereas with Ethernet each manufacturer uses what is sometimes a
completely different programming interface, leading to a lot of different,
sometimes very similar, Ethernet drivers. Of course, always using the same
programming interface also means that when high-performance hardware
facilities like PCI bus mastering DMA appear, it's hard to take advantage of
them. Let's not go into that.
One thing that makes ARCnet cards difficult to program for, however, is the
limit on their packet sizes; standard ARCnet can only send packets that are
up to 508 bytes in length. This is smaller than the Internet "bare minimum"
of 576 bytes, let alone the Ethernet MTU of 1500. To compensate, an extra
level of encapsulation is defined by RFC1201, which I call "packet
Annotation
- Atlas domain: Support Tooling And Documentation / Documentation.
- Implementation status: atlas-only.
Implementation Notes
- This generated page is the file-by-file coverage layer; curated subsystem chapters should link here when they synthesize a multi-file control flow.
- Core OS pages should be promoted from atlas-only to deep-reviewed when they explain data structures, invariants, locking, lifecycle, and C implementation snippets.
- Driver-family pages are intentionally pattern-oriented unless they are part of the selected PCIe/NVMe representative device path.