From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-lj1-x22e.google.com (mail-lj1-x22e.google.com [IPv6:2a00:1450:4864:20::22e]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by lists.bufferbloat.net (Postfix) with ESMTPS id 7A75A3B29E for ; Tue, 23 Feb 2021 15:37:32 -0500 (EST) Received: by mail-lj1-x22e.google.com with SMTP id r23so64763677ljh.1 for ; Tue, 23 Feb 2021 12:37:32 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=0cWa8AavZu1hQ31e2SjoxMxLQL50oRPXh4/QKnml/ic=; b=IbUPnnC/Dgpe04IC9r2ZGQ8eV1btKCnI/bo08+wq0mQSs27UihDNsG2x/RZ4YjUUox 4zSdvrFhiSS+yJLyeyVKFgMsMe2/igN/qhOSotnc7l8vxi1R31eTdLazuexaY7b8Tk+x biEg2bUkzYwtHE0vKtzdMCOeZge+S+2karX1UhS6e0BuN7Ue1pem83yZ5/BD6dy4Yfp/ +a/n/0b5vqUXK2ofk84tMTbZfz5ZcxjB00UqgFCnf56ffhCo4Voqaw7BvbrK5gGU1gCs t8VnS724HR7qVSpGOKLtM+RYdXpQdU8wtSk/yE9p/QiohqjVzrAH5CdM3OPNsJ/sEzZP FO5g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=0cWa8AavZu1hQ31e2SjoxMxLQL50oRPXh4/QKnml/ic=; b=AVREAOVEZatcWo5YzYto1OVKzrYUO8hFS5LjDW149r/XU3iMVuWVAwEpYRRO0eFiYN x3qf8KN+We7WPcwhPLNQWQ8jfJRhFoaGmQQdypLIozZwHOdc3aEgbSQpTxIbBsSNmu0z EkfRY6HEpqxR9FdJP8gudx8OcnoiorL1moHtyIiQwRfbLsn4cv8gZsIl5LRjSqprlDOv NPwxrvK34Db9fucw+6Hf2r/yXnfaIaMXON06GzynRMTYa4lOMKM9/H+2kG4jrKpPemGU VIQ29dvs4B1slM2g0JbVK5p1XLwaqzdomxOJQy4vUT7x4kbOZHXI6HYHrvMYe8fnKvMW Y89g== X-Gm-Message-State: AOAM530CE+cMyweBP7ms6ohipd85TDlUVbLiM43GQ+Cu77NYDAKU2NPu FAKmldSxemi7hy2Qvh4Lq14KSQDQUvJZLPYChoqEorNq4Mg= X-Google-Smtp-Source: ABdhPJz3NzFyflJe7HviswG3glIh8WOFOplqt0jjJykJfn7l6G4PusjTgaOQeW5tdE43qEPDBlg5t51LsjUOh75x6QQ= X-Received: by 2002:a2e:81c2:: with SMTP id s2mr1223850ljg.224.1614112651137; Tue, 23 Feb 2021 12:37:31 -0800 (PST) MIME-Version: 1.0 References: <87mtw1kx9c.fsf@toke.dk> <87im6pkweq.fsf@toke.dk> <9a889d98-0fae-d1af-6dea-c534f0df854a@sager.me.uk> In-Reply-To: From: Peter Lepeska Date: Tue, 23 Feb 2021 15:37:18 -0500 Message-ID: To: John Sager Cc: cake@lists.bufferbloat.net Content-Type: multipart/alternative; boundary="00000000000032d6b205bc06e3dc" Subject: Re: [Cake] Enforcing video quality question X-BeenThere: cake@lists.bufferbloat.net X-Mailman-Version: 2.1.20 Precedence: list List-Id: Cake - FQ_codel the next generation List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 23 Feb 2021 20:37:32 -0000 --00000000000032d6b205bc06e3dc Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi John, Thanks for sharing! Peter On Tue, Feb 23, 2021 at 6:15 AM John Sager wrote: > Here is the toy QoS solution for linux, which is a simplified version of > the > one I uses successfully on my home network. It uses quite a few scheduler > modules - sch_htb, act_connmark, em_meta etc - that may not load > automatically, so they may need to be listed in /etc/modules. > > Toke, thanks for agreeing to let the attachment through. > > John > > On 19/02/2021 19:04, John Sager wrote: > > Yes. The marks are set on egress so you can select on inside IP address= , > > port, protocol - in fact many characteristics that iptables rules can > test > > for. I'll put together a toy iptables rules file and a toy script with > the > > necessary tc commands. It'll take me a few days though as I'm busy with > > other stuff currently. > > > > PS does the cake list allow attachments? It will be a small zip file. > > > > John > > > > On 19/02/2021 15:02, Peter Lepeska wrote: > >> Hi John > >> > >> Does this result in the ability to set per internal host max ingress > >> bandwidth? If so, any chance you can share a snippet of a script? I > will > >> be trying to reproduce your setup. > >> > >> Thank you! > >> > >> Peter > >> > >> On Fri, Feb 19, 2021 at 7:16 AM John Sager >> > wrote: > >> > >> That's basically what I do. I set marks on outgoing traffic in the > mangle > >> table which are copied to connmark before egress. Then on ingress > the > >> connmark is restored to the packet and punted to ifb0 using 'actio= n > >> connmark > >> action mirred egress redirect dev $IFB' as an ingress filter on th= e > >> incoming > >> interface (ppp0 in my case). Then I have HTB classes on ifb0 which > set > >> rate > >> limits for different traffic classes indicated by the marks. I hav= e > >> only 6 > >> traffic classes (I bundle all video into one class), but as marks > are 32 > >> bits wide there is lots of scope for classes for individual IP > addresses. > >> > >> John > >> > >> On 18/02/2021 19:28, Toke H=C3=B8iland-J=C3=B8rgensen via Cake wro= te: > >> > Peter Lepeska >> > >> writes: > >> > > >> >> A user on the OpenWrt forum suggested hashlimit rules supporte= d > by > >> >> iptables. How does that idea sound to you? > >> > > >> > That will result in a cliff-edge policer (i.e., as soon as a > device > >> goes > >> > over its limits it will see every packet get dropped). This > doesn't > >> > interact too well with the burstiness of TCP, so you'll likely > get > >> > erratic behaviour of the traffic if you do that. Doing the same > thing > >> > with HTB means the router will queue+shape each class (and with > >> FQ-CoDel > >> > on the leaves, you'll get a nice AQM behaviour as well), so tha= t > >> will be > >> > smoother and less prone to bloat :) > >> > > >> > -Toke > >> > _______________________________________________ > >> > Cake mailing list > >> > Cake@lists.bufferbloat.net > >> > https://lists.bufferbloat.net/listinfo/cake > >> > > >> _______________________________________________ > >> Cake mailing list > >> Cake@lists.bufferbloat.net > >> https://lists.bufferbloat.net/listinfo/cake > >> > > _______________________________________________ > > Cake mailing list > > Cake@lists.bufferbloat.net > > https://lists.bufferbloat.net/listinfo/cake > > > _______________________________________________ > Cake mailing list > Cake@lists.bufferbloat.net > https://lists.bufferbloat.net/listinfo/cake > --00000000000032d6b205bc06e3dc Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi John,

Thanks for sharing!=C2=A0

Peter

On Tue, Feb 23, 2021 at 6:15 AM John Sager = <john@sager.me.uk> wrote:
=
Here is the toy QoS= solution for linux, which is a simplified version of the
one I uses successfully on my home network. It uses quite a few scheduler <= br> modules - sch_htb, act_connmark, em_meta etc - that may not load
automatically, so they may need to be listed in /etc/modules.

Toke, thanks for agreeing to let the attachment through.

John

On 19/02/2021 19:04, John Sager wrote:
> Yes. The marks are set on egress so you can select on inside IP addres= s,
> port, protocol - in fact many characteristics that iptables rules can = test
> for. I'll put together a toy iptables rules file and a toy script = with the
> necessary tc commands. It'll take me a few days though as I'm = busy with
> other stuff currently.
>
> PS does the cake list allow attachments? It will be a small zip file.<= br> >
> John
>
> On 19/02/2021 15:02, Peter Lepeska wrote:
>> Hi John
>>
>> Does this=C2=A0result in the ability to set per internal host max = ingress
>> bandwidth? If so, any chance you can share a snippet of a script? = I will
>> be trying to reproduce your setup.
>>
>> Thank you!
>>
>> Peter
>>
>> On Fri, Feb 19, 2021 at 7:16 AM John Sager <john@sager.me.uk
>> <mailto:j= ohn@sager.me.uk>> wrote:
>>
>> =C2=A0=C2=A0=C2=A0 That's basically what I do. I set marks on = outgoing traffic in the mangle
>> =C2=A0=C2=A0=C2=A0 table which are copied to connmark before egres= s. Then on ingress the
>> =C2=A0=C2=A0=C2=A0 connmark is restored to the packet and punted t= o ifb0 using 'action
>> =C2=A0=C2=A0=C2=A0 connmark
>> =C2=A0=C2=A0=C2=A0 action mirred egress redirect dev $IFB' as = an ingress filter on the
>> =C2=A0=C2=A0=C2=A0 incoming
>> =C2=A0=C2=A0=C2=A0 interface (ppp0 in my case). Then I have HTB cl= asses on ifb0 which set
>> rate
>> =C2=A0=C2=A0=C2=A0 limits for different traffic classes indicated = by the marks. I have
>> only 6
>> =C2=A0=C2=A0=C2=A0 traffic classes (I bundle all video into one cl= ass), but as marks are 32
>> =C2=A0=C2=A0=C2=A0 bits wide there is lots of scope for classes fo= r individual IP addresses.
>>
>> =C2=A0=C2=A0=C2=A0 John
>>
>> =C2=A0=C2=A0=C2=A0 On 18/02/2021 19:28, Toke H=C3=B8iland-J=C3=B8r= gensen via Cake wrote:
>> =C2=A0=C2=A0=C2=A0=C2=A0 > Peter Lepeska <bizzbyster@gmail.com <mailto= :bizzbyster@gmail= .com>>
>> =C2=A0=C2=A0=C2=A0 writes:
>> =C2=A0=C2=A0=C2=A0=C2=A0 >
>> =C2=A0=C2=A0=C2=A0=C2=A0 >> A user on the OpenWrt forum sugg= ested hashlimit rules supported by
>> =C2=A0=C2=A0=C2=A0=C2=A0 >> iptables. How does that idea sou= nd to you?
>> =C2=A0=C2=A0=C2=A0=C2=A0 >
>> =C2=A0=C2=A0=C2=A0=C2=A0 > That will result in a cliff-edge pol= icer (i.e., as soon as a device
>> goes
>> =C2=A0=C2=A0=C2=A0=C2=A0 > over its limits it will see every pa= cket get dropped). This doesn't
>> =C2=A0=C2=A0=C2=A0=C2=A0 > interact too well with the burstines= s of TCP, so you'll likely get
>> =C2=A0=C2=A0=C2=A0=C2=A0 > erratic behaviour of the traffic if = you do that. Doing the same thing
>> =C2=A0=C2=A0=C2=A0=C2=A0 > with HTB means the router will queue= +shape each class (and with
>> FQ-CoDel
>> =C2=A0=C2=A0=C2=A0=C2=A0 > on the leaves, you'll get a nice= AQM behaviour as well), so that
>> will be
>> =C2=A0=C2=A0=C2=A0=C2=A0 > smoother and less prone to bloat :)<= br> >> =C2=A0=C2=A0=C2=A0=C2=A0 >
>> =C2=A0=C2=A0=C2=A0=C2=A0 > -Toke
>> =C2=A0=C2=A0=C2=A0=C2=A0 > ____________________________________= ___________
>> =C2=A0=C2=A0=C2=A0=C2=A0 > Cake mailing list
>> =C2=A0=C2=A0=C2=A0=C2=A0 > Cake@lists.bufferbloat.net <mailto:Cake@lists.buffe= rbloat.net>
>> =C2=A0=C2=A0=C2=A0=C2=A0 > https://lists.buff= erbloat.net/listinfo/cake
>> =C2=A0=C2=A0=C2=A0=C2=A0 >
>> =C2=A0=C2=A0=C2=A0 _______________________________________________=
>> =C2=A0=C2=A0=C2=A0 Cake mailing list
>> =C2=A0=C2=A0=C2=A0 Cake@lists.bufferbloat.net <mailto:Cake@lists.bufferbloat.net<= /a>>
>> =C2=A0=C2=A0=C2=A0
https://lists.bufferbloat.net= /listinfo/cake
>>
> _______________________________________________
> Cake mailing list
> Cake@l= ists.bufferbloat.net
> https://lists.bufferbloat.net/listinfo/cake
>
_______________________________________________
Cake mailing list
Cake@lists.= bufferbloat.net
https://lists.bufferbloat.net/listinfo/cake
--00000000000032d6b205bc06e3dc--