Subject: RE: [AAA-WG]: Request for closure on issue 235

From: <[email-masked]>
Date: Mon, 25 Feb 2002 13:38:17 +0200

Hi all,

Issue 235 requested the following change, as a performance enhancement 
w.r.t the process of checking for duplicate records. While other mechanisms 
such as post-processing and brute force (check every record against every
other record) are possible, having the "D" bit would make the nodes
that process these records only check for those records that are
marked as potential duplicates. So the "D" bit can be treated as an
optional mechanism for implementations that would prefer to do
duplicate checking based on this flag.

Several folks have checked this and believe that this would work.
So, unless there are any remaining objections, I am going to accept
this change & modify the base accordingly.

br,
John

Requested change: 
=================
In section 3.0  Diameter Header

...

      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |R P E r r r r r|                  Command-Code                 |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

would be:

      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |R P E D r r r r|                  Command-Code                 |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

and

         E(rror)     - If set, the message contains a protocol error,
                       and the message will not conform to the ABNF
                       described for this command.  Messages with the
                       'E' bit set is commonly referred to as an error
                       message. This bit MUST NOT be set in request
                       messages. See section 7.2.
         r(eserved)  - these flag bits are reserved for future use, and
                       MUST be set to zero, otherwise an error MUST be
                       sent to the sender.

would get one new flag bit 'D':

         E(rror)     - If set, the message contains a protocol error,
                       and the message will not conform to the ABNF
                       described for this command.  Messages with the
                       'E' bit set is commonly referred to as an error
                       message. This bit MUST NOT be set in request
                       messages. See section 7.2.
         (possibly) D(uplicated)
                     - This bit is defined only for Accounting Requests,
                       sent by a Diameter node or proxy.
                       If set, the message is possibly a duplicate,
                       and must be later checked by a recipient node
                       if it really is a duplicate. If sending a
                       message for first time, this bit MUST be
                       cleared.
                       This bit MUST NOT be set if an 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
                       primary agent for a message and the message is
                       sent again (e.g. due to a failover, to an
                       alternate agent or to a recovered primary peer
                       node).
         r(eserved)  - these flag bits are reserved for future use, and
                       MUST be set to zero, otherwise an error MUST be
                       sent to the sender.

and in section 9.4  Fault Resilience
====================================
   ...
   Diameter peers acting as clients MUST implement the use of failover
   to guard against server failures and certain network failures.
   Diameter peers acting as agents or related off-line processing
   systems MUST detect duplicate accounting records caused by the
   sending of same record to several servers and duplication 
   of messages in transit. This detection MUST be based on the
   inspection of the Session-Id and Accounting-Record-Number AVP pairs.

the above paragraph would get one sentence to its end:

   The inspection MUST be performed at least for such records
   that arrived at the Diameter peer specifically in accounting
   messages which have the 'D' bit set.

---

From: Johan Johansson <[email-masked]>
Date: Mon, 25 Feb 2002 14:03:17 +0100

Just one question: why is it limited to accounting messages? As far as I 
can tell the bit means "resent" and I can't instantly think of why it 
wouldn't be just as good for non-accounting requests.

j