openflow mac学习表的详细分析

来源:互联网 发布:js跳出each循环函数 编辑:程序博客网 时间:2024/06/01 10:13

MAC学习表,是使用学习动作(actions=learn())来学习得到的。

1 MAC学习表学到的样式如下,

table=10,vlan_tci=0x0014/0x0fff, dl_dst=00:50:00**04 actions=load:0x4->NXM_NX_REG0[0..15]

table=10,vlan_tci=0x0015/0x0fff, dl_dst=00:50:00**05 actions=load:0x5->NXM_NX_REG0[0..15]

上面的例子是学到了2个表项

2 MAC学习表table=10是怎么学来的?

ovs-ofctl add-flow br0

"table=2, actions=learn(table=10, NXM_OF_VLAN_TCI[0..11] NXM_OF_ETH_DST[]=NXM_OF_ETH_SRC[],load:NXM_OF_IN_PORT[]->NXM_NX_REG0[0..15]),

resubmit(,3)"

是这样学来的。

2.1 openflow匹配table 0,在table 0中如果有resubmit(,2)动作,则跳到匹配table 2

2.2 table 2的内容做一下详细解读,

动作是学习

2.2.1 table=10 指定学习表是10

2.2.2 NXM_OF_VLAN_TCI[0..11] 指定匹配条件,这句话等同于NXM_OF_VLAN_TCI[0..11]=NXM_OF_VLAN_TCI[0..11]

指定表10里的流中的vlan id和我们当前处理的包里的vlan id一样

2.2.3 NXM_OF_ETH_DST[]=NXM_OF_ETH_SRC[], 指定匹配条件,即,指定,表10里的流中的目的mac地址,和我们当前处理的包里的源mac地址一样。

2.2.4 load: 写相应的区域。这里是将入端口写入寄存器0




参考

1 openstack中用的的学习表

https://wiki.openstack.org/wiki/Ovs-flow-logic


2 openvswitch官方学习表情况


https://github.com/openvswitch/ovs/blob/master/tutorial/Tutorial.md


3 DVR介绍

http://www.ibm.com/developerworks/cn/cloud/library/1509_xuwei_dvr/

(FIXME)

4 OVS lab (FIXME)

http://www.relaxdiego.com/2014/09/ovs-lab.html

5

http://archive.openflow.org/wk/index.php/OpenFlow_Tutorial


0 0
原创粉丝点击