Subject: [Dime] Diameter Load value and SRV

From: Steve Donovan <[email-masked]>
Date: Thu, 10 Mar 2016 18:12:59 -0600

All,

The current version of the Diameter Load draft says that the load value 
should be consistent with the use of DNS SRV.  It then has an editor's 
note indicating that we need more detail.

The following is my proposal for that additional detail.

The relevant section from RFC 2782 (DNS SRV) is the description of the 
Priority and Weight parameters in the SRV RR copied below.  It is mostly 
based on the Weight section but I included Priority because it is 
referenced in the Weight section.

My proposal is that the Load value communicated in a Diameter Load 
report be used to dynamically update the Weight value for an entries in 
the Routing table and in the Peer table.  Note that the load mechanism 
does not give a way to change the priority value.  That would still 
either come as a result of a DNS SRV query or through statically 
configuring a Diameter node.

If this is the case, then the load value would be in the range of 0-65535.

The distribution algorithm below results in more messages being sent to 
a node with a higher weight value.  As a result, a higher Diameter load 
value would indicate a LOWER load on the sending node.  A node that is 
heavily loaded would send a lower load value. Stated another way, a node 
that has zero load would have a load value of 65535.  A node that is 
100% loaded would have a load value of 0.

The algorithm below would be a suggestion for how Diameter nodes would 
use the load information but the actual method for using the load 
information would be an implementation decision.

The algorithm would be used in two places.  First,  Diameter nodes doing 
the server selection would use the load information to select from a set 
of candidate servers for a request.  It would also be used for selecting 
the next hop from a set of candidate peer nodes.

If there is consensus on this general approach then I will add the 
appropriate overview and normative requirements in the next version of 
the Load draft.  I am planning to submit that draft prior to the IETF 95 
deadline.

Regards,

Steve

-----

    Priority
         The priority of this target host.  A client MUST attempt to
         contact the target host with the lowest-numbered priority it can
         reach; target hosts with the same priority SHOULD be tried in an
         order defined by the weight field.  The range is 0-65535.  This
         is a 16 bit unsigned integer in network byte order.

    Weight
         A server selection mechanism.  The weight field specifies a
         relative weight for entries with the same priority. Larger
         weights SHOULD be given a proportionately higher probability of
         being selected. The range of this number is 0-65535.  This is a
         16 bit unsigned integer in network byte order.  Domain
         administrators SHOULD use Weight 0 when there isn't any server
         selection to do, to make the RR easier to read for humans (less
         noisy).  In the presence of records containing weights greater
         than 0, records with weight 0 should have a very small chance of
         being selected.

         In the absence of a protocol whose specification calls for the
         use of other weighting information, a client arranges the SRV
         RRs of the same Priority in the order in which target hosts,
         specified by the SRV RRs, will be contacted. The following
         algorithm SHOULD be used to order the SRV RRs of the same
         priority:

         To select a target to be contacted next, arrange all SRV RRs
         (that have not been ordered yet) in any order, except that all
         those with weight 0 are placed at the beginning of the list.

         Compute the sum of the weights of those RRs, and with each RR
         associate the running sum in the selected order. Then choose a
         uniform random number between 0 and the sum computed
         (inclusive), and select the RR whose running sum value is the
         first in the selected order which is greater than or equal to
         the random number selected. The target host specified in the
         selected SRV RR is the next one to be contacted by the client.
         Remove this SRV RR from the set of the unordered SRV RRs and
         apply the described algorithm to the unordered SRV RRs to select
         the next target host.  Continue the ordering process until there
         are no unordered SRV RRs.  This process is repeated for each
         Priority.

---

From: <[email-masked]>
Date: Fri, 11 Mar 2016 16:09:04 +0000

Hi Steve,

I'm fine with this approach.

Thank you.

regards,

Lionel

De : DiME [mailto:[email-masked]] De la part de Steve Donovan
Envoyé : vendredi 11 mars 2016 01:13
À : [email-masked]
Objet : [Dime] Diameter Load value and SRV

