1)老(lǎo)化方法
每次MAC查表命中都要進行MAC表項的時(shí)間更新,MAC轉發表的老(lǎo)化要根據表項的更新時(shí)間來(lái)判斷,與當前檢查時(shí)間相比較,如果超過了(le)預先設定的閥值則将該表項老(lǎo)化。老(lǎo)化在交換機中的具體實現(xiàn)是怎樣的?以下(xià)講述兩種方法。一種是傳統較好(hǎo)理(lǐ)解的老(lǎo)化線程方法;另一種是本平台實現(xiàn)場景下(xià)的最大(dà)化資源優化方法——X方法。
老(lǎo)化線程的方法是指,通過啓動額外(wài)的專門(mén)線程,負責掃描整個MAC轉發表,逐項比較表項時(shí)間是否達到(dào)老(lǎo)化要求,從(cóng)而做出正确的老(lǎo)化行爲。該方法的實現(xiàn)方法即是線程循環、遍曆表項、比較時(shí)間、清除表項、休眠、進入下(xià)次循環。該方法實現(xiàn)簡單,也(yě)比較适合硬件實現(xiàn)。
X方法是指不采用(yòng)額外(wài)線程輪詢遍曆的方式實現(xiàn)老(lǎo)化,那不遍曆,不判斷如何才能(néng)老(lǎo)化呢(ne)?這(zhè)就是前面定語描述的,在本平台實現(xiàn)場景下(xià)的實現(xiàn)基礎上(shàng)完成老(lǎo)化功能(néng)。我們可以回顧一下(xià),前面的二層交換功能(néng)中的MAC地址學習過程。将新MAC地址學習與查找匹配優化到(dào)了(le)一起實現(xiàn),這(zhè)一實現(xiàn)過程中其實就存在遍曆與判斷的邏輯,那我們隻要将此功能(néng)稍加調整,便可實現(xiàn)老(lǎo)化功能(néng)。核心實現(xiàn)方法如下(xià):
a. 在MAC學習查找過程中,匹配到(dào)表項則更新時(shí)間;
b. 未匹配時(shí),負責查找一個未使用(yòng)空(kōng)間時(shí)的判斷改爲尋找一個使用(yòng)時(shí)間超過閥值的判斷。
1)老(lǎo)化代碼實現(xiàn)
老(lǎo)化判斷函數,老(lǎo)化時(shí)間用(yòng)戶可自(zì)己定義大(dà)小(xiǎo)。