/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package net.onrc.onos.ofcontroller.flowmanager;

public enum ApplnObjectType {
    FLOWPATH,
    FLOWENTRY,  
    UNKNOWN
}

