[ogpx] type-system : version tag and handling unknown tags
Meadhbh Hamrick <ohmeadhbh@gmail.com> Sun, 28 March 2010 17:33 UTC
Return-Path: <ohmeadhbh@gmail.com>
X-Original-To: ogpx@core3.amsl.com
Delivered-To: ogpx@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 489A93A68B2 for <ogpx@core3.amsl.com>; Sun, 28 Mar 2010 10:33:51 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 1.131
X-Spam-Level: *
X-Spam-Status: No, score=1.131 tagged_above=-999 required=5 tests=[BAYES_50=0.001, DNS_FROM_OPENWHOIS=1.13]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id vaZCSJ+dbvaA for <ogpx@core3.amsl.com>; Sun, 28 Mar 2010 10:33:50 -0700 (PDT)
Received: from qw-out-2122.google.com (qw-out-2122.google.com [74.125.92.25]) by core3.amsl.com (Postfix) with ESMTP id 717A33A683F for <ogpx@ietf.org>; Sun, 28 Mar 2010 10:33:50 -0700 (PDT)
Received: by qw-out-2122.google.com with SMTP id 9so90138qwb.31 for <ogpx@ietf.org>; Sun, 28 Mar 2010 10:34:14 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:from:date:received :message-id:subject:to:content-type; bh=zsq917dTSrCcmLzTwq5wFmCquAmYH31esx3JjayH1eM=; b=ET4NENCdUtAEFmwNlmw5QghC7ihzWwO6v1fYqbxp1B5E5NDuEoVanY7UUgWpWcJAZH PzaBp5q2+7O9n3Bv3NV7SDYa8vqmKUOf//v9eOuV7ZR4F+jLlQAl2ROoIDPFOXKO0ao+ +4W+Q8bjNr1GZpH/MmiQyEkLTWX/h3TVMA/I4=
DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:from:date:message-id:subject:to:content-type; b=oj8pOISLZAssbxAN/or5jUbdQXTZ4gf02yhuacv0ENJ00Frft4rW0vgundycKHuYS4 XAoO5ZFeA1bkZS/Qp5ZcUfRVp8NLwQ1LutYHqD2dLmhDfFdtpz/cYp6OYtnttvcRh+cj PnxeSPKzmydckzwcD88MF9EQLlr+p1J0xQiW8=
MIME-Version: 1.0
Received: by 10.229.20.209 with HTTP; Sun, 28 Mar 2010 10:33:54 -0700 (PDT)
From: Meadhbh Hamrick <ohmeadhbh@gmail.com>
Date: Sun, 28 Mar 2010 10:33:54 -0700
Received: by 10.229.222.14 with SMTP id ie14mr812712qcb.95.1269797654382; Sun, 28 Mar 2010 10:34:14 -0700 (PDT)
Message-ID: <b325928b1003281033j1ccaa3dend06ebbce29a13359@mail.gmail.com>
To: ogpx <ogpx@ietf.org>
Content-Type: text/plain; charset="ISO-8859-1"
Subject: [ogpx] type-system : version tag and handling unknown tags
X-BeenThere: ogpx@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Virtual World Region Agent Protocol - IETF working group <ogpx.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ogpx>
List-Post: <mailto:ogpx@ietf.org>
List-Help: <mailto:ogpx-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sun, 28 Mar 2010 17:33:51 -0000
at least one person has commented privately about the need to add a version tag to the binary serialization. i was initially resistant, but now think it makes sense. the use case is we may want to have future versions of the binary serialization with new tags. so i propose we add this verbage to section 4.3 of the type system draft: "version - this optional tag MUST be the first tag in a serialization stream. it identifies the an optional version identifier, to be used for future extension of the binary serialization. the version tag is the lower case 'v' octet and is followed by a 32 bit value representing the version." related to the version tag is the idea of what to do with tags you don't understand. many tools that process XML have a "ignore but preserve" semantic that i think works quite well. our situation is mildly complicated as we don't have a way to know the length of each tag content defined in the future. ergo, i suggest we say that all future tags consist of a tag octet followed by a 32 bit network order unsigned integer representing the length of the tag contents in octets. that way, if someone has inserted an experimental tag you don't understand into a binary encoding, you can at least skip over it. so i also propose we add the following verbiage to section 4.3 of the type system draft: "implementers MAY choose to include experimental or private tags in a binary serialization. implementations that receive tags they cannot handle MUST preserve the tag in the serialization. to facilitate processing of binary serializations with unknown tags, tags not defined in this specification MUST be of the form: a single tag octet, a 32 bit network order unsigned integer representing the length of the tag's content, and the content." -cheers -meadhbh -- meadhbh hamrick * it's pronounced "maeve" @OhMeadhbh * http://meadhbh.org/ * OhMeadhbh@gmail.com
- [ogpx] type-system : version tag and handling unk… Meadhbh Hamrick
- Re: [ogpx] type-system : version tag and handling… Robert G. Jakabosky