package org.onlab.onos.net.host;

import org.onlab.onos.net.provider.ProviderBroker;

/**
 * Abstraction of a host provider brokerage.
 */
public interface HostProviderBroker
        extends ProviderBroker<HostProvider, HostProviderService> {
}
