Comtrol eCos User Manual

Page 539

Advertising
background image

Chapter 38. TCP/IP Library Reference

type is either IPV6_HOPOPTS or IPV6_DSTOPTS.

This type is stored in the

cmsg_type member of the cmsghdr structure pointed to by *cmsgp.

inet6_option_append

This function appends a Hop-by-Hop option or a Destination option into an

ancillary data object that has been initialized by inet6_option_init().

This function returns 0 if it succeeds or -1 on an error.

cmsg is a pointer to the cmsghdr structure that must have been initial-

ized by inet6_option_init().

typep is a pointer to the 8-bit option type.

It is assumed that this

field is immediately followed by the 8-bit option data length field,

which is then followed immediately by the option data.

The caller ini-

tializes these three fields (the type-length-value, or TLV) before call-

ing this function.

The option type must have a value from 2 to 255, inclusive.

(0 and 1 are

reserved for the Pad1 and PadN options, respectively.)

The option data length must have a value between 0 and 255, inclusive,

and is the length of the option data that follows.

multx is the value x in the alignment term “xn + y”.

It must have a

value of 1, 2, 4, or 8.

plusy is the value y in the alignment term “xn + y”.

It must have a

value between 0 and 7, inclusive.

inet6_option_alloc

This function appends a Hop-by-Hop option or a Destination option into an

ancillary data object that has been initialized by inet6_option_init().

This function returns a pointer to the 8-bit option type field that

starts the option on success, or NULL on an error.

The difference between this function and inet6_option_append() is that

the latter copies the contents of a previously built option into the

ancillary data object while the current function returns a pointer to the

space in the data object where the option’s TLV must then be built by the

caller.

cmsg is a pointer to the cmsghdr structure that must have been initial-

ized by inet6_option_init().

datalen is the value of the option data length byte for this option.

This value is required as an argument to allow the function to determine

if padding must be appended at the end of the option.

(The

inet6_option_append() function does not need a data length argument since

the option data length must already be stored by the caller.)

multx is the value x in the alignment term “xn + y”.

It must have a

value of 1, 2, 4, or 8.

plusy is the value y in the alignment term “xn + y”.

It must have a

value between 0 and 7, inclusive.

435

Advertising