CN108173699B - 一种基于Marvell交换芯片在获取报文源端口时CPU高效处理方法 - Google Patents

一种基于Marvell交换芯片在获取报文源端口时CPU高效处理方法 Download PDF

Info

Publication number
CN108173699B
CN108173699B CN201810076454.5A CN201810076454A CN108173699B CN 108173699 B CN108173699 B CN 108173699B CN 201810076454 A CN201810076454 A CN 201810076454A CN 108173699 B CN108173699 B CN 108173699B
Authority
CN
China
Prior art keywords
message
protocol
source port
tag
processing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201810076454.5A
Other languages
English (en)
Other versions
CN108173699A (zh
Inventor
黄准
王利
张颖
张美青
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Accelink Technologies Co Ltd
Original Assignee
Accelink Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Accelink Technologies Co Ltd filed Critical Accelink Technologies Co Ltd
Priority to CN201810076454.5A priority Critical patent/CN108173699B/zh
Publication of CN108173699A publication Critical patent/CN108173699A/zh
Application granted granted Critical
Publication of CN108173699B publication Critical patent/CN108173699B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/04Network management architectures or arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0604Management of faults, events, alarms or notifications using filtering, e.g. reduction of information by using priority, element types, position or time
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/06Notations for structuring of protocol data, e.g. abstract syntax notation one [ASN.1]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明提供一种基于Marvell交换芯片在获取报文源端口时CPU高效处理方法。本发明在Linux内核收包流程中,在上送协议栈处理之前,对于带有DSA tag的协议报文,在从DSA tag中获取到报文的源端口信息之后,将DSA tag替换成VLAN tag,并将源端口设置为VLAN id,应用层协议只接收带有VLAN tag的报文,即协议报文,报文中的VLAN id即为报文源端口;对于不需要获取源端口信息的数据报文,在上送协议栈处理之前,可以直接去掉DSA tag,通过这种方式实现在Linux内核收包和应用层协议收包都可以更加高效率地处理需要获取源端口的协议报文。

Description

一种基于Marvell交换芯片在获取报文源端口时CPU高效处理 方法
技术领域
本发明提供一种基于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中,最后上送协议栈走协议处理流程。
在上述的一种基于Marvell交换芯片在获取报文源端口时CPU高效处理方法,对于带有DSA tag的协议报文,需要从DSA tag中获取到报文的源端口信息后,再进行字段替换。
在上述的一种基于Marvell交换芯片在获取报文源端口时CPU高效处理方法,上送协议栈处理前,对需要上送CPU的报文添加带有源端口信息的DSA tag。
在上述的一种基于Marvell交换芯片在获取报文源端口时CPU高效处理方法,上送协议栈处理时,对于带有DSA tag字段的数据报文,去掉4字节DSA tag字段,最后上送协议栈走数据处理流程。
在上述的一种基于Marvell交换芯片在获取报文源端口时CPU高效处理方法,应用层协议收包时,设置只接收带有VLAN tag的报文,即协议报文,报文中的VLAN id即为报文源端口。
与现有技术相比,本发明的有益效果是:1.在Linux内核收包处理中,对于协议报文,不需要删除4个字节的DSA tag字段,不修改报文的大小,避免了对Linux内核报文结构的sk_buff的修改,提高了报文处理效率。2.在应用层收包处理中,由于在Linux内核中已将协议报文修改为带有VLAN tag的报文,所以在收包时,对于协议模块可以只接收带有VLANtag的报文即为协议报文,不需要再判断是否为数据报文然后做丢弃处理;而对于网管模块只接收不带VLAN Tag的数据报文,简化了应用层报文处理流程,提高了应用层报文处理效率。
附图说明
图1是通信设备的环形组网示意图。
图2是带DSA tag的报文结构示意图。
图3是DSA tag结构及字段值示意图。
图4是内核收包处理流程示意图。
图5是应用层协议收包处理流程示意图。
图6是上送协议栈的协议报文结构示意图。
图7是VLAN tag字段及值示意图。
图8是Linux内核收包处理流程示意图。
图9是相应的应用层协议的处理流程示意图。
具体实施方式
下面通过实施例,并结合附图,对本发明的技术方案作进一步具体的说明。
实施例:
首先介绍下改进Linux内核的协议栈前处理,具体包含以下步骤:
(1)CPU收到交换芯片上送的报文后,首先需解析报文,通过关键字判断是协议报文还是数据报文;
(2)对于普通的数据报文(例如网管报文),由于不需要获取报文源端口信息,可以直接去掉4个字节的DSA tag字段,再通过Linux内核协议栈上送到网管模块处理;
(3)对于EAPS等协议报文将4个字节的DSA tag转换为4个字节的VLAN tag(如图7所示),将源端口信息写到VLAN id中;
(4)直接通过Linux内核协议栈上送到应用协议(EAPS)处理;
改进应用层收包处理包含以下步骤:
(5)网管模块只需要处理不带VLAN Tag的网管数据报文,带VLAN Tag的协议报文直接丢弃,直接按网管流程进行解析处理;
(6)协议模块只处理带VLAN Tag的协议报文,不带VLAN Tag的报文直接丢弃,从VLAN Tag中获取VLAN id,即为报文源端口信息。
(7)继续协议处理流程。
本发明基于改进Linux内核的协议栈前处理,对报文进行处理的具体实现方法包括:
步骤S1.配置交换芯片使其自动为需要上送CPU的报文添加带有源端口信息的DSAtag;
步骤S2.Linux内核收包时,在上送协议栈处理之前,对于带有DSA tag的协议报文,在从DSA tag中获取到报文的源端口信息后,将DSA tag修改为VLAN tag(如图7所示),再将源端口信息写入到VLAN id中,上送协议栈走协议处理流程;
步骤S3.Linux内核收包时(如图8所示),在上送协议栈处理之前,对于带有DSAtag的数据报文,去掉4字节DSA tag,上送协议栈走数据处理流程;
步骤S4.应用层协议收包时,设置只接收带有VLAN tag的报文,即协议报文,报文中的VLAN id即为报文源端口(如图9所示)。
以上所述,仅是本发明的较佳实施例,并非对本发明作任何形式上的限制,凡是依据本发明的技术实质对以上实施例所作的任何简单增删裁剪、等同变化与修饰,均仍属本发明技术方案的保护范围。

Claims (1)

1.一种基于Marvell交换芯片在获取报文源端口时CPU高效处理方法,其特征在于:上送协议栈处理时,将带有DSA tag后缀的协议报文,替换为VLAN tag后缀,再将源端口信息写入到VLAN id中,最后上送协议栈走协议处理流程;
对于带有DSA tag的协议报文,需要从DSA tag中获取到报文的源端口信息后,再进行字段替换;
上送协议栈处理前,对需要上送CPU的报文添加带有源端口信息的DSA tag;
上送协议栈处理时,对于带有DSA tag字段的数据报文,去掉4字节DSA tag字段,最后上送协议栈走数据处理流程;
应用层协议收包时,设置只接收带有VLAN tag的报文,即协议报文,报文中的VLAN id即为报文源端口。
CN201810076454.5A 2018-01-26 2018-01-26 一种基于Marvell交换芯片在获取报文源端口时CPU高效处理方法 Active CN108173699B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810076454.5A CN108173699B (zh) 2018-01-26 2018-01-26 一种基于Marvell交换芯片在获取报文源端口时CPU高效处理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810076454.5A CN108173699B (zh) 2018-01-26 2018-01-26 一种基于Marvell交换芯片在获取报文源端口时CPU高效处理方法

Publications (2)

Publication Number Publication Date
CN108173699A CN108173699A (zh) 2018-06-15
CN108173699B true CN108173699B (zh) 2021-04-02

Family

ID=62516011

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810076454.5A Active CN108173699B (zh) 2018-01-26 2018-01-26 一种基于Marvell交换芯片在获取报文源端口时CPU高效处理方法

Country Status (1)

Country Link
CN (1) CN108173699B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111083581B (zh) * 2019-12-27 2021-11-19 瑞斯康达科技发展股份有限公司 Onu业务传输配置调整方法和装置及设备

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101155343A (zh) * 2006-09-29 2008-04-02 华为技术有限公司 无线网络中终端加入多播广播业务的方法及其系统
CN102474449A (zh) * 2009-11-02 2012-05-23 马维尔国际贸易有限公司 基于虚拟接口的交换装置和方法
CN103209141A (zh) * 2012-01-17 2013-07-17 中兴通讯股份有限公司 一种交换芯片处理数据报文的方法及交换芯片
US8885480B2 (en) * 2011-10-20 2014-11-11 Cavium, Inc. Packet priority in a network processor
CN104796290A (zh) * 2015-04-24 2015-07-22 广东电网有限责任公司信息中心 一种数据安全管控方法及平台
US9565118B1 (en) * 2010-05-26 2017-02-07 Marvell International Ltd. Methods and apparatus for handling management packets in an audio video bridging (AVB) network
CN106797344A (zh) * 2015-06-30 2017-05-31 华为技术有限公司 通过远端网元端口通信的方法和装置

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101155343A (zh) * 2006-09-29 2008-04-02 华为技术有限公司 无线网络中终端加入多播广播业务的方法及其系统
CN102474449A (zh) * 2009-11-02 2012-05-23 马维尔国际贸易有限公司 基于虚拟接口的交换装置和方法
US9565118B1 (en) * 2010-05-26 2017-02-07 Marvell International Ltd. Methods and apparatus for handling management packets in an audio video bridging (AVB) network
US8885480B2 (en) * 2011-10-20 2014-11-11 Cavium, Inc. Packet priority in a network processor
CN103209141A (zh) * 2012-01-17 2013-07-17 中兴通讯股份有限公司 一种交换芯片处理数据报文的方法及交换芯片
CN104796290A (zh) * 2015-04-24 2015-07-22 广东电网有限责任公司信息中心 一种数据安全管控方法及平台
CN106797344A (zh) * 2015-06-30 2017-05-31 华为技术有限公司 通过远端网元端口通信的方法和装置

Also Published As

Publication number Publication date
CN108173699A (zh) 2018-06-15

Similar Documents

Publication Publication Date Title
EP3681081A1 (en) Data transmission method, device and system
CN105684382A (zh) 报文的控制方法、交换机及控制器
CN1839378A (zh) 用于高带宽总线的端口适配器
CN110224935B (zh) 一种处理组播数据报文的方法及装置
CN112243205A (zh) 一种基于物联网的多协议融合处理方法
FI125109B (fi) Menetelmä verkkolaitedatan hallitsemiseksi ja verkonhallintajärjestelmä
CN103546343A (zh) 网络流量分析系统的网络流量展示方法和系统
CN103260190B (zh) 基于lte长期演进系统网络的安全审计方法
CN109379764B (zh) 报文发送方法及装置
CN109861998B (zh) 一种基于北斗短报文协议的插件式动态解析系统及方法
US20150016449A1 (en) Method, System and Apparatus for an OpenFlow Hybrid Architecture Network Device
CN108173699B (zh) 一种基于Marvell交换芯片在获取报文源端口时CPU高效处理方法
CN101741745A (zh) 识别对等网络应用流量的方法及其系统
CN105656643B (zh) 一种基于网络配置协议进行兼容管理的方法及设备
CN107172013B (zh) 一种数据传输方法及系统
CN106330768B (zh) 一种基于云计算的应用识别方法
EP1624642A3 (en) Apparatus, method and system for providing information in accordance with one of a plurality of protocols
CN114125024B (zh) 音频传输方法、电子设备及可读存储介质
CN106250437A (zh) 一种电子监察前端数据采集方法及系统
JP2020533905A5 (zh)
CN111277364B (zh) 一种基于信息标识码的信息转发方法
CN112543142B (zh) 基于fpga实现rstp环网协议的方法和装置
CN112953988B (zh) 一种基于ftp的数据对接方法及装置
CN112291118A (zh) 一种基于fpga的多核数据处理装置及方法
CN109450826B (zh) 报文处理方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant