package net.onrc.onos.core.intent;

/**
 * @author Toshio Koide (t-koide@onlab.us)
 */
public class ConstrainedShortestPathIntent extends ShortestPathIntent {
	protected double bandwidth;

	/**
	 * Default constructor for Kryo deserialization
	 */
	protected ConstrainedShortestPathIntent() {
	}

	public ConstrainedShortestPathIntent(String id,
			long srcSwitch, long srcPort, long srcMac,
			long dstSwitch, long dstPort, long dstMac,
			double bandwidth) {
		super(id, srcSwitch, srcPort, srcMac, dstSwitch, dstPort, dstMac);
		this.bandwidth = bandwidth;
	}

	public double getBandwidth() {
		return bandwidth;
	}
}
