[go: up one dir, main page]

TW200810466A - Method and system for an OS virtualization-aware network interface card - Google Patents

Method and system for an OS virtualization-aware network interface card Download PDF

Info

Publication number
TW200810466A
TW200810466A TW96111204A TW96111204A TW200810466A TW 200810466 A TW200810466 A TW 200810466A TW 96111204 A TW96111204 A TW 96111204A TW 96111204 A TW96111204 A TW 96111204A TW 200810466 A TW200810466 A TW 200810466A
Authority
TW
Taiwan
Prior art keywords
nic
gos
queue
network interface
interface card
Prior art date
Application number
TW96111204A
Other languages
English (en)
Other versions
TWI458307B (zh
Inventor
Fan F Kan
Original Assignee
Broadcom Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Broadcom Corp filed Critical Broadcom Corp
Publication of TW200810466A publication Critical patent/TW200810466A/zh
Application granted granted Critical
Publication of TWI458307B publication Critical patent/TWI458307B/zh

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9063Intermediate storage in different physical parts of a node or terminal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2101/00Indexing scheme associated with group H04L61/00
    • H04L2101/60Types of network addresses
    • H04L2101/618Details of network addresses
    • H04L2101/622Layer-2 addresses, e.g. medium access control [MAC] addresses

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)

Description

