inet6_rth_add()--Add an IPv6 Address to the IPv6 Routing Header
Syntax
#include <netinet/in.h> int inet6_rth_add(void *routing_buffer, const struct in6_addr *routing_address)
Service Program Name: QSOSRV1IP6
Default Public Authority: *USE
Threadsafe: Yes
The inet6_rth_add() function adds the IPv6 address that is pointed to by the routing_address parameter to the end of the routing extension header that is being constructed.
Parameters
- routing_buffer
- (I/O) Pointer to the buffer that contains the routing extension header.
- routing_address
- (Input) Pointer to the IPv6 address to add to the end of routing extension header.
Authorities
No authorization is required.
Return Value
inet6_rth_add() returns an integer. Possible values are:
- -1 (unsuccessful)
- 0 (successful)
Error Conditions
When inet6_rth_add() fails, errno can be set to one of the following:
[EFAULT] | Bad address.
The system detected an address that was not valid while attempting to access the buffer pointed to by the routing_buffer or routing_address parameter. |
[EINVAL] | Parameter not valid.
|
Usage Notes
- The address cannot be an IPv4-mapped IPv6 address or an IPv6 multicast address.
- IPV6_RTHDR_TYPE_0 is the only supported routing extension header type.
The number of segments for IPV6_RTHDR_TYPE_0 must be in the range 0 to 127, inclusive. - If successful, the segleft member of the routing extension header struct ip6_rthdr is updated to account for the new address.
Related Information
- inet6_rth_getaddr()--Retrieve an Address from the IPv6 Routing Header
- inet6_rth_init()--Initialize Buffer Data for the IPv6 Routing Header
- inet6_rth_reverse()--Reverse the Order of Addresses in the IPv6 Routing Header
- inet6_rth_segments()--Return the Number of Segments in the IPv6 Routing Header
- inet6_rth_space()--Return the Number of Bytes Required for the IPv6 Routing Header
API introduced: V6R1