[Cake] Frontier FIOS Framing

Marco Belmonte marco at heavenlysanctuary.com
Sun Sep 22 23:37:01 EDT 2019

Esteemed Colleagues, Researchers and Noobs (the category I fall under),

I have searched every nook and cranny of the bloated internet looking 
for any information I can find on whether Frontier/Verizon FIOS 
(assuming the only difference between the service offered by both 
Frontier and Verizon is in name only) requires any special framing 
parameters passed on to sch_cake's overhead settings. Most mentions of 
cake/fq/scm/etc and FIOS are ether very dated and inconclusive or I find 
messages and forum posts asking questions a lot like this one.

Currently this is what I have and am also curious if I should be using 
the "nat" keyword for both ingress and egress? I'm not entirely sure - 
see below:

--- CUT HERE ---

# BufferBarf.sh

cpupower frequency-set -g performance
cpupower idle-set -D 0

sysctl -w net.core.default_qdisc=fq
sysctl -w net.ipv4.tcp_congestion_control=bbr
sysctl -w net.ipv4.tcp_ecn=1
sysctl -w net.ipv4.tcp_sack = 1
sysctl -w net.ipv4.tcp_dsack = 1ethtool -A eth1 autoneg off rx off tx off

ethtool -A eth2 autoneg off rx off tx off

ethtool -K eth1 tso off gso off gro off rx off tx off sg off rxvlan off 
txvlan off \
                 rx-vlan-filter off rxhash off tx-esp-segmentation off 
tx-gso-partial off \
                 esp-hw-offload off esp-tx-csum-hw-offload on 
rx-udp_tunnel-port-offload off ntuple off

ethtool -K eth2 rx off tx off sg off tso off gso off gro off rxvlan off 
txvlan off rxhash off \

                 hw-tc-offload off tx-gre-segmentation off 
tx-gre-csum-segmentation off \
                 tx-ipxip4-segmentation off tx-ipxip6-segmentation off 
tx-udp_tnl-segmentation off \
                 tx-udp_tnl-csum-segmentation off tx-gso-partial off 
ntuple off

ethtool -L eth1 combined 4
ethtool -L eth2 combined 4
ethtool -C eth1 rx-usecs 0 tx-usecs 0
ethtool -C eth2 rx-usecs 0 tx-usecs 0

/usr/sbin/network-irq-affinity  # custom script that pins four RSS 
queues from eth1 to there own IRQs and four RSS queues from eth2 to 
their own with no overlapping of cores.

### egress

tc qdisc add dev eth2 root cake bandwidth 450mbit nat

### ingress

ip link add name ifb4eth2 type ifb
tc qdisc add dev eth2 handle ffff: ingress
tc qdisc add dev ifb4eth2 root cake bandwidth 450mbit nat
ip link set ifb4eth2 up
tc filter add dev eth2 parent ffff: protocol all prio 10 u32 match u32 0 
0 flowid 1:1 action mirred egress redirect dev ifb4eth2

--- CUT HERE ---

eth1 is 1 Gbit LAN, eth2 is 500/500 mbit fiber

In absence of framing compensation I figured I should just go extreme by 
reserving more bandwidth than the qdisc needs because I also read 
somewhere I think that mentioned that if you don't compensate and are 
incorrect everything stops working as opposed to if you over compensate 
you might lose out on bandwidth but you'll still win in the latency 
department. But now that I type this out I just realized I think the 
compensation was referring to using the "mpu <bytes>" option... This 
would also substantiate my initial greeting announcing my noob status.

Any help would be appreciated and thanks in advance!


More information about the Cake mailing list