It seems like there's more motivating draft-polk-sip-rph-in- responses-00 than just the need to prioritize access to scarce gateway resources. A lot of the people I've talked to are thinking that it is also useful for prioritizing message processing in congested proxies or other SIP nodes (like B2BUAs, call center queues, whatever).

It has even been suggested that the RPH value might be used by a congested node for selective discard of responses, which has some interesting impacts on the overload queueing model.

An unstated goal here is that even if proxy-like resources are operating at a totally saturated level they MUST still be able to process messages with a high RPH value, even if it means totally disrupting lower-priority traffic and creating cascade collapse and link saturation with message retransmissions. It seems to me that this would require very careful collaboration with a diffserv layer to make work, but that's just one of the open questions.

The other open questions I think I see are a) how to allow a priority determination to be made by a node on the "response" side of the loop, and b) how to deal with authentication and authorization for priority levels requested in a response. This raises a couple of state-management questions, and two big thorny architectural questions.

The state bits are easy, I think -- Having learned of a priority established "somewhere along the line", each statefully participating SIP node must continue to add an equivalent priority header in future messages. Unless of course the node has reason to be changing the priority level, which of course raises all sorts of questions about who is allowed to change a value, how we can tell it has been changed, whether or not we decide to honor the change, and so on.

The more fundamental architectural questions are 1) How do we change anything in a response that can't be challenged, and 2) how do we authenticate changes introduced by non-terminal nodes?

The first problem we've traditionally addressed by a reverse- direction request, as noted by John Elwell. That might work here.

The second problem is a much bigger mess, one that we've categorized as "middle-to-middle" and/or "middle-to-end". This is a big open problem in the SIP space, one that we don't even have a charter item to address. We bogged down on the simpler end-to-middle problem, which we managed to document as a more-or-less experimental document pending better understanding of the problem.

Consequently, I think we're asking RPH to do a lot of things for us that it really can't do in the general case.

The only solution that comes to mind is to simplify the problem scope. Perhaps if we started from a really concise statement of what we can reasonably do with a mechanism like RPH, we'd make more headway in understanding the problem.

A short list to work from:

1) RPH can only be set by a request-originating UA. Consequently, any intermediary node that is changing RPH MUST be a B2BUA.

2) Like other dialog attributes, changes of RPH require modification of the dialog via UPDATE or reINVITE.

These two constraints are driven by the request-authentication model and the like of m2m authentication in SIP.

Given these constraints, can we meed the needs of the community? Now the "how they want things to work" needs, but the real required functionality for prioritization?

Do we need to add RPH negotiation to the session-policy mechanism?

--
Dean



_______________________________________________
Sip mailing list  https://www1.ietf.org/mailman/listinfo/sip
This list is for NEW development of the core SIP Protocol
Use [EMAIL PROTECTED] for questions on current sip
Use [EMAIL PROTECTED] for new developments on the application of sip

Reply via email to