Subject: Re: RFC 4113: Is udpEndpointInstance persistent?

From: Rao Shoaib <[email-masked]>
Date: Tue, 06 Jun 2006 15:33:48 -0700

>My off-the-cuff answer is that the udpEndpointInstance
>exists in order to distinguish between multiple UDP Endpoints
>that are otherwise identical, so its specific value doesn't
>matter at all (otherwise than that it's unique, which is
>required by the fact that it's in the INDEX).  One imagined
>implementation is to use the [low-order bits of] the address
>of the kernel data structure (e.g., see BSD's "netstat -A"
>output).

This could work and is quite efficient however what happens if the structure is
freed. It could be part of a cache (in solaris it is) and can be reused possibly
for the same ip/port combination. How would one differentiate that it's a new instance
and not the old one. Actually this is a generic issue even when the index is zero. How does 
a consumer know that it's a new instance and not an old one ? Also it seems strange that the 
index numbers would be so high and out of sequence.

>Hello,
>
> Just wanted to add that in our TCP/IP implementation, the instance identifies an endpoint to a
>network management application.  We created a proprietary SNMP table
>that augments udpEndpointEntry, so we could provide counter statistics
>(datagrams, octets) for the endpoints.  So if a management app is
>polling the UDP endpoint information, it uses the instance to recognize
>updated counters for an endpoint.  We increment the instance value
>for each new endpoint.

How do you assign an instance id and what do you do about reuse and roll over.

I think the working group should clearly define the characteristics of the instance id.

Provided instance ID's can be reused I suggest we use an incremental instance id. 
When an endpoint is created it's assigned the highest instance id or zero if its the first instance.
Instance ID's can roll over to find the next unused ID. This lowers the frequency of ID being reused.

Rao.

--------------------------------------------------------------------
IETF IPv6 working group mailing list
[email-masked]
Administrative Requests: https://www1.ietf.org/mailman/listinfo/ipv6
--------------------------------------------------------------------

---

From: Kristine Adamson <[email-masked]>
Date: Wed, 28 Jun 2006 04:43:17 -0600

> How do you assign an instance id and what do you do about reuse and roll 
over.

We maintain an unsigned 32-bit integer which we increment for each new UDP 
endpoint.  The value is initialized to 1 when our TCP/IP implementation is 
started.  By "rollover", do you mean the counter wraps? If so, the value 
could rollover if a particular instance of the TCP/IP stack remains active 
for a long period of time.  The value remains associated with the endpoint 
until the socket closes.  Our implementation does not reuse values.

------
Kristine Adamson
IBM z/OS Communications Server: TCP/IP Development
Internet e-mail:[email-masked]