package net.onrc.onos.core.configmanager;

import java.util.Collections;
import java.util.List;

import net.onrc.onos.core.configmanager.NetworkConfig.LinkConfig;
import net.onrc.onos.core.util.LinkTuple;

public class PktOptLinkConfig extends LinkConfig {

    public PktOptLinkConfig(LinkConfig lkc) {
        // TODO Auto-generated constructor stub
    }

    public List<LinkTuple> getLinkTupleList() {
        // TODO Auto-generated method stub
        return Collections.emptyList(); // TODO change me
    }
}