200810466 九、發明說明: 【發明所屬之技術領域】 本發明涉及TCP (傳輸控制協定)資料和相關的Tcp資 訊的處理’更具體地說,涉及—種作獅統虛擬認知網路介面 卡(virtualization-aware network interface card )系統和方法。 【先前技術】 在網路系統t ’-個舰器可同時支援多個舰器操作或 服務。例如’ —_服器可提供對商業應贿式的訪問,並可 同時用作電子郵件飼服器、資料庫祠服器和/或交換飼服器。 祠服器通過制-個作㈣統(〇s)支援各翻服器操作。 通過-個OS ’伺服器操作使用舰器處理龍,例如,中央 處理器(CPU)、記憶體、網路介面卡(NIC)、外設音效卡和 /或圖形卡。在許多情況中,飼服器資源可能不被充分地使用, 因爲飼服H操作的需求基於提供的服務和/或用戶的需要而變 化。將伺服盗的服務合併爲一個操作可改善伺服器的效率。然 而’合併後操作的安全性也不如分離的操作的安全性高。例 如’如果操作被合併,資料庫伺服器的崩潰或故障可導致電子 郵件服務、域服務和/或細料服務的丢失。 P種改善伺服器效率的方法是同時運行多個作業系 統’ t個作業系統支援不同的伺服器操作。該多個作業系統可 1客戶作黯統⑽s)。這種方法在伺服器操作未被合併 的情況下保持安全性級別,並同時優化伺服器的處理資源的使 5 200810466 夕客戶作業糸統的使用又稱爲〇S虛擬化,因爲每個g〇s 都認爲有充分訪問伺服器的硬體資源。在這點上,G〇s不知 道還有其他的G0S在同一伺服器上運行。爲了實現〇s虛擬 化,需要有軟體層來仲裁對伺服器硬體資源的訪問。例如,所 述軟體層可以是系統管理器(hypervisor)或虛擬機(VM)監 視器。該系統管理器可允許多個G0S以分時(time_sharing) 的方式訪問硬體資源。 NIC (網路介面卡)可一種被至少一個伺服器操作或服務 頻繁使用的硬體。在這點上,所述系統管理器或VM監視器可 允許創建G0S所使用的NIC的軟體表示。所述NIC的軟體表 示可稱作“虛擬NIC”。然而,虛擬NIC在提供給G〇s的 NIC的功能或特性上受到限制。例如,虛擬mc不能支援傳 輸控制協定(tcp)卸載功能。從CPU卸載至少一部分丁cp 處理至NIC上的處理器可提高網路吞吐量。沒有卸載功能, 伺服器的資料傳輸率在某些情況下可能受限制。另一個限制 是,虛擬NIC僅可對多個G0S提供基礎層2 (L2)網路功能。 虛擬NIC在提供G0S和網路之間的資料通信方面也受到限 制。在這點上,虛擬NIC不能支援其他高級特徵,例如遠端 直接記憶體訪問(RDMA)和/或互聯網小型電腦系統介面 (ISCSI)。 除了虛擬NIC可提供的特性的限制之外,在管理多個 200810466 和伺服器硬體資源之間的交互時,還要求系統管理器處理大量 的工作。使用祕管_層會引人更多的_至基礎山罔= 操作,而在使用—個〇s時,不會出現所述開銷。例如,在從 任意G〇S傳輸㈣時,需要系統管理器仲裁對NIC的訪問。 在腦接收到資料時,需要系統管理器確定是哪個恰當的G〇s 發送該接收的資料的。此外,因爲每個G〇s和該系統管理器 會使用記憶_不同部分理器還具有管理資料從記情 體的-個部分傳輸至另—部分的附加責任。 〜 隨著在-個伺服器内支援多個G〇s的需求增加, 新的解決方案來降低系統管理器引入的開銷,和/或通過—部 分鑛器硬體資源例如網路介面卡的虛擬化來支援高級特 【發明内容】 本I粮供—種作㈣統(0S)虛擬認知網路介面卡孚 ^方法,姆糧心輸雜合至少= 載。㈤仃了描述,並細要求中對技賴進行了完整的記 種管理網路資訊處理的方 根據本發明的一個方面,提供一 7 200810466 法,所述方法包括:通過網路介面卡_多個 鑛物至少,㈣,與主機她^ 的夕個各戶作業系統中的每—個客戶作業系統傳輸資料。 :所述多個客戶作業系— ^ 州接收(RX)飾和事件例中至少其一。 /健地,所述方法進一步包括:通過所述對應的客戶作業 錢侧中的發送例,從所述網路介面卡傳輸資料至所述多 個同k運行的客戶作業系統之一。 ㈣=的應的客戶作業 …丁,#接收许列,從所述多個同時運行的客 之-傳輸資料至所述網路介面卡。 乍菜系、,充 地,所述方法進—步包括:通過職對應的客戶作業 =統侧巾的事件例,將触事件的發生從 指示給所述多_時運行的客戶作«統之-。 次/祕,所摘信事件是上行鏈路事件、τ行鏈路事件、 貝;斗包發送事件和資料包接轉件之一。 優選地’所述方法進—步包括:通過所述網路介面卡,在 之=:㈣彳爾⑼親出、_客戶鍋統 之間傳輪資料。 卡叙廷地’所述方法進—步包括:驗證緩存在所述網路介面 的客戶作業系統媒體訪問控制(MAC)位址。 200810466
▲根據本發明的—個方面,提供一種機器可讀記憶體,其内 制諸的病程式具有至少―烟騎理鱗資轉理的代碼 &所述至彡—個代碼段由機錄行後使得所 步驟:通過網路介面卡内的多個客戶作業系統(G〇s)r列I 對應的至少一個狩列,與主機系統内同時運行的多個客戶作章 系統中的每—個客戶作業系統傳輸資料。 - k地所迹多個客戶作業系統仵列中的每個 送咖糾、魏(卿制和事精財至少其一 、,仏地’所述機器可讀記憶體進一步包括有用於通過所述 對應的客戶作鮮、統制巾的發送侧,從所述網路介面卡傳 輸資料至所述多_時運行的客戶作業系統之—的代碼。 ,優選地,所述機器可讀記憶體進一步包括有用於通過所述 對2的各戶作業系統件列中的接收制,從所述多個同時運行 的各戶作㈣統之—傳輸資料至所述網路介面卡的代碼。 、,優選地’所述機器可讀記憶體進一步包括有用於通過所述 _的客戶作㈣統洲中的事件仵列’將通信事件的發生從 所述網路介面卡指示給所述多個同時運行的客戶作業系統之 一的代碼。 〜優廷地,所_信事件是上行鏈路事件、下行鏈路事件、 貧料包發送事件和資料包接轉件之一。 優選地’所述機器可讀記憶體進一步包括有用於通過所述 9 200810466 轉介面卡,在所述多個同時運行的客戶作業系統中至少兩個 客戶作業线之間傳輸資料的代碼。 優選地,所述機器可讀記憶體進—步包括有驗證緩存在所 述網路介面相的客戶健线舰關㈣(MAC)位址 的編碼。 根據本發明的-個方面,提供—種管理網路資訊處理的系 統,所述系'統包括網路介面卡(NIC)中的電路,允許所述網 路介面卡與主機系統關時運行的多個客戶作㈣統(⑽) I的每-個客戶作業系統之間’通過所述網路介面卡内的多個 客户作業系統佇列中對應的至少一個佇列傳輸資料。
優選地,所述多個客戶作業系統件列中的每個件列包括發 送(TX)佇列、接收(RX)佇列和事件佇列中至少其一。X 優選地,所述系統進一步包括有位於所述網路介面卡内 的、用於通過所述對應的客戶作業系統仵列中的發送份列從所 述網路介面卡傳輸資料至所述多個同時運行的客戶作業系1 之一的電路。 優選地,所述系統進一步包括有位於所述網路介面卡内 的、用於通過戶斤述對應⑽戶作業系統符列巾的接收件列從所 述夕個啊運行的客戶作業系統之—傳輸資料至所述網路介 面卡的電路。 10 200810466 a也所述系統進一步包括有值於所述網路介面卡内 的、用於通過所述對應的客戶作職統侧中的事赌列將、南 信事件的發生從所酬路介面卡指示給所衫鋼時運行的、 客戶作業系統之一的電路。 一優選地’所述通信事件是上行鏈路事件、下行鏈路事件、 貧料包發送事件和資料包接收事件之一。 優選地’所述系統進—步包括有位於所述網路介面卡内 的、用於通過所述網路介面卡在所述多個同時運行的客戶作業 系統中至少兩個客戶作業系統之間傳輸資料的電路。〃 優選地,所述系統進—步包括有位於所述網路介面卡内 的、驗證緩存在所述網路介面卡内的客戶作業纽媒體訪問控 制(MAC)位址的電路。 本發明的各種優點、各個方面和麵特徵,以及其中所示 例的實施例的細節,將在以下的說明#和關中進行詳細介 紹。 【實施方式】 本發明的各個實施例涉及一種作業系統(〇s)虛擬認知 網路介面卡(NIC)的方法和系統。所述系統包括NIC,爲主 機系統中多個同時運行的客戶作業系統(G0S)提供直接1/〇 功能。所述NIC包括有用於每個g〇s的GOS佇列,其中每 個GOS佇列包括發送(TX)佇列、接收(rx)佇列和事件 佇列。所述NIC可與GOS通過對應的τχ佇列和狀佇列傳 11 200810466 輸資料。所述NIC可通過對應的事件符列,通知G〇s有事件 發生,例如下行鍵路、上行鍵路、資料包發送和資料包接收。 所述NIC也可支援GOS之間的單播、廣播和/或多播通信。當 有位址與主機系統中的GOS之-相對應時,所述NIC也可驗 證該被緩存的地址。 圖1是本發明通信連接至支援多個客戶作業系統(G〇s) 的主機系統的網路介面卡的模組圖。參照圖丨,展示了第一 GOS聰、第二G0S 102b、第三⑽職、系統管理器1〇4、 主機系統、發送(TX)符列職、接收(RX)件列祕 和NIC 110’IC 110包括NIC處理器118和NIC記憶體116。 主機系統106包括主機處理器122和主機記憶體12〇。 主機系統106可包括恰當的邏輯、電路和/或編碼,例如, 可進行資料處理和/或網路操作。在某些例子中,主機系統1〇6 還包括有其他硬體資源’例如,圖形卡和/或外設音效卡。主 機系統106可通過系統管理器1〇4支援第—G〇s 1〇2&、第二 GOS 102b和第二GOS 102c的操作。主機系統觸通過使用 系統官理器104支援的G0S的數量不限於圖j中的實施例所 示。例如,主機系統1〇6可支援兩個或多個G〇s。 系統管理器104可用作實現主機系統106中硬體資源〇s 虛擬化和/或通信連接至主機系統1〇6的硬體資源虛擬化的軟 體層,例如,NIC 110。系統管理器1〇4也可實現G〇s和主機 12 200810466 - 系統106中的硬體資源和/或連接至主機系統ι〇6的硬體資源 . 之間的資料傳輸。例如,系統管理器204可實現主機系統1〇6 所支援的GOS和NIC Π0之間通過τχ佇列1〇如和/或u佇 列108b傳輸資料包。 主處理器、122可包括恰當的邏輯、電路和/或編碼,可控 制和/或官理與主機系統106相關的資料處理和/或網路操作。 主機記憶體m包括恰當的邏輯、電路和/或編瑪,可存儲主 機系統106所使用的資料。主機記憶體12〇可被分割爲多個存 儲區。例如,主機系統106所支援的每個G0S在主機記憶體 120中具有對應的存儲區。此外,系統管理器1〇4在主機記憶 體120巾具有對應的存儲區。因此,系統管理器刚可通過控 制資料從對應-個GOS的記憶體l2G的—部分傳輸到對應另 一個GOS的記憶體120的另一部分,實現G〇s之間的資料傳 輸。 NIC 110包括恰當的邏輯、電路和/或編碼,可實現與網路 的資料傳輸。例如,NIC 110可進行基礎級2 (L2)交換操作。 TX佇列l〇8a包括恰當的邏輯、電路和/或編碼,可登記 (posting)資料以通過NIC 110發送。rx佇列1〇肋包括恰當 的邏輯、電路和/或編碼,可登記通過NIC 11〇接收到的資料 以供主機系、统106處理。因而,NIC11〇可登記狀件列驅 中從網路接收的資料,並可獲取ΤΧ仔列l〇8a中由主機系統 13 200810466
TX佇列108a和RX
或編碼,可存儲NIC 110所使用的資料。 106登記的資料以發送到該網路。例如, 仵列108b可集成在NIC 110中。NIC處 邏輯、電路和/或編碼,可控制 第一 GOS 102a、第二G0S 102b和第三G〇s 1〇2每個均 對應-個作麵統,可運行或執行操作或服務,例如,應用程 式、電子郵件舰器操作、資料庫祠服器操作和/或交換飼服 器操作。第一 GOS 102a包括虛擬NIC 112a,第二G〇s 1〇沘 包括虛擬NIC 11213,第三GOS 102e包括虛擬NIC 112e。例如, 虛擬NIC 112a、虛擬NIC 112b和虛擬NIC 112c對應于NIC 110 資源的軟體表示。因而,NIC 110資源包括τχ佇列1〇如和
RX佇列108b。通過虛擬NIC 112a、虛擬NIC 112b和虛擬NIC 112c的NIC 110資源的虛擬化,可使得系統管理器1〇4提供 NIC 110所提供的L2交換支援給第一 G0S 1〇2a、第二g〇s 102b和第二G0S 102。然而,在這個例子中,通過系統管理 器104實現的NIC 110資源的虛擬化,可能不支援其他高級功 能,例如,G0S中的TCP卸載、iSCSI和/或RDMA。 操作中,當圖1A中所示的G0S需要發送資料包至網路 時’該資料包傳輸可至少部分地由系統管理器1〇4控制。如果 不止一個G0S需要發送資料包至網路,系統管理器1〇4對訪 14 200810466 .·問NIC110資源進行仲裁。在這點上,作爲仲裁結果,系統其 _理器104可使用虛擬NIC細cll〇傳輸資源的當前可用性: 知給對應的⑽。系統管理器1〇4可依據仲裁操作的社 貧料包登入TX仔列_内,從而協調⑽的資料包傳輸。 資料包傳輸所發生的仲裁和/或協調操作將增加系統管理哭 104的開銷。 ^ 通過NIC 110從網路触資料包時,系統管理器104確定 與該資料包相關聯的媒體訪問控制(MAC)位址,以便將接 收到的資料包傳送給恰當㈣OS。在這點上,系統管理器1〇4 可從RX仔列嶋接收資料包,並對該資料包解多工,以傳 輸至恰當的G〇S。在爲接收的資料包確定MAC位址和恰當的 GOS後,系統管 1G4將接收_料包從主機記憶體12〇 的系統f理為區内的緩存中傳輸到主機記憶體⑽的對應恰 當GOS的存儲區内的緩存中。與接收資料包和冑輸資料包至 恰當的GOS相關的操作也會增加系統管理器1〇4的開銷。 圖2A是本發明作業系統(〇s)虛擬認知的一個實 施例的模組圖。參照圖2A,展示了第一 G〇s202a、第二GOS 202b、第三GOS 202c、系統管理器2〇4、主機系統206、事件 符列 208a、212a 和 214a、發送(TX)仵列 208b、212b 和 214b、 接收(RX)佇列 208c、212c 和 214c,以及 NIC 210。NIC 210 包括NIC處理器218和NIC記憶體216。主機系統206包括 15 200810466 主機處理器222和主機記憶體 動器224。 220。系統管理器204包括主驅 主機系統206包括恰當的邏輯、電路和/或編碼,可進行 貧料處理和/或網路操作。在某些例子中,主機系統施也可 包括其他硬體資源,例如,_卡和/餅設音效卡。主機系 統2〇6通過系統管理器204支援第—⑽搬a、第二G0S 20=和第三GOS 2〇2e的操作。第—G〇s施、第二g〇s腿 和第三GOS 202每個均對應於可運行或執行操作或服務的作 業系統,例如’所述操作或服務可以是應用程式、電子郵件伺 服·^操作、貝料庫伺服器操作和/或交換祠服器操作。主機系 統施通過使用系統管理器刚所支援的g〇s的數量不限於 圖2A中描述的實施例。例如,主機系統施可支援兩個或多 個 GOS。 系統管理器2〇4可運行爲軟_,實現主機系統2〇6内的 硬體資源的虛擬化和/或通信連接至主機系統2〇6的硬體資源 的虛擬化,例如,NIC 210。系統管理器2〇4也可實現G〇s和 主機系統2G6中硬體資源和/或連接至域系統施的硬體資 源之間的資料通信。例士口,系統管理器2〇4可通過事件件列 208a、212a 和 214a、TX 佇列 208b、212b 和 21牝和/或狀佇 列208c、212c和214c實現主機系統2〇6支援的G〇s和NIC 21〇 之間的通信。在這點上,第一 GOS202a和NIC210之間的通 16 200810466 信可通過事件佇列208a、TX佇列208b和RX佇列208c發生。 同樣地’第二G0S 2〇2b和NIC训之間的通信可通過事件佇 列 212a、TX|^] 212b 和 RX 佇列 212c 發生。第三 g〇S202c 和NIC 210之間的通信可通過事件佇列21乜、τχ佇列21牝 和RX仔列214c發生。每組作列彼此之間單獨和社地運行。 系統管理器204包括主驅動器224,其可協調⑽和符 列之間的資料傳輸。主驅動器224可與G〇s施中的⑻s 驅動态226a、GOS 202b中的GOS驅動器226b和/或GOS 202c 十的GOS驅動器226c通信。每個G〇s驅動器對應於一部分 GOS,通過主驅動器224進行⑽戶斤執行的操作或服務與恰 當的仵列之間的資料傳輸。例如,來自第—G〇s施中的操 作或服務傳輸㈣料包和/或㈣恤述符可通過g〇s驅= 器226a傳輸至TX仵列施b。在另—個例子中,由舰训 登入事件侧鳥中以指示網路條件或報告資料發送或資料
土獨記慎體ΖΖϋ包括恰當的邏輯、電路和/或編碼 網路操作。 ’可存儲主 17 200810466 機系統206所使用的資料。主機記憶體22〇可被分割爲多個存 儲區。例如’主機系統2〇6所支援的每個GOS在主機記憶體 220中具有對應的存儲區。此外,系統管理器2〇4在主機記憶 體220中具有對應的存儲區。因而,系統管理器2〇4可通過控 制資料從對應-個G0S的記憶體22G的存儲區傳輸至對應另 個GOS的記憶體220的另一存儲區,來實現G〇s之間的資 料傳輸。 NIC 210包括恰當的邏輯、電路和/或編碼,可實現與網路 傳輸資料。NIC 210可實現基礎L2交換、Tcp卸載、脱幻 和/或RDMA操作。NIC 21〇可稱爲〇s虛擬認知nic,因爲 與每個GOS的通信通過獨立的件列組完成。Mc 21〇可確定 戶斤接收的資料包的]ViAC位址,並可將接收的資料包發送給與 具有恰當MAC位址的G0S相對應的Μ佇列。同樣地,nic 21〇可通過協調和/或仲裁TX侧中登記的資料包被發送的順 序,來實現從GOS到網路的資料包傳輸。在這點上,麗21〇 可貫現直接輸入/輸出(I/O)或系統管理器旁路操作。 、事件仔列208a、212a和214a包括恰當的邏輯、電路和/ 或編碼,可通過NIC210登入資料以表示事件的發生。例如, NIC 21〇可在事件仵列中登入資料以表示下行鏈路或上行鍵 路。鏈路的當前狀態,無論是上行的還是下行的,都將登記給 所有事件佇列。 18 200810466 TX仔列208b、212b和214b包括恰當的邏輯、電路和/ 或編碼,可通過NIC 110從第一 G〇s施、第二⑽2〇处 和第三GOS 202c登記資料。狀仵列施、2仏和21知包 括恰當的邏輯、電路和/或編碼,可登人通過舰nG接收到 的貪料以供第- G〇S 202a、第二GOS 202b和第三GOS 202c 處理丁X知列208b、212b和214b和/或RX狩列2〇8c、212c 和214c可集成在NIC 210内。 NIC處理器218包括恰當的邏輯、電路和/或編碼,可控 制和/或官理NIC210中的資料處理和/或網路操作。NIC記憶 體216包括恰當的邏輯、電路和/或編碼,可存儲Νκ: 21〇所 使用的資料。 圖2B疋本發明OS虛擬認知NIC的另一實施例的模組 圖。參照圖2B,所示的主機系統206可支援N個GOS和一個 NIC 210,該NIC 210可支援N組佇列。主機系統2〇6如圖2八 中描述’並可支援GOS 2(^、...、G0S 202n的操作,其中i □N。每個G0S可用於提供單獨的操作或服務。系統管理器 204和主驅動器224可支援N個GOS和佇列組228、 〇〇〇 ° 1 · · ·、 之間的資料通信。主機記憶體220的一部分可與每個 202!、···、GOS 202n以及糸統管理器204相關聯。圖2b中展 示的G0S驅動器228i、…、228^^可用於在008202^..、G〇s 2〇2n執行的操作或服務和對應的佇列228i、···、228N之間傳 19 200810466 輸資料。GOS驅動器228ι、· . .、228n和對應的佇細1、 228N之間的資料傳輸可通過主驅動器224發生。在這點上, G〇S驅動器和主驅動器224如圖2A中展示。 NIC 如圖2A描述,並也可稱作〇s虛擬認知聰。 肌21G可通過仵列組226ι、···、%實現網路和n個⑽ 的每個之間的通信。例如,網路和⑽搬〗之間的通信可通 過知列組226〗發生。在另—烟子巾,網路和⑽搬n之間 的通仏可通過^顺226n發生。每組㈣可包括事件符列、 發送(TX)仔列和接收⑽)仵列Μ宁列組224,.··,226n 中的事件符列、τχ仔列和^宁列如圖2人所描述。 圖2C是本發明通過0S虛擬認知NIC發送和接收資料包 的流程圖。茶照H2C,展示了流程圖23G。起始步驟232後, 步驟234中,當資料包準備好通· 2A_2B中的〇s虛擬認知 NIC 210從GS0傳輪至網路時,流程圖mo巾的處理可進入 步驟236。步驟236中,G0S中的G〇s驅動器可通過系統管 理器204中的主驅動器224發送將要登入對應τχ㈣中的資 料包。步驟238中,將資料包&τχ佇列傳輸至凡^^⑴用於 傳輸。步驟240中,NIC21〇可傳輸該資料包至與網路連接的 終端和/或設備。在這點上,NIC 210可在與發起資料包傳輸的 GOS相對應的事件佇列中登記一個標識,以此報告資料包已 經被傳輸至網路。步驟240後,流程圖230中的處理進入結束 20 200810466 步驟242。 回到步驟234 ’當資料包將通過圖2A-2B中的OS虛擬認 知NIC 210從網路接收到時,流程圖230可進入步驟244。步 驟244中,NIC 210可基於爲每個資料包確定的mac位址對 從網路接收的資料包進行解多工。步驟246中,NIC 210可將 该資料包登入對應的RX佇列中,該]^佇列與所確定的MAC 位址對應的G0S相關聯。此外,NIC 210可在與所確定的mac 位址對應的G〇S相關聯的事件佇列中登記一個標識,以此報 告已經彳之網路中接收到資料包。步驟248中,將資料包從以^ 知列傳輸至由對應的G〇s巾的㈤㈣絲所登記的缓存中。 在這點上,該傳輸可通過系統管理器2〇4中的主驅動器發 生。步驟248後,流程圖23〇中的處理進入結束步驟撕。 圖2D是本發明通過〇s虛擬認知耽發送和接收資料包 的過私中G0S和主驅動器的操作流程圖。參照圖,展示了 流程圖252。步驟254中,當資料包準備好通過圖2A.2B中的 〇S虛擬認知NIC 21〇從⑽傳輸至網路時,流程圖挪中的 處料進入步驟256。步驟256中’ G〇s中的G〇S驅動器發
送資料包,通過系统瞢踩哭士 X 糸心理S 204中的主驅動器224將該資料包 且入對應的τχ仔列中。步驟中,將、 傳輪至mmn / V258中將5亥貧料包從TX佇列 接的 以供傳輸。肥210可傳輪資料包至與網路連 接的設備蝴終端。在這點上切1Q可在與發起資料包傳 21 200810466 輸的G〇S械應的事件物中登記—個顧,以報告資料包 已經傳輸至網路。步驟258後,流程圖25〇的處理進入結束步 驟 260。 回到步知254 ’當對從網路接收的資料包使用—個中斷 時,流程圖250的處理進入步驟辦。步驟撕中,腦训 爲收到的資料包確定MAC純,且_料包可登入對應的 RX分歹J中此外’ NIC 210可生成資料包到達標識並將該標 識登記在對應的事件佇列中。步驟266中,NiC2i〇可生成中 斷信號並將其傳送至系統管理器綱⑽主驅動器224。步驟 268中,主驅動器224通知與收到的資料包的位址相對 應的GOS内的GOS驅動器,資料包已經登記在對應的rx佇 列中。對應该合適GOS的主機記憶體220中存儲區内的缓存 被登入資料包。步驟270後,流程圖250的處理進入結束步驟 260。 回到步驟262,當多信號中斷(MSI)方法用於從網路接 收的資料包時,流程圖250的處理可進入步驟272。步驟272 中,NIC 210確定收到的資料包的MAC位址,並且所述資料 包被登入對應的RX佇列中。此外,NIC 210可産生資料包到 達通知,並且可將所述通知登入對應的事件佇列中。步驟274 中,在NIC 210和主機系統206之間啟動MSI。在這點上, NIC 210可産生多個中斷信號’且該多個中斷信號被傳輸至系 22 200810466 統管理器204所使用的記憶體位置内。MC 21〇可寫所述記憶 體位置以表示特定的GOS接收到了資料包。步驟276中,在 讀取了包含有關於多個中斷信號的資訊的記憶體位置後,主驅 動器224可通知對應的G〇s驅動器資料包已經到達。步驟π 中’ GOS ,驅動器登記一個緩存用於存儲狀件列中登入的資料 包。该緩存可位於與合適的G〇s相對應的主機記憶體22〇内 的一個存儲區内。步驟278後,流程圖25〇的處理可進入結束 步驟260。 圖3疋本發明支援統計值採集的〇s虛擬認知nic的模組 圖。茶照圖3,展示了圖2A-2B中描述的則21〇。在這點上, NIC 210可包括有存儲或記憶體緩存,例如,記憶體施、記 fe體302b、記憶體302c和記憶體3〇4,其中Nic 21〇可存儲 …罔路傳輸資料包相關的統計資訊。例如,標記爲記憶體 3〇2a、記憶體302b和記憶體3〇2c的缓存可基於腦記憶體 216貝現,並可存儲對應主機系統2㈤支援的每個G〇s的統 計資訊。例如,記憶體302a可存儲NIC21()産生的關於q〇s 202a的貝料包通信的統計資訊。例如,記憶體可存儲 NIC 210產生的_ G〇s職的資料包通信的統計資訊。例 如,GOS職和網路之間的通财_統計資訊可存儲在記 U體302c内。在本發明的這個實施例中,每個G〇s的統計資 口孔可存儲在單_緩存巾。在本發賴另—個實施例中,所有 23 200810466 統計資訊可存儲在一個緩存中。 , 缓衝3己憶體302a、302b和302c可用於存儲每個GOS的 · 統5十貝戒’例如,NIC 21〇爲每個GOS接收的正確資料包的 ' 數里接收的貢料包中位元組的數量和/或正確地傳遞至每個 GOS的育料包的數量。所述統計資料可稱作“好,,統計值 (good statistics),並可由NIC 21〇用於通信操作。 緩衝"己憶體304可存儲與主機系統206所支援的任意G0S 相對應的關於資料包錯誤的統計資訊。例如,緩存3〇4可用於 存儲統计貧訊,例如,不符合迴圈冗餘校驗(CRC)的資料包 矛或長度短於乙太網通信規範的資料包。因爲這些錯誤不能 使见0 210確定資料包對應的GOS,NIC 210可將這些統計值 收集亚存儲在單個緩衝記憶體304中。這些統計資訊可稱作 壞統計資訊(bad statistics),並可由NIC 210用於通信操 作。 ’、 圖4A是本發明支援主機系統中GOS之間通信的第二級 (U)交換的〇S虛擬認知NIC的模組圖。參照圖4A,展示 了圖2A_2B中描述的NIC 210。如圖所示,NIC 210包括L2 父換機(switch) 400。L2交換機400包括恰當的邏輯、電路 和/或編碼’可使得NIC 210支援GOS和網路之間和/或G0S 之間的資料包通信。L2交換機400可支援單播、廣播和/或多 播細作。單播操作指的是到一個MAC位址的資料包傳輸。廣 24 200810466 • 播知作指的是到所有MAC位址的資料包傳輸。多播操作指的 . 疋到一組特定mac位址的資料包傳輸。 例如,圖2A中的GOS 202a可發送資料包至與網路連接 的至少一個設備。在這個情況中,GOS驅動器226a可傳輸資 料包至對應於GOS 202a的TX佇列208b。L2交換機400可接 收來自TX佇列2〇8b的該資料包,並可確定MAC地址對應於 網路上的某個或多個設備。然後NIC 210可傳輸該資料包至對 應的MAC位址。
又例如’ GOS 202a可發送資料包至GOS 202b和/或GOS 202c。在這個例子中,G〇s驅動器226a可傳輸資料包至對應 GOS 202a的TX佇列208b。L2交換機400從TX佇列208b 接收貧料包,並可確定MAC位址對應於GOS 202b和/或GOS 202c的地址。L2交換機400可傳輸該資料包至對應於G〇s 202b和/或GOS 202c的RX佇列212c和/或狀佇列214c〇g〇s 驅動器226b和/或GOS驅動器226c可被通知接收到資料包, 並可在主機記憶體220的恰當存儲區内登記缓存。執行在G〇s 202b和/或GOS 202c上的操作或服務可從該被登記的緩存中 讀取接收到的資料包。 圖4A中的NIC 210還包括有地址驗證器4〇2。位址驗證 器402包括恰當的邏輯、電路和/或編碼,可驗證由G〇s驅動 器所登記的、用以存儲接收的資料包的緩存的位址。例如,在 200810466 將RX符列中的資料包傳輸至被登記的緩存之前,地址驗證器 402可驗證被登記的緩存是位於與接收的資料包相關的⑽ 對應的位址或5仏體位置巾。如果位址通過驗證,則將該接收 的資料包從RX j宁列傳輸至被登記的緩存中。如果位址未通過 驗證’則GOS驅動器需要登記一個新的緩存來接收來自狀 佇列的資料包。 圖4Β是本發明通過0S虛擬認知進行單播、多播和 /或廣播的步驟流程圖。參照圖4,展示了流程圖41〇。開始步 驟402後,在步驟404中,圖2A_2B中描述的主機系統2〇6 支援的GOS可產生資料包以供傳輸。G〇s驅動器可傳輸該資 料包至恰當的TX仔列。圖4A中的L2交換機400可從TX仔 列接收資料包’並確定目的地MAC位址。步驟4〇6中,基於 對應資料包目的地的MAC位址’L2交換機400可確定資料包 傳輸是單播、廣播還是多播。如果該資料包的傳輸是多播或廣 播,流程410進入步驟408。 步驟408中,L2交換機400可傳輸資料包至網路上列爲 多播或廣播傳輸的一部分的恰當的MAC地址。步驟410中, L2交換機400還傳輸資料包至具有列爲多播或廣播傳輸的一 部分的恰當的MAC位址的每個GOS的RX佇列。列出的每 個GOS的GOS驅動器可被通知已接收到資料包,並可在主機 3¼體220的恰當存儲區中登記缓存。執行在列出的每個g〇s 26 200810466 • 上的刼作或服務可從登記的緩存中讀取接收的資料包。步驟 410後,流程410進入結束步驟。 回到步驟406,如果該資料包的傳輸是單播傳輸,流程41〇 進入步驟412。步驟412中,L2交換機4⑻可確定MAC位址 疋否對應於主機系統206支援的GOS或者對應於線纜或網路 上的設備。如果將被傳輸的資料包的MAC位址對應於某個 GOS,流程410進入步驟414。步驟414中,l2交換機4〇〇 傳輸該育料包至與具有恰當MAC位址的G〇s相對應的U 佇列。GOS驅動器可被通知資料包已接收到,並在主機系統 220的恰當存儲區部分内登記一個緩存。G〇s上執行的操作或 服務可從被登記的緩存中讀取所接收到的資料包。步驟414 後’流程410進入結束步驟418。 回到步驟412,如果將被傳輸的資料包的MAC位址對應 網路上的設備,流程41〇進入步驟416。步驟416中,L2交換 機400傳輸貢料包至網路上恰當的ΜΑ^地址。步驟416後, 流程410進入結束步驟418。 本申請中描述的OS虛擬認知NIC可實現〇S虛擬化,降 低系統官理荔層在GOS和網路之間和/或g〇S之間傳輸資料 包的開銷要求。os虛擬認知NIC可支援多個G0S。此外, OS虛擬認知NIC可實現高級特性的虛擬化 ,例如,TCP卸載 功能、RDMA和/或iSCSI介面。 27 200810466 本發明可以通過硬體、軟 本發明可以在1,,、 °叙、硬體結合來實現。 了以在至個電腦系統中以 佈在幾個互連的泰溫糸 式貝見或者由分 可以^ 物蝴知分㈣實現。任何 軟硬二=觀系一 穿和勃 女裝有雜程式的_娜統,通過安 腦=述程式控制電職,使其按所述方法運行。在電 先中,利用處理器和存儲單元來實現所述方法。 本發_可_腦程式“進行實施,所述套 含能夠實現本發明方法的全Α 式 R± s U特ϋ其安裝到電腦系統中 =通過運行’可以實縣發_方法。本文件中的電腦程式 曰的疋.可以採用任何程式語言、代碼或符號編寫的 ^的任何運算式,旨令組«統具«訊處理能力,以紐 二現特疋功能,或在進行下述一個或兩個步驟之後實現特定功 能:Θ轉換成其他語言、編碼或符號;b)以不_格式再現。 本發明是通過幾個具體實施例進行說明的,本領域技術人 貝應當明白’在不脫離本發明範圍的情況下,還可以對本發明 進仃各雜換及制f代。糾,針對特定情形或賤情況, 可以對本發明做各種修改,而不脫離本發明的範圍。因此,本 發明不局限於所公開的具體實施例,而應當包括〉落入本發明權 利要求範圍内的全部實施方式。 【圖式簡單說明】 28 200810466 圖1疋本發明通信連接至支援多個客戶作業系統(g⑽) 的主機系統的網路介面卡的模組圖; 圖2A是本發明作業系統(〇s)虛擬認知MC的—個實 施例的模組圖; 、 圖2B是本發明〇S虛擬認知NIC的另一實施例的模組圖; 圖2C是本發明通過os虛擬認知NIC發送和接收資料包 的流程圖; 圖2D是本發明通過〇s虛擬認知Νκ:發送和接收資料包 的過私中GOS和主驅動器的操作的流程圖; 圖3是本發明支援統計值採集(statistics c〇Uecti〇n)的〇s 虛擬認知NIC的一個實施例的模組圖; 圖4A是本發明支援主機系統中g〇s之間通信的第二級 (L2)交換的08虛擬認知MC的一個實施例的模組圖; 圖4B是本發明通過〇s虛擬認知NIC進行單播、多播和 /或廣播的步驟流程圖。 【主要元件符號說明】 第一客戶作業系統(GOS) 102a 系統管理器104 發送(TX)佇列i〇8a 網路介面卡(NIC) 110 NIC記憶體Π6 第二客戶作業系統(G〇S) l〇2b 第三客戶作業系統(GOS) 102c 主機系統106 接收(RX)佇列l〇8b NIC處理器118 29 200810466 發送(TX)佇列 208b、212b、214b 接收(RX)佇列 208c、212c、 主機處理器122 虛擬 NIC 112a 虛擬 NIC 112c 第二 GOS 202b 系統管理器204 事件佇列 208a、212a、214a NIC記憶體216 主機記憶體220 主驅動器224 GOS驅動器226b GOS 驅動器 228i、...、228n 緩衝記憶體304 弟一級(L2)交換機(switch) 地址驗證器402 主機記憶體120 虛擬 NIC 112b 第一 G〇S 202a 第三 GOS 202c 主機系統206 214c NIC 210 NIC處理器218 主機處理器222 GOS驅動器226a G〇S驅動器226c 記憶體 302a、302b、302c 400 30

