Subject: Re: [AAA-WG]: Issue 93. End-to-End identifier

From: Pat Calhoun <[email-masked]>
Date: Sun, 1 Jul 2001 04:38:42 -0700

On Sat, Jun 30, 2001 at 09:40:16PM -0400, Paul Funk wrote:
> Pat, 
> 
> I think the text that describes how to generate Hop-By-Hop Identifier and 
> End-To-End Identifier should be the same -- that is, an identifier should be 
> locally unique for the long enough past the lifetime of a transaction to 
> prevent any ambiguity. How this is done is up to the sender, and there is 
> no requirement that the numbers be increasing, though the obvious way to 
> achieve this is to initialize the value in an intelligent way on reboot and 
> increment from then on.
> 
> The identifier can be initialized randomly at reboot, but there is always the 
> risk that identifiers from before and after reboots could clash. That's okay 
> for Hop-By-Hop Identifiers, because when the connection goes down all 
> the pending transactions are dropped anyway. With End-To-End Identifier, 
> it's more problematic; the only way the server can disambiguate two 
> equal identifiers is by consulting Origin-State-Id, but that is not a required 
> attribute.
> 
> Here's an algorithm for generating an initial value for an identifier that 
> guarantees uniqueness across reboot:
> 
> Initialize the high order 12 bits of the identifier to the low order 12
> bits of the 
> current time, and initialize the low order 20 bits of the identifier to 0.
> This is 
> guaranteed to produce unique identifiers across reboots provided that:
> 
> 1	the device takes longer than a second to reboot
> 
> 2	no transaction is kicking around for longer than an hour or so 
> 	(2 ^ 12 seconds)

At first glance (just before hoping on a plane), I must admit that this sounds
quite interesting. I'd be great if y'all could flush this one out while I am
gone.

> 
> 3	the transaction rate (the rate at which the identifier is incremented) 
> 	is no greater than a million per second (2 ^ 20).

ok, I guess I'll have to put in a few sleep statements in my code :) :)

PatC

---

From: Robert Sargent <[email-masked]>
Date: Sun, 1 Jul 2001 13:01:52 -0400

> > 1	the device takes longer than a second to reboot

What if the device isn't being rebooted but the process (diameter or whatever)
is being restarted?

Rob

-- 
Rob Sargent
Tel: (865) 671-8823
Software Development Manager -*-  Remote Site Manager - Knoxville
10850 Murdock Dr
Knoxville TN 37932                       http://darien.cisco.com/

---

From: Paul Funk <[email-masked]>
Date: Sun, 01 Jul 2001 13:42:14 -0400

At 01:01 PM 7/1/01 -0400, Robert Sargent wrote:
>> > Initialize the high order 12 bits of the identifier to the low order
12 bits of the 
>> > current time, and initialize the low order 20 bits of the identifier
to 0. This is 
>What if the device isn't being rebooted but the process (diameter or whatever)

Same difference. As long as the time between restarts of the process is at 
least a second, you won't get a duplicate initialization.

>> ok, I guess I'll have to put in a few sleep statements in my code :) :)

Paul Funk
Funk Software, Inc.
617 497-6339
[email-masked]