docs: def netmask_to_cidr (dq):
    """
    Takes a netmask as either an IPAddr or a string, and returns the number
    of network bits.  e.g., 255.255.255.0 -> 24
    Raise exception if subnet mask is not CIDR-compatible.
    """
    if isinstance(dq, str):
      dq = IPv4Address(dq)
    v = int(dq)
    c = 0
    while v & 0x80000000:
      c += 1
      v <<= 1
    v = v & 0xffFFffFF
    if v != 0:
      raise RuntimeError("Netmask %s is not CIDR-compatible" % (dq,))
    return c