inet6_option_space3
Ipv6 hop-by-hop and destination options manipulation
Usage
#include <sys/types.h>
#include <netinet/in.h>
int
inet6_option_space(int nbytes);
int
inet6_option_init(void *bp, struct cmsghdr **cmsgp, int type);
int
inet6_option_append(struct cmsghdr *cmsg, const u_int8_t *typep, int multx, int plusy);
u_int8_t *
inet6_option_alloc(struct cmsghdr *cmsg, int datalen, int multx, int plusy);
int
inet6_option_next(const struct cmsghdr *cmsg, u_int8_t **tptrp);
int
inet6_option_find(const struct cmsghdr *cmsg, u_int8_t **tptrp, int type);
Library
Standard C Library (libc, -lc)
Overview
Building and parsing the Hop-by-Hop and Destination options is complicated due to alignment constranints, padding and ancillary data manipulation. RFC2292 defines a set of functions to help the application. The function prototypes for these functions are all in the ⟨netinet/in.h⟩ header.
The full description of these functions is available in RFC2292.
Diagnostics
inet6_option_init() and inet6_option_append() return 0 on success or -1 on an error.
inet6_option_alloc() returns NULL on an error.
On errors, inet6_option_next() and inet6_option_find() return -1 setting *tptrp to non NULL value.
Examples
RFC2292 gives comprehensive examples in chapter 6.
Releases
155 releases since Mac OS X 10.2; the text changed 2 times.