• Mark Bloch's avatar
    net/mlx5: Lag, add debugfs to query hardware lag state · 7f46a0b7
    Mark Bloch authored
    Lag state has become very complicated with many modes, flags, types and
    port selections methods and future work will add additional features.
    
    Add a debugfs to query the current lag state. A new directory named "lag"
    will be created under the mlx5 debugfs directory. As the driver has
    debugfs per pci function the location will be: <debugfs>/mlx5/<BDF>/lag
    
    For example:
    /sys/kernel/debug/mlx5/0000:08:00.0/lag
    
    The following files are exposed:
    
    - state: Returns "active" or "disabled". If "active" it means hardware
             lag is active.
    
    - members: Returns the BDFs of all the members of lag object.
    
    - type: Returns the type of the lag currently configured. Valid only
    	if hardware lag is active.
    	* "roce" - Members are bare metal PFs.
    	* "switchdev" - Members are in switchdev mode.
    	* "multipath" - ECMP offloads.
    
    - port_sel_mode: Returns the egress port selection method, valid
    		 only if hardware lag is active.
    		 * "queue_affinity" - Egress port is selected by
    		   the QP/SQ affinity.
    		 * "hash" - Egress port is selected by hash done on
    		   each packet. Controlled by: xmit_hash_policy of the
    		   bond device.
    - flags: Returns flags that are specific per lag @type. Valid only if
    	 hardware lag is active.
    	 * "shared_fdb" - "on" or "off", if "on" single FDB is used.
    
    - mapping: Returns the mapping which is used to select egress port.
    	   Valid only if hardware lag is active.
    	   If @port_sel_mode is "hash" returns the active egress ports.
    	   The hash result will select only active ports.
    	   if @port_sel_mode is "queue_affinity" returns the mapping
    	   between the configured port affinity of the QP/SQ and actual
    	   egress port. For example:
    	   * 1:1 - Mapping means if the configured affinity is port 1
    	           traffic will egress via port 1.
    	   * 1:2 - Mapping means if the configured affinity is port 1
    		   traffic will egress via port 2. This can happen
    		   if port 1 is down or in active/backup mode and port 1
    		   is backup.
    Signed-off-by: default avatarMark Bloch <mbloch@nvidia.com>
    Signed-off-by: default avatarSaeed Mahameed <saeedm@nvidia.com>
    7f46a0b7
driver.h 33.1 KB