Story: 2011056 Task: 51174 Change-Id: I3a0a3637aff9a9974e7bfeed0a1f1785eceafee2 Signed-off-by: Suzana Fernandes <Suzana.Fernandes@windriver.com>
		
			
				
	
	
		
			171 lines
		
	
	
		
			5.7 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
			
		
		
	
	
			171 lines
		
	
	
		
			5.7 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
.. WARNING: Add no lines of text between the label immediately following
 | 
						|
.. and the title.
 | 
						|
 | 
						|
.. _intel-driver-version-c6e3fa384ff7:
 | 
						|
 | 
						|
============================
 | 
						|
Switch Intel Driver Versions
 | 
						|
============================
 | 
						|
 | 
						|
.. contents:: |minitoc|
 | 
						|
   :local:
 | 
						|
   :depth: 2
 | 
						|
 | 
						|
------------
 | 
						|
Introduction
 | 
						|
------------
 | 
						|
 | 
						|
The system supports both in-tree and out-of-tree versions of the Intel ``ice``, ``i40e``,
 | 
						|
and ``iavf`` drivers. On initial installation, the system uses the default out-of-tree
 | 
						|
driver version. This sections describes how to switch between the in-tree and
 | 
						|
out-of-tree driver versions.
 | 
						|
 | 
						|
.. warning::
 | 
						|
 | 
						|
    The |NIC| firmware (NVM) has to align with one of the selected driver
 | 
						|
    listed below.
 | 
						|
 | 
						|
-   Out-of-tree drivers (default)
 | 
						|
      - ice: 1.14.9.2 / Required NVM/firmware: 4.20 (Intel E810)
 | 
						|
      - i40e: 2.25.7 / Required NVM/firmware: 9.00
 | 
						|
      - iavf: 4.11.1
 | 
						|
 | 
						|
-   In-tree drivers
 | 
						|
      - ice: Same as 6.6.7 kernel in-tree driver / Required NVM/firmware: 4.20
 | 
						|
      - i40e: Same as 6.6.7 kernel in-tree driver / Required NVM/firmware: 9.00
 | 
						|
      - iavf: Same as 6.6.7 kernel in-tree driver
 | 
						|
 | 
						|
----------------------------------------------------------
 | 
						|
Switch between the In-tree and Out-of-tree Driver Versions
 | 
						|
----------------------------------------------------------
 | 
						|
 | 
						|
The ``out_of_tree_drivers`` service parameter can be used to switch between the
 | 
						|
in-tree and out-of-tree versions of a given driver.
 | 
						|
 | 
						|
Switch to In-tree Driver Versions
 | 
						|
---------------------------------
 | 
						|
 | 
						|
The system can be switched to the in-tree versions of ``ice``, ``i40e``, and ``iavf``
 | 
						|
drivers using any of the following two mechanisms.
 | 
						|
 | 
						|
-   Before installation, specify the ``out_of_tree_drivers`` service parameter
 | 
						|
    to none in the deployment config file.
 | 
						|
 | 
						|
    .. code-block:: none
 | 
						|
 | 
						|
        serviceParameters:
 | 
						|
                - service: platform
 | 
						|
                  section: kernel
 | 
						|
                  paramname: out_of_tree_drivers
 | 
						|
                  paramvalue: "none"
 | 
						|
 | 
						|
-   After installation, modify the ``out_of_tree_drivers`` service parameter to
 | 
						|
    none and apply the configuration using the steps mentioned in :ref:`apply-driver-configuration-0342c0220631`.
 | 
						|
 | 
						|
    .. code-block:: none
 | 
						|
 | 
						|
        ~(keystone_admin)$ system service-parameter-modify platform kernel out_of_tree_drivers=none
 | 
						|
 | 
						|
 | 
						|
Switch to Out-of-tree Driver Versions
 | 
						|
-------------------------------------
 | 
						|
 | 
						|
To use the out-of-tree drivers, set the out-of-tree drivers you want to load in
 | 
						|
the ``out_of_tree_drivers`` service parameter and apply the configuration using
 | 
						|
the steps mentioned in :ref:`apply-driver-configuration-0342c0220631`. You can set all
 | 
						|
the supported drivers, or only specific ones.
 | 
						|
 | 
						|
-   Set all out-of-tree drivers:
 | 
						|
 | 
						|
    .. code-block:: none
 | 
						|
 | 
						|
        ~(keystone_admin)$ system service-parameter-modify platform kernel out_of_tree_drivers=ice,i40e,iavf
 | 
						|
 | 
						|
