用于使PCIe構(gòu)造上的主機(jī)到主機(jī)消息收發(fā)安全和分離的方法和裝置制造方法
【專利摘要】本發(fā)明涉及用于使PCIe構(gòu)造上的主機(jī)到主機(jī)消息收發(fā)安全和分離的方法和裝置。PCIe構(gòu)造包括至少一個(gè)PCIe交換機(jī)。該構(gòu)造可以用于連接多個(gè)主機(jī)。PCIe交換機(jī)針對(duì)主機(jī)到主機(jī)消息通信實(shí)現(xiàn)安全和分離措施。管理實(shí)體定義虛擬PCIe構(gòu)造ID——VPFID。所述VPFID用于強(qiáng)化安全和分離。構(gòu)造ID可以被擴(kuò)展為用在具有其他點(diǎn)對(duì)點(diǎn)協(xié)議的交換機(jī)構(gòu)造中。
【專利說明】用于使PCIe構(gòu)造上的主機(jī)到主機(jī)消息收發(fā)安全和分離的方法和裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明總體上涉及交換機(jī)和電子通信。更具體地,本發(fā)明涉及改進(jìn)智能PCIe交換機(jī)中主機(jī)到主機(jī)通信的安全和分離。
【背景技術(shù)】
[0002]計(jì)算機(jī)架構(gòu)多年來已經(jīng)大有進(jìn)展。最近,包括外部數(shù)據(jù)接口(諸如,將通用串行總線(USB)接口控制器包括到其母版中)對(duì)芯片設(shè)計(jì)者來說正在變得越來越普遍。這些接口被稱為主機(jī)控制器。然后,處理器典型地經(jīng)由輸入/輸出(I/O)互連系統(tǒng)連接到計(jì)算機(jī)系統(tǒng)的其他部件。
[0003]存在許多不同的計(jì)算機(jī)I/O互連標(biāo)準(zhǔn)可用。多年來最受歡迎的標(biāo)準(zhǔn)之一是外圍部件互連(PCI)標(biāo)準(zhǔn)。PCI允許總線像橋那樣操作,該橋?qū)⒈镜靥幚砥骺偩€與外圍隔離,允許計(jì)算機(jī)的中央處理單元(CPU)通過該互連而連接到IO設(shè)備的主機(jī)。
[0004]近來,PCI的繼承者已經(jīng)被普及,被稱作PCI高速(PCI Express)(或簡(jiǎn)稱PCIe)。PCIe在保持與現(xiàn)有PCI應(yīng)用的軟件兼容性的同時(shí),針對(duì)下一代系統(tǒng)提供了更高的性能、增強(qiáng)的靈活性和可擴(kuò)縮性。與傳統(tǒng)PCI相比,PCI高速協(xié)議顯著更復(fù)雜,具有三層:事務(wù)層、數(shù)據(jù)鏈路層和物理層。
[0005]在PCI高速系統(tǒng)中,根聯(lián)合體(root complex)設(shè)備將處理器和存儲(chǔ)器子系統(tǒng)連接到PCI高速交換機(jī)構(gòu)造,所述PCI高速交換機(jī)構(gòu)造由一個(gè)或多個(gè)交換機(jī)設(shè)備組成(然而,實(shí)施例也可能沒有交換機(jī))。在PCI高速中,使用點(diǎn)對(duì)點(diǎn)架構(gòu)。類似于PCI系統(tǒng)中的主機(jī)橋,根聯(lián)合體代表處理器來生成事務(wù)請(qǐng)求,所述處理器通過本地I/o互連而互連。根聯(lián)合體功能可以被實(shí)現(xiàn)為分立的設(shè)備,或可以與處理器集成。根聯(lián)合體可以包含多于一個(gè)PCI高速端口,并且多個(gè)交換機(jī)設(shè)備能夠連接到根聯(lián)合體上的端口或者可以級(jí)聯(lián)。
[0006]本發(fā)明的受讓人已經(jīng)開發(fā)了各種各樣的PCIe交換機(jī),在下述美國專利申請(qǐng)中描述:13 / 624, 781,13 / 212,700和12 / 979,904,這些申請(qǐng)?zhí)峁┝岁P(guān)于PCIe交換機(jī)的一般背景信息。作為示例,圖1是描繪了具有標(biāo)準(zhǔn)PCIe交換機(jī)102的正常共享IO架構(gòu)的框圖,所述標(biāo)準(zhǔn)PCIe交換機(jī)102由運(yùn)行交換機(jī)管理軟件的管理主機(jī)控制。交換機(jī)102服務(wù)于一個(gè)或多個(gè)主機(jī),被示為連接主機(jī)106和連接主機(jī)108 (也稱作“本地主機(jī)”),例如服務(wù)器、PC和其他計(jì)算設(shè)備。同樣連接到交換機(jī)102的是一個(gè)或多個(gè)設(shè)備110-116,其典型地針對(duì)連接主機(jī)提供某種類型的功能和服務(wù)。在交換機(jī)102內(nèi)的是虛擬設(shè)備118-124。虛擬設(shè)備118和120被連接到連接主機(jī)106,并且虛擬設(shè)備122和124被連接到連接主機(jī)108。這些虛擬設(shè)備中的一些具有通往物理設(shè)備110-114的數(shù)據(jù)路徑。虛擬設(shè)備118-124的功能和角色在名稱為“MULT1-ROOT SHARING OF SINGLE-R00T INPUT / OUTPUT VIRTUALIZATION” 的共同待審申請(qǐng)美國專利申請(qǐng)N0.12 / 979,904中描述,其中,描述了下述解決方案:該解決方案在使用支持共享1/0機(jī)制的PCIe交換機(jī)的非透明端口將多個(gè)主機(jī)相連接時(shí)使用了資源重定向方法。[0007]作為另一個(gè)示例,圖2是描繪了具有邏輯設(shè)備的PCIe交換機(jī)和具有邏輯設(shè)備使能軟件的管理主機(jī)系統(tǒng)的框圖,并在名稱為“PCI EXPRESS SWITCH WITH LOGICAL DEVICECAPABILITY”的美國專利申請(qǐng)N0.13 / 624,781中描述,該美國專利申請(qǐng)的內(nèi)容通過引用而并入。描繪了連接到主機(jī)204和三個(gè)物理設(shè)備206-210的創(chuàng)新PCIe交換機(jī)202。具有邏輯設(shè)備軟件和用于操作管理系統(tǒng)的其他必要軟件的管理系統(tǒng)主機(jī)212連接到交換機(jī)202。邏輯設(shè)備使能軟件實(shí)現(xiàn)了由虛線框描繪的邏輯設(shè)備214 (也被稱作統(tǒng)一虛擬設(shè)備)。邏輯設(shè)備214虛擬地與連接主機(jī)204—起操作。它具有去往物理設(shè)備206-210的數(shù)據(jù)路徑。管理系統(tǒng)主機(jī)212具有由虛線框描繪的通往實(shí)現(xiàn)邏輯設(shè)備214的物理設(shè)備206-210的控制路徑。這些控制路徑是虛線的,以指示它們實(shí)質(zhì)上發(fā)源于管理系統(tǒng)212中的邏輯設(shè)備使能軟件,并負(fù)責(zé)物理地實(shí)現(xiàn)邏輯(虛擬)設(shè)備214。該邏輯設(shè)備還連結(jié)到直接存儲(chǔ)訪問(DMA)引擎。
[0008]2011 年 8 月 18 日提交的名稱為 “SHARING MULTIPLE VIRTUAL FUNCTIONS TO AHOST USING A PSEUDO PHYSICAL FUNCTION” 的美國專利申請(qǐng) 13 / 212,700 描述了具有虛擬化物理功能的PCIe交換機(jī)。美國專利申請(qǐng)13 / 212,700的內(nèi)容通過引用而并入,以提供關(guān)于本發(fā)明受讓人的其他PCIe交換機(jī)實(shí)現(xiàn)的上下文。
[0009]隨著PCIe交換機(jī)的集群大小和功能持續(xù)增長(zhǎng),消息流的安全是潛在的問題。本專利申請(qǐng)的發(fā)明人已經(jīng)意識(shí)到,傳統(tǒng)的安全方法不足以解決這些問題。
【發(fā)明內(nèi)容】
[0010]本發(fā)明的一個(gè)方面是一種增強(qiáng)具有點(diǎn)對(duì)點(diǎn)協(xié)議(諸如PCI高速)的交換機(jī)構(gòu)造的功能的方法。使用虛擬構(gòu)造ID來強(qiáng)化用于耦合到交換機(jī)構(gòu)造的主機(jī)的主機(jī)到主機(jī)消息流的安全和分離。
[0011]在一個(gè)實(shí)施例中,PCI高速交換機(jī)包括管理主機(jī)。所述管理主機(jī)由管理員使用以定義管理表和關(guān)聯(lián)的虛擬構(gòu)造ID。主機(jī)計(jì)算機(jī)系統(tǒng)耦合到PCI高速交換機(jī)的端口。PCI高速交換機(jī)丟棄未利用被批準(zhǔn)的虛擬構(gòu)造ID加標(biāo)簽的消息分組,從而強(qiáng)化了主機(jī)到主機(jī)消息流的安全和分離。
【專利附圖】
【附圖說明】
[0012]圖1是描繪了具有標(biāo)準(zhǔn)PCIe交換機(jī)的正常共享10架構(gòu)的框圖,所述標(biāo)準(zhǔn)PCIe交換機(jī)由運(yùn)行交換機(jī)管理軟件的系統(tǒng)管理主機(jī)控制;
[0013]圖2是描繪了根據(jù)共同待審美國專利申請(qǐng)N0.13 / 624,781的具有邏輯設(shè)備的PCIe交換機(jī)和具有邏輯設(shè)備使能軟件的管理主機(jī)系統(tǒng)的框圖;
[0014]圖3是描繪了根據(jù)本發(fā)明一個(gè)實(shí)施例的支持安全和分離的PCIe交換機(jī)的框圖;
[0015]圖4是根據(jù)本發(fā)明一個(gè)實(shí)施例的用于虛擬PCIe構(gòu)造ID的接收處理的流程圖;和
[0016]圖5是根據(jù)本發(fā)明一個(gè)實(shí)施例的用于虛擬PCIe構(gòu)造ID的發(fā)送處理的流程圖。
【具體實(shí)施方式】
[0017]現(xiàn)在將詳細(xì)參考本發(fā)明的特定實(shí)施例,包括發(fā)明人所想到的用于執(zhí)行本發(fā)明的最佳模式。這些特定實(shí)施例的示例在附圖中圖示。雖然本發(fā)明是結(jié)合這些特定實(shí)施例描述的,但是要理解的是,不意欲將本發(fā)明限制于所描述的實(shí)施例。相反,意欲覆蓋如可被包括在如所附權(quán)利要求所限定的本發(fā)明精神和范圍內(nèi)的替換、修改和等同物。在下面的描述中,為了提供對(duì)本發(fā)明的透徹理解,闡述了具體細(xì)節(jié)??梢栽跊]有這些具體細(xì)節(jié)中的一些或全部的情況下實(shí)施本發(fā)明。此外,可能未詳細(xì)描述公知的特征,以避免不必要地模糊本發(fā)明。
[0018]根據(jù)本發(fā)明,部件、處理步驟和/或數(shù)據(jù)結(jié)構(gòu)可以使用各種類型的操作系統(tǒng)、編程語言、計(jì)算平臺(tái)、計(jì)算機(jī)程序和/或通用機(jī)器實(shí)現(xiàn)。此外,本領(lǐng)域普通技術(shù)人員將意識(shí)到,在不背離這里公開的本發(fā)明構(gòu)思的范圍和精神的情況下,也可使用較不通用性質(zhì)的設(shè)備,諸如硬線設(shè)備、現(xiàn)場(chǎng)可編程門陣列(FPGA)、專用集成電路(ASIC)等等。本發(fā)明還可以被有形地體現(xiàn)為存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)(諸如存儲(chǔ)設(shè)備)上的計(jì)算機(jī)指令的集合。
[0019]本專利申請(qǐng)的發(fā)明人已經(jīng)意識(shí)到,PCI高速(PCIe)交換機(jī)構(gòu)造架構(gòu)存在問題。特別地,現(xiàn)有技術(shù)未針對(duì)經(jīng)由使用點(diǎn)對(duì)點(diǎn)協(xié)議(諸如,PCIe)的交換機(jī)構(gòu)造的主機(jī)到主機(jī)通信提供足夠的安全和分離特征。
[0020]圖3圖示了 PCIe交換機(jī)305。在一個(gè)實(shí)施方式中,PCI高速305是來自Sunnyvale, California 的 PLX Technology, Inc.的 Capella2 交換機(jī),所述 Capella2 交換機(jī)包括下一代硬件和軟件鉤(hook),用于如下面更詳細(xì)地描述的那樣實(shí)現(xiàn)安全和分離。
[0021]PCIe交換機(jī)305包括內(nèi)部虛擬總線、虛擬化DMA引擎和關(guān)聯(lián)的DMA功能。特別地,對(duì)于連接主機(jī)的每個(gè)端口,存在對(duì)于多個(gè)DMA功能(DMA FnO-DMA Fn N)的支持,其中,作為示例,DMA功能可以包括復(fù)制網(wǎng)絡(luò)接口卡(NIC)功能或網(wǎng)絡(luò)存儲(chǔ)功能。虛擬化物理功能的附加示例在名稱為“SHARING MULTIPLE VIRTUAL FUNCTIONS TO A HOST USING A PSEUDOPHYSICAL FUNCTION”的美國專利申請(qǐng)N0.13 / 212,700中描述,其內(nèi)容通過引用并入本文。
[0022]管理系統(tǒng)顯現(xiàn)出連接主機(jī)上的多個(gè)DMA功能。(附加的管理細(xì)節(jié)在美國專利申請(qǐng)13 / 624, 781,13 / 212,700和12 / 979,904中描述,其內(nèi)容通過引用而并入)。在一個(gè)實(shí)施例中,DMA功能存在于交換機(jī)中,并得以由管理軟件映射,從而主機(jī)DMA驅(qū)動(dòng)器在交換機(jī)硬件上操作,以在PCIe構(gòu)造上進(jìn)行消息傳遞。
[0023]集群中的節(jié)點(diǎn)之間的消息收發(fā)由各種特征支持。管理CPU(MCPU)能夠向任意的連接主機(jī)示出若干邏輯DMA功能,并在一個(gè)實(shí)施例中可以例如使用在專利申請(qǐng)13 / 624,781、13 / 212,700和12 / 979,904中描述的機(jī)制。一旦完成這一點(diǎn),DMA功能就顯現(xiàn)為PCIe端點(diǎn),類似于連接主機(jī)上的聯(lián)網(wǎng)端點(diǎn)。在該端點(diǎn)上加載消息收發(fā)驅(qū)動(dòng)器,該消息收發(fā)驅(qū)動(dòng)器允許使用由智能交換機(jī)提供的DMA功能的消息收發(fā)發(fā)送/接收操作。每個(gè)這種DMA功能都具有唯一標(biāo)識(shí)PCIe構(gòu)造中的該功能的硬件ID,并且,所有消息收發(fā)工作請(qǐng)求都由交換機(jī)基于該唯一 ID在連接主機(jī)之間路由。利用由智能交換機(jī)支持的廣播消息收發(fā)機(jī)制的設(shè)施,每個(gè)連接主機(jī)都能使用這些唯一 ID發(fā)現(xiàn)/識(shí)別其他的連接主機(jī)。
[0024]較高層協(xié)議驅(qū)動(dòng)器能基于該唯一硬件ID來針對(duì)該消息收發(fā)接口 / DMA功能構(gòu)造唯一 ID。作為示例,該消息收發(fā)接口上的以太網(wǎng)隧道軟件能基于DMA接口的唯一 24比特PCIe構(gòu)造ID來針對(duì)該DMA接口構(gòu)造以太網(wǎng)MAC地址。RDMA層驅(qū)動(dòng)器能使用該相同PCIe構(gòu)造ID來針對(duì)DMA接口構(gòu)造GID (全局ID)。當(dāng)所有這些映射是利用它們之間的一對(duì)一對(duì)應(yīng)性做出的時(shí),所有這些映射將作為用于消息收發(fā)協(xié)議的尋址機(jī)制完美地工作。
[0025]一旦完成了發(fā)現(xiàn),不同連接主機(jī)上的應(yīng)用就能夠使用由該DMA功能提供的消息收發(fā)傳輸彼此通話。這種應(yīng)用的示例包括MPI應(yīng)用或套接字應(yīng)用,這些應(yīng)用是針對(duì)能夠在該DMA消息收發(fā)接口上無縫工作的其他構(gòu)造編寫的。
[0026]因?yàn)楝F(xiàn)在在多于少數(shù)的連接主機(jī)之間的PCIe構(gòu)造上實(shí)現(xiàn)該消息收發(fā),所以需要基于網(wǎng)絡(luò)的使用/部署模型來分離這些連接主機(jī)以及提供互連(交換機(jī))級(jí)別處的附加安全。本發(fā)明的實(shí)施例基于虛擬構(gòu)造ID標(biāo)簽和強(qiáng)化來解決這種安全/分離機(jī)制。
[0027]DMA功能充當(dāng)PCIe構(gòu)造上的連接主機(jī)之間的消息收發(fā)/主機(jī)到主機(jī)通信信道。該消息傳遞功能能夠用于實(shí)現(xiàn)各種上層協(xié)議,所述上層協(xié)議是針對(duì)其他構(gòu)造(諸如,基于該P(yáng)CIe消息收發(fā)機(jī)制的以太網(wǎng)軟件隧道和基于該消息收發(fā)機(jī)制運(yùn)行的RDMA /存儲(chǔ)協(xié)議)而開發(fā)的。
[0028]根據(jù)本發(fā)明的實(shí)施例,整體上針對(duì)消息收發(fā)而提供安全——不是基于特定協(xié)議的安全機(jī)制,而是作為使用虛擬構(gòu)造ID的基于公共PCIe構(gòu)造的安全機(jī)制。
[0029]管理主機(jī)310包括CPU和存儲(chǔ)器(未示出),并運(yùn)行針對(duì)PCIe交換機(jī)305的管理軟件。所述管理軟件充當(dāng)管理實(shí)體,并允許管理員管理交換機(jī)操作。
[0030]多個(gè)不同的主機(jī)計(jì)算機(jī)系統(tǒng)(主機(jī)1、主機(jī)2、…主機(jī)M)可以連接到PCI高速交換機(jī),其中每個(gè)主機(jī)具有關(guān)聯(lián)的CPU和存儲(chǔ)器。連接到PCIe構(gòu)造交換機(jī)的端口的主機(jī)計(jì)算機(jī)系統(tǒng)能夠在它們之間通信,因?yàn)樗兄鳈C(jī)端口或節(jié)點(diǎn)都是由PCIe構(gòu)造交換機(jī)提供的平坦全局空間的一部分。
[0031]經(jīng)由PCIe構(gòu)造將主機(jī)計(jì)算機(jī)系統(tǒng)連接在一起造成了潛在的安全問題,特別地,隨著由該構(gòu)造連接的主機(jī)系統(tǒng)的數(shù)量的增加。作為示意性的(但不限制)示例,PCIe構(gòu)造可以對(duì)應(yīng)于八、十六、三十二或六十四個(gè)耦合的主機(jī)計(jì)算機(jī)系統(tǒng)的集群大小。所述集群還可以對(duì)應(yīng)于機(jī)架級(jí)大小。將所 述構(gòu)造擴(kuò)展為更大的大小使安全和消息分離成為重要的問題。例如,在許多應(yīng)用環(huán)境中,強(qiáng)化安全和防止對(duì)集群內(nèi)的主機(jī)到主機(jī)消息流的未授權(quán)訪問是至關(guān)重要的。
[0032]管理主機(jī)310通過定義虛擬PCIe構(gòu)造ID (VPFID),利用存儲(chǔ)在存儲(chǔ)器(未示出)中的安全和成員表315,以強(qiáng)化安全和分離,這是允許每個(gè)主機(jī)端口作為端口組的有限集合的一部分的機(jī)制。在一個(gè)實(shí)施例中,(管理軟件的)管理實(shí)體管理PCIe交換機(jī),并且是能夠使用PCIe交換機(jī)中的成員表控制該成員身份(membership)的唯一實(shí)體。一旦PCIe交換機(jī)被配置有基于VPFID的成員身份,PCIe交換機(jī)就能夠基于該成員身份來強(qiáng)化嚴(yán)格的規(guī)則。
[0033]針對(duì)主機(jī)端口之間的主機(jī)到主機(jī)通信,可以使用供應(yīng)商定義的消息、利用VPFID給消息流加標(biāo)簽。PCIe規(guī)范包括針對(duì)供應(yīng)商定義消息的條款。
[0034]在一個(gè)實(shí)施例中,每個(gè)端口可以被管理實(shí)體配置為遵照下述規(guī)則集中的一個(gè)規(guī)則:
[0035]在硬件中,利用具有該端口的缺省VPFID的VPFID(作為供應(yīng)商定義消息的一部分)來給每個(gè)傳出的主機(jī)到主機(jī)通信分組加標(biāo)簽;和
[0036]主機(jī)軟件利用該端口的所允許的VPFID之一給主機(jī)到主機(jī)通信加標(biāo)簽(其中,管理實(shí)體針對(duì)每個(gè)端口的一個(gè)或多個(gè)VPFID設(shè)置該成員身份)。
[0037]在一個(gè)實(shí)施例中,可以根據(jù)下述規(guī)則集、基于VPFID在發(fā)送和接收時(shí)都過濾主機(jī)到主機(jī)通信:
[0038]端口外的每個(gè)主機(jī)到主機(jī)分組必須被加標(biāo)簽有該端口的有效VPFID之一,否則該分組被丟棄。當(dāng)分組被丟棄時(shí),可以在該端口上將錯(cuò)誤報(bào)告給管理實(shí)體;和
[0039]每個(gè)接收端口還檢驗(yàn)傳入分組中的有效VPFID,并丟棄被加標(biāo)簽有無效VPFID的主機(jī)到主機(jī)分組。在丟棄的情況下可以將錯(cuò)誤報(bào)告給管理實(shí)體。
[0040]在一個(gè)實(shí)施例中,對(duì)這些規(guī)則來說存在若干例外。管理實(shí)體應(yīng)該始終被允許具有與任何端口的主機(jī)到主機(jī)通信,并且因此,可以針對(duì)管理通信預(yù)留特殊的VPFID。當(dāng)在PCIe構(gòu)造中沒有使用VPFID時(shí),缺省規(guī)則可以是端口被假設(shè)為正在使用單個(gè)VPFID。此外,要理解的是,這些規(guī)則僅是示例,并且這些規(guī)則可以針對(duì)特定的交換機(jī)實(shí)現(xiàn)而變化。
[0041]圖4是更詳細(xì)地圖示了根據(jù)本發(fā)明的實(shí)施例的VPFID的接收處理的流程圖。在一個(gè)實(shí)施方式中,可以以硬件執(zhí)行接收DMA引擎處理。在405中,接收DMA引擎接收對(duì)應(yīng)于消息的工作請(qǐng)求。在410中,決定是否VPFID與所允許的集合中的一個(gè)相匹配。如果是,則在415中決定是否不允許廣播消息和DMA功能用于廣播。如果否,則在416中執(zhí)行正常的接收處理。如果是,則在418中靜默地丟棄消息。
[0042]返回到410,如果消息VPFID與所允許的集合中的任一個(gè)都不匹配,那么在420中確定消息是否是單播消息。如果否,則在418中靜默地丟棄消息。然而,如果消息是單播消息,那么在422中返回錯(cuò)誤碼給發(fā)送方,以指示VPFID失效。在426中,遞減分組丟棄計(jì)數(shù)器,并且,如果在428中確定計(jì)數(shù)器等于零,那么在430中向管理員通知存在太多VPFID違反。否則,該過程在432中結(jié)束。
[0043]圖5是更詳細(xì)地圖示了根據(jù)本發(fā)明的實(shí)施例的VPFID的發(fā)送處理的流程圖,其中存在發(fā)送側(cè)軟件/硬件處理。在505中,對(duì)去往驅(qū)動(dòng)器軟件的傳出消息請(qǐng)求進(jìn)行排隊(duì)。在510中,確定DMA功能是否針對(duì)單靜態(tài)ID模式而配置。如果是,那么在525中,驅(qū)動(dòng)器將沒有VPFID的去往硬件的工作請(qǐng)求進(jìn)行排隊(duì)。如果否,則在515中,確定是否對(duì)于消息存在VPFID0如果是,那么在520中,驅(qū)動(dòng)器利用給定VPFID來給去往硬件的工作請(qǐng)求加標(biāo)簽。如果否,那么在525中,驅(qū)動(dòng)器對(duì)沒有VPFID的去往硬件的工作請(qǐng)求進(jìn)行排隊(duì)。
[0044]在530中確定是否在交換機(jī)中設(shè)置了 VPFID的硬件超越(override)。如果是,則硬件蓋寫工作請(qǐng)求中的配置VPFID。如果否,則(可選地)確定VPFID是否與DMA fn的所允許的集合相匹配。如果是,則在545中發(fā)送消息給其目的地。如果否,則在550中可以丟棄工作請(qǐng)求并且生成錯(cuò)誤消息。
[0045]經(jīng)由管理實(shí)體,PCIe構(gòu)造管理員能夠針對(duì)連接端口之間的主機(jī)到主機(jī)通信定義安全PCIe子網(wǎng),從而將該構(gòu)造劃分為虛擬且未連接的PCIe網(wǎng)絡(luò),其中在軟件中有非常小的運(yùn)行時(shí)開銷。在一個(gè)實(shí)施例中,構(gòu)造管理員(信任實(shí)體)建立下述沒置:
[0046]a.單VPFID / DMA功能,或每DMA功能基礎(chǔ)上的多VPFID模式(缺省:單VPFID模式);
[0047]b.缺省地,整個(gè)構(gòu)造使用VPFIDl (缺省的VPFID),并且所有DMA功能都被設(shè)置為該設(shè)置;
[0048]c.管理員能夠?qū)⒃揤PFID設(shè)置改變?yōu)樗鼈円蕾囉谒鼈冊(cè)跇?gòu)造中想要的安全子網(wǎng)而想要的設(shè)置;和
[0049]d.當(dāng)管理員將該設(shè)置改變?yōu)镈MA功能上的多VPFID模式時(shí),它們的責(zé)任是管理使用DMA功能的主機(jī)系統(tǒng),以便還將其軟件配置為使用這些多個(gè)VPFID。
[0050]在一個(gè)實(shí)施例中,采用VPFID的PCIe構(gòu)造上的以太網(wǎng)隧道解決方案能夠?qū)⒁蕴W(wǎng)虛擬局域網(wǎng)(VLAN)轉(zhuǎn)換為對(duì)應(yīng)的VPFID。這主要是為了實(shí)現(xiàn)與以太網(wǎng)應(yīng)用的后向兼容。以類似的方式,無限帶寬的Pkey (分區(qū)密鑰)機(jī)制也能映射到VPFID。這一點(diǎn)的示例性用例模型是由用于PCIe構(gòu)造的以太網(wǎng)隧道軟件將以太網(wǎng)VLAN映射到對(duì)應(yīng)的VPFID。以太網(wǎng)??梢员慌渲脼槭褂枚鄠€(gè)VLAN(具有對(duì)應(yīng)的VPFID),并且,主機(jī)系統(tǒng)處的以太網(wǎng)隧道軟件將在建立工作請(qǐng)求時(shí)將該VLAN ID轉(zhuǎn)換為VPFID。類似地,可以通過執(zhí)行與關(guān)于VLAN描述的映射功能類似的相似映射功能來使其他安全措施與VPFID兼容。作為附加示例,RDMA /無限帶寬的分區(qū)密鑰(正像以太網(wǎng)的VLAN和其他協(xié)議的其他這種安全I(xiàn)D)可以被映射到對(duì)應(yīng)的 VPFID。
[0051]VPFID的一個(gè)方面是其解決了 PCIe構(gòu)造中的安全和分離的問題。多年來,PCIe構(gòu)造中的節(jié)點(diǎn)的數(shù)量已經(jīng)增長(zhǎng)。當(dāng)PCIe構(gòu)造擴(kuò)展到框之外到多個(gè)主機(jī)系統(tǒng)時(shí),連接端口之間的任何主機(jī)到主機(jī)通信上安全和接入控制的必要性變成典型數(shù)據(jù)中心/企業(yè)部署中的要求。PCIe是點(diǎn)對(duì)點(diǎn)協(xié)議?,F(xiàn)有技術(shù)中不存在對(duì)主機(jī)到主機(jī)通信的PCIe構(gòu)造代替的這種解決方案,并且VPFID定義了這樣的解決方案。它是對(duì)基于PCIe的構(gòu)造的部署的關(guān)鍵問題的新解決方案。
[0052]具有點(diǎn)對(duì)多點(diǎn)協(xié)議的其他構(gòu)造利用不同技術(shù)解決安全問題。作為示例,作為廣播介質(zhì)的以太網(wǎng)具有點(diǎn)對(duì)多點(diǎn)協(xié)議,并使用VLAN作為用于強(qiáng)化基于成員身份的安全性的機(jī)制。然而,VLAN需要通過在每個(gè)負(fù)載在以太網(wǎng)構(gòu)造中移動(dòng)時(shí)在該分組中添加/剝除附加VLAN報(bào)頭來考察以太網(wǎng)有效載荷。VLAN與以太網(wǎng)構(gòu)造緊密聯(lián)系,并由此能夠僅用于在以太網(wǎng)協(xié)議上運(yùn)行的消息收發(fā)應(yīng)用。VPFID實(shí)現(xiàn)在若干關(guān)鍵領(lǐng)域中不同于該VLAN實(shí)現(xiàn):
[0053]VPFID被應(yīng)用在點(diǎn)對(duì)點(diǎn)協(xié)議上;
[0054]PCIe構(gòu)造的VPFID的實(shí)現(xiàn)僅被應(yīng)用在消息收發(fā)工作請(qǐng)求上,而不是在所有分組或由該消息收發(fā)工作請(qǐng)求得到的數(shù)據(jù)業(yè)務(wù)上都應(yīng)用?;A(chǔ)PCIe協(xié)議確保了該數(shù)據(jù)業(yè)務(wù)的安全性,并且因此,所得到的數(shù)據(jù)業(yè)務(wù)上的VPFID是冗余的。
[0055]雖然已經(jīng)詳細(xì)討論了 PCIe構(gòu)造的特定示例,但是更一般地,本發(fā)明可以被擴(kuò)展為適用于其他點(diǎn)對(duì)點(diǎn)協(xié)議。大多數(shù)點(diǎn)對(duì)點(diǎn)聯(lián)網(wǎng)協(xié)議包括類似于PCIe供應(yīng)商消息收發(fā)的特征。也就是說,大多數(shù)點(diǎn)對(duì)點(diǎn)聯(lián)網(wǎng)協(xié)議能夠被適配為包括虛擬構(gòu)造ID (VFID)。因而,本發(fā)明具有針對(duì)使用除PCIe的那些構(gòu)造外的其他交換機(jī)構(gòu)造的潛在應(yīng)用。
[0056]所描述的實(shí)施例的各種方面、實(shí)施例、實(shí)施方式或特征能夠被單獨(dú)使用或以任意組合使用。所描述的實(shí)施例的各種方面能夠由軟件、硬件或軟件和硬件的組合實(shí)現(xiàn)。所描述的實(shí)施例還能夠被體現(xiàn)為計(jì)算機(jī)可讀介質(zhì)上的計(jì)算機(jī)可讀代碼。所述計(jì)算機(jī)可讀介質(zhì)被定義為能夠存儲(chǔ)此后可由計(jì)算機(jī)系統(tǒng)讀取的數(shù)據(jù)的任意數(shù)據(jù)存儲(chǔ)設(shè)備。計(jì)算機(jī)可讀介質(zhì)的示例包括只讀存儲(chǔ)器、隨機(jī)存取存儲(chǔ)器、CD-ROM、DVD、磁帶和光學(xué)數(shù)據(jù)存儲(chǔ)設(shè)備。所述計(jì)算機(jī)可讀介質(zhì)還能夠分布在網(wǎng)絡(luò)耦合的計(jì)算機(jī)系統(tǒng)上,從而以分布式的方式存儲(chǔ)和執(zhí)行所述計(jì)算機(jī)可讀代碼。
[0057]雖然本發(fā)明已經(jīng)參考其特定實(shí)施例而特別示出和描述,但是本領(lǐng)域技術(shù)人員將理解的是,在不背離本發(fā)明的精神或范圍的情況下,可以做出對(duì)所公開的實(shí)施例的形式和細(xì)節(jié)上的改變。此外,雖然這里已經(jīng)參考各種實(shí)施例討論了本發(fā)明的各種優(yōu)點(diǎn)、方面和目的,但是要理解的是,不應(yīng)參考這些優(yōu)點(diǎn)、方面和目的來限制本發(fā)明的范圍。更確切地,應(yīng)該參考所附權(quán)利要求來確定本發(fā)明的范圍。
【權(quán)利要求】
1.一種操作具有點(diǎn)對(duì)點(diǎn)網(wǎng)絡(luò)協(xié)議的交換機(jī)構(gòu)造的方法,所述方法包括: 針對(duì)至少一個(gè)所定義的子網(wǎng)確定至少一個(gè)虛擬構(gòu)造ID(VFID); 利用虛擬構(gòu)造ID給來自至少一個(gè)主機(jī)的傳出消息的分組加標(biāo)簽;和 確定去往至少 一個(gè)主機(jī)的傳入消息是否具有與虛擬構(gòu)造ID相匹配的標(biāo)簽; 其中如果傳入消息的標(biāo)簽與被批準(zhǔn)的虛擬構(gòu)造ID相匹配,則支持針對(duì)傳入消息的正常接收處理,并且如果所述標(biāo)簽與被批準(zhǔn)的虛擬構(gòu)造ID不匹配,則在交換機(jī)內(nèi)丟棄所述消息。
2.根據(jù)權(quán)利要求1的方法,其中針對(duì)至少一個(gè)所定義的子網(wǎng)確定至少一個(gè)虛擬構(gòu)造ID包括: 從定義子網(wǎng)的交換機(jī)構(gòu)造管理員接收輸入;和 針對(duì)至少一個(gè)所定義的子網(wǎng)生成所述至少一個(gè)虛擬構(gòu)造ID(VFID)。
3.根據(jù)權(quán)利要求1的方法,其中針對(duì)至少一個(gè)所定義的子網(wǎng)確定至少一個(gè)虛擬構(gòu)造ID包括: 針對(duì)至少一個(gè)所定義的子網(wǎng)生成定義所述至少一個(gè)虛擬構(gòu)造ID(VFID)的表。
4.根據(jù)權(quán)利要求1、2或3中任一項(xiàng)的方法,其中所述點(diǎn)對(duì)點(diǎn)協(xié)議是PCI高速。
5.根據(jù)權(quán)利要求1、2、3或4中任一項(xiàng)的方法,其中所述加標(biāo)簽是經(jīng)由供應(yīng)商定義的消息收發(fā)執(zhí)行的。
6.根據(jù)權(quán)利要求1、2、3、4或5中任一項(xiàng)的方法,其中如果虛擬構(gòu)造ID不匹配,則將錯(cuò)誤碼返回到發(fā)送方。
7.根據(jù)權(quán)利要求1、2、3、4、5或6中任一項(xiàng)的方法,其中所述確定包括:檢驗(yàn)從端口出來的每個(gè)主機(jī)到主機(jī)分組,并丟棄該分組,直到其已經(jīng)被加標(biāo)簽有有效虛擬構(gòu)造ID。
8.根據(jù)權(quán)利要求7的方法,其中所述確定包括:針對(duì)有效虛擬構(gòu)造ID檢驗(yàn)每個(gè)接收端口處的分組,并丟棄具有無效虛擬構(gòu)造ID的分組。
9.根據(jù)權(quán)利要求1、2、3、4、5、6、7或8中任一項(xiàng)的方法,其中所述交換機(jī)構(gòu)造包括針對(duì)每個(gè)端口的虛擬直接存儲(chǔ)訪問(DMA)引擎,其中所述接收包括:從構(gòu)造管理員接收定義VFID和DMA功能之間的關(guān)系的一個(gè)或多個(gè)設(shè)置。
10.根據(jù)權(quán)利要求9的方法,其中所述設(shè)置包括: 單VFID / DMA功能; 每DMA功能基礎(chǔ)上的多VFID模式;和 具有單VFID的缺省設(shè)置,以及所有DMA功能被設(shè)置為該設(shè)置。
11.根據(jù)權(quán)利要求1、2、3、4、5、6、7、8、9或10中任一項(xiàng)的方法,進(jìn)一步包括:將以太網(wǎng)虛擬局域網(wǎng)(VLAN)轉(zhuǎn)換為對(duì)應(yīng)的VFID,以允許在構(gòu)造交換機(jī)上運(yùn)行以太網(wǎng)VLAN。
12.根據(jù)權(quán)利要求1、2、3、4、5、6、7、8、9、10或11中任一項(xiàng)的方法,進(jìn)一步包括:至少部分地基于標(biāo)簽與被批準(zhǔn)的VFID不匹配來生成至少一個(gè)錯(cuò)誤消息。
13.根據(jù)權(quán)利要求12的方法,其中所述至少一個(gè)錯(cuò)誤消息包括安全違反通知。
14.一種與管理系統(tǒng)連接的PCI高速交換機(jī),其中所述管理系統(tǒng)中的存儲(chǔ)器存儲(chǔ)虛擬構(gòu)造ID的表,所述虛擬構(gòu)造ID用于強(qiáng)化耦合到PCI高速交換機(jī)的主機(jī)的主機(jī)到主機(jī)消息流的安全和分離。
15.根據(jù)權(quán)利要求14的PCI高速交換機(jī),其中所述交換機(jī)被配置為執(zhí)行權(quán)利要求1-13的方法中的 任一個(gè)。
【文檔編號(hào)】H04L29/06GK103905426SQ201310757082
【公開日】2014年7月2日 申請(qǐng)日期:2013年10月25日 優(yōu)先權(quán)日:2012年10月25日
【發(fā)明者】N·蘇布拉馬尼延, J·雷古拉, J·M·多森 申請(qǐng)人:Plx科技公司