code: function CIDR(addr, prefixLen) {
    if (prefixLen === undefined) {
      /* OK to pass pass string of "<addr>/<prefix>" */
      assert.string(addr);
      var fields = addr.match(/^([a-fA-F0-9:.]+)\/([0-9]+)$/);
      if (fields === null) {
        throw new Error('Invalid argument: <addr>/<prefix> expected');
      }
      addr = fields[1];
      prefixLen = parseInt(fields[2], 10);
    }
    assert.number(prefixLen);
    prefixLen = prefixLen | 0;
    addr = _toAddr(addr);
  
    /* Expand prefix to ipv6 length of bare ipv4 address provided */
    if (addr._attrs.ipv4Bare) {
      prefixLen += 96;
    }
    if (prefixLen < 0 || prefixLen > 128) {
      throw new Error('Invalid prefix length');
    }
    this._prefix = prefixLen;
    this._mask = _prefixToAddr(prefixLen);
    this._addr = addr.and(this._mask);
  }
docs: CIDR Block
  @param addr CIDR network address
  @param prefixLen Length of network prefix
  
  The addr parameter can be an Addr object or a parseable string.
  If prefixLen is omitted, then addr must contain a parseable string in the
  form '<address>/<prefix>'.