CN110851289B - 协议报文处理方法及交换机 - Google Patents

协议报文处理方法及交换机 Download PDF

Info

Publication number
CN110851289B
CN110851289B CN201911011352.6A CN201911011352A CN110851289B CN 110851289 B CN110851289 B CN 110851289B CN 201911011352 A CN201911011352 A CN 201911011352A CN 110851289 B CN110851289 B CN 110851289B
Authority
CN
China
Prior art keywords
message
port
cpu
physical channel
chip
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
CN201911011352.6A
Other languages
English (en)
Other versions
CN110851289A (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.)
New H3C Security Technologies Co Ltd
Original Assignee
New H3C Security 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 New H3C Security Technologies Co Ltd filed Critical New H3C Security Technologies Co Ltd
Priority to CN201911011352.6A priority Critical patent/CN110851289B/zh
Publication of CN110851289A publication Critical patent/CN110851289A/zh
Application granted granted Critical
Publication of CN110851289B publication Critical patent/CN110851289B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/545Interprogram communication where tasks reside in different layers, e.g. user- and kernel-space
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/10Packet switching elements characterised by the switching fabric construction

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请实施例提出一种协议报文处理方法及交换机,交换机包括CPU、第一交换芯片、预处理单元、连接第一交换芯片与预处理单元的第一物理通道以及连接预处理单元和CPU的第二物理通道。预处理单元用于对指定类别的协议报文执行内核态硬件处理。第一交换芯片识别已收到的第一报文,确定第一报文为指定类别的协议报文且出接口为指定CPU端口,则将第一报文通过连接第一物理通道的端口发往预处理单元。预处理单元对第一报文执行内核态硬件处理,将完成内核态硬件处理的第一报文通过第二物理通道发往CPU。如此,可以提高对发往CPU的协议报文的处理效率。

Description

