本申請(qǐng)涉及網(wǎng)絡(luò)通信技術(shù),特別涉及mac表項(xiàng)數(shù)量獲取方法和裝置。
背景技術(shù):
mac地址表中mac表項(xiàng)記錄了mac地址、出接口、出接口所屬vlan等信息。網(wǎng)絡(luò)設(shè)備在轉(zhuǎn)發(fā)報(bào)文時(shí),根據(jù)報(bào)文的目的mac地址在mac地址表中查詢到匹配的mac地址表,如果mac地址表中包含與目的mac地址匹配的mac表項(xiàng),則直接通過匹配的mac表項(xiàng)中的出接口轉(zhuǎn)發(fā)該報(bào)文。
mac地址表中mac表項(xiàng)數(shù)量(也可稱mac地址數(shù)量)表征了網(wǎng)絡(luò)設(shè)備的業(yè)務(wù)轉(zhuǎn)發(fā)能力,mac表項(xiàng)數(shù)量越多,說明轉(zhuǎn)發(fā)業(yè)務(wù)能力越強(qiáng)。目前,為了方便管理組網(wǎng)中用戶(通過mac地址區(qū)分),通常需要獲取mac表項(xiàng)數(shù)量。
技術(shù)實(shí)現(xiàn)要素:
本申請(qǐng)?zhí)峁┝薽ac表項(xiàng)數(shù)量獲取方法和裝置,以準(zhǔn)確、快速獲取mac表項(xiàng)數(shù)量。
本申請(qǐng)?zhí)峁┑募夹g(shù)方案包括:
一種mac表項(xiàng)數(shù)量獲取方法,該方法應(yīng)用于堆疊中主設(shè)備master上的主用主控板,包括:
向堆疊中各成員槽位發(fā)送異步消息以觸使堆疊中各成員槽位獲取本地mac表項(xiàng)數(shù)量;所述堆疊中各成員槽位包括:所述master上備用主控板的備用主控槽位以及各接口板的接口板槽位、所述堆疊中各備設(shè)備slave上主用主控板的主用主控槽位、備用主控板的備用主控槽位以及各接口板的接口板槽位;
獲取本地主用主控槽位的mac表項(xiàng)數(shù)量;
在設(shè)定時(shí)間到達(dá)時(shí),向堆疊中各成員槽位發(fā)送同步消息以獲取堆疊中各成員槽位已獲取的本地mac表項(xiàng)數(shù)量,將本地主用主控槽位的mac表項(xiàng)數(shù)量以及堆疊中各成員槽位本地的mac表項(xiàng)數(shù)量累加得到所述堆疊中的mac表項(xiàng)數(shù)量。
一種mac表項(xiàng)數(shù)量獲取裝置,該裝置應(yīng)用于堆疊中主設(shè)備master上的主用主控板,包括:
異步消息發(fā)送單元,用于向堆疊中各成員槽位發(fā)送異步消息以觸使堆疊中各成員槽位獲取本地mac表項(xiàng)數(shù)量;所述堆疊中各成員槽位包括:所述master上備用主控板的備用主控槽位以及各接口板的接口板槽位、所述堆疊中各備設(shè)備slave上主用主控板的主用主控槽位、備用主控板的備用主控槽位以及各接口板的接口板槽位;
獲取單元,用于獲取本地主用主控槽位的mac表項(xiàng)數(shù)量;
同步消息發(fā)送單元,用于在設(shè)定時(shí)間到達(dá)時(shí),向堆疊中各成員槽位發(fā)送同步消息以獲取堆疊中各成員槽位已獲取的本地mac表項(xiàng)數(shù)量;
統(tǒng)計(jì)單元,用于將本地主用主控槽位的mac表項(xiàng)數(shù)量以及堆疊中各成員槽位本地的mac表項(xiàng)數(shù)量累加得到所述堆疊中的mac表項(xiàng)數(shù)量。
由以上技術(shù)方案可以看出,本申請(qǐng)中,將mac表項(xiàng)數(shù)量獲取操作分擔(dān)至堆疊中各成員槽位并行執(zhí)行,這完全避免串行獲取mac表項(xiàng)數(shù)量帶來的諸如效率慢等問題。
附圖說明
此處的附圖被并入說明書中并構(gòu)成本說明書的一部分,示出了符合本公開的實(shí)施例,并與說明書一起用于解釋本公開的原理。
圖1為本申請(qǐng)?zhí)峁┑囊环N獲取mac表項(xiàng)數(shù)量的方法流程圖;
圖2為本申請(qǐng)?zhí)峁┑牧硪环N獲取mac表項(xiàng)數(shù)量的方法流程圖;
圖3為本申請(qǐng)?zhí)峁┑膶?shí)施例示意圖;
圖4為本申請(qǐng)?zhí)峁┑难b置結(jié)構(gòu)圖。
具體實(shí)施方式
mac表項(xiàng)數(shù)量,代表了mac地址數(shù)量,而mac地址數(shù)量代表了用戶數(shù)量,因此,通過獲取mac表項(xiàng)數(shù)量就可確定用戶數(shù)量,進(jìn)而依據(jù)用戶數(shù)量方便管理組網(wǎng)中用戶(通過mac地址區(qū)分)。
參見圖1,圖1為本申請(qǐng)?zhí)峁┑囊环N獲取mac表項(xiàng)數(shù)量的方法流程圖。該方法應(yīng)用于堆疊中主設(shè)備(master)上的主用主控板。如圖1所示,該流程可包括以下步驟:
步驟101,master上的主用主控板獲取本地主用主控槽位的mac表項(xiàng)數(shù)量。
步驟102,master上的主用主控板輪詢堆疊中各成員槽位,向輪詢到的各成員槽位發(fā)送同步消息以使各成員槽位獲取本地的mac表項(xiàng)數(shù)量,等待并接收各成員槽位返回mac表項(xiàng)數(shù)量。
這里,堆疊中各成員槽位包括:master上備用主控板的備用主控槽位以及各接口板的接口板槽位、堆疊中各備設(shè)備slave上主用主控板的主用主控槽位、備用主控板的備用主控槽位以及各接口板的接口板槽位。
也就是說,master上的主用主控板通過發(fā)送同步消息去堆疊中各成員槽位同步獲取堆疊中各成員槽位本地的mac表項(xiàng)數(shù)量,這是一種串行獲取堆疊中各成員槽位本地mac表項(xiàng)數(shù)量的方式。
步驟103,master上的主用主控板將步驟101獲取的mac表項(xiàng)數(shù)量、以及步驟102接收的各成員槽位返回mac表項(xiàng)數(shù)量進(jìn)行累加得到堆疊中的mac表項(xiàng)數(shù)量。
至此,完成圖1所示流程。
通過圖1所示流程可以看出,master上的主用主控板通過發(fā)送同步消息串行獲取堆疊中各成員槽位本地的mac表項(xiàng)數(shù)量。而堆疊中存在多槽位(包含master上備用主控板的備用主控槽位以及各接口板的接口板槽位、slave上主用主控板的主用主控槽位、備用主控板的備用主控槽位以及各接口板的接口板槽位等),這種串行獲取mac表項(xiàng)數(shù)量的方式效率非常低,常常會(huì)出現(xiàn)超時(shí)還未完全獲取mac表項(xiàng)的情況,影響用戶體驗(yàn)。
為此,本申請(qǐng)?zhí)峁┝肆硪环N應(yīng)用于多槽位環(huán)境中的快速獲取mac表項(xiàng)數(shù)量的方法。在該方法中,master上的主用主控板并行獲取堆疊中各成員槽位本地的mac表項(xiàng)數(shù)量,獲取堆疊中各成員槽位本地mac表項(xiàng)數(shù)量的時(shí)間和獲取單個(gè)槽位本地mac表項(xiàng)數(shù)量的時(shí)間相當(dāng),不會(huì)隨著成員槽位的增加而線性增加,極大地提高了多槽位環(huán)境中mac表項(xiàng)數(shù)量的獲取效率。
參見圖2,圖2為本申請(qǐng)?zhí)峁┑牧硪环N獲取mac表項(xiàng)數(shù)量的方法流程圖。該方法應(yīng)用于堆疊中master上的主用主控板。如圖2所示,該流程可包括以下步驟:
步驟201,master上的主用主控板向堆疊中各成員槽位發(fā)送異步消息以觸使堆疊中各成員槽位獲取本地mac表項(xiàng)數(shù)量。
可以看出,在步驟201中,master上的主用主控板是向堆疊中各成員槽位發(fā)送異步消息以觸使堆疊中各成員槽位獲取本地mac表項(xiàng)數(shù)量,這相當(dāng)于master上的主用主控板并行獲取堆疊中各成員槽位本地的mac表項(xiàng)數(shù)量。
這里,堆疊中各成員槽位包括:master上備用主控板的備用主控槽位以及各接口板的接口板槽位、堆疊中各slave上主用主控板的主用主控槽位、備用主控板的備用主控槽位以及各接口板的接口板槽位。
步驟202,master上的主用主控板獲取本地主用主控槽位本地的mac表項(xiàng)數(shù)量。
步驟203,master上的主用主控板在設(shè)定時(shí)間到達(dá)時(shí),向堆疊中各成員槽位發(fā)送同步消息以獲取堆疊中各成員槽位已獲取的本地mac表項(xiàng)數(shù)量,將本地主用主控槽位本地的mac表項(xiàng)數(shù)量以及堆疊中各成員槽位本地的mac表項(xiàng)數(shù)量累加得到所述堆疊中的mac表項(xiàng)數(shù)量。
這里,設(shè)定時(shí)間的目的是用于等待堆疊中各成員槽位成功獲取本地mac表項(xiàng)數(shù)量。如此,當(dāng)設(shè)定時(shí)間到達(dá)時(shí),master上的主用主控板通過向堆疊中各成員槽位發(fā)送同步消息以獲取堆疊中各成員槽位成功獲取的本地mac表項(xiàng)數(shù)量。
至此,完成圖2所示流程。
通過圖2所示流程可以看出,本申請(qǐng)中,將mac表項(xiàng)數(shù)量獲取操作分擔(dān)至堆疊中各成員槽位并行執(zhí)行,這完全避免串行獲取mac表項(xiàng)數(shù)量帶來的諸如效率慢等問題。
下面通過一個(gè)具體實(shí)施例對(duì)圖2所示流程進(jìn)行描述:
參見圖3,圖3為本申請(qǐng)?zhí)峁┑膶?shí)施例示意圖。如圖3所示,該實(shí)施例流程可包括:
步驟301,堆疊中master上的主用主控板接收mac地址數(shù)量獲取命令。
當(dāng)需要獲取mac地址數(shù)量時(shí),可向堆疊中master上的主用主控板下發(fā)mac地址數(shù)量獲取命令,以觸發(fā)master上的主用主控板啟動(dòng)mac地址數(shù)量獲取進(jìn)程,具體見步驟302。
步驟302,堆疊中master上的主用主控板啟動(dòng)mac地址數(shù)量獲取進(jìn)程,以向堆疊中各成員槽位發(fā)送異步消息并獲取本地主用主控槽位本地的mac表項(xiàng)數(shù)量。
具體地,步驟302中,向堆疊中各成員槽位發(fā)送異步消息并獲取本地主用主控槽位本地的mac表項(xiàng)數(shù)量可包括:輪詢堆疊中成員槽位,將輪詢到的成員槽位作為當(dāng)前槽位,向當(dāng)前槽位發(fā)送異步消息,并判斷當(dāng)前槽位是否為最后一個(gè)被輪詢到的成員槽位,如果否,返回輪詢堆疊中成員槽位的操作,如果是,獲取本地主用主控槽位本地的mac表項(xiàng)數(shù)量。
需要說明的是,在本申請(qǐng)中,堆疊中master上的主用主控板向堆疊中各成員槽位發(fā)送異步消息,其目的是用于觸使堆疊中各成員槽位獲取本地mac表項(xiàng)數(shù)量。當(dāng)堆疊中各成員槽位接收到堆疊中master上的主用主控板發(fā)送的異步消息后,會(huì)運(yùn)行各自進(jìn)程統(tǒng)計(jì)各自本地的mac表項(xiàng)數(shù)量。而在堆疊中各成員槽位統(tǒng)計(jì)本地mac表項(xiàng)數(shù)量時(shí),master上的主用主控板不會(huì)在啟動(dòng)mac地址數(shù)量獲取進(jìn)程的階段等待堆疊中各成員槽位返回統(tǒng)計(jì)本地mac表項(xiàng)數(shù)量,而是將已啟動(dòng)的mac地址數(shù)量獲取進(jìn)程進(jìn)入睡眠掛起狀態(tài),具體見步驟303。
步驟303,堆疊中master上的主用主控板將已啟動(dòng)的mac地址數(shù)量獲取進(jìn)程進(jìn)入睡眠掛起狀態(tài),并啟動(dòng)對(duì)應(yīng)的定時(shí)器。
這里,定時(shí)器是與mac地址數(shù)量獲取進(jìn)程進(jìn)入睡眠掛起狀態(tài)對(duì)應(yīng)的,其用于表示mac地址數(shù)量獲取進(jìn)程進(jìn)入睡眠掛起狀態(tài)的延續(xù)時(shí)間。
具體地,作為一個(gè)實(shí)施例,定時(shí)器的定時(shí)時(shí)間,其目的是用于等待堆疊中各成員槽位成功獲取本地mac表項(xiàng)數(shù)量。具體實(shí)現(xiàn)時(shí),定時(shí)器的定時(shí)時(shí)間大于或等于第一時(shí)間和第二時(shí)間之差,所述第一時(shí)間為預(yù)先估算出的獲取所述堆疊中所有mac表項(xiàng)數(shù)量的時(shí)間,所述第二時(shí)間為所述主用主控板獲取本地主用主控槽位的mac表項(xiàng)數(shù)量的時(shí)間。
步驟304,堆疊中master上的主用主控板在定時(shí)器的定時(shí)時(shí)間到達(dá)時(shí),將上述mac地址數(shù)量獲取進(jìn)程從睡眠掛起狀態(tài)切換為啟動(dòng)狀態(tài),以向堆疊中各成員槽位發(fā)送同步消息以獲取堆疊中各成員槽位本地的mac表項(xiàng)數(shù)量。
也就是說,堆疊中master上的主用主控板在定時(shí)器的定時(shí)時(shí)間到達(dá)時(shí),會(huì)再啟動(dòng)mac地址數(shù)量獲取進(jìn)程(即步驟304中將mac地址數(shù)量獲取進(jìn)程從睡眠掛起狀態(tài)切換為啟動(dòng)狀態(tài))。
如上描述,定時(shí)器的定時(shí)時(shí)間,其目的是用于等待堆疊中各成員槽位成功獲取本地mac表項(xiàng)數(shù)量,換言之,當(dāng)定時(shí)器的定時(shí)時(shí)間到達(dá)時(shí),也就意味著堆疊中各成員槽位都已成功獲取本地mac表項(xiàng)數(shù)量。如此,如步驟304描述,master上的主用主控板再啟動(dòng)mac地址數(shù)量獲取進(jìn)程后,就可以通過向堆疊中各成員槽位發(fā)送同步消息來獲取堆疊中各成員槽位已成功獲取的本地的mac表項(xiàng)數(shù)量,這實(shí)現(xiàn)了堆疊中master上的主用主控板將原本由自身負(fù)責(zé)的獲取堆疊中mac表項(xiàng)數(shù)量的任務(wù)分擔(dān)至堆疊中各成員槽位,最后歸納堆疊中各成員槽位自行獲取本地mac表項(xiàng)數(shù)量以得到堆疊中的mac表項(xiàng)數(shù)量,具體見步驟305。
步驟305,堆疊中master上的主用主控板將本地主用主控槽位的mac表項(xiàng)數(shù)量以及堆疊中各成員槽位本地的mac表項(xiàng)數(shù)量累加得到堆疊中的mac表項(xiàng)數(shù)量。
作為一個(gè)實(shí)施例,步驟305之后可進(jìn)一步包括:將上述處于啟動(dòng)狀態(tài)的mac地址數(shù)量獲取進(jìn)程關(guān)閉。
至此,完成圖3所示流程。
以上對(duì)本申請(qǐng)?zhí)峁┑姆椒ㄟM(jìn)行了描述,下面對(duì)本申請(qǐng)?zhí)峁┑难b置進(jìn)行描述:
參見圖4,圖4為本申請(qǐng)?zhí)峁┑难b置結(jié)構(gòu)圖。該裝置應(yīng)用于堆疊中主設(shè)備master上的主用主控板,包括:
異步消息發(fā)送單元,用于向堆疊中各成員槽位發(fā)送異步消息以觸使堆疊中各成員槽位獲取本地mac表項(xiàng)數(shù)量;所述堆疊中各成員槽位包括:所述master上備用主控板的備用主控槽位以及各接口板的接口板槽位、所述堆疊中各備設(shè)備slave上主用主控板的主用主控槽位、備用主控板的備用主控槽位以及各接口板的接口板槽位;
獲取單元,用于獲取本地主用主控槽位的mac表項(xiàng)數(shù)量;
同步消息發(fā)送單元,用于在設(shè)定時(shí)間到達(dá)時(shí),向堆疊中各成員槽位發(fā)送同步消息以獲取堆疊中各成員槽位已獲取的本地mac表項(xiàng)數(shù)量;
統(tǒng)計(jì)單元,用于將本地主用主控槽位的mac表項(xiàng)數(shù)量以及堆疊中各成員槽位本地的mac表項(xiàng)數(shù)量累加得到所述堆疊中的mac表項(xiàng)數(shù)量。
優(yōu)選地,所述異步消息發(fā)送單元向堆疊中各成員槽位發(fā)送異步消息是在所述主用主控板依據(jù)mac地址數(shù)量獲取命令啟動(dòng)mac地址數(shù)量獲取進(jìn)程后執(zhí)行的。
優(yōu)選地,所述設(shè)定時(shí)間為:已啟動(dòng)的所述mac地址數(shù)量獲取進(jìn)程進(jìn)入睡眠掛起狀態(tài)的時(shí)間,其用于等待堆疊中各成員槽位成功獲取本地mac表項(xiàng)數(shù)量;
所述同步消息發(fā)送單元是在所述mac地址數(shù)量獲取進(jìn)程從睡眠掛起狀態(tài)切換為啟動(dòng)狀態(tài)后執(zhí)行向堆疊中各成員槽位發(fā)送同步消息的操作。
優(yōu)選地,所述設(shè)定時(shí)間大于或等于第一時(shí)間和第二時(shí)間之差,所述第一時(shí)間為預(yù)先估算出的獲取所述堆疊中所有mac表項(xiàng)數(shù)量的時(shí)間,所述第二時(shí)間為所述主用主控板獲取本地主用主控槽位的mac表項(xiàng)數(shù)量的時(shí)間。
至此,完成圖4所示的裝置描述。
以上所述僅為本申請(qǐng)的較佳實(shí)施例而已,并不用以限制本申請(qǐng),凡在本申請(qǐng)的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本申請(qǐng)保護(hù)的范圍之內(nèi)。