Subject: [Tsvwg] [resend] sctpsocket-17 comments

From: Vlad Yasevich <[email-masked]>
Date: Mon, 21 Jul 2008 10:53:54 -0400

[... fixed Randy's email.  resending, sorry for dups... ]

Hi Michael, Randy

> 6.3.1.11. SCTP_AUTHENTICATION_FREE_KEY_EVENT	
> 				
> 	When SCTP-AUTH wik not use a key identifier for sending packets	
> 	anymore, this notification is provided by the kernel to the user.

s/wik/will

Also, shouldn't this event be generated when the key is actually removed
from the list of keys the kernel knows about, and not when the key deactivated?
(this is jumping ahead as I have questions about deactivation)

> 8.1.21. Get or set the active shared key (SCTP_AUTH_ACTIVE_KEY)	
...
> 	When used with setsockopt() the SCTP implementation MUST use the	
> 	indicated shared key identifier for all messages being sent after	
> 	the setsockopt() call until changed again. Therefore the SCTP	
> 	implementation MUST NOT bundle user messages which should be	
> 	authenticated using different shared key identifiers.

Hmm..  so someone can now do:
	setsockopt(...) /* key 1 */
	sendmsg(...)
	setsockopt(...) /* key 2 */
	sendmsg(...)

The two can't be bundled, even if Nagle is turned on or something needs to
be retransmitted?

Also, if there were control chunks that needed authentication, they can't be
bundled if the key changes?

Seems like almost a protocol operation change to me.

If that is the case, this is now really begging for an ability to specify
key ID as ancillary data to sctp_sendmsg().

> 8.1.23. Delete a shared key (SCTP_AUTH_DEACTIVATE_KEY)

s/Delete/Deactivate/

>  This set option indicates that the application will not send user	
>  messages anymore requiring the usage of the indicated key identifier.	

What about receiving messages?

Also, what about any pending messages already queued?  My guess is that those
should still be sent using the deactivated given key?

Should the key be allowed to be deleted (after deactivation) before all the messages
using it are sent?  My guess is no.

However, if the key can/should be deleted, should SEND_FAILED be returned?

-vlad