LINKTYPE_ARCNET_LINUX

Packet structure

+---------------+
|    Source     |
|   (1 octet)   |
+---------------+
|  Destination  |
|   (1 octet)   |
+---------------+
|    Offset     |
|  (2 octets)   |
+---------------+
|  Protocol ID  |
|   (1 octet)   |
+---------------+
| other fields  |
| (conditional) |
+---------------+
|    Payload    |
.               .
.               .
.               .

Description

This encoding loosely corresponds to the "buffer" defined in Chapter 4 of ARCnet Designer's Handbook (Datapoint document number 61610-01) and the "frame" defined in Section 2.1 of RFC 1201; both structures represent the "Data Packet (PAC)" defined in Section 3.1.5.3 of ATA 878.1-1999.

The Source field is the "source" in the "frame" and the SID in the "buffer".

The Destination field is the "destination" in the "frame" and the DID in the "buffer".

The Offset field does not seem to have a purpose in this encoding: regardless of the value, there is no padding and the Protocol ID field always immediately follows the Offset field.

The Protocol ID field is the "protocol ID" in the "frame" and the "System Code" in the "buffer" and the PAC. In ATA 878.1-1999 Section 3.2.5 specifies this field as mandatory and Section 10 defines it as possibly two-octet.

Depending on the value of Protocol ID, the header may include other fields before the payload. Specifically, values 212 (IPv4), 213 (ARP) and 214 (RARP) mean RFC 1201 encoding, value 196 (IPv6) means RFC 2497 encoding; in both cases Protocol ID is followed by Split Flag (1 octet) and Frame Sequence Number (2 octets, big-endian byte order). Values 240 (IPv4) and 241 (ARP) mean RFC 1051 encoding, in which case the header does not include any additional fields.