Provided by: openswan_2.6.37-1_amd64 bug

NAME

       ipsec_initsubnet,      ipsec_addrtosubnet,      ipsec_subnettypeof,     ipsec_masktocount,
       ipsec_networkof, ipsec_maskof - initialize an ip_subnet, initialize a singleton ip_subnet,
       get address type of an ip_subnet, convert subnet mask to bit count, get base address of an
       ip_subnet, get subnet mask of an ip_subnet

SYNOPSIS

       #include <freeswan.h>

       const char *initsubnet(const ip_address *addr,
           int maskbits, int clash, ip_subnet *dst);
       const char *addrtosubnet(const ip_address *addr,
           ip_subnet *dst);

       int subnettypeof(const ip_subnet *src);
       int masktocount(const ip_address *src);
       void networkof(const ip_subnet *src, ip_address *dst);
       void maskof(const ip_subnet *src, ip_address *dst);

DESCRIPTION

       The <freeswan.h> library uses an internal type ip_subnet to contain a description of an IP
       subnet  (base  address  plus  mask).  These functions provide basic tools for creating and
       examining this type.

       Initsubnet initializes a variable *dst of type ip_subnet from a base address and  a  count
       of  mask  bits.   The  clash parameter specifies what to do if the base address includes 1
       bits outside the prefix specified by the mask (that is, in the ``host number'' part of the
       address):

              '0'  zero out host-number bits

              'x'  non-zero host-number bits are an error

       Initsubnet  returns  NULL  for success and a pointer to a string-literal error message for
       failure; see DIAGNOSTICS.

       Addrtosubnet initializes an ip_subnet variable *dst to a ``singleton  subnet''  containing
       the  single  address *addr.  It returns NULL for success and a pointer to a string-literal
       error message for failure.

       Subnettypeof returns the address type of a subnet, normally  AF_INET  or  AF_INET6.   (The
       <freeswan.h>  header  file arranges to include the necessary headers for these names to be
       known.)

       Masktocount converts a subnet mask, expressed as an address, to a bit count  suitable  for
       use with initsubnet.  It returns -1 for error; see DIAGNOSTICS.

       Networkof fills in *dst with the base address of subnet src.

       Maskof fills in *dst with the subnet mask of subnet src, expressed as an address.

SEE ALSO

       inet(3), ipsec_ttosubnet(3), ipsec_rangetosubnet(3)

DIAGNOSTICS

       Fatal  errors  in  initsubnet are: unknown address family; unknown clash value; impossible
       mask bit count; non-zero host-number bits and clash is 'x'.  Fatal errors in  addrtosubnet
       are:  unknown  address  family.   Fatal errors in masktocount are: unknown address family;
       mask bits not contiguous.

HISTORY

       Written for the FreeS/WAN project by Henry Spencer.

                                          12 March 2002                       IPSEC_INITSUBNET(3)