條消息下發(fā) 下來的。
[0076] 在一種可能的實(shí)現(xiàn)方式中,控制器返回的響應(yīng)消息可以為擴(kuò)展的ofp_flow_mod 消息。
[0077] 擴(kuò)展的ofp_flow_mod消息為在ofp_flow_mod消息中定義一個(gè)數(shù)組后所得到的消 息,并且,擴(kuò)展的fpt_flow_mod消息通過定義的數(shù)組可同時(shí)攜帶多個(gè)流表項(xiàng)。
[0078] 其中,〇fp_fl〇w_mod消息為現(xiàn)有技術(shù)中基于OpenFlow協(xié)議定義的消息,現(xiàn)有技術(shù) 中的每個(gè)〇fP_f Iow_mod消息只能攜帶一個(gè)流表項(xiàng),即,如果OpenFIow控制器需要下發(fā)的流 表項(xiàng)有多個(gè),那么,其就需要下發(fā)多個(gè)〇fp_fl〇w_mod消息。
[0079] 在本實(shí)施例中,擴(kuò)展的ofp_flow_mod消息除了攜帶有與數(shù)據(jù)包匹配的所有流表 項(xiàng)外,還攜帶有消息類型標(biāo)識以及流表項(xiàng)數(shù)量標(biāo)識。其中,消息類型標(biāo)識用于指示響應(yīng)消息 為擴(kuò)展的〇fp_fl〇w_mod消息,流表項(xiàng)數(shù)量標(biāo)識用于指示擴(kuò)展的ofp_flow_mod消息中攜帶 的流表項(xiàng)的數(shù)量。
[0080] 由于擴(kuò)展的ofp_flow_mod消息攜帶的流表項(xiàng)有多個(gè),因此,ofp_flow_mod消息可 通過攜帶流表項(xiàng)數(shù)量標(biāo)識指示擴(kuò)展的〇fp_flow_mod消息所攜帶的流表項(xiàng)的數(shù)量。
[0081] 可以理解的是,實(shí)際應(yīng)用中,交換機(jī)可能既需要支持現(xiàn)有技術(shù)中配置流表項(xiàng)的方 式,又要支持本發(fā)明實(shí)施例提供的配置流表項(xiàng)的方式,即能夠兼容兩種配置流表項(xiàng)的方式。 在這種情況下,交換機(jī)接收的響應(yīng)消息就會有兩種,一種為現(xiàn)有技術(shù)中的〇fp_fl〇w_m 〇d消 息,一種為本發(fā)明實(shí)施例提供的擴(kuò)展的〇fp_fl〇w_mod消息,為了區(qū)分這兩種消息,可在擴(kuò) 展的〇fp_fl〇w_mod消息中攜帶消息類型標(biāo)識,交換機(jī)在接收到擴(kuò)展的ofp_flow_mod消息 后,通過消息中攜帶的消息類型標(biāo)識,就可知道接收的消息為攜帶有多個(gè)流表項(xiàng)的擴(kuò)展的 ofp_flow_mod 消息。
[0082] 擴(kuò)展的ofp_flow_mod消息的結(jié)構(gòu)體如下所示:
[0083]
【主權(quán)項(xiàng)】
1. 一種配置流表項(xiàng)的方法,其特征在于,所述方法包括: 交換機(jī)向控制器發(fā)送一個(gè)請求下發(fā)流表項(xiàng)的請求消息,所述請求消息中攜帶有待轉(zhuǎn)發(fā) 的數(shù)據(jù)包; 所述交換機(jī)接收所述控制器返回的一個(gè)響應(yīng)消息,所述響應(yīng)消息中攜帶有與所述待轉(zhuǎn) 發(fā)的數(shù)據(jù)包匹配的所有流表項(xiàng); 所述交換機(jī)從所述響應(yīng)消息中提取與所述待轉(zhuǎn)發(fā)的數(shù)據(jù)包匹配的所有流表項(xiàng); 所述交換機(jī)將提取出的所有流表項(xiàng)聚合為硬件層的流表項(xiàng),并在所述交換機(jī)支持所述 硬件層的流表項(xiàng)時(shí),將所述硬件層的流表項(xiàng)配置到硬件層的流表中。
2. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法還包括: 通過所述響應(yīng)消息中攜帶的,與所述待轉(zhuǎn)發(fā)的數(shù)據(jù)包匹配的所有流表項(xiàng)轉(zhuǎn)發(fā)所述待轉(zhuǎn) 發(fā)的數(shù)據(jù)包。
3. 根據(jù)權(quán)利要求1或2所述的方法,其特征在于,所述交換機(jī)和所述控制器之間通過 OpenFlow協(xié)議進(jìn)行通信,所述請求消息和所述響應(yīng)消息通過所述OpenFlow協(xié)議傳輸。
4. 根據(jù)權(quán)利要求3所述的方法,其特征在于,所述響應(yīng)消息為擴(kuò)展的〇fp_fl〇W_m〇d消 息,所述擴(kuò)展的〇fp_fl〇w_mod消息為在ofp_flow_mod消息中定義一個(gè)數(shù)組后所得到的消 息,并且,所述擴(kuò)展的〇fp_fl〇w_mod消息通過定義的數(shù)組可同時(shí)攜帶多個(gè)流表項(xiàng)。
5. 根據(jù)權(quán)利要求4所述的方法,其特征在于,所述響應(yīng)消息還攜帶有消息類型標(biāo)識以 及流表項(xiàng)數(shù)量標(biāo)識,所述消息類型標(biāo)識用于指示所述響應(yīng)消息為擴(kuò)展的 〇fp_fl〇W_mod消 息,所述流表項(xiàng)數(shù)量標(biāo)識用于指示所述擴(kuò)展的〇fp_fl〇w_m〇d消息中攜帶的流表項(xiàng)的數(shù)量。
6. 根據(jù)權(quán)利要求1~5中任意一項(xiàng)所述的方法,其特征在于,所述方法還包括:將提取 出的所有流表項(xiàng)配置到軟件層的流表中。
7. -種下發(fā)流表項(xiàng)的方法,其特征在于,所述方法包括: 控制器接收交換機(jī)發(fā)送的一個(gè)請求下發(fā)流表項(xiàng)的請求消息,所述請求消息中攜帶有待 轉(zhuǎn)發(fā)的數(shù)據(jù)包; 所述控制器生成與所述待轉(zhuǎn)發(fā)的數(shù)據(jù)包匹配的所有流表項(xiàng); 所述控制器向所述交換機(jī)返回一個(gè)響應(yīng)消息,所述響應(yīng)消息中攜帶有與所述待轉(zhuǎn)發(fā)的 數(shù)據(jù)包匹配的所有流表項(xiàng),其中,與所述數(shù)據(jù)包匹配的所有流表項(xiàng)用于聚合為硬件層的流 表項(xiàng),所述硬件層的流表項(xiàng)用于配置到所述交換機(jī)的硬件層的流表中。
8. 根據(jù)權(quán)利要求7所述的方法,其特征在于,所述控制器和所述交換機(jī)之間通過 OpenFlow協(xié)議進(jìn)行通信,所述請求消息和所述響應(yīng)消息通過所述OpenFlow協(xié)議傳輸。
9. 根據(jù)權(quán)利要求8所述的方法,其特征在于,所述響應(yīng)消息為擴(kuò)展的〇fp_fl〇W_m〇d消 息,所述擴(kuò)展的〇fp_fl〇w_mod消息為在ofp_flow_mod消息中定義一個(gè)數(shù)組后所得到的消 息,并且,所述擴(kuò)展的〇fp_fl〇w_mod消息通過定義的數(shù)組可同時(shí)攜帶多個(gè)流表項(xiàng)。
10. -種配置流表項(xiàng)的裝置,其特征在于,所述裝置包括: 發(fā)送模塊,用于向控制器發(fā)送一個(gè)請求下發(fā)流表項(xiàng)的請求消息,所述請求消息中攜帶 有待轉(zhuǎn)發(fā)的數(shù)據(jù)包; 接收模塊,用于接收所述控制器返回的一個(gè)響應(yīng)消息,所述響應(yīng)消息中攜帶有與所述 待轉(zhuǎn)發(fā)的數(shù)據(jù)包匹配的所有流表項(xiàng); 提取模塊,用于從所述接收模塊接收的所述響應(yīng)消息中提取與所述待轉(zhuǎn)發(fā)的數(shù)據(jù)包匹 配的所有流表項(xiàng); 硬件層配置模塊,用于將所述提取模塊提取出的所有流表項(xiàng)聚合為硬件層的流表項(xiàng), 并在所述交換機(jī)支持所述硬件層的流表項(xiàng)時(shí),將所述硬件層的流表項(xiàng)配置到硬件層的流表 中。
11. 根據(jù)權(quán)利要求10所述的裝置,其特征在于,所述裝置還包括: 轉(zhuǎn)發(fā)模塊,用于通過所述接收模塊接收的所述響應(yīng)消息中攜帶的與所述待轉(zhuǎn)發(fā)的數(shù)據(jù) 包匹配的所有流表項(xiàng)轉(zhuǎn)發(fā)所述待轉(zhuǎn)發(fā)的數(shù)據(jù)包。
12. 根據(jù)權(quán)利要求10或11所述的裝置,其特征在于,所述交換機(jī)和所述控制器之間通 過OpenFlow協(xié)議進(jìn)行通信,所述請求消息和所述響應(yīng)消息通過所述OpenFlow協(xié)議傳輸。
13. 根據(jù)權(quán)利要求12所述的裝置,其特征在于,所述響應(yīng)消息為擴(kuò)展的〇fp_fl〇W_m〇d 消息,所述擴(kuò)展的〇fp_fl〇w_mod消息為在ofp_flow_mod消息中定義一個(gè)數(shù)組后所得到的 消息,并且,所述擴(kuò)展的〇fp_fl〇w_mod消息通過定義的數(shù)組可同時(shí)攜帶多個(gè)流表項(xiàng)。
14. 根據(jù)權(quán)利要求13所述的裝置,其特征在于,所述響應(yīng)消息還攜帶有消息類型標(biāo)識 以及流表項(xiàng)數(shù)量標(biāo)識,所述消息類型標(biāo)識用于指示所述響應(yīng)消息為擴(kuò)展的 〇fp_fl〇W_mod 消息,所述流表項(xiàng)數(shù)量標(biāo)識用于指示所述擴(kuò)展的〇fp_fl〇w_mod消息中攜帶的流表項(xiàng)的數(shù) 量。
15. 根據(jù)權(quán)利要求10~14中任意一項(xiàng)所述的裝置,其特征在于,所述裝置還包括: 軟件層配置模塊,用于將提取出的所有流表項(xiàng)配置到軟件層的流表中。
16. -種下發(fā)流表項(xiàng)的裝置,其特征在于,所述裝置包括: 接收模塊,用于接收交換機(jī)發(fā)送的一個(gè)請求下發(fā)流表項(xiàng)的請求消息,所述請求消息中 攜帶有待轉(zhuǎn)發(fā)的數(shù)據(jù)包; 流表項(xiàng)生成模塊,用于生成與所述待轉(zhuǎn)發(fā)的數(shù)據(jù)包匹配的所有流表項(xiàng); 發(fā)送模塊,用于向所述交換機(jī)返回一個(gè)響應(yīng)消息,所述響應(yīng)消息中攜帶有與所述待轉(zhuǎn) 發(fā)的數(shù)據(jù)包匹配的所有流表項(xiàng),其中,與所述待轉(zhuǎn)發(fā)的數(shù)據(jù)包匹配的所有流表項(xiàng)用于聚合 為硬件層的流表項(xiàng),所述硬件層的流表項(xiàng)用于配置到所述交換機(jī)的硬件層的流表中。
17. 根據(jù)權(quán)利要求16所述的裝置,其特征在于,所述控制器和所述交換機(jī)之間通過 OpenFlow協(xié)議進(jìn)行通信,所述請求消息和所述響應(yīng)消息通過所述OpenFlow協(xié)議傳輸。
18. 根據(jù)權(quán)利要求17所述的裝置,其特征在于,所述響應(yīng)消息為擴(kuò)展的〇fp_fl〇W_m〇d 消息,所述擴(kuò)展的〇fp_fl〇w_mod消息為在ofp_flow_mod消息中定義一個(gè)數(shù)組后所得到的 消息,并且,所述擴(kuò)展的〇fp_fl〇w_mod消息通過定義的數(shù)組可同時(shí)攜帶多個(gè)流表項(xiàng)。
【專利摘要】本申請?zhí)峁┝艘环N配置、下發(fā)流表項(xiàng)的方法及裝置,交換機(jī)向控制器發(fā)送一個(gè)請求下發(fā)流表項(xiàng)的請求消息,請求消息中攜帶有待轉(zhuǎn)發(fā)的數(shù)據(jù)包,控制器接收該請求消息后,生成與待轉(zhuǎn)發(fā)的數(shù)據(jù)包匹配的所有流表項(xiàng),并向交換機(jī)返回一個(gè)攜帶有與待轉(zhuǎn)發(fā)的數(shù)據(jù)包匹配的所有流表項(xiàng)的響應(yīng)消息,交換機(jī)接收到該響應(yīng)消息后,從響應(yīng)消息中提取出與待轉(zhuǎn)發(fā)的數(shù)據(jù)包匹配的所有流表項(xiàng),將提取出的所有流表項(xiàng)聚合為硬件層的流表項(xiàng),并在交換機(jī)支持硬件層的流表項(xiàng)時(shí),將硬件層的流表項(xiàng)配置到硬件層的流表中。本申請?zhí)峁┑呐渲?、下發(fā)流表項(xiàng)的方法及裝置,能夠縮短硬件層的流表項(xiàng)配置到硬件層的流表中的時(shí)間,進(jìn)而能夠縮短數(shù)據(jù)包的轉(zhuǎn)發(fā)時(shí)延,并且,能夠降低數(shù)據(jù)包的丟包數(shù)量。
【IPC分類】H04L12-931, H04L12-741
【公開號】CN104796336
【申請?zhí)枴緾N201410025787
【發(fā)明人】文白林, 沈偉峰, 王濤
【申請人】華為技術(shù)有限公司
【公開日】2015年7月22日
【申請日】2014年1月20日
【公告號】WO2015106623A1