Cake - FQ_codel the next generation
 help / color / mirror / Atom feed
* [Cake] Ethernet frame overheads
@ 2015-09-30 10:53 Kevin Darbyshire-Bryant
  2015-09-30 12:11 ` Sebastian Moeller
  2015-09-30 12:36 ` Benjamin Cronce
  0 siblings, 2 replies; 3+ messages in thread
From: Kevin Darbyshire-Bryant @ 2015-09-30 10:53 UTC (permalink / raw)
  To: cake

[-- Attachment #1: Type: text/plain, Size: 1329 bytes --]

Greetings fellow cake eaters :-)

Sebastian raised a little flag in the brain cell yesterday in his
questioning/discussion of cake stats & kernel accounted for overheads. 
As he stated the kernel considers the overhead of an ethernet packet to
be 14 bytes but forgets about the 4 byte frame check sequence and
pre/post ambles which in the end make a packet on the wire worth 1538
bytes  (must use octets, must use octets)

Jonathan pointed out that cake's overhead parameter/s are used for
timing purposes, which to me makes it all the more important that
overheads are got right.

As much as I'm loath to suggest yet another option to cake, should it
not by default assume ethernet 'on-the-wire' framing overheads
(preamble& start of frame=8, FCS=4, interpacket gap=12) totalling 24
octets, not forgetting VLAN tag/s at 4 octets each and the already
accounted for 14 octets of MAC source,dest & frame type/length for
timing purposes?  Ref: https://en.wikipedia.org/wiki/Ethernet_frame

For ethernet links this is going to be important.  For other links
'transporting' ethernet at slower rates (I'm thinking VDSL2 modems & the
like) I suspect their overheads and pure slowness of link swamp the
timing discrepancy.

'ethernet' & 'ethernetotw' flags?

What don't I understand properly here?

Kevin


[-- Attachment #2: S/MIME Cryptographic Signature --]
[-- Type: application/pkcs7-signature, Size: 4816 bytes --]

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [Cake] Ethernet frame overheads
  2015-09-30 10:53 [Cake] Ethernet frame overheads Kevin Darbyshire-Bryant
@ 2015-09-30 12:11 ` Sebastian Moeller
  2015-09-30 12:36 ` Benjamin Cronce
  1 sibling, 0 replies; 3+ messages in thread
From: Sebastian Moeller @ 2015-09-30 12:11 UTC (permalink / raw)
  To: Kevin Darbyshire-Bryant; +Cc: cake

Hi list,


On Sep 30, 2015, at 12:53 , Kevin Darbyshire-Bryant <kevin@darbyshire-bryant.me.uk> wrote:

> Greetings fellow cake eaters :-)
> 
> Sebastian raised a little flag in the brain cell yesterday in his
> questioning/discussion of cake stats & kernel accounted for overheads. 
> As he stated the kernel considers the overhead of an ethernet packet to
> be 14 bytes but forgets about the 4 byte frame check sequence and
> pre/post ambles which in the end make a packet on the wire worth 1538
> bytes  (must use octets, must use octets)
> 
> Jonathan pointed out that cake's overhead parameter/s are used for
> timing purposes, which to me makes it all the more important that
> overheads are got right.
> 
> As much as I'm loath to suggest yet another option to cake, should it
> not by default assume ethernet 'on-the-wire' framing overheads
> (preamble& start of frame=8, FCS=4, interpacket gap=12) totalling 24
> octets, not forgetting VLAN tag/s at 4 octets each and the already
> accounted for 14 octets of MAC source,dest & frame type/length for
> timing purposes?  Ref: https://en.wikipedia.org/wiki/Ethernet_frame

	At least we could come up with a nice symbolic option “ether-layer1” or “ether-phy” or some-such that adds the missing preamble and inter-frame gap (IFG), we already have "ether-fcs”, maybe, since this is just tc that needs modification we can go wild and do “ether-all” to include IFG, preamble, MAC-header, and FCS… for people wanting to shape an ethernet link...

