一種使用網(wǎng)卡dcb限速提高用戶體驗的方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及網(wǎng)絡(luò)通信技術(shù)領(lǐng)域,尤其涉及一種使用網(wǎng)卡DCB限速提高用戶體驗的方法。
【背景技術(shù)】
[0002]當(dāng)前數(shù)據(jù)轉(zhuǎn)發(fā)設(shè)備對口密度要求越來越高,所以很多通信設(shè)備選擇使用交換芯片擴增網(wǎng)口,交換芯片的上聯(lián)口一般直連萬兆網(wǎng)卡實現(xiàn)報文收發(fā),下連口與多個網(wǎng)口相連;由此出現(xiàn)問題:例如,交換芯片下連口為兩個千兆口轉(zhuǎn)發(fā)數(shù)據(jù),而上聯(lián)口為一個萬兆口且與萬兆網(wǎng)卡相連,上行方向為交換芯片千兆口向萬兆口發(fā)送數(shù)據(jù)肯定沒有問題,但是下行方向為萬兆網(wǎng)口向千兆網(wǎng)口發(fā)送數(shù)據(jù),即使是短時間內(nèi)網(wǎng)卡以萬兆速率發(fā)送,由于交換芯片下連口只有千兆速率,就會在接收數(shù)據(jù)時出現(xiàn)丟包的問題,此問題在數(shù)據(jù)速率越大情況下丟包現(xiàn)象越明顯。
[0003]目前,通過網(wǎng)卡下連交換芯片擴展網(wǎng)口的設(shè)備利用軟件上的速率限制或負(fù)載均衡功能來解決問題,這樣就需要CPU對報文進(jìn)行相關(guān)處理,由此對CPU性能會有所耗損。
【發(fā)明內(nèi)容】
[0004]為了解決在對交換芯片進(jìn)行限速時消耗CPU的性能,本發(fā)明提出了一種使用網(wǎng)卡DCB限速提高用戶體驗的方法,具體方案如下:
一種使用網(wǎng)卡DCB限速提高用戶體驗的方法,其特征在于,所述方法包括:
對網(wǎng)卡進(jìn)行DCB模式設(shè)置,并根據(jù)網(wǎng)絡(luò)設(shè)備的實際網(wǎng)口數(shù)來設(shè)置TC數(shù);
將收發(fā)函數(shù)UP優(yōu)先級設(shè)置為TC ;
對接收隊列和發(fā)送隊列的buffer size進(jìn)行設(shè)置;
設(shè)置接收映射隊列和發(fā)送映射隊列;
設(shè)置發(fā)送隊列限速值;
將每個網(wǎng)口配置的queueid和deviceid與網(wǎng)口的netdev建立對應(yīng)關(guān)系。
[0005]優(yōu)選的,所述對網(wǎng)卡進(jìn)行DCB模式設(shè)置,并根據(jù)網(wǎng)絡(luò)設(shè)備的實際網(wǎng)口數(shù)來TC數(shù)具體為:
配置網(wǎng)卡硬件的MRQC寄存器和MTQC寄存器,使能DCB模式,同時根據(jù)安裝網(wǎng)卡的網(wǎng)絡(luò)設(shè)備的實際網(wǎng)口數(shù)來設(shè)置TC數(shù)。
[0006]優(yōu)選的,所述將收發(fā)函數(shù)UP優(yōu)先級設(shè)置為TC,具體為:
對網(wǎng)卡硬件中的R/TUP2TC寄存器,將收發(fā)函數(shù)UP優(yōu)先級選擇為TC。
[0007]優(yōu)選的,所述對接收隊列和發(fā)送隊列的buffer size進(jìn)行設(shè)置,具體為:
對網(wǎng)卡硬件中的RX/TXPBSIZ寄存器進(jìn)行配置,設(shè)置每一個接收隊列和每一個發(fā)送隊列的 buffer size。
[0008]優(yōu)選的,所述設(shè)置接收映射隊列和發(fā)送映射隊列,具體為:
對網(wǎng)卡硬件中的R/TQSMR寄存器,設(shè)置接收/發(fā)送映射隊列。
[0009]優(yōu)選的,所述設(shè)置發(fā)送隊列限速值,具體為:
對網(wǎng)卡硬件中的RTTBCNRC寄存器,設(shè)置發(fā)送隊列限速值。
[0010]本發(fā)明采用配置網(wǎng)卡的DCB收發(fā)包模式,DCB通過隊列優(yōu)先級的控制能很好的保證QoS(Quality of Service,服務(wù)質(zhì)量),它將數(shù)據(jù)包分配到不同的TC(Traff ic Classes),每一個TC對應(yīng)一個獨立的packet buffer,再根據(jù)TC value將數(shù)據(jù)包分配到不同的queue,每一個queue可以做速率限制,以解決設(shè)備收發(fā)無法限速、丟包等問題。
【具體實施方式】
[0011]為使本發(fā)明實施例的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合本發(fā)明實施例,對本發(fā)明實施例中的技術(shù)方案進(jìn)行清楚、完整的描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他的實施例,都屬于本發(fā)明保護的范圍。
[0012]本發(fā)明提供的一種使用網(wǎng)卡DCB限速提高用戶體驗的方法,具體方法如下所述: 1、對網(wǎng)卡進(jìn)行DCB模式設(shè)置,并根據(jù)網(wǎng)絡(luò)設(shè)備的實際網(wǎng)口數(shù)來設(shè)置TC數(shù)。
[0013]具體的,配置網(wǎng)卡硬件的MRQC (Multiple Receive Queues Command Register)寄存器和 MTQC (Multiple Transmit Queues Command Register)寄存器,使能 DCB (DateCenter Bridging)模式,同時根據(jù)安裝網(wǎng)卡的網(wǎng)絡(luò)設(shè)備的實際網(wǎng)口數(shù)來設(shè)置TC (TrafficClasses)數(shù),即實際網(wǎng)口數(shù)等于TC數(shù)。
[0014]2、將收發(fā)函數(shù)UP優(yōu)先級設(shè)置為TC。
[0015]具體的,對網(wǎng)卡硬件中的R/TUP2TC (Receive/Transmit User Pr1rity ToTraffic Classes)寄存器進(jìn)行配置,將收發(fā)函數(shù)UP (User Pr1rity)優(yōu)先級選擇為TC。
[0016]3、對接收隊列和發(fā)送隊列的buffer size進(jìn)行設(shè)置。
[0017]具體的,對網(wǎng)卡硬件中的RX/TXPBSIZ (Receive/Transmit Packet Buffer Size)寄存器進(jìn)行配置,設(shè)置每一個接收隊列和每一個發(fā)送隊列的buffer size,可以根據(jù)實際需要對buffer size進(jìn)行設(shè)置。
[0018]4、設(shè)置接收映射隊列和發(fā)送映射隊列。
[0019]具體的,對網(wǎng)卡硬件中的R/TQSMR (Receive/Transmit Queues Statistic MappingRegister)寄存器,設(shè)置接收/發(fā)送映射隊列,設(shè)置方法為根據(jù)隊列索引將想要的隊列映射到寄存器相應(yīng)bit位即可。
[0020]映射接收和發(fā)送隊列到單獨的統(tǒng)計寄存器,這樣每個隊列的收包數(shù)、收包字節(jié)數(shù)都可以統(tǒng)計和查看;設(shè)置方法為根據(jù)隊列索引設(shè)置想要的映射隊列到寄存器相應(yīng)bit位即可;寄存器映射位包括9_祖?[0]、9_祖?[1]、9_祖?[2]、0_祖?[3],對每個‘11’定義狀態(tài)寄存器映射隊列規(guī)則為4*n + 0\1\2\3比如:RQSMR[2].Q_MAP[1]就是將狀態(tài)寄存器5映射接收隊列9 (4*2+1)。
[0021]5、設(shè)置發(fā)送隊列限速值。
[0022]具體的,對網(wǎng)卡硬件中的RTTBCNRC (DCB Transmit Rate-scheduler Config)寄存器,設(shè)置發(fā)送隊列限速值,可以根據(jù)實際需要對發(fā)送隊列限速值進(jìn)行設(shè)置。
[0023]6、將每個網(wǎng)口配置的queueid和deviceid與網(wǎng)口的netdev建立對應(yīng)關(guān)系。
[0024]具體的,在配置完網(wǎng)卡硬件的寄存器后,將網(wǎng)口與網(wǎng)卡硬件配置相對應(yīng)(可以利用軟件實現(xiàn)),這里將每個網(wǎng)口配置的queueid、deviceid與網(wǎng)口的netdev建立對應(yīng)關(guān)系(比如使用結(jié)構(gòu)體數(shù)組),由此實現(xiàn)在報文發(fā)送時可根據(jù)發(fā)送接口信息找到對應(yīng)的發(fā)送隊列等。
[0025]通過上述配置,可使發(fā)送方向的報文按照預(yù)設(shè)的隊列及速率發(fā)送,不再出現(xiàn)丟包現(xiàn)象。
[0026]最后應(yīng)說明的是:以上各實施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制;盡管參照前述各實施例對本發(fā)明進(jìn)行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對前述各實施例所記載的技術(shù)方案進(jìn)行修改,或者對其中部分或者全部技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明權(quán)利要求所限定的范圍。
【主權(quán)項】
1.一種使用網(wǎng)卡DCB限速提高用戶體驗的方法,其特征在于,所述方法包括: 對網(wǎng)卡進(jìn)行DCB模式設(shè)置,并根據(jù)網(wǎng)絡(luò)設(shè)備的實際網(wǎng)口數(shù)來設(shè)置TC數(shù); 將收發(fā)函數(shù)UP優(yōu)先級設(shè)置為TC ; 對接收隊列和發(fā)送隊列的buffer size進(jìn)行設(shè)置; 設(shè)置接收映射隊列和發(fā)送映射隊列; 設(shè)置發(fā)送隊列限速值; 將每個網(wǎng)口配置的queueid和deviceid與網(wǎng)口的netdev建立對應(yīng)關(guān)系。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述對網(wǎng)卡進(jìn)行DCB模式設(shè)置,并根據(jù)網(wǎng)絡(luò)設(shè)備的實際網(wǎng)口數(shù)來TC數(shù)具體為: 配置網(wǎng)卡硬件的MRQC寄存器和MTQC寄存器,使能DCB模式,同時根據(jù)安裝網(wǎng)卡的網(wǎng)絡(luò)設(shè)備的實際網(wǎng)口數(shù)來設(shè)置TC數(shù)。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述將收發(fā)函數(shù)UP優(yōu)先級設(shè)置為TC,具體為: 對網(wǎng)卡硬件中的R/TUP2TC寄存器,將收發(fā)函數(shù)UP優(yōu)先級選擇為TC。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述對接收隊列和發(fā)送隊列的buffersize進(jìn)行設(shè)置,具體為: 對網(wǎng)卡硬件中的RX/TXPBSIZ寄存器進(jìn)行配置,設(shè)置每一個接收隊列和每一個發(fā)送隊列的 buffer size。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述設(shè)置接收映射隊列和發(fā)送映射隊列,具體為: 對網(wǎng)卡硬件中的R/TQSMR寄存器,設(shè)置接收/發(fā)送映射隊列。
6.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述設(shè)置發(fā)送隊列限速值,具體為: 對網(wǎng)卡硬件中的RTTBCNRC寄存器,設(shè)置發(fā)送隊列限速值。
【專利摘要】本發(fā)明提供一種使用網(wǎng)卡DCB限速提高用戶體驗的方法,所述方法包括:對網(wǎng)卡進(jìn)行DCB模式設(shè)置,并根據(jù)網(wǎng)絡(luò)設(shè)備的實際網(wǎng)口數(shù)來設(shè)置TC數(shù);將收發(fā)函數(shù)UP優(yōu)先級設(shè)置為TC;對接收隊列和發(fā)送隊列的buffer size進(jìn)行設(shè)置;設(shè)置接收映射隊列和發(fā)送映射隊列;設(shè)置發(fā)送隊列限速值;將每個網(wǎng)口配置的queueid和deviceid與網(wǎng)口的netdev建立對應(yīng)關(guān)系。本發(fā)明通過對網(wǎng)卡進(jìn)行相應(yīng)的配置,以解決設(shè)備收發(fā)無法限速、丟包等問題。
【IPC分類】H04L12-863, H04L12-851
【公開號】CN104796352
【申請?zhí)枴緾N201510123126
【發(fā)明人】高福亮
【申請人】漢柏科技有限公司
【公開日】2015年7月22日
【申請日】2015年3月20日