From: "Toke Høiland-Jørgensen" <toke@toke.dk>
To: David Miller <davem@davemloft.net>
Cc: netdev@vger.kernel.org, gamanakis@gmail.com, peteheist@gmail.com,
ycheng@google.com, ncardwell@google.com, dave.taht@gmail.com,
netfilter-devel@vger.kernel.org, cake@lists.bufferbloat.net
Subject: Re: [Cake] [PATCH net-next v19 0/8] sched: Add Common Applications Kept Enhanced (cake) qdisc
Date: Wed, 11 Jul 2018 22:40:44 +0200 [thread overview]
Message-ID: <87o9fdbj5f.fsf@toke.dk> (raw)
In-Reply-To: <20180710.225648.251006161729517659.davem@davemloft.net>
David Miller <davem@davemloft.net> writes:
> From: Toke Høiland-Jørgensen <toke@toke.dk>
> Date: Fri, 06 Jul 2018 17:37:19 +0200
>
>> This patch series adds the CAKE qdisc, and has been split up to ease
>> review.
>>
>> I have attempted to split out each configurable feature into its own patch.
>> The first commit adds the base shaper and packet scheduler, while
>> subsequent commits add the optional features. The full userspace API and
>> most data structures are included in this commit, but options not
>> understood in the base version will be ignored.
>>
>> The result of applying the entire series is identical to the out of tree
>> version that have seen extensive testing in previous deployments, most
>> notably as an out of tree patch to OpenWrt. However, note that I have only
>> compile tested the individual patches; so the whole series should be
>> considered as a unit.
>
> Ok, I decided to apply this even though there are still bits I'm not
> %100 happy with.
Yay, awesome, thanks! :)
> I don't like the netfilter dependency at all.
>
> You can get the NAT addresses in other ways as I've tried to suggest
> in the past. Your scheme absolutely does not work with act_nat in the
> packet scheduler, not any NAT done by XDP/eBPF programs.
Just to reiterate why we didn't go with your suggestion of recording the
pre-NAT IP in the flow dissector as the packet comes in:
- It only works on egress; on ingress (with an ifb), packets hit the
qdisc before NAT, so we need the stateful lookup in CAKE for this
case, which is a common deployment scenario.
- It's not needed for act_nat (for 1-to-1 NAT, hashing on the post-NAT
IP is fine), and it won't work for XDP (which would change the packets
before the flow dissector sees them). This means that custom NAT
solutions in TC BPF hooks are the only ones that would benefit; and
they can just set the classifier to achieve the same thing.
Now, I'm absolutely not opposed to having this as a fallback egress-only
mechanism. I might even be convinced to write it myself if someone
demonstrates that they really need it :)
-Toke
prev parent reply other threads:[~2018-07-11 20:40 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-07-06 15:37 Toke Høiland-Jørgensen
2018-07-06 15:37 ` [Cake] [PATCH net-next v19 2/8] sch_cake: Add ingress mode Toke Høiland-Jørgensen
2018-07-06 15:37 ` [Cake] [PATCH net-next v19 4/8] netfilter: Add nf_ct_get_tuple_skb global lookup function Toke Høiland-Jørgensen
2018-07-06 15:37 ` [Cake] [PATCH net-next v19 6/8] sch_cake: Add DiffServ handling Toke Høiland-Jørgensen
2018-07-06 15:37 ` [Cake] [PATCH net-next v19 8/8] sch_cake: Conditionally split GSO segments Toke Høiland-Jørgensen
2018-07-06 15:37 ` [Cake] [PATCH net-next v19 3/8] sch_cake: Add optional ACK filter Toke Høiland-Jørgensen
2018-07-06 15:37 ` [Cake] [PATCH net-next v19 7/8] sch_cake: Add overhead compensation support to the rate shaper Toke Høiland-Jørgensen
2018-07-06 15:37 ` [Cake] [PATCH net-next v19 1/8] sched: Add Common Applications Kept Enhanced (cake) qdisc Toke Høiland-Jørgensen
2018-07-06 15:37 ` [Cake] [PATCH net-next v19 5/8] sch_cake: Add NAT awareness to packet classifier Toke Høiland-Jørgensen
2018-07-11 5:56 ` [Cake] [PATCH net-next v19 0/8] sched: Add Common Applications Kept Enhanced (cake) qdisc David Miller
2018-07-11 20:40 ` Toke Høiland-Jørgensen [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://lists.bufferbloat.net/postorius/lists/cake.lists.bufferbloat.net/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87o9fdbj5f.fsf@toke.dk \
--to=toke@toke.dk \
--cc=cake@lists.bufferbloat.net \
--cc=dave.taht@gmail.com \
--cc=davem@davemloft.net \
--cc=gamanakis@gmail.com \
--cc=ncardwell@google.com \
--cc=netdev@vger.kernel.org \
--cc=netfilter-devel@vger.kernel.org \
--cc=peteheist@gmail.com \
--cc=ycheng@google.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox