Subject: (IPng 6963) IPV6_MULTICAST_HOPS

From: Richard Draves <[email-masked]>
Date: Tue, 22 Dec 1998 14:11:50 -0800

I have a couple interpretation questions regarding IPV6_MULTICAST_HOPS in
draft-ietf-ipngwg-bsd-api-new-04.txt.

The draft says
      The interpretation of the argument is the same
      as for the IPV6_UNICAST_HOPS option:
         x < -1:        return an error of EINVAL
         x == -1:       use kernel default
         0 <= x <= 255: use x
         x >= 256:      return an error of EINVAL
         If IPV6_MULTICAST_HOPS is not set, the default is 1
         (same as IPv4 today)

1. The draft says that if the application specifies x == -1, then the
"kernel default" should be used. Is the kernel default 1 or is the kernel
default perhaps something else (eg the hop limit value learned from RAs)? I
would assume the latter since the application could specify the former
directly.

2. (This also applies to IPV6_UNICAST_HOPS.) If the application specifies x
== 0, what should happen? Normally packets with a Hop Limit of zero are
discarded. RFC 1122 (for IPv4) says that hosts MUST NOT send a packet with a
TTL of zero. Does this rule hold for v6? Perhaps if an application specifies
x == 0, then only loopback should be allowed and the packet should not be
put out on a link?

Thanks,
Rich
--------------------------------------------------------------------
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-masked]
--------------------------------------------------------------------

---

From: Craig Metz <[email-masked]>
Date: Tue, 22 Dec 1998 12:42:19 -0500

>would assume the latter since the application could specify the former

  In a "real" BSD, that kernel default might also come from a sysctl variable.
In a MS world, it might be a registry entry. The idea is that the system's
default should be configurable (e.g., by a sysadmin).

  Doing it this way also allows you to change the default on a running system
and have the change immediately affect applications. (that is the possibly non-
obvious difference between specifying -1 if the default is x and specifying x
directly)

>x == 0, then only loopback should be allowed and the packet should not be

  That might be a sensible use for this. I can think of security-oriented
applications where I want to guarantee that traffic stays local, even if people
are playing games like making the loopback address go somewhere it's not
supposed to.

									-Craig