Subject: RE: How do you negotiate a numerical range?

From: "THALER,PAT (A-Roseville,ex1)" <[email-masked]>
Date: Wed, 17 Jul 2002 19:49:45 -0600

Bill,

Ranges are only valid for keys that are specified to take a range. (Page 71 of the 14 July working draft 15: A range or a large-numerical-value MAY ONLY be offered if it is explicitly allowed for a key.) The draft does explicitly state how ranges are to be negotiated in 4.2.2 The rule is that you have to chose a value in the offered range or "Reject". You don't have to choose Min or Max. 

The only currently defined keys which take a range are OFMarkInt and IFMarkInt. These keys use range because an implementation may have both upper and lower limits on the range it is willing to support. They are not MAX or MIN. 

In your example, if you receive Foo=3~12 and you would have offered Foo=10~16, you would presumably offer 10, 11 or 12. You can offer any of those values, so you can choose your preference from the overlap of the offered range and the range you support. 

Regards,
Pat

-----Original Message-----
From: Bill Studenmund [mailto:[email-masked]]
Sent: Wednesday, July 17, 2002 2:11 PM
To: [email-masked]
Subject: How do you negotiate a numerical range?

I think I know the answer, but wanted to double check as AFAICT all the
numbers we have in the spec are either MIN or MAX; I suspect not much code
is using numerical ranges at the moment. Also, the spec doesn't say
anything about negotiating ranges AFAICT. :-)

Question 1:

Since all of the numbers we have are MIN or MAX, my understanding is that
you just take the min or max of the range, and use that for negotiation.

The initially-non-intuitive thing is that you can readily get a negotiated
value outside of the offered range. :-)

Consider an offer of "MaxConnections=3~10" to a device that wants
MaxConnections=2. Since MaxConnections is a MIN number, the correct
response (I believe) is "MaxConnections=2". I suspect however this might
seem counter-intuitive for new implementers.

Question 2:

Say you have a number that is not a MIN or MAX number (right now this'd be
a vendor-specific one), and you are offered a range (say "Foo=3~12"), and
had you made the offer you would have offered a different range (say
"Foo=10~16"). Do we want to say anything now about how to handle this
negotiation, or do we want to wait until we actually have a non-MIN/MAX
number in the spec?

I'd vote holding off, and just having everyone understand there will be
more work for some future version. :-)

Thoughts?

Take care,

Bill