DocID018909 Rev 11
RM0090
Ethernet (ETH): media access control (MAC) with DMA controller
1232
hexadecimal). This constant field is used to distinguish tagged and untagged MAC
frames.
–
2-byte field containing the Tag control information field subdivided as follows: a 3-
bit user priority, a canonical format indicator (CFI) bit and a 12-bit VLAN Identifier.
The length of the tagged MAC frame is extended by 4 bytes by the QTag Prefix.
•
MAC client length/type: 2-byte field with different meaning (mutually exclusive),
depending on its value:
–
If the value is less than or equal to maxValidFrame (0d1500) then this field
indicates the number of MAC client data bytes contained in the subsequent data
field of the 802.3 frame (length interpretation).
–
If the value is greater than or equal to MinTypeValue (0d1536 decimal, 0x0600)
then this field indicates the nature of the MAC client protocol (Type interpretation)
related to the Ethernet frame.
Regardless of the interpretation of the length/type field, if the length of the data field is
less than the minimum required for proper operation of the protocol, a PAD field is
added after the data field but prior to the FCS (frame check sequence) field. The
length/type field is transmitted and received with the higher-order byte first.
For length/type field values in the range between maxValidLength and minTypeValue
(boundaries excluded), the behavior of the MAC sublayer is not specified: they may or
may not be passed by the MAC sublayer.
•
Data and PAD fields: n-byte data field. Full data transparency is provided, it means that
any arbitrary sequence of byte values may appear in the data field. The size of the
PAD, if any, is determined by the size of the data field. Max and min length of the data
and PAD field are:
–
Maximum length = 1500 bytes
–
Minimum length for untagged MAC frames = 46 bytes
–
Minimum length for tagged MAC frames = 42 bytes
When the data field length is less than the minimum required, the PAD field is added to
match the minimum length (42 bytes for tagged frames, 46 bytes for untagged frames).
•
Frame check sequence: 4-byte field that contains the cyclic redundancy check (CRC)
value. The CRC computation is based on the following fields: source address,
destination address, QTag prefix, length/type, LLC data and PAD (that is, all fields
except the preamble, SFD). The generating polynomial is the following:
The CRC value of a frame is computed as follows:
•
The first 2 bits of the frame are complemented
•
The n-bits of the frame are the coefficients of a polynomial M(x) of degree (n – 1). The
first bit of the destination address corresponds to the x
n – 1
term and the last bit of the
data field corresponds to the x
0
term
•
M(x) is multiplied by x
32
and divided by G(x), producing a remainder R(x) of degree
≤
31
•
The coefficients of R(x) are considered as a 32-bit sequence
•
The bit sequence is complemented and the result is the CRC
•
The 32-bits of the CRC value are placed in the frame check sequence. The x
32
term is
the first transmitted, the x
0
term is the last one
G x
( )
x
32
x
26
x
23
x
22
x
16
x
12
x
11
x
10
x
8
x
7
x
5
x
4
x
2
x 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
=