OVS流表table之間的跳轉

2022-03-08 22:28:50 字數 2343 閱讀 8667

今天在幫學弟解決問題的時候,遇到乙個table0、table1之間的微妙小插曲,引起了注意,後來查了一下資料發現原因了。

wpq@wpq:~$ sudo ovs-ofctl dump-flows -o openflow13 s1

ofpst_flow reply (of1.3) (xid=0x2):

cookie=0x0, duration=275.673s, table=0, n_packets=22, n_bytes=2156, priority=1000,ip,nw_src=10.0.0.2,nw_dst=10.0.0.1 actions=output:1

cookie=0x0, duration=285.517s, table=0, n_packets=16, n_bytes=672, priority=1000,arp actions=flood

cookie=0x0, duration=53.643s, table=1, n_packets=0, n_bytes=0, priority=1000,ip,nw_src=10.0.0.1,nw_dst=10.0.0.2 actions=output:2

如上輸出所示,位於table1的流表的n_packet始終無法**,說明流表始終沒有被匹配到。

還是自己太年輕,把最基本的openflow協議都給忘了,流表之間的跳轉是要action

ovs流表分析

上述鏈結中有句話引到

流表間的跳轉並沒有用標準openflow規範中的指令goto_table,而是使用了nicira(開發ovs的公司)的擴充套件動作resubmit

所以可以用兩種方法

1、resubmit

wpq@wpq:~$ sudo ovs-ofctl -o openflow13 add-flow s1 "table=0,priority=0,idle_timeout=0,actions=resubmit(,1)"

wpq@wpq:~$ sudo ovs-ofctl dump-flows -o openflow13 s1

ofpst_flow reply (of1.3) (xid=0x2):

cookie=0x0, duration=2.370s, table=0, n_packets=0, n_bytes=0, priority=0 actions=resubmit(,1)

cookie=0x0, duration=1139.038s, table=0, n_packets=23, n_bytes=2254, priority=1000,ip,nw_src=10.0.0.2,nw_dst=10.0.0.1 actions=output:1

cookie=0x0, duration=1148.882s, table=0, n_packets=16, n_bytes=672, priority=1000,arp actions=flood

cookie=0x0, duration=917.008s, table=1, n_packets=0, n_bytes=0, priority=1000,ip,nw_src=10.0.0.1,nw_dst=10.0.0.2 actions=output:2

2、goto_table

wpq@wpq:~$ sudo ovs-ofctl -o openflow13 add-flow s1 "table=0,priority=0,idle_timeout=0,actions=goto_table=1"

wpq@wpq:~$ sudo ovs-ofctl dump-flows -o openflow13 s1

ofpst_flow reply (of1.3) (xid=0x2):

cookie=0x0, duration=6.110s, table=0, n_packets=0, n_bytes=0, priority=0 actions=goto_table:1

cookie=0x0, duration=101.774s, table=0, n_packets=0, n_bytes=0, priority=1000,ip,nw_src=10.0.0.2,nw_dst=10.0.0.1 actions=output:1

cookie=0x0, duration=94.002s, table=0, n_packets=0, n_bytes=0, priority=1000,arp actions=flood

cookie=0x0, duration=1745.115s, table=1, n_packets=4, n_bytes=392, priority=1000,ip,nw_src=10.0.0.1,nw_dst=10.0.0.2 actions=output:2

表 Table 和段 Segment 之間的關係

表是段,但段不一定是表,段還有index段 undo段 分割槽之類的 具體如下 首先,要清楚它們的概念 表是邏輯物件 段是物理儲存物件 然後,再看它們之間的關係 段的存在,並不是依賴於表的。建立一些其它邏輯物件也會會建立段,如索引 物化檢視 一張普通表 堆組織表 對應乙個段 表的建立,並不意味著段的...

Activity 之間的跳轉

參考 這裡的文件 intent間傳送資料一般有兩種常用的辦法 1.extra 2.data.extra可以用intent.putextra放入資料。新啟動的activity可用intent.getextras取出來bundle,然後用bundles.getlong,getint,getboolean...

android Activity之間的跳轉

這裡主要用的是建立乙個intent物件並呼叫其相關方法來實現activity之間的跳轉的。主檔案如下 import相關class import android.os.bundle import android.view.view import android.widget.button import...