From: Eric Dumazet <eric.dumazet@gmail.com>
To: Dan Siemon <dan@coverfire.com>
Cc: netdev <netdev@vger.kernel.org>
Subject: Re: Flow classifier proto-dst and TOS (and proto-src)
Date: Mon, 17 Oct 2011 08:09:59 +0200 [thread overview]
Message-ID: <1318831799.2500.25.camel@edumazet-laptop> (raw)
In-Reply-To: <1318697463.7169.21.camel@ganymede>
Le samedi 15 octobre 2011 à 12:51 -0400, Dan Siemon a écrit :
> cls_flow.c: flow_get_proto_dst()
>
> The proto-dst key returns the destination port for UDP, TCP and a few
> other protocols [see proto_ports_offset()]. For ICMP and IPIP it falls
> back to:
>
> return addr_fold(skb_dst(skb)) ^ (__force u16)skb->protocol;
>
> Since Linux maintains a dst_entry for each TOS value this causes the
> returned value to be affected by the TOS which is unexpected and
> probably broken.
Hi Dan
I think Patrick did this on purpose, because of of the lack of
perturbation in cls_flow.c : If all these frames were mapped to a single
flow, they might interfere with an other regular flow and hurt it.
I dont qualify existing code as buggy. Its about fallback behavior
anyway (I dont think its even documented)
If you have too many frames going to the fallback, then this classifier
is probably not the one you should use ?
Hint : You can change your filter to use this classifier only on TCP/UDP
trafic, and use another one on other protocols : Coupled to your qdisc
rules, you even can limit to X percent the bandwidth allocated to this
trafic
We could argue that if TOS value of two packets is different, then
packets belong to different flows as well. [ It seems we currently lack
a FLOW_KEY_TOS : that could be a usefull addition ]
next prev parent reply other threads:[~2011-10-17 6:10 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-10-15 16:51 Flow classifier proto-dst and TOS (and proto-src) Dan Siemon
2011-10-17 6:09 ` Eric Dumazet [this message]
2011-10-24 1:03 ` Dan Siemon
2011-10-24 4:02 ` Eric Dumazet
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
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1318831799.2500.25.camel@edumazet-laptop \
--to=eric.dumazet@gmail.com \
--cc=dan@coverfire.com \
--cc=netdev@vger.kernel.org \
/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;
as well as URLs for NNTP newsgroup(s).