MLX5_GET(query_dct_in, in, dctn));
                break;
        case MLX5_CMD_OP_QUERY_XRQ:
+       case MLX5_CMD_OP_QUERY_XRQ_DC_PARAMS_ENTRY:
+       case MLX5_CMD_OP_QUERY_XRQ_ERROR_PARAMS:
                obj_id = get_enc_obj_id(MLX5_CMD_OP_CREATE_XRQ,
                                        MLX5_GET(query_xrq_in, in, xrqn));
                break;
                                        MLX5_GET(drain_dct_in, in, dctn));
                break;
        case MLX5_CMD_OP_ARM_XRQ:
+       case MLX5_CMD_OP_SET_XRQ_DC_PARAMS_ENTRY:
                obj_id = get_enc_obj_id(MLX5_CMD_OP_CREATE_XRQ,
                                        MLX5_GET(arm_xrq_in, in, xrqn));
                break;
+       case MLX5_CMD_OP_QUERY_PACKET_REFORMAT_CONTEXT:
+               obj_id = get_enc_obj_id
+                               (MLX5_CMD_OP_ALLOC_PACKET_REFORMAT_CONTEXT,
+                                MLX5_GET(query_packet_reformat_context_in,
+                                         in, packet_reformat_id));
+               break;
        default:
                obj_id = 0;
        }
        case MLX5_CMD_OP_DRAIN_DCT:
        case MLX5_CMD_OP_ARM_DCT_FOR_KEY_VIOLATION:
        case MLX5_CMD_OP_ARM_XRQ:
+       case MLX5_CMD_OP_SET_XRQ_DC_PARAMS_ENTRY:
                return true;
        case MLX5_CMD_OP_SET_FLOW_TABLE_ENTRY:
        {
        case MLX5_CMD_OP_QUERY_XRC_SRQ:
        case MLX5_CMD_OP_QUERY_DCT:
        case MLX5_CMD_OP_QUERY_XRQ:
+       case MLX5_CMD_OP_QUERY_XRQ_DC_PARAMS_ENTRY:
+       case MLX5_CMD_OP_QUERY_XRQ_ERROR_PARAMS:
+       case MLX5_CMD_OP_QUERY_PACKET_REFORMAT_CONTEXT:
                return true;
        default:
                return false;
 {
        u16 opcode = MLX5_GET(general_obj_in_cmd_hdr, in, opcode);
 
+       if (opcode >= MLX5_CMD_OP_GENERAL_START &&
+           opcode < MLX5_CMD_OP_GENERAL_END)
+               return true;
+
        switch (opcode) {
        case MLX5_CMD_OP_QUERY_HCA_CAP:
        case MLX5_CMD_OP_QUERY_HCA_VPORT_CONTEXT:
 
        MLX5_CMD_OP_DESTROY_XRQ                   = 0x718,
        MLX5_CMD_OP_QUERY_XRQ                     = 0x719,
        MLX5_CMD_OP_ARM_XRQ                       = 0x71a,
+       MLX5_CMD_OP_QUERY_XRQ_DC_PARAMS_ENTRY     = 0x725,
+       MLX5_CMD_OP_SET_XRQ_DC_PARAMS_ENTRY       = 0x726,
+       MLX5_CMD_OP_QUERY_XRQ_ERROR_PARAMS        = 0x727,
        MLX5_CMD_OP_QUERY_VPORT_STATE             = 0x750,
        MLX5_CMD_OP_MODIFY_VPORT_STATE            = 0x751,
        MLX5_CMD_OP_QUERY_ESW_VPORT_CONTEXT       = 0x752,
        MLX5_CMD_OP_MODIFY_FLOW_TABLE             = 0x93c,
        MLX5_CMD_OP_ALLOC_PACKET_REFORMAT_CONTEXT = 0x93d,
        MLX5_CMD_OP_DEALLOC_PACKET_REFORMAT_CONTEXT = 0x93e,
+       MLX5_CMD_OP_QUERY_PACKET_REFORMAT_CONTEXT = 0x93f,
        MLX5_CMD_OP_ALLOC_MODIFY_HEADER_CONTEXT   = 0x940,
        MLX5_CMD_OP_DEALLOC_MODIFY_HEADER_CONTEXT = 0x941,
        MLX5_CMD_OP_QUERY_MODIFY_HEADER_CONTEXT   = 0x942,
        MLX5_CMD_OP_MAX
 };
 
+/* Valid range for general commands that don't work over an object */
+enum {
+       MLX5_CMD_OP_GENERAL_START = 0xb00,
+       MLX5_CMD_OP_GENERAL_END = 0xd00,
+};
+
 struct mlx5_ifc_flow_table_fields_supported_bits {
        u8         outer_dmac[0x1];
        u8         outer_smac[0x1];