package net.onrc.onos.core.matchaction;

import net.floodlightcontroller.core.module.IFloodlightService;

/**
 * A match action service interface as {@link IFloodlightService} service.
 */
public interface MatchActionFloodlightService extends MatchActionService,
        IFloodlightService {
}
