ipsec_goodmask(3) check if Internet subnet mask is valid, convert Internet subnet mask to bit count, convert bit count to Internet subnet mask

Other Alias

ipsec_masktobits, ipsec_bitstomask


#include <freeswan.h>

int goodmask(struct in_addr mask);
int masktobits(struct in_addr mask);
struct in_addr bitstomask(int n);


These functions are obsolete; see ipsec_masktocount(3) for a partial replacement.

Goodmask reports whether the subnet mask is a valid one, i.e. consists of a (possibly empty) sequence of 1s followed by a (possibly empty) sequence of 0s. Masktobits takes a (valid) subnet mask and returns the number of 1 bits in it. Bitstomask reverses this, returning the subnet mask corresponding to bit count n.

All masks are in network byte order.


Masktobits returns -1 for an invalid mask. Bitstomask returns an all-zeros mask for a negative or out-of-range n.


Written for the FreeS/WAN project by Henry Spencer.


The error-reporting convention of bitstomask is less than ideal; zero is sometimes a legitimate mask.