Re: [Spud] Additional SPUD use-cases

"Pal Martinsen (palmarti)" <palmarti@cisco.com> Tue, 17 March 2015 09:47 UTC

Return-Path: <palmarti@cisco.com>
X-Original-To: spud@ietfa.amsl.com
Delivered-To: spud@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id D97D91A01D5 for <spud@ietfa.amsl.com>; Tue, 17 Mar 2015 02:47:37 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -10.522
X-Spam-Level:
X-Spam-Status: No, score=-10.522 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FRT_STOCK2=3.988, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-5, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01, USER_IN_DEF_DKIM_WL=-7.5] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id w9wxoaOIGKwe for <spud@ietfa.amsl.com>; Tue, 17 Mar 2015 02:47:34 -0700 (PDT)
Received: from alln-iport-8.cisco.com (alln-iport-8.cisco.com [173.37.142.95]) (using TLSv1 with cipher RC4-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 41A5D1A01C6 for <spud@ietf.org>; Tue, 17 Mar 2015 02:47:34 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=43654; q=dns/txt; s=iport; t=1426585654; x=1427795254; h=from:to:cc:subject:date:message-id:references: in-reply-to:mime-version; bh=wMa+3O8RoKj+CilsRUKt1EOzlEnbauH2HaS5OsQezbg=; b=fQzkiE1CUEHl1CKR1seeh8hwJ5Sz26UuyV2aQ3qv2itbGoxTPHiDcOSO zw7fTQ4h4CYVrwN1iVI9GPg1HzdaoccRPwuI407JCMDGuwVnPOfFRLGwZ +jNUq1memMTqJwjCSBRxH83jpDnAosb2aw4y6pDk7pPJK5HorarBfMX3z Q=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: A0BCBQB39wdV/40NJK1bgkNDUl6DBsA4LYEkGQELhW4CHIEYOBQBAQEBAQEBfIQPAQEBBAEBASAEQAEGBgUQAgEIEQQBASEBBgMCAgIlCxQJCAIEDgUbiBQNrgCZYwEBAQEBAQEBAQEBAQEBAQEBAQEBAReKFH6EFzwXBAYBBoJiL4EUBY92g1+BV4QPgRo5hTiFd4MVgz4jggIcgVBvAYECQX8BAQE
X-IronPort-AV: E=Sophos;i="5.11,415,1422921600"; d="scan'208,217";a="132616113"
Received: from alln-core-8.cisco.com ([173.36.13.141]) by alln-iport-8.cisco.com with ESMTP; 17 Mar 2015 09:47:33 +0000
Received: from xhc-rcd-x13.cisco.com (xhc-rcd-x13.cisco.com [173.37.183.87]) by alln-core-8.cisco.com (8.14.5/8.14.5) with ESMTP id t2H9lWOe009109 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=FAIL); Tue, 17 Mar 2015 09:47:33 GMT
Received: from xmb-rcd-x06.cisco.com ([169.254.6.40]) by xhc-rcd-x13.cisco.com ([173.37.183.87]) with mapi id 14.03.0195.001; Tue, 17 Mar 2015 04:47:32 -0500
From: "Pal Martinsen (palmarti)" <palmarti@cisco.com>
To: "Black, David" <david.black@emc.com>
Thread-Topic: [Spud] Additional SPUD use-cases
Thread-Index: AQHQX9ljbTPSFHtRgkqtPZO67VoMRZ0fqEUAgABEwYCAANXxgA==
Date: Tue, 17 Mar 2015 09:47:32 +0000
Message-ID: <73D46BA8-DB33-481F-B0FB-DDD3B1F0F7FB@cisco.com>
References: <B57E4F68-A0C6-44D8-A729-47B1BED309C9@cisco.com> <CA+9kkMB4kfmMuR61aAhHLzrhEK37dEqy9cpdaqdtzpuyoCbBfg@mail.gmail.com> <CE03DB3D7B45C245BCA0D24327794936412E51@MX104CL02.corp.emc.com>
In-Reply-To: <CE03DB3D7B45C245BCA0D24327794936412E51@MX104CL02.corp.emc.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [10.61.174.40]
Content-Type: multipart/alternative; boundary="_000_73D46BA8DB33481FB0FBDDD3B1F0F7FBciscocom_"
MIME-Version: 1.0
Archived-At: <http://mailarchive.ietf.org/arch/msg/spud/6d17ChHLYClZBpvBtJhNpXhLp94>
Cc: "spud@ietf.org" <spud@ietf.org>
Subject: Re: [Spud] Additional SPUD use-cases
X-BeenThere: spud@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Session Protocol Underneath Datagrams <spud.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/spud>, <mailto:spud-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/spud/>
List-Post: <mailto:spud@ietf.org>
List-Help: <mailto:spud-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/spud>, <mailto:spud-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 17 Mar 2015 09:47:38 -0000

On 16 Mar 2015, at 22:02, Black, David <david.black@emc.com<mailto:david.black@emc.com>> wrote:

Here are four potentially related drafts:


Thanks for pointing them out. Interesting read.

-- Rate Adaptation based on network feedback, and (to some extent) FCFS (weak) admission control:

This work is TCP based, but with similar goals:

https://datatracker.ietf.org/doc/draft-sprecher-mobile-tg-exposure-req-arch/
https://datatracker.ietf.org/doc/draft-flinck-mobile-throughput-guidance/

The latter draft is (IMHO) better viewed as a proof-of-concept demonstration that this can work, as opposed to a specific protocol design for how to do it.  Design concerns have been raised about what was done there (e.g., aggressive use of TCP options).

