Cake - FQ_codel the next generation
 help / color / mirror / Atom feed
From: Dave Taht <dave.taht@gmail.com>
To: Kevin Darbyshire-Bryant <kevin@darbyshire-bryant.me.uk>
Cc: cake@lists.bufferbloat.net
Subject: Re: [Cake] dscp & tunneling
Date: Thu, 10 Dec 2015 13:49:13 +0100	[thread overview]
Message-ID: <CAA93jw4kt0KYMCjS4X1=Jq9AMQB=CTk0ocnT8gEO4k8joAGe8Q@mail.gmail.com> (raw)
In-Reply-To: <5669737C.8070503@darbyshire-bryant.me.uk>

etags (or ctags) are friends here, as is cscope. I am in deep
gratitude to toke for supplying me a pretty good working .emacs.d set
of files for browsing code recently - I'd lost 20 years worth of
accumulated tools when my lab got stolen and don't do enough software
development today to justify sinking the time into making emacs sing
and dance anymore. That said, I don't understand 90% of all the cool
stuff he handed me...

in the linux kernel tree, do a make TAGS. then in emacs it's esc->. to
look up a symbol. There are ton of other things in cscope that are
pretty amazing. vi has similar interfaces as do eclipse.


On Thu, Dec 10, 2015 at 1:43 PM, Kevin Darbyshire-Bryant
<kevin@darbyshire-bryant.me.uk> wrote:
>
>
> On 10/12/15 12:35, Kevin Darbyshire-Bryant wrote:
>>
>> On 10/12/15 12:22, Dave Taht wrote:
>>> On Thu, Dec 10, 2015 at 1:09 PM, Kevin Darbyshire-Bryant
>>> <kevin@darbyshire-bryant.me.uk> wrote:
>>>
>>>> the same test shows all those flows going in the best effort tin and
>>>> nothing being split out according to dscp.  Things are split out
>>>> correctly with ipv4.  Assuming that my installation of flent is doing
>>>> the right thing (putting dscp on its outbound ipv6 packets) and knowing
>>>> that both flent & cake handle the ipv4 version of the test correctly and
>>>> that by the time 'cake' sees my tunnel it's all ipv4 outer packets
>>>> anyway, this suggests dscp from inner ipv6 to outer ipv4 isn't taking
>>>> place, at least for 6in4 'sit' tunnels :-(
>>> Wireshark is your friend here.
>> I shall befriend it once again :-)
>>> It would not surprise me if dscp inherit had broken again, or, it was
>>> borked on decapsulation. Not a widely tested feature, that.
>> I'm only 'testing' the encapsulation side...ipv6 into router, router
>> encapsulates into ipv6, cake then sits across 'eth0' the Internet facing
>> interface and isn't classifying the flows - and I swear this used to work.

I had it working 3 years back, yes, also.

>>> I remember making it work several years ago, remember sort of seeing
>>> the patches go upstream somewhere.... it was a long time ago.
>> Is there anyone lurking on this list, with the time, who can help me
>> with net/ipv6/sit.c?
>>
>> It looks like this is the relevant area:  Need to see what
>> INET_ECN_encapsulate does (and where tos gets set)
>>
>>         if (ttl == 0)
>>                 ttl = iph6->hop_limit;
>>         tos = INET_ECN_encapsulate(tos, ipv6_get_dsfield(iph6));
>>
>>         if (ip_tunnel_encap(skb, tunnel, &protocol, &fl4) < 0) {
>>                 ip_rt_put(rt);
>>                 goto tx_error;
>>         }
>>
>>         skb_set_inner_ipproto(skb, IPPROTO_IPV6);
>>
>>         err = iptunnel_xmit(NULL, rt, skb, fl4.saddr, fl4.daddr,
>>                             protocol, tos, ttl, df,
>>                             !net_eq(tunnel->net, dev_net(dev)));
>>         iptunnel_xmit_stats(err, &dev->stats, dev->tstats);
>>         return NETDEV_TX_OK;
> Ahhh....further up...
>
>         if (tos == 1)
>                 tos = ipv6_get_dsfield(iph6);
>
> and further up still...
>
> static netdev_tx_t ipip6_tunnel_xmit(struct sk_buff *skb,
>                                      struct net_device *dev)
> {
>         struct ip_tunnel *tunnel = netdev_priv(dev);
>         const struct iphdr  *tiph = &tunnel->parms.iph;
>         const struct ipv6hdr *iph6 = ipv6_hdr(skb);
>         u8     tos = tunnel->parms.iph.tos;
>
>
> So how & who sets (or should be setting) iph.tos = 1?
>
> Rabbit hole, rabbit hole......
>
>
>
>
>
> _______________________________________________
> Cake mailing list
> Cake@lists.bufferbloat.net
> https://lists.bufferbloat.net/listinfo/cake
>

  reply	other threads:[~2015-12-10 12:49 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-12-06 11:08 Kevin Darbyshire-Bryant
2015-12-10 11:18 ` Kevin Darbyshire-Bryant
2015-12-10 11:45   ` Dave Taht
2015-12-10 12:09     ` Kevin Darbyshire-Bryant
2015-12-10 12:22       ` Dave Taht
2015-12-10 12:35         ` Kevin Darbyshire-Bryant
2015-12-10 12:43           ` Kevin Darbyshire-Bryant
2015-12-10 12:49             ` Dave Taht [this message]
2015-12-10 12:59               ` Kevin Darbyshire-Bryant
2015-12-12  1:14   ` Jonathan Morton
2015-12-12  9:14     ` Kevin Darbyshire-Bryant

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='CAA93jw4kt0KYMCjS4X1=Jq9AMQB=CTk0ocnT8gEO4k8joAGe8Q@mail.gmail.com' \
    --to=dave.taht@gmail.com \
    --cc=cake@lists.bufferbloat.net \
    --cc=kevin@darbyshire-bryant.me.uk \
    /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