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