协议报文处理方法及交换机
技术领域
本申请涉及通信技术领域,具体而言,涉及一种协议报文处理方法及交换机。
背景技术
交换机通常包括处理器(Central Processing Unit,CPU)及交换芯片,在CPU仅用于处理一些控制报文、协议报文的情况下,CPU由于需要处理的数据量小,通常采用传统的Linux内核态数据处理方式。
但随着交换机越来越多地应用于运营商网络,CPU需要处理的报文数量越来越多,这对CPU进行报文处理的效率提出了很高的要求。
发明内容
有鉴于此,本申请实施例的目的之一在于提供一种协议报文处理方法及交换机,以提高对发往CPU的协议报文的处理效率。
为了实现上述目的,本申请实施例采用的技术方案如下:
第一方面,本申请实施例提供一种协议报文处理方法,包括:
设置连接第一交换芯片与预处理单元的第一物理通道以及连接预处理单元与CPU的第二物理通道;预处理单元用于对指定类别的协议报文执行内核态硬件处理;
第一交换芯片识别已收到的第一报文;
确定第一报文为指定类别的协议报文且出接口为第一交换芯片的指定CP U端口,则第一交换芯片将第一报文通过连接第一物理通道的端口发往预处理单元;
预处理单元对第一报文执行内核态硬件处理,将完成内核态硬件处理的第一报文通过第二物理通道发往CPU。
第二方面,本申请实施例提供一种交换机,包括CPU、第一交换芯片、预处理单元、连接第一交换芯片与CPU的第一物理通道以及连接预处理单元与CPU的第二物理通道;预处理单元用于对指定类别的协议报文执行内核态硬件处理;
第一交换芯片识别已收到的第一报文,确定第一报文为指定类别的协议报文且出接口为第一交换芯片的指定CPU端口,则将第一报文通过连接第一物理通道的端口发往预处理单元;
预处理单元对第一报文执行内核态硬件处理,将完成内核态硬件处理的第一报文通过第二物理通道发往CPU。
本申请实施例提供一种协议报文处理方法及交换机,交换机包括CPU、第一交换芯片、预处理单元、连接第一交换芯片与预处理单元的第一物理通道以及连接预处理单元与CPU的第二物理通道。预处理单元用于对指定类别的协议报文执行内核态硬件处理。第一交换芯片识别已收到的第一报文,确定第一报文为指定类别的协议报文且出接口为第一交换芯片的指定CPU端口,则将第一报文通过连接第一物理通道的端口发往预处理单元。预处理单元对第一报文执行内核态硬件处理,将完成内核态硬件处理的第一报文通过第二物理通道发往CPU。通过上述设计,可以通过预处理单元完成对协议报文的内核态硬件处理,相较于CPU的内核态处理,加快了处理速度,提高了处理效率。此外,完成内核态硬件处理的协议报文,可以不必经过CPU的内核态,直接由CPU进行用户态处理,避免了协议报文在CPU的内核态与用户态间的多次拷贝,进一步提高了对发往CPU的协议报文的处理效率。
为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本申请一实施例提供的协议报文处理方法的流程示意图;
图2示出了本申请另一实施例提供的协议报文处理方法的流程示意图;
图3示出了应用图2所示协议报文处理方法的交换机的架构示意图;
图4示出了本申请另一实施例提供的交换机的架构示意图;
图5示出了应用于图4所示交换机的协议报文处理方法的流程示意图。
具体实施方式
下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
请参照图1,图1示出了本申请一实施例提供的一种协议报文处理方法的流程示意图,该方法包括以下步骤。
步骤101,设置连接第一交换芯片与预处理单元的第一物理通道以及连接预处理单元与CPU的第二物理通道;预处理单元用于对指定类别的协议报文执行内核态硬件处理。
步骤102,第一交换芯片识别已收到的第一报文。
步骤103,确定第一报文为指定类别的协议报文且出接口为第一交换芯片的指定CPU端口,则第一交换芯片将第一报文通过连接第一物理通道的端口发往预处理单元。
其中,连接第一物理通道的端口被配置为第一交换芯片的级联口,使得第一交换芯片通过连接第一物理通道的端口发送的第一报文携带有在第一交换芯片内的系统头信息,该系统头信息包括第一交换芯片对第一报文的解析结果和转发处理信息。
步骤104,预处理单元对第一报文执行内核态硬件处理,将完成内核态硬件处理的第一报文通过第二物理通道发往CPU。
CPU可以根据第一报文携带的系统头信息对第一报文进行处理。
通过图1所示流程,第一交换芯片发往CPU的协议报文可以通过预处理单元完成内核态硬件处理,由于内核态硬件处理的速度比CPU的内核态处理的速度快,提高了对发往CPU的协议报文的处理效率。此外,完成内核态硬件处理的协议报文可以不必经过CPU的内核态处理,直接由CPU进行用户态处理,避免了该协议报文在CPU的内核态与用户态之间的多次拷贝,进一步提高了对发往CPU的协议报文的处理效率。
图2示出了本申请另一实施例提供的协议报文处理方法的流程示意图,该方法可以应用于交换机,交换机包括CPU、交换芯片、预处理单元、连接交换芯片与预处理单元的第一物理通道以及连接预处理单元与CPU的第二物理通道。
其中,交换芯片可以基于ASIC(Application Specific Integrated Circuit,专用集成电路)或FPGA(Field-Programmable Gate Array,现场可编程门阵列)等芯片实现。预处理单元为可以实现内核态处理的硬件,比如支持DPDK(Data Plane Development Kit,数据平面开发套件)功能的网卡。
比如图3所示,交换机100包括CPU 110、交换芯片120、物理通道140、物理通道150以及支持DPDK功能的网卡130。
交换芯片120包括CMIC(CPU Management Interface Controller,CPU管理接口控制器)端口P21、GMAC(GIGA Media Access Control,千兆媒体访问控制)端口P22、端口P23。其中,端口P23可以是GMAC端口,也可以是其他类型的端口。以上端口仅为举例说明,并不限定于以上几个端口。
CPU 110包括端口P11、端口P12以及端口P13。
交换芯片120的CMIC端口P21与CPU 110的端口P11相连,交换芯片120的GMAC端口P22与CPU 110的端口P12相连。
其中,交换芯片120通过CMIC端口P21发送的报文,携带有系统头信息(又称“内部头信息”),系统头信息包括交换芯片120对报文的解析结果、转发处理信息等。
解析结果包括报文类型信息(如,单播、组播、广播等)、VLAN(Virtual Local AreaNetwork,虚拟局域网)信息、报文在交换芯片的入端口号等,转发处理信息包括交换芯片120依据转发表项确定的报文的出端口号等。其中,端口号是指物理端口号。
本实施例中,支持DPDK功能的网卡130用于对TCP(Transmission ControlProtocol,传输控制协议)报文执行内核态硬件处理。可以理解,TCP报文仅为举例说明,网卡130还可以用于处理其他类别的协议报文。
网卡130包括端口P31和端口P32。物理通道140连接交换芯片120的端口P23与网卡130的端口P31,物理通道150连接网卡130的端口P32与CPU 110的端口P13。
CPU 110为X86 CPU,其操作系统包括内核态和用户态。内核态包括板级支持包(Board Support Package,BSP)、SDK(Software Development Kit,软件开发套件)BDE(Broadcom Device Enumerator,Broadcom硬件枚举)。
用户态包括驱动进程112、转发进程113、LMDB(Lightning Memory-MappedDatabase,轻量级内存映射数据库)114及应用进程1至M(M为正整数),不同应用进程用于对不同类型的协议报文进行处理,如BFD(Bidirectional Forwarding Detection,双向转发检测)报文、TCP(Transmission Control Protocol,传输控制协议)报文、UDP(UserDatagram Protocol,用户数据报协议)报文等。可以理解,上述应用进程处理的协议报文类别仅为举例说明,用户态还可以存在处理其他类别的协议报文的应用进程。
LMDB 114存储有产品支撑数据信息,产品支撑数据信息包括交换机100的交换芯片的端口描述信息,比如物理端口号与接口索引的对应关系。LMDB 114由驱动进程112进行维护。
驱动进程112基于一软件开发套件(Software Development Kit,SDK)实现。驱动进程112包括收发模块及模块1至N(N为正整数),这些模块封装了用于对协议报文执行不同处理的指令,以供上层的应用进程1至N、转发进程113调用。其中,经CPU内核态处理的报文将通过驱动进程112的收发模块上送至转发进程113。
转发进程113用于对协议报文进行转发处理,将交换芯片发送的协议报文发送给相应的应用进程处理,或者,将经应用进程处理的协议报文发送给相应的交换芯片。
转发进程113加载有驱动动态库(lib)、内核态硬件处理动态库(lib)。本实施例中,内核态硬件处理lib为与支持DPDK功能的网卡130对应的DPDK lib。
转发进程113调用驱动lib创建了收包线程和发包线程。
收包线程可以调用DPDK lib中的收包接口,获得支持DPDK功能的网卡130通过物理通道150发送的协议报文。发包线程可以调用DPDK lib中的发包接口,通过CPU 110上连接物理通道150的端口P13将协议报文发往交换芯片。
每个应用进程加载有驱动lib,通过调用驱动lib中的驱动接口,实现对驱动进程112中相应指令的调用,从而实现对协议报文的处理。
图2示出了交换机100对交换芯片120需要发往CPU 110的TCP报文的处理流程,包括以下步骤:
步骤201,交换芯片识别已收到的报文。
图3中,交换芯片120配置一个ACL(Access Control List,访问控制列表)表项。匹配项包括TCP类型及交换芯片120的指定CPU端口的标识,本实施例中,指定CPU端口为交换芯片120的CMIC端口P21。动作项为重定向到连接物理通道140的端口P23。其中,关于匹配项和动作项的描述仅为举例说明,并不限定于此。
交换芯片120收到报文d1,对报文d1进行识别,识别出报文d1的协议类型为TCP类型、出接口为CMIC端口P21。
步骤202,确定报文为指定类别的协议报文且出接口为交换芯片的指定CPU端口,则交换芯片将报文的系统头信息添加到报文中,将携带系统头信息的报文通过连接第一物理通道的端口发往预处理单元。
交换芯片120根据报文d1的协议类型、出接口标识,查找到配置的ACL表项,依据ACL表项的动作项,将连接物理通道140的端口P23作为报文d1的出接口,并确定端口P23为本芯片的级联口,则将报文d1在交换芯片120的系统头信息添加到报文d1中,得到报文d2,将报文d2通过端口P23发送出去。
报文d2通过端口P23连接的物理通道140被发送至端口P31,通过端口P31进入网卡130。
步骤203,预处理单元对报文执行内核态硬件处理,将完成内核态硬件处理的报文通过第二物理通道发往CPU。
网卡130对报文d2执行内核态硬件处理,并将完成内核态硬件处理的报文d2通过连接物理通道150的端口P32发送出去。
报文d2通过端口P32连接的物理通道150被发送至端口P13,通过端口P13进入CPU110。
步骤204,CPU中转发进程的收包线程,调用内核态硬件处理lib的收包接口,获得预处理单元通过第二物理通道发送的报文。
通过物理通道150被发送至CPU 110的报文d2,被DPDK lib添加到一收包队列中。
CPU 110的转发进程113中的收包线程轮询收包队列,当查询到收包队列中的报文d2时,调用DPDK lib提供的收包接口,从收包队列中取出报文d2。
步骤205,收包线程根据系统头信息确定交换机收到报文的交换芯片,以及交换芯片收到报文的端口,根据确定的标识信息和端口号,从LMDB中查询对应的接口索引。
收包线程从报文d2携带的系统头信息中确定交换机100收到报文d2的交换芯片120的标识信息,以及交换芯片120上报文d2的接收端口的端口号,根据确定的标识信息及端口号,从LMDB 115中查询对应的接口索引。查询到的接口索引为报文d2的源接口索引。
本实施例将端口描述信息存储于LMDB中,由驱动进程进行维护。相较于将端口描述信息直接存储于驱动进程中,可以避免转发进程中的收包线程通过进程间通信的方式,来访问驱动进程中的端口描述信息,提高了解析效率。
步骤206,收包线程将报文及查询到的接口索引发送给对应的应用进程进行处理。
收包线程将报文d2的源接口索引及报文d2发送给用于处理TCP报文的应用进程进行处理。
步骤207,转发进程中的发包线程,从应用进程获得经过处理的协议报文,调用驱动lib中的驱动接口,对经过处理的协议报文进行解析,生成经过处理的协议报文的系统头信息,将该系统头信息添加到经过处理的协议报文中,该系统头信息指示经过处理的协议报文的转发方式。
应用进程对报文d2进行处理后,得到经过处理的报文d2,通知转发进程113对经过处理的报文d2进行转发。
转发进程113获得经过处理的报文d2,通过发包线程调用驱动lib的驱动接口,对经过处理的报文d2进行解析,确定经过处理的报文d2的出口信息,生成对应的系统头信息,该系统头信息指示经过处理的报文d2的出口信息。发包线程将生成的系统头信息添加到经过处理的报文d2中,得到报文d3。
步骤208,发包线程调用内核态硬件处理lib中的发包接口,通过CPU上连接第二物理通道的端口发送添加系统头信息的经过处理的协议报文。
转发进程113的发包线程调用驱动lib中的驱动接口,通过CPU 110上连接物理通道150的端口P13发送报文d3,报文d3通过物理通道150被发送至端口P32,通过端口P32进入网卡130。
网卡130将报文d3通过连接物理通道140的端口P31发往交换芯片120。
交换芯片120从端口P23接收到报文d3,确定端口P23为级联口,则识别接收的报文d3携带的系统头信息,根据识别的系统头信息对报文d3进行转发处理。
图2-图3所示例子中,交换芯片需要发往CPU的协议报文可以通过预设物理单元完成内核态硬件处理,相较于CPU的内核态处理,加快了处理速度。此外,完成内核态硬件处理的协议报文可以不必经过CPU的内核态处理,直接由CPU进行用户态处理,避免了报文在CPU的内核态与用户态间的多次拷贝,进一步提高了对发往CPU的协议报文的处理效率。
图4所示为本申请另一实施例提供的交换机400,交换机400包括CPU410、交换芯片420、交换芯片430、物理通道450、物理通道460以及支持DPDK功能的网卡440。
CPU 410包括端口P41、端口P42、端口P43及端口P45,交换芯片420包括CMIC端口P51、GMAC端口P52及端口P53。
交换芯片420的CMIC端口P51与CPU 410的端口P41相连,交换芯片420的GMAC端口P52与CPU 410的端口P42相连。
支持DPDK功能的网卡440包括端口P61和端口P62。其中,物理通道450连接交换芯片420的端口P53与网卡440的端口P61,物理通道460连接网卡440的端口P62与CPU 410的端口P43。
其中,交换芯片420上连接物理通道450的端口P53被配置为级联口,使得交换芯片420通过端口P53发送的报文携带有该报文在交换芯片420的系统头信息。
交换芯片430包括CMIC端口P54和GMAC端口P55,其中,CMIC端口P54与CPU 410的端口P44相连,GMAC端口P55与CPU 410的端口P 45相连。
交换芯片430配置一个ACL表项,其中,匹配项包括TCP类型、交换芯片430的指定CPU端口的标识,本实施例中,指定CPU端口为交换芯片430的CMIC端口P54。动作项为重定向到连接物理通道450的端口P53。
图5示出了交换机400对交换芯片430需要发往CPU 410的TCP报文的处理流程,包括以下步骤:
步骤501,第二交换芯片识别已收到的报文。
交换芯片430收到报文d4,对报文d4进行识别,识别出报文d4的协议类型为TCP类型、出接口为CMIC端口P54。
步骤502,确定报文为指定类别的协议报文且出接口为第二交换芯片的指定CPU端口,则第二交换芯片将第一报文发送至第一交换芯片,第一交换芯片将报文的系统头信息添加到报文中,并将添加系统头信息的报文通过连接第一物理通道的端口发往预处理单元。
交换芯片430根据报文d4的协议类型、出接口标识,查找到配置的ACL表项,根据ACL表项的动作项,将连接物理通道450的端口P53作为报文d4出接口,并确定连接物理通道450的端口P53位于交换芯片420,则将报文d4通过芯片间互联端口发送至交换芯片420。
交换芯片420接收报文d4,确定重定向的出接口(即,端口P53)位于本芯片,且端口P53为级联口,则获取报文d4在本芯片内的系统头信息,将获取的系统头信息添加到报文d4中,得到报文d5。交换芯片420通过端口P53发送报文d5。
报文d5将通过端口P53连接的物理通道450到达端口P61,并通过端口P61进入支持DPDK功能的网卡440。
步骤503,预处理单元对报文执行内核态硬件处理,将完成内核态硬件处理的报文通过第二物理通道发往CPU。
支持DPDK功能的网卡440对报文d5执行内核态硬件处理,并通过连接物理通道460的端口P62发送完成内核态硬件处理的报文d5。
完成内核态硬件处理的报文d5将通过物理通道460到达端口P43,并通过端口P43进入CPU 410。CPU 410对报文d5的后续处理流程与图2所示类似,在此不再赘述。
本实施例中,交换芯片420也可以配置有一个ACL表项,其中,匹配项包括TCP类型和交换芯片420的CMIC端口P51的标识,动作项为重定向到物理通道450连接的端口P53。在此情况下,交换机400对交换芯片420需要发往CPU 410的TCP报文的处理流程与图2所示类似,在此不再赘述。
图4-图5所示例子中,交换芯片需要发往CPU的协议报文可以通过预设物理单元完成内核态硬件处理,相较于CPU的内核态处理,加快了处理速度。此外,完成内核态硬件处理的协议报文可以不必经过CPU的内核态处理,直接由CPU进行用户态处理,从而避免协议报文在CPU的内核态与用户态间的多次拷贝,进一步提高对发往CPU的协议报文的处理效率。
本申请的上述实施例中,交换机可以是盒式交换机,也可以是框式交换机。其中,在本实施例的交换机是框式交换机的情况下,上述的CPU、交换芯片、预处理单元、物理通道均位于框式交换机的一个板上,该板可以是框式交换机的接口板、主控板、业务板等中的任意一种,本实施例对此没有限制。
需要说明的是,术语“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅为本申请的可选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (11)

