Content-type: text/html

# IPSEC_INITSUBNET

Section: C Library Functions (3)
Updated: 8 Sept 2000
Index Return to Main Contents

## NAME

ipsec initsubnet - initialize an ip_subnet
ipsec subnettypeof - get address type of an ip_subnet
ipsec masktocount - convert subnet mask to bit count
ipsec networkof - get base address of an ip_subnet
ipsec maskof - get subnet mask (as address) of an ip_subnet

## SYNOPSIS

#include <freeswan.h>

const char *initsubnet(const ip_address *addr, int maskbits,
int clash, 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.

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 masktocount are: unknown address family; mask bits not contiguous.

## HISTORY

Written for the FreeS/WAN project by Henry Spencer.

## Index

NAME
SYNOPSIS
DESCRIPTION
SEE ALSO
DIAGNOSTICS
HISTORY

This document was created by man2html, using the manual pages.
Time: 05:09:33 GMT, June 19, 2001