背景技術(shù):
高性能計(jì)算(hpc)集群、云計(jì)算數(shù)據(jù)中心以及其他大型計(jì)算網(wǎng)絡(luò)可以通過(guò)高速輸入/輸出結(jié)構(gòu)(諸如infinibandtm結(jié)構(gòu))進(jìn)行通信。infinibandtm架構(gòu)可以使用端節(jié)點(diǎn)之間的交換點(diǎn)到點(diǎn)通道傳送數(shù)據(jù)。在infinibandtm架構(gòu)中,可以使用16位本地標(biāo)識(shí)符(lid)在子網(wǎng)內(nèi)標(biāo)識(shí)端節(jié)點(diǎn)。16位lid地址空間的固定部分專用于多播地址。
附圖說(shuō)明
在附圖中通過(guò)示例的方式而非限制性的方式展示了在此所描述的概念。為了說(shuō)明的簡(jiǎn)單和清晰起見(jiàn),附圖中所展示的元件不一定按比例繪制。在認(rèn)為適當(dāng)?shù)那闆r下,在附圖當(dāng)中重復(fù)參考標(biāo)號(hào)以表示相應(yīng)或相似的元件。
圖1是用于可擴(kuò)展本地尋址的系統(tǒng)的至少一個(gè)實(shí)施例的簡(jiǎn)化框圖;
圖2是可以由圖1的系統(tǒng)建立的不同環(huán)境的至少一個(gè)實(shí)施例的簡(jiǎn)化框圖;
圖3是可以由圖1和圖2的系統(tǒng)的受管網(wǎng)絡(luò)設(shè)備執(zhí)行的用于數(shù)據(jù)分組尋址和轉(zhuǎn)發(fā)的方法的至少一個(gè)實(shí)施例的簡(jiǎn)化流程圖;并且
圖4是可以由圖1和圖2的系統(tǒng)的計(jì)算節(jié)點(diǎn)執(zhí)行的用于本地多播地址轉(zhuǎn)換的方法的至少一個(gè)實(shí)施例的簡(jiǎn)化流程圖。
具體實(shí)施方式
雖然本公開的概念易有多種不同修改和替代形式,但通過(guò)舉例在附圖中已經(jīng)示出本公開的具體實(shí)施例并且在此將對(duì)其進(jìn)行詳細(xì)描述。然而,應(yīng)當(dāng)理解的是,并不旨在將本公開的概念限制于所公開的特定形式,而相反,意圖是覆蓋與本公開和所附權(quán)利要求書一致的所有修改型式、等效型式和替代型式。
在說(shuō)明書中提到的“一個(gè)實(shí)施例”、“實(shí)施例”、“說(shuō)明性實(shí)施例”等指示所描述的實(shí)施例可以包括具體特征、結(jié)構(gòu)或特性,但每一個(gè)實(shí)施例可能或者可能不一定包括該具體特征、結(jié)構(gòu)或特性。而且,此類短語(yǔ)不一定指相同的實(shí)施例。此外,當(dāng)關(guān)于實(shí)施例而描述了特定特征、結(jié)構(gòu)或特性時(shí),應(yīng)當(dāng)認(rèn)為的是,無(wú)論是否進(jìn)行了明確描述,結(jié)合其他實(shí)施例來(lái)實(shí)現(xiàn)這種特征、結(jié)構(gòu)或特性都在本領(lǐng)域的技術(shù)人員的知識(shí)內(nèi)。另外,應(yīng)當(dāng)認(rèn)識(shí)到,包括在采用“a、b和c中的至少一者”的形式的列表中的項(xiàng)可以意指(a);(b);(c);(a和b);(a和c);(b和c);或(a、b和c)。類似地,采用“a、b或c中的至少一者”的形式列出的項(xiàng)可以意指(a);(b);(c);(a和b);(a和c);(b和c);或(a、b和c)。
在一些情況下,可以在硬件、固件、軟件或其任何組合中實(shí)施所公開的實(shí)施例。所公開的實(shí)施例還可以實(shí)現(xiàn)為一個(gè)或多個(gè)瞬態(tài)或非瞬態(tài)機(jī)器可讀(例如,計(jì)算機(jī)可讀)存儲(chǔ)介質(zhì)所攜帶或其上所存儲(chǔ)的指令,這些指令可以由一個(gè)或多個(gè)處理器讀取和執(zhí)行。機(jī)器可讀存儲(chǔ)介質(zhì)可以具體化為任何存儲(chǔ)設(shè)備、機(jī)制、或用于存儲(chǔ)或傳輸采用機(jī)器可讀形式的信息的其他物理結(jié)構(gòu)(例如,易失性或非易失性存儲(chǔ)器、介質(zhì)盤或其他介質(zhì)設(shè)備)。
在附圖中,一些結(jié)構(gòu)特征或方法特征可能以特定安排和/或順序示出。然而,應(yīng)當(dāng)理解的是,可以不需要這種特定安排和/或順序。相反,在一些實(shí)施例中,可以采用與在說(shuō)明性附圖中所示出的方式和/或順序不同的方式和/或順序來(lái)安排這類特征。另外,在具體的圖中包括結(jié)構(gòu)特征或方法特征并不意味著暗示在所有實(shí)施例中都需要這種特征,并且在一些實(shí)施例中,可以不包括這種特征或者這種特征可以與其他特征組合。
現(xiàn)在參照?qǐng)D1,在一個(gè)實(shí)施例中,用于可擴(kuò)展本地尋址的系統(tǒng)100包括經(jīng)由若干結(jié)構(gòu)鏈路106進(jìn)行通信的數(shù)個(gè)受管網(wǎng)絡(luò)設(shè)備102和數(shù)個(gè)計(jì)算節(jié)點(diǎn)104。系統(tǒng)100的受管網(wǎng)絡(luò)設(shè)備102、計(jì)算節(jié)點(diǎn)104以及其他屬性可以由一個(gè)或多個(gè)結(jié)構(gòu)管理器108來(lái)管理。在使用中,如在下文更詳細(xì)地討論的,每個(gè)計(jì)算節(jié)點(diǎn)104可以通過(guò)結(jié)構(gòu)鏈路106將數(shù)據(jù)分組傳輸?shù)绞芄芫W(wǎng)絡(luò)設(shè)備102。每個(gè)數(shù)據(jù)分組可以包括標(biāo)識(shí)目的地計(jì)算節(jié)點(diǎn)104或具有兩個(gè)或更多個(gè)計(jì)算節(jié)點(diǎn)104的多播組的本地標(biāo)識(shí)符(lid)。lid包括變化數(shù)量的二進(jìn)制數(shù)據(jù)位(例如,16、20、24或32位)。受管網(wǎng)絡(luò)設(shè)備102和計(jì)算節(jié)點(diǎn)104檢查lid的變化數(shù)量的位以判定數(shù)據(jù)分組是否被定址到目的地計(jì)算節(jié)點(diǎn)104或多播組,并相應(yīng)地轉(zhuǎn)發(fā)數(shù)據(jù)分組。在一些實(shí)施例中,受管網(wǎng)絡(luò)設(shè)備102和計(jì)算節(jié)點(diǎn)104還可以檢查lid的變化數(shù)量的位以判定數(shù)據(jù)分組是否被定址到集中操作地址空間,并且如果是則執(zhí)行加速集中操作(例如,廣播、分散、集中等)。
盡管被展示為包括三個(gè)計(jì)算節(jié)點(diǎn)104a至104c以及兩個(gè)受管網(wǎng)絡(luò)設(shè)備102a和102b,但是系統(tǒng)100可以包括更多受管網(wǎng)絡(luò)設(shè)備102和計(jì)算節(jié)點(diǎn)104。具體地,系統(tǒng)100可以允許本地子網(wǎng)擴(kuò)展以包括超出16位infinibandtmlid中可表示的量的大量計(jì)算節(jié)點(diǎn)104。此外,系統(tǒng)100不是包括固定的多播地址空間,而是允許在多播地址與單播地址的比率內(nèi)以及在多播地址與集中地址的比率內(nèi)進(jìn)行配置與控制。系統(tǒng)100還為單播、多播以及集中地址保留連續(xù)地址空間,并且可以是與16位infinibandtm設(shè)施可互操作的。
每個(gè)受管網(wǎng)絡(luò)設(shè)備102可以具體化為能夠轉(zhuǎn)發(fā)或控制結(jié)構(gòu)通信量的任何網(wǎng)絡(luò)設(shè)備,例如受管交換機(jī)。說(shuō)明性受管網(wǎng)絡(luò)設(shè)備102包括多個(gè)結(jié)構(gòu)端口120、一個(gè)開關(guān)邏輯122以及一個(gè)管理邏輯124。每個(gè)結(jié)構(gòu)端口120可以連接到結(jié)構(gòu)鏈路106上,該結(jié)構(gòu)鏈路106進(jìn)而可以連接到遠(yuǎn)程設(shè)備諸如計(jì)算節(jié)點(diǎn)104或另一個(gè)受管網(wǎng)絡(luò)設(shè)備102上。說(shuō)明性受管網(wǎng)絡(luò)設(shè)備102包括三個(gè)結(jié)構(gòu)端口120a至120c;然而,在其他實(shí)施例中,受管網(wǎng)絡(luò)設(shè)備102可以包括另外的或更少的端口120以支持不同數(shù)量的結(jié)構(gòu)鏈路106。
開關(guān)邏輯122可以具體化為被配置成用于將在端口120上接收的數(shù)據(jù)分組轉(zhuǎn)發(fā)到適當(dāng)?shù)哪康牡囟丝?20的任何硬件、固件、軟件或其組合。例如,開關(guān)邏輯122可以具體化為共享存儲(chǔ)器開關(guān)或縱橫開關(guān),并且可以包括調(diào)度器、分組處理管道、多播轉(zhuǎn)發(fā)表和/或任何其他開關(guān)邏輯。在一些實(shí)施例中,開關(guān)邏輯122可以具體化為一個(gè)或多個(gè)應(yīng)用專用集成電路(asic)。
管理邏輯124可以具體化為可以用來(lái)配置并控制受管網(wǎng)絡(luò)設(shè)備102的任何控制電路、微處理器或其他邏輯塊。例如,管理邏輯124可以初始化受管網(wǎng)絡(luò)設(shè)備102及其組件、控制受管網(wǎng)絡(luò)設(shè)備102及其組件的配置、向受管網(wǎng)絡(luò)設(shè)備102提供測(cè)試接口、或者提供其他管理功能。管理邏輯124可以通過(guò)改變?nèi)旨拇嫫骺臻g中的數(shù)個(gè)寄存器的值來(lái)配置。結(jié)構(gòu)管理器108可以使用帶內(nèi)管理接口通過(guò)經(jīng)由結(jié)構(gòu)鏈路106傳輸特殊格式化的管理數(shù)據(jù)報(bào)(mad)來(lái)與管理邏輯124進(jìn)行通信。另外地或可替代地,管理邏輯124可以通過(guò)管理接口(諸如一個(gè)或多個(gè)pciexpress主機(jī)接口)、測(cè)試接口或一個(gè)或多個(gè)低速接口(諸如i2c接口、jtag接口、spi接口、mdio接口、led接口或gpio接口)來(lái)與結(jié)構(gòu)管理器108進(jìn)行通信。
每個(gè)計(jì)算節(jié)點(diǎn)104可以具體化為能夠執(zhí)行在此所描述的功能的任何類型的計(jì)算或計(jì)算機(jī)設(shè)備,包括但不限于計(jì)算機(jī)、服務(wù)器、機(jī)架式服務(wù)器、刀片服務(wù)器、網(wǎng)絡(luò)設(shè)備、web設(shè)備、多處理器系統(tǒng)、分布式計(jì)算系統(tǒng)、基于處理器的系統(tǒng)、移動(dòng)計(jì)算設(shè)備和/或消費(fèi)者電子設(shè)備。如圖1中所示,每個(gè)計(jì)算節(jié)點(diǎn)104說(shuō)明性地包括處理器140、輸入/輸出子系統(tǒng)144、存儲(chǔ)器146、數(shù)據(jù)存儲(chǔ)設(shè)備148以及通信電路150。當(dāng)然,在其他實(shí)施例中,計(jì)算節(jié)點(diǎn)104可以包括其他或另外的組件,諸如計(jì)算機(jī)中常見(jiàn)的那些(例如,不同輸入/輸出設(shè)備)。另外,在一些實(shí)施例中,說(shuō)明性組件中的一個(gè)或多個(gè)組件可以結(jié)合在另一組件中、或者以其他方式可以形成另一組件的一部分。例如,在一些實(shí)施例中,存儲(chǔ)器146或其部分可以結(jié)合在處理器140中。
處理器140可以具體化為能夠執(zhí)行在此所描述的功能的任何類型的處理器。例如,處理器140可以具體化為(多個(gè))單核或多核處理器、數(shù)字信號(hào)處理器、微控制器、或者其他處理器或處理/控制電路。處理器140進(jìn)一步包括主機(jī)結(jié)構(gòu)接口142。主機(jī)結(jié)構(gòu)接口142可以具體化為能夠通過(guò)結(jié)構(gòu)鏈路106實(shí)現(xiàn)處理器140與其他遠(yuǎn)程計(jì)算節(jié)點(diǎn)104和/或其他遠(yuǎn)程設(shè)備之間的通信的任何通信接口,諸如網(wǎng)絡(luò)接口控制器、通信電路、設(shè)備或其集合。主機(jī)結(jié)構(gòu)接口142可以被配置成用于使用任何一種或多種通信技術(shù)以及相關(guān)聯(lián)協(xié)議(例如,
類似地,存儲(chǔ)器146可以具體化為能夠執(zhí)行在此所描述的功能的任何類型的易失性或非易失性存儲(chǔ)器或數(shù)據(jù)存儲(chǔ)裝置。在操作中,存儲(chǔ)器146可以存儲(chǔ)在計(jì)算節(jié)點(diǎn)104的操作過(guò)程中使用的不同的數(shù)據(jù)和軟件,諸如操作系統(tǒng)、應(yīng)用、程序、庫(kù)以及驅(qū)動(dòng)程序。存儲(chǔ)器146經(jīng)由i/o子系統(tǒng)144通信地耦合到處理器140上,i/o子系統(tǒng)可以具體化為用于促進(jìn)與計(jì)算節(jié)點(diǎn)104的處理器140、存儲(chǔ)器146、以及其他組件的輸入/輸出操作的電路和/或組件。例如,i/o子系統(tǒng)144可以具體化為或以其他方式包括用于促進(jìn)輸入/輸出操作的存儲(chǔ)器控制器中樞、輸入/輸出控制中樞、固件設(shè)備、通信鏈路(即,點(diǎn)到點(diǎn)鏈路、總線鏈路、線、電纜、光導(dǎo)、印刷電路板跡線等)和/或其他組件和子系統(tǒng)。在一些實(shí)施例中,i/o子系統(tǒng)144可以形成片上系統(tǒng)(soc)的一部分并且可以與計(jì)算節(jié)點(diǎn)104的處理器140、存儲(chǔ)器146以及其他組件一起結(jié)合在單個(gè)集成電路芯片上。數(shù)據(jù)存儲(chǔ)設(shè)備148可以具體化為被配置成用于對(duì)數(shù)據(jù)進(jìn)行短期或長(zhǎng)期存儲(chǔ)的任何類型的一種或多種設(shè)備,例如像,存儲(chǔ)器設(shè)備和電路、存儲(chǔ)器卡、硬盤驅(qū)動(dòng)器、固態(tài)驅(qū)動(dòng)器或其他數(shù)據(jù)存儲(chǔ)設(shè)備。
計(jì)算節(jié)點(diǎn)104的通信電路150可以具體化為能夠?qū)崿F(xiàn)計(jì)算節(jié)點(diǎn)104與一個(gè)或多個(gè)遠(yuǎn)程計(jì)算節(jié)點(diǎn)104、受管網(wǎng)絡(luò)設(shè)備102、交換機(jī)、遠(yuǎn)程主機(jī)或其他設(shè)備之間的通信的任何通信接口,諸如通信電路、設(shè)備或其集合。通信電路150可以被配置成用于使用任何一種或多種通信技術(shù)(例如,有線或無(wú)線通信)以及相關(guān)聯(lián)協(xié)議(例如,
結(jié)構(gòu)鏈路106中的每一個(gè)可以具體化為能夠連接系統(tǒng)100的兩個(gè)端口120、152的任何點(diǎn)到點(diǎn)通信鏈路。例如,結(jié)構(gòu)鏈路106可以將計(jì)算節(jié)點(diǎn)104的端口152與受管網(wǎng)絡(luò)設(shè)備102的端口120連接起來(lái)、可以將兩個(gè)受管網(wǎng)絡(luò)設(shè)備102的兩個(gè)端口120連接起來(lái)等等。每個(gè)結(jié)構(gòu)鏈路106允許在兩個(gè)方向上進(jìn)行通信。每個(gè)結(jié)構(gòu)鏈路106可以具體化為串行數(shù)據(jù)通信鏈路,諸如銅電纜、銅背板、光纖電纜或硅光子鏈路,并且可以包括多個(gè)通信道(例如,四條道)以增大總帶寬。每個(gè)結(jié)構(gòu)鏈路106可以按一定導(dǎo)線速率(諸如12.5gb/s或25.78125gb/s)來(lái)以信號(hào)方式發(fā)送數(shù)據(jù)。
結(jié)構(gòu)管理器108被配置成用于初始化并以其他方式管理系統(tǒng)100的受管網(wǎng)絡(luò)設(shè)備102、計(jì)算節(jié)點(diǎn)104以及其他主機(jī)、網(wǎng)關(guān)和/或其他設(shè)備。結(jié)構(gòu)管理器108可以具體化為能夠執(zhí)行在此所描述的功能的任何類型的服務(wù)器計(jì)算設(shè)備、網(wǎng)絡(luò)設(shè)備或設(shè)備的集合。在一些實(shí)施例中,系統(tǒng)100可以包括多個(gè)結(jié)構(gòu)管理器108,可以從該多個(gè)結(jié)構(gòu)管理器中選擇主結(jié)構(gòu)管理器108。這樣,結(jié)構(gòu)管理器108可以具體化為單個(gè)服務(wù)器計(jì)算設(shè)備或服務(wù)器與相關(guān)聯(lián)設(shè)備的集合。因此,雖然結(jié)構(gòu)管理器108在圖1中被展示為具體化為單個(gè)計(jì)算設(shè)備,但是應(yīng)當(dāng)理解,結(jié)構(gòu)管理器108可以具體化為一起協(xié)同操作以促進(jìn)下文所描述的功能性的多個(gè)設(shè)備。
現(xiàn)在參照?qǐng)D2,在說(shuō)明性實(shí)施例中,每個(gè)受管網(wǎng)絡(luò)設(shè)備102在操作期間都建立環(huán)境200。說(shuō)明性環(huán)境200包括分組入口模塊202、多播處理模塊204、集中處理模塊206、單播處理模塊208以及管理模塊210。環(huán)境200的不同模塊可以具體化為硬件、固件、軟件或其組合。例如,環(huán)境200的不同模塊、邏輯以及其他組件可以形成受管網(wǎng)絡(luò)設(shè)備102的開關(guān)邏輯122、管理邏輯124或其他硬件組件的一部分或以其他方式由該開關(guān)邏輯、該管理邏輯或這些其他硬件組件建立。這樣,在一些實(shí)施例中,環(huán)境200的模塊中的任何一個(gè)或多個(gè)模塊可以具體化為電氣設(shè)備的電路或集合(例如,分組入口電路、多播處理電路等)。
分組入口模塊202被配置成用于接收并處理來(lái)自端口120的數(shù)據(jù)分組。具體地,分組入口模塊202被配置成用于從所接收數(shù)據(jù)分組提取目的地本地標(biāo)識(shí)符(dlid)。dlid可以具體化為具有變化長(zhǎng)度(例如,32、24、20或16位寬、或任何其他適當(dāng)寬度)的二進(jìn)制值。dlid標(biāo)識(shí)數(shù)據(jù)分組的目的地端點(diǎn)或目的地多播組。
多播處理模塊204被配置成用于編制多播掩碼并且使用該多播掩碼來(lái)判定數(shù)據(jù)分組是否包括在多播地址空間之中。多播掩碼可以具體化為與dlid具有相同寬度的二進(jìn)制值,其中一定數(shù)量的最高位被設(shè)定來(lái)限定多播地址空間。設(shè)定位的數(shù)量(并且因此多播地址空間的大小)可以是硬編碼的,或者在一些實(shí)施例中,可以是可配置的。例如,在一些實(shí)施例中,設(shè)定位的數(shù)量可以是在一位與七位之間可配置的。多播處理模塊204被進(jìn)一步配置成用于將多播地址空間內(nèi)的具有dlid的數(shù)據(jù)分組轉(zhuǎn)發(fā)到適當(dāng)?shù)亩嗖ソM。
集中處理模塊206被配置成用于編制集中掩碼并且使用該集中掩碼來(lái)判定數(shù)據(jù)分組是否包括在集中地址空間之中。集中掩碼可以具體化為與dlid具有相同寬度的二進(jìn)制值,其中一定數(shù)量的最高位被設(shè)定來(lái)限定集中地址空間。與多播掩碼相比,集中掩碼可以具有在零個(gè)與八個(gè)之間的附加設(shè)定最高位;因此,集中地址空間可以具體化為多播地址空間的上子集。附加設(shè)定位的數(shù)量可以是硬編碼的,或者在一些實(shí)施例中,可以是可配置的。例如,在一些實(shí)施例中,附加設(shè)定位的數(shù)量可以是在零位與七位之間可配置的。集中處理模塊206被進(jìn)一步配置成用于針對(duì)集中地址空間內(nèi)的具有dlid的數(shù)據(jù)分組執(zhí)行一個(gè)或多個(gè)集中加速操作。
單播處理模塊208被配置成用于在數(shù)據(jù)分組的dlid不是包括在多播地址空間中時(shí),將數(shù)據(jù)分組轉(zhuǎn)發(fā)到單播地址。例如,單播處理模塊208可以確定與單播dlid相關(guān)聯(lián)的輸出端口120,并將數(shù)據(jù)分組轉(zhuǎn)發(fā)到該端口120。
管理模塊210被配置成用于管理受管網(wǎng)絡(luò)設(shè)備102的配置。管理模塊210可以存儲(chǔ)或以其他方式管理可以用來(lái)配置受管網(wǎng)絡(luò)設(shè)備102的一個(gè)或多個(gè)配置寄存器。例如,在一些實(shí)施例中,管理模塊210可以管理限定多播地址空間的大小的多播掩碼配置寄存器和/或限定集中地址空間的大小的集中掩碼配置寄存器。管理模塊210可以被配置成用于從結(jié)構(gòu)管理器108接收命令或以其他方式與結(jié)構(gòu)管理器108進(jìn)行交互。
仍參照?qǐng)D2,在說(shuō)明性實(shí)施例中,每個(gè)計(jì)算節(jié)點(diǎn)104在操作期間都建立環(huán)境220。說(shuō)明性環(huán)境220包括地址轉(zhuǎn)換模塊222,該地址轉(zhuǎn)換模塊可以具體化為硬件、固件、軟件或其組合。例如,環(huán)境220的不同的模塊、邏輯以及其他組件可以形成計(jì)算節(jié)點(diǎn)104的處理器140或其他硬件組件的一部分或以其他方式由該處理器或這些其他硬件組件建立。這樣,在一些實(shí)施例中,環(huán)境220的模塊中的任何一個(gè)或多個(gè)模塊可以具體化為電氣設(shè)備的電路或集合(例如,地址轉(zhuǎn)換電路等)。
地址轉(zhuǎn)換模塊222被配置成用于將多播lid在不同位寬度之間進(jìn)行轉(zhuǎn)換。例如,地址轉(zhuǎn)換模塊222可以將32位lid轉(zhuǎn)換為24位lid等等。具體地,地址轉(zhuǎn)換模塊222被配置成用于針對(duì)lid的原始寬度編制多播掩碼,并且使用該多播掩碼來(lái)確定lid的偏移量。地址轉(zhuǎn)換模塊222被進(jìn)一步配置成用于針對(duì)lid的新寬度編制多播掩碼,并且將該偏移量與該新多播掩碼相組合以生成轉(zhuǎn)換的lid。
現(xiàn)在參考圖3,在使用中,受管網(wǎng)絡(luò)設(shè)備102可以執(zhí)行用于數(shù)據(jù)分組尋址和轉(zhuǎn)發(fā)的方法300。在一些實(shí)施例中,計(jì)算節(jié)點(diǎn)104可以執(zhí)行方法300的操作中的一些或全部操作。方法300開始于框302,在該框中,受管網(wǎng)絡(luò)設(shè)備102或計(jì)算節(jié)點(diǎn)104在端口120上接收數(shù)據(jù)分組,并從該數(shù)據(jù)分組提取目的地本地標(biāo)識(shí)符(dlid)。數(shù)據(jù)分組可以具體化為包括dlid的二進(jìn)制數(shù)據(jù)的任何適當(dāng)?shù)募?。在?04中,受管網(wǎng)絡(luò)設(shè)備102或計(jì)算節(jié)點(diǎn)104提取32、24、20或16位寬度的dlid。受管網(wǎng)絡(luò)設(shè)備102或計(jì)算節(jié)點(diǎn)104可以被配置成用于通過(guò)例如結(jié)構(gòu)管理器108提取正確大小的dlid。dlid的寬度可以針對(duì)受管網(wǎng)絡(luò)設(shè)備102和/或以每端口120為基礎(chǔ)全局地配置。
在框306中,受管網(wǎng)絡(luò)設(shè)備102或計(jì)算節(jié)點(diǎn)104編制多播掩碼。多播掩碼是與dlid具有相同寬度(例如,32、24、20或16位寬)的二進(jìn)制值。多播掩碼可以存儲(chǔ)在由受管網(wǎng)絡(luò)設(shè)備102或計(jì)算節(jié)點(diǎn)104維持的掩碼寄存器或其他存儲(chǔ)位置之中。多播掩碼中的一定數(shù)量的高位可以被設(shè)定,這建立了多播地址空間。例如,在一些實(shí)施例中,針對(duì)32、24或20位多播掩碼,可以設(shè)定該多播掩碼的高四位。在這些實(shí)施例中,多播掩碼因此可以對(duì)應(yīng)地由十六進(jìn)制值0xf0000000、0xf00000以及0xf0000表示。多播掩碼可以在接收分組時(shí)編制,或者在一些實(shí)施例中,可以在接收分組之前編制。如果提前編制,受管網(wǎng)絡(luò)設(shè)備102可以針對(duì)每個(gè)lid寬度(例如,16、20、24或32位)維持一個(gè)預(yù)編制多播掩碼。
在一些實(shí)施例中,在框308中,受管網(wǎng)絡(luò)設(shè)備102或計(jì)算節(jié)點(diǎn)104可以基于多播配置寄存器的內(nèi)容來(lái)設(shè)定多播掩碼的可配置數(shù)量(例如,在一些實(shí)施例中,多達(dá)八位)的高位。多播配置寄存器可以具體化為三位寄存器,并且可以適用于整個(gè)受管網(wǎng)絡(luò)設(shè)備102或適用于特定端口120。多播掩碼可以包括至少最設(shè)定高位,并且基于多播配置寄存器的值,可以包括多達(dá)七個(gè)附加設(shè)定位。因此,在包括三位多播配置寄存器的實(shí)施例中,多播地址空間可以被配置成是在總地址空間的1/2(一個(gè)設(shè)定位)與1/256(八個(gè)設(shè)定位)之間。在一些實(shí)施例中,在框310中,受管網(wǎng)絡(luò)設(shè)備102或計(jì)算節(jié)點(diǎn)104可以使用針對(duì)16位dlid的硬編碼多播掩碼。多播掩碼可以是與infinibandtm多播尋址兼容的。例如,多播掩碼可以具有設(shè)定高兩位,并且可以由十六進(jìn)制值0xc000表示。
在框312中,受管網(wǎng)絡(luò)設(shè)備102或計(jì)算節(jié)點(diǎn)104編制集中掩碼。集中掩碼是與dlid具有相同寬度(例如,32、24、20或16位寬)的二進(jìn)制值。集中掩碼可以存儲(chǔ)在由受管網(wǎng)絡(luò)設(shè)備102或計(jì)算節(jié)點(diǎn)104維持的掩碼寄存器或其他存儲(chǔ)位置之中。集中掩碼中的一定數(shù)量的高位可以被設(shè)定,這建立了集中地址空間。集中地址空間位于多播地址空間的頂部。因此,集中地址空間可以包括至少與多播掩碼一樣多的設(shè)定高位。在一些實(shí)施例中,與多播掩碼相比,集中掩碼可以包括一個(gè)附加設(shè)定位。例如,如果多播掩碼針對(duì)32位、24位以及20位多播掩碼包括四個(gè)設(shè)定高位,集中掩碼可以對(duì)應(yīng)地由十六進(jìn)制值0xf8000000、0xf80000以及0xf8000表示。對(duì)于由0xc000表示的16位多播掩碼,集中掩碼可以由十六進(jìn)制值oxe000表示。集中掩碼可以在接收分組時(shí)編制,或者在一些實(shí)施例中,可以在接收分組之前編制。如果提前編制,受管網(wǎng)絡(luò)設(shè)備102可以針對(duì)每個(gè)lid寬度(例如,16、20、24或32位)維持一個(gè)預(yù)編制集中掩碼。
在一些實(shí)施例中,在框314中,受管網(wǎng)絡(luò)設(shè)備102或計(jì)算節(jié)點(diǎn)104可以基于集中配置寄存器的內(nèi)容來(lái)設(shè)定集中掩碼中的可配置數(shù)量(例如,在一些實(shí)施例中,多達(dá)八個(gè)附加位)的附加高位。集中配置寄存器可以具體化為三位寄存器,并且可以適用于整個(gè)受管網(wǎng)絡(luò)設(shè)備102或計(jì)算節(jié)點(diǎn)104或適用于特定端口120。因此,在包括三位集中配置寄存器的實(shí)施例中,集中地址空間可以被配置成是在多播地址空間的1/1(無(wú)附加設(shè)定位)與1/128(七個(gè)附加設(shè)定位)之間。應(yīng)當(dāng)注意,受管網(wǎng)絡(luò)設(shè)備102或計(jì)算節(jié)點(diǎn)104可以針對(duì)任意寬度(例如32、24、20或16位)的dlid在集中掩碼中使用可配置數(shù)量的附加位。
在一些實(shí)施例中,在框316中,受管網(wǎng)絡(luò)設(shè)備102或計(jì)算節(jié)點(diǎn)104可以將dlid標(biāo)識(shí)為預(yù)定義的許可lid。許可lid可以用來(lái)指示用于某些子網(wǎng)管理分組的直接路由選擇。許可lid地址可以具體化為地址空間中的高位地址(例如,針對(duì)32位、24位、20位或16位地址空間,對(duì)應(yīng)地是0xffffffff、0xffffff、0xfffff或0xffff)。
在框318中,受管網(wǎng)絡(luò)設(shè)備102或計(jì)算節(jié)點(diǎn)104對(duì)dlid應(yīng)用集中掩碼。受管網(wǎng)絡(luò)設(shè)備102可以執(zhí)行任何計(jì)算、運(yùn)算或算法來(lái)判定dlid是否包括在由集中掩碼限定的集合地址空間之中。例如,受管網(wǎng)絡(luò)設(shè)備102或計(jì)算節(jié)點(diǎn)104可以用集中掩碼來(lái)掩蔽dlid的高八位(例如,使用逐位and運(yùn)算),并且隨后判定結(jié)果是否與集中掩碼精確匹配(例如,使用逐位xor運(yùn)算)。作為例證,為了判定dlid是否包括在集中地址空間中,受管網(wǎng)絡(luò)設(shè)備102或計(jì)算節(jié)點(diǎn)104可以評(píng)估以下在方程1中所描述的等式表達(dá)式。
(dlid&掩碼)λ掩碼==0(1)
在框320中,受管網(wǎng)絡(luò)設(shè)備102或計(jì)算節(jié)點(diǎn)104判定dlid是否在集中地址空間內(nèi)。如果不在,方法300前進(jìn)到框324,如下文所描述。如果dlid在集中地址空間內(nèi),方法300分支到框322,在該框中,受管網(wǎng)絡(luò)設(shè)備102或計(jì)算節(jié)點(diǎn)104加速集中操作。受管網(wǎng)絡(luò)設(shè)備102或計(jì)算節(jié)點(diǎn)104可以例如執(zhí)行加速的廣播、分散、集中、歸約或同步操作。在執(zhí)行加速的集中操作之后,方法300循環(huán)回到框302以繼續(xù)處理數(shù)據(jù)分組。
回顧框320,如果dlid不在集中地址空間內(nèi),方法300前進(jìn)到框324,在該框中,受管網(wǎng)絡(luò)設(shè)備102或計(jì)算節(jié)點(diǎn)104對(duì)dlid應(yīng)用多播掩碼。受管網(wǎng)絡(luò)設(shè)備102或計(jì)算節(jié)點(diǎn)104可以執(zhí)行任何計(jì)算、運(yùn)算或算法來(lái)判定dlid是否包括在由多播掩碼限定的多播地址空間之中。例如,受管網(wǎng)絡(luò)設(shè)備102或計(jì)算節(jié)點(diǎn)104可以用多播掩碼來(lái)掩蔽dlid的高八位(例如,使用逐位and運(yùn)算),并且隨后判定結(jié)果是否與多播掩碼精確匹配(例如,使用逐位xor運(yùn)算)。作為例證,受管網(wǎng)絡(luò)設(shè)備102或計(jì)算節(jié)點(diǎn)104可以評(píng)估以上在方程1中所描述的等式表達(dá)式。
在框326中,受管網(wǎng)絡(luò)設(shè)備102或計(jì)算節(jié)點(diǎn)104判定dlid是否在多播地址空間內(nèi)。如果不在,方法300前進(jìn)到框332,如下文所描述。如果dlid在多播地址空間內(nèi),方法300分支到框328,在該框中,受管網(wǎng)絡(luò)設(shè)備102或計(jì)算節(jié)點(diǎn)104使用多播掩碼來(lái)確定dlid在多播轉(zhuǎn)發(fā)表中的偏移量。受管網(wǎng)絡(luò)設(shè)備102或計(jì)算節(jié)點(diǎn)104可以例如通過(guò)執(zhí)行多播掩碼和dlid的逐位xor運(yùn)算來(lái)確定偏移量。作為例證,受管網(wǎng)絡(luò)設(shè)備102或計(jì)算節(jié)點(diǎn)104可以評(píng)估以下在方程2中所描述的表達(dá)式。
dlidλ掩碼(2)
在框330中,受管網(wǎng)絡(luò)設(shè)備102將數(shù)據(jù)分組轉(zhuǎn)發(fā)到由dlid標(biāo)識(shí)的多播組。例如,受管網(wǎng)絡(luò)設(shè)備102可以使用如以上所描述在塊328中確定的偏移量來(lái)在多播轉(zhuǎn)發(fā)表中查找多播組條目。多播組條目可以標(biāo)識(shí)多播組中所包括的受管網(wǎng)絡(luò)設(shè)備102的兩個(gè)或更多個(gè)端口120。例如,多播組條目可以具體化為標(biāo)識(shí)端口120的位圖或其他數(shù)據(jù)。受管網(wǎng)絡(luò)設(shè)備102隨后可以將數(shù)據(jù)分組復(fù)制到每個(gè)輸出端口120(除了在其上接收數(shù)據(jù)分組的端口120之外)。如果多播偏移量超過(guò)受管網(wǎng)絡(luò)設(shè)備102上的多播資源的數(shù)量,可以使用集中資源執(zhí)行多播,在這種情況下,該值(偏移量—受管網(wǎng)絡(luò)設(shè)備102中的多播條目的數(shù)量)變成集中資源的偏移量,并且給定集中資源以降級(jí)模式被用來(lái)執(zhí)行簡(jiǎn)單的多播。在轉(zhuǎn)發(fā)多播分組之后,方法300循環(huán)回到框302以繼續(xù)處理數(shù)據(jù)分組。
回顧框326,如果dlid不在多播地址空間內(nèi),方法300前進(jìn)到框332,在該框中,受管網(wǎng)絡(luò)設(shè)備102將數(shù)據(jù)分組轉(zhuǎn)發(fā)到單播dlid。具體地,受管網(wǎng)絡(luò)設(shè)備102可以選擇輸出端口120并將數(shù)據(jù)分組轉(zhuǎn)發(fā)到那個(gè)端口120。在一些實(shí)施例中,在框334中,受管網(wǎng)絡(luò)設(shè)備102可以使用平面線性地址空間來(lái)標(biāo)識(shí)目的地端口120。例如,受管網(wǎng)絡(luò)設(shè)備102可以維持將dlid映射到目的地端口120的一個(gè)或多個(gè)轉(zhuǎn)發(fā)表。在一些實(shí)施例中,在框336中,受管網(wǎng)絡(luò)設(shè)備102可以使用層級(jí)地址空間來(lái)標(biāo)識(shí)目的地端口120。在層級(jí)地址空間中,dlid可以被再分為不同的字段(例如,組id、交換機(jī)id、端口號(hào)等)。在一些實(shí)施例中,在框338中,受管網(wǎng)絡(luò)設(shè)備102可以標(biāo)識(shí)一個(gè)或多個(gè)在架構(gòu)上限定的dlid并且相應(yīng)地處理數(shù)據(jù)分組。例如,在一些實(shí)施例中,預(yù)定義的地址可以用于尚未被分配地址的未初始化的端點(diǎn)端口,或者用于表示無(wú)效或未定義的地址。例如,未初始化的地址可以具體化為零地址(例如,針對(duì)32位、24位、20位或16位地址空間,對(duì)應(yīng)地是0x00000000、0x000000、0x00000或0x0000)。在轉(zhuǎn)發(fā)單播數(shù)據(jù)分組之后,方法300循環(huán)回到框302以繼續(xù)處理數(shù)據(jù)分組。
雖然圖3的方法300被展示為按順序地執(zhí)行,但是應(yīng)當(dāng)理解,在一些實(shí)施例中,受管網(wǎng)絡(luò)設(shè)備102或計(jì)算節(jié)點(diǎn)104可以并行地、同時(shí)地或以任何其他順序執(zhí)行方法300的操作。例如,在一些實(shí)施例中,可以由受管網(wǎng)絡(luò)設(shè)備102或計(jì)算節(jié)點(diǎn)104的硬件資源并行地執(zhí)行操作。
現(xiàn)在參考圖4,在使用中,計(jì)算節(jié)點(diǎn)104可以執(zhí)行用于將多播本地標(biāo)識(shí)符(lid)在不同的位寬度之間進(jìn)行轉(zhuǎn)換的方法400。計(jì)算節(jié)點(diǎn)104可以例如在寫出數(shù)據(jù)分組報(bào)頭時(shí)轉(zhuǎn)換lid。方法400開始于框402,在該框中,計(jì)算節(jié)點(diǎn)104確定多播lid。多播dlid可以具體化為具有可配置長(zhǎng)度(例如,32、24、20或16位寬、或任何其他適當(dāng)寬度)的二進(jìn)制值。例如,在一些實(shí)施例中,在計(jì)算節(jié)點(diǎn)104上執(zhí)行的軟件實(shí)體可以使用32位lid。
在框404中,計(jì)算節(jié)點(diǎn)104編制與多播lid具有相同寬度(例如,32、24、20或16位)的多播掩碼。多播掩碼中的一定數(shù)量的高位可以被設(shè)定,這建立了多播地址空間。例如,在一些實(shí)施例中,針對(duì)32、24或20位多播掩碼,可以設(shè)定該多播掩碼的高四位。在這些實(shí)施例中,多播掩碼因此可以對(duì)應(yīng)地由十六進(jìn)制值0xf0000000、0xf00000以及0xf0000表示。針對(duì)16位多播掩碼,可以設(shè)定該多播掩碼的高兩位。在這些實(shí)施例中,多播掩碼可以由十六進(jìn)制值0xc000表示。在一些實(shí)施例中,可以設(shè)定多播掩碼的可配置數(shù)量的高位。例如,在一些實(shí)施例中,可以設(shè)定多播掩碼的在一個(gè)與七個(gè)之間的高位,這意味著在這些實(shí)施例中,多播地址空間可以被配置成是在總地址空間的1/2(一個(gè)設(shè)定位)與1/128(七個(gè)設(shè)定位)之間。
在框406中,計(jì)算節(jié)點(diǎn)104使用多播掩碼來(lái)確定多播lid的偏移量。計(jì)算節(jié)點(diǎn)104可以例如通過(guò)執(zhí)行多播掩碼和lid的逐位xor運(yùn)算來(lái)確定偏移量。作為例證,計(jì)算節(jié)點(diǎn)104可以評(píng)估以上在方程2中所描述的表達(dá)式。
在框408中,計(jì)算節(jié)點(diǎn)104針對(duì)新的位寬度編制新的多播掩碼。例如,當(dāng)從由軟件使用的32位lid轉(zhuǎn)換到由結(jié)構(gòu)鏈路106使用的24位、20位或16位lid時(shí),計(jì)算節(jié)點(diǎn)104可以對(duì)應(yīng)地生成24位、20位或16位寬的多播掩碼。新的多播掩碼可以與以上結(jié)合框404所描述的原始多播掩碼具有相同數(shù)量的設(shè)定高位。例如,當(dāng)從32位lid轉(zhuǎn)換到20位lid時(shí),原始多播掩碼可以具體化為0xf0000000,并且新的多播掩碼可以具體化為0xf0000。
在框410中,計(jì)算節(jié)點(diǎn)104將新的位寬度的新的多播掩碼與lid偏移量組合起來(lái)以確定轉(zhuǎn)換的多播lid。例如,計(jì)算節(jié)點(diǎn)104可以執(zhí)行逐位or運(yùn)算以組合新的掩碼和偏移量。作為例證,計(jì)算節(jié)點(diǎn)104可以評(píng)估以下在方程3中所描述的表達(dá)式。在確定轉(zhuǎn)換的多播lid之后,方法400循環(huán)回到框402以繼續(xù)轉(zhuǎn)換多播lid。
新掩碼|偏移量(3)
示例
以下提供了在本文中所公開的技術(shù)的說(shuō)明性示例。所述技術(shù)的實(shí)施例可以包括以下所描述的示例中的任何一個(gè)或多個(gè)示例及其任何組合。
示例1包括一種用于數(shù)據(jù)分組轉(zhuǎn)發(fā)的網(wǎng)絡(luò)設(shè)備,所述網(wǎng)絡(luò)設(shè)備包括:分組入口模塊,用于從數(shù)據(jù)分組中提取目的地本地標(biāo)識(shí)符(dlid),其中,所述dlid包括具有第一長(zhǎng)度的二進(jìn)制值;以及多播處理模塊,用于編制多播掩碼,其中,所述多播掩碼包括具有所述第一長(zhǎng)度的二進(jìn)制值,并且其中,所述多播掩碼指示所述dlid的地址空間的高位部分;使用所述多播掩碼來(lái)判定所述dlid是否包括在所述地址空間的所述高位部分之中;響應(yīng)于確定所述dlid包括在所述地址空間的所述高位部分之中,根據(jù)所述dlid確定多播組;并且響應(yīng)于所述確定所述dlid包括在所述地址空間的所述高位部分之中,將所述數(shù)據(jù)分組轉(zhuǎn)發(fā)到所述多播組。
示例2包括如示例1所述的主題,并且其中,所述第一長(zhǎng)度包括20位、24位或32位。
示例3包括如示例1和2中任一項(xiàng)所述的主題,并且其中,編制所述多播掩碼包括確定所述多播掩碼的待設(shè)定的最高位的數(shù)量。
示例4包括如示例1-3中任一項(xiàng)所述的主題,并且其中,確定所述多播掩碼的待設(shè)定的所述最高位的數(shù)量包括基于所述網(wǎng)絡(luò)設(shè)備的多播掩碼配置寄存器來(lái)確定所述最高位的數(shù)量。
示例5包括如示例1-4中任一項(xiàng)所述的主題,并且其中,編制所述多播掩碼包括編制具有四個(gè)設(shè)定最高位的掩碼。
示例6包括如示例1-5中任一項(xiàng)所述的主題,并且其中,使用所述多播掩碼來(lái)判定所述dlid是否包括在所述地址空間的所述高位部分之中包括使用所述多播掩碼來(lái)掩蔽所述dlid以產(chǎn)生中間值;并且判定所述多播掩碼是否與所述中間值精確匹配。
示例7包括如示例1-6中任一項(xiàng)所述的主題,并且其中,使用所述多播掩碼來(lái)掩蔽所述dlid包括對(duì)所述多播掩碼和所述dlid執(zhí)行逐位and運(yùn)算以產(chǎn)生所述中間值;并且判定所述多播掩碼是否與所述中間值精確匹配包括對(duì)所述多播掩碼和所述中間值執(zhí)行逐位xor運(yùn)算。
示例8包括如示例1-7中任一項(xiàng)所述的主題,并且其中,根據(jù)所述dlid確定所述多播組包括對(duì)所述多播掩碼和所述dlid執(zhí)行逐位xor運(yùn)算以產(chǎn)生多播組索引;并且使用所述多播組索引對(duì)多播組轉(zhuǎn)發(fā)表進(jìn)行索引。
示例9包括如示例1-8中任一項(xiàng)所述的主題,并且進(jìn)一步包括集中處理模塊,所述集中處理模塊用于編制集中掩碼,其中,所述集中掩碼包括具有所述第一長(zhǎng)度的二進(jìn)制值,并且其中,所述集中掩碼指示所述dlid的所述地址空間的所述高位部分的第二高位部分;使用所述集中掩碼來(lái)判定所述dlid是否包括在所述地址空間的所述第二高位部分之中;并且響應(yīng)于確定所述dlid包括在所述地址空間的所述第二高位部分之中,執(zhí)行集中加速操作。
示例10包括如示例1-9中任一項(xiàng)所述的主題,并且其中,編制所述多播掩碼包括確定所述多播掩碼的待設(shè)定的最高位的第一數(shù)量;并且編制所述集中掩碼包括(i)設(shè)定所述集中掩碼的所述第一數(shù)量的最高位并且(ii)確定所述集中掩碼的待設(shè)定的最高位的附加數(shù)量。
示例11包括如示例1-10中任一項(xiàng)所述的主題,并且其中,確定所述集中掩碼的待設(shè)定的所述最高位的另外數(shù)量包括基于所述網(wǎng)絡(luò)設(shè)備的集中掩碼配置寄存器來(lái)確定所述最高位的另外數(shù)量。
示例12包括如示例1-11中任一項(xiàng)所述的主題,并且其中,編制所述多播掩碼包括編制具有四個(gè)設(shè)定最高位的掩碼;并且編制所述集中掩碼包括編制具有五個(gè)設(shè)定最高位的掩碼。
示例13包括如示例1-12中任一項(xiàng)所述的主題,并且其中,所述集中處理模塊進(jìn)一步用于判定是否超過(guò)所述網(wǎng)絡(luò)設(shè)備的多播資源限值;并且響應(yīng)于確定超過(guò)所述網(wǎng)絡(luò)設(shè)備的所述多播資源限值,以降級(jí)模式使用集中資源作為多播資源。
示例14包括如示例1-13中任一項(xiàng)所述的主題,并且其中,使用所述集中掩碼來(lái)判定所述dlid是否包括在所述地址空間的所述第二高位部分之中包括使用所述集中掩碼來(lái)掩蔽所述dlid以產(chǎn)生中間值;并且判定所述集中掩碼是否與所述中間值精確匹配。
示例15包括如示例1-14中任一項(xiàng)所述的主題,并且其中,使用所述集中掩碼來(lái)掩蔽所述dlid包括對(duì)所述集中掩碼和所述dlid執(zhí)行逐位and運(yùn)算以產(chǎn)生所述中間值;并且判定所述集中掩碼是否與所述中間值精確匹配包括對(duì)所述集中掩碼和所述中間值執(zhí)行逐位xor運(yùn)算。
示例16包括如示例1-15中任一項(xiàng)所述的主題,并且其中,所述第一長(zhǎng)度包括16位、20位、24位或32位,并且其中,如果所述第一長(zhǎng)度是16位則編制所述多播掩碼包括編制具有兩個(gè)設(shè)定最高位的掩碼;并且如果所述第一長(zhǎng)度大于16位則編制所述多播掩碼包括基于所述網(wǎng)絡(luò)設(shè)備的多播掩碼配置寄存器來(lái)確定所述多播掩碼的待設(shè)定的最高位的數(shù)量。
示例17包括如示例1-16中任一項(xiàng)所述的主題,并且其中,所述第一長(zhǎng)度包括16位、20位、24位或32位,并且其中,如果所述第一長(zhǎng)度是16位則編制所述多播掩碼包括編制具有兩個(gè)設(shè)定最高位的掩碼;并且如果所述第一長(zhǎng)度大于16位則編制所述多播掩碼包括編制具有四個(gè)設(shè)定最高位的掩碼。
示例18包括如示例1-17中任一項(xiàng)所述的主題,并且進(jìn)一步包括單播處理模塊,所述單播處理模塊用于響應(yīng)于確定所述dlid未包括在所述地址空間的所述高位部分之中而將所述數(shù)據(jù)分組轉(zhuǎn)發(fā)到單播地址。
示例19包括一種用于轉(zhuǎn)換多播地址的計(jì)算設(shè)備,所述計(jì)算設(shè)備包括地址轉(zhuǎn)換模塊,所述地址轉(zhuǎn)換模塊用于確定多播本地標(biāo)識(shí)符(lid),其中,所述lid包括具有第一長(zhǎng)度的二進(jìn)制值;編制多播掩碼,其中,所述多播掩碼包括具有所述第一長(zhǎng)度的二進(jìn)制值,并且其中,所述多播掩碼指示所述lid的地址空間的高位部分;使用所述多播掩碼來(lái)確定所述lid的偏移量;編制第二多播掩碼,其中,所述第二多播掩碼包括具有第二長(zhǎng)度的二進(jìn)制值;并且將所述第二多播掩碼與所述lid的所述偏移量組合起來(lái)以產(chǎn)生第二lid,其中,所述第二lid包括具有所述第二長(zhǎng)度的二進(jìn)制值,并且其中,所述第二多播掩碼指示所述第二lid的地址空間的高位部分。
示例20包括如示例19所述的主題,并且其中,所述第一長(zhǎng)度包括16位、20位、24位或32位;所述第二長(zhǎng)度包括16位、20位、24位或32位;并且所述第一長(zhǎng)度不等于所述第二長(zhǎng)度。
示例21包括如示例19和20中任一項(xiàng)所述的主題,并且其中,所述第一長(zhǎng)度包括32位。并且所述第二長(zhǎng)度包括16位、20位或24位。
示例22包括如示例19-21中任一項(xiàng)所述的主題,并且其中,編制所述多播掩碼包括設(shè)定所述多播掩碼的第一數(shù)量的最高位;并且編制所述第二多播掩碼包括設(shè)定所述第二多播掩碼的所述第一數(shù)量的最高位。
示例23包括如示例19-22中任一項(xiàng)所述的主題,并且其中,使用所述多播掩碼來(lái)確定所述lid的所述偏移量包括對(duì)所述lid和所述多播掩碼執(zhí)行逐位xor運(yùn)算以產(chǎn)生所述lid的所述偏移量。
示例24包括如示例19-23中任一項(xiàng)所述的主題,并且其中,將所述第二多播掩碼與所述lid的所述偏移量組合起來(lái)以產(chǎn)生所述第二lid包括對(duì)所述第二多播掩碼和所述lid的所述偏移量執(zhí)行逐位or運(yùn)算以產(chǎn)生所述第二lid。
示例25包括一種用于數(shù)據(jù)分組轉(zhuǎn)發(fā)的方法,所述方法包括:由網(wǎng)絡(luò)設(shè)備從數(shù)據(jù)分組中提取目的地本地標(biāo)識(shí)符(dlid),其中,所述dlid包括具有第一長(zhǎng)度的二進(jìn)制值;由所述網(wǎng)絡(luò)設(shè)備編制多播掩碼,其中,所述多播掩碼包括具有所述第一長(zhǎng)度的二進(jìn)制值,并且其中,所述多播掩碼指示所述dlid的地址空間的高位部分;由所述網(wǎng)絡(luò)設(shè)備使用所述多播掩碼來(lái)判定所述dlid是否包括在所述地址空間的所述高位部分之中;響應(yīng)于確定所述dlid包括在所述地址空間的所述高位部分之中,由所述網(wǎng)絡(luò)設(shè)備根據(jù)所述dlid確定多播組;并且響應(yīng)于確定所述dlid包括在所述地址空間的所述高位部分之中,由所述網(wǎng)絡(luò)設(shè)備將所述數(shù)據(jù)分組轉(zhuǎn)發(fā)到所述多播組。
示例26包括如示例25所述的主題,并且其中,所述第一長(zhǎng)度包括20位、24位或32位。
示例27包括如示例25和26中任一項(xiàng)所述的主題,并且其中,編制所述多播掩碼包括確定所述多播掩碼的待設(shè)定的最高位的數(shù)量。
示例28包括如示例25-27中任一項(xiàng)所述的主題,并且其中,確定所述多播掩碼的待設(shè)定的所述最高位的數(shù)量包括基于所述網(wǎng)絡(luò)設(shè)備的多播掩碼配置寄存器來(lái)確定所述最高位的數(shù)量。
示例29包括如示例25-28中任一項(xiàng)所述的主題,并且其中,編制所述多播掩碼包括編制具有四個(gè)設(shè)定最高位的掩碼。
示例30包括如示例25-29中任一項(xiàng)所述的主題,并且其中,使用所述多播掩碼來(lái)判定所述dlid是否包括在所述地址空間的所述高位部分之中包括使用所述多播掩碼來(lái)掩蔽所述dlid以產(chǎn)生中間值;并且判定所述多播掩碼是否與所述中間值精確匹配。
示例31包括如示例25-30中任一項(xiàng)所述的主題,并且其中,使用所述多播掩碼來(lái)掩蔽所述dlid包括對(duì)所述多播掩碼和所述dlid執(zhí)行逐位and運(yùn)算以產(chǎn)生所述中間值;并且判定所述多播掩碼是否與所述中間值精確匹配包括對(duì)所述多播掩碼和所述中間值執(zhí)行逐位xor運(yùn)算。
示例32包括如示例25-31中任一項(xiàng)所述的主題,并且其中,根據(jù)所述dlid確定所述多播組包括對(duì)所述多播掩碼和所述dlid執(zhí)行逐位xor運(yùn)算以產(chǎn)生多播組索引;并且使用所述多播組索引對(duì)多播組轉(zhuǎn)發(fā)表進(jìn)行索引。
示例33包括如示例25-32中任一項(xiàng)所述的主題,并且進(jìn)一步包括:由所述網(wǎng)絡(luò)設(shè)備編制集中掩碼,其中,所述集中掩碼包括具有所述第一長(zhǎng)度的二進(jìn)制值,并且其中,所述集中掩碼指示所述dlid的所述地址空間的所述高位部分的第二高位部分;由所述網(wǎng)絡(luò)設(shè)備使用所述集中掩碼來(lái)判定所述dlid是否包括在所述地址空間的所述第二高位部分之中;并且響應(yīng)于確定所述dlid包括在所述地址空間的所述第二高位部分之中,由所述網(wǎng)絡(luò)設(shè)備執(zhí)行集中加速操作。
示例34包括如示例25-33中任一項(xiàng)所述的主題,并且其中,編制所述多播掩碼包括確定所述多播掩碼的待設(shè)定的最高位的第一數(shù)量;并且編制所述集中掩碼包括(i)設(shè)定所述集中掩碼的所述第一數(shù)量的最高位并且(ii)確定所述集中掩碼的待設(shè)定的最高位的附加數(shù)量。
示例35包括如示例25-34中任一項(xiàng)所述的主題,并且其中,確定所述集中掩碼的待設(shè)定的所述最高位的另外數(shù)量包括基于所述網(wǎng)絡(luò)設(shè)備的集中掩碼配置寄存器來(lái)確定所述最高位的另外數(shù)量。
示例36包括如示例25-35中任一項(xiàng)所述的主題,并且其中,編制所述多播掩碼包括編制具有四個(gè)設(shè)定最高位的掩碼;并且編制所述集中掩碼包括編制具有五個(gè)設(shè)定最高位的掩碼。
示例37包括如示例25-36中任一項(xiàng)所述的主題,并且進(jìn)一步包括:由所述網(wǎng)絡(luò)設(shè)備判定是否超過(guò)所述網(wǎng)絡(luò)設(shè)備的多播資源限值;以及響應(yīng)于確定超過(guò)所述網(wǎng)絡(luò)設(shè)備的所述多播資源限值而由所述網(wǎng)絡(luò)設(shè)備以降級(jí)模式使用集中資源作為多播資源。
示例38包括如示例25-37中任一項(xiàng)所述的主題,并且其中,使用所述集中掩碼來(lái)判定所述dlid是否包括在所述地址空間的所述第二高位部分之中包括使用所述集中掩碼來(lái)掩蔽所述dlid以產(chǎn)生中間值;并且判定所述集中掩碼是否與所述中間值精確匹配。
示例39包括如示例25-38中任一項(xiàng)所述的主題,并且其中,使用所述集中掩碼來(lái)掩蔽所述dlid包括對(duì)所述集中掩碼和所述dlid執(zhí)行逐位and運(yùn)算以產(chǎn)生所述中間值;并且判定所述集中掩碼是否與所述中間值精確匹配包括對(duì)所述集中掩碼和所述中間值執(zhí)行逐位xor運(yùn)算。
示例40包括如示例25-39中任一項(xiàng)所述的主題,并且其中,所述第一長(zhǎng)度包括16位、20位、24位或32位,并且其中,如果所述第一長(zhǎng)度是16位,則編制所述多播掩碼包括編制具有兩個(gè)設(shè)定最高位的掩碼;并且如果所述第一長(zhǎng)度大于16位,則編制所述多播掩碼包括基于所述網(wǎng)絡(luò)設(shè)備的多播掩碼配置寄存器來(lái)確定所述多播掩碼的待設(shè)定的最高位的數(shù)量。
示例41包括如示例25-40中任一項(xiàng)所述的主題,并且其中,所述第一長(zhǎng)度包括16位、20位、24位或32位,并且其中,如果所述第一長(zhǎng)度是16位,則編制所述多播掩碼包括編制具有兩個(gè)設(shè)定最高位的掩碼;并且如果所述第一長(zhǎng)度大于16位,則編制所述多播掩碼包括編制具有四個(gè)設(shè)定最高位的掩碼。
示例42包括如示例25-41中任一項(xiàng)所述的主題,并且進(jìn)一步包括:響應(yīng)于確定所述dlid未包括在所述地址空間的所述高位部分之中,由所述網(wǎng)絡(luò)設(shè)備將所述數(shù)據(jù)分組轉(zhuǎn)發(fā)到單播地址。
示例43包括一種用于轉(zhuǎn)換多播地址的方法,所述方法包括:由計(jì)算設(shè)備確定多播本地標(biāo)識(shí)符(lid),其中,所述lid包括具有第一長(zhǎng)度的二進(jìn)制值;由所述計(jì)算設(shè)備編制多播掩碼,其中,所述多播掩碼包括具有所述第一長(zhǎng)度的二進(jìn)制值,并且其中,所述多播掩碼指示所述lid的地址空間的高位部分;由所述計(jì)算設(shè)備使用所述多播掩碼來(lái)確定所述lid的偏移量;由所述計(jì)算設(shè)備編制第二多播掩碼,其中,所述第二多播掩碼包括具有第二長(zhǎng)度的二進(jìn)制值;并且由所述計(jì)算設(shè)備將所述第二多播掩碼與所述lid的所述偏移量組合起來(lái)以產(chǎn)生第二lid,其中,所述第二lid包括具有所述第二長(zhǎng)度的二進(jìn)制值,并且其中,所述第二多播掩碼指示所述第二lid的地址空間的高位部分。
示例44包括如示例43所述的主題,并且其中,所述第一長(zhǎng)度包括16位、20位、24位或32位;所述第二長(zhǎng)度包括16位、20位、24位或32位;并且所述第一長(zhǎng)度不等于所述第二長(zhǎng)度。
示例45包括如示例43和44中任一項(xiàng)所述的主題,并且其中,所述第一長(zhǎng)度包括32位。并且所述第二長(zhǎng)度包括16位、20位或24位。
示例46包括如示例43-45中任一項(xiàng)所述的主題,并且其中,編制所述多播掩碼包括設(shè)定所述多播掩碼的第一數(shù)量的最高位;并且編制所述第二多播掩碼包括設(shè)定所述第二多播掩碼的所述第一數(shù)量的最高位。
示例47包括如示例43-46中任一項(xiàng)所述的主題,并且其中,使用所述多播掩碼來(lái)確定所述lid的所述偏移量包括對(duì)所述lid和所述多播掩碼執(zhí)行逐位xor運(yùn)算以產(chǎn)生所述lid的所述偏移量。
示例48包括如示例43-47中任一項(xiàng)所述的主題,并且其中,將所述第二多播掩碼與所述lid的所述偏移量組合起來(lái)以產(chǎn)生所述第二lid包括對(duì)所述第二多播掩碼和所述lid的所述偏移量執(zhí)行逐位or運(yùn)算以產(chǎn)生所述第二lid。
示例49包括一種計(jì)算設(shè)備,包括:處理器;以及存儲(chǔ)器,具有存儲(chǔ)于其中的多條指令,所述指令當(dāng)由所述處理器執(zhí)行時(shí)使所述計(jì)算設(shè)備執(zhí)行示例25-48中任一項(xiàng)所述的方法。
示例50包括一種或多種機(jī)器可讀存儲(chǔ)介質(zhì),包括存儲(chǔ)于其上的多條指令,所述指令響應(yīng)于被執(zhí)行而使計(jì)算設(shè)備執(zhí)行示例25-48中任一項(xiàng)所述的方法。
示例51包括一種計(jì)算設(shè)備,包括用于執(zhí)行示例25-48中任一項(xiàng)所述的方法的裝置。
示例52包括一種用于數(shù)據(jù)分組轉(zhuǎn)發(fā)的網(wǎng)絡(luò)設(shè)備,所述網(wǎng)絡(luò)設(shè)備包括:用于從數(shù)據(jù)分組中提取目的地本地標(biāo)識(shí)符(dlid)的裝置,其中,所述dlid包括具有第一長(zhǎng)度的二進(jìn)制值;用于編制多播掩碼的裝置,其中,所述多播掩碼包括具有所述第一長(zhǎng)度的二進(jìn)制值,并且其中,所述多播掩碼指示所述dlid的地址空間的高位部分;用于使用所述多播掩碼來(lái)判定所述dlid是否包括在所述地址空間的所述高位部分之中的裝置;用于響應(yīng)于確定所述dlid包括在所述地址空間的所述高位部分之中而根據(jù)所述dlid確定多播組的裝置;以及用于響應(yīng)于確定所述dlid包括在所述地址空間的所述高位部分之中而將所述數(shù)據(jù)分組轉(zhuǎn)發(fā)到所述多播組的裝置。
示例53包括如示例52所述的主題,并且其中,所述第一長(zhǎng)度包括20位、24位或32位。
示例54包括如示例52和53中任一項(xiàng)所述的主題,并且其中,所述用于編制所述多播掩碼的裝置包括用于確定所述多播掩碼的待設(shè)定的最高位的數(shù)量的裝置。
示例55包括如示例52-54中任一項(xiàng)所述的主題,并且其中,所述用于確定所述多播掩碼的待設(shè)定的所述最高位的數(shù)量的裝置包括用于基于所述網(wǎng)絡(luò)設(shè)備的多播掩碼配置寄存器來(lái)確定所述最高位的數(shù)量的裝置。
示例56包括如示例52-55中任一項(xiàng)所述的主題,并且其中,所述用于編制所述多播掩碼的裝置包括用于編制具有四個(gè)設(shè)定最高位的掩碼的裝置。
示例57包括如示例52-56中任一項(xiàng)所述的主題,并且其中,所述用于使用所述多播掩碼來(lái)判定所述dlid是否包括在所述地址空間的所述高位部分之中的裝置包括:用于使用所述多播掩碼來(lái)掩蔽所述dlid以產(chǎn)生中間值的裝置;以及用于判定所述多播掩碼是否與所述中間值精確匹配的裝置。
示例58包括如示例52-57中任一項(xiàng)所述的主題,并且其中,所述用于使用所述多播掩碼來(lái)掩蔽所述dlid的裝置包括用于對(duì)所述多播掩碼和所述dlid執(zhí)行逐位and運(yùn)算以產(chǎn)生所述中間值的裝置;并且所述用于判定所述多播掩碼是否與所述中間值精確匹配的裝置包括用于對(duì)所述多播掩碼和所述中間值執(zhí)行逐位xor運(yùn)算的裝置。
示例59包括如示例52-58中任一項(xiàng)所述的主題,并且其中,所述用于根據(jù)所述dlid確定所述多播組的裝置包括:用于對(duì)所述多播掩碼和所述dlid執(zhí)行逐位xor運(yùn)算以產(chǎn)生多播組索引的裝置;以及用于使用所述多播組索引對(duì)多播組轉(zhuǎn)發(fā)表進(jìn)行索引的裝置。
示例60包括如示例52-59中任一項(xiàng)所述的主題,并且進(jìn)一步包括用于編制集中掩碼的裝置,其中,所述集中掩碼包括具有所述第一長(zhǎng)度的二進(jìn)制值,并且其中,所述集中掩碼指示所述dlid的所述地址空間的所述高位部分的第二高位部分;用于使用所述集中掩碼來(lái)判定所述dlid是否包括在所述地址空間的所述第二高位部分之中的裝置;以及用于響應(yīng)于確定所述dlid包括在所述地址空間的所述第二高位部分之中而執(zhí)行集中加速操作的裝置。
示例61包括如示例52-60中任一項(xiàng)所述的主題,并且其中,所述用于編制所述多播掩碼的裝置包括用于確定所述多播掩碼的待設(shè)定的最高位的第一數(shù)量的裝置;并且所述用于編制所述集中掩碼的裝置包括(i)用于設(shè)定所述集中掩碼的所述第一數(shù)量的最高位的裝置以及(ii)用于確定所述集中掩碼的待設(shè)定的最高位的附加數(shù)量的裝置。
示例62包括如示例52-61中任一項(xiàng)所述的主題,并且其中,所述用于確定所述集中掩碼的待設(shè)定的所述最高位的另外數(shù)量的裝置包括用于基于所述網(wǎng)絡(luò)設(shè)備的集中掩碼配置寄存器來(lái)確定所述最高位的另外數(shù)量的裝置。
示例63包括如示例52-62中任一項(xiàng)所述的主題,并且其中,所述用于編制所述多播掩碼的裝置包括用于編制具有四個(gè)設(shè)定最高位的掩碼的裝置;并且所述用于編制所述集中掩碼的裝置包括用于編制具有五個(gè)設(shè)定最高位的掩碼的裝置。
示例64包括如示例52-63中任一項(xiàng)所述的主題,并且進(jìn)一步包括用于判定是否超過(guò)所述網(wǎng)絡(luò)設(shè)備的多播資源限值的裝置;以及用于響應(yīng)于確定超過(guò)所述網(wǎng)絡(luò)設(shè)備的所述多播資源限值而以降級(jí)模式使用集中資源作為多播資源的裝置。
示例65包括如示例52-64中任一項(xiàng)所述的主題,并且其中,所述用于使用所述集中掩碼來(lái)判定所述dlid是否包括在所述地址空間的所述第二高位部分之中的裝置包括用于使用所述集中掩碼來(lái)掩蔽所述dlid以產(chǎn)生中間值的裝置;以及用于判定所述集中掩碼是否與所述中間值精確匹配的裝置。
示例66包括如示例52-65中任一項(xiàng)所述的主題,并且其中,所述用于使用所述集中掩碼來(lái)掩蔽所述dlid的裝置包括用于對(duì)所述集中掩碼和所述dlid執(zhí)行逐位and運(yùn)算以產(chǎn)生所述中間值的裝置;并且所述用于判定所述集中掩碼是否與所述中間值精確匹配的裝置包括用于對(duì)所述集中掩碼和所述中間值執(zhí)行逐位xor運(yùn)算的裝置。
示例67包括如示例52-66中任一項(xiàng)所述的主題,并且其中,所述第一長(zhǎng)度包括16位、20位、24位或32位,并且其中,如果所述第一長(zhǎng)度是16位,則所述用于編制所述多播掩碼的裝置包括用于編制具有兩個(gè)設(shè)定最高位的掩碼的裝置;并且如果所述第一長(zhǎng)度大于16位,則所述用于編制所述多播掩碼的裝置包括用于基于所述網(wǎng)絡(luò)設(shè)備的多播掩碼配置寄存器來(lái)確定所述多播掩碼的待設(shè)定的最高位的數(shù)量的裝置。
示例68包括如示例52-67中任一項(xiàng)所述的主題,并且其中,所述第一長(zhǎng)度包括16位、20位、24位或32位,并且其中,如果所述第一長(zhǎng)度是16位,則所述用于編制所述多播掩碼的裝置包括用于編制具有兩個(gè)設(shè)定最高位的掩碼的裝置;并且如果所述第一長(zhǎng)度大于16位,則所述用于編制所述多播掩碼的裝置包括用于編制具有四個(gè)設(shè)定最高位的掩碼的裝置。
示例69包括如示例52-68中任一項(xiàng)所述的主題,并且進(jìn)一步包括用于響應(yīng)于確定所述dlid未包括在所述地址空間的所述高位部分之中而將所述數(shù)據(jù)分組轉(zhuǎn)發(fā)到單播地址的裝置。
示例70包括一種用于轉(zhuǎn)換多播地址的計(jì)算設(shè)備,所述計(jì)算設(shè)備包括:用于確定多播本地標(biāo)識(shí)符(lid)的裝置,其中,所述lid包括具有第一長(zhǎng)度的二進(jìn)制值;用于編制多播掩碼的裝置,其中,所述多播掩碼包括具有所述第一長(zhǎng)度的二進(jìn)制值,并且其中,所述多播掩碼指示所述lid的地址空間的高位部分;用于使用所述多播掩碼來(lái)確定所述lid的偏移量的裝置;用于編制第二多播掩碼的裝置,其中,所述第二多播掩碼包括具有第二長(zhǎng)度的二進(jìn)制值;以及用于將所述第二多播掩碼與所述lid的所述偏移量組合起來(lái)以產(chǎn)生第二lid的裝置,其中,所述第二lid包括具有所述第二長(zhǎng)度的二進(jìn)制值,并且其中,所述第二多播掩碼指示所述第二lid的地址空間的高位部分。
示例71包括如示例70所述的主題,并且其中,所述第一長(zhǎng)度包括16位、20位、24位或32位;所述第二長(zhǎng)度包括16位、20位、24位或32位;并且所述第一長(zhǎng)度不等于所述第二長(zhǎng)度。
示例72包括如示例70和71中任一項(xiàng)所述的主題,并且其中,所述第一長(zhǎng)度包括32位。并且所述第二長(zhǎng)度包括16位、20位或24位。
示例73包括如示例70-72中任一項(xiàng)所述的主題,并且其中,所述用于編制所述多播掩碼的裝置包括用于設(shè)定所述多播掩碼的第一數(shù)量的最高位的裝置;并且所述用于編制所述第二多播掩碼的裝置包括用于設(shè)定所述第二多播掩碼的所述第一數(shù)量的最高位的裝置。
示例74包括如示例70-73中任一項(xiàng)所述的主題,并且其中,所述用于使用所述多播掩碼來(lái)確定所述lid的所述偏移量的裝置包括用于對(duì)所述lid和所述多播掩碼執(zhí)行逐位xor運(yùn)算以產(chǎn)生所述lid的所述偏移量的裝置。
示例75包括如示例70-74中任一項(xiàng)所述的主題,并且其中,所述用于將所述第二多播掩碼與所述lid的所述偏移量組合起來(lái)以產(chǎn)生所述第二lid的裝置包括用于對(duì)所述第二多播掩碼和所述lid的所述偏移量執(zhí)行逐位or運(yùn)算以產(chǎn)生所述第二lid的裝置。