Subject: Re: [AAA-WG]: Use of the D-Bit clarification (proposed text to AnnexC etc.)

From: <[email-masked]>
Date: Thu, 17 Oct 2002 10:39:05 +0300

Hi Bernard (et all),

I have attempted a text proposal based on Bernard polishing of the
issue 372, to address all the comments done so far.
(only the modified text is included in this mail)

Bernard do you feel confortable with this proposal?

In the text the flag letter is still "D", if your preference is T flag I guess
John can change the letter in the final text.

Jari, Glen and Ohba could you check if the text is covering all your
comments?

Best Regards
Marco

I guess a better description of the flag is probably needed in Chapter 3.

" (Possible) D(uplicate)
                     - This flag is defined only for requests messages
                       sent by a Diameter client or agents.
                       If set, the message is a possible duplicate and
                       a recipient node MAY later check if it really is a 
	                 duplicate. 
	                 If sending a message for first time, this flag MUST be
                       cleared.
                       It can be used only in cases where no answer has been 
	                 got from the Server for a message and the message is
                       sent again (e.g. due to a failover to an
                       alternate agent, due to a recovered primary peer
                       node or due to a client re-sendind a stored record).
	                 This flag MUST NOT be set if an error answer message
                       (about e.g. a protocol error) has been got for an earlier 
                       similar message. It can be used only in cases where no 
                       answer has been got from the Server for a message 
                       and the message is sent again (e.g. due to a failover to an
                       alternate agent, due to a recovered primary peer
                       node or due to a client re-sendind a stored record).
                       This flag MUST NOT be set in answer messages."

Thi is the proposal for ANNEX C, I think is indicative, generic and doesn't 
mandate anything at all to Diameter Server.

"The following is an indicative example of how the D flag may be used by the server to 
detect duplicate requests. Implementers are advised, however, that configuration 
errors in the network or software errors cannot be detected solely by using 
the D-flag.
 
A Diameter server MAY check the D flag of the received message to determine
if the request is a possible duplicate. If the "D" flag is set in the request
message, the server searches for a duplicate within a (configurable) duplication time
window backward and forward. This limits database searching to those records where 
the "D" flag is set.  In a well run network, network partitions and device faults will presumably
be rare events, so this approach represents a substantial optimization of the duplicate detection
process. During failover, it is possible for the original record to be received after the "D" flag marked 
record, due to differences in network delays experienced along the path by the original and 
duplicate transmission. The likelihood of this occurring increases as the failover interval is decreased. 
In order to detect with relative assurance the out of order duplicate record,  the Diameter server SHOULD use
backward and forward time windows when performing duplicate cheching for the "D" flag marked request.
The forward time window SHOULD be at least a time period of approximately TIME_WAIT.