OpenFlowJ-Loxigen简介

OpenFlowJ-Loxigen是Floodlight v1.0以上版本依赖的库,支持OpenFlow 1.0至1.4。它提供了OFFactory接口和各版本的工厂类,用于创建Match、Action和FlowMods等。MATCH通过setExact和setMasked方法设置精确和掩码匹配。Actions通过OXM在OpenFlow 1.3中表示头部域修改。OFFlowMod接口有多个子接口,用于不同类型的FlowMod操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

OpenFlowJ-Loxigen简介
Floodlight v1.0及以上版本的依靠新的OpenFlowJ-Loxigen库。OpenFlowJ-Loxigen支持的OpenFlow版本由1.0到1.4。所有OpenFlow的概念和类型都可以通过OpenFlowJ-Loxigen来获得。OpenFlowJ-Loxigen支持更新,更优化地方式去创建OpenFlow消息,匹配域(Matches),动作集(Actions),流表更改(FlowMods)等等。本文主要分析OpenFlowJ-Loxigen库当中一些常用的类和构造方法。

OFFactory

几乎所有OpenFlow概念(OFObject,例如:Match, OFAction, OFMessage, etc.)可以被构造器构造,所有的构造器都通过OFFactory暴露。由于不同版本的OpenFlow协议存在差异性,所以每个OpenFlow协议版本对应一个特地的工厂类:

OFFactoryVer10
OFFactoryVer11
OFFactoryVer12
OFFactoryVer13
OFFactoryVer14(在floodlight中不被官方支持)
这些都实现了OFFactory接口,所以你可以简单地使用OFFactory接口,忽略存在不同版本的工厂类。
有很多种方法可以得到你想要的OFFactory实例。你可以从OpenFlowJ-Loxigen,通过指定OFVersion的枚举值来请求一个特定版本的OFFactory。

OFFactory my13Factory = OFFactories.getOFFactory(OFVersion.OF_13);    //取得一个OpenFlow 1.3的工厂类

更加实用的是,你可以从IOFSwitch中取得工厂类。

IOFSwitch mySwitch = switchService.getSwitch(DatapathId.of("00:00:00:00:00:00:00:01"));
OFFactory myFactory = mySwitch.getOFFactory();    //取得与请求交换机版本相符的工厂类版本

也可以从由OFFactory生成的已存在对象中取得一个特定的OFFactory,所有从OFFactory构造的对象中得到的OFVersion和用OFFactory构造出来的相同。

OFVersion flowModVersion = myFlowMod.getVersion();    //假设myFlowMod已经被构造好
OFFactory myFactory 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值