本發明有關于數據網絡,更具體來說,有關于數據分組靈活的信息映射和修改的數據分組修改方法和相關網絡裝置。
背景技術:
除非另有說明,否則本部分中描述的方法不是后文權利要求的現有技術,也不因包含在本部分中而被認為是現有技術。
計算機網絡或者數據網絡中的數據通信通常涉及將所有已傳送的數據分組為合適大小的模塊,本文中稱為“數據分組”或“分組”(二者可互換),它們經由可由多個同時的通信會話共享的介質上傳送。數據分組一般由報頭和有效載荷組成。報頭中的信息被網絡硬件用于將分組指向其目的地。有效載荷被(例如應用軟件)提取并使用。
在如今復雜的網絡環境下,很多時候數據分組可被在利用不同格式和協議的網絡域中傳送。在傳統的方法中,數據分組通常以固定的方式被修改,例如,將數據分組的格式從一種格式轉化或以其他方式轉換為另一種。圖7A和圖7B中的每一個均是傳統的數據分組修改方法示意圖。請參考圖7A,第一網絡裝置的入口數據分組700可通過復制外報頭的給定位置或域的值并將其復制在內報頭的相同位置或域來進行修改。請參考圖7B,第二網絡裝置的入口數據分組750(可為上述修改后的數據分組700),可通過復制內報頭的給定位置或域的值并將其復制在外報頭的相同位置或域來進行修改。
技術實現要素:
有鑒于此,本發明特提供以下技術方案:
本發明實施例提供一種數據分組修改方法,包含接收數據分組;修改上述數據分組的一個或多個屬性,修改包含:自數據分組擷取信息,信息包含數據分組的報頭中的一個或多個用戶定義域;依據一個或多個用戶定義域中的至少 一個用戶定義域定義一個或多個源用戶定義域;以及對于一個或多個源用戶定義域中的至少一個源用戶定義域執行一個或多個操作;以及輸出修改后的數據分組。
本發明實施例又提供一種數據分組修改方法,包含接收數據分組;儲存數據分組;解析數據分組以自數據分組擷取信息,信息包含數據分組的報頭中的一個或多個用戶定義域;依據一個或多個用戶定義域中的至少一個用戶定義域定義一個或多個源用戶定義域;儲存一個或多個源用戶定義域;通過多個流量表處理一個或多個用戶定義域以及一個或多個源用戶定義域,以及依據一個或多個操作命令以管線形式對于一個或多個源用戶定義域中的至少一個源用戶定義域執行多個操作,其中多個流量表用于識別一個或多個操作命令;儲存一個或多個操作命令;依據所儲存的一個或多個操作命令以及所儲存的一個或多個源用戶定義域修改數據分組的一個或多個屬性;以及輸出修改后的數據分組。
本發明實施例又提供一種網絡裝置,包含分組交換器,接收數據分組,以及輸出數據分組的修改后的版本,分組交換器包含:解析器,解析數據分組,以自數據分組擷取信息,信息包含數據分組的報頭中的一個或多個用戶定義域,解析器也依據一個或多個用戶定義域中的至少一個用戶定義域定義一個或多個源用戶定義域;儲存裝置,儲存多個流量表,多個流量表識別一個或多個操作命令,并依據一個或多個操作命令對于一個或多個源用戶定義域中的至少一個源用戶定義域執行多個操作;命令收集器,自多個流量表接收并儲存一個或多個操作命令;分組緩沖器,儲存數據分組;重寫數據向量器,自解析器接收并儲存一個或多個源用戶定義域;以及分組修改器,耦接于分組緩沖器、命令收集器以及重寫數據向量器,以分別接收數據分組、一個或多個操作命令以及一個或多個源用戶定義域,分組修改器依據一個或多個操作命令修改數據分組的一個或多個屬性以及一個或多個源用戶定義域以提供數據分組的修改后的版本。
本發明的數據分組修改方法和相關網絡裝置可以對數據分組做靈活的修改。
【附圖說明】
圖1是依據本發明實施例的示例架構的示意圖。
圖2示出依據本公開的一個實施的示例操作。
圖3示出依據本發明的實施方案的示例情景。
圖4是依據本發明實施例的示例裝置的示意圖。
圖5示出依據本發明的實施例的示例流程。
圖6示出依據本發明的實施例的示例流程。
圖7A和圖7B中的每一個均是傳統的數據分組修改方法示意圖。
【具體實施方式】
在說明書及權利要求書當中使用了某些詞匯來指稱特定的組件。所屬領域中的技術人員應可理解,制造商可能會用不同的名詞來稱呼同樣的組件。本說明書及權利要求書并不以名稱的差異來作為區分組件的方式,而是以組件在功能上的差異來作為區分的基準。在通篇說明書及權利要求書當中所提及的「包含」是開放式的用語,故應解釋成「包含但不限定于」。另外,「耦接」一詞在此包含任何直接及間接的電氣連接手段。因此,若文中描述第一裝置耦接于第二裝置,則代表第一裝置可直接電氣連接于第二裝置,或透過其它裝置或連接手段間接地電氣連接至第二裝置。
圖1是依據本發明實施例的示例架構100的示意圖。示例架構100可在分組交換器中實施及/或以硬件的方式實施。示例架構100可包含解析器110、管線形式的多個流量表120(1)–120(N)(N為大于1的正整數)、命令收集器130、分組緩沖器140、重寫數據向量器150以及分組修改器160。示例架構100可接收一個或多個入口數據分組,包含如圖1所述的原始數據分組102,并輸出一個或多個出口數據分組,包含如圖1所示的修改后的數據分組104。原始數據分組102可為具有隧道報頭(tunnel header)的多層分組,或為簡單的單層分組。示例架構100也可包含流量管理器(為簡潔起見,沒有展示在圖1中以便避免混淆圖示)。
管線的流量表120(1)–120(N)可用于以串行或者管線的形式接收信息,例如,依據通過一組命令的執行而進行的進程,其中該組命令符合開流(OpenFlow)協議。即,第一流量表120(1)可為管線的流量表120(1)–120(N)中接收信息的第一個流量表,接著是第二流量表120(2),接著是第三流量表120(3)等等,一直到管線的流量表120(1)–120(N)中的最后一個流量表120(N)。管線的流量表120(1)–120(N)有關的操作更詳細的說明記載于后文。
解析器110可以用一個或多個源用戶定義域(user-defined field,簡寫為SUDF)配置。一個或多個SUDF可在數據分組的外報頭(outer header)及/或內報頭(inner header)定義一個或多個用戶定義域(user-defined field,簡寫為 UDF)。在示例架構100中,一個或多個元(meta)信號可被提供用來遍歷管線的流量表120(1)–120(N)。一個或多個元信號的數量可等于一個或多個SUDF的數量。在某些實施例中,一個或多個SUDF可包含,舉例來說,內TTL_SUDF、外TTL_SUDF、內PCP_DEI_SUDF、外PCP_DEI_SUDF、內DSCP_ECN_SUDF、外DSCP_ECN_SUDF、多個(例如,四個)內自定義SUDF和多個(例如,四個)外自定義SUDF。
示例架構100可也利用若干操作命令來對一個或多個SUDF進行操作。在某些實施例中,一個或多個操作命令可能關于給定SUDF的值,而一個或多個操作命令可能關于對給定SUDF(或其值)做什么。舉例來說,操作命令SET_SUDF可用于設置給定SUDF的值,操作命令DECREASE_SUDF可用于減小給定SUDF的值,而操作命令INCREASE_SUDF可用于增加給定SUDF的值。作為另一示例,操作命令SET_BY_SUDF可用于將給定SUDF的值設置為數據分組的給定UDF的值。作為又一示例,操作命令PUSH_BY_SUDF可用于將給定SUDF推送或插入至數據分組的給定UDF,從而增加一個UDF至數據分組并增加數據分組的長度。
當原始數據分組102進入示例架構100時,原始數據分組102可被分組緩沖器140和解析器110接收。分組緩沖器140可在將原始數據分組102提供至分組修改器160進行修改之前儲存原始數據分組102。一旦接收到原始數據分組102,解析器110可解析原始數據分組102以自原始數據分組102擷取一個或多個UDF,并將一個或多個擷取的UDF提供給管線的流量表120(1)–120(N)。舉例來說,解析器102可將一個或多個UDF提供至第一流量表120(1),第一流量表120(1)可對一個或多個UDF中的任意一個進行修改,并隨后將該一個或多個UDF提供至第二流量表120(2),第二流量表120(2)可又做同樣的操作,以使該一個或多個UDF遍歷管線的流量表120(1)–120(N)并可沿途被修改直至最后一個流量表120(N)。在本發明的實施中,所擷取的一個或多個UDF的值可分別定義一組一個或多個原始的SUDF的值,而解析器110可提供該一個或多個原始的SUDF作為管線的流量表的數據源120(1)–120(N)。舉例來說,解析器102可提供一個或多個原始的SUDF至第一流量表120(1),第一流量表120(1)可對該一個或多個原始的SUDF中的任意一個執行修改,并將該一個或多個SUDF提供至第二流量表120(2),第二流量表120(2)可又做同樣的操作,以使該一個或多個UDF可遍歷管線的流量表120(1)–120(N)并可沿途被修改直至最后一個流量表120(N)。此外,解析器110可提供該一個或多個原始的(未修改 的)SUDF至重寫數據向量器150,重寫數據向量器150也可儲存該一個或多個原始的SUDF。當分組修改器160準備好修改原始數據分組102時,重寫數據向量器150可將個一個或多個原始的SUDF提供給分組修改器160作為數據源。
流量表120(1)–120(N)中的每一個可基于自解析器110接收的一個或多個已擷取的UDF查找、發現或識別一個或多個操作命令。流量表120(1)–120(N)中的每一個可提供對應的已識別的一個或多個操作命令至命令收集器130,命令收集器130可收集并儲存自流量表120(1)–120(N)接收的操作命令。流量表120(1)–120(N)中的每一個可基于對應的已識別的一個或多個操作命令執行操作,包含修改一個或多個UDF中的至少一個UDF的值及一個或多個SUDF中的至少一個SUDF的值。流量表120(1)–120(N)中的每一個可更將一個或多個SUDF(其中的至少一個可以被修改)提供至其隨后的流量表。舉例來說,在第一流量表120(1)對命名為SUDF_0的SUDF進行修改之后,第一流量表120(1)可將SUDF_0(以及其他SUDF(若存在其他SUDF))提供至第二流量表120(2)。類似地,在第二流量表120(2)對命名為SUDF_0的SUDF及/或另一SUDF進行修改之后,第二流量表120(2)可將SUDF_0及/或另一SUDF(以及其他SUDF(若存在其他SUDF))提供至第三流量表120(3)。該操作可以以管線的方式繼續進行,直至一個或多個SUDF被最后一個流量表處理120(N),一個或多個SUDF中的至少一個SUDF可被由此修改。
用于說明的目的,例如,當操作命令是SET_SUDF、DECREASE_SUDF或INCREASE_SUDF時,流量表120(1)–120(N)中的相應流量表可分別設置由操作命令識別的給定SUDF的值、降低給定SUDF的值或者增加給定SUDF的值。作為另一示例,當操作命令是SET_BU_SUDF時,流量表120(1)–120(N)中的相應流量表可將由操作命令識別的給定SUDF的值寫入至操作命令識別的給定UDF中。作為進一步的命令,當操作命令是PUSH_BY_SUDF時,流量表120(1)–120(N)中的相應流量表可將由操作命令識別的給定SUDF的值推送(push)或插入至操作命令識別的給定UDF中。流量表120(1)–120(N)中的一個流量表執行的一個或多個操作命令而修改的UDF可隨后被提供至管線中的隨后的流量表(例如,自流量表120(K)至流量表120(K+1),其中K為大于或等于1且不大于N-1的正整數)。
分組修改器160可自命令收集器130讀取儲存于其中的收集的操作命令。分組修改器160也可自重寫數據向量器150接收數據源并自分組緩沖器140接 收原始數據分組。分組修改器160可依據收集的操作命令和數據源修改原始數據分組102。在給定的操作命令為SET_SUDF、DECREASE_SUDF或INCREASE_SUDF的情況下,分組修改器160可修改給定SUDF的值。在給定的操作命令為SET_BY_SUDF的情況下,分組修改器160可將給定SUDF的值寫入至數據分組內的確定位置(identified position),例如,依據相應UDF映射位置。在給定操作指令為PUSH_BY_SUDF的情況下,分組修改器160可將給定SUDF的值推送或插入至數據分組內的確定位置,例如,依據相應UDF映射位置。在執行依據收集的操作指令和數據源(即,原始的一個或多個SUDF)的一個或多個修改之后,分組修改器160可輸出修改后的數據分組104作為示例架構100的輸出。
圖2示出依據本公開的一個實施的示例操作200。下文所述的示例操作200實施于示例架構100中,示例操作200僅用于說明之用,并不用于限制本發明的范圍。在圖2所示的示例中,U_TTL是外報頭中的用戶定義域,并且不是傳統的層3(layer 3,簡寫為L3)TTL。命名為U_TTL的用戶定義域的值(在本示例中是100),可被指派給命名為SUDF_0的源用戶定義域。在示例操作200中,第一流量表120(1)可用匹配值80查找或識別與用戶定義域UDF10相關聯的一個或多個操作命令。在本示例中,相關的操作命令可為INCREASE_SUDF(SUDF_0,2)和SET_BY_SUDF(SUDF_0,UDF10)。在示例操作200中,第二流量表120(2)可用匹配值102查找或識別與用戶定義域UDF10相關聯的一個或多個操作命令。在本示例中,相關的操作命令可為SET_SUDF(SUDF_0,80)及SET_BY_SUDF(SUDF_0,UDF4)。在本示例中,出口數據分組可包含兩個修改操作。具體來說,用戶定義域UDF4的值被修改為80,而用戶定義域UDF10的值被修改為102(=100+2)。
在示例操作200中,解析器100可自入口數據分組(例如,原始數據分組102)的U_TTL的用戶定義域獲取SUDF_0的值。第一流量表120(1)可以規定以下內容的條碼進行配置:在UDF10的值為80的情況下,則查找操作命令INCREASE_SUDF(SUDF_0,2)及SET_BY_SUDF(SUDF_0,UDF10)。第二流量表120(2)可以規定以下內容的條碼進行配置:在UDF10的值為102的情況下,則查找操作命令SET_SUDF(SUDF_0,80)及SET_BY_SUDF(SUDF_0,UDF4)。
相應的,當入口數據分組(例如,原始數據分組102)進入示例架構100時,解析器110可基于配置自U_TTL擷取值100并相應將SUDF_0的值設置為100。解析器110也可將一個或多個SUDF(包含SUDF_0)提供至第一流量表120(1)以及 重寫數據向量器150。解析器110可更擷取用戶定義域UDF0-UDFM(假設UDF的數量M是大于1的正整數)的值并將所擷取的用戶定義域UDF0-UDFM的值提供給管線的流量表120(1)–120(N)用于處理。
在第一流量表120(1)中,假定UDF10的值初始是80,第一流量表120(1)中的上述條目存在匹配。相應的,相關的操作命令是INCREASE_SUDF(SUDF_0,2)和SET_BY_SUDF(SUDF_0,UDF10)。第一流量表120(1)可隨后執行將SUDF_0的值(初始為100)加2的操作以使其值達到102,并將值102寫入至UDF10的操作。此外,示例架構100可將操作命令INCREASE_SUDF(SUDF_0,2)和SET_BY_SUDF(SUDF_0,UDF10)儲存至命令收集器130中。
在第二流量表120(2)中,假定UDF10已修改的值是102,第二流量表120(2)中的上述條目存在匹配。相應的,相關的操作命令是SET_SUDF(SUDF_0,80)和SET_BY_SUDF(SUDF_0,UDF4)。第二流量表120(2)可隨后執行將SUDF_0的值(初始為100)設置為80,并將值80寫入至UDF4的操作。此外,示例架構100可將操作命令SET_SUDF(SUDF_0,80)和SET_BY_SUDF(SUDF_0,UDF4)儲存至命令收集器130中。
隨后,分組修改器160可自重寫數據向量器150讀取SUDF_0的原始值。分組修改器160也可閱讀、獲取或以其他方式自分組緩沖器140獲得原始數據分組102以及自命令收集器130獲得操作命令。分組修改器160可隨后依據所儲存的操作命令修改原始數據分組102,其中操作指令分別被命名為:INCREASE_SUDF(SUDF_0,2)、SET_BY_SUDF(SUDF_0,UDF10)、SET_SUDF(SUDF_0,80)和SET_BY_SUDF(SUDF_0,UDF4)。特別是,分組修改器160可將值102(=100+2)寫入至原始數據分組102對應于UDF10的位置或域中,并隨后將值80寫入至原始數據分組102對應于UDF4的位置或域中。在執行上述修改之后,分組修改器160可輸出出口數據分組作為修改后的數據分組104。
圖3示出依據本發明的實施方案的示例情景300。示例情景300可以包括兩個數據中心,數據中心310和數據中心320,其可通過商業實體是私人擁有和/或操作。數據中心310和數據中心320中的每一個可包含一個或多個局域網(local area networks,簡寫為LAN)。此外,數據中心310和數據中心320中的每一個可包含一個或多個軟件定義網絡(software-defined network,簡寫為SDN)。數據中心310和數據中心320可通過公共網絡330(舉例來說,可為廣域網(wide area network,簡寫為WAN)或因特網)彼此通信連接。數據中心310可 以通過網絡裝置315與公共網絡330連接,其中網絡裝置315可以為某類型的網絡節點,例如邊緣網關(edge gateway)。數據執行B 320可以通過網絡裝置325與公共網絡330連接,其中網絡裝置325可以為某類型的網絡節點,例如邊緣網關。網絡裝置315和網絡裝置325中的每一個可依據本發明的各種實施方式執行操作。例如,示例架構100可實施于網絡裝置315和網絡裝置325中的每一個中。此外,網絡裝置315和網絡裝置325中的每一個可執行類似于示例操作200的操作。
在示例情景300中,數據中心310和數據中心320的每一個中傳輸的數據分組可以是用戶定義格式。相比之下,公共網絡330可以只傳送傳統格式的數據分組,例如,數據分組的報頭為傳統報頭格式。當用戶定義的格式的數據分組340自數據中心310傳輸至數據中心B 320時,網絡裝置315可執行關鍵(key)信息映射以將數據分組340自用戶定義格式變換或者轉換為傳統格式(例如,將數據分組340的報頭自用戶定義報頭342變換或者轉換為傳統報頭344)。相應地,網絡裝置325可執行反向關鍵信息映射以將數據分組340自傳統格式變換或者轉換為用戶定義格式(例如,將數據分組340的報頭自傳統報頭344變換或者轉換為用戶定義報頭342)。
例如,在源端,網絡裝置315可自用戶定義報頭342復制關鍵信息(例如,第一域346和第二域348的值)至傳統報頭344。此外,網絡裝置315可移動用戶定義報頭342并發送具有傳統報頭344的數據分組340至公共網絡330。在接收端,當數據分組340到達數據中心B 320的邊緣時,網絡裝置325可自傳統報頭344復制關鍵信息(例如,第一域346和第二域348的值)至用戶定義報頭342。此外,網絡裝置325可移動傳統報頭344并發送具有用戶定義報頭342的數據分組340至數據中心320。
在將數據分組340自一個格式轉換為另一個格式的時候(例如,自用戶定義格式轉換為傳統格式,以及自傳統格式轉換為用戶定義格式),網絡裝置315和網絡裝置325中的每一個可對于示例架構100和示例操作200,以及如示例裝置400和描述如下的示例流程500和600處理執行上述操作。例如,網絡裝置315和網絡裝置325中的每一個可自數據分組340擷取信息。所擷取的信息可包含數據分組340的報頭中的一個或多個UDF。網絡裝置315和網絡裝置325中的每一個也可依據該一個或多個UDF中的至少一個UDF定義一個或多個SUDF。網絡裝置315和網絡裝置325中的每一個可更對于該一個或多個SUDF中的至少一個 SUDF執行一個或多個操作。例如,網絡裝置315和網絡裝置325中的每一個可執行下述操作中的一個或多個:設置至少一個SUDF的值、增加至少一個SUDF的值、減小至少一個SUDF的值、將該至少一個SUDF的值設置為該一個或多個UDF中的一個UDF的值,以及將該至少一個SUDF的值推送至數據分組340的域中。
有利的,依據本發明的實施方式,數據分組中的一個或多個域可以以靈活的方式被向內和向外復制(例如,自外報頭至內報頭,以及自內報頭至外報頭)以修改數據分組。這種新穎的功能可以滿足軟件定義網絡中對數據分組做靈活的修改的實際和潛在的需求。依據本發明對于數據分組靈活的修改可能使能拷貝或以其他方式復制數據分組中的任意域/位置的內容至數據分組的另一域/位置,同時伴隨著修改或者不修改值。
圖4是依據本發明實施例的示例裝置400的示意圖。示例裝置400可執行這里所述的技術、方法和系統相關的各個功能,包含上述的示例操作200和示例情景300,以及下述示例流程500和600。示例裝置400可為示例架構100的一種實施方式。此外,示例裝置400可為實施于計算機/數據網絡中的網絡節點(例如,路由器或網關)。可選地,示例裝置400可以實施為分組交換器,例如,以單集成電路芯片或多集成電路芯片的形式,并可實施于網絡節點中。示例裝置400可包含若干硬件元件,該若干硬件元件以包含一個或多個晶體管、電容器、電阻器、電感器和/或憶阻器的電路的形式實施。
在圖4所述的示例中,示例裝置400可包含分組交換器405,分組交換器405具有若干硬件元件,例如解析器410、存儲裝置420、命令收集器430、分組緩沖器440、重寫數據向量器450以及分組修改器460。此外,分組交換器405可包含一個或多個輸入端口470及一個或多個輸出端口480。一個或多個輸入端口470可接收一個或多個入口數據分組。一個或多個輸出端口480可輸出一個或多個出口數據分組,其中至少一個出口數據分組可為入口數據分組的修改后的版本。
解析器410可用于解析入口數據分組以自入口數據分組擷取信息。所擷取的信息可包含入口數據分組的報頭中的一個或多個用戶定義域(UDF)。解析器410可也如以上(示例架構100和示例操作200)所述的依據一個或多個UDF中的至少一個UDF定義一個或多個源用戶定義域(SUDF)。
存儲裝置420可為任意類型的隨機存取存儲器(random access memory, 簡寫為RAM)、任意類型的三元內容可尋址存儲器(ternary content addressable memory,簡寫為TCAM),或用于儲存數據或一或多組指令的任意合適的存儲裝置(可為軟件、中間件或固件模塊的形式)。例如,TCAM可用于實施TCAM流量表,TCAM流量表可執行通配符搜索。換句話說,TCAM表的底部可設置”所有通配符”條目以執行默認查找結果,搜尋一個或更多錯過的條目,或二者均執行。儲存于存儲裝置420中的模塊可以被一個或多個處理器410執行來實現若干操作。在圖4所示的示例中,存儲裝置420中可儲存多個流量表425(1)–425(N),其中N為大于1的正整數,多個流量表425(1)–425(N)可以管線方式運行。流量表425(1)–425(N)可識別一個或多個操作命令,并以管線方式依據一個或多個操作命令對一個或多個SUDF中的至少一個SUDF執行操作。
命令收集器430可被配置為自流量表425(1)–425(N)接收并儲存一個或多個操作命令。
分組緩沖器440可被配置為儲存入口數據分組。
重寫數據向量器450可被配置為自解析器接收并儲存一個或多個SUDF。
分組修改器460可耦接于分組緩沖器440、命令收集器430以及重寫數據向量器450以分別自分組緩沖器440、命令收集器430以及重寫數據向量器450接收入口數據分組、一個或多個操作命令以及一個或多個SUDF。分組修改器460也可被配置為依據一個或多個操作命令以及一個或多個SUDF修改入口數據分組的一個或多個屬性,以及提供出口數據分組作為入口數據分組的修改后的版本。
在某些實施方式中,在修改入口數據分組的一個或多個屬性時,分組修改器460可被配置為將入口數據分組的格式自第一格式轉換為第二格式。在某些實施方式中,在將入口數據分組的格式自第一格式轉換為第二格式時,分組修改器460可被配置為將入口數據分組的報頭的格式自第一報頭格式轉換為第二報頭格式。
在某些實施方式中,在修改入口數據分組的一個或多個屬性時,分組修改器460可被配置修改入口數據分組的格式、入口數據分組的分組報頭、入口數據分組的長度或其組合。
在某些實施例中,在依據一個或多個UDF中的至少一個UDF定義一個或多個SUDF時,解析器410可被配置為基于一個或多個UDF中的第一UDF的值設置一個或多個SUDF中的第一SUDF的值。
在某些實施例中,在依據一個或多個操作命令對于一個或多個SUDF中的至 少一個SUDF執行操作時,流量表425(1)–425(N)可被配置為執行一個或多個操作,舉例來說,包含設置至少一個SUDF的值、增加至少一個SUDF的值、減小至少一個SUDF的值、將該至少一個SUDF的值設置為該一個或多個UDF中的一個UDF的值,以及將該至少一個SUDF的值推送至數據分組的域中。
在某些實施例中,在識別一個或多個操作命令時,在流量表425(1)–425(N)的每一個中,各流量表可決定在一個或多個UDF中的至少一個UDF和與流量表相關聯的相應預定匹配值之間是否存在匹配。流量表425(1)–425(N)也可響應一個或多個UDF中的至少一個UDF與相應預定匹配值匹配的決定儲存至少一操作命令。
圖5示出依據本發明的實施例的示例流程500。示例流程500可以表示執行示例架構100、示例操作200、示例情景300和/或示例裝置400的功能的一個方面。如一個或多個模塊510和520,以及子模塊522、524和526所示,示例流程500可包含一個或多個操作,動作,或功能。盡管以離散的模塊展示,各個模塊可被分為額外的模塊、結合為較少的模塊,或取消,取決于所需的實現方式。示例流程500的模塊可以示例架構100(或示例裝置400)實施。示例流程600可由示例裝置500實現。下文將描述示例流程500的操作被示例裝置400的分組交換器405執行的實施方式來對示例流程500做詳細說明,并且該記載僅用作說明之用。示例流程500開始于模塊510。
在510,示例流程500可涉及示例裝置400的分組交換器405,分組交換器405接收數據分組。模塊520可緊隨模塊510。
在520,示例流程500可涉及示例裝置400的分組交換器405,分組交換器405修改數據分組的一個或多個屬性。模塊530可緊隨模塊520。
在530,示例流程500可涉及示例裝置400的分組交換器405,分組交換器405輸出修改后的數據分組。
模塊520可包含若干子模塊(包含子模塊522、524以及526,并以子模塊522開始)以實施對數據分組的一個或多個屬性的修改。
在522,示例流程500可涉及示例裝置400的分組交換器405,分組交換器405自數據分組擷取信息,信息包含數據分組的報頭中的一個或多個UDF。子模塊524可緊隨子模塊522。
在524,示例流程500可涉及示例裝置400的分組交換器405,分組交換器405依據一個或多個UDF中的至少一個UDF定義一個或多個SUDF。子模塊526 可緊隨子模塊524。
在526,示例流程500可涉及示例裝置400的分組交換器405,分組交換器405對一個或多個SUDF中的至少一個SUDF執行一個或多個操作。
在某些實施方式中,在修改數據分組的一個或多個屬性時,示例流程500可涉及分組交換器405將數據分組的格式自第一格式轉換為第二格式。在某些實施方式中,在將數據分組的格式自第一格式轉換為第二格式時,示例流程500可涉及分組交換器405將數據分組的報頭的格式自第一報頭格式轉換為第二報頭格式。
在某些實施方式中,在修改數據分組的一個或多個屬性時,示例流程500可涉及分組交換器405修改數據分組的格式、分組報頭或長度中的至少一個。
在某些實施例中,在依據一個或多個UDF中的至少一個UDF定義一個或多個SUDF時,示例流程500可涉及分組交換器405基于一個或多個UDF中的第一UDF的值設置一個或多個SUDF中的第一SUDF的值。
在某些實施例中,在對于一個或多個SUDF中的至少一個SUDF執行一個或多個操作時,示例流程500可涉及分組交換器405識別一個或多個操作命令。此外,示例流程500可涉及分組交換器405對于該至少一個SUDF執行一個或多個操作命令。在某些實施例中,在對于至少一個SUDF執行一個或多個操作命令時,示例流程500可涉及分組交換器405執行包含下述操作的一個或多個操作:設置至少一個SUDF的值、增加至少一個SUDF的值、減小至少一個SUDF的值、將該至少一個SUDF的值設置為該一個或多個UDF中的一個UDF的值,以及將該至少一個SUDF的值推送至數據分組的域中。
在某些實施例中,在識別一個或多個操作命令時,示例流程500可涉及分組交換器405通過多個流量表的管線處理一個或多個UDF以及一個或多個SUDF。此外,在多個流量表的每一個中,示例流程500可涉及分組交換器405決定在一個或多個UDF中的至少一個UDF和與流量表相關聯的相應預定匹配值之間是否存在匹配。此外,示例流程500可涉及分組交換器405響應一個或多個UDF中的至少一個UDF與相應預定匹配值匹配的決定儲存至少一操作命令。
圖6示出依據本發明的實施例的示例流程600。示例流程600可以表示執行示例架構100、示例操作200、示例情景300和/或示例裝置400的功能的一個方面。如一個或多個模塊610、620、630、640、650、660、670、680和690所示,示例流程600可包含一個或多個操作,動作,或功能。盡管以離散的模塊 展示,各個模塊可被分為額外的模塊、結合為較少的模塊,或取消,取決于所需的實現方式。示例流程600可以示例架構100(或示例裝置400)實施。下文將描述示例流程600的操作被示例裝置400的分組交換器405執行的實施方式來對示例流程600做詳細說明,并且該記載僅用作說明之用。示例流程600開始于模塊610。
在610,示例流程600可涉及分組交換器405,分組交換器405接收數據分組。模塊620可緊隨模塊610。
在620,示例流程600可涉及分組交換器405,分組交換器405儲存數據分組。模塊630可緊隨模塊620。
在630,示例流程600可涉及分組交換器405,分組交換器405解析數據分組以自數據分組擷取信息,信息包含數據分組的報頭中的一個或多個UDF。模塊640可緊隨模塊630。
在640,示例流程600可涉及分組交換器405,分組交換器405依據一個或多個UDF中的至少一個UDF定義一個或多個SUDF。模塊650可緊隨模塊640。
在650,示例流程600可涉及分組交換器405,分組交換器405儲存一個或多個SUDF。模塊660可緊隨模塊650。
在660,示例流程600可涉及分組交換器405,分組交換器405通過多個流量表處理一個或多個UDF以及一個或多個SUDF,其中多個流量表用于識別一個或多個操作命令以及依據一個或多個操作命令以管線形式對一個或多個SUDF中的至少一個SUDF執行操作。模塊670可緊隨模塊660。
在670,示例流程600可涉及分組交換器405,分組交換器405儲存一個或多個操作命令。模塊680可緊隨模塊670。
在680,示例流程600可涉及分組交換器405,分組交換器405依據所儲存的一個或多個操作命令以及所儲存的一個或多個SUDF修改數據分組的一個或多個屬性。模塊690可緊隨模塊680。
在690,示例流程600可涉及分組交換器405,分組交換器405輸出修改后的數據分組。
在某些實施方式中,在修改數據分組的一個或多個屬性時,示例流程600可涉及分組交換器405將數據分組的格式自第一格式轉換為第二格式。在某些實施方式中,在將數據分組的格式自第一格式轉換為第二格式時,示例流程600可涉及分組交換器405將數據分組的報頭的格式自第一報頭格式轉換為第二報 頭格式。
在某些實施例中,在依據一個或多個UDF中的至少一個UDF定義一個或多個SUDF時,示例流程600可涉及分組交換器405基于一個或多個UDF中的第一UDF的值設置一個或多個SUDF中的第一SUDF的值。
在某些實施例中,在依據一個或多個操作命令對于一個或多個SUDF中的至少一個SUDF執行操作時,示例流程600可涉及分組交換器405執行包含下述操作的一個或多個操作:例如,設置至少一個SUDF的值、增加至少一個SUDF的值、減小至少一個SUDF的值、將該至少一個SUDF的值設置為該一個或多個UDF中的一個UDF的值,以及將該至少一個SUDF的值推送至數據分組的域中。
在某些實施例中,在識別一個或多個操作命令時(包含執行操作時),示例流程600可涉及分組交換器405在每一個流量表中決定在一個或多個UDF中的至少一個UDF和與流量表相關聯的相應預定匹配值之間是否存在匹配。例如,通過使用TCAM表,“默認操作命令”可通過默認條目(例如,通配符條目)而獲得,即便沒有UDF匹配。此外,示例流程600可涉及分組交換器405響應一個或多個UDF中的至少一個UDF與相應預定匹配值匹配的決定儲存至少一操作命令。
文中描述的主題有時示出了包括在其它不同部件內的或與其它不同部件連接的不同部件。應當理解:這樣描繪的架構僅僅是示例性的,并且,實際上可以實施實現相同功能的許多其它架構。在概念意義上,實現相同功能的部件的任何布置是有效地“相關聯的”,以使得實現期望的功能。因此,文中被組合以獲得特定功能的任意兩個部件可以被視為彼此“相關聯的”,以實現期望的功能,而不管架構或中間部件如何。類似地,這樣相關聯的任意兩個部件還可以被視為彼此“可操作地連接的”或“可操作地耦接的”,以實現期望的功能,并且,能夠這樣相關聯的任意兩個部件還可以被視為彼此“操作上可耦接的”,以實現期望的功能。“操作上可耦接的”的具體示例包括但不限于:實體地可聯結和/或實體地相互、作用的部件、和/或無線地可相互作用和/或無線地相互作用的部件、和/或邏輯地相互作用的和/或邏輯地可相互作用的部件。
此外,關于文中基本上任何復數和/或單數術語的使用,只要對于上下文和/或應用是合適的,本領域普通技術人員可以將復數變換成單數,和/或將單數變換成復數。
本領域普通技術人員將會理解,通常,文中所使用的術語,特別是在所附 權利要求(例如,所附權利要求中的主體)中所使用的術語通常意在作為“開放性”術語(例如,術語“包括”應當被解釋為“包括但不限干”,術語“具有”應當被解釋為“至少具有”,術語“包含”應當被解釋為“包含但不限干”等)。本領域普通技術人員還將理解,如果意在所介紹的權利要求陳述對象的具體數目,則這樣的意圖將會明確地陳述在權利要求中,在缺乏這樣的陳述的情況下,不存在這樣的意圖。例如,為了幫助理解,所附權利要求可以包括使用介紹性短語“至少一個”和“一個或更多個”來介紹權利要求陳述對象。然而,這樣的短語的使用不應當被解釋為:用不定冠詞“一個(a或an)”的權利要求陳述對象的介紹將包括這樣介紹的權利要求陳述對象的任何權利要求限制為只包含一個這樣的陳述對象的發明,即使在同一權利要求包括介紹性短語“一個或更多個”或“至少一個”以及諸如“一個(a)”或“一個(an)”之類的不定冠詞的情況下(例如,“一個(a)”和/或“一個(an)”應當通常被解釋為意味著“至少一個”或“一個或更多個”)也如此;上述對以定冠詞來介紹權利要求陳述對象的情況同樣適用。另外,即使明確地陳述了介紹的權利要求陳述對象的具體數目,但本領域普通技術人員也會認識到:這樣的陳述通常應當被解釋為意味著至少所陳述的數目(例如,僅有“兩個陳述對象”而沒有其他修飾語的陳述通常意味著至少兩個陳述對象,或兩個或更多個陳述對象)。此外,在使用類似于“A、B和C中的至少一個等”的慣用語的情況下,通常這樣的結構意在本領域普通技術人員所理解的該慣用語的含義(例如,“具有A、B和C中的至少一個的系統”將包括但不限于具有單獨的A、單獨的B、單獨的C、A和B—起、A和C一起、B和C一起和/或A、B和C一起的系統等)。在使用類似于“A、B或C中的至少一個等”的慣用語的情況下,通常這樣的結構意在本領域普通技術人員所理解的該慣用語的含義(例如,“具有A、B或C中的至少一個的系統”將包括但不限于具有單獨的A、單獨的B、單獨的C、A和B—起、A和C一起、B和C一起和/或A、B和C一起的系統等)。本領域普通技術人員將進一歩理解,不管在說明書、權利要求書中還是在附圖中,表示兩個或更多個可替換的術語的幾乎任意析取詞和/或短語應當理解成考慮包括術語中的一個、術語中的任一個或所有兩個術語的可能性。例如,短語“A或B”應當被理解成包括“A”、“B”、或“A和B”的可能性。
從前述內容的記載可以理解,本說明書中所描述的本發明的各個實施方式僅用于說明的目的,并且可以在不脫離本公開的范圍和精神的情況下進行修改。 因此,本說明書中所描述的各個實施方式并不意在限制,真正的范圍和精神由權利要求書來限定。