Determine how much space an IPv6 hop-by-hop or destination option requires
#include <netinet/in.h> int inet6_option_space(int nbytes);
- The size of the structure that defines the option. It includes any padding bytes at the beginning (the value y in the alignment term xn + y, the type byte), the length byte, and the option data.
Use the -l socket option to qcc to link against this library.
This inet6_option_space() function returns the number of bytes required to hold an option when it's stored as ancillary data, including the cmsghdr structure at the beginning, and any padding at the end (to make its size a multiple of 8 bytes).
When multiple options are stored in a single ancillary data object, this function overestimates the amount of space required by the size of N-1 cmsghdr structures, where N is the number of options to be stored in the object. This is of little consequence, since it's assumed that most hop-by-hop option and destination option headers carry only one option (see Appendix B of RFC 2460).
- W. Stevens and M. Thomas, Advanced Sockets API for IPv6, RFC 2292, February 1998. Contains examples.
- S. Deering and R. Hinden, Internet Protocol, Version 6 (IPv6) Specification, RFC 2460, December 1998.
Last modified: 2013-12-23