1.一种协议报文处理方法,其特征在于,所述方法包括:
设置连接第一交换芯片与预处理单元的第一物理通道以及连接所述预处理单元与CPU的第二物理通道;所述预处理单元用于对指定类别的协议报文执行内核态硬件处理;
所述第一交换芯片识别已收到的第一报文;
确定所述第一报文为所述指定类别的协议报文且出接口为所述第一交换芯片的指定CPU端口,则所述第一交换芯片将所述第一报文通过连接所述第一物理通道的端口发往所述预处理单元;
所述预处理单元对所述第一报文执行所述内核态硬件处理,将完成所述内核态硬件处理的所述第一报文通过所述第二物理通道发往所述CPU。
2.根据权利要求1所述的方法,其特征在于,还包括:
第二交换芯片识别待转发的第二报文;
确定所述第二报文为所述指定类别的协议报文且出接口为所述第二交换芯片的指定CPU端口,则所述第二交换芯片将所述第二报文发送至所述第一交换芯片,所述第一交换芯片将所述第二报文通过连接所述第一物理通道的端口发往所述预处理单元;
所述预处理单元对所述第一报文执行所述内核态硬件处理,将完成所述内核态硬件处理的所述第二报文通过所述第二物理通道发往所述CPU。
3.根据权利要求2所述的方法,其特征在于,
所述第一交换芯片配置有第一访问控制列表ACL表项,所述第一ACL表项的匹配项包括所述指定类别以及所述第一交换芯片的指定CPU端口的标识,动作项为重定向到连接所述第一物理通道的端口;和/或,
第二交换芯片配置有第二ACL表项,所述第二ACL表项的匹配项包括所述指定类别及所述第二交换芯片的指定CPU端口的标识,动作项为重定向到连接所述第一物理通道的端口。
4.根据权利要求1-3中任意一项所述的方法,其特征在于,连接所述第一物理通道的端口被配置为所述第一交换芯片的级联口,使得所述第一交换芯片通过连接所述第一物理通道的端口发送的报文携带有该报文在所述第一交换芯片的系统头信息,所述系统头信息包括所述第一交换芯片对该报文的解析结果和转发处理信息。
5.一种交换机,其特征在于,包括CPU、第一交换芯片、预处理单元、连接所述第一交换芯片与所述预处理单元的第一物理通道以及连接所述预处理单元与所述CPU的第二物理通道;所述预处理单元用于对指定类别的协议报文执行内核态硬件处理;
所述第一交换芯片识别已收到的第一报文,确定所述第一报文为所述指定类别的协议报文且出接口为所述第一交换芯片的指定CPU端口,则将所述第一报文通过连接所述第一物理通道的端口发往所述预处理单元;
所述预处理单元对所述第一报文执行所述内核态硬件处理,将完成所述内核态硬件处理的所述第一报文通过所述第二物理通道发往所述CPU。
6.根据权利要求5所述的交换机,其特征在于,还包括第二交换芯片;
所述第二交换芯片识别已收到的第二报文,确定所述第二报文为所述指定类别的协议报文且出接口为所述第二交换芯片的指定CPU端口,则将所述第二报文发送至所述第一交换芯片,所述第一交换芯片将所述第二报文通过连接所述第一物理通道的端口发往所述预处理单元;
所述预处理单元对所述第二报文执行所述内核态硬件处理,将完成所述内核态硬件处理的所述第一报文通过所述第二物理通道发往所述CPU。
7.根据权利要求6所述的交换机,其特征在于,
所述第一交换芯片配置有第一访问控制列表ACL表项,所述第一ACL表项的匹配项包括所述指定类别以及所述第一交换芯片的指定CPU端口的标识,动作项为重定向到连接所述第一物理通道的端口;和/或,
第二交换芯片配置有第二ACL表项,所述第二ACL表项的匹配项包括所述指定类别及所述第二交换芯片的指定CPU端口的标识,动作项为重定向到连接所述第一物理通道的端口。
8.根据权利要求5-7中任意一项所述的交换机,其特征在于,连接所述第一物理通道的端口被配置为所述第一交换芯片的级联口,使得所述第一交换芯片通过连接所述第一物理通道的端口发送的报文携带有该报文在所述第一交换芯片的系统头信息,所述系统头信息包括所述第一交换芯片对该报文的解析结果和转发处理信息。
9.根据权利要求8所述的交换机,其特征在于,所述CPU包括转发进程;
所述转发进程加载内核态硬件处理动态库和驱动动态库,调用所述驱动动态库创建收包线程;
所述收包线程调用所述内核态硬件处理动态库中的收包接口,获得所述预处理单元通过所述第二物理通道发送的所述第一报文,并调用所述驱动动态库中的驱动接口,对所述第一报文携带的所述系统头信息进行处理。
10.根据权利要求9所述的交换机,其特征在于,所述CPU还包括轻量级内存映射数据库LMDB,所述LMDB存储有所述交换机中交换芯片的端口描述信息;
所述收包线程根据所述系统头信息确定所述交换机收到所述第一报文的交换芯片,以及该交换芯片收到所述第一报文的端口;根据该交换芯片的标识信息和该端口的端口号,从所述LMDB中查询对应的接口索引,以使所述CPU中的其他处理进程根据所述接口索引对所述第一报文进行处理。
11.根据权利要求10所述的交换机,其特征在于,
所述转发进程调用所述驱动动态库创建发包线程;
所述发包线程从所述其他处理进程获得经过处理的协议报文,调用所述驱动动态库中的驱动接口,对所述经过处理的协议报文进行解析,生成所述经过处理的协议报文的系统头信息,该系统头信息指示所述经过处理的协议报文的转发方式;将该系统头信息添加到所述经过处理的协议报文中;调用所述内核态硬件处理动态库中的发包接口,通过所述CPU上连接所述第二物理通道的端口发送添加该系统头信息的经过处理的协议报文。
CN201911011352.6A 2019-10-23 2019-10-23 协议报文处理方法及交换机 Active CN110851289B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911011352.6A CN110851289B (zh) 2019-10-23 2019-10-23 协议报文处理方法及交换机

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911011352.6A CN110851289B (zh) 2019-10-23 2019-10-23 协议报文处理方法及交换机

