本發明涉及網絡通信設備技術,尤指一種配置網絡處理器(NP,Network Processer)的方法和裝置。
背景技術:
網絡處理器是一種專用的處理器,主要用于網絡中轉發報文的處理。在企業局域網(LAN,Local Area Network)中,網絡處理器可以用來實現入侵檢測、數據加密、網絡監控、企業內部網(Intranet)防火墻等安全控制,防御內部和外部的惡意行為;可以將業務進行分組分類,識別關鍵業務流,提供優先傳輸服務,實現用戶在網絡服務上的各種管理策略,保證服務質量;可以提供虛擬專用網(VPN,Virtual Private Network)等。在廣域接入網中,網絡處理器主要是支持多種新型業務和多種網絡接入,并進行服務質量控制。在廣域核心網中,網絡處理器用在光學載波48(OC-48,Optical Carrier 48)到OC-192甚至更高速率下實現對聚合流的分類識別和轉發,支持服務質量控制和流量工程,支持多協議標簽轉換(MPLS,Multi-Protocol Label Switching)、區分服務(DiffServ)等協議。由于網絡處理器的使用范圍比較廣,且能支持非常多的網絡功能,因此網絡處理器的配置非常復雜且與所在硬件系統以及所處網絡場景強相關。
現有技術一般都是針對每一種場景開發一個配置網絡處理器的軟件包。當將網絡處理器應用在新的硬件系統或者網絡應用時,方法一是重新開發一個軟件包,這種方法的好處就是,新增需求不會影響已有軟件包的功能,缺點是開發時間長,軟件冗余度大,維護成本增加;方法二是修改原來的軟件包,這種方法相對于前一種方法軟件冗余度低,但是有可能影響已有功能,因此需要重新驗證已有功能,這樣又額外增加了開發工作量。這兩種方法的共同缺點是,對于已經在運行的設備,如果要更改配置,都需要更換軟件包, 這就需要重啟設備。因此,對于不同的硬件系統或網絡應用下的網絡處理器的配置比較復雜。
技術實現要素:
為了解決上述問題,本發明提出了一種配置網絡處理器的方法和裝置,能夠簡單地實現對不同硬件系統或網絡應用下的網絡處理器的配置。
為了達到上述目的,本發明提出了一種配置網絡處理器的方法,預先將待配置的參數和配置值之間的對應關系加載到內存中,該方法包括:
在內存中查找待配置的參數對應的配置值;
根據查找到的配置值對待配置的參數進行配置。
優選地,當在所述內存中查找不到待配置的參數對應的配置值時,該方法還包括:
返回表示查找不到的信息。
優選地,所述預先將待配置的參數和配置值之間的對應關系加載到內存中包括:
將包含有所述對應關系的可擴展標記語言XML配置文件加載到內存中并轉換成樹結構;
所述在內存中查找待配置的參數對應的配置值包括:
在所述內存的樹結構中查找所述待配置的參數對應的配置值。
本發明還提出了一種配置網絡處理器的裝置,至少包括:
加載模塊,用于預先將待配置的參數和配置值之間的對應關系加載到內存中;
查找模塊,用于在內存中查找待配置的參數對應的配置值;
配置模塊,用于根據查找到的配置值對待配置的參數進行配置。
優選地,所述查找模塊還用于:
在所述內存中查找不到待配置的參數對應的配置值,返回表示查找不到的信息。
優選地,所述加載模塊具體用于:
將包含有所述對應關系的可擴展標記語言XML配置文件加載到內存中并轉換成樹結構;
所述查找模塊具體用于:
在所述內存的樹結構中查找所述待配置的參數對應的配置值。
與現有技術相比,本發明包括:預先將待配置的參數和配置值之間的對應關系加載到內存中,在內存中查找待配置的參數對應的配置值;根據查找到的配置值對待配置的參數進行配置。通過本發明的方案,對于不同的硬件系統或網絡應用下的網絡處理器的配置,只需要更改加載到內存中的對應關系,而不需要重新開發軟件包或修改原來的軟件包,從而簡單地實現了對不同硬件系統或網絡應用下的網絡處理器的配置。
附圖說明
下面對本發明實施例中的附圖進行說明,實施例中的附圖是用于對本發明的進一步理解,與說明書一起用于解釋本發明,并不構成對本發明保護范圍的限制。
圖1為本發明配置網絡處理器的方法的流程圖;
圖2為網絡處理器的對外接口的連接示意圖;
圖3為本發明配置網絡處理器的裝置的結構組成示意圖。
具體實施方式
為了便于本領域技術人員的理解,下面結合附圖對本發明作進一步的描述,并不能用來限制本發明的保護范圍。需要說明的是,在不沖突的情況下,本申請中的實施例及實施例中的各種方式可以相互組合。
參見圖1,本發明提出了一種配置網絡處理器的方法,預先將待配置的 參數和配置值之間的對應關系加載到內存中。具體地,
將包含有對應關系的可擴展標記語言(XML,Extensible Markup Language)配置文件加載到內存中并轉換成樹結構。
其中,網絡處理器的配置一般包括接口配置、存儲器配置、表的配置、統計計數配置和定時器配置等。XML配置文件中的對應關系可以按照網絡處理器的硬件結構將網絡處理器劃分成多個配置單元,使得后續的配置流程相對穩定。
其中,XML配置文件中可以只保存有需要動態配置的參數,對應靜態配置的參數可以直接將配置值寫入配置流程中。
例如,圖2為網絡處理器的對外接口的連接示意圖。如圖2所示,根據網絡處理器對外接口根據功能不同,可以劃分為:外圍設備互聯協議(PCIe,Peripheral Component Interconnect Express)接口,報文轉發接口,存儲(Memory)接口,三態內容尋址存儲器(TCAM,Ternary Content Addressable Memory)接口
其中,PCIe接口實現NP和主CPU(host CPU)之間的互聯,該接口與應用場景無關,與硬件系統有關,但通常不會有太大變化,因此該接口考慮采用靜態配置模式,即不提取可配置的參數存放到XML配置文件中。
報文轉發接口包括和以太交換機(Ethernet Switch)對接的接口,和成幀器(framer)(指將電信號或光信號根據協議轉換為數據幀的設備)對接的接口,和交換網接入芯片對接的接口,這個部分的接口的配置和對端設備有關,這部分配置是可變的,需要把配置參數提取出來存放到XML配置文件中。報文轉發接口可配置的參數包括:對接的接口類型、該類型的接口格式、該類型接口能支持的配置等。
Memory接口實際對接雙倍速率同步動態隨機存儲器(DDR,Double Data Rate)型號有關,因此也是可變的,需要提取出來存放到XML配置文件中。Memory接口可以配置的參數包括對接的DDR的速率、容量、走線延遲(RTT,Round Trip Time Delay)等。
TCAM接口,網絡處理器可以外接TCAM,也可以選擇不外接,和硬件 系統的結構有關,因此也需要提取出配置參數存放到XML配置文件中。當TCAM接口為高速串行傳輸接口(Interlaken Look Aside)類型時,可以配置的參數包括串行傳輸器(serdes)個數、serdes速率等。
其中,不同硬件系統或網絡應用下的網絡處理器的XML配置文件可以采用樹形結構進行保存,樹形結構的第一級子目錄以硬件系統為標識,第二級子目錄以網絡應用場景為標識,葉子節點保存一個XML配置文件,例如,硬件系統-xxx,網絡應用場景-xxx的XML配置文件。在具體配置時,根據硬件系統和網絡應用場景選擇對應的XML配置文件。
其中,XML配置文件是一種樹形結構,由XML元素組成。XML元素的格式為:<標記名稱屬性名1="屬性值1"屬性名2="屬性值2"……>內容</標記名稱>。XML配置文件最內層的XML元素用“element”作為標記名稱,用來描述某個具體的配置參數,屬性名和屬性值表示待配置的參數的名稱、數據類型等,內容為具體的配置值。例如,<element name="dwIFSum"type="WORD32">10</element>表示將名稱為dwIFSum,數據類型為WORD32的參數配置為10,數據類型可以是編程語言自帶的類型,也可以是自定義的類型。
次內層XML元素的標記名稱統一為“Config”,用來描述一組相關的配置參數。
例如,某一XML配置文件如下:
<system chiptype=”NP”>
<chip devid=”0”>
<module name=”memory”>
<config name=”ExtMemConfig”>
<element name=”eExtMemType”type=”WORD32”>2</element>
<element name=”uiExtMemSize”type=”WORD32”>12288</element>
</config>
</module>
……
</chip>
<chip devid=”1”>
……
</chip>
</system>
其中,第一行表示硬件系統名稱為NP(即網絡處理器),第二行表示標號為0的NP,第三行表示標號為0的NP的Memory接口,第四行表示一組相關配置的參數的名稱(通常,可以根據配置參數的作用,以及配置流程中對參數的配置來將配置參數進行分組,同一組參數通常是配置流程中的同一個步驟中完成的),第五行是名稱為eExtMemType的參數的配置值,第六行是名稱為uiExtMemSize的參數的配置值,第七行和第八行為結束標識符。
由于網絡處理器的配置非常多,在某些情況存在相同配置的情況,例如:網絡處理器與framer對接時用到了10個QSGMII(一種以太網接口協議)類型的接口,一般來說,這10個接口的配置是相同的,為了減少XML配置文件的冗余,可以自定義一些數據類型,比如:
<config name="QSGMIIConfig"ifid="[0:9]">
……
</config>
[0:9]是一個范圍,表示接口編號從0到9共用一套配置。
其中,如何將包含有對應關系的XML配置文件加載到內存中并轉換成樹結構屬于本領域技術人員的公知常識,并不用于限定本發明的保護范圍,這里不再贅述。
該方法還包括:
步驟100、在內存中查找待配置的參數對應的配置值。具體包括:
在內存的樹結構中查找待配置的參數對應的配置值。
其中,如何在內存的樹結構中查找待配置的參數對應的配置值屬于本領域技術人員的公知常識,并不用于限定本發明的保護范圍,這里不再贅述。
例如,查詢關鍵字的格式可以是“(Tag)(Attr1,format,value)…/(Tag)(Attr1,format,value)…/…”。其中,Tag為標記名稱,Attr為屬性名稱,format為將value按format的格式進行轉換,Value為屬性值,/表示XML元素的層次。
查找時,先獲取查詢關鍵字中的第一級信息,將其中的Tag和XML配置文件的最外層XML元素的標記名稱進行比較,如果匹配,則將其中的屬性名稱與最外層XML元素中的屬性名稱進行比較,將其中的屬性值轉換成format格式后與最外層XML元素的屬性值進行比較,如果都匹配,則提取查詢關鍵字中的第二級信息與次外層XML元素進行比較,以此類推,直到將查詢關鍵字中的所有信息被遍歷,且找到一個符合要求的XML元素,則返回查詢到的XML元素。
本步驟中,當在內存中查找不到待配置的參數對應的配置值時,返回表示查找不到的信息,并結束本流程。
本步驟中,當在查找過程中遇到了異常時,返回查詢錯誤,并結束本流程。
步驟101、根據查找到的配置值對待配置的參數進行配置。
本步驟中,首先將查找到的配置值轉換成type類型的值,將根據轉換后的值對待配置的參數進行配置,具體如何配置屬于本領域技術人員的公知技術,并不用于限定本發明的保護范圍,這里不再贅述。
參見圖3,本發明還提出了一種配置網絡處理器的裝置,其特征在于,至少包括:
加載模塊,用于預先將待配置的參數和配置值之間的對應關系加載到內存中;
查找模塊,用于在內存中查找待配置的參數對應的配置值;
配置模塊,用于根據查找到的配置值對待配置的參數進行配置。
本發明的裝置中,查找模塊還用于:
在內存中查找不到待配置的參數對應的配置值,返回表示查找不到的信息。
本發明的裝置中,加載模塊具體用于:
將包含有對應關系的可擴展標記語言XML配置文件加載到內存中并轉換成樹結構;
查找模塊具體用于:
在內存的樹結構中查找待配置的參數對應的配置值。
其中,加載模塊應對查找模塊提供四個接口,獲取XML根元素的接口、在指定XML元素下根據XML標記名稱獲取對應子元素的接口、在指定XML元素下根據屬性名獲取屬性值的接口、銷毀內存中的XML樹形結構,回收內存資源的接口。
需要說明的是,以上所述的實施例僅是為了便于本領域的技術人員理解而已,并不用于限制本發明的保護范圍,在不脫離本發明的發明構思的前提下,本領域技術人員對本發明所做出的任何顯而易見的替換和改進等均在本發明的保護范圍之內。