OpenFlow Meter的坑

关于OpenvSwitch meter表的问题

如以下所示,我想要给OVS下发一个meter表,结果返回OFPT_ERROR (OF1.3) (xid=0x2): OFPMMFC_OUT_OF_METERS错误

root@kaola:~# ovs-ofctl -O OpenFlow13 add-meter s1 meter=1,kbps,band=type=drop,rate=300
OFPT_ERROR (OF1.3) (xid=0x2): OFPMMFC_OUT_OF_METERS
OFPT_METER_MOD (OF1.3) (xid=0x2): ADD meter=1 kbps bands=
type=drop rate=300

经查找规范

If a switch cannot add the incoming meter entry due to lack of space, the switch must send an ofp_error_msg with OFPET_METER_MOD_FAILED type and OFPMMFC_OUT_OF_METERS code

发现是电脑运行空间的问题,可是我的电脑内存是8G,感觉应该不是这个问题,OVS版本(Open vSwitch) 2.6.2

解决方法

由于meter表是openflow1.3版本以后才支持,所以所有命令需要指定OpenFlow1.3版本以上
ps: 在openvswitch-v2.8之前的版本中,还不支持meter
在v2.8版本之后已经实现,要正常使用的话,需要注意的是datapath类型要指定为netdev,band type暂时只支持drop,还不支持DSCP REMARK

这篇文章,可以得出要使用meter只能是升级到2.8.0以上了。

如何升级OvS

爬过了几个坑,建议大家不要装2.8.0,直接装2.8.1,笔者在此处踩了很多坑,一怒之下升级一切问题便荡然无存。

使用mininet的安装一来帮助我们快速安装OvS

此篇文章——Mininet使用源码安装 AND 通过脚本快速安装Open vSwitch2.3.0和Mininet,给出非常详细的卸载之类的步骤。

首先先卸载,然后使用mininet/util/install.sh里面的工具,输入以下命令

sudo ./install.sh -n3V 2.8.1 

然后安装完后,继续输入以下命令

mkdir -p /usr/local/etc/openvswitch
ovsdb-tool create /usr/local/etc/openvswitch/conf.db vswitchd/vswitch.ovsschema  2>/dev/null
 
ovsdb-server -v --remote=punix:/usr/local/var/run/openvswitch/db.sock \
             --remote=db:Open_vSwitch,Open_vSwitch,manager_options \
             --private-key=db:Open_vSwitch,SSL,private_key \
             --certificate=db:Open_vSwitch,SSL,certificate \
             --bootstrap-ca-cert=db:Open_vSwitch,SSL,ca_cert \
             --pidfile --detach
 
ovs-vsctl --no-wait init
ovs-vswitchd --pidfile --detach
ovs-vsctl show

接下来请安稳的使用OvS的meter表

参考链接

posted @ 2017-11-14 15:12  考拉小无  阅读(4488)  评论(11编辑  收藏  举报