一種嵌入式系統(tǒng)中虛擬多個(gè)以太網(wǎng)控制器的方法
【專利摘要】本發(fā)明公開(kāi)一種嵌入式系統(tǒng)中虛擬多個(gè)以太網(wǎng)控制器的方法,步驟是:將交換芯片設(shè)置為管理模式,使所有來(lái)自于交換芯片LAN端口的報(bào)文轉(zhuǎn)發(fā)至IMP端口;使能交換芯片的IEEE802.1Q?VLAN功能,設(shè)置VLAN學(xué)習(xí)模式為基于MAC和PVID的學(xué)習(xí)模式;設(shè)置交換芯片的單播查找失敗轉(zhuǎn)發(fā)模式為向LAN端口轉(zhuǎn)發(fā);對(duì)于具有N個(gè)LAN端口的交換芯片,在交換芯片內(nèi)部劃分N個(gè)IEEE802.1Q?VLAN,每個(gè)LAN端口分別和IMP端口位于同一個(gè)VLAN,其中,N為自然數(shù):將這N個(gè)LAN端口的對(duì)應(yīng)的以太網(wǎng)控制器的MAC地址添加到交換芯片的靜態(tài)地址表中。此方法可降低以太網(wǎng)控制器與CPU之間接口電路設(shè)計(jì)的復(fù)雜度和硬件成本,減少以太網(wǎng)驅(qū)動(dòng)程序設(shè)計(jì)的難度和時(shí)間成本。
【專利說(shuō)明】-種嵌入式系統(tǒng)中虛擬多個(gè)以太網(wǎng)控制器的方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及一種嵌入式系統(tǒng)中使用單個(gè)管理型以太網(wǎng)交換芯片虛擬多個(gè)以太網(wǎng) 控制器的方法。
【背景技術(shù)】
[0002] 對(duì)于面向網(wǎng)絡(luò)應(yīng)用的嵌入式系統(tǒng),為了增加網(wǎng)絡(luò)處理能力,系統(tǒng)一般都配置了多 個(gè)獨(dú)立的以太網(wǎng)控制器,每個(gè)以太網(wǎng)控制器通過(guò)獨(dú)立的驅(qū)動(dòng)程序和協(xié)議棧進(jìn)行交互。這種 設(shè)計(jì)方案在硬件和軟件上都有不足之處,具體體現(xiàn)在:
[0003] ( 1)在硬件上,需要考慮每個(gè)以太網(wǎng)控制器和CPU之間的電路接口,接口電路復(fù) 雜,硬件成本高;
[0004] (2)在軟件上,需要為每一個(gè)以太網(wǎng)控制器編寫(xiě)驅(qū)動(dòng)程序,如果這些以太網(wǎng)控制器 型號(hào)相同,驅(qū)動(dòng)程序代碼可以重用,如果型號(hào)不同,就必須編寫(xiě)不同的驅(qū)動(dòng)程序,加大了軟 件設(shè)計(jì)的難度和時(shí)間成本。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明的目的,在于提供一種嵌入式系統(tǒng)中虛擬多個(gè)以太網(wǎng)控制器的方法,其虛 擬出的以太網(wǎng)控制器從行為上等同于獨(dú)立的以太網(wǎng)控制器,降低以太網(wǎng)控制器與CPU之間 接口電路設(shè)計(jì)的復(fù)雜度和硬件成本,減少以太網(wǎng)驅(qū)動(dòng)程序設(shè)計(jì)的難度和時(shí)間成本。
[0006] 為了達(dá)成上述目的,本發(fā)明的解決方案是:
[0007] -種嵌入式系統(tǒng)中虛擬多個(gè)以太網(wǎng)控制器的方法,包括如下步驟:
[0008] ( 1)將交換芯片設(shè)置為管理模式,使所有來(lái)自于交換芯片LAN端口的報(bào)文轉(zhuǎn)發(fā)至 MP 端口;
[0009] (2)使能交換芯片的IEEE802. IQ VLAN功能,設(shè)置VLAN學(xué)習(xí)模式為基于MAC和 PVID的學(xué)習(xí)模式;
[0010] (3)設(shè)置交換芯片的單播查找失敗轉(zhuǎn)發(fā)模式為向LAN端口轉(zhuǎn)發(fā);
[0011] (4)對(duì)于具有N個(gè)LAN端口的交換芯片,在交換芯片內(nèi)部劃分N個(gè)IEEE802. 1Q VLAN,每個(gè)LAN端口分別和IMP端口位于同一個(gè)VLAN,其中,N為自然數(shù):
[0012] (5)將這N個(gè)LAN端口的對(duì)應(yīng)的以太網(wǎng)控制器的MAC地址添加到交換芯片的靜態(tài) 地址表中。
[0013] 嵌入式系統(tǒng)中的以太網(wǎng)控制器接收到來(lái)自IMP端口的以太網(wǎng)報(bào)文,根據(jù)報(bào)文中的 VLAN標(biāo)簽將報(bào)文轉(zhuǎn)發(fā)給同LAN端口對(duì)應(yīng)的虛擬以太網(wǎng)控制器的驅(qū)動(dòng)程序,具體包括如下內(nèi)容:
[0014] (a)在操作系統(tǒng)中添加多個(gè)以太網(wǎng)設(shè)備驅(qū)動(dòng)程序,每個(gè)驅(qū)動(dòng)程序和交換芯片的 一個(gè)端口相對(duì)應(yīng);驅(qū)動(dòng)的發(fā)送策略為:將協(xié)議棧送來(lái)的報(bào)文打上端口所對(duì)應(yīng)IEEE802. 1Q VLAN的VLAN標(biāo)簽,然后轉(zhuǎn)發(fā)給系統(tǒng)原有的以太網(wǎng)控制器驅(qū)動(dòng)程序;驅(qū)動(dòng)的接收策略為:將 系統(tǒng)原有以太網(wǎng)控制器驅(qū)動(dòng)程序轉(zhuǎn)發(fā)來(lái)的報(bào)文去掉IEEE802. IQ VLAN標(biāo)簽后送入?yún)f(xié)議棧;
[0015] (b)修改系統(tǒng)原有以太網(wǎng)控制器驅(qū)動(dòng)程序的接收策略為:收到的報(bào)文不再送入?yún)f(xié) 議棧,而是根據(jù)VLAN標(biāo)簽轉(zhuǎn)發(fā)給相應(yīng)的虛擬以太網(wǎng)控制器驅(qū)動(dòng)程序。
[0016] 采用上述方案后,本發(fā)明通過(guò)對(duì)交換芯片進(jìn)行適當(dāng)?shù)呐渲靡约霸谇度胧较到y(tǒng)中添 加虛擬以太網(wǎng)驅(qū)動(dòng)程序,從嵌入式系統(tǒng)的外部以及從嵌入式系統(tǒng)的角度來(lái)看,以太網(wǎng)交換 芯片的端口從行為上等同于獨(dú)立的以太網(wǎng)控制器,降低以太網(wǎng)控制器與CPU之間接口電路 設(shè)計(jì)的復(fù)雜度和硬件成本,減少以太網(wǎng)驅(qū)動(dòng)程序設(shè)計(jì)的難度和時(shí)間成本。
【專利附圖】
【附圖說(shuō)明】
[0017] 圖1是本發(fā)明中VLAN的劃分方法示意圖;
[0018] 圖2是本發(fā)明實(shí)施例的系統(tǒng)硬件設(shè)計(jì)圖;
[0019] 圖3是本發(fā)明的流程圖。
【具體實(shí)施方式】
[0020] 本發(fā)明提供一種嵌入式系統(tǒng)中虛擬多個(gè)以太網(wǎng)控制器的方法,包括如下步驟:
[0021] (1)將交換芯片設(shè)置為管理模式,使所有來(lái)自于交換芯片LAN端口的報(bào)文轉(zhuǎn)發(fā)至 IMP (Inband Management Port)端口;
[0022] (2)使能交換芯片的IEEE802. IQ VLAN功能,設(shè)置VLAN學(xué)習(xí)模式為基于MAC和 PVID的學(xué)習(xí)模式,此為現(xiàn)有技術(shù),不再詳述;
[0023] (3)設(shè)置交換芯片的單播查找失敗轉(zhuǎn)發(fā)模式為向LAN端口轉(zhuǎn)發(fā);
[0024] (4)對(duì)于具有N (N為自然數(shù))個(gè)LAN端口的交換芯片,在交換芯片內(nèi)部劃分N個(gè) IEEE802. IQ VLAN,使得每個(gè)LAN端口分別和MP端口位于同一個(gè)VLAN,LAN端口之間相互 隔尚,VLAN的劃分方法可參看圖1所不;
[0025] (5)將這N個(gè)LAN端口的對(duì)應(yīng)的以太網(wǎng)控制器的MAC地址添加到交換芯片的靜態(tài) 地址表中。
[0026] 嵌入式系統(tǒng)中的以太網(wǎng)控制器接收到來(lái)自MP端口的以太網(wǎng)報(bào)文,根據(jù)報(bào)文中的 VLAN標(biāo)簽將報(bào)文轉(zhuǎn)發(fā)給同LAN端口對(duì)應(yīng)的虛擬以太網(wǎng)控制器的驅(qū)動(dòng)程序。由于交換芯片 在內(nèi)部劃分了 IEEE802. IQ VLAN,以太網(wǎng)報(bào)文在從LAN端口轉(zhuǎn)發(fā)至MP端口進(jìn)入CPU的過(guò) 程中會(huì)被交換芯片打上IEEE802. IQ VLAN標(biāo)簽,這種報(bào)文若想被協(xié)議棧正確識(shí)別,必須去 掉VLAN標(biāo)簽。同樣地,操作系統(tǒng)若想通過(guò)MP端口向LAN port轉(zhuǎn)發(fā)報(bào)文,也必須添加相應(yīng) VLAN的標(biāo)簽。這就需要修改系統(tǒng)中原有的以太網(wǎng)驅(qū)動(dòng)程序,同時(shí)添加虛擬以太網(wǎng)驅(qū)動(dòng)程序, 具體做法如下(如圖3所示):
[0027] (1)在操作系統(tǒng)中添加多個(gè)以太網(wǎng)設(shè)備驅(qū)動(dòng)程序,每個(gè)驅(qū)動(dòng)程序和交換芯片的一 個(gè)端口相對(duì)應(yīng)。驅(qū)動(dòng)的發(fā)送策略(協(xié)議棧通過(guò)驅(qū)動(dòng)程序?qū)⒁蕴W(wǎng)報(bào)文送出系統(tǒng)稱為發(fā)送 策略)為:將協(xié)議棧送來(lái)的報(bào)文打上端口所對(duì)應(yīng)IEEE802. IQ VLAN的VLAN標(biāo)簽,然后轉(zhuǎn)發(fā) 給系統(tǒng)原有的以太網(wǎng)控制器驅(qū)動(dòng)程序。驅(qū)動(dòng)的接收策略(以太網(wǎng)控制器收到報(bào)文,將報(bào)文 傳遞給驅(qū)動(dòng)程序稱為接收策略)為:將系統(tǒng)原有以太網(wǎng)控制器驅(qū)動(dòng)程序轉(zhuǎn)發(fā)來(lái)的報(bào)文去掉 IEEE802. IQ VLAN標(biāo)簽后送入?yún)f(xié)議棧。
[0028] (2)修改系統(tǒng)原有以太網(wǎng)控制器驅(qū)動(dòng)程序的接收策略為:收到的報(bào)文不再送入?yún)f(xié) 議棧,而是根據(jù)VLAN標(biāo)簽轉(zhuǎn)發(fā)給相應(yīng)的虛擬以太網(wǎng)控制器驅(qū)動(dòng)程序。
[0029] 下面以一個(gè)具體的嵌入式系統(tǒng)為例子來(lái)說(shuō)明整個(gè)實(shí)施過(guò)程。該嵌入式系統(tǒng)的CPU 采用freescale公司的P1020芯片,交換芯片采用fcoadcom公司的BCM53101M芯片,操作 系統(tǒng)采用linux操作系統(tǒng),系統(tǒng)硬件設(shè)計(jì)圖如圖2。在本系統(tǒng)中,BCM53101M交換芯片將被 虛擬成6個(gè)獨(dú)立的以太網(wǎng)控制器。
[0030] 1、以下對(duì)交換芯片進(jìn)行相關(guān)設(shè)置的具體步驟進(jìn)行說(shuō)明。步驟1 :復(fù)位交換芯片,復(fù) 位后交換芯片的設(shè)置都被置為默認(rèn)設(shè)置。步驟2:將MP端口速率設(shè)置為1000Mbps。由于 端口 0-端口 5的端口速率均為100Mbps,這6個(gè)端口的報(bào)文轉(zhuǎn)發(fā)到MP端口會(huì)導(dǎo)致MP端 口的速率達(dá)到600Mbps,因此必須將MP端口速率設(shè)置為1000Mbps才能匹配速率。步驟3 : 在交換芯片內(nèi)部劃分6個(gè)獨(dú)立的IEEE802. IQ VLAN,每個(gè)LAN端口和MP端口位于一個(gè)VLAN 域內(nèi),實(shí)現(xiàn)LAN端口之間的隔離。步驟4 :設(shè)置交換芯片單播查找失敗的轉(zhuǎn)發(fā)模式為向LAN 端口轉(zhuǎn)發(fā),添加6個(gè)端口的MAC地址到交換芯片靜態(tài)地址表中,解決了交換芯片內(nèi)部MAC地 址老化后學(xué)習(xí)不到端口 0-端口 5的MAC地址導(dǎo)致報(bào)文無(wú)法轉(zhuǎn)發(fā)的問(wèn)題。
[0031] 2、下面具體說(shuō)明系統(tǒng)中原有的以太網(wǎng)驅(qū)動(dòng)程序的接收策略如何修改,添加的虛擬 以太網(wǎng)驅(qū)動(dòng)程序如何工作。
[0032] 系統(tǒng)中原有的以太網(wǎng)驅(qū)動(dòng)程序的接收策略為:
[0033] (1) eTSEC收到以太網(wǎng)報(bào)文;
[0034] (2)判斷報(bào)文是否合法,如果合法,轉(zhuǎn)到(3),不合法轉(zhuǎn)到(4);
[0035] (3 )將報(bào)文傳遞給上層協(xié)議棧;
[0036] (4)結(jié)束。
[0037] 系統(tǒng)中原有的以太網(wǎng)驅(qū)動(dòng)程序修改后的接收策略為:
[0038] (1) eTSEC收到以太網(wǎng)報(bào)文;
[0039] (2)判斷報(bào)文是否帶有IEEE802. IQ VLAN標(biāo)簽,如果是,根據(jù)VLAN ID將報(bào)文轉(zhuǎn)發(fā) 給相應(yīng)的虛擬設(shè)備驅(qū)動(dòng)程序,轉(zhuǎn)到(5);如果不是,轉(zhuǎn)到(3);
[0040] (3)判斷報(bào)文是否合法,如果合法,轉(zhuǎn)到(4),不合法轉(zhuǎn)到(5);
[0041] (4)將報(bào)文傳遞給上層協(xié)議棧;
[0042] (5)結(jié)束。
[0043] 虛擬以太網(wǎng)控制器驅(qū)動(dòng)程序的接收策略為:
[0044] (1)虛擬以太網(wǎng)控制器收到eTSEC轉(zhuǎn)發(fā)來(lái)的以太網(wǎng)報(bào)文;
[0045] (2)去掉報(bào)文中的IEEE802. IQ VLAN標(biāo)簽;
[0046] (3)判斷報(bào)文是否合法,如果合法,轉(zhuǎn)到(4),不合法轉(zhuǎn)到(5);
[0047] (4)將報(bào)文傳遞給上層協(xié)議棧;
[0048] (5)結(jié)束。
[0049] 虛擬以太網(wǎng)控制器驅(qū)動(dòng)程序的發(fā)送策略為:
[0050] (1)虛擬以太網(wǎng)控制器收到上層協(xié)議棧發(fā)來(lái)的報(bào)文;
[0051] (2)給報(bào)文加上虛擬以太網(wǎng)控制器對(duì)應(yīng)VLAN域的IEEE802. IQ VLAN標(biāo)簽;
[0052] (3)將報(bào)文轉(zhuǎn)發(fā)給以太網(wǎng)控制器eTSEC ;
[0053] (4)結(jié)束。
[0054] 以上實(shí)施例僅為說(shuō)明本發(fā)明的技術(shù)思想,不能以此限定本發(fā)明的保護(hù)范圍,凡是 按照本發(fā)明提出的技術(shù)思想,在技術(shù)方案基礎(chǔ)上所做的任何改動(dòng),均落入本發(fā)明保護(hù)范圍 之內(nèi)。
【權(quán)利要求】
1. 一種嵌入式系統(tǒng)中虛擬多個(gè)以太網(wǎng)控制器的方法,其特征在于包括如下步驟: (1) 將交換芯片設(shè)置為管理模式,使所有來(lái)自于交換芯片LAN端口的報(bào)文轉(zhuǎn)發(fā)至MP端 Π ; (2) 使能交換芯片的IEEE802. IQ VLAN功能,設(shè)置VLAN學(xué)習(xí)模式為基于MAC和PVID的 學(xué)習(xí)模式; (3) 設(shè)置交換芯片的單播查找失敗轉(zhuǎn)發(fā)模式為向LAN端口轉(zhuǎn)發(fā); (4) 對(duì)于具有N個(gè)LAN端口的交換芯片,在交換芯片內(nèi)部劃分N個(gè)IEEE802. IQ VLAN, 每個(gè)LAN端口分別和IMP端口位于同一個(gè)VLAN,其中,N為自然數(shù): (5) 將這N個(gè)LAN端口的對(duì)應(yīng)的以太網(wǎng)控制器的MAC地址添加到交換芯片的靜態(tài)地址 表中。
2. 如權(quán)利要求1所述的一種嵌入式系統(tǒng)中虛擬多個(gè)以太網(wǎng)控制器的方法,其特征在 于:嵌入式系統(tǒng)中的以太網(wǎng)控制器接收到來(lái)自MP端口的以太網(wǎng)報(bào)文,根據(jù)報(bào)文中的VLAN 標(biāo)簽將報(bào)文轉(zhuǎn)發(fā)給同LAN端口對(duì)應(yīng)的虛擬以太網(wǎng)控制器的驅(qū)動(dòng)程序,具體包括如下內(nèi)容: (a) 在操作系統(tǒng)中添加多個(gè)以太網(wǎng)設(shè)備驅(qū)動(dòng)程序,每個(gè)驅(qū)動(dòng)程序和交換芯片的一個(gè)端 口相對(duì)應(yīng);驅(qū)動(dòng)的發(fā)送策略為:將協(xié)議棧送來(lái)的報(bào)文打上端口所對(duì)應(yīng)IEEE802. IQ VLAN的 VLAN標(biāo)簽,然后轉(zhuǎn)發(fā)給系統(tǒng)原有的以太網(wǎng)控制器驅(qū)動(dòng)程序;驅(qū)動(dòng)的接收策略為:將系統(tǒng)原 有以太網(wǎng)控制器驅(qū)動(dòng)程序轉(zhuǎn)發(fā)來(lái)的報(bào)文去掉IEEE802. IQ VLAN標(biāo)簽后送入?yún)f(xié)議棧; (b) 修改系統(tǒng)原有以太網(wǎng)控制器驅(qū)動(dòng)程序的接收策略為:收到的報(bào)文不再送入?yún)f(xié)議棧, 而是根據(jù)VLAN標(biāo)簽轉(zhuǎn)發(fā)給相應(yīng)的虛擬以太網(wǎng)控制器驅(qū)動(dòng)程序。
【文檔編號(hào)】H04L12/02GK104104518SQ201310127678
【公開(kāi)日】2014年10月15日 申請(qǐng)日期:2013年4月12日 優(yōu)先權(quán)日:2013年4月12日
【發(fā)明者】姜曉光, 胡紹謙, 王文龍, 林青, 尤小明, 張玉健, 代小翔, 丁浩川, 李大鵬, 楊梅強(qiáng), 陳雄, 程夏 申請(qǐng)人:南京南瑞繼保電氣有限公司, 南京南瑞繼保工程技術(shù)有限公司