Subject: [BEHAVE] TURN Issue #7: Framing header length

From: Jonathan Rosenberg <[email-masked]>
Date: Fri, 07 Dec 2007 18:11:43 -0500

This was not in my slides. It was raised at the mike at the WG session, 
discussed briefly at the WG meeting and again briefly at the end of the 
ad-hoc.

The current TURN framing header looks like:

         0                   1                   2                   3
         0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        |        Channel                |         Message Length        |
        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

When TURN is running over UDP, the length header is redundant. The 
current spec says to set it to zero. The issue was raised that, it would 
be better to set it to to be the correct length, rather than zero. The 
drawback of setting it to the correct length, is it introduces an error 
condition. What happens if it doesn't match the actual UDP length? Do we 
truncate (assuming the actual UDP packet size is larger than the TURN 
header message length)? Or just discard?

The point raised at the ad-hoc later, was that even if you set it to 
zero, you still have the error condition, what if its not zero. It was 
also pointed out, by setting the length we get the framing header 
consistent between UDP and TCP.

So there was rough agreement at the ad-hoc, to change turn so that the 
message length is the actual message length, even over UDP. If it 
mismatches the actual UDP message length, then the packet MUST be 
discarded in error.

Please comment as to whether you agree (or disagree) with this conclusion.

Thanks,
Jonathan R.
-- 
Jonathan D. Rosenberg, Ph.D.                   499 Thornall St.
Cisco Fellow                                   Edison, NJ 08837
Cisco, Voice Technology Group
[email-masked]
http://www.jdrosen.net                         PHONE: (408) 902-3084
http://www.cisco.com

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

---

From: Rémi Denis-Courmont <[email-masked]>
Date: Mon, 10 Dec 2007 12:35:07 +0200

Le Saturday 08 December 2007 01:11:43 ext Jonathan Rosenberg, vous avez 
> Please comment as to whether you agree (or disagree) with this conclusion.

I'd rather have the correct length all the time. I suspect the extra 
three-liner error case will add less code than the UDP/TCP factorization will 
add. In any case, the amount of programming involved is infinitesimal to a 
full TURN implementation.

I note that if we change the framing as per issue #6, issue #7 becomes 
irrelevant :)

-- 
Rémi Denis-Courmont

---

From: Jonathan Rosenberg <[email-masked]>
Date: Mon, 10 Dec 2007 09:58:09 -0500

inline:

> I note that if we change the framing as per issue #6, issue #7 becomes 

Its irrelevant for TURN messages but still an issue for application data.

-Jonathan R.

---

From: Eric Rescorla <[email-masked]>
Date: Mon, 10 Dec 2007 19:42:15 -0800

At Fri, 07 Dec 2007 18:11:43 -0500,
> The current TURN framing header looks like:

I agree with this conclusion.

-Ekr