Re: Correctly calculating overheads on unknown connections
Andy Furniss <[email protected]> Wed, 24 Sep 2014 23:48:48 +0100
| Newsgroups | gmane.comp.embedded.cerowrt.devel,gmane.linux.network.routing |
|---|---|
| Message-ID | <[email protected]> |
Sebastian Moeller wrote: >> Maybe you mean overhead calculated by a script? > > Well in cerowrt’s SQM-scripts we expose the stab options so users can > take link layer and overhead into account. If you naively determine > the overhead, either with the help of the scrips I posted earlier or > by looking it up on a table (if the encapsulation options are known) > you will end up not handling the kernel’s auto-added overhead well. > Currently SQM scripts does not expose PPP devices only ge00 > (ethernet) so -14 seems currently the best recommendation in > combination with “please test”. Oh, OK - I know nothing about wrt. > What I am curious after your message > is what happens if the kernel terminates a pppoe connection but is > connected to a “modem” via ethernet, what does the kernel do. And > thanks to your pointers I know have an idea of how to test that ;) Well I can't say I know - testing is always best. I think we are "seeing" skbs just as they enter an interface - so what form they take depends on the particular interface they have just been made for. It's possible to have multiple pppoes/vlans on an eth and use the eth normally at the same time. What you see I suppose depends on where you are "attached". I guess shaping a pppoe on the eth rather than on the actual ppp is doable with a bit of filtering - in which case you may need to allow for the +14 macs/ethertype and that 8 ppp are already in the payload - a totally untested theory :-) >> On ppp skb->len = ip len >> >> On eth skb->len = ip len + 14 >> >> On vlan skb->len = ip len + 18 > > So this is the information I actually wanted to find and then somehow > thought qdisc_pkt_len_init() was the place. Do you by chance have any > pointer where this assignment is handled? No, sorry I don't know the code.