[發明專利]一種基于Marvell交換芯片在獲取報文源端口時CPU高效處理方法有效
| 申請號: | 201810076454.5 | 申請日: | 2018-01-26 |
| 公開(公告)號: | CN108173699B | 公開(公告)日: | 2021-04-02 |
| 發明(設計)人: | 黃準;王利;張穎;張美青 | 申請(專利權)人: | 武漢光迅科技股份有限公司 |
| 主分類號: | H04L12/24 | 分類號: | H04L12/24;H04L29/06 |
| 代理公司: | 武漢科皓知識產權代理事務所(特殊普通合伙) 42222 | 代理人: | 魯力 |
| 地址: | 430205 湖北省*** | 國省代碼: | 湖北;42 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 marvell 交換 芯片 獲取 報文 端口 cpu 高效 處理 方法 | ||
本發明提供一種基于Marvell交換芯片在獲取報文源端口時CPU高效處理方法。本發明在Linux內核收包流程中,在上送協議棧處理之前,對于帶有DSA tag的協議報文,在從DSA tag中獲取到報文的源端口信息之后,將DSA tag替換成VLAN tag,并將源端口設置為VLAN id,應用層協議只接收帶有VLAN tag的報文,即協議報文,報文中的VLAN id即為報文源端口;對于不需要獲取源端口信息的數據報文,在上送協議棧處理之前,可以直接去掉DSA tag,通過這種方式實現在Linux內核收包和應用層協議收包都可以更加高效率地處理需要獲取源端口的協議報文。
技術領域
本發明提供一種基于Marvell交換芯片在CPU端構建上層通信協議過程中,對同時處理需要獲取源端口信息的協議報文和不需要源端口信息的數據報文時,CPU高效率的處理方法。
背景技術
在數據通信設備中,一些特殊的數據報文和協議報文都需要通過交換芯片上到CPU進行相應的處理。對于以EAPS環網檢測協議為代表的一類協議報文上送CPU前需要加入報文進入交換芯片的入端口ID信息,EAPS協議在處理時報文的端口信息將作為判斷是否環路的重要標志信息。而以帶內網管報文為代表的數據文需要保持報文不作任何修改的給到網管模塊進行處理。
因受Marvell交換芯片功能限制,不支持直接針對EAPS協議報文做入端口信息標記功能,而是提供了一種基于端口的DSA tag功能(如圖3所示)。如圖1所示,在和CPU相連的端口6上使能DSA tag功能之后,從6端口發出到CPU的所有報文都會被打上4個字節的DSAtag(如圖2所示),其中有報文源端口信息,以滿足需要獲取報文源端口的協議處理流程需求。
由于帶有DSA tag的報文在Linux內核的協議棧中不能被識別和處理,所以需要在Linux內核收包流程中,在送到協議棧之前對DSA tag做出處理。
目前常用的處理流程需要包含Linux內核的協議棧前處理和應用層收包處理兩個部分:
常規Linux內核的協議棧前處理包含以下步驟(如圖4所示):
1、CPU收到交換芯片上送的報文后,首先需解析報文,通過關鍵字判斷是協議報文還是數據報文;
2、對于普通的數據報文(例如網管報文),由于不需要獲取報文源端口信息,可以直接去掉4個字節的DSA tag,再通過Linux內核協議棧上送到網管模塊處理;
3、對于EAPS等協議報文首先需要解析到DSA tag中的報文源端口信息;
4、將源端口信息附加到協議報文Payload的特定字段中;
5、去掉DSA tag,再通過Linux內核協議棧上送到應用協議(EAPS)處理(如圖6所示);
常規應用層收包處理包含以下步驟(如圖5):
1、應用層需二次解析報文,通過關鍵字判斷是網管數據報文還是協議報文,分別送到協議處理模塊和網管模塊;
2、網管模塊收到網管數據報文后,按網管流程進行解析處理;
3、應用協議收到協議報文后,解析協議報文Payload,到特定的字段中獲取報文源端口信息。
4、繼續協議處理流程。
發明內容
本發明的上述技術問題主要是通過下述技術方案得以解決的:
一種基于Marvell交換芯片在獲取報文源端口時CPU高效處理方法,其特征在于:上送協議棧處理時,將帶有DSA tag后綴的協議報文,替換為VLAN tag后綴,再將源端口信息寫入到VLAN id中,最后上送協議棧走協議處理流程。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于武漢光迅科技股份有限公司,未經武漢光迅科技股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201810076454.5/2.html,轉載請聲明來源鉆瓜專利網。





