mention ethernet frame padding
This commit is contained in:
parent
a960018b7e
commit
066c281ed8
@ -452,6 +452,8 @@ If AnnNet is allocated a dedicated IANA-registered Protocol/Next Header, it will
|
||||
|
||||
.. Likewise for checksumming; while most NICs will automatically handle the standard CRC32 https://en.wikipedia.org/wiki/Frame_check_sequence[Frame Check Sequence^] at the end of the entire frame (AnnNet Link is still Ethernet II), if you require checksumming within your application for *payloads* it must be accounted for by your application. If you are using hardware that doesn't automatically append/strip the FCS, your application must also account for that as well.
|
||||
|
||||
... Per https://standards.ieee.org/ieee/802.3/10422/[IEEE 802.3-2022^] (and previous revisions) and e.g. https://datatracker.ietf.org/doc/html/rfc894[RFC 894^], the *ethernet frame* (layer 2 packet) needs to be padded to 46 bytes if less than 46 bytes, but just like the FCS, *this is almost always handed directly in the NIC*. If you are using hardware that doesn't automatically append/strip the ethernet frame padding, your application must account for that also.
|
||||
|
||||
.. For AnnNet Broadcast over IPv4, ensure that you are including the 16-bit https://en.wikipedia.org/wiki/Internet_checksum["Internet checksum"^] of the header (see RFCs https://datatracker.ietf.org/doc/html/rfc1071[1071^], https://datatracker.ietf.org/doc/html/rfc1141[1141^], and https://datatracker.ietf.org/doc/html/rfc1624[1624^]). +
|
||||
Most kernels can/will automatically insert this (e.g. on Linux, with `IPPROTO_RAW`/raw sockets with the `IP_HDRINCL` option, see https://man7.org/linux/man-pages/man7/raw.7.html[`raw(7)`^]), but if your implementation doesn't/can't use such a mechanism then you must do so yourself. +
|
||||
IPv6 does not require a header checksum.
|
||||
|
11
README.html
11
README.html
@ -559,7 +559,7 @@ pre.rouge .gs {
|
||||
<div class="details">
|
||||
<span id="author" class="author">Brent Saner</span><br>
|
||||
<span id="email" class="email"><a href="mailto:bts@square-r00t.net">bts@square-r00t.net</a></span><br>
|
||||
<span id="revdate">Last rendered 2025-09-03 01:37:56 -0400</span>
|
||||
<span id="revdate">Last rendered 2025-09-03 10:50:06 -0400</span>
|
||||
</div>
|
||||
<div id="toc" class="toc2">
|
||||
<div id="toctitle">Table of Contents</div>
|
||||
@ -2275,6 +2275,13 @@ Its source <em>must</em> be the MAC/PHYS address of the network interface it is
|
||||
<ol class="loweralpha" type="a">
|
||||
<li>
|
||||
<p>Likewise for checksumming; while most NICs will automatically handle the standard CRC32 <a href="https://en.wikipedia.org/wiki/Frame_check_sequence" target="_blank" rel="noopener">Frame Check Sequence</a> at the end of the entire frame (AnnNet Link is still Ethernet II), if you require checksumming within your application for <strong>payloads</strong> it must be accounted for by your application. If you are using hardware that doesn’t automatically append/strip the FCS, your application must also account for that as well.</p>
|
||||
<div class="olist lowerroman">
|
||||
<ol class="lowerroman" type="i">
|
||||
<li>
|
||||
<p>Per <a href="https://standards.ieee.org/ieee/802.3/10422/" target="_blank" rel="noopener">IEEE 802.3-2022</a> (and previous revisions) and e.g. <a href="https://datatracker.ietf.org/doc/html/rfc894" target="_blank" rel="noopener">RFC 894</a>, the <strong>ethernet frame</strong> (layer 2 packet) needs to be padded to 46 bytes if less than 46 bytes, but just like the FCS, <strong>this is almost always handed directly in the NIC</strong>. If you are using hardware that doesn’t automatically append/strip the ethernet frame padding, your application must account for that also.</p>
|
||||
</li>
|
||||
</ol>
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
<p>For AnnNet Broadcast over IPv4, ensure that you are including the 16-bit <a href="https://en.wikipedia.org/wiki/Internet_checksum" target="_blank" rel="noopener">"Internet checksum"</a> of the header (see RFCs <a href="https://datatracker.ietf.org/doc/html/rfc1071" target="_blank" rel="noopener">1071</a>, <a href="https://datatracker.ietf.org/doc/html/rfc1141" target="_blank" rel="noopener">1141</a>, and <a href="https://datatracker.ietf.org/doc/html/rfc1624" target="_blank" rel="noopener">1624</a>).<br>
|
||||
@ -3163,7 +3170,7 @@ and the <a href="https://www.iana.org/assignments/ip-parameters/ip-parameters.xh
|
||||
</div>
|
||||
<div id="footer">
|
||||
<div id="footer-text">
|
||||
Last updated 2025-09-02 22:56:03 -0400
|
||||
Last updated 2025-09-03 10:49:50 -0400
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
|
Loading…
x
Reference in New Issue
Block a user