Re: [Dart] [rtcweb] Fwd: WGLC: draft-ietf-dart-dscp-rtp-02

Dave Taht <> Wed, 13 August 2014 01:43 UTC

Return-Path: <>
Received: from localhost ( []) by (Postfix) with ESMTP id D35DD1A6FAB for <>; Tue, 12 Aug 2014 18:43:17 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -2
X-Spam-Status: No, score=-2 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, SPF_PASS=-0.001] autolearn=ham
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id KrA9ZBaqPkeS for <>; Tue, 12 Aug 2014 18:43:16 -0700 (PDT)
Received: from ( [IPv6:2607:f8b0:4003:c02::229]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (No client certificate requested) by (Postfix) with ESMTPS id 3B3AF1A002A for <>; Tue, 12 Aug 2014 18:43:16 -0700 (PDT)
Received: by with SMTP id j17so8003256oag.28 for <>; Tue, 12 Aug 2014 18:43:15 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=20120113; h=mime-version:date:message-id:subject:from:to:content-type :content-transfer-encoding; bh=NwSgENbDchpv85jwtVPNFTepD2piNm8QKS2cCgcn3P4=; b=A5Vs6ksIZk41/Xl9EhYeMgCfB68/4LoQfUeC8XzuHncS9UfS0mknrGDX9F8zeCAvSc xi9gyhYvg8p6Doh3tFORWZNirBgXCe5zyc+QPci9I8VeTi/t1jIVIKVXIfAmvXka8Slk 6Fzmu8KNnCpA9r9p9LzMhrsv6lcp8ZbPZFvosGlrCqf+OWrTBHcjaM/c1um27aqkovnl MDPGGrjvKUVTUFb/6U/1lHVvKiqQrno8Nn96EwODKql7Bred6NlBPyilSwmHnhu/FPZL F/mRk7tVnqcVneqLal6Ypl63ULgHAOqnzQel4AVll6dUVUQY1kt5uhSF8yxuifr3JXRT F3jg==
MIME-Version: 1.0
X-Received: by with SMTP id o1mr1656774oeq.2.1407894195639; Tue, 12 Aug 2014 18:43:15 -0700 (PDT)
Received: by with HTTP; Tue, 12 Aug 2014 18:43:15 -0700 (PDT)
Date: Tue, 12 Aug 2014 18:43:15 -0700
Message-ID: <>
From: Dave Taht <>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
Subject: Re: [Dart] [rtcweb] Fwd: WGLC: draft-ietf-dart-dscp-rtp-02
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "\"DiffServ Applied to RTP Transports discussion list\"" <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Wed, 13 Aug 2014 01:43:17 -0000

This is also of some interest to me at least, and perhaps some members
of the AQM working group who are working out weighted fair queuing and
wred like approaches to these needs.

Anyway, I do try to track thinking in this area in the ongoing
development of cerowrt's sqm system, which has pluggable modules for
all the known aqm and fq schedulers, and a three tier system modeled
on wondershaper for managing traffic, which uses what diffserv
markings that I have observed make sense...

Some relevant links:

Missing from this discussion so far is what is actually deployed out
there... I am only familiar with stuff like the above as an
egress/ingress queue management system...

AND: in the case of linux based wireless routers, none of the AF
codepoints are respected explicitly, and how the codepoints are mapped
are described by 802.11e - and that is far more about scheduling
priority for airtime rather than drop probability.

It is kind of hard to wrap your head around how 802.11e actually
works, but, this is a start:

In linux wifi at least:

CS0, CS3 are mapped into the BE hw queue
CS1, CS2 are mapped into the BK hw queue
CS4, CS5 are mapped into the VI hw queue
CS6, CS7 are mapped into the VO  hw queue

Bit patterns for the other classes to whatever extent they map into
CSX are mapped into the underlying hardware queue.

I am not saying this is an optimal state of affairs, (as notably VO
should be as completely disabled as possible in the 802.11n and ac
age), and am very interested in how other OSes (ios, osx, windows),
and router/switch OSes do it, but the wireless scheduling aspect of
all these codepoints does not seem to be well touched upon.

On a personal note I tend to think that having 17+ ways to slice up
traffic is about 13 or 14 too many, particularly those targetting a
drop probability. When you have drop rates well below a few percentage
points, adding another percentage point of granularity seems futile.

Lastly, there is also an implementation issue in linux presently in
that doing extensive diffserv classification basically requires
one iptables or tc rule per class, which is inefficient.  Someone (not
me!) doing some code for doing diffserv saner there would go a long

Dave Täht