inet6_option_alloc()

Updated: April 19, 2023

Append IPv6 hop-by-hop or destination options into ancillary data object

Synopsis:

#include <netinet/in.h>

u_int8_t * inet6_option_alloc(struct cmsghdr *cmsg, 
                              int datalen, 
                              int multx,
                              int plusy);


Arguments:

cmsg
A pointer to the cmsghdr structure that must have been initialized by inet6_option_init().
datalen
The length of the option, in bytes. This value is required as an argument to allow the function to determine if padding should be appended at the end of the option, argument since the option data length must already be stored by the caller (the inet6_option_append() function doesn't need a data length).
multx
The value x in the alignment term xn + y. It must have a value of 1, 2, 4, or 8.
plusy
Value y in the alignment term xn + y. It must have a value between 0 and 7, inclusive.

Library:

libsocket

Use the -l socket option to qcc to link against this library.

Description:

The inet6_option_alloc() function appends a hop-by-hop option or a destination option into an ancillary data object that has been initialized by inet6_option_init().

The difference between this function and inet6_option_append() is that the latter copies the contents of the previously built option into the ancillary data object. This function returns a pointer to the space in the data object where the option's type-length-value or TLV must then be built by the caller.

Based on:

Returns:

A pointer to the 8-bit option type field that starts the option, or NULL if an error occurred.

Classification:

RFC 2292

Safety:  
Cancellation point No
Interrupt handler No
Signal handler Yes
Thread Yes