def _parse_options(self):
        opts_to_ack = {}
        # We remove retries and default_timeout from self._options because
        # we don't need to include them in the OACK response to the client.
        # Their value is already hold in self._retries and self._timeout.
        del self._options['retries']
        del self._options['default_timeout']
        logging.info(
            'Options requested from peer {}:  {}'.format(
                self._peer, self._options
            )
        )
        self._stats.options_in = self._options
        if 'mode' in self._options and self._options['mode'] == 'netascii':
            self._response_data = NetasciiReader(self._response_data)
        elif 'mode' in self._options and self._options['mode'] != 'octet':
            self._stats.error = {
                'error_code': constants.ERR_ILLEGAL_OPERATION,
                'error_message': 'Unknown mode: %r' % self._options['mode'],
            }
            self._transmit_error()
            self._close()
            return  # no way anything else will succeed now
        if 'blksize' in self._options:
            opts_to_ack['blksize'] = self._options['blksize']
            self._block_size = int(self._options['blksize'])
        if 'tsize' in self._options:
            self._tsize = self._response_data.size()
            if self._tsize is not None:
                opts_to_ack['tsize'] = str(self._tsize)
        if 'timeout' in self._options:
            opts_to_ack['timeout'] = self._options['timeout']
            self._timeout = int(opts_to_ack['timeout'])
        self._options = opts_to_ack  # only ACK options we can handle
        logging.info(
            'Options to ack for peer {}:  {}'.format(
                self._peer, self._options
            )
        )
        self._stats.blksize = self._block_size
        self._stats.options = self._options
        self._stats.options_acked = self._options
Add a device to the ring. This device dict should have a minimum of the
dataset/ETHPy150Open facebook/fbtftp/fbtftp/base_handler.py/BaseHandler._parse_options--crossover with--dataset/ETHPy150Open openstack/swift/swift/common/ring/builder.py/RingBuilder.add_dev