inet6_option_space()

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:

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

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

Last modified: 2013-12-23

comments powered by Disqus