Purpose
Verifies that
a given local address meets address selection preferences.
Syntax
# include <netinet/in.h>
int inet6_is_srcaddr(struct sockaddr_in6 *srcaddr, uint32_t flags);
Description
inet6_is_src_addr
verifies that a local address corresponds to the set of address selection
preference flags specified in flags.
The values of address
selection preference flags are:
- IPV6_PREFER_SRC_HOME: prefer addresses reachable from a Home source
address
- IPV6_PREFER_SRC_COA: prefer addresses reachable from a Care-of
source address
- IPV6_PREFER_SRC_TMP: prefer addresses reachable from a temporary
address
- IPV6_PREFER_SRC_PUBLIC: the prefer addresses reachable from a
public source address
- IPV6_PREFER_SRC_CGA: the prefer addresses reachable from a Cryptographically
Generated Address (CGA) source address
- IPV6_PREFER_SRC_NONCGA: the prefer addresses reachable from a
non-CGA source address.
For example:
- To check if srcaddr is a Care-of address, flags must be set to
IPV6_PREFER_SRC_COA.
- To check if srcaddr is a CGA and a public address, flags must
be set to IPV6_PREFER_SRC_CGA | IPV6_PREFER_SRC_PUBLIC.
Parameters
Item |
Description |
srcaddr |
Points to a sockaddr_in6 structure containing
the source address to check |
flags |
Specifies the address selection preferences. |
Return Values
- The subroutine returns 1 when the given address corresponds to
a local address and satisfies the address selection preferences.
- The subroutine returns -1 if the given address is not a local
address or if flags does not specify one of the valid address selection
flag value
- The subroutine returns 0 if the given address is a local address
but does not satisfies the address selection preferences