本文整理汇总了Java中org.projectfloodlight.openflow.protocol.action.OFActionSetDlSrc类的典型用法代码示例。如果您正苦于以下问题:Java OFActionSetDlSrc类的具体用法?Java OFActionSetDlSrc怎么用?Java OFActionSetDlSrc使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
OFActionSetDlSrc类属于org.projectfloodlight.openflow.protocol.action包,在下文中一共展示了OFActionSetDlSrc类的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: decode_set_src_mac
import org.projectfloodlight.openflow.protocol.action.OFActionSetDlSrc; //导入依赖的package包/类
/**
* Parse set_dl_src actions.
* The key and delimiter for the action should be omitted, and only the
* data should be presented to this decoder.
*
* TODO should consider using MacAddress's built-in parser....
*
* @param actionToDecode; The action as a string to decode
* @param version; The OF version to create the action for
* @param log
* @return
*/
private static OFActionSetDlSrc decode_set_src_mac(String actionToDecode, OFVersion version, Logger log) {
Matcher n = Pattern.compile("(?:(\\p{XDigit}+)\\:(\\p{XDigit}+)\\:(\\p{XDigit}+)\\:(\\p{XDigit}+)\\:(\\p{XDigit}+)\\:(\\p{XDigit}+))").matcher(actionToDecode);
if (n.matches()) {
MacAddress macaddr = MacAddress.of(get_mac_addr(n, actionToDecode, log));
if (macaddr != null) {
OFActionSetDlSrc.Builder ab = OFFactories.getFactory(version).actions().buildSetDlSrc();
ab.setDlAddr(macaddr);
log.debug("action {}", ab.build());
return ab.build();
}
}
else {
log.debug("Invalid action: '{}'", actionToDecode);
return null;
}
return null;
}
示例2: decode_set_src_mac
import org.projectfloodlight.openflow.protocol.action.OFActionSetDlSrc; //导入依赖的package包/类
/**
* Parse set_dl_src actions.
* The key and delimiter for the action should be omitted, and only the
* data should be presented to this decoder.
*
* TODO should consider using MacAddress's built-in parser....
*
* @param actionToDecode; The action as a string to decode
* @param version; The OF version to create the action for
* @param log
* @return
*/
private static OFActionSetDlSrc decode_set_src_mac(String actionToDecode, OFVersion version, Logger log) {
Matcher n = Pattern.compile("(?:(\\p{XDigit}+)\\:(\\p{XDigit}+)\\:(\\p{XDigit}+)\\:(\\p{XDigit}+)\\:(\\p{XDigit}+)\\:(\\p{XDigit}+))").matcher(actionToDecode);
if (n.matches()) {
MacAddress macaddr = MacAddress.of(get_mac_addr(n, actionToDecode, log));
if (macaddr != null) {
OFActionSetDlSrc.Builder ab = OFFactories.getFactory(version).actions().buildSetDlSrc();
ab.setDlAddr(macaddr);
log.debug("action {}", ab.build());
return ab.build();
}
}
else {
log.debug("Invalid action: '{}'", actionToDecode);
return null;
}
return null;
}
示例3: FlowAlias
import org.projectfloodlight.openflow.protocol.action.OFActionSetDlSrc; //导入依赖的package包/类
public FlowAlias(OFFlowMod flowmod){
this.ofm = flowmod;
this.aliasList = new ArrayList<>();
this.fra = FlowRuleAction.DROP;
this.lastConflictAlias = null;
Match match = flowmod.getMatch();
Match.Builder mb = match.createBuilder();
List<OFAction> actions = flowmod.getActions();
//initialize alias with match filed
Alias alias = new Alias(match);
//add alias to list
this.aliasList.add(alias);
//update alias based on actions
for (OFAction act : actions){
switch (act.getType()){
case SET_DL_SRC:
OFActionSetDlSrc setDLSRC = (OFActionSetDlSrc)act;
mb.setExact(MatchField.ETH_SRC, setDLSRC.getDlAddr());
break;
case SET_DL_DST:
OFActionSetDlDst setDLDST = (OFActionSetDlDst)act;
mb.setExact(MatchField.ETH_DST, setDLDST.getDlAddr());
break;
case SET_NW_SRC:
OFActionSetNwSrc setNWSRC = (OFActionSetNwSrc)act;
mb.setExact(MatchField.IPV4_SRC,setNWSRC.getNwAddr());
break;
case SET_NW_DST:
OFActionSetNwDst setNWDST = (OFActionSetNwDst)act;
mb.setExact(MatchField.IPV4_DST,setNWDST.getNwAddr());
break;
case SET_TP_SRC:
OFActionSetTpSrc setTPSRC = (OFActionSetTpSrc)act;
mb.setExact(MatchField.TCP_SRC, setTPSRC.getTpPort());
break;
case SET_TP_DST:
OFActionSetTpDst setTPDST = (OFActionSetTpDst)act;
mb.setExact(MatchField.TCP_SRC, setTPDST.getTpPort());
break;
case ENQUEUE:
case OUTPUT:
OFActionOutput output = (OFActionOutput)act;
alias.setPort(output.getPort());
this.fra = FlowRuleAction.FORWARD;
break;
}
}
//save modified action
alias.setMatch(mb.build());
//add updated alias to the list
this.aliasList.add(alias);
}