All of lore.kernel.org
 help / color / mirror / Atom feed
From: Philip Prindeville <philipp_subx@redfish-solutions.com>
To: lartc@vger.kernel.org
Subject: tc question about ingress bandwidth splitting
Date: Sun, 22 Mar 2020 21:56:46 +0000	[thread overview]
Message-ID: <74CFEE65-9CE8-4CF7-9706-2E2E67B24E08@redfish-solutions.com> (raw)

Hi all,

I asked around on IRC but no one seems to know the answer, so I thought I’d go to the source…

I have a SoHo router with two physical subnets, which we’ll call “production” (eth0) and “guest” (eth1), and the egress interface “wan” (eth5).

The uplink is G.PON 50/10 mbps.  I’d like to cap the usage on “guest” to 10/2 mbps.  Any unused bandwidth from “guest” goes to “production”.

I thought about marking the traffic coming in off “wan" (the public interface).  Then using HTB to have a 50 mbps cap at the root, and allocating 10mb/s to the child “guest”.  The other sibling would be “production”, and he gets the remaining traffic.

Upstream would be the reverse, marking ingress traffic from “guest” with a separate tag.  Allocating upstream root on “wan” with 10 mbps, and the child “guest” getting 2 mbps.  The remainder goes to the sibling “production”.

Should be straightforward enough, right? (Well, forwarding is more straightforward than traffic terminating on the router itself, I guess… bonus points for getting that right, too.)

I’m hoping that the limiting will work adequately so that the end-to-end path has adequate congestion avoidance happening, and that upstream doesn’t overrun the receiver and cause a lot of packets to be dropped on the last hop (work case of wasted bandwidth).  Not sure if I need special accommodations for bursting or if that would just delay the “settling” of congestion avoidance into steady-state.

Also not sure if ECN is worth marking at this point.  Congestion control is supposed to work better than congestion avoidance, right?

Anyone know what the steps would look like to accomplish the above?

A bunch of people responded, “yeah, I’ve been wanting to do that too…” when I brought up my question, so if I get a good solution I’ll submit a FAQ entry.

Thanks,

-Philip

             reply	other threads:[~2020-03-22 21:56 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-03-22 21:56 Philip Prindeville [this message]
2020-03-22 22:59 ` tc question about ingress bandwidth splitting Grant Taylor
2020-03-24  6:51 ` Philip Prindeville
2020-03-24  9:21 ` Marco Gaiarin
2020-03-24 17:57 ` Grant Taylor
2020-03-24 18:17 ` Grant Taylor
2020-03-26  3:44 ` Philip Prindeville
2020-03-26  3:53 ` Fwd: " Philip Prindeville
2020-03-26 12:50   ` Toke Høiland-Jørgensen
2020-03-26  4:03 ` Grant Taylor
2020-04-01  9:48 ` Marco Gaiarin
2020-04-03 22:44 ` Grant Taylor
2020-04-06  9:13 ` Marco Gaiarin
2020-04-13  1:11 ` Grant Taylor
2020-04-17  9:58 ` Marco Gaiarin
  -- strict thread matches above, loose matches on Subject: below --
2020-03-22 18:20 Philip Prindeville
2020-03-23  6:47 ` Gáspár Lajos
2020-03-23  9:36   ` Marc SCHAEFER
2020-03-23 18:15     ` Philip Prindeville

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=74CFEE65-9CE8-4CF7-9706-2E2E67B24E08@redfish-solutions.com \
    --to=philipp_subx@redfish-solutions.com \
    --cc=lartc@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.