[Webpush] question on Urgency semantics in draft-ietf-webpush-protocol-04

Darshak Thakore <d.thakore@cablelabs.com> Thu, 07 April 2016 18:34 UTC

Return-Path: <d.thakore@cablelabs.com>
X-Original-To: webpush@ietfa.amsl.com
Delivered-To: webpush@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 98F5E12D164 for <webpush@ietfa.amsl.com>; Thu, 7 Apr 2016 11:34:28 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.93
X-Spam-Level:
X-Spam-Status: No, score=-1.93 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_MSPIKE_H4=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01] autolearn=ham autolearn_force=no
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 jC9qYqe2w_E6 for <webpush@ietfa.amsl.com>; Thu, 7 Apr 2016 11:34:25 -0700 (PDT)
Received: from ondar.cablelabs.com (ondar.cablelabs.com [192.160.73.61]) by ietfa.amsl.com (Postfix) with ESMTP id E611612D0F0 for <webpush@ietf.org>; Thu, 7 Apr 2016 11:34:24 -0700 (PDT)
Received: from kyzyl.cablelabs.com (kyzyl [10.253.0.7]) by ondar.cablelabs.com (8.14.7/8.14.7) with ESMTP id u37IYOMR022790 for <webpush@ietf.org>; Thu, 7 Apr 2016 12:34:24 -0600
Received: from exchange.cablelabs.com (10.5.0.19) by kyzyl.cablelabs.com (F-Secure/fsigk_smtp/407/kyzyl.cablelabs.com); Thu, 07 Apr 2016 12:34:24 -0600 (MDT)
X-Virus-Status: clean(F-Secure/fsigk_smtp/407/kyzyl.cablelabs.com)
Received: from EXCHANGE.cablelabs.com ([::1]) by EXCHANGE.cablelabs.com ([::1]) with mapi id 14.03.0266.001; Thu, 7 Apr 2016 12:34:22 -0600
From: Darshak Thakore <d.thakore@cablelabs.com>
To: "webpush@ietf.org" <webpush@ietf.org>
Thread-Topic: question on Urgency semantics in draft-ietf-webpush-protocol-04
Thread-Index: AQHRkPwajeH8WCR2P0CN1n3qeXFXsg==
Date: Thu, 7 Apr 2016 18:34:22 +0000
Message-ID: <D32C044E.A68E%d.thakore@cablelabs.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
user-agent: Microsoft-MacOutlook/14.6.2.160219
x-originating-ip: [10.5.0.27]
Content-Type: multipart/alternative; boundary="_000_D32C044EA68Edthakorecablelabscom_"
MIME-Version: 1.0
Archived-At: <http://mailarchive.ietf.org/arch/msg/webpush/AR3TzKR-M69nhcZMCMc9WudgRQY>
Subject: [Webpush] question on Urgency semantics in draft-ietf-webpush-protocol-04
X-BeenThere: webpush@ietf.org
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: Discussion of potential IETF work on a web push protocol <webpush.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/webpush>, <mailto:webpush-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/webpush/>
List-Post: <mailto:webpush@ietf.org>
List-Help: <mailto:webpush-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/webpush>, <mailto:webpush-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 07 Apr 2016 18:34:28 -0000

Hi all,

In reviewing the 04 version, I was hoping for some comment/clarification on the Urgency semanics:

Section 6.3 - Urgency header

The last paragraph - “An absent Urgency header field indicates that the request is to be forwarded at “normal” urgency…"

I’m assuming this statement applies to the “Urgency” header only when it is used by the AS to send the message to the PS. Correct? An absent “Urgency” header field in the request from the UA to PS should result in all messages being retrieved. Am i interpreting it correctly ?

Also in general, i’m trying to understand how the “Urgency” header actually works here. Once a radio is up for communication, you typically want to complete as much of data communication as possible so that you can go back to sleep for an extended period. If we had the following scenario;

Three applications have subscribed with the PS so we have a subscription set consisting of these three. Now the following messages are sent

AS1 -> PS : Sends 5 messages without the Urgency header so all 5 are “normal"
AS2 -> PS : Sends 2 messages with “high”, 5 with “low” and 5 with “very-low"
AS3 -> PS : Games the system and sends 5 messages with “high”

Now before AS2 sends any messages, if the UA polls the PS with the Urgency set to “high”, it doesn’t get any pushes. If the UA polls the PS subsequently after AS3 sends the messages again with Urgency set to “high", it will receive 7 messages (2 from AS2 and 5 from AS3). The other 15 messages (from AS1 and AS2) remain outstanding.

In the above scenario, the pending 15 messages may expire before getting delivered and requiring the PS and AS# to maintain state, deliver back “expiration” receipts and retry delivery (this cycle may happen a couple of times). Is all this complexity only to allow the device’s radio to be in full-power communication mode for the duration of the 7 messages instead of (7+15) messages or is there any other benefit i’m missing ? Given that the radio was in full power mode along with a “fully-primed” TCP connection from the UA to the PS, are we really saving any significant energy by not sending those 15 messages ? Also there does not seem to be anything that stops a particular AS from gaming the system and sending all its messages with “high” urgency.

My main goal here is to understand what precise benefit we are providing with the Urgency header.


Regards,
Darshak