• I
    mlxsw: spectrum: Store local port to module mapping during init · 558c2d5e
    Ido Schimmel 提交于
    The port netdevs are each associated with a different local port number
    in the device. These local ports are grouped into groups of 4 (e.g.
    (1-4), (5-8)) called clusters. The cluster constitutes the one of two
    possible modules they can be mapped to. This mapping is board-specific
    and done by the device's firmware during init.
    
    When splitting a port by 4, the device requires us to first unmap all
    the ports in the cluster and then map each to a single lane in the module
    associated with the port netdev used as the handle for the operation.
    This means that two port netdevs will disappear, as only 100Gb/s (4
    lanes) ports can be split and we are guaranteed to have two of these
    ((1, 3), (5, 7) etc.) in a cluster.
    
    When unsplit occurs we need to reinstantiate the two original 100Gb/s
    ports and map each to its origianl module. Therefore, during driver init
    store the initial local port to module mapping, so it can be used later
    during unsplitting.
    
    Note that a by 2 split doesn't require us to store the mapping, as we
    only need to reinstantiate one port whose module is known.
    Signed-off-by: NIdo Schimmel <idosch@mellanox.com>
    Signed-off-by: NJiri Pirko <jiri@mellanox.com>
    Signed-off-by: NDavid S. Miller <davem@davemloft.net>
    558c2d5e
spectrum.c 81.8 KB