Re: [sip-clf] Vendor extensions in draft-ietf-sipclf-format-01.txt

Gonzalo Salgueiro <gsalguei@cisco.com> Tue, 15 March 2011 18:25 UTC

Return-Path: <gsalguei@cisco.com>
X-Original-To: sip-clf@core3.amsl.com
Delivered-To: sip-clf@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 89B623A6D78 for <sip-clf@core3.amsl.com>; Tue, 15 Mar 2011 11:25:16 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -9.143
X-Spam-Level:
X-Spam-Status: No, score=-9.143 tagged_above=-999 required=5 tests=[AWL=-0.845, BAYES_00=-2.599, HTML_MESSAGE=0.001, MANGLED_PENIS=2.3, RCVD_IN_DNSWL_HI=-8]
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 PPzy+QNyo+5k for <sip-clf@core3.amsl.com>; Tue, 15 Mar 2011 11:25:14 -0700 (PDT)
Received: from av-tac-rtp.cisco.com (hen.cisco.com [64.102.19.198]) by core3.amsl.com (Postfix) with ESMTP id 53F3A3A6B10 for <sip-clf@ietf.org>; Tue, 15 Mar 2011 11:25:14 -0700 (PDT)
X-TACSUNS: Virus Scanned
Received: from rooster.cisco.com (localhost.cisco.com [127.0.0.1]) by av-tac-rtp.cisco.com (8.13.8+Sun/8.13.8) with ESMTP id p2FIQbCE013234; Tue, 15 Mar 2011 14:26:37 -0400 (EDT)
Received: from rtp-gsalguei-8714.cisco.com (rtp-gsalguei-8714.cisco.com [10.116.61.53]) by rooster.cisco.com (8.13.8+Sun/8.13.8) with ESMTP id p2FIQavX002665; Tue, 15 Mar 2011 14:26:36 -0400 (EDT)
Mime-Version: 1.0 (Apple Message framework v1082)
Content-Type: multipart/alternative; boundary="Apple-Mail-12--216150443"
From: Gonzalo Salgueiro <gsalguei@cisco.com>
In-Reply-To: <AANLkTi=vBdqoxuRRdSQp6TvaAVfYwEEbiNk3kH6JC2tW@mail.gmail.com>
Date: Tue, 15 Mar 2011 14:26:36 -0400
Message-Id: <8751A616-4A9C-43B5-B7EE-66FA5AD0DA75@cisco.com>
References: <AANLkTi=4NSXhgqAg75EUkWt6K0jdg4Kgcy6B37vyTMit@mail.gmail.com> <75DCC5B8-DB67-42AD-A6F2-F972FCFD5AB3@cisco.com> <AANLkTi=4d+uJ5kVXjiT-8eUzO_-5xWw3Lr23vo5cHiLH@mail.gmail.com> <E7D0A5D2-07B2-40DD-A7C8-2DF9FFC35CB4@cisco.com> <AANLkTi=Cj3urLqDZW9MCzzJGauWMPKgiATGo3_z4sa_z@mail.gmail.com> <BCF3AE7B-DA85-476C-AC61-3383D8D6D6DF@cisco.com> <AANLkTi=vBdqoxuRRdSQp6TvaAVfYwEEbiNk3kH6JC2tW@mail.gmail.com>
To: Anders Nygren <anders.nygren@gmail.com>
X-Mailer: Apple Mail (2.1082)
Cc: "sip-clf@ietf.org Mailing" <sip-clf@ietf.org>
Subject: Re: [sip-clf] Vendor extensions in draft-ietf-sipclf-format-01.txt
X-BeenThere: sip-clf@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: SIP Common Log File format discussion list <sip-clf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/sip-clf>, <mailto:sip-clf-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/sip-clf>
List-Post: <mailto:sip-clf@ietf.org>
List-Help: <mailto:sip-clf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/sip-clf>, <mailto:sip-clf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 15 Mar 2011 18:25:16 -0000

Sounds like we are converging.

On Mar 15, 2011, at 1:40 PM, Anders Nygren wrote:

> On Tue, Mar 15, 2011 at 11:14 AM, Gonzalo Salgueiro <gsalguei@cisco.com> wrote:
>> Anders -
>> This would make good fodder for discussion by the group on the list as well
>> as in Prague.  It would be my preference not to further overload the current
>> Flags field in <IndexPointers> with additional and additional flag with
>> pre-defined, vendor-specified, and both settings.
> 
> The vendor flag I mentioned would not be in the Flags field in <IndexPointers>.
> It would be in the TLV structure. So that PEN=0 would not  need to be used
> to indicate that it is a standard optional parameter.
> 
Do you know of any issues with using PEN=0 in this manner?  I don't. It appears that DIAMETER does it, so I suspect it is fine.

