定義軟件定義網絡的網絡元件的查找表實現的方法和設備的制作方法
【專利摘要】本發明涉及定義軟件定義網絡的網絡元件的查找表實現的方法和設備。呈現了一種用于定義用于軟件定義網絡“SDN”的網絡元件的查找表的實現的方法和設備。網絡元件包括用于以兩種或更多種相互替換方式實現查找表的硬件。該方法包括基于a)可用于實現查找表的硬件,b)關于一個或多個查找鍵的信息,和c)下列中的至少一個:查找表的條目的最大數目、連續查找之間的平均時間、查找表的連續修改之間的平均時間,選擇(301)相互替換方式的最佳或至少適合的一個,以實現查找表。該方法使得能夠以用最佳或至少合適方式利用網絡元件的硬件資源的方式配置網絡元件。
【專利說明】定義軟件定義網絡的網絡元件的查找表實現的方法和設備
【技術領域】
[0001]本發明通常涉及軟件定義網絡“SND”。更具體而言,本發明涉及一種用于定義用于軟件定義網絡的網絡元件的查找表的實現的方法、設備和計算機程序。此外,本發明涉及軟件定義網絡的網絡元件。
【背景技術】
[0002]軟件定義網絡是用于數據傳送網絡的新興架構。在軟件定義網絡“SND”中,控制平面與數據平面分離,使得在可以與網絡元件分離的一個或多個控制器中實現控制平面,并且在網絡元件中實現數據平面。網絡元件可以是例如網際協議“IP”路由器、多協議標簽交換“MPLS”節點、分組光交換機、和/或以太網交換機。每個網絡元件可以由單一裝置或多個裝置的組合構成。典型的是,該軟件定義網絡允許交換和/或路由策略的快速試驗和優化,以及對于先前為封閉并且專有的網絡元件內部的外部訪問。
[0003]基于網絡的網際協議“IP”首先基于自主系統“AS”的概念建立。該概念允許網絡基于局部須知信息通過將分組轉發給合理的下一跳的連接接頭來縮放和擴展。AS原理工作非常像傳統郵局服務,其中給定城市的郵政工人不需要了解另一城市中所有街道的所有居住者,以便為手中的信件選擇合理的下一跳。聯網的該方法很簡單,并且已經證明有彈性且可擴展。然而,該方法具有一些缺點。其不允許指定目的地或者具有家庭郵箱的住戶在不改變它們身份的情形下移動如分組遞送服務所涉及的那么遠。作為它們附加到的網絡接口的目的地拓撲位置,指令與分組遞送服務相關的它們的身份。此外,僅使用基本AS原理,難以指定其他特質,諸如邏輯組、接入控制、服務質量、中間網絡處理、或指定與形成流的分組序列相關的方面。
[0004]使用郵政服務的類比,軟件定義網絡針對任何所給街道位置工作,使得來自所有住戶的所有信件在軟件定義網絡邊緣上通過網絡元件首先聚集。該網絡元件被配置成使用全球查找機制來檢查用于每一個信件目的地的當前位置。基于全球查找和基于其他全球定義和全球測量的考慮,諸如接入控制或遠程位置負載狀態,所述網絡元件將一個或多個原始信件放置在地址為作為當前目的地的每個街道位置的額外信封內。其然后使用如傳統的網際協議“IP”的正常郵政服務,以得到遠程位置的這些外封裝。這基于現有和可擴展的逐跳轉發服務來完成。然后,所述外封裝通過遠程網絡元件打開并且原始信封被遞送到目的地。應該注意的是,在軟件定義聯網和郵政服務之間的上述類比是非常簡化的,并且其僅給出關于由軟件定義聯網提供的通用可能性的限制觀點。
[0005]然而,軟件定義網絡離不開挑戰。一些挑戰涉及配置網絡元件,使得網絡元件時常能夠執行以上說明的任務并且使得網絡元件的資源以充分最佳方式被利用。配置網絡元件包括在網絡元件能夠作為軟件定義網絡的一部分操作的幫助下定義和實現一個或多個查找表。應該實現每個查找表,使得以充分有效方式利用網絡元件的軟件資源。
【發明內容】
[0006]下文呈現簡化的
【發明內容】
,以便提供對各種本發明實施例的一些方面的基本理解。該概要不是本發明的廣泛概述。它既不是旨在識別本發明的關鍵或重要元件,也不是描述本發明的范圍。下文的
【發明內容】
僅以簡化形式呈現本發明的一些概念,作為本發明的例示實施例的更加詳細描述的前序。
[0007]根據本發明,提供了一種用于定義用于軟件定義網絡的網絡元件的查找表的實現的新方法,其中網絡元件包括用于以兩種或更多種相互替換方式實現查找表的硬件。根據本發明的方法包括基于可用于實現查找表的硬件、一個或多個第一數據項、和一個或多個第二數據項來選擇兩種或更多種相互替換方式的最佳或至少合適的一種,以實現查找表,其中:
[0008]-一個或多個第一數據項提供關于查找表的一個或多個查找鍵的信息,以及
[0009]-一個或多個第二數據項指示下列中的至少一個:查找表的條目的最大數目、從查找表的連續查找之間的平均時間、查找表的連續修改之間的平均時間。
[0010]用于定義查找表的實現的上述方法使得能夠以用最佳或至少適合方式利用網絡元件的硬件資源的方式來配置網絡元件。關于查找鍵的信息可以但不一定指示例如查找鍵的字段長度和/或查找的類型,諸如例如虛擬本地訪問網絡標識符“VLAN-1D”、多協議標簽交換“MPLS”標簽值、網際協議目的地地址“ IP DA”、網際協議源地址“ IP DA”、以及以太網媒體訪問控制“MAC”地址。可以例如用比特或字節來表達字段長度。例如,實現方式的選擇可以是使得查找鍵的這種短字段長度和連續查找(即,高查找頻率)之間的較小平均時間,趨于促進基于內容存取存儲器“CAM”技術的實現,而長字段長度和低查找頻率趨于促使基于檢索樹“trie”算法和隨機存取存儲器“RAM”技術的實現。又例如,結合基于內容存取存儲器技術的實現,查找表的“不考慮”鍵匹配比特位置的高相對部分可以被定義以促進三進制內容存取存儲器“TCAM”技術,而“不考慮”鍵匹配比特位置的低相對部分可以被定義,以促進二進制內容存取存儲器技術。又例如,實現方式的選擇可以是使得一個或多個查找鍵的某些類型趨于促進特定實現。例如,可能存在用于例如VLAN-1D查找鍵的專用硬件。
[0011]根據本發明,也提供了一種用于定義用于軟件定義網絡的網絡元件的查找表的實現的新設備,所述網絡元件包括用于以兩種或更多種相互替換方式實現查找表的硬件。根據本發明的設備包括處理系統,該處理系統適于:
[0012]-接收提供關于查找表的一個或多個查找鍵的信息的一個或多個第一數據項,
[0013]-接收一個或多個第二數據項,所述一個或多個第二數據項指示下列中的一個:查找表的條目的最大數目、從查找表的連續查找之間的平均時間、查找表的連續修改之間的平均時間,以及
[0014]-基于可用于實現查找表的硬件、一個或多個第一數據項、和一個或多個第二數據項來選擇兩種或更多種相互替換方式中的一種,以實現查找表。
[0015]根據本發明,也提供了一種用于軟件定義網絡的新網絡元件。所述網絡元件可以是例如網際協議“IP”路由器、多協議標簽交換“MPLS”交換機、分組光交換機、和/或以太網交換機。網絡元件可以由單一裝置或多個裝置的組合構成。此外,網絡元件可以具有模塊結構,使得其包括一個或多個行接口模塊和諸如控制模塊的一個或多個其他模塊。根據本發明的網絡元件包括:
[0016]-數據傳送接口,所述數據傳送接口用于接收數據和用于發射數據,接收到的數據指定要在網絡元件中實現的查找表,
[0017]-用于以兩種或更多種相互替換方式實現查找表的硬件,以及
[0018]-根據用于定義查找表的實現的本發明的設備。
[0019]根據本發明,也提供了一種新軟件定義網絡,該新軟件定義網絡包括根據本發明的一個或多個網絡元件和用于配置一個或多個網絡元件的控制器系統。應該注意的是,控制器系統或其一個或多個部件也可以用作一個或多個網絡元件,所述一個或多個網絡元件可以是例如網際協議“IP “路由器、多協議標簽交換“MPLS”節點、分組光交換機、和/或以太網交換機。
[0020]根據本發明,也提供了一種用于定義用于軟件定義網絡的網絡元件的查找表的實現的新計算機程序,網絡元件包括用于以兩種或更多種相互替換方式實現查找表的硬件。根據本發明的計算機程序包括計算機可執行指令,該計算機可執行指令用于控制可編程處理系統,以基于可用于實現查找表的硬件、一個或多個第一數據項、和一個或多個第二數據項來選擇兩種或更多種相互替換方式中的一種,以實現查找表,其中
[0021]-一個或多個第一數據項提供關于查找表的一個或多個查找鍵的信息,以及
[0022]-一個或多個第二數據項指示下列中的至少一個:查找表的條目的最大數目、從查找表的連續查找之間的平均時間、查找表的連續修改之間的平均時間。
[0023]根據本發明,也提供了一種新計算機程序產品。該計算機程序產品包括利用根據本發明的計算機程序編碼的非易失性計算機可讀介質,例如光盤“CD”。
[0024]在隨附從屬權利要求中描述了本發明的多個例示和非限制性實施例。
[0025]當結合附圖閱讀時,根據特定例示實施例的下文描述,將更好地理解關于構造和操作方法的本發明的各種例示和非限制性實施例和其額外的方面和優勢。
[0026]動詞“包含”和“包括”在該文檔中用作開放性限定,其既不排除也不要求未敘述特征的存在。除非另有明確說明,在隨附的從屬權利要求中所敘述的這些特征可以互相自由組合。
【專利附圖】
【附圖說明】
[0027]下文將參考附圖更加詳細地解釋本發明的例示和非限制性實施例和它們的優勢,在附圖中:
[0028]圖1示出根據本發明的示例性實施例的軟件定義網絡的示意圖,
[0029]圖2示出根據本發明的示例性實施例的網絡元件的示意圖,以及
[0030]圖3示出根據本發明的示例性實施例的用于配置軟件定義網絡的網絡元件的方法的流程圖。
【具體實施方式】
[0031]圖1示出根據本發明的示例性實施例的軟件定義網絡“SDN” 100的示意圖。軟件定義網絡包括網絡元件101、102、103和104以及控制器系統105。該示例性軟件定義網絡的網絡元件101-104與圖1中示出的數據傳送鏈路相互地互連。此外,示例性軟件定義網絡“SDN” 100可以包括在圖1中未示出的其他網絡元件。每個網絡元件可以是例如網際協議“IP”路由器、多協議標簽交換“MPLS1點、分組光交換機、和/或以太網交換機。每個網絡元件可以由單一裝置或多個裝置的組合構成。控制器系統105也可以由單一裝置或多個裝置的組合構成。在圖1中示出的示例性情形下,控制器系統105包括兩個互連裝置。終端設備107被連接到控制器系統105,并且網絡元件102用作可以是例如全球互聯網的外部網絡106的網關。控制器系統105包括數據傳送接口,該數據傳送接口用于從終端設備107和/或從與該控制系統的數據傳送接口的數據傳送鏈路連接的一個或多個其他設備接收數據。應該注意的是,控制器系統105或其一個或多個部件也可以用作一個或多個網絡元件,其可以是例如網際協議“IP”路由器、多協議標簽交換“MPLS”節點、分組光交換機、和/或以太網交換機。
[0032]每個網絡元件101-104包括控制處理器部和數據轉發部,控制處理部用于維持包括定義與管理數據幀將連同執行的動作的至少一個查找系統表的查找系統,數據轉發部用于根據查找系統來管理數據幀。查找系統的至少一個查找表可以但是不一定包括例如一個或多個連續流表和根據該OpenFlow規范的一組表。OpenFlow可以由開放聯網基金會“0NF”管理。在使用OpenFlow的示例性情形下,網絡元件中的每個流表包含一組流條目。每個流條目可以由匹配字段、計數器和被應用以與數據幀匹配的一組動作構成。匹配典型地在第一流表開始并且可以繼續額外的流表。流條目可以被排列成優先級順序,并且每個表中的第一匹配條目是正被使用的那個。如果發現匹配流條目,則與特定流條目相關聯的一個或多個動作被執行。如果在流表中沒有發現匹配,則可以將數據幀通過考慮的網絡元件和控制器系統105之間的OpenFlow信道轉發到控制器系統105,該數據幀可以被丟棄,或者該數據幀可以繼續下一流表或者組表。與每個流條目相關聯的動作可以包括例如數據幀轉發、數據幀修正、組表處理和流水線處理。流水線處理動作允許將數據幀發送到后續流表以用于進一步處理,并且允許元數據形式的信息在流表之間通信。當與匹配流條目相關聯的一個或多個動作不指定下一表時,表流水線處理停止。此時,考慮的數據幀通常被修正和轉發。組表處理動作允許將數據幀發送到組表以用于進一步處理并且允許元數據的形式的信息被通信到該組表。該組表包含組條目,其中每個組條目可以包含針對被定義為屬于特定組的數據幀的動作的列表。
[0033]控制器系統105適于將配置數據發送到網絡元件101-104的每個,配置數據包括用于配置考慮的網絡元件的數據項以根據例如用于配置網絡元件的OpenFlow的協議所定義的動作的預定聚集來維持查找系統。此外,配置數據可以包括一個或多個配置程序,每個配置程序包括定義將結合考慮的網絡元件中管理數據幀來執行動作或一連串動作的一個或多個計算機可執行指令。網絡元件101-104的每個的控制處理器部可以適于將每個配置程序與查找系統的一個或多個查找表相關聯,使得在查找系統的幫助下結合管理數據幀可調用(callable)執行該配置程序。網絡元件101-104的每個的數據轉發部可以適于,響應于其中管理特定數據幀包括執行配置程序的命令的情形,執行通過配置程序定義的動作或一系列動作。通過配置程序所定義的動作或一系列動作可以包括例如:從數據幀讀取數據、修正數據幀、選擇網絡元件的一個或多個出端口和將數據幀和它的可能復制轉發到選擇的一個或多個出端口、選擇查找系統的查找表之一并且從選擇的查找表執行查找、執行算術運算、分支操作、執行邏輯運算、讀取與數據幀相關聯的元數據、寫入與數據幀相關聯的元數據、修正與數據幀相關聯的元數據、丟棄數據幀、和/或復制數據幀。
[0034]網絡元件101-104的至少一個包括用于以兩種或更多種相互替換方式實現屬于網絡元件的查找系統的至少一個查找表的硬件。該硬件可以包括例如:網絡元件的數據轉發部、網絡元件的一個或多個隨機存取存儲器“RAM”、網絡元件的一個或多個二進制內容存取存儲器“CAM”、網絡元件的一個或多個三進制內容存取存儲器“TCAM”、和/或網絡元件的一個或多個存儲器總線。網絡元件適于基于a)可用于實現查找表的硬件,b)關于一個或多個查找鍵的信息,例如一個或多個查找鍵的一個字段長度或多個字段長度,以及c)下列中的至少一個:查找表的條目的最大數目、連續查找之間的平均時間、查找表的連續修改之間的平均時間,選擇相互替換方式的最佳或至少適合的一個,以實現查找表。上述選擇的目的是以最佳或至少合適的方式利用網絡元件的硬件資源。例如,一個或多個查找鍵的一個短字段長度或多個短字段長度和連續查找(即高查找頻率)之間的小平均時間趨于促進基于內容存取存儲器技術的實現,而長字段長度和低查找頻率趨于促進基于檢索樹“trie”算法和隨機存取存儲器“RAM”技術的實現。結合基于內容存取存儲器技術的實現,查找表的“不考慮”鍵匹配比特位置的高相對部分趨于促進三進制內容存取存儲器”TCAM “技術,而“不考慮”鍵匹配比特位置的低相對部分趨于促進二進制內容存取存儲器技術。
[0035]上述網絡元件可以適于計算例如一個或多個查找鍵的一個或多個字段長度的加權和,以及下列中的至少一個:查找表的條目的最大數目、連續查找之間的平均時間、和/或查找表的連續修改之間的平均時間。加權和中的加權優選為非負數。網絡元件可以適于將加權和與第一閾值進行比較,以便在基于內容存取存儲器技術的實現和基于檢索樹算法和隨機存取存儲器技術的實現之間進行選擇。有利地,當加權和低于第一閾值時,選擇基于內容存取存儲器技術的實現,否則選擇基于檢索樹算法和隨機存取存儲器技術的實現。此夕卜,網絡元件可以適于,當第一選擇已經導致基于內容存取存儲器技術的實現時在二進制內容存取存儲器技術和三進制內容存取存儲器技術之間進行進一步選擇。例如,網絡元件可以適于將第二閾值與查找表的“不考慮”鍵匹配比特位置的數目和查找表的所有鍵匹配比特位置的數目之比進行比較,以便在二進制內容存取存儲器技術和三進制內容存取存儲器技術之間進行選擇。有利地,當上述比超過第二閾值時,選擇基于三進制內容存取存儲器技術的實現,因為每個“不考慮”鍵匹配比特位置將需要二進制內容存取存儲器中的兩行,以便覆蓋可允許的替換,即“不考慮”鍵匹配比特位置的“I”和“O”。另一方面,三進制內容存取存儲器比二進制內容存取存儲器更貴,因此如果較之所有鍵匹配比特位置的數目,“不考慮”鍵匹配比特位置的相對數目較小,則使用二進制內容存取存儲器更有利。也可以在基于三進制內容存取存儲器技術的實現和基于檢索樹算法和隨機存取存儲器技術的實現之間的選擇中,使用“不考慮”鍵匹配比特位置的數目,使得“不考慮”鍵匹配比特位置的高相對數目趨于促進三進制內容存取存儲器。
[0036]在通常情形下,上述網絡元件的查找系統可以包括多于一個查找表。網絡元件可以適于暫時連續地定義兩種或更多種查找表的實現。網絡元件可以適于在定義不是要實現的最后一個的每個查找表的實現之后,確定保持自由用于實現隨后要實現的一個或多個查找表的硬件。此外,網絡元件可以適于基于a)可用于實現該查找表的硬件,b)關于與該查找表相關的一個或多個查找鍵的信息,例如一個或多個查找鍵的一個字段長度或多個字段長度,以及c)下列中的至少一個:該查找表的條目的最大數目、從該查找表的連續查找之間的平均時間、該查找表的連續修改之間的平均時間,選擇每個查找表的實現。例如,以上述方式可以定義查找系統的查找表的實現,使得以大小降序的順序來處理查找表,即最大查找表的實現被定義為第一。也可以使用用于查找表的不同定義順序來獲得相互不同替換查找系統實現并且選擇替換查找系統實現中的最有利的一個。當將不同查找系統實現彼此比較時,查找系統的特征可以是,例如當運行與考慮的查找系統相關的操作時資源消耗估計指示考慮的網絡元件的至少一個組件的載荷因子。網絡元件的至少一個組件可以包括例如網絡元件的數據轉發部、網絡元件的控制處理器部、網絡元件的一個或多個隨機存取存儲器“RAM”、網絡元件的一個或多個二進制內容存取存儲器“CAM”、網絡元件的一個或多個三進制內容存取存儲器“TCAM”、和/或網絡元件的一個或多個存儲器總線。
[0037]考慮的查找系統實現的每個查找表可以與查找表特定資源消耗估計相關聯,查找表特定資源消耗估計可以包括例如,當運行考慮的查找表時指示網絡元件的一個或多個組件的載荷因子的一個或多個數值。例如,當運行與利用內容存取存儲器實現的第一示例性查找表相關的操作時,網絡元件的數據轉發部的載荷因子可以是例如處理容量的50%,網絡元件的隨機存取存儲器“RAM”的載荷因子是零,網絡元件的內容存取存儲器的載荷因子可以是例如存儲器容量的45%,并且存儲器總線的載荷因子可以是例如它們的傳送容量的45%。相應地,當運行與具有算法實現的第二示例性查找表的操作時,網絡元件的數據轉發部的載荷因子可以是例如46%,網絡元件的隨機存取存儲器“RAM”的載荷因子可以是例如38%,網絡元件的內容存取存儲器的載荷因子是零,并且存儲器總線的載荷因子可以是例如25%。因此,用于第一和第二示例性查找表的查找表特定資源消耗估計分別是下列矢量:[50%, O, 45%, 45%]和[46%,38%, O, 25%]。在該示例性情形下,由上述第一和第二示例性查找表組成的查找系統實現的資源消耗估計可以是[96%,38%, 45%, 70%]。如果這些數值的任何一個超過100%,則考慮的網絡元件將不能夠運行考慮的查找系統實現。在該情形下,應當為網絡元件定義不同查找系統實現。用于選擇不同查找系統實現中的一個的準則是,例如使得構成查找系統實現的資源消耗估計的數值的最大一個應盡可能的小,以便避免網絡元件操作中的不利瓶頸。
[0038]考慮的網絡元件可以適于將查找系統實現的資源消耗估計發送到控制器系統105,以便使得控制器系統105將軟件定義網絡100整體優化。例如,控制器系統105可以適于配置軟件定義網絡100的路由拓撲,使得當網絡元件的查找系統實現的資源消耗估計表明網絡元件的更低載荷比當查找系統實現的資源消耗估計表明網絡元件的更高載荷,更多的數據通信負載被分配到考慮的網絡元件。網絡元件可以具有模塊結構,使得其包括諸如入模塊和出模塊的一個或多個行接口模塊和諸如控制模塊和/或電源模塊的一個或多個其他模塊。在該情形下,可以存在每個網絡元件多于一個資源消耗估計,并且每個資源消耗估計可以通過模塊指示符提供,模塊指示符表達通過資源消耗估計指示其載荷的模塊。模塊指示符可以表達獨立模塊或僅一種類型的模塊,諸如入模塊、出模塊、或與網絡元件的整個控制相關的模塊。在例如一個或多個行接口模塊存在超載風險而網絡元件的其他部件仍在資源消耗具有優勢的情形下,當軟件定義網絡100的路由拓撲最優化時,可以利用模塊指示符。
[0039]圖2示出根據本發明的示例性實施例的網絡元件201的示意圖示。網絡元件可以是例如網際協議“IP”路由器、多協議標簽交換“MPLS”交換機、分組光交換機、和/或以太網交換機。在該示例性情形下,網絡原件是單一裝置,但是如本文檔中上文所述,網絡元件也可以是多個裝置的組合。網絡元件包括用于接收數據和用于發射數據的數據傳送接口211。數據傳送接口 211包括入端口 214和215和出端口 216和217,以用于經由數據傳送鏈路連接到數據傳送網絡220。網絡元件201包括處理器系統210,處理器系統210包括控制處理器部213和數據轉發部212。網絡元件包括用于以兩種或更多種相互替換方式實現查找表的硬件218,其中,查找表通過在網絡元件接收到的數據指定。在該示例性情形下,硬件218包括數據轉發部212、三進制內容存取存儲器“TCAM” 221、二進制內容存取存儲器“CAM” 222、以及隨機存取存儲器“RAM” 223。網絡元件包括用于定義查找表的實現的設備209。設備包括用于基于a)可用于實現查找表的硬件,b)關于一個或多個查找鍵的信息,例如一個或多個查找鍵的一個字段長度或多個字段長度,和c)下列中的至少一個:查找表的條目的最大數目、連續查找之間的平均時間、查找表的連續修改之間的平均時間,選擇相互替換方式的最佳或至少適合的一個,以實現查找表的裝置。在圖2中示出的示例性情形下,利用代表控制處理器部213或控制處理器部的部分的處理系統224,實現上述裝置。控制處理器部213適于配置硬件218以實現查找表,并且數據轉發部312適于根據查找表管理數據幀。[0040]在根據本發明的示例性實施例的網絡元件中,設備209的處理系統224適于計算一個或多個查找鍵的一個或多個字段長度的加權和,以及下列中的至少一個:查找表的條目的最大數目、連續查找之間的平均時間、查找表的連續修改之間的平均時間。處理系統224適于將加權和與第一閾值進行比較,以便在基于內容存取存儲器技術的實現和基于檢索樹算法和隨機存取存儲器技術的實現之間進行選擇。
[0041]在根據本發明的示例性實施例的網絡元件中,設備209的處理系統224適于將第二閾值與數據項進行比較,該數據項指示查找表的“不考慮”鍵匹配比特位置的數目和查找表的所有鍵匹配比特位置的數目之比,以便在基于二進制內容存取存儲器技術的實現和基于三進制內容存取存儲器技術的實現之間進行選擇。
[0042]在根據本發明的示例性實施例的網絡元件中,設備209的處理器系統224適于基于a)可用于實現另一查找表的硬件,b)關于一個或多個查找鍵的信息,例如與另一查找表相關的一個或多個查找鍵的一個字段長度或多個字段長度,以及c)下列中的至少一個--另一查找表的條目的最大數目、從另一查找表的連續查找之間的平均時間、另一查找表的連續修改之間的平均時間,確定用于在上文提及的查找表實現之后保持自由用于實現另一查找表的硬件,并且選擇兩種或更多種相互替換方式中的一種,以實現另一查找表。
[0043]圖2中示出的網絡元件的處理系統210可以利用一個或多個處理器電路來實現,每個處理器電路可以是設置有適當軟件的可編程處理器電路、諸如例如專用集成電路“ASIC”的專用硬件處理器、或諸如例如現場可編程門陣列“FPGA”的可配置硬件處理器。
[0044]圖3示出根據用于定義用于軟件定義網絡的網絡元件的查找系統的實現的本發明的示例性實施例的方法的流程圖,其中,網絡元件包括用于以兩種或更多種相互替換方式實現查找表的硬件。該方法包括動作301,基于可用于實現查找表的硬件、一個或多個第一數據項、和一個或多個第二數據項來選擇兩種或更多種相互替換方式的最佳或至少適合的一種,以實現查找表,其中:
[0045]-一個或多個第一數據項提供關于查找表的一個或多個查找鍵的信息,以及
[0046]-一個或多個第二數據項指示下列中的至少一個:查找表的條目的最大數目、從查找表的連續查找之間的平均時間、查找表的連續修改之間的平均時間。[0047]根據本發明的示例性實施例的方法包括:計算一個或多個第一數據項和一個或多個第二數據項的加權和,并且將加權和與第一閾值進行比較,以便在基于內容存取存儲器技術的實現和基于檢索樹算法和隨機存取存儲器技術的實現之間進行選擇。
[0048]根據本發明的示例性實施例的方法包括:將第二閾值與第三數據項進行比較,第三數據項指示查找表的“不考慮”鍵匹配比特位置的數目和查找表的所有鍵匹配比特位置的數目之比,以便在基于二進制內容存取存儲器技術的實現和基于三進制內容存取存儲器技術的實現之間進行選擇。
[0049]根據本發明的示例性實施例的方法包括:基于可用于實現另一查找表的硬件以及與另一查找表相關并且指示作為一個或多個第一數據項和一個或多個第二數據項指示與上文提及的查找表相關的相對應信息的數據,確定用于在上文提及查找表實現之后保持自由用于實現另一查找表的硬件以及選擇兩種或更多種相互替換方式中的一種以實現另一查找表。
[0050]根據用于定義查找表的實現的本發明的示例性實施例的計算機程序包括計算機可執行指令,計算機可執行指令用于控制可編程處理系統執行根據本發明的上述示例性實施例的任何一個的方法。
[0051]根據本發明的示例性實施例的計算機程序包括用于定義用于軟件定義網絡的網絡元件的查找系統的實現的軟件模塊,其中,網絡元件包括用于以兩種或更多種相互替換方式實現查找表的硬件。軟件模塊包括計算機可執行指令,所述計算機可執行指令用于控制可編程處理系統基于可用于實現查找表的硬件、一個或多個第一數據項、和一個或多個第二數據項來選擇兩種或更多種相互替換方式中的一種,以實現查找表,其中:
[0052]一個或多個第一數據項提供關于查找表的一個或多個查找鍵的信息,每個字段長度用比特表達,以及
[0053]一個或多個第二數據項指示下列中的至少一個:查找表的條目的最大數目、從查找表的連續查找之間的平均時間、查找表的連續修改之間的平均時間。
[0054]軟件模塊可以是例如利用適當的編程語言和利用適合于編程語言和可編程處理系統的編譯器來實現的子例程或功能。
[0055]根據本發明的示例性實施例的計算機程序產品包括利用根據本發明示例性實施例的計算機程序編碼的計算機可讀介質,例如光盤(“CD”)。
[0056]根據本發明的示例性實施例的信號被編碼成承載定義根據本發明的示例性實施例的計算機程序的信息。
[0057]上文給出的描述中提供的特定示例不應理解為限制隨附權利要求的范圍和/或適用性。
【權利要求】
1.一種用于定義用于軟件定義網絡的網絡元件的第一查找表的實現的設備(209),所述網絡元件包括用于以兩種或更多種相互替換方式實現所述第一查找表的硬件(218),所述設備包括: -用于接收一個或多個第一數據項的裝置,所述一個或多個第一數據項提供關于所述第一查找表的一個或多個查找鍵的信息,以及 -用于接收一個或多個第二數據項的裝置,所述一個或多個第二數據項指示下列中的至少一個:所述第一查找表的條目的最大數目、從所述第一查找表的連續查找之間的平均時間、所述第一查找表的連續修改之間的平均時間, 其特征在于,所述設備進一步包括:用于基于可用于實現所述第一查找表的硬件、所述一個或多個第一數據項、和所述一個或多個第二數據項,選擇所述兩種或更多種相互替換方式中的一種,以實現所述第一查找表的裝置。
2.根據權利要求1所述的設備,其中,所述設備包括:用于計算所述一個或多個第一數據項和所述一個或多個第二數據項的加權和并且用于將所述加權和與第一閾值進行比較,以便在基于內容存取存儲器技術的實現和基于檢索樹算法和隨機存取存儲器技術的實現之間進行選擇的裝置。
3.根據權利要求1或2所述 的設備,其中,所述設備包括:用于比較第二閾值和第三數據項,以便在基于二進制內容存取存儲器技術的實現和基于三進制內容存取存儲器技術的實現之間進行選擇的裝置,所述第三數據項指示所述第一查找表的不考慮鍵匹配比特位置的數目與所述第一查找表的所有鍵匹配比特位置的數目的比。
4.根據權利要求1所述的設備,其中,所述設備包括:用于基于可用于實現第二查找表的硬件以及與所述第二查找表相關并且指示作為所述一個或多個第一數據項和所述一個或多個第二數據項指示與所述第一查找表相關的相對應信息的數據,確定在所述第一查找表的實現之后保持自由用于實現所述第二查找表的硬件以及用于選擇所述兩種或更多種相互替換方式中的一種以實現所述第二查找表的裝置。
5.根據權利要求2所述的設備,其中,所述設備包括:用于基于可用于實現第二查找表的硬件以及與所述第二查找表相關并且指示作為所述一個或多個第一數據項和所述一個或多個第二數據項指示與所述第一查找表相關的相對應信息的數據,確定在所述第一查找表的實現之后保持自由用于實現所述第二查找表的硬件以及用于選擇所述兩種或更多種相互替換方式中的一種以實現所述第二查找表的裝置。
6.根據權利要求3所述的設備,其中,所述設備包括:用于基于可用于實現第二查找表的硬件以及與所述第二查找表相關并且指示作為所述一個或多個第一數據項和所述一個或多個第二數據項指示與所述第一查找表相關的相對應信息的數據,確定在所述第一查找表的實現之后保持自由用于實現所述第二查找表的硬件以及用于選擇所述兩種或更多種相互替換方式中的一種以實現所述第二查找表的裝置。
7.一種用于軟件定義網絡的網絡元件(201),所述網絡元件包括: -數據傳送接口(211),所述數據傳送接口(211)用于接收數據和用于發射數據,接收到的數據指定要在所述網絡元件中實現的查找表, -硬件(218),所述硬件(218)用于以兩種或更多種相互替換方式實現所述查找表,以及-用于定義所述查找表的實現的根據權利要求1-5中的任一項所述的設備(209)。
8.根據權利要求7所述的網絡元件,其中,所述網絡元件是下列中的至少一個:網際協議路由器、多協議標簽切換交換機、分組光交換機、以太網交換機。
9.一種用于定義用于軟件定義網絡的網絡元件的第一查找表的實現的方法,所述網絡元件包括用于以兩種或更多種相互替換方式實現所述第一查找表的硬件,其特征在于,所述方法包括基于可用于實現所述第一查找表的所述硬件、一個或多個第一數據項、和一個或多個第二數據項,選擇(301)所述兩種或更多種相互替換方式中的一種,以實現所述第一查找表,其中: -所述一個或多個第一數據項提供關于所述第一查找表的一個或多個查找鍵的信息,以及 -所述一個或多個第二數據項指示下列中的至少一個:所述第一查找表的條目的最大數目、從所述第一查找表的連續查找之間的平均時間、所述第一查找表的連續修改之間的平均時間。
10.根據權利要求9所述的方法,其中,所述方法包括:計算所述一個或多個第一數據項和所述第一或多個第二數據項的加權和;以及將所述加權和與第一閾值進行比較,以便在基于內容存取存儲器技術的實現和基于檢索樹算法和隨機存取存儲器技術的實現之間進行選擇。
11.根據權利要求9或10所述的方法,其中,所述方法包括:將第二閾值與第三數據項進行比較,以便在基于二進制內容存取存儲器技術的實現和基于三進制內容存取存儲器技術的實現之間進行選擇,所述第三數據項指示所述第一查找表的不考慮鍵匹配比特位置的數目與所述第一查找表的所有鍵匹配比特位置的數目之比。
12.根據權利要求9所述的方法,其中,所述方法包括:基于可用于實現第二查找表的硬件以及與所述第二查找表相關并且指示作為所述一個或多個第一數據項和所述一個或多個第二數據項指示與所述第一查找表相關的相對應信息的數據,確定在所述第一查找表的實現之后保持自由用于實現所述第二查找表的硬件以及選擇所述兩種或更多種相互替換方式中的一種以實現所述第二查找表。
13.根據權利要求10所述的方法,其中,所述方法包括:基于可用于實現第二查找表的硬件以及與所述第二查找表相關并且指示作為所述一個或多個第一數據項和所述一個或多個第二數據項指示與所述第一查找表相關的相對應信息的數據,確定在所述第一查找表的實現之后保持自由用于實現所述第二查找表的硬件以及選擇所述兩種或更多種相互替換方式中的一種以實現所述第二查找表。
14.根據權利要求11所述的方法,其中,所述方法包括:基于可用于實現第二查找表的硬件以及與所述第二查找表相關并且指示作為所述一個或多個第一數據項和所述一個或多個第二數據項指示與所述第一查找表相關的相對應信息的數據,確定在所述第一查找表的實現之后保持自由用于實現所述第二查找表的硬件以及選擇所述兩種或更多種相互替換方式中的一種以實現所述第二查找表。
15.一種軟件定義網絡(100),包括: -控制器系統(105),所述控制器系統(105)用于將配置數據發射到一個或多個網絡元件,以便配置所述一個或多個網絡元件,所述配置數據指定要在所述一個或多個網絡元件中實現的查找表,以及 -根據權利要求7或8所述的一個或多個網絡元件(101-104)。
16.根據權利要求15所述的軟件定義網絡,其中,所述控制器系統被配置成將OpenFlow用作為 用于所述軟件定義網絡的控制平面的通信方法,以與所述軟件定義網絡的數據平面通信。
【文檔編號】H04L12/741GK103916321SQ201310750368
【公開日】2014年7月9日 申請日期:2013年12月31日 優先權日:2013年1月4日
【發明者】維萊·哈利沃里, 茱哈馬蒂·庫西薩里 申請人:特拉博斯股份有限公司