-   Set specified out-of-tree drivers:
 | 
						|
 | 
						|
    To set only ``ice`` and ``i40e``, but not ``iavf`` (in this case, the iavf is in the in-tree driver):
 | 
						|
 | 
						|
    .. code-block:: none
 | 
						|
 | 
						|
        ~(keystone_admin)$ system service-parameter-modify platform kernel out_of_tree_drivers=ice,i40e
 | 
						|
 | 
						|
    To set ``iavf`` and ``ice``, but not ``i40e``:
 | 
						|
 | 
						|
    .. code-block:: none
 | 
						|
 | 
						|
        ~(keystone_admin)$ system service-parameter-modify platform kernel out_of_tree_drivers=ice,iavf
 | 
						|
 | 
						|
    You can set any permutation or combination of ``ice``, ``i40e``, and ``iavf``
 | 
						|
    in the ``out_of_tree_drivers`` service parameter. Any driver not explicitly set
 | 
						|
    using the ``out_of_tree_drivers`` service parameter will use its in-tree version.
 | 
						|
 | 
						|
.. _apply-driver-configuration-0342c0220631:
 | 
						|
 | 
						|
Apply Driver Configuration
 | 
						|
--------------------------
 | 
						|
 | 
						|
To apply the service parameter change, all the hosts need to be locked and unlocked.
 | 
						|
Use the following commands for each host depending on the deployed configuration:
 | 
						|
 | 
						|
For |AIO-SX| deployments:
 | 
						|
 | 
						|
.. code-block:: none
 | 
						|
 | 
						|
    ~(keystone_admin)$ system host-lock controller-0
 | 
						|
    ~(keystone_admin)$ system host-unlock controller-0
 | 
						|
 | 
						|
For |AIO-DX| and standards deployments, after ``controller-1`` is locked/unlocked,
 | 
						|
swact ``controller-0`` to make ``controller-1`` the active node. The next set of
 | 
						|
commands are executed on the ``controller-0`` node:
 | 
						|
 | 
						|
.. code-block:: none
 | 
						|
 | 
						|
    ~(keystone_admin)$ system host-lock controller-1
 | 
						|
    ~(keystone_admin)$ system host-unlock controller-1
 | 
						|
    ~(keystone_admin)$ system host-swact controller-0
 | 
						|
 | 
						|
On ``controller-1``, after ``controller-0`` is locked/unlocked swact ``controller-1`` to go
 | 
						|
back to ``controller-0`` as the active node. The next set of commands are executed
 | 
						|
on the ``controller-1`` node:
 | 
						|
 | 
						|
.. code-block:: none
 | 
						|
 | 
						|
    ~(keystone_admin)$ system host-lock controller-0
 | 
						|
    ~(keystone_admin)$ system host-unlock controller-0
 | 
						|
    ~(keystone_admin)$ system host-swact controller-1
 | 
						|
 | 
						|
All the remaining nodes in the deployment need to be locked/unlocked, one at a time.
 | 
						|
Use the following commands (replace ``worker-0`` with the name of the node being
 | 
						|
locked/unlocked):
 | 
						|
 | 
						|
.. code-block:: none
 | 
						|
 | 
						|
    ~(keystone_admin)$ system host-lock worker-0
 | 
						|
    ~(keystone_admin)$ system host-unlock worker-0
 | 
						|
 | 
						|
.. note::
 | 
						|
 | 
						|
    You must wait for the node to enter the locked state prior to unlocking.
 | 
						|
 | 
						|
To verify the current Intel driver version use ``ethtool -i`` on the desired
 | 
						|
Intel network interface. For example:
 | 
						|
 | 
						|
.. code-block:: none
 | 
						|
 | 
						|
    ~(keystone_admin)$ ethtool -i ens785f0 | egrep '^(driver|version):'
 | 
						|
    driver: i40e
 | 
						|
    version: 6.6.40-stx.3
 | 
						|
 | 
						|
 | 
						|
Backup and Restore
 | 
						|
------------------
 | 
						|
 | 
						|
If a backup and restore is performed, after unlocking the host during a restore
 | 
						|
operation, the system is configured to the driver version at the time of the backup.
 | 
						|
 | 
						|
.. only:: partner
 | 
						|
 | 
						|
    .. include:: /_includes/intel-driver-version-c6e3fa384ff7.rest
 | 
						|
        :start-after: intel-driver-version-begin
 | 
						|
        :end-before: intel-driver-version-end
 |