27.8 Historical IPv6 Advanced API
RFC 2292 [Stevens and Thomas 1998] defines an
earlier version of the API described here, which is implemented and
deployed in some systems. In this earlier version, the functions to
deal with destination and hop-by-hop options are
inet6_option_space, inet6_option_init,
inet6_option_append, inet6_option_alloc,
inet6_option_next and inet6_option_find. These
functions dealt with struct cmsghdr objects directly,
assuming that all options were contained in ancillary data. The
routing header functions in that API were
inet6_rthdr_space, inet6_rthdr_init,
inet6_rthdr_add, inet6_rthdr_lasthop,
inet6_rthdr_reverse, inet6_rthdr_segments,
inet6_rthdr_getaddr and inet6_rthdr_getflags.
These functions also operate directly on struct cmsghdr
ancillary data objects.
In this API, sticky options were set with the
IPV6_PKTOPTIONS socket option. The ancillary data objects
that would have been passed to sendmsg were instead set as
the data portion of the IPV6_PKTOPTIONS socket option. In
that API, the IPV6_DSTOPTS, IPV6_HOPOPTS, and
IPV6_RTHDR socket options were flag values to request
reception of the respective headers via ancillary data.
For more information on these operations, refer
to Sections 4 through 8 of RFC 2292 [Stevens and Thomas 1998].
|