RYU OFPMatch 的使用方法

今天搞了我一天的错误,好在现在解决了:

问题介绍:

我想使用下面的代码来设置一条流,匹配从地址10.0.0.1到10.0.04的流量

datapath = switch.dp
            
ofproto = datapath.ofproto
parser = datapath.ofproto_parser
                
match = parser.OFPMatch(
    ipv4_src = ('10.0.0.1'),
    ipv4_dst = ('10.0.0.2')
)
            
actions = [parser.OFPActionOutput(ofproto.OFPP_CONTROLLER,
                                          ofproto.OFPCML_NO_BUFFER)]
nst = [parser.OFPInstructionActions(ofproto.OFPIT_APPLY_ACTIONS,
                                             actions)]
mod = parser.OFPFlowMod(datapath=datapath,cookie=COOKIE_ADMIN_RULE,
             priority=ADMIN_PRIORITY+1,match=match,
                                        instructions=inst)
datapath.send_msg(mod)

但是,使用了之后,没有办法添加到OVS上。

然后下面的网页给我找到了解决方法:

https://sourceforge.net/p/ryu/mailman/message/35091288/

这里面虽然问题不是我的问题,但是我看了很多个帖子,很多设置流的,都没有设置IP地址的。有设置的,都设置了很多其他的属性,包括了包的类型什么的。所以,我想这可能是我的错误原因。然后,添加之后,确实可以了。而且,学习了一种优美一点的写法

from ryu.lib.packet import ether_types
from ryu.lib.packet import  in_proto as inet


kwargs = dict(in_port=1, eth_type=ether_types.ETH_TYPE_IP,
              ipv4_src='10.0.0.1', ipv4_dst='10.0.0.2',
              ip_proto=inet.IPPROTO_UDP, udp_dst=5555)
match1 = parser.OFPMatch(**kwargs)
kwargs['in_port'] = 2
match2 = parser.OFPMatch(**kwargs)

 

转载于:https://www.cnblogs.com/hwy89289709/p/6882237.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值