一種端口聚合方法及裝置的制造方法
【技術領域】
[0001] 本發明涉及通信技術領域,尤其涉及一種端口聚合方法及裝置。
【背景技術】
[0002] 以太網鏈路聚合技術通過將多條以太網物理鏈路捆綁在一起成為一條邏輯鏈路, 一方面該技術可以實現增加鏈路帶寬的目的。另外一方面,這些捆綁在一起的鏈路通過相 互間的動態備份,可以有效提高鏈路的可靠性。在具體實現上,可以通過以太網交換芯片自 帶的聚合功能來創建聚合組,這些以太網芯片能夠支持的聚合組個數與芯片的設計規格有 關。
【發明內容】
[0003] 有鑒于此,本發明提供一種端口聚合裝置,應用于以太網交換機上,其中該以太網 交換機至少包括兩個以太網交換芯片,其中該裝置包括:
[0004] 聚合管理單元,用于根據選定的分布在M個成員芯片上的N個成員物理端口創建 對應的虛擬端口作為聚合口,其中該虛擬端口在交換機全局是唯一的;M和N均為大于或等 于2的自然數;
[0005] 隊列計算單元。用于根據成員芯片所使用的Hash算法中的每一個Hash值對成 員芯片上預定的基準隊列進行偏移計算,為每個成員芯片生成P個出口隊列;其中P為該 Hash算法中所有Hash值的數量;
[0006] 資源分配單元,用于按照預定分擔算法生成P個出口隊列到N個成員物理端口的 隊列映射表項;并向每個成員芯片隊列下發所述隊列映射表項;
[0007] 路徑調度單元,用于向每個成員芯片下發虛擬端口映射到基準隊列的單播標簽表 項;并向每個成員芯片下發針對基準隊列的偏移參數,其中該偏移參數為報文的Hash值。
[0008] 本發明還提供一種端口聚合方法,應用于以太網交換機上,其中該以太網交換機 至少包括兩個以太網交換芯片,其中該方法包括:
[0009]A,根據選定的分布在M個成員芯片上的N個成員物理端口創建對應的虛擬端口作 為聚合口,其中該虛擬端口在交換機全局是唯一的;M和N均為為大于或等于2的自然數;
[0010] B,根據成員芯片所使用的Hash算法中的每一個Hash值對成員芯片上預定的基準 隊列進行偏移計算,為每個成員芯片生成P個出口隊列;其中P為該Hash算法中所有Hash 值的數量;
[0011] C,按照預定分擔算法生成P個出口隊列到N個成員物理端口的隊列映射表項;并 向每個成員芯片隊列下發所述隊列映射表項;
[0012] D,向每個成員芯片下發虛擬端口映射到基準隊列的單播標簽表項;并向每個成員 芯片下發針對基準隊列的偏移參數,其中該偏移參數為報文的Hash值。
[0013] 相較于現有技術而言,本發明能夠極大地提升以太網交換機能提供的聚合口的數 量,對于數據中心等對于聚合口需求較大的應用場景意義重大。
【附圖說明】
[0014] 圖1是本發明一種實施方式中端口聚合裝置的邏輯結構與硬件環境圖;
[0015] 圖2是本發明一種實施方式中端口聚合方法的流程圖;
[0016] 圖3是本發明一種實施方式中報文在芯片上的轉發過程示意圖;
[0017] 圖4是本發明一種實施方式中兩個交換機之間通過聚合口相連的示意圖。
【具體實施方式】
[0018] 本發明在控制層面提供一種聚合方案來提高聚合技術的可擴展性以及靈活性。請 參考圖1,以計算機程序實現為例,本發明提供一種端口聚合裝置,該裝置運行于以太網交 換機上,該以太網交換機在硬件層面上包括處理器、內存、非易失性存儲器、多個以太網交 換芯片(以下簡稱"芯片")以及其他硬件,該些硬件可以通過總線或其他方式相連。所述端 口聚合裝置在邏輯層面可以理解為,處理器將相應的計算機程序讀取到內存中運行所形成 的邏輯裝置。在邏輯意義上,該裝置包括:聚合管理單元、隊列計算單元、資源分配單元以及 路徑調度單元。請參考圖2,所述裝置在交換機控制層面上運行,在運行過程中執行如下的 處理流程。
[0019] 步驟101,聚合管理單元根據管理者選定的分布在M個成員芯片上的N個成員物理 端口創建對應的虛擬端口作為聚合口,其中該虛擬端口在交換機全局是唯一的;N為大于 或等于2的自然數,M為大于或等于1的自然數;
[0020] 步驟102,隊列計算單元根據成員芯片所使用的Hash算法中的每一個Hash值對 成員芯片上預定的基準隊列進行偏移計算,為每個成員芯片生成P個出口隊列;其中P為該 Hash算法中所有Hash值的數量;
[0021] 步驟103,資源分配單元按照預定分擔算法生成P個出口隊列到N個成員物理端口 的隊列映射表項;向每個成員芯片的隊列映射表中下發所述映射表項;
[0022] 步驟104,路徑調度單元向每個成員芯片的單播標簽表中下發虛擬端口映射到基 準隊列的單播標簽表項;并向每個成員芯片下發針對基準隊列的偏移參數,其中該偏移參 數為報文的Hash值。
[0023] 在傳統技術中,交換機的軟件開發人員往往使用以太網交換芯片(也被開發者稱 為"物理設備")自帶的聚合功能來創建聚合口。這種方式的好處是,聚合的實體功能事實上 已經在芯片中實現了,開發者只需要將用戶指定的物理端口告知每個芯片即可;這些芯片 即可按照既定的方式來完成聚合口到實際物理口的映射。這種方案的好處在于實現簡單, 開發者只需要開發面向交換機管理者的聚合管理界面即可。但是在數據中心這種高密度的 大型網絡場景就會遭遇到規格瓶頸。
[0024] 以太網交換芯片的聚合規格是不可更改的硬件資源,就好象CPU的一級緩存的規 格一樣,同樣是系統開發者沒有辦法更改的。假設一臺以太網交換機所采用的芯片的聚合 規格均是256。假設每個聚合口的成員數量是8,那么在這臺以太網交換機可以創建的聚合 口的上限是256/8=32 ;假設每個聚合的成員數量是16,那么在這臺以太網交換機可以創建 的聚合口的上限是256/16=16。假設該交換機的物理端口數量是512,那么其他256個物理 端口則無法形成聚合口。由于芯片的聚合規格的存在,這導致傳統技術中,聚合口的數量 是有限制的,其極限值是X/2 ;其中X為聚合規格;同時若整個交換機的端口數量為Y,那么Y-X個物理端口將無法使用聚合來形成更多個聚合口。而本發明利用虛擬端口機制并輔以 VOQ隊列等資源的管理與分配,實現聚合實體功能,由于隊列的數量往往是比較富裕的,因 此能夠從實際上大大擴展了聚合口的數量。以下通過更為詳盡的實施方式來介紹本發明的 有點。
[0025] 請參考圖1以及圖3,對于一臺以太網交換機而言,其通常包括一個或多個芯片 (Device);而每個芯片通常又包括多個物理端口(Port)。從全局的角度來看Devicel (Dl) 的Portl的可以標記為DlPl,而Device2的Portl可以標記為D2P1。也就是說一個物理端 口的標識通常包括了其所在芯片的編號以及該端