Updated: 2022/Sep/29

Please read Privacy Policy. It's for your privacy.


INET6_GETSCOPEID(3)        Library Functions Manual        INET6_GETSCOPEID(3)

NAME
     inet6_getscopeid, inet6_putscopeid - IPv6 scope id encoding and decoding
     functions

SYNOPSIS
     #include <netinet/in.h>

     void
     inet6_getscopeid(struct sockaddr_in6 *sin6, int flags);

     void
     inet6_putscopeid(struct sockaddr_in6 *sin6, int flags);

DESCRIPTION
     These functions implement a KAME-specific extension that encodes and
     decodes the scope id inside in the 3rd and 4th byte of the address, for
     link-local, site-local, and multicast-link-local addresses.  The scope id
     helps deciding which interface is used for packets of that type.

     Typically those two bytes are 0 for these kinds of addresses.  The scope
     id is stored in network byte order.

     The inet6_getscopeid() function retrieves the scope id from the 3rd and
     the 4th address bytes (from the sin6_addr member of sin6), and sets the
     sin6_scope_id from them.  It then clears the two address bytes.

     The inet6putscopeid() function stores the scope id found in sin6_scope_id
     into the 3rd and 4th byte of the address (into the sin6_addr member of
     sin6).  It then clears the sin6_scope_id member of sin6.

     The flags argument controls for which addresses this action is performed.
     It can be a combination of:

        INET6_IS_ADDR_LINKLOCAL

        INET6_IS_ADDR_MC_LINKLOCAL

        INET6_IS_ADDR_SITELOCAL

HISTORY
     These functions first appeared in NetBSD 7.0.

NetBSD 10.99                   October 31, 2013                   NetBSD 10.99