[6tsch] priority and priority

Thomas Watteyne <watteyne@eecs.berkeley.edu> Fri, 08 March 2013 07:34 UTC

Return-Path: <twatteyne@gmail.com>
X-Original-To: 6tsch@ietfa.amsl.com
Delivered-To: 6tsch@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 36DE121F85D9 for <6tsch@ietfa.amsl.com>; Thu, 7 Mar 2013 23:34:45 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.751
X-Spam-Level:
X-Spam-Status: No, score=-2.751 tagged_above=-999 required=5 tests=[AWL=0.225, BAYES_00=-2.599, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-1]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id hIu-M+-KLyVr for <6tsch@ietfa.amsl.com>; Thu, 7 Mar 2013 23:34:44 -0800 (PST)
Received: from mail-pa0-f42.google.com (mail-pa0-f42.google.com [209.85.220.42]) by ietfa.amsl.com (Postfix) with ESMTP id 759AF21F85D4 for <6tsch@ietf.org>; Thu, 7 Mar 2013 23:34:44 -0800 (PST)
Received: by mail-pa0-f42.google.com with SMTP id kq12so1114786pab.29 for <6tsch@ietf.org>; Thu, 07 Mar 2013 23:34:44 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:x-received:sender:date:x-google-sender-auth:message-id :subject:from:to:content-type; bh=iTHzEy+7mFHeX3wbvU3pcgVmNsocHpVT6aivz3oHN2o=; b=u+ko4/HpHxY+2uyPWxLQsHKST5V+PWaToVG1GeE6qCz5mGqy+kzTBandc2Ug4/xtzQ DLehfGC77CLZgOrH5YktHccFTg0m1NKepPQr1XRBt104txl5k5ooVJIpGK/Buc2uCADR 7m/CfzuFxQAz07qCGShcKi1O3F5Uw/E1sB8shS9jP9iD8XM2bFsIGack36pV2pmeAnk5 zkVNqyj3sUz9DOQKcxK1tpzPoMR+IMoys47dUEk1CkGSoemuWaxMGdVvAoBqMmxWnwbi SqG5/pO+cWLbHhcXrIPEt1b2RjU6V7OXvU+a8zrhCnzbypklwaoEhQv0xIP0i2XHobHn OnPg==
MIME-Version: 1.0
X-Received: by 10.66.227.196 with SMTP id sc4mr2694926pac.38.1362728084279; Thu, 07 Mar 2013 23:34:44 -0800 (PST)
Sender: twatteyne@gmail.com
Received: by 10.68.227.71 with HTTP; Thu, 7 Mar 2013 23:34:44 -0800 (PST)
Date: Thu, 07 Mar 2013 23:34:44 -0800
X-Google-Sender-Auth: bZ4k9hgNKyDk3PZKx_h-iqBxzpQ
Message-ID: <CADJ9OA_Kz0mKovU=EQgNHiT=FcnWtLsiAWC7gAo9A-f1Tj8SEA@mail.gmail.com>
From: Thomas Watteyne <watteyne@eecs.berkeley.edu>
To: IETF 6TSCH <6tsch@ietf.org>
Content-Type: multipart/alternative; boundary="047d7b15aa8f639c1304d764dbed"
Subject: [6tsch] priority and priority
X-BeenThere: 6tsch@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: "Discuss link layer model for Deterministic IPv6 over the TSCH mode of IEEE 802.15.4e, and impacts on RPL and 6LoWPAN such as resource allocation" <6tsch.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/6tsch>, <mailto:6tsch-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/6tsch>
List-Post: <mailto:6tsch@ietf.org>
List-Help: <mailto:6tsch-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/6tsch>, <mailto:6tsch-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 08 Mar 2013 07:34:45 -0000

All,

I believe that we have been discussing two different notions of priority:
- *Packet Priority*: Assuming an existing data flow in a network, some
packets are marked as "high priority", the rest as "low priority". All
packets are part of the same flow, but high priority packets are treated
with more urgency that low priority packets. This translates into a set
of queuing rules. This is the notion illustrated by Pascal in his "traffic
lights in a city" analogy (where high priority packets are police cars
passing other vehicles) and used in Qin's mux/i-mux.
- *Flow Priority*, which is slightly different. In a network, multiple
classes of traffic co-exist. This results in multiple data flows. Different
data flows have a different combination of destination, priority, bandwidth
and latency. A network-wide policy defines whether data flows are entirely
independent, or if some over-flowing is allowed. In TSCH, a flow translated
into a slotframe. In case of contention (e.g. at a given slot a mote can
send a packet from each flow), flow priority arbitrates which packet goes
first. Note that this is entirely within the TSCH spec.

These two definitions are complementary: different flows can exist in a
network, but inside a flow, some high priority packets can "pass" other
packets. The network policy defines how those two interact; e.g. a
highest-priority packet can be allowed to "jump" into another flow, if
needed.

We need to define how this materializes in a network. Here is a proposal:

Each data flow turns into a TSCH slotframe. The scheduling entity populates
the slots in the slotframe in such as way that the slots "point to" some
destination. In a typical case, slots in a slotframe are equivalent: to end
up at mote A, take any slot in slotframe 1. This allows us to use
label-switching approach, which I'm sure will pop up in some future draft.
We can end up with different slotframes for different destinations, or for
different types of traffic to the same destination.

Optionally, packets can contain some priority field (probably DSCP, as per
http://tools.ietf.org/html/draft-svshah-tsvwg-lln-diffserv-recommendations-00?)
which serves as the "high priority" marker. A policy then regulates how
this translates to queuing and flow equivalence rules.

DSCP can also be used by the higher layer to indicate to which flow this
packet pertains, and with what (optional) priority. Upon receiving a packet
from a higher layer, the 6tsch layer could inspect the DSCP and some set of
rules would tell him which flow to send it on. Once it is in a flow, the
full DSCP is not needed, and there is lots of opportunity to elide some
information while the packet is on the LLN. I'm hoping that Shitanshu a.o.
can help decide on the applicability of this.

Thomas