关于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表