Publications (2)

Publication Number Publication Date
CN110851289A CN110851289A (zh) 2020-02-28
CN110851289B true CN110851289B (zh) 2022-11-08

Family

ID=69597141

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911011352.6A Active CN110851289B (zh) 2019-10-23 2019-10-23 协议报文处理方法及交换机

Country Status (1)

Country Link
CN (1) CN110851289B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112015555B (zh) * 2020-08-28 2023-09-15 瑞斯康达科技发展股份有限公司 一种组播报文处理方法和装置及设备
CN112468413B (zh) * 2020-11-26 2023-04-25 迈普通信技术股份有限公司 报文处理方法、装置、电子设备及存储介质
CN113132257B (zh) * 2021-04-29 2022-04-26 杭州迪普信息技术有限公司 报文处理方法及装置
CN113259400B (zh) * 2021-07-14 2021-09-28 南京易科腾信息技术有限公司 基于网络协议的网络交互系统、方法及存储介质

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102971723A (zh) * 2011-06-28 2013-03-13 华为技术有限公司 一种分布式多进程通信方法和装置
CN103209141A (zh) * 2012-01-17 2013-07-17 中兴通讯股份有限公司 一种交换芯片处理数据报文的方法及交换芯片
WO2014082421A1 (zh) * 2012-11-30 2014-06-05 华为技术有限公司 一种众核处理器进程间相互通信的方法、装置及系统
CN106789759A (zh) * 2016-12-19 2017-05-31 迈普通信技术股份有限公司 一种报文上送方法及交换芯片
CN108199982A (zh) * 2018-01-03 2018-06-22 腾讯科技(深圳)有限公司 报文处理方法、装置、存储介质和计算机设备
CN108628684A (zh) * 2017-03-20 2018-10-09 华为技术有限公司 一种基于dpdk的报文处理方法及计算机设备
CN108650295A (zh) * 2018-03-30 2018-10-12 深圳市风云实业有限公司 协议报文跨层通信方法装置及电子设备
CN109787777A (zh) * 2017-11-10 2019-05-21 北京金山云网络技术有限公司 一种网卡模式切换方法、装置、电子设备及存储介质
CN110048963A (zh) * 2019-04-19 2019-07-23 杭州朗和科技有限公司 虚拟网络中的报文传输方法、介质、装置和计算设备

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102971723A (zh) * 2011-06-28 2013-03-13 华为技术有限公司 一种分布式多进程通信方法和装置
CN103209141A (zh) * 2012-01-17 2013-07-17 中兴通讯股份有限公司 一种交换芯片处理数据报文的方法及交换芯片
WO2014082421A1 (zh) * 2012-11-30 2014-06-05 华为技术有限公司 一种众核处理器进程间相互通信的方法、装置及系统
CN106789759A (zh) * 2016-12-19 2017-05-31 迈普通信技术股份有限公司 一种报文上送方法及交换芯片
CN108628684A (zh) * 2017-03-20 2018-10-09 华为技术有限公司 一种基于dpdk的报文处理方法及计算机设备
CN109787777A (zh) * 2017-11-10 2019-05-21 北京金山云网络技术有限公司 一种网卡模式切换方法、装置、电子设备及存储介质
CN108199982A (zh) * 2018-01-03 2018-06-22 腾讯科技(深圳)有限公司 报文处理方法、装置、存储介质和计算机设备
CN108650295A (zh) * 2018-03-30 2018-10-12 深圳市风云实业有限公司 协议报文跨层通信方法装置及电子设备
CN110048963A (zh) * 2019-04-19 2019-07-23 杭州朗和科技有限公司 虚拟网络中的报文传输方法、介质、装置和计算设备

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Switch allocator for bufferless network-on-chip routers;Giorgos Dimitrakopoulos;《INA-OCMC "11: Proceedings of the Fifth International Workshop on Interconnection Network Architecture: On-Chip, Multi-Chip》;20110123;19-22 *
三层交换机中的协议报文保护的实现;唐智等;《信息安全与通信保密》;20060728(第07期);152-153 *

