package net.onrc.onos.apps.segmentrouting; import net.onrc.onos.core.matchaction.match.PacketMatch; public class SegmentRoutingPolicy { /** * Enums for policy type * */ public enum PolicyType{ TUNNEL_FLOW, LOADBALANCE, AVOID, DENY } protected SegmentRoutingManager srManager; protected String policyId; protected PacketMatch match; protected int priority; protected PolicyType type; /** * Constructor * * @param srm Segment Routing Manager object * @param pid Policy ID * @param type Policy type * @param match PacketMatch for the policy * @param priority Priority */ public SegmentRoutingPolicy(SegmentRoutingManager srm, String pid, PolicyType type, PacketMatch match, int priority) { this.srManager = srm; this.policyId = pid; this.match = match; this.priority = priority; this.type = type; } /** * Get the policy ID * * @return policy ID */ public String getPolicyId(){ return this.policyId; } /** * Get Match * * @return PacketMatch object */ public PacketMatch getMatch(){ return this.match; } /** * Get the priority of the policy * * @return priority */ public int getPriority(){ return this.priority; } /** * Get the policy type * * @return policy type */ public PolicyType getType(){ return this.type; } /** * Create a policy * * @return true if succeeds, false otherwise */ public boolean createPolicy() { return false; } /** * Remove the policy * * @return true if succeeds, false otherwise */ public boolean removePolicy() { return false; } }