All,

The current version of the Diameter Load draft says that the load value should be consistent with the use of DNS SRV.  It then has an editor's note indicating that we need more detail.

The relevant section from RFC 2782 (DNS SRV) is the description of the Priority and Weight parameters in the SRV RR copied below.  It is mostly based on the Weight section but I included Priority because it is referenced in the Weight section.

My proposal is that the Load value communicated in a Diameter Load report be used to dynamically update the Weight value for an entries in the Routing table and in the Peer table.  Note that the load mechanism does not give a way to change the priority value.  That would still either come as a result of a DNS SRV query or through statically configuring a Diameter node.

The distribution algorithm below results in more messages being sent to a node with a higher weight value.  As a result, a higher Diameter load value would indicate a LOWER load on the sending node.  A node that is heavily loaded would send a lower load value.  Stated another way, a node that has zero load would have a load value of 65535.  A node that is 100% loaded would have a load value of 0.

The algorithm below would be a suggestion for how Diameter nodes would use the load information but the actual method for using the load information would be an implementation decision.

The algorithm would be used in two places.  First,  Diameter nodes doing the server selection would use the load information to select from a set of candidate servers for a request.  It would also be used for selecting the next hop from a set of candidate peer nodes.

If there is consensus on this general approach then I will add the appropriate overview and normative requirements in the next version of the Load draft.  I am planning to submit that draft prior to the IETF 95 deadline.

Regards,

Steve

-----

   Priority

   Weight

        being selected.

        priority:

        Priority.

_________________________________________________________________________________________________________________________

Ce message et ses pieces jointes peuvent contenir des informations confidentielles ou privilegiees et ne doivent donc
pas etre diffuses, exploites ou copies sans autorisation. Si vous avez recu ce message par erreur, veuillez le signaler
a l'expediteur et le detruire ainsi que les pieces jointes. Les messages electroniques etant susceptibles d'alteration,
Orange decline toute responsabilite si ce message a ete altere, deforme ou falsifie. Merci.

This message and its attachments may contain confidential or privileged information that may be protected by law;
they should not be distributed, used or copied without authorisation.
If you have received this email in error, please notify the sender and delete this message and its attachments.
As emails may be altered, Orange is not liable for messages that have been modified, changed or falsified.
Thank you.

---

From: Steve Donovan <[email-masked]>
Date: Mon, 14 Mar 2016 08:01:22 -0500

JJacques,

All great comments.  I will reflect this in the updated draft.

Regards,

Steve

