對(duì)網(wǎng)絡(luò)設(shè)備背景中的轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)進(jìn)行同步的制作方法
【專利摘要】對(duì)網(wǎng)絡(luò)設(shè)備中的轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)進(jìn)行同步。第一轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)可以保持在網(wǎng)絡(luò)設(shè)備的數(shù)據(jù)庫(kù)引擎部分中。轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)可以包括多個(gè)條目,這些條目中的每個(gè)條目包括同步字段。轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)還可以包括用于同步的全局同步值。網(wǎng)絡(luò)設(shè)備中的控制器可以接收用于指示對(duì)轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)中的第一組一個(gè)或多個(gè)條目的一個(gè)或多個(gè)改變的消息。第一組一個(gè)或多個(gè)條目在同步字段中具有第一全局同步值。相應(yīng)地,可以將全局同步值變?yōu)榈诙?,并且可以使用第一全局同步值來?zhí)行查詢以便返回第一條目的變化。在全局同步值被改變之后發(fā)生的、對(duì)轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)中的其它條目的改變可以不屬于查詢結(jié)果的一部分。
【專利說明】對(duì)網(wǎng)絡(luò)設(shè)備背景中的轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)進(jìn)行同步
【技術(shù)領(lǐng)域】
[0001]本發(fā)明通常涉及網(wǎng)絡(luò)系統(tǒng),并且更具體地說,涉及用于將轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)與控制器進(jìn)行同步的系統(tǒng)和方法。
【背景技術(shù)】
[0002]通信網(wǎng)絡(luò)可以包括諸如計(jì)算機(jī)、服務(wù)器、路由器、交換機(jī)、橋、集線器和其它類型的網(wǎng)絡(luò)節(jié)點(diǎn)之類的各種網(wǎng)絡(luò)設(shè)備。通過在各個(gè)設(shè)備之間傳遞數(shù)據(jù)分組或幀來經(jīng)由數(shù)據(jù)通信網(wǎng)絡(luò)來傳輸數(shù)據(jù),從而使數(shù)據(jù)從源設(shè)備移動(dòng)到目標(biāo)設(shè)備。在廣域通信網(wǎng)絡(luò)(諸如互聯(lián)網(wǎng))中,可以由多個(gè)網(wǎng)絡(luò)單元負(fù)責(zé)或處理分組,并且當(dāng)分組從源設(shè)備移動(dòng)到目標(biāo)設(shè)備時(shí)分組可以穿過多條通信鏈路。
[0003]網(wǎng)絡(luò)中的某些設(shè)備(例如,交換機(jī)、橋和路由器)對(duì)網(wǎng)絡(luò)業(yè)務(wù)進(jìn)行管理和調(diào)整。例如,這些設(shè)備可以對(duì)接收到的分組進(jìn)行分析,并將這些分組轉(zhuǎn)發(fā)到網(wǎng)絡(luò)中的另一個(gè)設(shè)備上。當(dāng)諸如交換機(jī)之類的網(wǎng)絡(luò)設(shè)備接收到分組時(shí),該交換機(jī)從該分組獲得目標(biāo)地址,并且在轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)中查找目標(biāo)的輸出端口。轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)包括多個(gè)表格,這些表格包括地址與相應(yīng)端口之間的映射。然后,交換機(jī)將分組發(fā)送給識(shí)別出的目標(biāo)端口。
[0004]網(wǎng)絡(luò)交換系統(tǒng)可以通過向轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)注冊(cè)每個(gè)輸入分組的源地址和端口信息來創(chuàng)建轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)。IEEE802.1D(關(guān)于媒體訪問控制(“MAC”)橋的標(biāo)準(zhǔn))提供了用于創(chuàng)建轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)并且發(fā)送和接收網(wǎng)絡(luò)分組的操作過程。
[0005]在網(wǎng)絡(luò)系統(tǒng)中,各個(gè)網(wǎng)絡(luò)設(shè)備(例如,交換機(jī))對(duì)它們的轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)進(jìn)行同步是至關(guān)重要的。當(dāng)前,通過使用隊(duì)列在交換機(jī)之間對(duì)轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)進(jìn)行同步。隊(duì)列對(duì)轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)中的表格的所有變化(包括條目增加、更新和刪除)進(jìn)行記錄。交換機(jī)中的控制器通過讀取隊(duì)列來獲得這些變化。
[0006]交換機(jī)包括控制器和數(shù)據(jù)庫(kù)引擎,所述控制器使用轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)中的信息,所述數(shù)據(jù)庫(kù)引擎管理該轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)。因?yàn)閿?shù)據(jù)庫(kù)引擎與控制器的處理能力上的不匹配(尤其是在高速交換機(jī)中),因此隊(duì)列無法足夠大以便記錄等待要由控制器處理的所有臨時(shí)信息。為了使該影響最小化,硬件設(shè)計(jì)者使用大的先入先出(FIFO)隊(duì)列或者在需要時(shí)暫時(shí)停止數(shù)據(jù)庫(kù)變化,否則這些變化將與控制器失去同步。
[0007]此外,當(dāng)在控制器實(shí)際知道單個(gè)條目所發(fā)生的多個(gè)變化中的任一個(gè)變化之前,單個(gè)條目發(fā)生了多個(gè)變化時(shí),一種用于簡(jiǎn)化交換設(shè)計(jì)的常見方法是用多個(gè)記錄來記錄這些變化。這種設(shè)計(jì)很容易受到拒絕服務(wù)(DoS)攻擊,在這種攻擊中,攻擊者可以僅僅頻繁地改變一個(gè)條目來耗盡FIFO隊(duì)列,從而使數(shù)據(jù)庫(kù)同步更新停止。
[0008]因此,期望對(duì)該領(lǐng)域的改進(jìn)。
【發(fā)明內(nèi)容】
[0009]本申請(qǐng)給出了用于對(duì)網(wǎng)絡(luò)設(shè)備中的轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)進(jìn)行同步的系統(tǒng)和方法的各種實(shí)施例。[0010]第一轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)或表格可以保持在網(wǎng)絡(luò)設(shè)備的數(shù)據(jù)庫(kù)引擎部分中。數(shù)據(jù)庫(kù)引擎部分可以主要在硬件中實(shí)現(xiàn)。此外,第二轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)或表格可以由網(wǎng)絡(luò)設(shè)備的控制器部分保持??刂破鞑糠挚梢詫?shí)現(xiàn)為在網(wǎng)絡(luò)設(shè)備的處理器上執(zhí)行的軟件,但是設(shè)想了其可以在硬件中實(shí)現(xiàn)的實(shí)施例。
[0011 ] 第一轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)和第二轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)二者可以包括多個(gè)條目。在至少第一轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)中,多個(gè)條目中的每一個(gè)條目可以包括同步字段以及其它字段。如下面更加詳細(xì)討論的,第一和第二轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)可以包括或使用全局同步值,例如,用于對(duì)第一轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)到第二轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)的變化進(jìn)行同步。額外的字段也可以用于同步,諸如更新字段(例如,用于指示現(xiàn)有的字段是何時(shí)更新的)以及獲知或狀態(tài)字段(例如,用于指示條目的狀態(tài),諸如“自動(dòng)獲知”、“受控獲知”、“受控老化”和/或“自動(dòng)老化”以及其它可能性)。其它字段可以用于輔助同步。注意:用于同步的這些字段中的一個(gè)或多個(gè)字段僅存在于第一轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)中,而不存在于第二轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)中。例如,該同步信息在第二轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)中可能不是必需的(例如,因?yàn)楦驴赡芡ǔ0l(fā)生在數(shù)據(jù)庫(kù)引擎部分中然后同步到控制器部分,而不是相反的方向)。然而,仍然設(shè)想了相反方向的同步(例如,當(dāng)更新是從其它網(wǎng)絡(luò)設(shè)備提供的)。在一個(gè)實(shí)施例中,這些同步可以按照不同于本文中討論的方式發(fā)生。
[0012]在操作的過程中,變化可能發(fā)生在第一轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)中(例如,數(shù)據(jù)庫(kù)的數(shù)據(jù)庫(kù)引擎部分可以改變或添加條目)。相應(yīng)地,第一和第二數(shù)據(jù)庫(kù)可以變得失去同步。在一個(gè)特定的實(shí)施例中,可以執(zhí)行對(duì)第一轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)中的第一組一個(gè)或多個(gè)條目的改變。這些改變可以包括:條目的添加、或者現(xiàn)有條目中的字段的值的修改。此外,這些條目可以具有設(shè)置為當(dāng)前同步值的同步值。響應(yīng)于這些改變,或者以定期的方式,數(shù)據(jù)庫(kù)引擎部分可以向控制器發(fā)送消息(例如,中斷)來指示應(yīng)該執(zhí)行第二轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)的更新。相應(yīng)地,網(wǎng)絡(luò)設(shè)備中的控制器可以接收用于指示已經(jīng)發(fā)生改變的消息。
[0013]響應(yīng)時(shí),控制器可以將全局同步值從第一同步值變成第二全局同步值,并且還可以生成用于確定對(duì)第一轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)中的第一條目的一個(gè)或多個(gè)改變的查詢。在一個(gè)實(shí)施例中,查詢可以包括或使用與第一轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)中的字段相關(guān)聯(lián)的各種值,例如全局同步值、更新值、狀態(tài)值等。在一個(gè)實(shí)施例中,查詢可以對(duì)具有第一全局同步值以及“受控獲知”的狀態(tài)字段的那些條目進(jìn)行搜索。然而,應(yīng)該注意的是,設(shè)想了其中可以使用全局同步值、更新值或狀態(tài)值(以及其它可能字段)的任意組合的實(shí)施例。
[0014]相應(yīng)地,可以執(zhí)行查詢以便返回查詢結(jié)果(例如,從數(shù)據(jù)庫(kù)引擎部分向控制器部分)。查詢結(jié)果可以包括對(duì)第一組一個(gè)或多個(gè)條目的一個(gè)或多個(gè)改變(例如,通過使用第一全局同步值來識(shí)別第一組一個(gè)或多個(gè)條目)。
[0015]在已經(jīng)獲得查詢結(jié)果之后,可以對(duì)字段中的各個(gè)字段進(jìn)行重置。例如,已經(jīng)同步的條目可以將更新字段值從例如“I”(啟用)變成“O”(禁用)。類似地,可以將具有“受控獲知”狀態(tài)值的條目變成“自動(dòng)獲知”,例如,從而使得今后在針對(duì)第一轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)所做出的改變的查詢中不返回這些條目。在一些實(shí)施例中,可以由更新引擎基于控制器發(fā)送的命令來執(zhí)行這些改變。
[0016]此外,在控制器將全局同步值變成第二全局同步值之后發(fā)生的、對(duì)轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)中的其它條目的改變不屬于查詢結(jié)果的一部分,例如,因?yàn)槟切┲悼梢员环峙涞诙滞街刀皇堑谝蝗滞街?。在這些情況下,當(dāng)進(jìn)行這些改變(例如,修改或添加)時(shí),其同步字段可以被設(shè)置為當(dāng)前的全局同步值(在該示例中,當(dāng)前的全局同步值是第二全局同步值),從而使得可以在后續(xù)的同步過程中識(shí)別出這些變化。因此,在多個(gè)同步的過程期間,全局同步值可以在兩個(gè)不同值之間進(jìn)行“乒乓”,以便跟蹤哪些條目已經(jīng)同步或尚未同步。
[0017]可以通過多種方式來使用查詢結(jié)果。如上所示,控制器可以保持第二轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù),并且可以使用查詢結(jié)果來更新第二轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)(例如,以便使第一轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)和第二轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)進(jìn)行同步)。作為另一種可能,查詢結(jié)果可以用于更新其它網(wǎng)絡(luò)設(shè)備或者該網(wǎng)絡(luò)設(shè)備的其它數(shù)據(jù)庫(kù)引擎部分(例如,其中,網(wǎng)絡(luò)設(shè)備包括控制器部分和多個(gè)數(shù)據(jù)庫(kù)引擎部分,這可能需要使它們各自的轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)同步)。
【專利附圖】
【附圖說明】
[0018]當(dāng)結(jié)合附圖來閱讀下面對(duì)實(shí)施例的詳細(xì)說明時(shí),可以得到對(duì)本發(fā)明的更好的理解,在附圖中:
[0019]圖1示出了根據(jù)一個(gè)實(shí)施例的示例性網(wǎng)絡(luò)設(shè)備;
[0020]圖2示出了根據(jù)一個(gè)實(shí)施例的包括若干個(gè)網(wǎng)絡(luò)設(shè)備的示例性系統(tǒng),所述網(wǎng)絡(luò)設(shè)備用于連接網(wǎng)絡(luò)中的兩個(gè)設(shè)備;
[0021]圖3是示出用于對(duì)網(wǎng)絡(luò)設(shè)備的控制器和數(shù)據(jù)庫(kù)引擎進(jìn)行同步的方法的實(shí)施例的流程圖;
[0022]圖4A至圖4E是示出根據(jù)一個(gè)實(shí)施例,與圖3的方法相對(duì)應(yīng)的示例的示例性表格;
[0023]圖5是根據(jù)一個(gè)實(shí)施例,在以太網(wǎng)交換機(jī)中的過濾數(shù)據(jù)庫(kù)的示例性轉(zhuǎn)發(fā)表格中的條目的狀態(tài)圖;以及
[0024]圖6A至圖6N是根據(jù)各個(gè)實(shí)施例,與圖5的狀態(tài)圖相對(duì)應(yīng)的示例性表格和條目。
[0025]雖然本發(fā)明容易有各種修改和替換形式,但是它們的具體實(shí)施例通過示例的方式在圖中示出的,并且在本文中進(jìn)行了詳細(xì)描述。然而,應(yīng)當(dāng)理解的是,有關(guān)附圖和詳細(xì)描述并不旨在將本發(fā)明限定為所公開的特定形式,而是相反,其意圖在于涵蓋落入由所附權(quán)利要求所限定的本發(fā)明的范圍之內(nèi)的所有修改、等價(jià)物和替代物。
【具體實(shí)施方式】
[0026]術(shù)語
[0027]下面是本申請(qǐng)中使用的術(shù)語表:
[0028]存儲(chǔ)器介質(zhì)一各種類型的存儲(chǔ)器設(shè)備或存儲(chǔ)設(shè)備中的任意一種。術(shù)語“存儲(chǔ)器”和“存儲(chǔ)器介質(zhì)”旨在包括:安裝介質(zhì)(例如,⑶-ROM、軟盤或磁帶設(shè)備);諸如DRAM、DDRRAM,SRAM,EDO RAM,Rambus RAM等計(jì)算機(jī)系統(tǒng)存儲(chǔ)器或隨機(jī)存取存儲(chǔ)器;或者諸如閃存、硬件寄存器、磁性介質(zhì)(例如,硬盤驅(qū)動(dòng)器)或光存儲(chǔ)器之類的非易失性存儲(chǔ)器。存儲(chǔ)器介質(zhì)可以包括其它類型的存儲(chǔ)器或它們的組合。術(shù)語“存儲(chǔ)器介質(zhì)”可以包括兩個(gè)或更多個(gè)存儲(chǔ)器介質(zhì)。
[0029]計(jì)算機(jī)系統(tǒng)——各種類型中的任一種移動(dòng)或靜止計(jì)算或處理系統(tǒng)包括:個(gè)人計(jì)算機(jī)系統(tǒng)(PC)、大型計(jì)算機(jī)系統(tǒng)、工作站、網(wǎng)絡(luò)應(yīng)用設(shè)備、互聯(lián)網(wǎng)應(yīng)用設(shè)備、移動(dòng)電話、智能電話、膝上型計(jì)算機(jī)、筆記本電腦、上網(wǎng)本、或平板計(jì)算機(jī)系統(tǒng)、個(gè)人數(shù)字助理(PDA)、多媒體設(shè)備、或其它設(shè)備或設(shè)備的組合。通常,術(shù)語“計(jì)算機(jī)系統(tǒng)”可被廣義地定義為涵蓋具有執(zhí)行來自存儲(chǔ)器介質(zhì)的指令的至少一個(gè)處理器的任何設(shè)備(或設(shè)備的組合)。
[0030]自動(dòng)地——指的是在沒有直接規(guī)定或執(zhí)行動(dòng)作或操作的用戶輸入的情況下,由計(jì)算機(jī)系統(tǒng)(例如,由計(jì)算機(jī)系統(tǒng)執(zhí)行的軟件)或設(shè)備(例如,電路、可編程硬件單元、ASIC等)執(zhí)行的動(dòng)作或操作。因此,術(shù)語“自動(dòng)地”與由用戶手動(dòng)執(zhí)行或規(guī)定的操作形成對(duì)比,在該操作中,用戶提供輸入以直接執(zhí)行操作。自動(dòng)過程可以由用戶提供的輸入來發(fā)起,但“自動(dòng)地”執(zhí)行的后續(xù)操作不是由用戶規(guī)定的(即,不是“手動(dòng)地”執(zhí)行的),在“手動(dòng)地”執(zhí)行中,用戶指定要執(zhí)行的每個(gè)動(dòng)作。例如,用戶通過選擇每一個(gè)字段并提供規(guī)定信息的輸入(例如,通過鍵入信息、選擇復(fù)選框、單選等)來填寫電子表格是手動(dòng)地填寫表格,盡管計(jì)算機(jī)系統(tǒng)必須響應(yīng)于用戶動(dòng)作而更新該表格。該表格可以由計(jì)算機(jī)系統(tǒng)自動(dòng)地填寫,其中,計(jì)算機(jī)系統(tǒng)(例如,在計(jì)算機(jī)系統(tǒng)上執(zhí)行的軟件)對(duì)表格的字段進(jìn)行分析,并且在沒有規(guī)定字段的答案的任何用戶輸入的情況下填寫表格。如上所述,用戶可以調(diào)用對(duì)表格的自動(dòng)填寫,但不參與表格的實(shí)際填寫(例如,用戶并不手動(dòng)地規(guī)定字段的答案,相反,它們被自動(dòng)地完成)。本說明書提供了響應(yīng)于用戶已采取的行動(dòng)而自動(dòng)執(zhí)行操作的各種示例。
[0031]圖1-示例性網(wǎng)絡(luò)設(shè)備
[0032]圖1是根據(jù)一個(gè)實(shí)施例的示例性網(wǎng)絡(luò)設(shè)備100的框圖。網(wǎng)絡(luò)設(shè)備100可以是各種網(wǎng)絡(luò)連接設(shè)備中的任一個(gè),諸如交換機(jī)、路由器、網(wǎng)關(guān)等。
[0033]如圖1中所示,網(wǎng)絡(luò)設(shè)備100可以包括控制器125和數(shù)據(jù)庫(kù)引擎150。在一些實(shí)施例中,控制器125可以至少部分由處理器(例如,網(wǎng)絡(luò)設(shè)備100的CPU)上執(zhí)行的程序指令(例如,一個(gè)或多個(gè)軟件程序)來實(shí)現(xiàn)。在一些實(shí)施例中,控制器125可以在硬件中實(shí)現(xiàn),作為網(wǎng)絡(luò)設(shè)備100的交換機(jī)部分的一部分。
[0034]數(shù)據(jù)庫(kù)引擎150可以在硬件中實(shí)現(xiàn),并且可以執(zhí)行網(wǎng)絡(luò)設(shè)備100的低級(jí)交換功能。控制器125可以執(zhí)行同步功能來從數(shù)據(jù)庫(kù)引擎150檢索變化以便向諸如OAM功能之類的上層管理應(yīng)用提供數(shù)據(jù)庫(kù)信息,或者使用該信息通過命令或消息來對(duì)另一個(gè)數(shù)據(jù)庫(kù)引擎進(jìn)行配置。在一些實(shí)施例中,數(shù)據(jù)庫(kù)引擎150可以被稱為網(wǎng)絡(luò)設(shè)備100的交換機(jī)部分。
[0035]數(shù)據(jù)庫(kù)引擎150可以包括命令句柄152(例如,用于處理諸如由控制器125提供的那些命令)、轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)154 (例如,用于執(zhí)行路由/交換決策)、以及更新引擎156 (例如,用于執(zhí)行更新)。控制器125還可以包括數(shù)據(jù)庫(kù)127,例如,如本文中討論的,該數(shù)據(jù)庫(kù)127可以與轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)154同步。數(shù)據(jù)庫(kù)127和轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)154根據(jù)需要可以具有相同的結(jié)構(gòu)或者可以不同。例如,轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)154可以包括用于執(zhí)行同步(例如,如本文中討論的)的字段,這些字段在數(shù)據(jù)庫(kù)127中可能不是必要的或者可能不存在。通常,本文的描述可以應(yīng)用于對(duì)轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)154進(jìn)行的改變的同步(例如,在操作的正常過程期間),然后,所述描述可以傳播到數(shù)據(jù)庫(kù)127。然而,更新可以按照相反方向(即,從控制器125向數(shù)據(jù)庫(kù)引擎150)發(fā)生,但是這些更新可以按照與本文中所描述的不同的方式發(fā)生。此外,注意數(shù)據(jù)庫(kù)127可以是可選的,但控制器125仍然可以如下所述地接收更新(例如,并且用于更新其它數(shù)據(jù)庫(kù)、向上層管理應(yīng)用提供,等等)因此,在一些實(shí)施例中,可能不需要數(shù)據(jù)庫(kù)127。
[0036]在一些實(shí)施例中,網(wǎng)絡(luò)設(shè)備100可以包括多個(gè)數(shù)據(jù)庫(kù)引擎150,并且控制器125可以耦接(例如,控制)這些數(shù)據(jù)庫(kù)引擎中的一些或全部。例如,控制器125可以從第一數(shù)據(jù)庫(kù)引擎接收更新,并且將那些更新提供給(例如,位于同一網(wǎng)絡(luò)設(shè)備內(nèi)的)第二數(shù)據(jù)庫(kù)引擎。在一些實(shí)施例中,根據(jù)需要,網(wǎng)絡(luò)設(shè)備100可以包括多個(gè)控制器125和多個(gè)數(shù)據(jù)庫(kù)引擎150。此外,控制器125可以使用其最新的數(shù)據(jù)庫(kù)127來向(例如,位于同一網(wǎng)絡(luò)內(nèi)的)其它網(wǎng)絡(luò)設(shè)備提供更新信息??梢允褂脭?shù)據(jù)庫(kù)127中的更新后的信息來執(zhí)行各種動(dòng)作中的任何動(dòng)作。
[0037]圖2-包括多個(gè)網(wǎng)絡(luò)設(shè)備的示例性網(wǎng)絡(luò)
[0038]圖2示出了包括多個(gè)網(wǎng)絡(luò)設(shè)備100A-100D的示例性網(wǎng)絡(luò)。更具體地說,設(shè)備200A和200B可以使用該網(wǎng)絡(luò)進(jìn)行通信,該網(wǎng)絡(luò)可以包括網(wǎng)絡(luò)設(shè)備100A-100D。設(shè)備200A和200B可以是能夠在網(wǎng)絡(luò)上執(zhí)行通信的多種設(shè)備中的任一種,諸如臺(tái)式計(jì)算機(jī)、膝上型計(jì)算機(jī)、蜂窩電話、平板電腦、上網(wǎng)本等。在一個(gè)實(shí)施例中,設(shè)備200A和200B可以發(fā)送分組到網(wǎng)絡(luò)中以進(jìn)行通信。網(wǎng)絡(luò)設(shè)備100A-100D可以接收那些分組,并執(zhí)行路由或交換功能以便使用多個(gè)中間網(wǎng)絡(luò)設(shè)備將這些分組傳遞到它們的目的地。
[0039]在該過程中,網(wǎng)絡(luò)設(shè)備100A-100D中的各個(gè)網(wǎng)絡(luò)設(shè)備可以在它們之間發(fā)送對(duì)它們各自交換表格的更新或改變。例如,網(wǎng)絡(luò)設(shè)備100A的控制器可以從其相應(yīng)數(shù)據(jù)庫(kù)引擎接收更新,并且可以向網(wǎng)絡(luò)設(shè)備100B-100D中的一個(gè)或多個(gè)網(wǎng)絡(luò)設(shè)備提供這些更新(和/或其它信息),例如,以便使網(wǎng)絡(luò)設(shè)備100A-100D保持最新??梢杂删W(wǎng)絡(luò)設(shè)備100B-100D實(shí)施類似的行為。
[0040]此外,可以使用環(huán)拓?fù)鋪韺?shí)現(xiàn)網(wǎng)絡(luò)。例如,網(wǎng)絡(luò)設(shè)備100A-100D可以耦接并且可以使用環(huán)拓?fù)浣Y(jié)構(gòu)進(jìn)行通信。注意,圖2的連接中的多個(gè)連接可能不是必要的或者可能不被使用;例如,在環(huán)拓?fù)涞囊粋€(gè)實(shí)施例中,網(wǎng)絡(luò)設(shè)備100B與100C之間的連接可能不存在。在一些實(shí)施例中,在這樣的拓?fù)渲校梢允褂铆h(huán)來堆疊網(wǎng)絡(luò)設(shè)備。還設(shè)想了其它拓?fù)浜瓦B接。
[0041]圖3-對(duì)網(wǎng)絡(luò)設(shè)備中的控制器和數(shù)據(jù)庫(kù)引擎進(jìn)行同步
[0042]圖3示出了根據(jù)一個(gè)實(shí)施例的一種用于對(duì)網(wǎng)絡(luò)設(shè)備中的控制器和數(shù)據(jù)庫(kù)引擎進(jìn)行同步的方法。圖3中示出的方法可以與上圖中示出的計(jì)算機(jī)系統(tǒng)或設(shè)備及其它設(shè)備中的任何一個(gè)結(jié)合使用。在各個(gè)實(shí)施例中,這些方法元素中的一些元素可以并行執(zhí)行、按照與所示順序不同的順序執(zhí)行、或者可以被省略。還可以根據(jù)需要來執(zhí)行額外的方法元素。如圖所示,該方法可以如下執(zhí)行。
[0043]在302中,第一轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)或表格可以保持在網(wǎng)絡(luò)設(shè)備的數(shù)據(jù)庫(kù)引擎部分中。數(shù)據(jù)庫(kù)引擎部分可以大部分在硬件中實(shí)現(xiàn)。
[0044]此外,在304中,可以由網(wǎng)絡(luò)設(shè)備的控制器部分來維持第二轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)或表格??刂破鞑糠挚梢詫?shí)現(xiàn)為在網(wǎng)絡(luò)設(shè)備的處理器上執(zhí)行的軟件。在第一時(shí)間,可以對(duì)兩個(gè)數(shù)據(jù)庫(kù)之間的數(shù)據(jù)進(jìn)行同步。
[0045]第一轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)和第二轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)二者都可以包括多個(gè)條目。在至少第一轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)中,多個(gè)條目中的每個(gè)條目可以包括同步字段及其它字段。如下面更詳細(xì)討論的,第一和第二轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)可以包括或使用全局同步值,例如,用于將第一轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)的變化同步到第二轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)。額外的字段也可以用于同步,諸如更新字段(例如,以用于指示現(xiàn)有字段已更新的時(shí)刻)以及獲知或狀態(tài)字段(例如,用于指示條目的狀態(tài),諸如“自動(dòng)獲知”、“受控獲知”、“受控老化”和/或“自動(dòng)老化”,以及其它可能的狀態(tài))。在一些實(shí)施例中,可以使用多個(gè)其它字段(比如HIT_年齡和L00KUP_VALID (例如,其可以用于確定條目的狀態(tài),諸如“受控獲知”))來實(shí)現(xiàn)獲知字段。關(guān)于圖6A-6N的描述可以應(yīng)用于該實(shí)施例。其它字段可以用于協(xié)助同步。[0046]注意:用于同步的多個(gè)字段中的一個(gè)或多個(gè)字段僅存在于第一轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)中,而不存在于第二轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)中。例如,該同步信息可能不一定位于第二轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)中(例如,因?yàn)楦驴赡芡ǔ0l(fā)生在數(shù)據(jù)庫(kù)引擎部分中,然后同步到控制器部分,而不是相反的方向)。然而,還設(shè)想了相反方向的同步(例如,當(dāng)更新是從其它網(wǎng)絡(luò)設(shè)備提供的)。在一個(gè)實(shí)施例中,可以通過與本文所討論的方式不同的方式進(jìn)行這些同步。
[0047]在操作過程中,在306中,在第一轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)中可能發(fā)生變化(例如,數(shù)據(jù)庫(kù)的數(shù)據(jù)庫(kù)引擎部分可以改變或添加條目)。在一個(gè)特定的實(shí)施例中,可以執(zhí)行對(duì)第一轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)中的第一組一個(gè)或多個(gè)條目的改變。這些改變可以包括:條目的添加,或者現(xiàn)有條目中的字段的值的修改。此外,這些條目可以具有設(shè)置為當(dāng)前同步值的同步值。因此,在第二時(shí)刻,第一和第二數(shù)據(jù)庫(kù)可以變得失去同步。
[0048]響應(yīng)于這些改變、或者通過定期的方式,數(shù)據(jù)庫(kù)引擎部分可以向控制器發(fā)送消息(例如,中斷)來指示應(yīng)該執(zhí)行對(duì)第二轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)的更新。相應(yīng)地,在308中,網(wǎng)絡(luò)設(shè)備中的控制器可以接收用于指示第一轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)中已發(fā)生變化的消息。
[0049]響應(yīng)時(shí),在310中,可以(例如,由控制器)將全局同步值從第一全局同步值變?yōu)榈诙滞街?。此外,?12中,可以(例如,由控制器)生成查詢來確定對(duì)第一轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)中的第一組條目的一個(gè)或多個(gè)改變。在一個(gè)實(shí)施例中,查詢可以包括或使用與第一轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)中的字段相關(guān)聯(lián)的各種值,諸如全局同步值、更新值、狀態(tài)值等。在一個(gè)實(shí)施例中,查詢可以搜索具有第一全局同步值以及“受控獲知”狀態(tài)字段的那些條目。然而,應(yīng)該指出的是,設(shè)想了可以使用以下任意組合的實(shí)施例:全局同步值、更新值、或狀態(tài)值(以及其它可能的字段)。在下面針對(duì)圖4A至圖4E更詳細(xì)地提供了該過程的示例。
[0050]因此,在314中,可以執(zhí)行查詢以便返回查詢結(jié)果(例如,從數(shù)據(jù)庫(kù)引擎部分到控制器部分)。查詢結(jié)果可以包括對(duì)第一組一個(gè)或多個(gè)條目的一個(gè)或多個(gè)改變(例如,通過使用第一全局同步值和/或上面討論的用于識(shí)別第一組一個(gè)或多個(gè)條目的其它值)。
[0051]在獲得查詢結(jié)果之后,可以在316中執(zhí)行各個(gè)后續(xù)動(dòng)作。例如,可以對(duì)(例如,第一轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)中的)多個(gè)字段中的各個(gè)字段進(jìn)行重置。例如,已經(jīng)同步的條目可以將更新字段值從例如“I” (啟用)變成“O”(禁用)。類似地,可以將具有“受控獲知”狀態(tài)值的條目變成“自動(dòng)獲知”,例如,從而在今后對(duì)第一轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)的改變進(jìn)行查詢時(shí),不返回這些條目。
[0052]此外,可以通過多種方式來使用查詢結(jié)果。如上所述,控制器可以保持第二轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù),并且可以使用查詢結(jié)果來更新第二轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)(例如,以便使第一和第二轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)同步)。作為另一種可能,查詢結(jié)果可以用于更新其它網(wǎng)絡(luò)設(shè)備或者網(wǎng)絡(luò)設(shè)備的其它數(shù)據(jù)庫(kù)引擎部分(例如,其中,網(wǎng)絡(luò)設(shè)備包括控制器部分和幾個(gè)數(shù)據(jù)庫(kù)引擎部分,這可能需要同步它們各自的轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù))。
[0053]在一個(gè)實(shí)施例中,在控制器將全局同步值變成第二全局同步值之后、對(duì)轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)中的其它條目的改變不屬于查詢結(jié)果的一部分,例如,因?yàn)榭梢韵蚰切┲捣峙涞诙滞街担皇堑谝蝗滞街?。在這些情況下,當(dāng)進(jìn)行改變(例如,修改或添加)時(shí),它們的同步字段可以被設(shè)置為當(dāng)前全局同步值(在該例中,其是第二全局同步值),從而可以在后續(xù)同步過程中識(shí)別出這些變化。因此,在幾個(gè)同步過程期間,全局同步值可以在兩個(gè)不同值之間進(jìn)行“乒乓”,以便跟蹤已經(jīng)同步或尚未同步的條目。[0054]圖4A至圖4E-與圖3的方法相對(duì)應(yīng)的示例性表格
[0055]圖4A至圖4E是與圖3的方法相對(duì)應(yīng)的、以太網(wǎng)交換機(jī)中的轉(zhuǎn)發(fā)或過濾數(shù)據(jù)庫(kù)的示例性表格。這些表格和以下描述是僅作為示例性細(xì)節(jié)而提供的,而不是旨在限制上述系統(tǒng)和方法的范圍。
[0056]對(duì)于圖4A至圖4E來說,存在兩個(gè)實(shí)體:數(shù)據(jù)庫(kù)引擎和控制器。為了使數(shù)據(jù)庫(kù)與控制器同步,數(shù)據(jù)庫(kù)引擎的轉(zhuǎn)發(fā)(或過濾)數(shù)據(jù)庫(kù)中的每個(gè)條目可以包括同步字段。數(shù)據(jù)庫(kù)引擎可以通過改變?nèi)滞街挡⑶蚁蚩刂破鞲嬷磳l(fā)生的變化,來更新記錄。然后,控制器可以改變?nèi)滞阶侄蔚闹?,并且基于該全局同步字段的先前值來搜索轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)。
[0057]對(duì)于數(shù)據(jù)庫(kù)同步來說,更新字段可以用于在更新和創(chuàng)建條目之間進(jìn)行區(qū)分。當(dāng)更新時(shí),可以啟用條目的“更新”字段(例如,通過將該值從“O”變成“I”)。在同步之后,控制器可以清除該字段(例如,通過將該值從“I”變成“O”)。在一個(gè)實(shí)施例中,控制器可以用全局同步字段的舊值和更新字段的值來搜索數(shù)據(jù)庫(kù)。
[0058]更具體地說,數(shù)據(jù)庫(kù)引擎可以包括:用于通過查找_有效字段、HIT_年齡字段和更新字段的單個(gè)屬性或者組合、和/或其它所需要的FDB信息,來搜索條目的搜索引擎。為了對(duì)數(shù)據(jù)庫(kù)的條目創(chuàng)建和更新進(jìn)行同步,引擎可以通過CTRL_LRN(受控獲知)中斷或消息來通知控制器。然后,控制器可以將全局同步值從O變成1,或者反之亦然。然后,引擎可以通過使用與全局獲知同步字段的新值相等的SYNC字段來創(chuàng)建或更新條目,從而執(zhí)行受控獲知。
[0059]為了對(duì)條目的更新進(jìn)行同步,控制器可以通過包括更新字段等于I并且SYNC字段等于全局獲知同步字段的先前值的條件來搜索引擎,以便獲得所有更新后的條目??刂破骺梢栽谕街髮⑺羞@些條目的更新字段清除。為了對(duì)條目的創(chuàng)建進(jìn)行同步,控制器隨后可以使用包括更新字段等于O并且SYNC字段等于全局獲知同步字段的先前值的條件。因此,在一些實(shí)施例中,可以根據(jù)需要將上面所討論的查詢實(shí)現(xiàn)成多個(gè)查詢或復(fù)合查詢。
[0060]為了對(duì)條目的刪除進(jìn)行同步,引擎可以通過CTRL_AGE (受控_老化)中斷或消息來告知控制器。然后,控制器可以將全局老化值從O變成I,或者反之亦然。引擎可以通過使用與全局老化同步字段的新值相等的SYNC字段來更新條目,從而執(zhí)行受控老化。然后,控制器可以使用包括查找_有效字段等于I并且HIT_年齡字段等于O并且SYNC字段等于全局獲知同步字段的先前值的條件,來獲得所有過期條目??刂破骺梢詣h除這些條目,例如,通過在同步之后發(fā)送具有包括查找_有效字段等于I并且HIT_年齡字段等于O并且SYNC字段等于全局獲知同步字段的先前值的條件的命令。
[0061]圖4A不出了第一時(shí)刻的不例性轉(zhuǎn)發(fā)表格,例如,在第一時(shí)刻,控制器和數(shù)據(jù)庫(kù)引擎的表格被同步。在該表格中,當(dāng)前存儲(chǔ)了兩個(gè)不同的條目,一個(gè)條目對(duì)應(yīng)于MAC地址00-00-00-00-00-01,而另一個(gè)條目對(duì)應(yīng)于MAC地址02。
[0062]在圖4B中,已經(jīng)更新了對(duì)應(yīng)于01的條目,以便將字段“DP”從“ I ”變成“2”,字段“查找_有效”從“ I ”變成“O ”、字段“HIT_年齡”從“ I ”變成“ 2 ”、字段“更新”從“O ”變成“I”(指示已經(jīng)發(fā)生了改變),并且狀態(tài)字段“條目描述”從“自動(dòng)獲知的條目”變成“受控獲知的條目”(例如,指示該條目處于未決狀態(tài)——在轉(zhuǎn)發(fā)過程中是否使用該條目可以是可配置的)。此外,已經(jīng)添加了新條目00-00-00-00-00-05,出于與上面01相同的原因,該新條目可以具有“受控獲知的條目”的狀態(tài)字段值。此外,如圖4B中所示,所有的條目具有同步值 “O”。
[0063]如上所述,響應(yīng)于對(duì)轉(zhuǎn)發(fā)表格的這些改變,可以向控制器提供消息(例如,中斷)。響應(yīng)時(shí),可以將全局同步字段從“O”變成“1”,從而針對(duì)稍后的同步,可以識(shí)別在同步開始之后進(jìn)行的改變。
[0064]在圖4C中,在同步期間,已經(jīng)添加了新條目“00-00-00-00-00-04”。如圖所示,因?yàn)槿滞街凳窃诎l(fā)起同步之后改變的,所以向新條目分配同步值I。在沒有該改變的情況下,可以在稍后的同步中忽略條目“ 00-00-00-00-00-04 ”。
[0065]圖4D示出了針對(duì)已更新條目的查詢的結(jié)果。如圖所示,查詢返回上文被修改的00-00-00-00-00-01和被添加的00-00-00-00-00-05 二者。在一個(gè)實(shí)施例中,查詢可以基于狀態(tài)字段值(例如,具有狀態(tài)“受控獲知的條目”或“自動(dòng)獲知的條目”)、全局同步值(例如,具有值“O”)、和/或更新值(例如,具有值“I”)。在一個(gè)實(shí)施例中,查詢可以是全局同步值與更新值的結(jié)合,以及全局同步值與狀態(tài)值的結(jié)合。
[0066]如圖4E中所示,在同步之后,可以對(duì)新同步的條目進(jìn)行更新。更具體地說,可以將條目01的更新字段重置成“0”,并且針對(duì)條目00-00-00-00-00-01和00-00-00-00-00-05,可以將狀態(tài)字段值從“受控獲知的條目”設(shè)置成“自動(dòng)獲知的條目”。在下一輪同步中,所使用的全局同步值可以是“I”而不是“O”。因此,全局同步值可以在“I”和“O”之間進(jìn)行“乒乓”,以便持續(xù)跟蹤被同步的條目。
[0067]在上面的示例中,存在針對(duì)獲知的兩種狀態(tài):受控獲知可以用于同步之前的硬件獲知。之后,來自控制器的命令可以將狀態(tài)變成自動(dòng)獲知。此外,更新字段可以用于表明:已經(jīng)改變了條目的目標(biāo)端口。當(dāng)控制器需要知道針對(duì)某些特定端口的改變時(shí)(例如,新創(chuàng)建的端口以及移動(dòng)到另一個(gè)端口兩者),該改變可能是有用的。
[0068]圖5和圖6A至圖6N-示例件狀杰圖和表格
[0069]圖5示出了與(例如,以太網(wǎng)交換機(jī)中的數(shù)據(jù)庫(kù)引擎的)轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)(FDB)的條目相對(duì)應(yīng)的示例性狀態(tài)圖。圖6A至圖6N是示出圖5的狀態(tài)圖的構(gòu)思的示例性表格。這些描述提供了與上面提供的那些描述有關(guān)的示例性細(xì)節(jié)(例如,關(guān)于條目的老化以及其它過程)。
[0070]如圖5中所示,條目可以具有以下狀態(tài):“自動(dòng)獲知”、“受控獲知”、“受控老化”以及“自動(dòng)老化(無效)”。條目可以通過圖5中示出的方式在這些狀態(tài)之間轉(zhuǎn)換,例如,自動(dòng)地老化以進(jìn)入“自動(dòng)老化”狀態(tài),自動(dòng)地獲知以進(jìn)入“自動(dòng)獲知”狀態(tài)等。下面提供了關(guān)于圖5中示出并且在表格6A-6N中包括的事件的進(jìn)一步細(xì)節(jié):
[0071]受控獲知:入端口 /虛擬端口(條目中的目標(biāo)端口)被配置為受控獲知模式。FDB條目不存在,并且數(shù)據(jù)庫(kù)引擎可以添加該條目作為新條目。
[0072]受控刷新:入端口 /虛擬端口(條目中的目標(biāo)端口)被配置為受控獲知模式。FDB條目存在,并且目標(biāo)端口是與當(dāng)前的入端口/虛擬端口相同的端口。
[0073]受控移動(dòng):入端口 /虛擬端口(條目中的目標(biāo)端口)被配置為受控獲知模式。FDB條目存在,并且目標(biāo)端口不是與當(dāng)前的入端口 /虛擬端口相同的端口。
[0074]自動(dòng)獲知:入端口/虛擬端口(條目中的目標(biāo)端口)被配置為自動(dòng)獲知模式。FDB條目不存在,并且數(shù)據(jù)庫(kù)引擎可以添加該條目作為新的條目。
[0075]自動(dòng)刷新:入端口/虛擬端口(條目中的目標(biāo)端口)被配置為自動(dòng)獲知模式。FDB條目存在,并且目標(biāo)端口是與當(dāng)前的入端口/虛擬端口相同的端口。
[0076]自動(dòng)移動(dòng):入端口/虛擬端口(條目中的目標(biāo)端口)被配置為自動(dòng)獲知模式。FDB條目存在,并且目標(biāo)端口不是與當(dāng)前的入端口 /虛擬端口相同的端口。
[0077]老化:按照I到大于O的值來減少HIT_年齡。老化是自動(dòng)老化或受控老化的。條目的狀態(tài)保持不變。
[0078]受控老化:入端口 /虛擬端口(條目中的目標(biāo)端口)被配置為受控老化模式。按照I到O來減少HIT_年齡。
[0079]自動(dòng)老化:入端口/虛擬端口(條目中的目標(biāo)端口)被配置為自動(dòng)老化模式。按照I到O來減少HIΤ_年齡。
[0080]在一個(gè)特定的實(shí)施例中,可能存在與每個(gè)條目相關(guān)聯(lián)的兩個(gè)屬性:年齡值和有效值。這兩個(gè)屬性可以表示圖6Α中示出的每個(gè)條目的四個(gè)狀態(tài)。如圖所示,如果ΗΙΤ_年齡字段大于0,則狀態(tài)可以是“受控獲知”或“自動(dòng)獲知”。如果ΗΙΤ_年齡為O并且有效值為0,則條目可以是無效的。如果ΗΙΤ_年齡為O并且有效值仍然為1,則條目可以處于“受控老化”狀態(tài)。通常,^乙年齡值將在每個(gè)老化周期遞減,直到其達(dá)到零為止。
[0081]為了記錄端口 /虛擬端口的變化,可以啟用受控獲知和受控老化。FDB(轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù))引擎可以具有用于記錄獲知和老化的當(dāng)前同步狀態(tài)的兩個(gè)全局值。該引擎可以通過創(chuàng)建或更新幀的條目來執(zhí)行受控獲知,并且基于全局獲知同步字段的值來記錄SYNC字段。當(dāng)年齡值達(dá)到零時(shí),受控老 化可以基于全局老化同步字段的值來更新SYNC字段。在每個(gè)條目中還可以存在更新字段,該更新字段指示該條目是否在先前的同步中被更新。
[0082]圖6Β示出了 “自動(dòng)獲知”與“自動(dòng)獲知”之間的狀態(tài)轉(zhuǎn)變。這可以在觸發(fā)獲知的幀的入端口 /虛擬端口被設(shè)置為自動(dòng)獲知模式時(shí)發(fā)生。注意,當(dāng)老化和刷新時(shí),更新字段和SYNC字段可以保持不變,或者更新可以丟失。
[0083]圖6C示出了 “自動(dòng)獲知”與“受控獲知”之間的狀態(tài)轉(zhuǎn)變。這可以在觸發(fā)獲知的幀的入端口/虛擬端口被設(shè)置為受控獲知模式時(shí)發(fā)生。
[0084]圖6D示出了“自動(dòng)獲知”與“受控老化”之間的狀態(tài)轉(zhuǎn)變。這可以在條目的目標(biāo)端口被設(shè)置為受控老化模式并且老化過程將年齡值減小到零時(shí)發(fā)生。
[0085]圖6Ε示出了“自動(dòng)獲知”與“無效”之間的狀態(tài)轉(zhuǎn)變。這可以在條目的目標(biāo)端口被設(shè)置為自動(dòng)老化模式并且老化過程將年齡值減小到零時(shí)發(fā)生。
[0086]圖6F示出了 “受控獲知”與“自動(dòng)獲知”之間的狀態(tài)轉(zhuǎn)變。這可以在觸發(fā)獲知的幀的入端口 /虛擬端口被設(shè)置為自動(dòng)獲知模式時(shí)發(fā)生。注意,當(dāng)老化和刷新時(shí),更新字段和SYNC字段可以保持不變,或者更新可以丟失。
[0087]圖6G示出了 “受控獲知”與“受控獲知”之間的狀態(tài)轉(zhuǎn)變。這可以在條目的目標(biāo)端口被配置為受控獲知模式時(shí)發(fā)生。注意,當(dāng)老化和刷新時(shí),更新字段和SYNC字段可以保持不變,或者更新可以丟失。
[0088]圖6Η示出了 “受控獲知”與“無效”之間的轉(zhuǎn)變。這可以在條目的目標(biāo)端口被設(shè)置為自動(dòng)老化模式并且老化過程將年齡值減小到零時(shí)發(fā)生。
[0089]圖61示出了 “受控老化”與“自動(dòng)獲知”之間的轉(zhuǎn)變。這可以在條目的目標(biāo)端口被配置為自動(dòng)獲知模式時(shí)發(fā)生。
[0090]圖6J示出了 “受控老化”與“受控獲知”之間的轉(zhuǎn)變。這可以在條目的目標(biāo)端口被配置為受控獲知模式時(shí)發(fā)生。
[0091]圖6K示出了 “受控老化”與“受控老化”之間的轉(zhuǎn)變。這可以在條目的目標(biāo)端口被設(shè)置為受控老化模式并且老化過程已經(jīng)將年齡值減小到零時(shí)發(fā)生。
[0092]圖6L示出了 “受控老化”與“無效”之間的轉(zhuǎn)變。這可以在條目的目標(biāo)端口被設(shè)置為自動(dòng)老化模式并且老化過程將年齡值減小到零時(shí)發(fā)生。
[0093]圖6M示出了 “無效”與“自動(dòng)獲知”之間的轉(zhuǎn)變。這可以在觸發(fā)獲知的幀的入端口/虛擬端口被設(shè)置為自動(dòng)獲知模式時(shí)發(fā)生。
[0094]圖6N示出了 “無效”與“受控獲知”之間的轉(zhuǎn)變。這可以在觸發(fā)獲知的幀的入端口/虛擬端口被設(shè)置為受控獲知模式時(shí)發(fā)生。
[0095]講一步描沭
[0096]下面提供了一個(gè)特定實(shí)施例的進(jìn)一步細(xì)節(jié)。然而,與上面類似,這些描述是僅作為示例提供的,而不旨 在限制上面所討論的實(shí)施例的范圍。
[0097]MAC地址獲知和老化:
[0098]可以在FDB表格中支持MAC地址獲知和老化。
[0099]每一個(gè)FDB條目可以包括查找_有效字段。當(dāng)查找_有效字段被設(shè)置為I時(shí),該條目可獲得以供使用,當(dāng)查找_有效字段被設(shè)置為O時(shí),該條目不涉及任何交換和轉(zhuǎn)發(fā)過程。
[0100]每個(gè)FDB條目包括可以定義MAC地址的壽命的^乙年齡值。老化過程減小MAC地址的壽命值,同時(shí)在獲知過程期間,當(dāng)(SA(源MAC地址),VID)與條目匹配時(shí),獲知過程刷新壽命值。
[0101]關(guān)鍵字(SA,VID)可以用于FDB查找。如果沒有找到匹配,那么可以將SA識(shí)別為未知SA,并且可以將SA作為新地址由硬件添加到FDB表格,假定啟用了自動(dòng)獲知模式或受控獲知模式。
[0102]可以根據(jù)(SA,VID)關(guān)鍵字的哈希值,來將獲知的MAC地址存儲(chǔ)在FDB中。
[0103]MAC地址獲知:
[0104]當(dāng)在獲知查找期間沒有在FDB中找到(SA,VID)時(shí),可以認(rèn)為該地址是未知的。如果FDB具有足夠的空間,那么可以獲知該地址,并且由硬件自動(dòng)地將該地址添加到FDB表格。可以將HIT_年齡設(shè)置為最大年齡值。
[0105]MAC地址刷新:
[0106]當(dāng)在FDB中找到(SA,VID)并且目標(biāo)端口是與當(dāng)前入端口 /虛擬端口相同的端口??梢詫⑺业降臈l目中的HIT_年齡更新為最大年齡值。
[0107]MAC地址移動(dòng):
[0108]當(dāng)在FDB中找到(SA,VID)并且目標(biāo)端口不是與當(dāng)前的入端口 /虛擬端口相同的端口??梢詫⑺业降臈l目中的HIT_年齡更新為最大年齡值。
[0109]兩種MAC地址獲知模式可以用于MAC地址獲知。例如,可以支持刷新和移動(dòng),并且可以根據(jù)端口或根據(jù)VLAN或者根據(jù)這兩者對(duì)刷新和移動(dòng)進(jìn)行配置,其是自動(dòng)獲知模式和受控獲知模式。獲知模式可以不僅用于MAC地址獲知,而且還可以用作用于MAC地址條目刷新或移動(dòng)的模式。
[0110]自動(dòng)獲知模式:
[0111]在查找_有效設(shè)置為I的情況下,可以添加或者更新條目。[0112]受控獲知模式:
[0113]在查找_有效設(shè)置為O的情況下,可以添加或者更新條目。條目可能不用于交換和轉(zhuǎn)發(fā)過程,直到控制器或軟件將查找_有效字段設(shè)置為I為止。
[0114]MAC地址老化:
[0115]MAC地址老化可以用于刪除不活動(dòng)的條目。在HIT_年齡值過期(這意味著HIT_年齡值達(dá)到O)之前,在可配置的間隔之后,HIT_年齡值可以由硬件自動(dòng)減少I。
[0116]可以支持下面的MAC地址老化模式:自動(dòng)老化模式和受控老化模式。
[0117]自動(dòng)老化模式:
[0118]不管條目是通過硬件自動(dòng)獲知過程還是通過受控的獲知過程獲知的,所獲知的MAC地址可以自動(dòng)過期??梢詮腇DB表格中刪除過期的條目。
[0119]受控老化模式:
[0120]在受控老化模式中,有效的條目可以不過期,除非其被控制器或被自動(dòng)老化過程刪除。
[0121]所給出的實(shí)施例的優(yōu)點(diǎn)
[0122]使用上述各個(gè)實(shí)施例,F(xiàn)IFO隊(duì)列(或類似隊(duì)列)的使用對(duì)于執(zhí)行網(wǎng)絡(luò)設(shè)備中的數(shù)據(jù)庫(kù)或表格之間的更新來說可以不再是必要的。此外,通常可以在不限制FIFO隊(duì)列的深度的情況下加快獲知速度。
[0123]當(dāng)使用各個(gè)實(shí)施例時(shí),另一個(gè)優(yōu)點(diǎn)是:控制器和數(shù)據(jù)庫(kù)引擎的能力可以是(例如,完全)分開的。因此,在一個(gè)實(shí)施例中,控制器可以執(zhí)行同步(當(dāng)其能夠的時(shí)候(例如,當(dāng)其空閑時(shí))),而不會(huì)降低數(shù)據(jù)庫(kù)引擎的性能。
[0124]雖然已經(jīng)相當(dāng)詳細(xì)地描述了上面的實(shí)施例,但是對(duì)于本領(lǐng)域技術(shù)人員來說,一旦完全理解了上面的公開內(nèi)容,許多變型和修改將變得顯而易見。下列權(quán)利要求旨在被解釋為涵蓋所有這樣的變型和修改。
【權(quán)利要求】
1.一種用于接收網(wǎng)絡(luò)設(shè)備的轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)的更新的計(jì)算機(jī)實(shí)現(xiàn)的方法,所述方法包括: 在所述網(wǎng)絡(luò)設(shè)備的數(shù)據(jù)庫(kù)引擎部分中保持所述轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù),其中,所述轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)包括多個(gè)條目,其中,所述多個(gè)條目中的每個(gè)條目包括同步字段,其中,所述轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)包括全局同步值; 控制器將所述全局同步值改變成第二全局同步值,并生成用于確定對(duì)所述轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)中的第一組一個(gè)或多個(gè)條目的一個(gè)或多個(gè)改變的查詢,其中,所述第一組一個(gè)或多個(gè)條目在所述同步字段中具有第一全局同步值; 執(zhí)行所述查詢以返回查詢結(jié)果,其中,所述查詢結(jié)果包括對(duì)所述第一組一個(gè)或多個(gè)條目的所述一個(gè)或多個(gè)改變,其中,所述執(zhí)行使用所述第一全局同步值來識(shí)別所述第一組一個(gè)或多個(gè)條目。
2.根據(jù)權(quán)利要求1所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,還包括: 所述網(wǎng)絡(luò)設(shè)備中的所述控制器接收用于指示對(duì)所述轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)中的所述第一組一個(gè)或多個(gè)條目的所述一個(gè)或多個(gè)改變的消息,其中,對(duì)所述全局同步值的所述改變是響應(yīng)于所述消息而被執(zhí)行的。
3.根據(jù)權(quán)利要求1所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其中:在所述控制器將所述全局同步值改變成所述第二全局同步值之后發(fā)生的、對(duì)所述轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)中的其它條目的改變不屬于所述查詢結(jié)果的一部分。
4.根據(jù)權(quán)利要求1所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,還包括:基于所述查詢結(jié)果,對(duì)所述控制器中的控制器數(shù)據(jù)庫(kù)進(jìn)行更新。
5.根據(jù)權(quán)利要求1所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,還包括: 所述控制器基于所述查詢結(jié)果向一個(gè)或多個(gè)其它網(wǎng)絡(luò)設(shè)備提供更新。
6.根據(jù)權(quán)利要求1所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,還包括: 保持所述控制器中的控制器數(shù)據(jù)庫(kù); 使用所述查詢結(jié)果對(duì)所述控制器數(shù)據(jù)庫(kù)進(jìn)行更新;以及 執(zhí)行對(duì)所述消息的所述接收、對(duì)所述全局同步值的所述改變、對(duì)所述查詢的所述執(zhí)行、以及對(duì)所述控制器數(shù)據(jù)庫(kù)的多次所述更新以便使所述控制器數(shù)據(jù)庫(kù)與所述轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)進(jìn)行同步。
7.根據(jù)權(quán)利要求1所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其中,所述查詢包括所述第一全局同步值。
8.根據(jù)權(quán)利要求1所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其中,所述多個(gè)條目中的每個(gè)條目包括更新字段,其中,所述查詢包括所述更新字段的、用于確定對(duì)所述第一組一個(gè)或多個(gè)條目的所述一個(gè)或多個(gè)改變中的至少一個(gè)改變的值。
9.根據(jù)權(quán)利要求1所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其中,所述條目中的每個(gè)條目包括獲知字段,其中,所述方法還包括: 由所述數(shù)據(jù)庫(kù)引擎對(duì)所述第一組一個(gè)或多個(gè)條目中的至少一個(gè)條目進(jìn)行修改以便與指示變化的狀態(tài)相關(guān)聯(lián),其中,對(duì)所述消息進(jìn)行所述接收是響應(yīng)于所述修改而被執(zhí)行的,并且其中所述查詢結(jié)果是基于具有所述狀態(tài)的所述至少一個(gè)條目的; 在執(zhí)行所述查詢之后,將所述至少一個(gè)條目的所述狀態(tài)改變成其它狀態(tài)。
10.根據(jù)權(quán)利要求1所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,還包括:在改變所述全局同步值之后,修改所述轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)中的第二條目,其中,所述第二條目的所述同步字段包括所述第二全局同步值,其中,所述查詢結(jié)果不包括基于所述第二全局同步值的所述第二條目。
11.根據(jù)權(quán)利要求10所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,還包括: 響應(yīng)于第二消息,所述控制器將所述全局同步值改變成所述第一全局同步值,并且生成第二查詢以確定一個(gè)或多個(gè)額外的變化;以及 執(zhí)行所述第二查詢以返回所述第二查詢結(jié)果,其中,所述第二查詢結(jié)果包括新條目。
12.根據(jù)權(quán)利要求1所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,還包括: 所述控制器在所述第一全局同步值和所述第二全局同步值之間改變所述全局同步值;并且使用先前的全局同步值來生成查詢以確定所述轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)中的多次新變化。
13.一種網(wǎng)絡(luò)設(shè)備,包括: 數(shù)據(jù)庫(kù)引擎,其中,所述數(shù)據(jù)庫(kù)引擎被配置為保持第一轉(zhuǎn)發(fā)表格,其中,所述轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)包括多個(gè)條目,其中,所述多個(gè)條目中的每個(gè)條目包括同步字段,其中,所述轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)包括全局同步值; 耦接到所述數(shù)據(jù)庫(kù)引擎的控制器,其中,所述控制器被配置為: 將所述全局同步值改變?yōu)榈诙滞街担? 使用所述第一全局同步值來生成用于確定對(duì)所述轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)中的第一組一個(gè)或多個(gè)條目的一個(gè)或多個(gè)改變的查詢,其中,所述第一組一個(gè)或多個(gè)條目在所述同步字段中具有第一全局同步值; 從所述數(shù)據(jù)庫(kù)引擎接收查詢結(jié)果,其中,所述查詢結(jié)果包括對(duì)所述第一組一個(gè)或多個(gè)條目的所述一個(gè)或多個(gè)改變,其中,所述執(zhí)行使用所述第一全局同步值來識(shí)別所述第一組一個(gè)或多個(gè)條目;并且 其中,在所述控制器將所述全局同步值變成所述第二全局同步值之后發(fā)生的、對(duì)所述轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)中的其它條目的改變不屬于所述查詢結(jié)果的一部分。
14.根據(jù)權(quán)利要求13所述的網(wǎng)絡(luò)設(shè)備,其中,所述控制器還被配置為:存儲(chǔ)與所述第一轉(zhuǎn)發(fā)表格相對(duì)應(yīng)的第二轉(zhuǎn)發(fā)表格;以及基于所述查詢結(jié)果來更新所述第二轉(zhuǎn)發(fā)表格。
15.根據(jù)權(quán)利要求13所述的網(wǎng)絡(luò)設(shè)備,其中,所述控制器還被配置為:基于所述查詢結(jié)果,向一個(gè)或多個(gè)其它網(wǎng)絡(luò)設(shè)備提供更新。
16.根據(jù)權(quán)利要求13所述的網(wǎng)絡(luò)設(shè)備,其中,所述控制器還被配置為: 接收用于指示對(duì)所述第一轉(zhuǎn)發(fā)表格中的第一組一個(gè)或多個(gè)條目的一個(gè)或多個(gè)改變的消息,其中,對(duì)所述全局同步值進(jìn)行所述改變是響應(yīng)于接收所述消息而被執(zhí)行的。
17.根據(jù)權(quán)利要求13所述的網(wǎng)絡(luò)設(shè)備,其中,所述控制器還被配置為:執(zhí)行對(duì)所述消息的所述接收、對(duì)所述全局同步值的所述改變、對(duì)所述查詢結(jié)果的所述接收、以及對(duì)所述第二轉(zhuǎn)發(fā)表格的多次所述更新以便使所述第二轉(zhuǎn)發(fā)表格與所述第一轉(zhuǎn)發(fā)表格進(jìn)行同步。
18.根據(jù)權(quán)利要求13所述的網(wǎng)絡(luò)設(shè)備,其中,所述多個(gè)條目中的每個(gè)條目包括更新字段,其中,所述第一組一個(gè)或多個(gè)條目中的至少一個(gè)條目包括所述更新字段中的用于指示所述至少一個(gè)條目的變化的第一值,其中,所述查詢結(jié)果是基于所述更新字段的所述第一值的。
19.根據(jù)權(quán)利要求13所述的網(wǎng)絡(luò)設(shè)備,其中,所述條目中的每個(gè)條目包括獲知字段,其中,所述數(shù)據(jù)庫(kù)引擎被配置為: 由所述數(shù)據(jù)庫(kù)引擎對(duì)所述第一組一個(gè)或多個(gè)條目中的至少一個(gè)條目進(jìn)行修改以便與指示變化的狀態(tài)相關(guān)聯(lián),其中,對(duì)所述消息進(jìn)行所述接收是響應(yīng)于所述修改而被執(zhí)行的,并且其中所述查詢結(jié)果是基于具有所述狀態(tài)的所述至少一個(gè)條目的; 執(zhí)行所述查詢以提供所述查詢結(jié)果;以及 在執(zhí)行所述查詢之后,將所述至少一個(gè)條目的所述狀態(tài)改變成其它狀態(tài)。
20.一種存儲(chǔ)程序指令的非臨時(shí)性計(jì)算機(jī)可訪問的存儲(chǔ)器介質(zhì),所述程序指令用于從網(wǎng)絡(luò)設(shè)備中的轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)接收更新,其中,所述程序指令可由處理器執(zhí)行以便進(jìn)行以下操作: 接收用于指示對(duì)所述轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)中的第一組一個(gè)或多個(gè)條目的一個(gè)或多個(gè)改變的消息,其中,所述轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)包括多個(gè)條目,其中,所述多個(gè)條目中的每個(gè)條目包括同步字段,其中,所述轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)包括全局同步值,其中,所述第一組一個(gè)或多個(gè)條目在所述同步字段中具有第一全局同步值; 將所述全局同步值變成第二全局同步值; 生成用于確定對(duì)所述轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)中的所述第一組一個(gè)或多個(gè)條目的所述一個(gè)或多個(gè)改變的查詢,其中,所述查詢包括用于識(shí)別所述第一組一個(gè)或多個(gè)條目的所述第一全局同步值; 接收所述查詢的查詢結(jié)果,其中,所述查詢結(jié)果包括對(duì)所述第一組一個(gè)或多個(gè)條目的所述一個(gè)或多個(gè)改變,其中,所述執(zhí)行使用所述第一全局同步值來識(shí)別所述第一組一個(gè)或多個(gè)條目,其中,在所述全局同步值到所述第二全局同步值的所述改變之后發(fā)生的、對(duì)所述轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)中的其它條目的改變不屬于所述查詢結(jié)果的一部分。
21.根據(jù)權(quán)利要求20所述的非臨時(shí)性計(jì)算機(jī)可訪問的存儲(chǔ)器介質(zhì),其中,所述程序指令是由所述網(wǎng)絡(luò)設(shè)備的控制器的處理器執(zhí)行的,并且其中,所述消息是從所述網(wǎng)絡(luò)設(shè)備的數(shù)據(jù)庫(kù)引擎接收的。
22.根據(jù)權(quán)利要求20所述的非臨時(shí)性計(jì)算機(jī)可訪問的存儲(chǔ)器介質(zhì),其中,所述程序指令還可執(zhí)行以進(jìn)行以下操作: 保持與所述轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)相對(duì)應(yīng)的第二轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù);以及 基于所述查詢結(jié)果來更新所述第二轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)。
23.一種用于提供網(wǎng)絡(luò)設(shè)備的轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)的更新的方法,包括: 在所述網(wǎng)絡(luò)設(shè)備的數(shù)據(jù)庫(kù)引擎部分中保持所述轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù),其中,所述轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)包括多個(gè)條目,其中,所述多個(gè)條目中的每個(gè)條目包括同步字段,其中,所述轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)包括全局同步值; 修改所述轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)中的第一組一個(gè)或多個(gè)條目,其中,所述第一組一個(gè)或多個(gè)條目在所述同步字段中具有第一全局同步值; 響應(yīng)于來自所述控制器的命令,將所述全局同步值修改為第二全局同步值; 使用所述第一全局同步值來執(zhí)行所述轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)的查詢,其中,所述查詢包括對(duì)所述第一組一個(gè)或多個(gè)條目的一個(gè)或多個(gè)改變,其中,在將所述全局同步值修改為所述第二全局同步值之后發(fā)生的、對(duì)所述轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)中的其它條目的改變不屬于所述查詢結(jié)果的一部分;以及向所述控制器提供所述查詢結(jié)果。
24.根據(jù)權(quán)利要求23所述的方法,還包括: 向所述網(wǎng)絡(luò)設(shè)備中的控制器提供用于指示對(duì)所述轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)的改變的消息。
25.根據(jù)權(quán)利要求23所述的方法,其中,所述控制器保持第二轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù),其中,所述控制器被配置為使用所述查詢結(jié)果來更新所述第二轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)。
26.根據(jù)權(quán)利要求23所述的方法,其中,所述控制器被配置為使用所述查詢結(jié)果來更新其它數(shù)據(jù)庫(kù)引擎中的轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)。
27.根據(jù)權(quán)利要求23所述的方法,其中,所述控制器被配置為使用所述查詢結(jié)果來向另一個(gè)控制器發(fā)送消息以便更新相關(guān)聯(lián)的數(shù)據(jù)庫(kù)引擎。
28.一種用于接收網(wǎng)絡(luò)設(shè)備的轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)的更新的系統(tǒng),所述系統(tǒng)包括: 用于在所述網(wǎng)絡(luò)設(shè)備的數(shù)據(jù)庫(kù)引擎部分中保持所述轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)的模塊,其中,所述轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)包括多個(gè)條目,其中,所述多個(gè)條目中的每個(gè)條目包括具有同步值的同步字段,其中,所述轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)包括全局同步值; 用于將所述全局同步值變成第二全局同步值,并生成用于確定對(duì)所述轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)中的第一組一個(gè)或多個(gè)條目的一個(gè)或多個(gè)改變的查詢的模塊,其中,所述第一組一個(gè)或多個(gè)條目在所述同步字段中具有第一全局同步值; 用于執(zhí)行所述查詢以返回查詢結(jié)果的模塊,其中,所述查詢結(jié)果包括對(duì)所述第一組一個(gè)或多個(gè)條目的所述一個(gè)或多個(gè)改變,其中,所述執(zhí)行使用所述第一全局同步值來識(shí)別所述第一組一個(gè)或多個(gè)條目。
【文檔編號(hào)】H04L12/757GK103918230SQ201180074726
【公開日】2014年7月9日 申請(qǐng)日期:2011年11月8日 優(yōu)先權(quán)日:2011年11月8日
【發(fā)明者】X·周, B·馬, G·李 申請(qǐng)人:高通股份有限公司