> 
> For ethernet links this is going to be important.  For other links
> 'transporting' ethernet at slower rates (I'm thinking VDSL2 modems & the
> like) I suspect their overheads and pure slowness of link swamp the
> timing discrepancy.

	A lot of the link types used by ISPs actually contain an ethernet MAC header as part of the transferred data (I believe of the common ones only IPoA and PPPoA avoided that basically useless 14 bytes…), so those 14 bytes truly are relevant on-the-wire overhead for those links, while the layer1 stuff does not seem to be transferred and FCS being potentially/likely used in VDSL2. The real ethernet overhead commes into play the moment one tries to shape a VDSL2 link to 100Mbps on a modem connected vie 100Mbps ethernet… (best solution, don’t do that then use a 1Gbps link to the modem ;) )





Too many details:

# this is just from the standards, I have never seen a VDSL1 link in real life:
VDSL1 (see G.993.1 Annex H): 2 Byte PPP + 6 Byte PPPoE + 4 Byte VLAN + 1 Byte Opening Flag Sequence (OFS), 1 Byte Address Field (AF), 1 Byte Control Field (CF), 2 Byte TC-CRC (PTM-FCS), 1 Byte Closing Flag Sequence (CFS) (CFS might be unused for back-2-back PTM frames?(*)) = 18 byte, or 17 byte (if CFS is unused, it seems the CFS is essentially free as it will be omitted if there is back2back data to send). This all seems to be HDLC encoded, which statistically costs 1/128 if I understood Jonathan correctly, but with tailored nasty packet payloads might be much larger if I understand the HDLC typed used correctly.

# my ISP uses PPPoE and a VLAN that is terminated by the MODEM
PPPOE-VLAN-VDSL2 (IEEE 802.3-2012 61.3 relevant for VDSL2): 2 Byte PPP + 6 Byte PPPoE + 4 Byte VLAN + 1 Byte Start of Frame (S), 1 Byte End of Frame (Ck), 2 Byte TC-CRC (PTM-FCS), = 16 Byte

FAST-ETHERNET: 7 Byte Preamble + 1 Byte start of frame delimiter (SFD) + 12 Byte inter frame gap (IFG) = 20 Byte

(see G.992.3 Annex N N.1 note 4 neither Preamble und nor SFD are transferred over VDSL, the IFG does not even consist out of bytes that could be transferred it is simply a temporal break taking the same time as a transfer of 12 bytes would take)

COMMON for pppoe-VDSL2 and fast-ethernel: 4 Byte Frame Check Sequence (FCS) + 6 (dest MAC) + 6 (src MAC) + 2 (ethertype) = 18 byte

Now let’s see what happens if we try to feed a VLAN and PPPoE terminating modem-router via fast-ethernet:
max Paket size 1492 Byte (due to 8 Byte PPP/PPPoE Overhead between Modem and BRAS)

FE: Payload 1492: (no VLANs no PPPoE encapsulation)
Layer 1+: (1492 (Payload = pMTU) + 6 (dest MAC) + 6 (src MAC) + 2 (ethertype) + 4 (FCS) + 7 (preamble) + 1 (start of frame delimiter) + 12 (interframe gap)) = 1492+6+6+2+4+7+1+12 = 1530
payload-factor: (1492/1530) = 0.975163398693
payload rate: 100 * payload-factor = 100 * (1492/1530) = 97.5163398693 Mbps

VDLS2: 109.341 Mbps “link rate”

