Re: [sipcore] FW: I-D Action:draft-jones-sip-options-ping-00.txt

Paul Kyzivat <pkyzivat@cisco.com> Thu, 29 April 2010 14:05 UTC

Return-Path: <pkyzivat@cisco.com>
X-Original-To: sipcore@core3.amsl.com
Delivered-To: sipcore@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 48EFA28C28F for <sipcore@core3.amsl.com>; Thu, 29 Apr 2010 07:05:56 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -10.357
X-Spam-Level:
X-Spam-Status: No, score=-10.357 tagged_above=-999 required=5 tests=[AWL=0.242, BAYES_00=-2.599, 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 7E4twAsMJKpp for <sipcore@core3.amsl.com>; Thu, 29 Apr 2010 07:05:52 -0700 (PDT)
Received: from rtp-iport-1.cisco.com (rtp-iport-1.cisco.com [64.102.122.148]) by core3.amsl.com (Postfix) with ESMTP id EAD943A6BD7 for <sipcore@ietf.org>; Thu, 29 Apr 2010 07:00:32 -0700 (PDT)
Authentication-Results: rtp-iport-1.cisco.com; dkim=neutral (message not signed) header.i=none
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: AvsEADYu2UtAZnwM/2dsb2JhbACdDXGkNZoGhRAE
X-IronPort-AV: E=Sophos;i="4.52,295,1270425600"; d="scan'208";a="106310117"
Received: from rtp-core-1.cisco.com ([64.102.124.12]) by rtp-iport-1.cisco.com with ESMTP; 29 Apr 2010 14:00:19 +0000
Received: from [161.44.174.156] (dhcp-161-44-174-156.cisco.com [161.44.174.156]) by rtp-core-1.cisco.com (8.13.8/8.14.3) with ESMTP id o3TE0J3M007575; Thu, 29 Apr 2010 14:00:19 GMT
Message-ID: <4BD990F3.8020909@cisco.com>
Date: Thu, 29 Apr 2010 10:00:19 -0400
From: Paul Kyzivat <pkyzivat@cisco.com>
User-Agent: Thunderbird 2.0.0.24 (Windows/20100228)
MIME-Version: 1.0
To: "Paul E. Jones" <paulej@packetizer.com>
References: <aqw0yhx7u936e9xuwleac6av.1272063656876@email.android.com> <4BD58D45.3000709@cisco.com> <004f01cae641$4e690a90$eb3b1fb0$@com> <4BD73FE1.7050105@cisco.com> <005b01cae646$9892b0d0$c9b81270$@com> <4BD76496.50905@cisco.com> <005301cae68b$8f7d8110$ae788330$@com> <1BDEDBAC-7959-4767-85EA-BCF3E9D6C746@softarmor.com> <00da01cae72e$4f5590c0$ee00b240$@com> <8748ED98-3A25-4E30-B9D7-FE0C08ECA33B@softarmor.com> <010901cae73a$766dfec0$6349fc40$@com> <4BD8F0E7.1070000@cisco.com> <011601cae747$5013a740$f03af5c0$@com>
In-Reply-To: <011601cae747$5013a740$f03af5c0$@com>
Content-Type: text/plain; charset="ISO-8859-1"; format="flowed"
Content-Transfer-Encoding: 7bit
Cc: 'Michael Miller' <mlm.michael.miller@gmail.com>, sipcore@ietf.org, 'Hadriel Kaplan' <HKaplan@acmepacket.com>
Subject: Re: [sipcore] FW: I-D Action:draft-jones-sip-options-ping-00.txt
X-BeenThere: sipcore@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: SIP Core Working Group <sipcore.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/sipcore>, <mailto:sipcore-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/sipcore>
List-Post: <mailto:sipcore@ietf.org>
List-Help: <mailto:sipcore-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/sipcore>, <mailto:sipcore-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 29 Apr 2010 14:05:56 -0000

Paul J,

I see two alternatives here, but you seem to be straddling them.

1) you can leave the behavior of OPTIONS alone.
    Document a set of practices for how a UAC can use
    OPTIONS to accomplish a ping. In this case, the
    UAS never knows whether an OPTIONS it receives
    is intended as a capability query or a ping.

    + this is relatively quick to accomplish because
      it doesn't require standards action

    + this is relatively quick to deploy, because
      only the UACs that want to ping need be updated.

    - the benefit is limited because you are stuck
      with the way OPTIONS currently works, and with
      the variations in behavior that it allows.

    - pinging this way may be more costly than
      necessary because of the extra work of applying
      policy, including capabilities, and the extra
      size of the message to carry the capabilities

