package net.floodlightcontroller.flowcache;
import org.openflow.protocol.OFMatchWithSwDpid;
/**
* Used in BigFlowCacheQueryResp as query result.
* Used to return one flow when queried by one of the big flow cache APIs.
* One of these QRFlowCacheObj is returned for each combination of
* priority and action.
*
* @author subrata
*/
public class QRFlowCacheObj {
/** The open flow match object. */
public OFMatchWithSwDpid ofmWithSwDpid;
/** The flow-mod priority. */
public short priority;
/** flow-mod cookie */
public long cookie;
/** The action - PERMIT or DENY. */
public byte action;
/** The reserved byte to align with 8 bytes. */
public byte reserved;
/**
* Instantiates a new flow cache query object.
*
* @param priority the priority
* @param action the action
*/
public QRFlowCacheObj(short priority, byte action, long cookie) {
ofmWithSwDpid = new OFMatchWithSwDpid();
this.action = action;
this.priority = priority;
this.cookie = cookie;
}
/**
* Populate a given OFMatchReconcile object from the values of this
* class.
*
* @param ofmRc the given OFMatchReconcile object
* @param appInstName the application instance name
* @param rcAction the reconcile action
*/
public void toOFMatchReconcile(OFMatchReconcile ofmRc,
String appInstName, OFMatchReconcile.ReconcileAction rcAction) {
ofmRc.ofmWithSwDpid = ofmWithSwDpid; // not copying
ofmRc.appInstName = appInstName;
ofmRc.rcAction = rcAction;
ofmRc.priority = priority;
ofmRc.cookie = cookie;
ofmRc.action = action;
}
@Override
public String toString() {
String str = "ofmWithSwDpid: " + this.ofmWithSwDpid.toString() + " ";
str += "priority: " + this.priority + " ";
str += "cookie: " + this.cookie + " ";
str += "action: " + this.action + " ";
str += "reserved: " + this.reserved + " ";
return str;
}
}