TWI631841B - 開放流協定硬體加速計時器實施系統與方法 - Google Patents
開放流協定硬體加速計時器實施系統與方法 Download PDFInfo
- Publication number
- TWI631841B TWI631841B TW104118717A TW104118717A TWI631841B TW I631841 B TWI631841 B TW I631841B TW 104118717 A TW104118717 A TW 104118717A TW 104118717 A TW104118717 A TW 104118717A TW I631841 B TWI631841 B TW I631841B
- Authority
- TW
- Taiwan
- Prior art keywords
- timer
- hardware
- storage area
- entries
- time
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 35
- 230000000737 periodic effect Effects 0.000 claims description 6
- 230000001133 acceleration Effects 0.000 claims description 5
- 230000007704 transition Effects 0.000 claims description 3
- 239000003795 chemical substances by application Substances 0.000 description 24
- 238000010586 diagram Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 239000000872 buffer Substances 0.000 description 1
- 235000014510 cooky Nutrition 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/62—Queue scheduling characterised by scheduling criteria
- H04L47/6215—Individual queue per QOS, rate or priority
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/54—Organization of routing tables
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/38—Flow based routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/28—Flow control; Congestion control in relation to timing considerations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/62—Queue scheduling characterised by scheduling criteria
- H04L47/622—Queue service order
- H04L47/623—Weighted service order
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
提出了一種新方案以支援虛擬網路交換機,其是網路交換機的軟體實施,其在開放流(OpenFlow)協定下使用硬體來加速虛擬網路交換機的計時器的實施。該方案使用多個硬體實施的計時器塊/環,其中每個環覆蓋一個特定的時間段並且具有多個計時器儲存區,每個計時器儲存區相應於計時器的到期時間的時間間隔。當新的流表條目在虛擬網路交換機的開放流(OpenFlow)的代理器處被編程時,其相關的計時器條目將被產生並且基於計時器的到期時間被插入至相應的計時器儲存區中。在運行期間,虛擬網路交換機的硬體遍歷計時器環來確定時間到期的計時器儲存區,識別到期的計時器儲存區中的計時器條目,中斷CPU或向開放流(OpenFlow)代理器提供帶有必需的上下文資訊的通知。
Description
本申請案主張於2014年11月21日所提申的第62/083,074號美國臨時專利申請的優先權,其名稱為「開放流協定實施之硬體加速(Hardware acceleration for OpenFlow protocol implementation)」,並在此將其全文引用作為參考。
開放流(OpenFlow)協定是一種通信協定,其使一遠程控制器能存取網路上的網路交換機或路由器的封包轉發平面。如下所述,該協定使得遠端控制器能夠通過添加、更改和移除封包匹配規則和來自網路交換機的封包轉發(或流)表中的操作來確定通過網路交換機的網路封包的路由路徑。開放流(OpenFlow)協定將高層路由決定平面(控制路徑)與網路交換機的封包轉發平面(資料路徑)隔開,其中資料路徑仍將位於網路交換機中,而控制路徑將移動至分離的遠端控制器中,通常是標準伺服器中。閘道和控制器經由開放流(OpenFlow)協定相互通信,這將限定在網路交換機與控
制器之間的消息的類型,例如封包接收(packet-received)、封包發送(send-packet-out)、修改轉發表(modify-forwarding-table)以及取得狀態(get-stats)。因此,相較於使用存取控制清單(ACL)和路由式通訊協定,開放流(OpenFlow)協定允許對網路交換機的更複雜的管理。此外,開放流(OpenFlow)協定允許能夠使用單一的開放的協定來遠端地管理來自不同的供應商的網路交換機(其通常分別具有自己專屬的介面和正本語言)。
在開放流(OpenFlow)協定中,網路交換機的資料路徑呈現整潔的流表(clean flow table),其中,每個流表條目包括一組域,其包括但不限於,具有接收的封包的匹配域、優選權、計數器、基於匹配結果的用於封包的操作的指示(例如發送埠(send-out-port)、修改欄位(modify-field)或丟棄(drop))、超時和用於操作的憑證檔案(cookie)(如下所示)。
當網路交換機接收到其先前從未接收過的封包(針對該資料不存在匹配流條目)時,其將發送封包至控制器,控制器隨後做出決策是否處理該封包。控制器可丟棄該封包或添加流表條目,該流表條目指示網路交換機如何在未來轉發類似的封包。
在開放流(OpenFlow)協定中,在控制器的請求下或通過使用流超時機制從流表移除流表條目,流超時機制獨立於控制器地由網路交換機運行並且基於如上所示的流條目的狀態和配置。在一些實施例中,每個流條目具有兩個相關
聯的計時器,其控制超時和條目從流表的移除。
●空閒超時計時器:如果在一個特定的時間段(以秒來測量)中非零和空閒(例如,沒有封包),將相應的流項目從流表移除。
●硬超時(hard timeout)計時器:如果非零,則網路交換機必須記錄流專案在流表中的產生/到達時間,並且在最大時間段後將其從流表清空。
由於在網路交換機的流表中通常編程有十萬或百萬個流表條目(每個具有多個單獨的計時器),因此在開放流(OpenFlow)協定下使用的潛在的計時器是巨大的並且將對系統的CPU/記憶體(例如,控制器)資源施加極大的負荷來為了經由軟體來實施和處理那麼多的計時器。因此,確保這些計時器的精確性和預測性將非常困難。由於大量的流表條目在同一時間或大致相同時間超時,相應的流表的路徑業務將由於處理計時器的抖動/延時而受影響,這將引起不希望的網路操作和/或管理的錯誤。因此,需要一種改善的系統和方法來實現開放流(OpenFlow)協定下的網路交換機中的計時器的加速實施。
上述相關領域的實例以及與其有關的限制僅為例示性而非限制性。在閱讀本說明書和如附圖式後,將顯然得出相關領域的其他限制。
102‧‧‧虛擬網路交換機
103‧‧‧開放流控制器
104‧‧‧開放流代理器
106‧‧‧硬體計時器塊
108‧‧‧計時器環
110‧‧‧計時器儲存區
112‧‧‧組塊
114‧‧‧計時器條目
200‧‧‧流程圖
202-210‧‧‧方塊
當閱讀如附圖式時,能夠根據下述說明書來最佳地
理解本申請案之構想。應理解根據業界標準實務,並未依實際比例來繪示各種特徵。事實上,為了清楚起見,可以任意地增加或減少各種特徵的尺寸。
第一圖說明了根據一些實施例之系統的示例性方塊圖,其支援在開放流(OpenFlow)協定下的虛擬網路之硬體加速的計時器的實施。
第二圖說明了根據一些實施例的過程的示例性流程圖,其支援在開放流(OpenFlow)協定下的虛擬網路之硬體加速的計時器的實施。
下面的說明提供了許多不同的實施例或例子,以實施標的的各種特徵。下文描述了各元件和裝置的特定實施例以簡化本案公開內容。當然,這些僅僅是示例而非限制。此外,在各個實施例中,本案可以重複附圖元件符號和/或字母。這些重複是為求簡化和清晰,其本身並不表示在此所述的各個實施例和/或配置之間的關係。
提出了一種新方案,其考慮用於支援虛擬網路交換機的系統和方法,這是網路交換機的軟體實施,其在開放流(OpenFlow)協定下使用硬體來加速虛擬網路交換機的計時器的實施。具體地,所提出的方案使用多個硬體實施的計時器塊/環,其中每個環覆蓋一個特定的時間段並且具有多個計時器儲存區(timer bucket),每個計時器儲存區相應於虛擬網路交換機的流表條目的計時器的到期時間的時間間隔/時間段。在此,在計時器環中的每個儲存區包括指標,其指向如
下一組計時器的條目,該組定時器具有在相同的時間間隔內的到期時間。當新的流表條目在虛擬網路交換機的開放流(OpenFlow)的代理器處被編程時,其相關的計時器條目將被產生並且基於計時器的到期時間被插入至計時器環中的相應的計時器儲存區中。在運行期間,虛擬網路交換機的硬體遍歷計時器環來確定時間到期的計時器儲存區,識別到期的計時器儲存區中的計時器條目,中斷CPU或向開放流(OpenFlow)代理器提供帶有必需的上下文資訊的通知/回叫信號,並且釋放由過期的計時器儲存區佔用的記憶體空間。
通過維護在開放流(OpenFlow)協定下為虛擬網路交換機產生的計時器並且向虛擬網路交換機的硬體卸載計時器的處理,所提出的方案實現了計時器的硬體加速的實施。這種硬體加速的實施消除了施加在系統的CPU/記憶體資源上的具大的負荷,這些負荷由處理在軟體實施情況下的大量的計時器引起,並且避免了網路抖動/延遲。因此,即使在大約相同的時間處理大量的計時器,所提出的方案仍改善了計時器的準確性和預測能力。
第一圖說明了根據一些實施例的系統的示例性方塊圖,其支援在開放流(OpenFlow)協定下的用於虛擬網路的硬體加速的計時器的實施。雖然該方塊圖將各個元件描述為功能地分隔的,但是這種描述僅僅是為了顯示目的。顯而易見的是,在該圖中示出的各元件能夠任意地組合或劃分成分離的軟體、固件和/或硬體元件。此外,還顯而易見的是,這些元件,無論它們怎麼組合或劃分,能夠在相同的主機或多
個主機上執行,並且其中能夠通過一個或多個網路來連接這些多個主機。
在第一圖的示例中,虛擬網路交換機102包括至少一個開放流(OpenFlow)代理器104,其在一個或多個硬體計時器塊/環106上實施。在此,開放流(OpenFlow)代理器104是運行在多核心嵌入式硬體模組上的軟體元件,該多核心嵌入式硬體模組具有軟體、固件、硬體或用於實現該目的的另一元件。非限制性地例如,具有其開放流(OpenFlow)代理器104的虛擬網路交換機102在基於OCTEON/ARM的系統/核心(core)/伺服器上運行。硬體計時器塊106能夠是多核心嵌入式硬體的一部分,多核心嵌入式硬體包括一個或多個協同處理器/硬體核心、例如RAM的記憶體(也稱為主記憶體),和例如非易失性的記憶體的儲存單元(也稱為輔助記憶體),其具有軟體指令,這些軟體指令被儲存用於實施一個或多個程序。
在一些實施例中,可選的開放流(OpenFlow)控制器103用於通信並且控制開放流(OpenFlow)代理器104的運行,其中開放流(OpenFlow)控制器103在基於x86、OCTEON和/或ARM的系統/核心/伺服器上運行。開放流(OpenFlow)控制器103和虛擬網路交換機102遵循例如TCP/IP協定的通信協定相互通信並且和其他設備/主機/伺服器通信。這種網路能夠是但不限於網際網路、內聯網、廣域網路絡(WAN)、局域網(LAN)、無線網路、藍牙、WiFi、移動通信網或任何其他的網路類型。本領域的技術人員熟知
網路的物理連接和通信協定。
在第一圖的示例中,硬體計時器塊116包括多個計時器子系統108,在此被稱為計時器環,其由開放流(OpenFlow)代理器104在記憶體中被產生、編程和維護以在虛擬網路交換機102上運行。在此,硬體計時器塊106可以包括一個或多個協同處理器/核心和記憶體單元。每個計時器環108還包括多個計時器儲存區110,其在記憶體中連續地排列來形成環狀的結構,其中每個計時器儲存區110覆蓋一個時間間隔(在計時器儲存區遍歷之間的時間),該時間間隔由計時器環108限定,在該時間間隔中一組計時器將到期。因此,每個計時器環108覆蓋一個特定的時間段,其包括多個連續的時間間隔,在這些時間間隔中計時器將到期。如第一圖的示例所示,每個計時器儲存區110包括指標,其指向連結的組塊112(chunk)的列表(例如,第一個組塊、當前組塊和組塊的數量),每個組塊112包括多個指向計時器條目114的指標,每個計時器條目114在記憶體中佔據一系列的位元組(例如,16位元組),以如上所述地用於與流表相關聯的計時器有關的資訊。在此,在記憶體單元(未示出)中維護計時器環108、每個計時器環中的計時器儲存區110和每個計時器儲存區中的組塊112,其中每個記憶體單元能夠但不限於為2級(L2)緩存、動態隨機記憶體(DRAM)、靜態隨機記憶體(SRAM)和快閃記憶體。
在一些實施例中,開放流(OpenFlow)代理器104配置為分配一個計時器環108至實施虛擬網路交換機102的
每個硬體核心,以用於定時環中的計時器的基於硬體的處理並且避免在實施虛擬網路交換機102的不同的硬體核心之間的鎖定和同步。每個核心可以隨後動態分配儲存空間給計時器環108中的計時器組塊112和其計時器條目114。
在一些實施例中,每個計時器環108的計時器儲存區110的數量、每個計時器儲存區110的組塊112的數量、以及每個組塊112的計時器條目114的數量是可編程的,並且能夠由開放流(OpenFlow)代理器104配置。在一些實施例中,開放流(OpenFlow)代理器104配置為經由多個暫存器來編程特定於每個計時器環108的配置參數,其中每個配置參數包括但不限於計時器環108的使能信號、計時器環108中的計時器儲存區110的時間間隔和數量、計時器環108中的起始計時器儲存區110的指標/記憶體位址、在計時器環108中正被處理的當前計時器儲存區110的定時標記(timing tick)(在當前計時器儲存區110中的計時器到期之前的標記的計數)、在計時器環108中的下一計時器儲存區110的下一時間增量、在計時器儲存區110中的每個組塊112的尺寸(每個組塊中的指向計時器條目114的指標的數量)。在此,計時器環108的使能信號指示計時器環108是準備用於讀取/處理、或用於從記憶體釋放或處於週期性的模式,如下所述地。
在運行中,開放流(OpenFlow)代理器104配置為為新插入的流表條目的計時器產生計時器條目114,並且將計時器條目114插入/添加至計時器儲存區110的組塊112,其相應於計時器的到期時間。在一些實施例中,每個計時器條
目114還包括計時器的上下文資訊(例如,指向與計時器相關的流表條目的資訊和/或指標)。在計時器條目被添加至計時器環之後的一個時間點,而不是硬體計時器塊106遍歷計時器儲存區110中的計時器條目114的時候或之後,開放流(OpenFlow)代理器104配置為通過將計時器條目的所有位元寫為零來在計時器條目到期之前使得其無效。非限制性地例如,每秒能夠使得直至400百萬的計時器條目無效。在這個情況下,硬體計時器塊106將不會提交無效的計時器條目來用於處理(例如,排程通知)。
在一些實施例中,開放流(OpenFlow)代理器104配置為基於實施虛擬網路交換機102的協同處理器或硬體核心的時鐘週期的計數來確定用於插入計時器條目114的計時器儲存區110。替代地,開放流(OpenFlow)代理器104配置為直接從指向當前計時器儲存區的指標獲得用於插入一組計時器條目114的計時器儲存區110的位置。注意到當前計時器儲存區指向當前由硬體計時器塊106讀取的計時器儲存區110,這可以比下述時間要快,該時間為硬體計時器塊106遍歷當前計時器儲存區中的計時器條目114的短時間。
在運行中,實施虛擬網路交換機102的硬體計時器塊106配置為通過將計時器環108的定時到期偏置設置為當前時間加上時間間隔來初始化計時器環108中的計時器儲存區101的到期時間。硬體計時器塊106可以通過基於內部時鐘週期的過去的時間標記或虛擬網路交換機102的通用輸入/輸出(GPIO)邊緣(edge)/接腳(pin)的轉變來計數當前時
間。在當前時間到達定時到期偏置時,當前計時器儲存區110中的計時器將到期。一旦當前計時器儲存區110到期,則硬體計時器塊106配置為遍歷當前計時器儲存區110的組塊112中的計時器條目。在一些實施例中,硬體計時器塊106配置為並行地遍歷多個計時器環108中的計時器條目。對於仍舊有效的在當前計時器儲存區110的組塊112的列表中的所有計時器條目,硬體計時器塊106將排程通知給開放流(OpenFlow)代理器104,以實施與計時器相關的流表條目中的指令。非限制性地例如,每秒能夠排程直至120百萬的通知條目。在一些實施例中,一旦它們期,硬體計時器塊106還配置為釋放和初始化當前計時器儲存區110中的組塊112的列表和組塊112中的計時器條目114至由硬體計時器塊106的記憶體管理器管理的記憶體池以為了後續使用,除非計時器環108被標記為不被釋放或處於週期性模式,如下所述地。
在一些實施例中,硬體計時器塊106還配置為配置計時器環108來以定期地重複其計時器儲存區110中的事件/計時器。當實施虛擬網路交換機102的硬體計時器塊106遍歷設置為週期性模式的計時器環108中的計時器條目114的列表時,這些計時器條目114將既不被更改也不會從記憶體釋放。替代地,這些計時器將在下次時間標記繞過計時器環108並且再次到達相同的計時器儲存區110中的計時器時被再次排程,從而產生週期性的重複的操作。
在一些實施例中,實施虛擬網路交換機102的硬體計時器塊106配置為當計時器環108的計時器時間間隔對於
硬體計時器塊106遍歷計時器儲存區110中的計時器條目114的列表而言過短時設置中斷位元/記號以暫停時間標記。如果計時器時間間隔被設置為足以讓硬體計時器塊106來遍歷計時器儲存區110中的計時器條目114的列表,則這種中斷設置將不是必需的。
在一些實施例中,開放流(OpenFlow)代理器104配置為分配足夠的記憶體來用於組塊112,這些組塊112需要來保持系統需要支援的最大數量的計時器條目114。如果組塊112不能夠被分配,則所提出的機制將不能夠添加更多的條目,在這種情況下開放流(OpenFlow)代理器104配置為組塊112添加更多的緩衝,並且重新嘗試添加計時器條目114。注意到開放流(OpenFlow)代理器104將需要考慮花費在記憶體分配上的額外時間並且相應地調節計時器條目設置。一旦計時器到期,實施虛擬網路交換機102的核心能夠被中斷來通知其到期的計時器條目114。替代地,在到期計時器通知期間,在計時器註冊期間通過開放流(OpenFlow)代理器104的資訊能夠被傳回至開放流(OpenFlow)代理器104。非限制性地例如,開放流(OpenFlow)代理器104能夠提供指標指向計時器條目114,其具有當計時器條目114被產生時嵌入至其中的上下文資訊。一旦計時器到期,該資訊能夠被返回至開放流(OpenFlow)代理器104,以為開放流(OpenFlow)代理器104提供所需要的上下文來處理該通知。
第二圖示出了過程的示例性流程圖,其支援在開放流(OpenFlow)協定下的用於虛擬網路的硬體加速的計時器
的實施。雖然該圖為了示例性目的以特定的順序示出了多個功能步驟,但是該過程應當不限於任何特定的順序或步驟的安排。本領域的技術人員應當理解在該圖中示出的各個步驟能夠以各種方式被略去、重新安排、組合和/或調節。
在第二圖的示例中,流程圖200始於方塊202,在其中編程和維護用於虛擬網路交換機的一個或多個硬體計時器環,其中每個計時器環包括多個計時器儲存區,每個計時器儲存區維護多個計時器條目,這些計時器條目具有時間間隔內的到期時間。流程圖200繼續至方塊204,其中一組計時器條目被產生用於開放流(OpenFlow)協定下的新插入的流表條目的計時器。流程圖200繼續到方塊206,其中,一組計時器條目被插入至多個計時器環中的一個定時環中的多個計時器儲存區中的一個中,其中計時器儲存區的到期時間相應於計時器的到期時間。流程圖200繼續至方塊208,其中在當前時間到達計時器儲存區的到期時間時,硬體將遍歷當前計時器儲存區中的計時器條目。流程圖200係於方塊210結束,針對計時器儲存區中的仍然有效的所有計時器條目排程通知以執行與所述計時器相關聯的流表條目中的指令。
可以以電腦實施的過程和裝置的形式至少部分地嵌入在此所述的方法和系統來實施這些過程。在此所述方法還可以以編碼有計算程式碼的有形的、非易失性的機器可讀的儲存介質的形式被至少部分地嵌入。介質可以包括例如RAM、ROM、CD-ROM、DVD-ROM、BD-ROM、硬磁碟機、快閃記憶體、或任何其他的非易失性的機器可讀的儲存介
質,其中,當電腦程式代碼被載入並且由電腦執行時,電腦變成用於實施該方法的裝置。該方法還可以至少部分地嵌入至電腦的形式,在其中,電腦程式代碼被實施和/或執行,以便電腦成為用於實施方法的特定目的的電腦。當在通用處理器上實施時,電腦程式代碼部分配置處理器來產生特定的邏輯電路。替代地,該方法可以至少部分地嵌入至以專用積體電路為形式的數位訊號處理器中來實施該方法。
所保護的主題的各種實施例的上述描述被提供用於描述和示出的目的。而並不意在窮盡或限制所保護的主題至所公開的精確的形式。本領域的技術人員應當理解各種更改和變形。選擇並且描述這些實施例,以便最佳地描述本發明的原理和實際應用,由此使得相關領域的其他技術人員能夠理解所保護的主題、適於考慮的特定用處的各種實施例和各種更改。
Claims (36)
- 一種用以支援開放流(OpenFlow)協定下的一虛擬網路交換機之硬體加速計時器實施之系統,所述系統包括:一開放流(OpenFlow)代理器,其係配置以:編碼和維護該虛擬網路交換機之一個或多個硬體計時器環,其中各所述計時器環包括多個計時器儲存區,各該計時器儲存區維護多個計時器條目,所述多個計時器條目具有在一時間間隔內的到期時間;針對在所述開放流(OpenFlow)協定下的新產生流表條目的計時器產生一組計時器條目;將該組計時器條目插入至所述多個計時器環中其一的其中一個計時器儲存區中,其中所述計時器儲存區的到期時間對應於所述計時器的到期時間;該虛擬網路交換機之所述硬體計時器環係各配置以:在當前時間到達所述計時器儲存區的所述到期時間時,通過硬體來遍歷一當前計時器儲存區中的所述計時器條目;針對所述計時器儲存區中仍然有效的所有計時器條目對所述開放流(OpenFlow)代理器排程通知,以執行與所述計時器相關聯之該流表條目中的指令。
- 如申請專利範圍第1項所述的系統,其中所述開放流(OpenFlow)代理器是在一多核心嵌入之硬體模組上運行。
- 如申請專利範圍第1項所述的系統,其中所述硬體計時器環包括實施所述虛擬網路交換機的一個或多個協同處理器/核心和記憶體單元。
- 如申請專利範圍第1項所述的系統,進一步包括:一開放流(OpenFlow)控制器,係配置以傳送並控制所述開放流(OpenFlow)代理器的操作。
- 如申請專利範圍第1項所述的系統,其中在所述開放流(OpenFlow)協定下的所述流表條目的所述計時器控制所述流表條目的超時和移除。
- 如申請專利範圍第1項所述的系統,其中,在各所述計時器環中的所述多個計時器儲存區係連續組構於該記憶體中以形成一環狀結構,使得各所述計時器環覆蓋一特定時間段,所述特定時間段包括多個連續的時間間隔,在所述多個連續的時間間隔期間所述計時器將到期。
- 如申請專利範圍第1項所述的系統,其中,各所述計時器儲存區包含對一連結組塊清單之指標,其中每個組塊包括對所述多個計時器條目的多個指標。
- 如申請專利範圍第1項所述的系統,其中各所述計時器條目進一步包括上下文資訊,所述上下文資訊與和所述計時器相關聯的所述流表條目相關。
- 如申請專利範圍第1項所述的系統,其中所述開放流(OpenFlow)代理器係配置以分配一個計時器環至實施所述虛擬網路交換機的每個硬體核心,以對所述計時器環中的多個計時器進行基於硬體之處理,並避免在實施所述虛 擬網路交換機的不同硬體核心之間的鎖定和同步。
- 如申請專利範圍第1項所述的系統,其中所述開放流(OpenFlow)代理器係配置以經由多個暫存器來編程多個配置參數,所述多個配置參數係特定於所述時間間隔、時間標記、以及每個計時器環和其計時器儲存區與組塊的尺寸。
- 如申請專利範圍第1項所述的系統,其中所述開放流(OpenFlow)代理器係配置以在所述多個計時器條目已被添加至一計時器環之後且在其到期之前的某一時間點、而不是在各所述硬體計時器環遍歷所述計時器儲存區中的所述多個計時器條目時或之後,令所述多個計時器條目中的一個或多個計時器條目無效。
- 如申請專利範圍第11項所述的系統,其中各所述硬體計時器環係配置以不提交被無效的計時器條目以供處理。
- 如申請專利範圍第1項所述的系統,其中所述開放流(OpenFlow)代理器被配置為基於實施所述虛擬網路交換機的硬體核心的時鐘週期的計數來確定要插入該組計時器條目的所述計時器儲存區。
- 如申請專利範圍第1項所述的系統,其中所述開放流(OpenFlow)代理器被配置為直接從指向該當前計時器儲存區的指標取得要插入該組計時器條目的所述計時器儲存區的位置。
- 如申請專利範圍第1項所述的系統,其中所述硬體計時器塊被配置為藉由設定定時到期偏置為所述計時器環的當 前時間加上所述時間間隔來初始化所述計時器儲存區的到期時間。
- 如申請專利範圍第15項所述的系統,其中所述硬體計時器塊被配置為藉由基於內部時鐘週期之經過時間標記或所述虛擬網路交換機的通用輸入/輸出(GPIO)的邊緣/接腳的轉變來計數所述當前時間。
- 如申請專利範圍第1項所述的系統,其中所述硬體計時器塊被配置為並行地遍歷多個計時器環中的所述多個計時器條目。
- 如申請專利範圍第1項所述的系統,其中所述硬體計時器塊被配置為一旦在當前計時器儲存區中的所述多個組塊中的計時器條目到期,即釋放所述多個組塊和所述多個組塊中的多個計時器條目至記憶體池以供後續使用。
- 如申請專利範圍第1項所述的系統,其中所述硬體計時器塊係配置以配置一計時器環以週期性地重複其計時器儲存區中的事件/計時器。
- 如申請專利範圍第19項所述的系統,其中所述硬體計時器塊被配置為不修改或釋放以週期性模式設置的所述計時器環中的計時器條目,並且在下一次時間標記環繞所述計時器環且再次到達相同計時器儲存區中的計時器時,再次排程所述計時器條目。
- 如申請專利範圍第1項所述的系統,其中所述硬體計時器塊係配置以設置一中斷位元,以於一計時器環的時間間隔對於所述硬體計時器塊而言過短而不能遍歷所述多個計 時器儲存區中的計時器條目的列表時暫停時間標記。
- 一種用以支援開放流(OpenFlow)協定下的一虛擬網路交換機之硬體加速計時器實施之方法,所述方法包括:編碼和維護所述虛擬網路交換機之一個或多個硬體計時器環,其中各所述計時器環包括多個計時器儲存區,各該計時器儲存區維護多個計時器條目,所述多個計時器條目具有在一時間間隔內的到期時間;為所述開放流(OpenFlow)協定下的新插入的流表條目的計時器產生一組計時器條目;將該組計時器條目插入至所述多個計時器環中的一個計時器環中的所述多個計時器儲存區中的一個計時器儲存區中,其中所述計時器儲存區的到期時間對應於所述計時器的到期時間;在當前時間到達所述計時器儲存區的所述到期時間時,通過硬體來遍歷當前計時器儲存區中的所述計時器條目;針對所述計時器儲存區中的仍然有效的所有計時器條目排程通知,以執行與所述計時器相關聯的所述流表條目中的指令。
- 如申請專利範圍第22項所述的方法,進一步包括:在記憶體中連續地組構各所述計時器環中的所述多個計時器儲存區以形成一環狀結構,使得各所述計時器環覆蓋一特定時間段,所述特定時間段包括多個連續的時間間隔,所述計時器將在所述多個連續的時間間隔期間到 期。
- 如申請專利範圍第22項所述的方法,進一步包括:分配一個計時器環至實施所述虛擬網路交換機的每個硬體核心,以用於對所述計時器環中的多個計時器進行基於硬體之處理,並避免在實施所述虛擬網路交換機的不同的硬體核心之間的鎖定和同步。
- 如申請專利範圍第22項所述的方法,進一步包括:經由多個暫存器來編程多個配置參數,所述多個配置參數係特定於所述時間間隔、時間標記和每個計時器環和其計時器儲存區及組塊的尺寸。
- 如申請專利範圍第22項所述的方法,進一步包括:在所述多個計時器條目已被添加至計時器環之後且在其到期之前的某一時間點、而不是在所述硬體計時器塊遍歷所述計時器儲存區中的所述多個計時器條目的時候或之後,令所述多個計時器條目中的一個或多個計時器條目無效。
- 如申請專利範圍第26項所述的方法,進一步包括:不提交被無效的所述計時器條目供處理。
- 如申請專利範圍第22項所述的方法,進一步包括:基於實施所述虛擬網路交換機的硬體核心的時鐘週期的計數來確定用於插入該組計時器條目的所述計時器儲存區。
- 如申請專利範圍第22項所述的方法,進一步包括:直接從指向當前計時器儲存區的指標獲得用於插入 該組計時器條目的所述計時器儲存區的位置。
- 如申請專利範圍第22項所述的方法,進一步包括:藉由將定時到期偏置設置為所述計時器環的當前時間加上所述時間間隔來初始化所述計時器儲存區的到期時間。
- 如申請專利範圍第30項所述的方法,進一步包括:通過基於內部時鐘週期經過的定時標記或所述虛擬網路交換機的通用輸入/輸出(GPIO)的邊緣/接腳的轉變來計數所述當前時間。
- 如申請專利範圍第22項所述的方法,進一步包括:並行地遍歷多個計時器環中的所述多個計時器條目。
- 如申請專利範圍第22項所述的方法,進一步包括:一旦在所述當前計時器儲存區中的所述多個組塊中的計時器條目到期,即釋放所述多個組塊和所述多個組塊中的多個計時器條目至記憶體池以供後續使用。
- 如申請專利範圍第22項所述的方法,進一步包括:配置計時器環來定期地重複其計時器儲存區中的事件/計時器。
- 如申請專利範圍第34項所述的方法,進一步包括:不修改或釋放以週期性模式設置的所述計時器環中的計時器條目,並且在下一次當時間標記環繞所述計時器環且再次到達相同的計時器儲存區中的計時器時,再次排程所述計時器條目。
- 如申請專利範圍第22項所述的方法,進一步包括: 設置一中斷位元,以於一計時器環的時間間隔對於所述硬體計時器塊而言過短而不能遍歷所述多個計時器儲存區中的計時器條目的列表時暫停時間標記。
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US201462083074P | 2014-11-21 | 2014-11-21 | |
| US14/681,978 US9571412B2 (en) | 2014-11-21 | 2015-04-08 | Systems and methods for hardware accelerated timer implementation for openflow protocol |
| US14/681,978 | 2015-04-08 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| TW201637414A TW201637414A (zh) | 2016-10-16 |
| TWI631841B true TWI631841B (zh) | 2018-08-01 |
Family
ID=56011352
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW104118717A TWI631841B (zh) | 2014-11-21 | 2015-06-10 | 開放流協定硬體加速計時器實施系統與方法 |
Country Status (2)
| Country | Link |
|---|---|
| US (2) | US9571412B2 (zh) |
| TW (1) | TWI631841B (zh) |
Families Citing this family (16)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US9571412B2 (en) * | 2014-11-21 | 2017-02-14 | Cavium, Inc. | Systems and methods for hardware accelerated timer implementation for openflow protocol |
| WO2017067578A1 (en) * | 2015-10-20 | 2017-04-27 | Huawei Technologies Co., Ltd. | Forwarding unit and controller unit for sdn |
| CN108885900B (zh) * | 2016-03-31 | 2023-10-03 | 皇家飞利浦有限公司 | 成像系统和用于成像系统的多个节点之间的通信的通信平台 |
| CN108574587B (zh) * | 2017-03-09 | 2020-07-24 | 华为技术有限公司 | 分布式设备的容量更新方法及装置 |
| WO2018171889A1 (en) * | 2017-03-23 | 2018-09-27 | NEC Laboratories Europe GmbH | Sdn capable forwarding element and method for operating the same |
| US10862617B2 (en) * | 2017-05-30 | 2020-12-08 | Marvell Asia Pte, Ltd. | Flowlet scheduler for multicore network processors |
| US11157336B2 (en) * | 2017-12-30 | 2021-10-26 | Intel Corporation | Technologies for extending triggered operations |
| US11194636B2 (en) | 2018-03-30 | 2021-12-07 | Intel Corporation | Technologies for generating triggered conditional events |
| US11188394B2 (en) | 2018-03-30 | 2021-11-30 | Intel Corporation | Technologies for synchronizing triggered operations |
| US10635494B2 (en) * | 2018-05-08 | 2020-04-28 | Microchip Technology Incorporated | Memory pool allocation for a multi-core system |
| CN109510780B (zh) * | 2018-12-12 | 2023-02-17 | 锐捷网络股份有限公司 | 流控方法、交换芯片及网络设备 |
| US11169932B2 (en) | 2019-05-17 | 2021-11-09 | Google Llc | Flow table aging optimized for dram access |
| US12455755B2 (en) | 2022-02-04 | 2025-10-28 | Red Hat, Inc. | Coordinating timer access for virtual machines using peripheral component interface cards |
| US12154657B2 (en) * | 2022-06-29 | 2024-11-26 | Advanced Micro Devices, Inc. | Channel and sub-channel throttling for memory controllers |
| CN118152101B (zh) * | 2024-05-09 | 2024-07-05 | 成都辛克普雷科技有限公司 | 一种定时器的实现方法 |
| CN119046020B (zh) * | 2024-10-31 | 2025-02-11 | 中国兵器装备集团兵器装备研究所 | 一种多核系统内核定时器分配方法及装置 |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7389462B1 (en) * | 2003-02-14 | 2008-06-17 | Istor Networks, Inc. | System and methods for high rate hardware-accelerated network protocol processing |
| US20090161547A1 (en) * | 2007-12-20 | 2009-06-25 | Packeteer, Inc. | Compression Mechanisms for Control Plane-Data Plane Processing Architectures |
Family Cites Families (11)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| TWI227616B (en) * | 2001-11-20 | 2005-02-01 | Hitachi Ltd | Packet communication device, packet communication system, packet communication module, data processor and data transmission system |
| EP1317110B1 (en) * | 2001-11-30 | 2003-07-16 | Alcatel | IP platform for advanced multipoint access systems |
| US7161904B2 (en) * | 2002-06-04 | 2007-01-09 | Fortinet, Inc. | System and method for hierarchical metering in a virtual router based network switch |
| US7376125B1 (en) * | 2002-06-04 | 2008-05-20 | Fortinet, Inc. | Service processing switch |
| US7697519B2 (en) * | 2006-10-31 | 2010-04-13 | Hewlett-Packard Development Company, L.P. | Packet processing |
| CN102710514B (zh) * | 2012-05-25 | 2015-01-21 | 华为技术有限公司 | 一种报文流量控制方法及系统 |
| US9769074B2 (en) * | 2013-03-15 | 2017-09-19 | International Business Machines Corporation | Network per-flow rate limiting |
| CN104079492B (zh) * | 2013-03-28 | 2017-10-10 | 华为技术有限公司 | 一种OpenFlow网络中流表配置的方法、装置和系统 |
| CN103354522B (zh) * | 2013-06-28 | 2016-08-10 | 华为技术有限公司 | 一种多级流表查找方法和装置 |
| CN104348750B (zh) * | 2013-07-31 | 2019-07-26 | 中兴通讯股份有限公司 | OpenFlow网络中QoS的实现方法及装置 |
| US9571412B2 (en) * | 2014-11-21 | 2017-02-14 | Cavium, Inc. | Systems and methods for hardware accelerated timer implementation for openflow protocol |
-
2015
- 2015-04-08 US US14/681,978 patent/US9571412B2/en active Active
- 2015-06-10 TW TW104118717A patent/TWI631841B/zh active
- 2015-11-12 US US14/939,982 patent/US10084719B2/en active Active
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7389462B1 (en) * | 2003-02-14 | 2008-06-17 | Istor Networks, Inc. | System and methods for high rate hardware-accelerated network protocol processing |
| US20090161547A1 (en) * | 2007-12-20 | 2009-06-25 | Packeteer, Inc. | Compression Mechanisms for Control Plane-Data Plane Processing Architectures |
Also Published As
| Publication number | Publication date |
|---|---|
| US9571412B2 (en) | 2017-02-14 |
| US20160164796A1 (en) | 2016-06-09 |
| US10084719B2 (en) | 2018-09-25 |
| US20160149819A1 (en) | 2016-05-26 |
| TW201637414A (zh) | 2016-10-16 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| TWI631841B (zh) | 開放流協定硬體加速計時器實施系統與方法 | |
| CN108353082B (zh) | 用于处理虚拟网络驱动器的恶意活动的技术 | |
| JP5521620B2 (ja) | 中継装置、仮想マシンシステム及び中継方法 | |
| US8385354B2 (en) | Scalable hardware mechanism to implement time outs for pending POP requests to blocking work queues | |
| JP6400255B2 (ja) | 侵入検知装置および侵入検知プログラム | |
| US10079772B2 (en) | Queue scheduling method and device, and computer storage medium | |
| JP5968841B2 (ja) | ネットワーク装置及びプロセッサの監視方法 | |
| CN111984395A (zh) | 一种数据迁移方法和系统,及计算机可读存储介质 | |
| CN111869178B (zh) | 近实时ip用户映射的方法和系统 | |
| CN108028781B (zh) | 用于网络往返时间估计的技术 | |
| WO2018124949A1 (en) | Dynamic management of monitoring tasks in a cloud environment | |
| CN104965727A (zh) | 一种重启服务器的方法及装置 | |
| CN106649600B (zh) | 一种迁移文件权限的方法、装置以及系统 | |
| JP4861539B1 (ja) | 通信制御装置およびパケットフィルタリング方法 | |
| WO2016195619A1 (en) | Application of network flow rule action based on packet counter | |
| WO2012171412A1 (zh) | 一种中断处理方法及装置 | |
| JP6296612B2 (ja) | ネットワークシステム及びそのバージョン変更方法 | |
| CN104660506A (zh) | 一种数据包转发的方法、装置及系统 | |
| JP2012227829A (ja) | 画像処理装置、及びその制御方法 | |
| JP6221498B2 (ja) | 情報処理システム及び情報処理システムの制御方法 | |
| JP6639754B2 (ja) | 通信装置、動作手順管理方法及び動作手順管理プログラム | |
| CN115567140B (zh) | 定时器运行方法、装置、设备、存储介质及程序产品 | |
| US9405719B2 (en) | Circuitry to generate and/or use at least one transmission time in at least one descriptor | |
| JP6472584B2 (ja) | 中継装置、中継方法及び中継プログラム | |
| JP6107311B2 (ja) | ネットワーク管理装置、ネットワーク管理システム、ネットワーク管理方法、及びプログラム |