Claims (1)

  1. 200810466 十、申請專利範圍·· 卜一種管理網路資 的每 2、如申請專利範圍第 業系統仵列中的每個^t方法’其中,所述多個客戶作 列中至少其_。 丁列包括發送件列、接收符列和事件佇 女申明專利乾圍第2項所述的方法,其中,所述方法進一 匕括.通過所述對應的 ^ 所述網路介面卡傳輪資如乍業編丁列中的發送侍列,從 統之—。 ’、科至所述多個同時運行的客戶作業系 '、包卿2獅相枝,財,⑽方法進一步 通轉件的發生從所述網路介面卡 件糾將 的客戶作業系統之-。 林丁 4衫個同時運行 ;^-,她在續偏電腦程式具 们用於管理網路資訊處理的代瑪段,所述至少一個 31 200810466 代碼段由機ϋ執行後使得所述機器執行如下步驟:通過網路 介面卡内的多個客戶作㈣統㈣中對應的至少—個仔列, 與主機系統内同時運行的多個客戶作㈣統中的每_個丁客戶 作業系統傳輸資料。 7、 夕如申請翻範_ 6項職賴器可讀記紐,其中,所述 夕個客戶作職統仵列中的每侧宁列包括發送彳宁列、接收仔 列和事件件列中至少其一。 8、 -種官理網路資訊處理的系統,其特徵在於,所述系統包括 j路^面卡令的電路,允許所述網路介面卡與主機系統内同 、運行的夕個客戶作業系統中的每—個客戶作業系統之間, 通過所述網路介面卡_多個客戶作麵統制中對應的至 少一個仵列傳輸資料。 9、如^請專利範圍第8項所述的系統,其中,所述多個客户作 業系統仵列中的每個件列包括發送作列、接㈣列和事件符 列中至少其—。 \如巾請專利範圍第9項所述的紐,其中,所述系統進一 乂匕括有位於所述網路介面卡内的、用於通過所述對應的客 戶作業系統符N中的發送符列從所述網路介面卡傳輸資料至 所述多_時運行的客戶作鮮、統之—的電路。 32
