Subject: Re: [patch iproute2 v2 repost 3/3] tc/actions: introduce support for goto chain action

From: Jiri Benc <[email-masked]>
Date: Wed, 31 May 2017 14:27:02 +0200

On Tue, 16 May 2017 19:29:37 +0200, Jiri Pirko wrote:
> From: Jiri Pirko <[email-masked]>
> 
> Allow user to set control action "goto" with filter chain index as
> a parameter.
> 
> Signed-off-by: Jiri Pirko <[email-masked]>
> ---
>  include/linux/pkt_cls.h | 16 +++++++++++++++-
>  man/man8/tc-ife.8       |  2 +-
>  man/man8/tc-pedit.8     |  2 +-
>  man/man8/tc-police.8    |  2 +-
>  man/man8/tc-vlan.8      |  2 +-

Jiri, this *seriously* needs a proper documentation. I consider myself
to be well above average in understanding tc filters and actions, and as
you know I participated at least passively in some chats about the
chains. Yet I'm still very lost in semantics of chains. I cannot
imagine how an average user would be able to use this.

Some questions about the semantics:

- What chain(s) are processed by default? If I don't use goto_chain but
  have multiple chains, will only chain 0 be processed, or more? In
  what order, what are the rules? If I don't have a chain 0, what would
  happen?

- What is the relation between priorities and chains? I expected that
  chains are under the same priority but that's not the case in your
  example. For a user, it's very unclear why there are priorities and
  chains. They appear to do the same thing, why can't I just jump
  between priorities?

Please, in addition to explaining here on the list, add detailed
explanation to the man pages.

Thanks,

 Jiri