Subject: [BEHAVE] draft-ietf-behave-turn-07 submitted

From: Philip Matthews <[email-masked]>
Date: Mon, 25 Feb 2008 11:24:40 -0500

Folks:

I have just submitted the -07 version of TURN to the repository.

Much of the draft has been rewritten since the -06 version. All the  
changes that we have agreed on since the -06 version have been  
implemented. In addition, for the minor issues that we never  
discussed, I simply selected what I thought was the best solution. I  
also discovered some minor things as I was writing and changed the  
text to fix them. Finally, a number of sections were rewritten simply  
to try to improve the presentation.

There are three open issues left in the document. They are listed in  
section 20. By far the biggest is what to do about the BANDWIDTH  
attribute. We have agreed to leave this in, but more clarification on  
what I means is still required. I did not have time to research this,  
so I simply put a placeholder proposal into the document. This was  
mostly to allow people who wanted to to implement something, rather  
than being a serious proposal. I plan to research a more serious  
proposal soon, so we can discuss it at Philly.

- Philip

19.1.  Changes from -06 to -07

    o  Rewrote the General Behavior section, making various changes in
       the process.

    o  Changed the usage of authentication from MUST to SHOULD.

    o  Changed the requirement that subsequent requests use the same
       username and password from MUST to SHOULD to allow for the
       possibility of changing the credentials using some unspecified
       mechanism.

    o  Introduced a 438 (Wrong Credentials) error which is used when a
       non-Allocate request authenticates but does not use the same
       username and password as the Allocate request.  Having a separate
       error code for this case avoids the client being confused over
       what the error actually is.

    o  The server must now prevent the relayed transport address and the
       5-tuple from being reused in different allocations for 2 minutes
       after the allocation expires.

    o  Changed the usage of FINGERPRINT from MUST NOT to MAY, to allow
       for the possible multiplexing of TURN with some other protocol.

    o  Rewrote much of the section on Allocations, splitting it into
       three new sections (one on allocations in general, one on  
creating
       an allocation, and one on refreshing an allocation).

    o  Replaced the mechanism for requesting relayed transport addresses
       with specific properties.  The new mechanism is less powerful: a
       client can request an even port, or a pair of ports, but cannot
       request a single odd port or a specific port as was possible  
under
       the old mechanism.  Nor can the client request a specific IP
       address.

    o  Changed the rules for handling ALTERNATE-SERVER, removing the
       requirement that the referring server have "positive knowledge"
       about the state of the alternate server.  The new rules instead
       rely on text in STUN to prevent referral loops.

    o  Changed the rules for allocation lifetimes.  Allocations  
lifetimes
       are now a minimum of 10 minutes; the client can ask for longer
       values, but requests for shorter values are ignored.  The text  
now
       recommends that the client refresh an allocation one minute  
before

Rosenberg, et al.        Expires August 28, 2008               [Page 41]
Internet-Draft                    TURN                     February 2008

       it expires.

    o  Put in temporary procedures for handling the BANDWIDTH attribute,
       modelled on the LIFETIME attribute.  These procedures are mostly
       placeholders and likely to change in the next revision.

    o  Added a detailed description of how a client reacts to the  
various
       errors it can receive in reply to an Allocate request.  This
       replaces the various descriptions that were previously scattered
       throughout the document, which were inconsistent and sometimes
       contradictory.

    o  Added a new section that gives the normative rules for
       permissions.

    o  Changed the rules around permission lifetimes.  The text used to
       recommend a value of one minute; it MUST now be 5 minutes.

    o  Removed the errors "Channel Missing or Invalid", "Peer Address
       Missing or Invalid" and "Lifetime Malformed or Invalid" and used
       400 "Bad Request" instead.

    o  Rewrote portions of the section on Send and Data indications and
       the section on Channels to try to make the client vs. server
       behavior clearer.

    o  Channel bindings now expire after 10 minutes, and must be
       refreshed to keep them alive.

    o  Binding a channel now installs or refreshes a permission for the
       IP address of corresponding peer.

    o  Changed the wording describing the situation when the client  
sends
       a ChannelData message before receiving the ChannelBind success
       response. -06 said that client SHOULD NOT do this; -07 now says
       that a client MAY, but describes the consequences of doing it.

    o  Added a section discussing the setting of fields in the IP  
header.

    o  Replaced the REQUESTED-PORT-PROPS attribute with the REQUESTED-
       PROPS attribute that has a different format and semantics, but
       reuses the same code point.

    o  Replaced the REQUESTED-IP attribute with the RESERVATION-TOKEN
       attribute, which has a different format and semantics, but reuses
       the same code point.

Rosenberg, et al.        Expires August 28, 2008               [Page 42]
Internet-Draft                    TURN                     February 2008

    o  Removed error codes 443 and 444, and replaced them with 508
       (Insufficient Port Capacity).  Also changed the error text for
       code 507 from "Insufficient Capacity" to "Insufficient Bandwidth
       Capacity".

_______________________________________________
Behave mailing list
[email-masked]
http://www.ietf.org/mailman/listinfo/behave