For now my conclusion is; there is interest in solving similar problems for TCP, so adding it to the SPUD use-case discussion make sense.


-- Dynamic Per Type Packet Prioritization (DPTPP *sigh*)

Web RTC wants to do this from the application:

      https://datatracker.ietf.org/doc/draft-ietf-tsvwg-rtcweb-qos/

And it can be done, if one is careful:

      https://datatracker.ietf.org/doc/draft-ietf-dart-dscp-rtp/ (in RFC Editor Queue)

We have implemented a prototype setting different DSCP values on different video packets a few years back. The platform we did it on was a bit underpowered regarding main CPU vs video enc/dev processors. The extra setsockopt call to change the pr packet DSCP value caused problems. Was also unsure if any buffering in the OS cause the right markings to be set on the right packet. The sendMsg() function will probably ensure that, but at the time we did not rewrite our stack to support that.

Do we have any information that network elements can handle different DSCP values within a 5-tuple? Word on the street a few years back was that it could be difficult for some platforms.

In my head SPUD will improve the above drafts by:

- Provide end to end signalling.
  (Would be interesting to know the rationale on why the networks remarks the DSCP values so we can avoid that with SPUD).

- Easier for applications. Just memcpy() a spud buffer in front of your RTP packet (Make sure to start writing your RTP packet a bit into the buffer…), and fire off the packet as usual. This is an important aspect as it eases the integration work of SPUD. If the application already supports ICE it probably does do similar tricks because of TURN.

- It is possible to build a SPUD->DSCP gateway. This is nice as customers can place that gateway at the edge and still have the old carefully DSCP crafted network provide value.


.-.
Pål-Erik



Thanks,
--David

From: Spud [mailto:spud-bounces@ietf.org] On Behalf Of Ted Hardie
Sent: Monday, March 16, 2015 12:56 PM
To: Pal Martinsen (palmarti)
Cc: spud@ietf.org<mailto:spud@ietf.org>
Subject: Re: [Spud] Additional SPUD use-cases

Hi Pål-Erik,
Thanks for your message; some comments in-line.

On Mon, Mar 16, 2015 at 4:07 AM, Pal Martinsen (palmarti) <palmarti@cisco.com<mailto:palmarti@cisco.com>> wrote:
Hi,

I have a few additional SPUD use-cases I want to bring to the list before the BoF. Some of them have already been solved by using STUN as a signalling protocol (http://tools.ietf.org/id/draft-martinsen-tram-discuss-02.txt). I think SPUD is a more efficient carrier of the bits needed to solve some of the use-cases. But for now they are just use-cases, and discussions on how to solve them should probably be deferred to a later stage.

* Rate Adaption With Confidence
Todays delay sensing rate adaption mechanisms seems to be working very well and can potentially react within half a RTT (Is TT, Trip Time, more accurate or in use as a term?). Having explicit network feedback signalled back to endpoint enabled endpoints to pick a more reasonable starting value when sending media. Explicit signalling during the call enables the network as to signal information back to the endpoint before the problems occur (ECN). Up/down speeding could potentially be done in larger chunks with confidence.

* First Come, First Serve
In WiFi we have some lab tests that show when you hit a limit you hit it hard and everybody on that link suffers. If 9 people enjoy their video conversations going through the same WiFi AP, it is annoying if a 10th call is added causing everybody to get bad video. A possible solution is to let the network signal back to the 10th participants trying to send video that bandwidth is not available; “I will put you in worse than best effort queue if you try to send at that rate”. If bandwidth become available the network will notify the user. Note that this is not RSVP and resource allocation, just hints from the network that if you try, you will suffer.
​

​When you say "the network" here, this seems to me the first hop-AP.  For cases where the radio resources are at issue, it seems likely that you might want to coordinate this with the other 802.11 facilities, so I'm not sure that this the right layer to do this.  In particular, multi-AP deployments might request the station re-associate to a less-busy AP or make other adjustments to the channel handling of frame marked with the higher priority WMM bits (given the potential issues with cross-talk, shifting APs is certainly not a panacea, but my be better than what amounts to admission control).
​

* Dynamic Per Type Packet Prioritisation (DPTPP *sigh*)
The SPUD use case draft opens up for tube prioritisation. It is possible to prioritise among for example audio, video and data tubes when multiplexing (Bundle) is in use. It is important that the prioritisation is made dynamic. When running a video conference you might want to prioritise video packets, but suddenly there is a need to upload a large presentation to all the participants. In that case it might not make sense for participants having pristine 1080p60 video watching each other waiting for the slow uploading of the presentation to finish.

And the packet type prioritisation does not necessarily stop at audio or video level. Video packets can have for example spatial layers where packets belonging to a temporal layer can be discarded by the network without to much impact on the video quality. Discarding an I-Frame would have much more impact on the quality.


​I think ordinal priority among the tubes coming from the same user is a baseline use case.  There seem to be two possibilities to making that dynamic:  mint a new tube or set of tubes on the same 6-tuple ​when the ordinal priority changes or update the ordinal priority on the existing tubes.  I am not sure of the complexity trade-off between those two yet, and I'd be interested in folks thoughts on that.

​regards,
Ted​




Comments, flames and what not are of course welcome.

.-.
Pål-Erik

_______________________________________________
Spud mailing list
Spud@ietf.org<mailto:Spud@ietf.org>
https://www.ietf.org/mailman/listinfo/spud