package org.onlab.onos.net.link;

import org.onlab.onos.provider.ProviderBroker;

/**
 * Abstraction of an infrastructure link provider brokerage.
 */
public interface LinkProviderBroker
        extends ProviderBroker<LinkProvider, LinkProviderService> {
}
