code: def rpc(self, feature, cmd, *args, **kw):
          
  
          rpc_id = (feature << 8 | cmd)
  
          result_format = _create_resp_format(kw.get('result_type'), kw.get('result_format'))
          arg_format = kw.get('arg_format')
          if arg_format is None:
              arg_format = _create_arg_format(args)
  
          passed_kw = {}
          if 'timeout' in kw:
              passed_kw['timeout'] = kw['timeout']
  
          response = self.rpc_v2(rpc_id, arg_format, result_format, *args, **passed_kw)
  
          old_return = kw.get('result_type')
          if old_return is not None:
              return _create_old_return_value(response, *old_return)
  
          return response
docs: Send an RPC call to this module, interpret the return value
          according to the result_type kw argument.  Unless raise keyword
          is passed with value False, raise an RPCException if the command
          is not successful.