> 
>> I think the most elegant
>> solution is:
>> 
>> 1. The single format you proposed for both Pre-Defined and Vendor-Specific
>> optional fields (where, if allowed, PEN=0 signifies Pre-Defined optional
>> field).
>> 2. Based on group consensus, decide whether (a) we stick with a single
>> pointer is needed in <IndexPointers> to indicate the beginning of the
>> optional fields (i.e. both pre-defined and vendor-specified) or whether (b)
>> there is value in adding an additional pointer added to <IndexPointers>,
>> where one pointer points to the start of the Pre-Defined optional fields and
>> the other points to the start of Vendor-specified fields.
>> Sound reasonable?
> 
> Yes.
> The purpose of the extra pointer was to make parsing simpler in the case where
> there are two different formats for the standard optional parameters and the
> vendor extensions. If they have the same format I see no reason for the extra
> pointer.

OK. So just to confirm, as an implementer, you don't see any added value in specifically being able to identify the beginning of the vendor-specified optional fields (if present)? Knowing the beginning of the combined optional fields is fine (provided they use the same general syntax)?

Regards,

Gonzalo

> 
> /Anders
> 
> 
>> Regards,
>> Gonzalo
>> On Mar 15, 2011, at 12:45 PM, Anders Nygren wrote:
>> 
>> I would like to modify/extend my original proposal with the following
>> two alternatives.
>> 
>> 1, Two TLV pointers.
>> Background:
>> The current draft-01 contains only one TLV pointer, "TLV Start
>> Pointer", that points
>> to the optional parameters block. This block contains both the standard
>> optional
>> parameters and the vendor extensions.
>> 
>> Change:
>> Add a new pointer "Vendor Extensions Pointer". So "TLV Start Pointer" points
>> to
>> the standard optional parameters. And "Vendor Extensions Pointer" points to
>> the vendor extensions block.
>> The contents of the Standard optional parameters have the format
>> proposed in draft-01,
>> and the contents of the Vendor extension block have the format I
>> proposed earlier.
>> 
>> byte 1  0x09
>> byte 2-5 Tag (Hex)
>> byte 6-9 VendorId
>> byte 10 0x2C
>> byte 11-14 Length (Hex)
>> byte 15 0x2C
>> byte 16-.. Value (variable length)
>> 
>> 2, Common format
>> Keep one common format for both standard optional parameters and
>> vendor extensions
>> more in line with diameter, RFC3588, ch 4.1
>> 
>> 0x09                1 byte
>> vendor flag        1 byte     "s" = standard or "v" = vendor
>> Tag (Hex)          4 bytes
>> 0x2C                1 byte
>> Length (Hex)     4 bytes
>> [VendorId          4 bytes]  Only present if vendor flag="v"
>> 0x2C
>> Value (variable length)
>> 
>> /Anders
>> 
>> On Tue, Mar 15, 2011 at 8:55 AM, Gonzalo Salgueiro <gsalguei@cisco.com>
>> wrote:
>> 
>> Anders -
>> 
>> You are absolutely right, I did misunderstand your point the first time
>> 
>> around. I thought you were saying '001' was the Vendor-ID, when in fact you
>> 
>> were saying that "0001,FFFF,@<PEN>" is the Vendor-ID. Since the name in
>> 
>> front of the '@' is only restricted in the following way:
>> 
>> - MUST be printable US-ASCII strings
>> 
>> - MUST NOT contain an at-sign ('@', ABNF %d64), an equal-sign ('=', ABNF
>> 
>> %d61), a closing brace (']', ABNF %d93), a quote-character ('"', ABNF %d34),
>> 
>> whitespace, or control characters.
>> 
>> it indeed means your example is a valid Vendor-ID and could cause confusion.
>> 
>> While this would be very unlikely to happen in practice [I can't imagine an
>> 
>> implementer intentionally doing this], it is undesired. I think this fact
>> 
>> makes your original proposal that much more elegant than the existing one.
>> 
>> Regards,
>> 
>> Gonzalo
>> 
>> On Mar 15, 2011, at 10:38 AM, Anders Nygren wrote:
>> 
>> On Tue, Mar 15, 2011 at 12:19 AM, Gonzalo Salgueiro <gsalguei@cisco.com>
>> 
>> wrote:
>> 
>> Thanks for raising your concerns Anders.
>> 
>> As you know, this draft was just published today and its principal intent
>> 
>> was to formulate an initial solution for SIP CLF extensibility.
>> 
>> A little history:
>> 
>> The current proposal for Vendor-specific extensions using a Syslog-like
>> 
>> approach (i.e. name@<private enterprise number>) was something proposed over
>> 
>> email and decided at the last SIPCLF Interim meeting in January. So this
>> 
>> really is a first pass at implementing vendor-specificied optional fields.
>> 
>> That said, I'll comment inline to your points
>> 
>> On Mar 14, 2011, at 10:53 PM, Anders Nygren wrote:
>> 
>> Hi
>> 
>> I must say that I really dislike the proposed format for vendor specific
>> 
>> fields.
>> 
>> Having a variable length "tag" before the length field means that it
>> 
>> is necessary
>> 
>> to scan the tag looking for the ',' just to find the length field.
>> 
>> You make a valid point. I'd like others to weigh in here and comment on
>> 
>> whether they think this is a serious performance limitation. I'll propose
>> 
>> this as a discussion point for the upcoming meeting in Prague. The reason
>> 
>> for the variable length tag is that it is based on the SD-ID format from
>> 
>> Syslog, which is variable in length (i.e. the unrestricted name before the
>> 
>> '@').  I think using a Vendor-ID based on a PEN is common sense, so I'd like
>> 
>> to stick with that if possible. We could decide on a fixed length name (or
>> 
>> number to parallel the tag from the Pre-Defined Optional Fields) followed by
>> 
>> four byte PEN.
>> 
>> There is no simple way to tell he difference between a sip-clf
>> 
>> optional field and
>> 
>> a vendor specific optional field. So it will always be necessary to scan the
>> 
>> record looking for the ',' .
>> 
>> Actually looking at RFC 5424 ch 4.3.2 it looks like this would be a legal
>> 
>> ID, "0001,FFFF,@12345" which would be difficult to differentiate from a
>> 
>> standard optional field without a lot of work.
>> 
>> Remember that that this draft restricts the scope of the syntax to the 2nd
>> 
>> format definition of SD-IDs in RFC5424. Thus, the above wouldn't be a legal
>> 
>> vendor-specified optional field since "0001" doesn't contain an '@', which
>> 
>> is mandatory for a Vendor-ID as defined in the draft. So there should be no
>> 
>> confusion there as the Vendor-ID from the vendor-specified optional fields
>> 
>> and the Tag from the pre-defined optional fields can never be the same.
>> 
>> 
>> I think that You did not understand the point I was trying to make.
>> 
>> As I understand the specification in the 2nd format definition of SD-IDs in
>> 
>> RFC5424, comma "," is allowed in the name part. So
>> 
>> "0001,FFFF,@<Vendor-ID>" would be a legal tag, that would be very difficult
>> 
>> to
>> 
>> differentiate from a standard optional field with tag="0001", length="FFFF"
>> 
>> and
>> 
>> a value starting with "@<Vendor-ID>"
>> 
>> I think a better way to do this would be similar to diameter RFC3588, ch
>> 
>> 4.1.
>> 
>> Then we could have just one format for standard optional fields and vendor
>> 
>> specific fields
>> 
>> byte 1  0x09
>> 
>> byte 2-5 Tag (Hex)
>> 
>> byte 6-9 VendorId
>> 
>> byte 10 0x2C
>> 
>> byte 11-14 Length (Hex)
>> 
>> byte 15 0x2C
>> 
>> byte 16-.. Value (variable length)
>> 
>> Where VendorId is the IANA assigned "SMI Network Management Private
>> 
>> Enterprise Codes"  [ASSIGNNO] value.
>> 
>> VendorId=0 is used a for the standard optional fields defined in SIP-CLF.
>> 
>> I know that PEN = 0 is a Reserved value and if it is confirmed that it can
>> 
>> be used in this way (as apparently DIAMETER did), then I think this proposal
>> 
>> is very reasonable. This unifies both optional field types into a single
>> 
>> seamless representation. I'll let others, like Chris Lonvick, more
>> 
>> knowledgeable than I weigh in on this as well to confirm my thoughts.
>> 
>> Regards,
>> 
>> Gonzalo
>> 
>> /Anders
>> 
>> _______________________________________________
>> 
>> sip-clf mailing list
>> 
>> sip-clf@ietf.org
>> 
>> https://www.ietf.org/mailman/listinfo/sip-clf
>> 
>> 
>> 
>> 
>> 
>>