Also Published As

Publication number Publication date
CN110851289A (zh) 2020-02-28

Similar Documents

Publication Publication Date Title
CN110851289B (zh) 协议报文处理方法及交换机
US11677851B2 (en) Accelerated network packet processing
US10680951B2 (en) System and method for processing and forwarding transmitted information
Honda et al. mSwitch: a highly-scalable, modular software switch
US8078736B1 (en) Virtual interface
CN108768866B (zh) 组播报文跨卡转发方法、装置、网络设备及可读存储介质
CN108200086B (zh) 一种高速网络数据包过滤装置
US20080002681A1 (en) Network wireless/RFID switch architecture for multi-core hardware platforms using a multi-core abstraction layer (MCAL)
CN112929299B (zh) 基于fpga加速卡的sdn云网络实现方法、装置及设备
CN112583797B (zh) 多协议数据处理方法、装置、设备及计算机可读存储介质
Van Tu et al. Accelerating virtual network functions with fast-slow path architecture using express data path
EP2035928A2 (en) Systems and methods for processing data packets using a multi-core abstraction layer (mcal)
CN108650178B (zh) 一种业务报文处理方法、装置及系统
Agbaria et al. LMPI: MPI for heterogeneous embedded distributed systems
CN115033407B (zh) 一种适用于云计算的采集识别流量的系统和方法
WO2001016742A2 (en) Network shared memory
CN115022424B (zh) 水电lcu控制器网卡虚拟控制方法、系统、设备及其介质
CN111224872B (zh) 封包转送方法与装置
US7313139B2 (en) Method for batch processing received message packets
CN112019459A (zh) 基于堆叠系统中设备动态上下线的报文处理方法及系统
US20050163107A1 (en) Packet processing pipeline
US20230040655A1 (en) Network switching with co-resident data-plane and network interface controllers
CN111050339B (zh) 一种基于协议无感知转发的高速数据更新系统及方法
US20230060132A1 (en) Coordinating data packet processing between kernel space and user space
US20200386812A1 (en) Server switch system including field-programmable gate array unit for processing data and operation method thereof

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