TW96111204A 2006-03-31 2007-03-30 管理網路資訊處理的系統和方法 TWI458307B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US78839606P 2006-03-31 2006-03-31
US11/435,075 US8635388B2 (en) 2006-03-31 2006-05-16 Method and system for an OS virtualization-aware network interface card

Publications (2)

Publication Number Publication Date
TW200810466A true TW200810466A (en) 2008-02-16
TWI458307B TWI458307B (zh) 2014-10-21

Family

ID=38308721

Family Applications (1)

Application Number Title Priority Date Filing Date
TW96111204A TWI458307B (zh) 2006-03-31 2007-03-30 管理網路資訊處理的系統和方法

Country Status (4)

Country Link
US (2) US8635388B2 (zh)
EP (1) EP1841162B1 (zh)
CN (1) CN101102305B (zh)
TW (1) TWI458307B (zh)

Families Citing this family (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8635388B2 (en) 2006-03-31 2014-01-21 Broadcom Corporation Method and system for an OS virtualization-aware network interface card
US7672299B2 (en) * 2006-06-30 2010-03-02 Sun Microsystems, Inc. Network interface card virtualization based on hardware resources and software rings
US7894453B2 (en) * 2006-07-20 2011-02-22 Oracle America, Inc. Multiple virtual network stack instances
US8005022B2 (en) * 2006-07-20 2011-08-23 Oracle America, Inc. Host operating system bypass for packets destined for a virtual machine
US7885257B2 (en) * 2006-07-20 2011-02-08 Oracle America, Inc. Multiple virtual network stack instances using virtual network interface cards
US8001282B2 (en) * 2007-08-14 2011-08-16 Intel Corporation Virtualization aware hard drive
US7945647B2 (en) * 2007-12-10 2011-05-17 Oracle America, Inc. Method and system for creating a virtual network path
US7984123B2 (en) * 2007-12-10 2011-07-19 Oracle America, Inc. Method and system for reconfiguring a virtual network path
US8086739B2 (en) * 2007-12-10 2011-12-27 Oracle America, Inc. Method and system for monitoring virtual wires
US8370530B2 (en) * 2007-12-10 2013-02-05 Oracle America, Inc. Method and system for controlling network traffic in a blade chassis
US7962587B2 (en) * 2007-12-10 2011-06-14 Oracle America, Inc. Method and system for enforcing resource constraints for virtual machines across migration
US8095661B2 (en) * 2007-12-10 2012-01-10 Oracle America, Inc. Method and system for scaling applications on a blade chassis
US8990799B1 (en) * 2008-01-30 2015-03-24 Emc Corporation Direct memory access through virtual switch in device driver
US7965714B2 (en) * 2008-02-29 2011-06-21 Oracle America, Inc. Method and system for offloading network processing
US7970951B2 (en) * 2008-02-29 2011-06-28 Oracle America, Inc. Method and system for media-based data transfer
US7944923B2 (en) * 2008-03-24 2011-05-17 Oracle America, Inc. Method and system for classifying network traffic
US8307405B2 (en) * 2008-04-28 2012-11-06 International Business Machines Corporation Methods, hardware products, and computer program products for implementing zero-trust policy in storage reports
US8336099B2 (en) * 2008-05-08 2012-12-18 International Business Machines Corporation Methods, hardware products, and computer program products for implementing introspection data comparison utilizing hypervisor guest introspection data
US7941539B2 (en) * 2008-06-30 2011-05-10 Oracle America, Inc. Method and system for creating a virtual router in a blade chassis to maintain connectivity
US8739179B2 (en) * 2008-06-30 2014-05-27 Oracle America Inc. Method and system for low-overhead data transfer
US8406230B2 (en) * 2008-06-30 2013-03-26 Oracle America, Inc. Formerly Known As Sun Microsystems, Inc. Method and system for classifying packets in a network interface card and interface for performing the same
US8327355B2 (en) * 2008-07-15 2012-12-04 International Business Machines Corporation Method, computer program product, and hardware product for supporting virtual machine guest migration overcommit
US8667187B2 (en) 2008-09-15 2014-03-04 Vmware, Inc. System and method for reducing communication overhead between network interface controllers and virtual machines
US8873375B2 (en) 2009-07-22 2014-10-28 Broadcom Corporation Method and system for fault tolerance and resilience for virtualized machines in a network
US8566822B2 (en) 2009-07-22 2013-10-22 Broadcom Corporation Method and system for distributing hypervisor functionality over multiple physical devices in a network and configuring sub-hypervisor to control the virtual machines
US8086765B2 (en) * 2010-04-29 2011-12-27 Hewlett-Packard Development Company, L.P. Direct I/O device access by a virtual machine with memory managed using memory disaggregation
WO2011162663A1 (en) 2010-06-23 2011-12-29 Telefonaktiebolaget L M Ericsson (Publ) Reference signal interference management in heterogeneous network deployments
US8726093B2 (en) 2010-06-30 2014-05-13 Oracle America, Inc. Method and system for maintaining direct hardware access in the event of network interface card failure
US9858241B2 (en) 2013-11-05 2018-01-02 Oracle International Corporation System and method for supporting optimized buffer utilization for packet processing in a networking device
US8634415B2 (en) 2011-02-16 2014-01-21 Oracle International Corporation Method and system for routing network traffic for a blade server
US9237127B2 (en) * 2011-05-12 2016-01-12 Airmagnet, Inc. Method and apparatus for dynamic host operating system firewall configuration
US8843924B2 (en) 2011-06-17 2014-09-23 International Business Machines Corporation Identification of over-constrained virtual machines
US8966084B2 (en) 2011-06-17 2015-02-24 International Business Machines Corporation Virtual machine load balancing
US8949428B2 (en) 2011-06-17 2015-02-03 International Business Machines Corporation Virtual machine load balancing
US8838837B2 (en) * 2011-06-23 2014-09-16 Microsoft Corporation Failover mechanism
US9042383B2 (en) * 2011-06-30 2015-05-26 Broadcom Corporation Universal network interface controller
CN102790777B (zh) * 2012-08-07 2016-06-15 华为技术有限公司 网络接口适配器注册方法及驱动设备、服务器
US9253121B2 (en) 2012-12-31 2016-02-02 Broadcom Corporation Universal network interface controller
US20150055456A1 (en) * 2013-08-26 2015-02-26 Vmware, Inc. Traffic and load aware dynamic queue management
US9489327B2 (en) 2013-11-05 2016-11-08 Oracle International Corporation System and method for supporting an efficient packet processing model in a network environment
CN106055989B (zh) * 2016-05-26 2019-05-17 深圳市金立通信设备有限公司 一种数据传递方法及终端
US11054884B2 (en) 2016-12-12 2021-07-06 Intel Corporation Using network interface controller (NIC) queue depth for power state management

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5414851A (en) * 1992-06-15 1995-05-09 International Business Machines Corporation Method and means for sharing I/O resources by a plurality of operating systems
US5968176A (en) * 1997-05-29 1999-10-19 3Com Corporation Multilayer firewall system
US6718392B1 (en) * 2000-10-24 2004-04-06 Hewlett-Packard Development Company, L.P. Queue pair partitioning in distributed computer system
US6907600B2 (en) * 2000-12-27 2005-06-14 Intel Corporation Virtual translation lookaside buffer
US7620955B1 (en) * 2001-06-08 2009-11-17 Vmware, Inc. High-performance virtual machine networking
US20030065856A1 (en) * 2001-10-03 2003-04-03 Mellanox Technologies Ltd. Network adapter with multiple event queues
US7346701B2 (en) 2002-08-30 2008-03-18 Broadcom Corporation System and method for TCP offload
US6804729B2 (en) * 2002-09-30 2004-10-12 International Business Machines Corporation Migrating a memory page by modifying a page migration state of a state machine associated with a DMA mapper based on a state notification from an operating system kernel
US7010633B2 (en) * 2003-04-10 2006-03-07 International Business Machines Corporation Apparatus, system and method for controlling access to facilities based on usage classes
US7299468B2 (en) * 2003-04-29 2007-11-20 International Business Machines Corporation Management of virtual machines to utilize shared resources
US7356818B2 (en) * 2003-06-24 2008-04-08 International Business Machines Corporation Virtual machine communicating to external device without going through other virtual machines by using a list of IP addresses managed only by a single virtual machine monitor
US7934020B1 (en) * 2003-09-19 2011-04-26 Vmware, Inc. Managing network data transfers in a virtual computer system
US7979548B2 (en) * 2003-09-30 2011-07-12 International Business Machines Corporation Hardware enforcement of logical partitioning of a channel adapter's resources in a system area network
US7478173B1 (en) * 2003-12-18 2009-01-13 Wmware, Inc. Method and system for sharing a network connection in a virtual computer system
US7562366B2 (en) * 2005-02-03 2009-07-14 Solarflare Communications, Inc. Transmit completion event batching
US7865908B2 (en) * 2005-03-11 2011-01-04 Microsoft Corporation VM network traffic monitoring and filtering on the host
US7353360B1 (en) * 2005-04-05 2008-04-01 Sun Microsystems, Inc. Method for maximizing page locality
US8230153B2 (en) * 2006-01-20 2012-07-24 Broadcom Corporation Method and system for HBA assisted storage virtualization
US8635388B2 (en) 2006-03-31 2014-01-21 Broadcom Corporation Method and system for an OS virtualization-aware network interface card

Also Published As

Publication number Publication date
US20070244972A1 (en) 2007-10-18
EP1841162B1 (en) 2016-02-24
US8635388B2 (en) 2014-01-21
EP1841162A3 (en) 2010-01-13
CN101102305B (zh) 2013-03-20
US20140108676A1 (en) 2014-04-17
US9258171B2 (en) 2016-02-09
TWI458307B (zh) 2014-10-21
CN101102305A (zh) 2008-01-09
EP1841162A2 (en) 2007-10-03

Similar Documents

Publication Publication Date Title
TW200810466A (en) Method and system for an OS virtualization-aware network interface card
US20250030627A1 (en) System and method for facilitating efficient load balancing in a network interface controller (nic)
JP4622835B2 (ja) 仮想計算機システム及びそのネットワーク通信方法
CN105531684B (zh) 通用pci express端口
US7404190B2 (en) Method and apparatus for providing notification via multiple completion queue handlers
TW200847694A (en) System and method for multicore communication processing
US20130159449A1 (en) Method and Apparatus for Low Latency Data Distribution
JP2004531001A (ja) ホスト・コンピュータ・システムとイーサネット(r)・アダプタの間におけるデータ転送
US9864717B2 (en) Input/output processing
CN103176780A (zh) 一种多网络接口绑定系统及方法
US11315183B2 (en) Electronic trading system and method based on point-to-point mesh architecture
US12301427B2 (en) Method and system for facilitating high availability in a multi-fabric system
CN109716311A (zh) 用于执行分布式仲裁的系统、装置和方法
TWI411264B (zh) 非阻塞式網路系統及其封包仲裁方法
TWI322359B (en) Routing of messages
US20140025859A1 (en) Input/output processing
CN101877714A (zh) 集合式服务器
CN117041147A (zh) 智能网卡设备、主机设备和方法及系统
JP4231485B2 (ja) ポイントツーポイント相互接続上のメッセージの配信技術
CN119484617A (zh) 一种消息中间件之间点对点订阅的消息分配方法及系统
CN119377140A (zh) 传输数据的方法及计算设备
CN116233806A (zh) 蓝牙配对请求的处理方法和设备
CN118606253A (zh) 数据传输方法、装置、设备及存储介质
US20190253465A1 (en) Method for broadcasting user sessions, host computer for implementing such a method, and method for providing services to a user
JP2004287990A (ja) 通信回線を利用するオークションシステム

Legal Events

Date Code Title Description
GD4A Issue of patent certificate for granted invention patent
MM4A Annulment or lapse of patent due to non-payment of fees