package org.onlab.onos.net.device;

import org.onlab.onos.net.MastershipRole;
import org.onlab.onos.net.provider.ProviderService;

import java.util.List;

/**
 * Service through which device providers can inject device information into
 * the core.
 */
public interface DeviceProviderService extends ProviderService<DeviceProvider> {

    // TODO: define suspend and remove actions on the mezzanine administrative API

    /**
     * Signals the core that a device has connected or has been detected somehow.
     *
     * @param deviceDescription information about network device
     * @return mastership role chosen by the provider service
     */
    MastershipRole deviceConnected(DeviceDescription deviceDescription);

    /**
     * Signals the core that a device has disconnected or is no longer reachable.
     *
     * @param deviceDescription device to be removed
     */
    void deviceDisconnected(DeviceDescription deviceDescription);

    /**
     * Sends information about all ports of a device. It is up to the core to
     * determine what has changed.
     *
     * @param ports list of device ports
     */
    void updatePorts(List<PortDescription> ports);

    /**
     * Used to notify the core about port status change of a single port.
     *
     * @param port description of the port that changed
     */
    void portStatusChanged(PortDescription port);

}
