Subject: Re: [PATCH net-next v1 0/5] TC: Introduce qevents

From: Petr Machata <[email-masked]>
Date: Mon, 29 Jun 2020 15:21:04 +0200

Stephen Hemminger <[email-masked]> writes:

> On Sat, 27 Jun 2020 01:45:24 +0300
> Petr Machata <[email-masked]> wrote:
>
>> The Spectrum hardware allows execution of one of several actions as a
>> result of queue management decisions: tail-dropping, early-dropping,
>> marking a packet, or passing a configured latency threshold or buffer
>> size. Such packets can be mirrored, trapped, or sampled.
>>
>> Modeling the action to be taken as simply a TC action is very attractive,
>> but it is not obvious where to put these actions. At least with ECN marking
>> one could imagine a tree of qdiscs and classifiers that effectively
>> accomplishes this task, albeit in an impractically complex manner. But
>> there is just no way to match on dropped-ness of a packet, let alone
>> dropped-ness due to a particular reason.
>
> Would a BPF based hook be more flexible and reuse more existing
> infrastructure?

This does reuse the existing infrastructure though: filters, actions,
shared blocks, qdiscs invoking blocks, none of that is new.

And BPF can still be invoked though classifier and / or action bpf. It
looks like you get the best of both worlds here: something symbolic for
those of us that use the filter infrastructure, and a well-defined hook
for those of us who like the BPF approach.