code: def _read_mode_unpack(self, size, kind):
          
          if size < 3:
              raise ProtocolError(f'{self.alias}: [Optno {kind}] invalid format')
  
          data = dict(
              kind=kind,
              type=self._read_opt_type(kind),
              length=size,
              data=self._read_unpack(size),
          )
  
          return data
docs: Read options request unpack process.
  
          Positional arguments:
              * size - int, length of option
              * kind - int, option kind value
  
          Returns:
              * dict -- extracted option
  
          Structure of IPv4 options:
              Octets      Bits        Name                    Description
                0           0     ip.opt.kind             Kind
                0           0     ip.opt.type.copy        Copied Flag
                0           1     ip.opt.type.class       Option Class
                0           3     ip.opt.type.number      Option Number
                1           8     ip.opt.length           Length
                2          16     ip.opt.data             Kind-specific Data