theoretisches VDSL100 (ohne G.INP) mit exakt 100Mbps "link rate" 
Layer1+: (1492 (Nutzlast = pMTU) + 6 (dest MAC) + 6 (src MAC) + 2 (ethertype) + 4 FCS + 2 (PPP), + 6 (PPPoE) + 4 VLAN + 5 (PTM Framing) = 1492+6+6+2+4+2+6+4+5 = 1527 
payload-factor: (1492/1527) = 0.977079240341
encapsulation-factor (for PTM)(***): 64/65 = 0.984615384615

payload rate: 109.341 * payload-factor * encapsulation-factor  = 109.341 * (1492/1527) * (64/65) = 105.191208584 Mbps
Loss of VDSL2-rate caused by  FE-Bottleneck:
(100* 105.191208584/97.5163398693)-100 = 7.9%

Starting at around 100Mbps fast-ethernet turns into a bottleneck for VDSL2-links, so in that situation a downlink shaper needs to account for that by shaping to a lower speed; an upload shaper however could be replaced by BQL, assuming BQL works well enough… The example calculation is not the worst case as the overhead on the VDSL2 link could be lower and on the FE link it could be larger, but at least the values match what a large european ISP uses in its home market...

Best Regards
	Sebastian




> 
> 'ethernet' & 'ethernetotw' flags?
> 
> What don't I understand properly here?
> 
> Kevin
> 
> _______________________________________________
> Cake mailing list
> Cake@lists.bufferbloat.net
> https://lists.bufferbloat.net/listinfo/cake


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [Cake] Ethernet frame overheads
  2015-09-30 10:53 [Cake] Ethernet frame overheads Kevin Darbyshire-Bryant
  2015-09-30 12:11 ` Sebastian Moeller
@ 2015-09-30 12:36 ` Benjamin Cronce
  1 sibling, 0 replies; 3+ messages in thread
From: Benjamin Cronce @ 2015-09-30 12:36 UTC (permalink / raw)
  To: Kevin Darbyshire-Bryant; +Cc: cake

[-- Attachment #1: Type: text/plain, Size: 1871 bytes --]

I'm pretty sure Ethernet rates are at the Layer 2, so we only need to care
about Layer 2 sizes, not Layer 1. At Layer 1, Ethernet is faster than the
listed 10/100/1000/10000 rates. You are correct about worrying about VLAN,
but I would hope they actually include these.

On Wed, Sep 30, 2015 at 5:53 AM, Kevin Darbyshire-Bryant <
kevin@darbyshire-bryant.me.uk> wrote:

> Greetings fellow cake eaters :-)
>
> Sebastian raised a little flag in the brain cell yesterday in his
> questioning/discussion of cake stats & kernel accounted for overheads.
> As he stated the kernel considers the overhead of an ethernet packet to
> be 14 bytes but forgets about the 4 byte frame check sequence and
> pre/post ambles which in the end make a packet on the wire worth 1538
> bytes  (must use octets, must use octets)
>
> Jonathan pointed out that cake's overhead parameter/s are used for
> timing purposes, which to me makes it all the more important that
> overheads are got right.
>
> As much as I'm loath to suggest yet another option to cake, should it
> not by default assume ethernet 'on-the-wire' framing overheads
> (preamble& start of frame=8, FCS=4, interpacket gap=12) totalling 24
> octets, not forgetting VLAN tag/s at 4 octets each and the already
> accounted for 14 octets of MAC source,dest & frame type/length for
> timing purposes?  Ref: https://en.wikipedia.org/wiki/Ethernet_frame
>
> For ethernet links this is going to be important.  For other links
> 'transporting' ethernet at slower rates (I'm thinking VDSL2 modems & the
> like) I suspect their overheads and pure slowness of link swamp the
> timing discrepancy.
>
> 'ethernet' & 'ethernetotw' flags?
>
> What don't I understand properly here?
>
> Kevin
>
>
> _______________________________________________
> Cake mailing list
> Cake@lists.bufferbloat.net
> https://lists.bufferbloat.net/listinfo/cake
>
>

[-- Attachment #2: Type: text/html, Size: 2652 bytes --]

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2015-09-30 12:36 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-09-30 10:53 [Cake] Ethernet frame overheads Kevin Darbyshire-Bryant
2015-09-30 12:11 ` Sebastian Moeller
2015-09-30 12:36 ` Benjamin Cronce

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox