關於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表