On 3/14/16 7:53 AM, Trottin, Jean-Jacques (Nokia - FR) wrote:
>
> Hi Steve
>
> Aligning the load value with DNS SRV, (so a low value of the AVP 
> meaning a node closer to be fully utilized)   would also impact the 
> wording of the Load definition in section 2 (Terminology) where
>
> Load
>
> The relative capacity of a Diameter node.  A low value indicates
>
> that the Diameter node is under utilized.  A high value indicated
>
> that the node is closer to being fully utilized.
>
> We have to pay attention to the wording, especially about the word 
> “value”
>
> In the terminology, intent is more to say
>
>       The relative capacity of a Diameter node.  A low “load level” 
> indicates
>
> that the Diameter node is under utilized.  A high “load level” indicates
>
> that the node is closer to being fully utilized
>
> So I would propose  to not use the word “value” in the terminology, 
> but e.g. “level”,  and reserve the word “value” for the AVP
>
> It is also consistent with the use of the “load” word in other places
>
> - definition of Offered load also in section 2 which is high when the 
> traffic is high.
>
> - in section 4.1, where “At any given time that load maybe effectively 
> zero, effectively fully loaded, or somewhere in between”
>
> Then how the value of the Load AVP is encoded where a low value of the 
> AVP  will mean “heavily loaded” is defined in a further section as 
> written in your mail:
>
> As a result, a higher Diameter load value would indicate a LOWER load 
> on the sending node.  A node that is heavily loaded would send a lower 
> load value.
>
> Best regards
>
> JJacques
>
> *De :*DiME [mailto:[email-masked]] *De la part de* 
> [email-masked]
> *Envoyé :* vendredi 11 mars 2016 17:09
> *À :* Steve Donovan; [email-masked]
> *Objet :* Re: [Dime] Diameter Load value and SRV
>
> Hi Steve,
>
> *De :*DiME [mailto:[email-masked]] *De la part de* Steve Donovan
> *Envoyé :* vendredi 11 mars 2016 01:13
> *À :* [email-masked] <mailto:[email-masked]>
> *Objet :* [Dime] Diameter Load value and SRV
>
> All,
>
> The current version of the Diameter Load draft says that the load 
> value should be consistent with the use of DNS SRV.  It then has an 
> editor's note indicating that we need more detail.
>
> Priority and Weight parameters in the SRV RR copied below.  It is 
> mostly based on the Weight section but I included Priority because it 
> is referenced in the Weight section.
>
> report be used to dynamically update the Weight value for an entries 
> in the Routing table and in the Peer table.  Note that the load 
> mechanism does not give a way to change the priority value.  That 
> would still either come as a result of a DNS SRV query or through 
> statically configuring a Diameter node.
>
> The distribution algorithm below results in more messages being sent 
> to a node with a higher weight value.  As a result, a higher Diameter 
> load value would indicate a LOWER load on the sending node.  A node 
> that is heavily loaded would send a lower load value.  Stated another 
> way, a node that has zero load would have a load value of 65535.  A 
> node that is 100% loaded would have a load value of 0.
>
> The algorithm would be used in two places.  First, Diameter nodes 
> doing the server selection would use the load information to select 
> from a set of candidate servers for a request.  It would also be used 
> for selecting the next hop from a set of candidate peer nodes.
>
> the Load draft.  I am planning to submit that draft prior to the IETF 
> 95 deadline.
>
> Regards,
>
> Steve
>
> -----
>
>    Priority
> Ce message et ses pieces jointes peuvent contenir des informations 
> confidentielles ou privilegiees et ne doivent donc
> pas etre diffuses, exploites ou copies sans autorisation. Si vous avez 
> recu ce message par erreur, veuillez le signaler
> a l'expediteur et le detruire ainsi que les pieces jointes. Les 
> messages electroniques etant susceptibles d'alteration,
> This message and its attachments may contain confidential or 
> privileged information that may be protected by law;

---

From: "Trottin, Jean-Jacques (Nokia - FR)" <[email-masked]>
Date: Wed, 16 Mar 2016 11:47:21 +0000

Hi Steve and all

This is also to confirm  that I'm fine with the proposed  approach regarding encoding of the load value.

Best regards

JJacques

De : DiME [mailto:[email-masked]] De la part de [email-masked]
Envoyé : vendredi 11 mars 2016 17:09
À : Steve Donovan; [email-masked]
Objet : Re: [Dime] Diameter Load value and SRV

Hi Steve,

Thank you.

regards,

Lionel

De : DiME [mailto:[email-masked]] De la part de Steve Donovan
Envoyé : vendredi 11 mars 2016 01:13
À : [email-masked]<mailto:[email-masked]>
Objet : [Dime] Diameter Load value and SRV

All,

Regards,

Steve

-----

   Priority

   Weight

        being selected.

        priority:

        Priority.

Thank you.

---

From: "Trottin, Jean-Jacques (Nokia - FR)" <[email-masked]>
Date: Wed, 16 Mar 2016 12:23:24 +0000

Hi Steve and all
This is about this Editor’s Note in draft-ietf-dime-load-01:

      Editor's Note: One area that requires thought is how load

      information is used, if at all, in the presence of an overload

      report from the same Diameter node.  It might be that the load

      information from that Diameter node is ignored for the duration of

      the time that the overload report is in effect.  It might also be

      possible that the load information can aid in the diverting of

      non-abated requests targeted for the overloaded Diameter node.

