Subject: Re: Comments on 2292bis (Adv. API)

From: Tim Hartrick <[email-masked]>
Date: Fri, 20 Aug 1999 12:09:51 -0700 (PDT)

Erik,

> 
> > 
> > Section 8.2 [page 33]
> >   1825    When using ancillary data a Destination options header is passed
> >   1826    between the application and the kernel as follows: The set
> > preceding
> >   1827    a Routing header are specified with the cmsg_level member is set to
> >   1828    IPPROTO_IPV6 and the cmsg_type member is set to IPV6_RTHDRDSTOPTS.
> >   1829    Any setsockopt or ancillary data for IPV6_RTHDRDSTOPTS is silently
> >   1830    ignore when sending packets unless a Routing header is also
> >   1831    specified.
> > 
> > - As the spec states here, IPV6_RTHDRDSTOPTS options are ignored unless
> > Routing header is present.  Does this mean that if the user has
> > IPV6_RTHDRDSTOPTS options and a Routing header, and then the user removes
> > the Routing header, the IPV6_RTHDRDSTOPTS options go away as well?  Should
> > the implementation cache the IPV6_RTHDRDSTOPTS options in case Routing
> > header will appear later?
> 
> Are you asking about sticky options or ancillary data?
> For sticky options the simplest thing to me seems to be to
> record the option value first (so that it can be returned in a getsockopt)
> and then build a header template. The header template will be a function
> of all the sticky options. This means that IPV6_RTHDRDSTOPTS and IPV6_RTHDR
> can be setsockopt independently, but that the transmitted header will
> only contain a destination header before the routing header when both of
> them are set.
> 
> But other implementors might see things differently.
> Also, is this something we should nail down in the spec?
> 

I probably wouldn't bother with removing the destination option header if
the routing header is removed.

In fact this might actually have some utility in that someone, if they were
of a mind, could use this as a way to insert multiple destination options
headers into a datagram.

In general I had assumed that IPV6_RTHDRDSTOPTS and IPV6DSTOPTS simply allowed
one specify the relative ordering of two destination options headers.  If
there was a routing header fine but it wasn't necessarily a requirement.

tim
--------------------------------------------------------------------
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]
--------------------------------------------------------------------