Determine how much space an IPv6 hop-by-hop or destination option requires
Synopsis:
#include <netinet/in.h>
int inet6_option_space(int nbytes);
Arguments:
- 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.
Library:
libsocket
Use the -l socket option to
qcc
to link against this library.
Description:
The 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).
Note:
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).
Based on:
- 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.
Classification:
RFC 2292
Safety: |
|
Cancellation point |
No |
Interrupt handler |
No |
Signal handler |
Yes |
Thread |
Yes |