I'm struggling to get my hands around the interaction between
IPV6_HOPLIMIT, IPV6_UNICAST_HOPS, and IPV6_MULTICAST_HOPS. It
seems pretty straight forward if IPV6_HOPLIMIT is specified as
ancilliary data - IPV6_HOPLIMIT overrides the current hoplimit
for that packet only. But what about when IPV6_HOPLIMIT is
set using setsockopt()?
Using setsockopt() calls, I think the behavior would be as follows:
Unicast Hop Limit Multicast Hop Limit
----------------- -------------------
default 255 1
IPV6_HOPLIMIT=100 100 100
IPV6_MULTICAST_HOPS=5 100 5
IPV6_UNICAST_HOPS=50 50 5
IPV6_HOPLIMIT=3 3 3
The question is, what should be returned for a getsockopt() on
IPV6_HOPLIMIT when the unicast and multicast hop limits are different?
Take the default case for instance. What is the correct value to return
on the getsockopt() call, 255 or 1? And what should be returned after
setting IPV6_HOPLIMIT to 100 and following it with setting
IPV6_MULTICAST_HOPS to 5, 100 or 5?
All of this would be *much* simpler if the advanced API only allowed
IPV6_HOPLIMIT to be specified as ancillary data and required the use of
IPV6_UNICAST_HOPS and IPV6_MULTICAST_HOPS for setsockopt() and
getsockopt() calls. Unfortunately, that isn't the case as 2292 allows
IPV6_HOPLIMIT to be specified as a sticky option.
Roy Brabson
--------------------------------------------------------------------
IETF IPng Working Group Mailing List
IPng Home Page: http://playground.sun.com/ipng
FTP archive: ftp://playground.sun.com/pub/ipng
Direct all administrative requests to [EMAIL PROTECTED]
--------------------------------------------------------------------