一種流表卸載方法、設(shè)備以及集群
技術(shù)領(lǐng)域
[0001] 本申請(qǐng)涉及數(shù)據(jù)通信領(lǐng)域,尤其涉及一種流表卸載方法、設(shè)備以及集群。
背景技術(shù)
[0002] 隨著云計(jì)算網(wǎng)絡(luò)發(fā)展,其廣泛的業(yè)務(wù)需求致使數(shù)據(jù)中心快速增長(zhǎng),數(shù)據(jù)流量劇增,通過(guò)虛擬交換機(jī)實(shí)現(xiàn)數(shù)據(jù)轉(zhuǎn)發(fā)的限制日益凸顯,對(duì)日益增長(zhǎng)的業(yè)務(wù)需求越來(lái)越顯得力不從心。為了實(shí)現(xiàn)高性能業(yè)務(wù)轉(zhuǎn)發(fā)需求,就需要專(zhuān)門(mén)的轉(zhuǎn)發(fā)芯片來(lái)承載數(shù)據(jù)轉(zhuǎn)發(fā)業(yè)務(wù),虛擬交換機(jī)/虛擬交換機(jī)(OVS)+數(shù)據(jù)平面開(kāi)發(fā)套件(DPDK)將數(shù)據(jù)轉(zhuǎn)發(fā)卸載到卸載硬件勢(shì)在必行。
[0003] 由于OVS原生流表卸載是直接卸載流表到卸載硬件(例如,只讀存儲(chǔ)器)緩存,卸載硬件能夠緩存流表項(xiàng)的數(shù)據(jù)非常有限。
發(fā)明內(nèi)容
[0004] 本申請(qǐng)?zhí)峁┝艘环N流表卸載方法、設(shè)備以及集群,能夠提示卸載硬件的存儲(chǔ)規(guī)格。
[0005] 第一方面,提供了一種流表卸載方法,包括:
[0006] 接收第一流表項(xiàng),其中,所述第一流表項(xiàng)包括第一匹配項(xiàng)以及第一動(dòng)作項(xiàng);
[0007] 根據(jù)所述第一匹配項(xiàng)的長(zhǎng)度確定將所述第一匹配項(xiàng)存儲(chǔ)在第一匹配流表的匹配部分表項(xiàng)還是匹配全表項(xiàng),其中,所述第一匹配流表被劃分為多個(gè)匹配部分表項(xiàng),所述匹配全表項(xiàng)包括N個(gè)連續(xù)的匹配部分表項(xiàng),N為大于1的整數(shù);
[0008] 在確定存儲(chǔ)在匹配部分表項(xiàng)的情況下,從所述第一匹配流表中選擇其中一個(gè)匹配部分表項(xiàng)作為第一匹配部分表項(xiàng)并將所述第一匹配項(xiàng)卸載到所述第一匹配部分表項(xiàng)中;
[0009] 在確定存儲(chǔ)在匹配全表項(xiàng)的情況下,從所述第一匹配流表中選擇N個(gè)連續(xù)的匹配部分表項(xiàng)作為第一匹配全表項(xiàng)并將所述第一匹配項(xiàng)卸載到所述第一匹配全表項(xiàng)中。
[0010] 在一些可能的設(shè)計(jì)中,所述第一匹配部分表項(xiàng)為第一匹配半表項(xiàng),所述第一匹配全表項(xiàng)的長(zhǎng)度是所述第一匹配半表項(xiàng)的長(zhǎng)度的2倍,
[0011] 從所述匹配流表中選擇其中一個(gè)匹配部分表項(xiàng)作為第一匹配部分表項(xiàng)并將所述第一匹配項(xiàng)卸載到所述第一匹配部分表項(xiàng)中包括:從所述匹配流表中選擇匹配索引號(hào)為奇數(shù)或者匹配索引號(hào)為偶數(shù)的其中一個(gè)匹配半表項(xiàng)作為第一匹配半表項(xiàng)并將所述第一匹配項(xiàng)卸載到所述第一匹配半表項(xiàng)中;
[0012] 從所述匹配流表中選擇多個(gè)連續(xù)的匹配部分表項(xiàng)作為第一匹配全表項(xiàng)并將所述第一匹配項(xiàng)卸載到所述第一匹配全表項(xiàng)中包括:從所述匹配流表中選擇第一個(gè)匹配半表項(xiàng)的匹配索引號(hào)為偶數(shù)的N個(gè)連續(xù)的匹配半表項(xiàng)作為第一匹配全表項(xiàng)并將所述第一匹配項(xiàng)卸載到所述第一匹配全表項(xiàng)中。
[0013] 在一些可能的設(shè)計(jì)中,所述方法還包括:
[0014] 接收第二流表項(xiàng),其中,所述第二流表項(xiàng)包括第二匹配項(xiàng)以及第二動(dòng)作項(xiàng);
[0015] 根據(jù)所述第二匹配項(xiàng)的長(zhǎng)度確定將所述第二匹配項(xiàng)存儲(chǔ)在第二匹配流表的匹配部分表項(xiàng)還是匹配全表項(xiàng),其中,所述第二匹配流表被劃分為多個(gè)匹配部分表項(xiàng);
[0016] 在確定存儲(chǔ)在匹配部分表項(xiàng)的情況下,從所述第二匹配流表中選擇其中一個(gè)匹配部分表項(xiàng)作為第二匹配部分表項(xiàng)并將所述第二匹配項(xiàng)卸載到所述第二匹配部分表項(xiàng)中;
[0017] 在確定存儲(chǔ)在匹配全表項(xiàng)的情況下,從所述第二匹配流表中選擇N個(gè)連續(xù)的匹配部分表項(xiàng)作為第二匹配全表項(xiàng)并將所述第二匹配項(xiàng)卸載到所述第二匹配全表項(xiàng)中;
[0018] 其中,所述第一匹配流表和所述第二匹配流表共享存儲(chǔ)空間,在所述第一匹配流表空閑,所述第二匹配流表繁忙的情況下,所述第二匹配流表能夠搶占所述第一匹配流表的空間,在所述第一匹配流表繁忙,所述第二匹配流表空閑的情況下,所述第一匹配流表能夠搶占所述第二匹配流表的空間,
[0019] 在所述第一匹配流表為數(shù)據(jù)鏈路層的匹配流表的情況下,所述第二匹配流表為隧道層的匹配流表;
[0020] 在所述第一匹配流表為網(wǎng)絡(luò)層的匹配流表的情況下,所述第二匹配流表為傳輸層的匹配流表。
[0021] 在一些可能的設(shè)計(jì)中,所述方法還包括:
[0022] 根據(jù)所述第一動(dòng)作項(xiàng)的長(zhǎng)度確定將所述第一動(dòng)作項(xiàng)存儲(chǔ)在動(dòng)作流表的動(dòng)作部分表項(xiàng)還是動(dòng)作全表項(xiàng),其中,所述動(dòng)作流表被劃分為多個(gè)動(dòng)作部分表項(xiàng),所述動(dòng)作全表項(xiàng)包括M個(gè)連續(xù)的動(dòng)作部分表項(xiàng),M為大于1的整數(shù);
[0023] 在確定存儲(chǔ)在動(dòng)作部分表項(xiàng)的情況下,從所述動(dòng)作流表中選擇其中一個(gè)動(dòng)作部分表項(xiàng)作為第一動(dòng)作部分表項(xiàng)并將所述第一動(dòng)作項(xiàng)卸載到所述第一動(dòng)作部分表項(xiàng)中;
[0024] 在確定存儲(chǔ)在動(dòng)作全表項(xiàng)的情況下,從所述動(dòng)作流表中選擇多個(gè)連續(xù)的動(dòng)作部分表項(xiàng)作為第一動(dòng)作全表項(xiàng)并將所述第一動(dòng)作項(xiàng)卸載到所述第一動(dòng)作全表項(xiàng)中。
[0025] 在一些可能的設(shè)計(jì)中,所述第一動(dòng)作部分表項(xiàng)為第一動(dòng)作半表項(xiàng),所述第一動(dòng)作全表項(xiàng)的長(zhǎng)度是所述第一動(dòng)作半表項(xiàng)的長(zhǎng)度的2倍,
[0026] 在確定存儲(chǔ)在動(dòng)作半表項(xiàng)的情況下,從所述動(dòng)作流表中選擇動(dòng)作索引號(hào)為奇數(shù)或者動(dòng)作索引號(hào)為偶數(shù)的其中一個(gè)動(dòng)作部分表項(xiàng)作為第一動(dòng)作半表項(xiàng)并將所述第一動(dòng)作項(xiàng)卸載到所述第一動(dòng)作半表項(xiàng)中;