2) define new standardized behavior for pinging,
    with roles for both the UAC and UAS, that is
    different from what OPTIONS does today.

    + the behavior is not constrained by the existing
      definition of OPTIONS. It can be defined
      precisely for the purpose.

    + the implementation can be optimized.
      the server can "fast path" it, and policy
      application can be simplified because little
      is disclosed.

    - it will take longer to get specified because it
      must be standards track. (Note that this will be
      pretty much the same regardless of whether it is
      defined as new optional behavior of OPTIONS, or
      as a new method.)

    - it will take longer to deploy because both
      UAC and UAS must support it.

I guess there is a possible variant on (1):
also do a *clarification* of OPTIONS behavior in cases where there is 
some ambiguity about what response code should be returned in particular 
circumstances. I would be ok with that *if* the clarification applied to 
all uses of OPTIONS. But once you start to do that you start to pick up 
the negatives of (2).

It would also be possible to do a combination of (1) and (2), where (2) 
is preferred if both UAS supports it, with fallback to (1) for those 
that don't.

What I don't see is a way to avoid standards action and yet define 
special optional behavior by the UAS that the UAC can request and know 
was provided. This seems to be what you are seeking.

	Thanks,
	Paul K

Paul E. Jones wrote:
> Paul,
> 
> I don't see it quite the same way.  I don't want to entirely change OPTIONS,
> but I do want to define procedures that devices should follow if they
> implement an OPTIONS "ping" procedure.  This is achieved with a new header
> or targeting a specific address.  It also means that devices that do not
> implement the resulting RFC will still function as they do today.
> 
> If we go the route of introducing a whole new method, it would be years
> before it gets introduced into the market.  We still need to keep the
> OPTIONS "ping" around, because that's what virtually everybody is doing.
> 
> The only thing we proposed in the initial draft was some consistency with
> respect to the way responses were given, etc.  We're not calling for drastic
> changes in the behavior of OPTIONS.  In fact, if a device wanted to return a
> complete response with all of the features it supports, that'd be fine with
> me.  When used as a "ping", it's primarily the response code the peer is
> looking for.  The only negative side effect is a bit more bandwidth on the
> wire, which is likely inconsequential as compared to everything else.
> 
> Paul
> 
>> -----Original Message-----
>> From: Paul Kyzivat [mailto:pkyzivat@cisco.com]
>> Sent: Wednesday, April 28, 2010 10:37 PM
>> To: Paul E. Jones
>> Cc: 'Dean Willis'; 'Michael Miller'; sipcore@ietf.org; 'Hadriel Kaplan'
>> Subject: Re: [sipcore] FW: I-D Action:draft-jones-sip-options-ping-
>> 00.txt
>>
>> Now that we have established the goal is devising some options/headers
>> to entirely change the behavior of OPTIONS, I would rather see a new
>> method: PING. Given the assumptions being made I can see few if any
>> downsides to this, and definite upsides.
>>
>> IMO the value of using OPTIONS for ping is in those cases where the
>> device being pinged doesn't know that it is being pinged.
>>
>> 	Thanks,
>> 	Paul
>>
>> Paul E. Jones wrote:
>>> Dean,
>>>
>>>> So for example, a new header field "Options-mode" with a value of
>>>> "ping" means "If you support this extension, do not proxy this
>>>> request, just send an immediate 200 OK response  and do not bother
>>>> populating the Supported header field of the 200 OK response."
>>>> Somebody who didn't recognize the header field would just send a
>>>> conventional 200 OK response.
>>> Not objecting to the header, but I think we would have failed in our
>> effort
>>> if the message might possibly be proxied.  The intent was for this to
>> be
>>> peer-to-peer.
>>>
>>>> And perhaps an option tag of "optionsmodeping". That way we can add
>>>> further options-modes, and option tags for them in the future as
>> (and
>>>> if) needed.
>>> So, you want a head like this:
>>>
>>>   Options-Mode: ping
>>>
>>> Or this:
>>>
>>>   Require: optionsmodeping
>>>
>>>> You could basically cut-and-paste the answer-mode draft and be done
>>>> writing in an hour.
>>> Oh, I'll be happy to plagiarize your work ... but not sure exactly
>> what you
>>> want me to copy :-)
>>>
>>> Paul
>>>
>>>
>>>
> 
> 
>