Skip to content
  • Gavin Shan's avatar
    net/ncsi: Package and channel management · e6f44ed6
    Gavin Shan authored
    
    
    This manages NCSI packages and channels:
    
     * The available packages and channels are enumerated in the first
       time of calling ncsi_start_dev(). The channels' capabilities are
       probed in the meanwhile. The NCSI network topology won't change
       until the NCSI device is destroyed.
     * There in a queue in every NCSI device. The element in the queue,
       channel, is waiting for configuration (bringup) or suspending
       (teardown). The channel's state (inactive/active) indicates the
       futher action (configuration or suspending) will be applied on the
       channel. Another channel's state (invisible) means the requested
       action is being applied.
     * The hardware arbitration will be enabled if all available packages
       and channels support it. All available channels try to provide
       service when hardware arbitration is enabled. Otherwise, one channel
       is selected as the active one at once.
     * When channel is in active state, meaning it's providing service, a
       timer started to retrieve the channe's link status. If the channel's
       link status fails to be updated in the determined period, the channel
       is going to be reconfigured. It's the error handling implementation
       as defined in NCSI spec.
    
    Signed-off-by: default avatarGavin Shan <gwshan@linux.vnet.ibm.com>
    Acked-by: default avatarJoel Stanley <joel@jms.id.au>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    e6f44ed6