In the current writing “from the “same” Diameter node”, the word “same”” is a bit misleading as it may be understood how the possible available load information of the overloaded node can be used and I do not well see the aid that load information from the overloaded node can bring, This is the load information from the other nodes which is helpful when diverting .

I propose to, remove this editor’s note and replace it with the possible hereafter writing:

“A reacting node which has received an overload report from a reporting node might ignore the load information received from that Diameter node for the duration of the time that the overload report is in effect. It might take into account the load information received from the other nodes to which it might divert requests targeted for the overloaded Diameter node.”

For your feedback

Best regards
JJacques

---

From: Steve Donovan <[email-masked]>
Date: Wed, 16 Mar 2016 10:15:38 -0500

JJacques,

I had already come up with the following wording to replace the editor's 
note:

         It should be noted that a Diameter node will need to process 
both Load reports and Overload
         reports from the same Diameter node.   The reacting node for 
the Overload
         report always has the responsibility to reduce the amount of 
Diameter traffic sent to the
         overloaded node.  If, or how, the reacting node uses Load 
information to achieve this is
         left as an implementation decision.

I think this does a better job of addressing the editor's note, which is 
about receiving overload and load reports from the same node.  I also 
think that the second sentence of your proposal is not needed, as this 
is normal use of load information, independent of whether there is an 
active overload report.

Regards,

Steve

On 3/14/16 9:41 AM, Trottin, Jean-Jacques (Nokia - FR) wrote:
> About this Editor’s Note
> In the current writing“from the “same” Diameter node”, the word 
> “same”” is a bit misleadingas it may be understood how the possible 
> available load information of the overloaded node can be used and I do 
> not well see the aid that load information from the overloaded node 
> can bring, This is the load information from the other nodes which is 
> helpful when diverting . Possible herafter writing (with suppression 
> of the Editor’s note) :
>
> A reacting node which has received an overload report from a reporting 
> node might ignore the load information received from that Diameter 
> node for the duration of the time that the overload report is in 
> effect. It might take into account the load information received from 
> the other nodes to which it might divert requests targeted for the 
> overloaded Diameter node.
>
> Best regards
>
> JJacques
>

---

From: Steve Donovan <[email-masked]>
Date: Wed, 16 Mar 2016 10:22:01 -0500

JJacques,

I've used your suggested wording in the definition of load.

Steve

---

From: "Trottin, Jean-Jacques (Nokia - FR)" <[email-masked]>
Date: Wed, 16 Mar 2016 15:29:28 +0000

Hi Steve

Yes the Editor’s note  is about receiving overload and load reports from the same node. I  am OK with your new writing.

Best regards

JJacques

De : EXT Steve Donovan [mailto:[email-masked]]
Envoyé : mercredi 16 mars 2016 16:16
À : Trottin, Jean-Jacques (Nokia - FR); [email-masked]
Objet : Re: [Dime] Diameter Load Editor's note on presence of overload report

JJacques,

I had already come up with the following wording to replace the editor's note:

        It should be noted that a Diameter node will need to process both Load reports and Overload
        reports from the same Diameter node.   The reacting node for the Overload
        report always has the responsibility to reduce the amount of Diameter traffic sent to the
        overloaded node.  If, or how, the reacting node uses Load information to achieve this is
        left as an implementation decision.

I think this does a better job of addressing the editor's note, which is about receiving overload and load reports from the same node.  I also think that the second sentence of your proposal is not needed, as this is normal use of load information, independent of whether there is an active overload report.

Regards,

Steve

In the current writing “from the “same” Diameter node”, the word “same”” is a bit misleading as it may be understood how the possible available load information of the overloaded node can be used and I do not well see the aid that load information from the overloaded node can bring, This is the load information from the other nodes which is helpful when diverting . Possible herafter writing (with suppression of the Editor’s note) :

A reacting node which has received an overload report from a reporting node might ignore the load information received from that Diameter node for the duration of the time that the overload report is in effect. It might take into account the load information received from the other nodes to which it might divert requests targeted for the overloaded Diameter node.

Best regards
JJacques