
为什么下发流表日志提示这 个,怎么不支持dl_valn字段,但网上又说是正常,使用的是openflow1.3版本
阿里嘎多学长整理AIGC生成,因移动端显示问题导致当前答案未能完全显示,请使用PC端查看更加详细的解答过程
你遇到了一个问题:在使用 OpenFlow 1.3 版本的 SDN 流表下发日志时,提示不支持 dl_valn 字段,但网上又说这是正常的行为。
解决方案:
dl_valn 字段在 OpenFlow 1.3 版本中已经被弃用了。OpenFlow 1.3 版本中引入了 dl_vlan 字段来取代 dl_valn。dl_vlan 字段代替 dl_valn 字段。例如,在使用 OpenFlow 1.3 版本的 Java 代码中,你可以使用以下代码来下发流表:
OpenFlowFlowMod flowMod = new OpenFlowFlowMod();
flowMod.setTableId(0);
flowMod.setMatch(new OpenFlowMatch());
flowMod.getMatch().setEthernetType(0x0800); // IP协议
flowMod.getMatch().setEthernetSrc("00:11:22:33:44:55");
flowMod.getMatch().setEthernetDst("00:11:22:33:44:66");
flowMod.getMatch().setVlanId(100); // 使用dl_vlan字段
flowMod.setInstructions(new OpenFlowInstructions());
flowMod.getInstructions().add(new OpenFlowInstructionApplyActions());
flowMod.getInstructions().get(0).getActions().add(new OpenFlowActionOutput(1));
在上面的代码中,我们使用 dl_vlan 字段来指定 VLAN ID,而不是 dl_valn 字段。
希望这解决了你的问题!