package org.opennaas.extensions.openflowswitch.utils;
import java.util.List;
import org.opennaas.extensions.openflowswitch.model.FloodlightOFAction;
import org.opennaas.extensions.openflowswitch.model.FloodlightOFFlow;
import org.opennaas.extensions.openflowswitch.model.FloodlightOFMatch;
import org.opennaas.extensions.openflowswitch.model.OFFlow;
import org.opennaas.extensions.openflowswitch.model.OpenDaylightOFFlow;
/**
*
* @author josep
*/
public class Utils {
/**
* OpenDaylight flow to OFFlow
* @param flow
* @return
*/
public static OFFlow ODLFlowToOFFlow(OpenDaylightOFFlow flow) {
OFFlow OFFlow = new OFFlow();
FloodlightOFMatch match = flow.getMatch();
List<FloodlightOFAction> actions = flow.getActions();
OFFlow.setName(flow.getName());
OFFlow.setMatch(match);
OFFlow.setActions(actions);
return OFFlow;
}
/**
* OFFlow to OpenDaylight flow
* @param OFFlow
* @return
*/
public static OpenDaylightOFFlow OFFlowToODL(OFFlow OFFlow) {
OpenDaylightOFFlow flow = new OpenDaylightOFFlow();
FloodlightOFMatch match = OFFlow.getMatch();
List<FloodlightOFAction> actions = OFFlow.getActions();
for(int i=0; i<actions.size(); i++){
if(actions.get(i).getType().equals("output")){
actions.get(i).setType("OUTPUT");
}
}
flow.setName(OFFlow.getName());
flow.setMatch(match);
flow.setActions(actions);
return flow;
}
/**
* OFFlow to Floodlight flow
* @param OFFlow
* @return
*/
public static FloodlightOFFlow OFFlowToFLD(OFFlow OFFlow) {
FloodlightOFFlow flow = new FloodlightOFFlow();
FloodlightOFMatch match = OFFlow.getMatch();
List<FloodlightOFAction> actions = OFFlow.getActions();
flow.setName(OFFlow.getName());
flow.setMatch(match);
flow.setActions(actions);
return flow;
}
}