[go: up one dir, main page]

CN101217486B - A mobile Internet data load allocation method based on network processor - Google Patents

A mobile Internet data load allocation method based on network processor Download PDF

Info

Publication number
CN101217486B
CN101217486B CN2008100190621A CN200810019062A CN101217486B CN 101217486 B CN101217486 B CN 101217486B CN 2008100190621 A CN2008100190621 A CN 2008100190621A CN 200810019062 A CN200810019062 A CN 200810019062A CN 101217486 B CN101217486 B CN 101217486B
Authority
CN
China
Prior art keywords
data
packet
load distribution
micro
data packet
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.)
Expired - Fee Related
Application number
CN2008100190621A
Other languages
Chinese (zh)
Other versions
CN101217486A (en
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.)
Southeast University
Original Assignee
Southeast University
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 Southeast University filed Critical Southeast University
Priority to CN2008100190621A priority Critical patent/CN101217486B/en
Publication of CN101217486A publication Critical patent/CN101217486A/en
Application granted granted Critical
Publication of CN101217486B publication Critical patent/CN101217486B/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

基于网络处理器的移动互联网数据负载分配方法,一是以网络处理器为实现平台,能够达到千兆的线速处理能力;二是利用A10协议中的GRE Key字段与移动用户唯一身份识别标识IMSI的一一对应关系,通过轮转算法实现对各个不同用户的进行识别并分流。该处理过程在网络处理器IXP2400上,针对CDMA2000移动通信系统,首先根据分组控制功能单元PCF与分组数据服务节点PDSN之间的信令接口A11提取出用于负载分配的信息,即国际移动用户识别信息IMSI和通用路由封装GRE的传输标识GRE Key,然后将数据传输接口A10上的数据流量根据不同的传输标识GRE Key分配到不同的分组控制功能单元PCF或PDSN。

Figure 200810019062

The mobile Internet data load distribution method based on the network processor, firstly, the network processor is used as the realization platform, which can achieve gigabit wire-speed processing capability; The one-to-one correspondence between different users can be identified and distributed through the round-robin algorithm. The processing process is on the network processor IXP2400, for the CDMA2000 mobile communication system, firstly, the information used for load distribution is extracted according to the signaling interface A11 between the packet control function unit PCF and the packet data service node PDSN, that is, the International Mobile Subscriber Identity The information IMSI and universal routing encapsulate the GRE transmission identifier GRE Key, and then distribute the data flow on the data transmission interface A10 to different packet control function units PCF or PDSN according to different transmission identifiers GRE Key.

Figure 200810019062

Description

基于网络处理器的移动互联网数据负载分配方法Mobile internet data load distribution method based on network processor

技术领域technical field

本发明涉及一种移动通信系统的流量分配方法,特别是一种用于CDMA2000(码分多址2000移动通信系统)等移动互联网的数据负载分配方法,属于移动通信网络技术领域。The invention relates to a flow distribution method of a mobile communication system, in particular to a data load distribution method for mobile Internet such as CDMA2000 (Code Division Multiple Access 2000 mobile communication system), and belongs to the technical field of mobile communication networks.

背景技术Background technique

作为近年来发展的一个热点,第三代移动通信系统(3G)已经受到国际瞩目,而且将是21世纪初通信领域最重要的发展方向之一,其中,CDMA2000、WCDMA和TD-SCDMA是三种主流技术。CDMA技术作为宽带移动网络的关键技术,在过去几年里得到了快速的发展。而且随着技术的不断进步,产品价格的不断下降,其应用领域不断拓宽。3G时代的到来必然伴随着网络传输速度的突飞猛进,这也导致了网络流量的与日俱增。然而对于网络中的任何一种设备来说,其可以承担的负载是有限的,同时在不同的负载情况下其工作的效率也是有很大差距的。如果一台网络设备的流量总是接近最大负载,那么其处理能力将大大降低,可能带来极大的时延。流量和效率永远是一对矛盾的存在,如何通过有效的手段将巨大的流量在负载有限的不同设备间进行合理分配,从而使每个设备发挥最大功效,已成为一个非常棘手的问题。As a hot spot in recent years, the third-generation mobile communication system (3G) has attracted international attention, and will be one of the most important development directions in the field of communication in the early 21st century. Among them, CDMA2000, WCDMA and TD-SCDMA are three mainstream technology. As the key technology of broadband mobile network, CDMA technology has developed rapidly in the past few years. Moreover, with the continuous advancement of technology and the continuous decline of product prices, its application fields continue to expand. The advent of the 3G era is bound to be accompanied by a rapid increase in network transmission speed, which also leads to an increase in network traffic. However, for any kind of equipment in the network, the load it can bear is limited, and at the same time, its working efficiency varies greatly under different load conditions. If the traffic of a network device is always close to the maximum load, then its processing capacity will be greatly reduced, which may bring great delay. Traffic and efficiency are always a pair of contradictions. How to reasonably distribute huge traffic among different devices with limited loads through effective means, so that each device can play its best role has become a very difficult problem.

目前的网络负载分配系统所采用的负载均衡算法主要有:轮转(Round-Robin)算法、加权轮转(Weighted Round Robin)算法、最小连接数(Least Connections)算法、加权最小连接数(Weighted Least Connections)算法、目的地址哈希散列(Destination Hashing Scheduling)算法、源地址哈希散列(Source Hashing Scheduling)算法、随机(Random)算法等。在CDMA2000分组域网络中,数据流量正如前文所陈述的那样是十分庞大的,这就需要我们进行分配的网络设备具有快速的数据包转发能力,正是基于这种考虑,我们选用INTEL IXP2400作为分流的平台,由于其特殊的软硬件构造,使得它基本满足了实际网络处理的效能指标。同时鉴于NP硬件平台专用语言的特殊性,我们选择了轮转算法作为系统实现的基础。The load balancing algorithms used in the current network load distribution system mainly include: Round-Robin algorithm, Weighted Round Robin algorithm, Least Connections algorithm, Weighted Least Connections Algorithm, Destination Hashing Scheduling algorithm, Source Hashing Scheduling algorithm, Random algorithm, etc. In the CDMA2000 packet domain network, the data traffic is very large as stated above, which requires the network equipment we distribute to have fast data packet forwarding capabilities. It is based on this consideration that we choose INTEL IXP2400 as the shunt Due to its special hardware and software structure, it basically meets the performance index of actual network processing. At the same time, in view of the particularity of the special language for the NP hardware platform, we chose the round-robin algorithm as the basis of the system realization.

发明内容Contents of the invention

技术问题:针对第三代移动通信系统中核心网内巨大的数据流量,本发明的目的在于提供一种基于网络处理器的移动互联网数据负载分配方法,利用网络处理器IXP2400的快速转发能力有效处理CDMA2000核心网中的大流量数据。Technical problem: Aiming at the huge data traffic in the core network in the third generation mobile communication system, the purpose of the present invention is to provide a mobile Internet data load distribution method based on the network processor, which can be effectively processed by the fast forwarding capability of the network processor IXP2400 Large flow of data in the CDMA2000 core network.

技术方案:本发明的基于网络处理器的CDMA2000数据负载分配方法通过对CDMA2000分组域网络数据包及相关协议的分析,发现其数据包的GRE Key这字段包含了有效的用户信息,且可与通过其与用户(以国际移动用户识别码IMSI来标识)建立一一对应的关系。基于这一发现,本发明通过对GRE Key的分流实现了对用户的合理分配,使得同一用户的数据被分配到同一台机器处理,而不同用户之间的数据也通过算法达到了一定程度的均衡,使得后续的网络设备最大效率的完成任务。Technical scheme: the CDMA2000 data load distribution method based on network processor of the present invention is by the analysis to CDMA2000 group domain network data packet and relevant agreement, finds that the GRE Key field of its data packet contains effective user information, and can be connected with by It establishes a one-to-one correspondence relationship with the user (identified by the International Mobile Subscriber Identity IMSI). Based on this discovery, the present invention realizes the reasonable distribution of users by shunting the GRE Key, so that the data of the same user is allocated to the same machine for processing, and the data between different users also achieves a certain degree of balance through the algorithm , so that subsequent network devices can complete tasks with maximum efficiency.

本发明的基于网络处理器的移动互联网数据负载分配方法处理过程在网络处理器IXP2400上,针对CDMA2000移动通信系统,首先根据分组控制功能单元PCF与分组数据服务节点PDSN之间的信令接口A11提取出用于负载分配的信息,即国际移动用户识别信息IMSI和通用路由封装GRE的传输标识GRE Key,然后将数据传输接口A10上的数据流量根据不同的传输标识GRE Key分配到不同的分组控制功能单元PCF或PDSN。The processing procedure of the mobile Internet data load distribution method based on the network processor of the present invention is on the network processor IXP2400, aiming at the CDMA2000 mobile communication system, at first extract according to the signaling interface A11 between the packet control function unit PCF and the packet data service node PDSN Output the information for load distribution, that is, the international mobile subscriber identification information IMSI and the transmission identification GRE Key of the universal routing encapsulation GRE, and then distribute the data flow on the data transmission interface A10 to different group control functions according to different transmission identification GRE Keys Unit PCF or PDSN.

所述的网络处理器IXP2400在数据层面将IXP2400提供的8个微引擎分为数据包接收模块对应0号微引擎、负载分配模块对应1、2、3、4号微引擎、队列管理模块对应5号微引擎、调度管理模块对应6号微引擎、数据包发送模块对应7号微引擎负载分配的处理步骤是:The network processor IXP2400 divides the 8 micro-engines provided by the IXP2400 into data packet receiving modules corresponding to No. 0 micro-engines, load distribution modules corresponding to No. 1, 2, 3 and 4 micro-engines, and queue management modules corresponding to No. The processing steps of No. 6 micro-engine, scheduling management module corresponding to No. 6 micro-engine, and data packet sending module corresponding to No. 7 micro-engine load distribution are:

步骤1:数据包接收模块从PCF和PDSN的链路上接收所有的数据包,向时依次传至负载分配模块,Step 1: The data packet receiving module receives all data packets from the link of PCF and PDSN, and transmits them to the load distribution module sequentially in time,

步骤2:负载分配模块根据IP头和端口号判断是信令接口A11数据包还是数据传输接口A10数据包分别进行处理,Step 2: According to the IP header and port number, the load distribution module judges whether it is a signaling interface A11 data packet or a data transmission interface A10 data packet to process respectively,

a)如果是信令接口A11数据包,则提取其GRE Key和IMSI并根据GRE Key的不同添充上不同的目的主机MAC地址和IP地址,a) If it is a signaling interface A11 data packet, extract its GRE Key and IMSI and fill in different destination host MAC addresses and IP addresses according to the GRE Key,

b)如果是数据传输接口A10数据包,则获取相应的传输标识GRE Key,然后同样根据传输标识GREKey的不同添充上不同的目的主机MAC地址和IP地址,这样保证了属于同一用户的信令接口A11和数据传输接口A10数据发往了同一台PCF或PDSN,便于对用户进行确认;b) If it is a data packet of the data transmission interface A10, then obtain the corresponding transmission identifier GRE Key, and then also fill in different destination host MAC addresses and IP addresses according to the difference of the transmission identifier GREKey, thus ensuring that the signaling belonging to the same user The data of interface A11 and data transmission interface A10 are sent to the same PCF or PDSN, which is convenient for user confirmation;

步骤3:负载分配模块依次将处理过的数据包传给队列管理模块,并通过数据包发送模块发往交换机。Step 3: The load distribution module sequentially transmits the processed data packets to the queue management module, and sends them to the switch through the data packet sending module.

有益效果:本发明提供了一种基于网络处理器的CDMA2000数据负载分配方法。CDMA2000的核心网因为汇聚了多个基站传来的分组数据,大量的流量数据会极大的加重转发设备的负担。基于网络处理器的CDMA2000数据负载分配系统利用IXP2400的快速转发能力,根据PCF与PDSN之间的A11信令协议提取出用户识别信息IMSI,然后将A10数据流量分配到后续的处理设备。有效避免数据的拥塞,从而提升系统的处理能力,同时可支持后端对不同用户进行附加操作。Beneficial effects: the present invention provides a network processor-based CDMA2000 data load distribution method. Because the core network of CDMA2000 aggregates packet data from multiple base stations, a large amount of traffic data will greatly increase the burden on forwarding equipment. The network processor-based CDMA2000 data load distribution system uses the fast forwarding capability of IXP2400 to extract user identification information IMSI according to the A11 signaling protocol between PCF and PDSN, and then distributes A10 data traffic to subsequent processing equipment. Effectively avoid data congestion, thereby improving the processing capacity of the system, and at the same time support the backend to perform additional operations on different users.

附图说明Description of drawings

下面结合附图和具体实施方式对本发明作进一步的说明。The present invention will be further described below in conjunction with the accompanying drawings and specific embodiments.

图1是CDMA2000-1X核心网分组域结构示意图;Fig. 1 is a schematic diagram of the CDMA2000-1X core network packet domain structure;

图2是A10/A11协议栈模型;Figure 2 is the A10/A11 protocol stack model;

图3是数据处理模块Dispatch Loop结构示意图,Figure 3 is a schematic diagram of the structure of the data processing module Dispatch Loop,

图4是数据处理流程图。Figure 4 is a flow chart of data processing.

具体实施方式Detailed ways

本发明所使用的设备在CDMA2000分组域网络中的位置如图1所示。The position of the equipment used in the present invention in the CDMA2000 packet domain network is shown in FIG. 1 .

就本系统而言,我们考虑的设备和通讯链路是PCF和PDSN设备以及两者之间的R-P链路。As far as this system is concerned, the equipment and communication links we consider are PCF and PDSN equipment and the R-P link between them.

分组控制功能(PCF)设备通常作为无线网络设备而设置于基站控制器(BSC)内,或者与BSC同址外置,但它作为完成分组业务所必须的功能单元。PDSN作为无线移动用户接入Internet网络的接入设备,承担了CDMA网络与Internet网络的数据交换服务器的功能,在网络中起桥梁作用。Packet Control Function (PCF) equipment is usually installed in the base station controller (BSC) as a wireless network equipment, or installed externally at the same site as the BSC, but it is a necessary functional unit for completing packet services. As an access device for wireless mobile users to access the Internet, the PDSN assumes the function of the data exchange server between the CDMA network and the Internet, and acts as a bridge in the network.

另外PCF(RN)和PDSN之间的接口是“RN-to-PDSN”接口,即R-P接口。R-P接口是无线处理与有线处理的分界。R-P接口包括两个元素,A11接口和A10接口。它们都被看作A接口的一部分。In addition, the interface between the PCF (RN) and the PDSN is the "RN-to-PDSN" interface, that is, the R-P interface. The R-P interface is the boundary between wireless processing and wired processing. The R-P interface includes two elements, the A11 interface and the A10 interface. They are all considered part of the A interface.

无线接入节点和PDSN之间的R-P接口,是PCF和PDSN之间的标准接口。我们实际需要处理的数据包为A10/A11,其协议栈模型如图2所示。其中A10承载的是用户的数据,而A11则由一些信令组成。区分A11信令和A10数据具体方法是看IP包头,如IP包头中的Protocol域为GRE,则此为A10数据;若为UDP则为A11信令。The R-P interface between the wireless access node and the PDSN is a standard interface between the PCF and the PDSN. The data packets we actually need to process are A10/A11, and its protocol stack model is shown in Figure 2. Among them, A10 bears user data, while A11 consists of some signaling. The specific method to distinguish between A11 signaling and A10 data is to look at the IP header. If the Protocol field in the IP header is GRE, then it is A10 data; if it is UDP, it is A11 signaling.

在IXP2400中,将数据包分为两个层次:数据面处理和控制面处理。其中数据面的数据包处理可划分为若干个功能逻辑模块即微模块,同理控制面的数据包的处理也可划分为若干个功能模块即核模块。核模块(Core Component)只是负责初始化和管理微模块占用的内存资源、管理路由表等查表结构,处理少量的异常包。而大量的数据处理事务都是交给了拥有并行优势性能的微模块来做。In IXP2400, the data packet is divided into two levels: data plane processing and control plane processing. The data packet processing on the data plane can be divided into several functional logic modules, that is, micro-modules, and similarly, the data packet processing on the control plane can also be divided into several functional modules, that is, core modules. The core module (Core Component) is only responsible for initializing and managing the memory resources occupied by the micro-module, managing table lookup structures such as routing tables, and handling a small amount of abnormal packets. A large number of data processing transactions are handed over to micro-modules with parallel advantages.

本发明的软件结构:Software structure of the present invention:

1)微模块中数据包接收模块从PCF和PDSN的链路上接收数据包,然后传至处理模块MSF。RX模块从线程thread_free_list唤醒一个线程。线程得到存放接收包状态信息的RSW字,从中提取数据包到达的端口号以及存放数据包的RBUF单元号和大小。根据数据包到达的端口号,线程从接收上下文找到代码执行的路径。线程将RBUF中接收到的数据包存放到DRAM,如果接收的mpacket是起始包(SOP),则从buffer_free_list中分配一个新内存buffer,同时将数据包的相关状态信息metatdata存放到SRAM。如果接收的mpacket是结尾包(EOP)的情况下,则将该内存描述符buffer descriptor的前8个字节存到SRAM。线程等待以前的线程信号和所有的I/O初始化。当一个mpacket已经存放至DRAM,则释放RBUF element,同时线程被重新写回free list若该mpacket是EOP,说明一个完整的数据包已经接收完毕,线程写包的指针(buffer handle)和描述符号(buffer descriptor)信息则写入到scratch环,等待进一步处理使用。线程等待scratch写的完成,同时等待MSF接收事件信号。1) The data packet receiving module in the micromodule receives the data packet from the link between PCF and PDSN, and then transmits it to the processing module MSF. The RX module wakes up a thread from thread_free_list. The thread obtains the RSW word storing the status information of the received packet, extracts the port number where the data packet arrives and the RBUF unit number and size where the data packet is stored. Based on the port number on which the packet arrived, the thread finds a path for code execution from the receiving context. The thread stores the data packet received in RBUF to DRAM. If the received mpacket is a start packet (SOP), a new memory buffer is allocated from buffer_free_list, and the relevant state information metatdata of the data packet is stored in SRAM. If the received mpacket is an end-of-packet (EOP), the first 8 bytes of the memory descriptor buffer descriptor are stored in the SRAM. The thread waits for the previous thread signal and all I/O initialization. When an mpacket has been stored in DRAM, the RBUF element is released, and the thread is rewritten back to the free list. If the mpacket is EOP, it means that a complete data packet has been received, and the thread writes the packet pointer (buffer handle) and descriptor ( buffer descriptor) information is written to the scratch ring, waiting for further processing. The thread waits for the completion of the scratch write, and at the same time waits for the MSF to receive the event signal.

2)负载分配模块。该模块是本系统的核心,主要功能是进行以太网解封装和分类,判别出ARP数据包、A11信令(UDP数据包)和A10数据(GRE数据包)。ARP数据包暂做丢弃处理,需要分析和截获的数据包只有A10和A11。2) Load distribution module. This module is the core of the system, and its main function is to decapsulate and classify Ethernet, and distinguish ARP data packets, A11 signaling (UDP data packets) and A10 data (GRE data packets). The ARP data packets are temporarily discarded, and the only data packets that need to be analyzed and intercepted are A10 and A11.

a)如果是UDP,再根据端口号来判断是否为A11信令,如果是A11信令,则提取其GRE Key并根据分流算法将其发往相应的目的主机;如果是其他信令则直接丢弃。a) If it is UDP, judge whether it is A11 signaling according to the port number. If it is A11 signaling, extract its GRE Key and send it to the corresponding destination host according to the distribution algorithm; if it is other signaling, discard it directly .

b)如果是GRE数据包,则获取相应的用户会话号(Key)和数据包序列号(Sequence Number),然后同样根据key进行分流。这样作保证了属于同一用户的A11和A10数据发往了同一台计算机,便于对用户进行确认。然后将此数据包传给队列管理微模块,b) If it is a GRE data packet, obtain the corresponding user session number (Key) and data packet sequence number (Sequence Number), and then perform distribution according to the key. This ensures that the A11 and A10 data belonging to the same user are sent to the same computer, which is convenient for user confirmation. Then pass this packet to the queue management module,

该处理模块还将在后面详细介绍。This processing module will also be introduced in detail later.

3)队列管理微模块通过发送微模块发往交换机,最后由交换机发往目的主机做进一步处理。程序首先从Scratch环中提取处理过的数据包dl_buffer_handle,读出数据状态信息,得到数据包存放地址;然后将数据包分段成mpacket,并写入TBUF,通过MSF状态机进行发送,数据经由MSF-to-DRAM快速通道写入TBUF单元;最后向TBUF_Element_Control_#寄存器写发送控制字TCW,自动使TBUF有效,然后MSF开始发送mpacket。3) The queue management micro-module sends the micro-module to the switch, and finally the switch sends it to the destination host for further processing. The program first extracts the processed data packet dl_buffer_handle from the Scratch ring, reads the data status information, and obtains the data packet storage address; then segments the data packet into mpackets, writes them into TBUF, and sends them through the MSF state machine, and the data passes through the MSF -to-DRAM fast channel writes to the TBUF unit; finally writes the send control word TCW to the TBUF_Element_Control_# register to automatically enable TBUF, and then MSF starts to send mpackets.

本系统的微模块中,其中数据包接收做为一个经常性的功能在一个独立的微引擎(0号微引擎)中设计。而以太网解包/第3层协议分类、存储所需信息、分流等功能属于数据处理的功能范畴且前后操作内容相关因此被分为不同的子微模块形成一个功能流水线,并把这个流水线放入4个微引擎(1-4号微引擎)中并发执行。队列管理功能是一个复杂的队列控制功能的实现因此放入一个微引擎(5号微引擎)中执行。调度管理负责流量控制的功能它被放入6号微引擎中执行。最后发送模块因为实现的是OC48所以只用一个微引擎(7号微引擎)处理。In the micro-module of this system, data packet reception is designed in an independent micro-engine (No. 0 micro-engine) as a regular function. The functions of Ethernet unpacking/layer 3 protocol classification, storage of required information, shunting and other functions belong to the functional category of data processing, and the content of front and back operations are related. Therefore, they are divided into different sub-modules to form a functional pipeline, and put this pipeline into into 4 microengines (microengines 1-4) for concurrent execution. The queue management function is the realization of a complex queue control function, so it is put into a micro-engine (No. 5 micro-engine) for execution. Scheduling management is responsible for the function of flow control, which is put into No. 6 micro-engine for execution. Finally, the sending module is processed by only one micro-engine (No. 7 micro-engine) because it realizes OC48.

微引擎系统资源分配情况如表1所示:The resource allocation of the micro-engine system is shown in Table 1:

表1微引擎系统资源分配表Table 1 Micro-engine system resource allocation table

如图3所示,负载分配模块由Ethernet Decap/Classify(以太网解封装/分类)、A11/10Decap/Classify(A11/A10解封装/分类)、Distribute(负载分配)等部分组成,是以Functional Pipeline的形式来实现的,运行在4个微引擎上(从两个ME Cluster中个选出2个微引擎,以充分利用两组Command Bus和S Push/Pull Bus)。微引擎上的每个Thread每次处理一个Packet,这样最好的情况下会有32个线程并行运行,最大程度上的提高分组数据处理的速度。数据包的顺序由dl_Source和dl_Sink模块来保证。其中dl_source模块将buffer handle和Metadata从Scratch环中取出,传入Ethernet Decap/Classify子模块。数据包的处理流程如图4所示。根据buffer handle将IP包头取出判断IP数据协议类型,如果是UDP包则有可能是A11信令,根据端口号判断出为A11信令后,提取相应的imsi和key存放在对应的sram地址中,存储完毕后将此数据包丢弃;如果是GRE包则首先提取Grekey,然后找出相应的存储位置,提取其对应的用户Imsi信息,根据imsi进行分流,在IP头写入不同的目的地址然后传往下一个模块。dl_sink模块将前面传送来的PacKet的相关信息写入特定的Scratch环,并将packet交给队列管理模块处理。下面对各个子模块分别介绍:As shown in Figure 3, the load distribution module is composed of Ethernet Decap/Classify (Ethernet decapsulation/classification), A11/10Decap/Classify (A11/A10 decapsulation/classification), Distribute (load distribution) and other parts. It is implemented in the form of Pipeline and runs on 4 micro-engines (2 micro-engines are selected from the two ME Clusters to make full use of two sets of Command Bus and S Push/Pull Bus). Each Thread on the microengine processes a Packet at a time, so that in the best case there will be 32 threads running in parallel to maximize the speed of packet data processing. The order of packets is guaranteed by the dl_Source and dl_Sink modules. Among them, the dl_source module takes the buffer handle and Metadata out of the Scratch ring and passes them into the Ethernet Decap/Classify submodule. The processing flow of the data packet is shown in Figure 4. According to the buffer handle, take out the IP packet header to judge the IP data protocol type. If it is a UDP packet, it may be A11 signaling. After judging that it is A11 signaling according to the port number, extract the corresponding imsi and key and store it in the corresponding sram address. After the storage is complete, discard the data packet; if it is a GRE packet, first extract the Grekey, then find out the corresponding storage location, extract the corresponding user Imsi information, divide the traffic according to the imsi, write different destination addresses in the IP header and then transmit Go to the next module. The dl_sink module writes the relevant information of the PacKet transmitted earlier into a specific Scratch ring, and hands the packet to the queue management module for processing. Each sub-module is introduced separately as follows:

1)dl_source调度环源点子模块1) dl_source scheduling ring source submodule

dl_source子模块负责从POS_RX_TO_PACKETDEALING_SCR_RING全局Scratch环上获得从数据包接收模块发来的后传包信息。在获得包信息的同时通过dl_source与dl_sink配合和有序线程执行的机制保证包到达的顺序。在进入分组数据处理微模块后,程序调用宏dl_source[DL_THREAD_ORDER,sig_mask]来按序启动每个线程的接收包程序。然后进入接收循环loop后,我们调用dl_sink[sig_mask,sig_scr_put,$wxfer]把处理好的包按线程顺序发送到队列管理模块中,而紧接着调用的dl_source[DL_THREAD_NO_ORDER,sig_mask]再来按线程调度的方式无序的接收包信息。就依次不断循环使得整个包到达和发送的顺序与数据包接收微模块保持整体一致。The dl_source sub-module is responsible for obtaining the post-transmission packet information sent from the data packet receiving module from the POS_RX_TO_PACKETDEALING_SCR_RING global Scratch ring. While obtaining the packet information, the order of packet arrival is guaranteed through the cooperation of dl_source and dl_sink and the mechanism of orderly thread execution. After entering the packet data processing module, the program calls the macro dl_source[DL_THREAD_ORDER, sig_mask] to start the receiving packet program of each thread in sequence. Then after entering the receiving loop loop, we call dl_sink[sig_mask, sig_scr_put, $wxfer] to send the processed packets to the queue management module in thread order, and then call dl_source[DL_THREAD_NO_ORDER, sig_mask] to schedule according to the thread Receive packet information out of order. Just continue to circulate successively so that the order of the arrival and transmission of the entire packet is consistent with the data packet receiving micromodule as a whole.

2)Ethernet Decap/Classify以太网解封装/分类2) Ethernet Decap/Classify Ethernet decapsulation/classification

Ethernet Decap/Classify模块负责去掉2层协议包头,并对数据包进行分类,根据分类结果将Pacek交给不同的模块处理。The Ethernet Decap/Classify module is responsible for removing the Layer 2 protocol header, classifying the data packets, and handing Pacek to different modules for processing according to the classification results.

3)A11/A10 Decap/Classify A11/A10解封装/分类3) A11/A10 Decap/Classify A11/A10 decapsulation/classification

根据IP头中的Protocol字段判断数据区域是UDP还是GRE数据。如果是UDP,则根据端口号来判断是A11信令还是其他信令,若为其它信令则直接丢弃;若为A11信令则在相应的域中提取imsi和key,并存放在对应的连续的sram地址中,当存储完毕后,丢弃此数据包。如果是GRE数据则提取其GRE key和Sequence Number,然后进入分流模块。Determine whether the data area is UDP or GRE data according to the Protocol field in the IP header. If it is UDP, judge whether it is A11 signaling or other signaling according to the port number, and discard it if it is other signaling; if it is A11 signaling, extract imsi and key in the corresponding field and store them in the corresponding continuous In the sram address of the sram address, when the storage is completed, the data packet is discarded. If it is GRE data, extract its GRE key and Sequence Number, and then enter the distribution module.

4)Distribute负载分配子模块4) Distribute load distribution sub-module

根据A10数据的GREkey找出其在sram中的地址,由于IMSI与key的存放地址是连续的,所以找到key的地址之后通过简单的偏移就可以找到其对应的IMSI,又因为IMSI与key一一对应,所以每一个A10数据都有其对应的用户IMSI信息。为了方便后续处理,我们假定将数据分配到三台后续设备,为此取IMSI值的低两位进行判断,分为三种情况00(11)、01、10,根据不同的情形,修改A10数据包的IP头为三个不同的目的IP地址,在模块处理最后,数据还必须进行以太网封装。程序用Buffer Handle指向的MetaData中的next hop ID做为MAC地址或ARP信息表的索引值找到相应的2层包头信息,进行封装往后传送。如果表中没有相应的2层信息,则该包被ME1的0号线程转发至Xscale核。Xscale核上的程序为此包产生相应的ARP请求信息发送,当收到ARP回复时在表中生成条目。如果next hop ID本身为-1是不合法的,程序就会认为此包已经加装过2层包头信息并往后一个子模块传送。Find its address in sram according to the GREkey of A10 data. Since the storage address of IMSI and key are continuous, you can find the corresponding IMSI by simple offset after finding the address of the key, and because IMSI and key are the same One-to-one correspondence, so each A10 data has its corresponding user IMSI information. In order to facilitate the follow-up processing, we assume that the data is distributed to three follow-up devices. For this purpose, the lower two digits of the IMSI value are used for judgment, which is divided into three cases: 00 (11), 01, and 10. According to different situations, modify the A10 data The IP header of the packet contains three different destination IP addresses. At the end of module processing, the data must be encapsulated by Ethernet. The program uses the next hop ID in the MetaData pointed to by the Buffer Handle as the MAC address or the index value of the ARP information table to find the corresponding layer 2 packet header information, encapsulate and transmit it. If there is no corresponding layer 2 information in the table, the packet is forwarded to the Xscale core by thread 0 of ME1. The program on the Xscale core generates a corresponding ARP request message for this packet, and creates an entry in the table when an ARP reply is received. If the next hop ID itself is -1, which is illegal, the program will think that the packet has been added with layer 2 header information and send it to the next sub-module.

5)dl_sink调度环汇点子模块5) dl_sink dispatching sub-module of ring sink

所有的数据处理微模块中的数据都最后由dl_sink子模块负责发送到队列管理微模块中。dl_sink[sig_mask,sig_scr_put,$wxfer]中的wxfer传输寄存器负责存储队列管理模块需要的dl_buf_handle,dl_eop_buf_handle和Queue_Number,其中前两个参数仍然是所传数据包的Buffer Handle,而队列号则表示该数据是指派的发送队列中的队列号。通过模块间scratch环传输的机制,发送到POS_PACKETDEALING_TO_QM_SCR_RING全局环上,实现数据往后的传递。All the data in the data processing micro-module are finally sent to the queue management micro-module by the dl_sink sub-module. The wxfer transmission register in dl_sink[sig_mask, sig_scr_put, $wxfer] is responsible for storing the dl_buf_handle, dl_eop_buf_handle and Queue_Number required by the queue management module. The first two parameters are still the Buffer Handle of the transmitted data packet, and the queue number indicates that the data is The queue number in the assigned send queue. Through the scratch ring transmission mechanism between modules, it is sent to the POS_PACKETDEALING_TO_QM_SCR_RING global ring to realize the data transmission.

Claims (1)

1.一种基于网络处理器的移动互联网数据负载分配方法,其特征在于该分配方法在网络处理器IXP2400上,针对CDMA2000移动通信系统,首先根据分组控制功能单元PCF与分组数据服务节点PDSN之间的信令接口A11提取出用于负载分配的信息,即国际移动用户识别信息IMSI和通用路由封装GRE的传输标识GRE Key,然后将数据传输接口A10上的数据流量根据不同的传输标识GRE Key分配到不同的分组控制功能单元PCF或PDSN;1. A mobile internet data load distribution method based on network processor, it is characterized in that this distribution method is on network processor IXP2400, for CDMA2000 mobile communication system, at first according to grouping control function unit PCF and packet data service node PDSN The signaling interface A11 extracts the information used for load distribution, that is, the International Mobile Subscriber Identity Information IMSI and the transmission identifier GRE Key of the general routing encapsulation GRE, and then distributes the data traffic on the data transmission interface A10 according to different transmission identifiers GRE Key To different packet control functional units PCF or PDSN; 所述的网络处理器IXP2400在数据层面将IXP2400提供的8个微引擎分为数据包接收模块对应0号微引擎、负载分配模块对应1、2、3、4号微引擎、队列管理模块对应5号微引擎、调度管理模块对应6号微引擎、数据包发送模块对应7号微引擎,负载分配的处理步骤是:The network processor IXP2400 divides the 8 micro-engines provided by the IXP2400 into data packet receiving modules corresponding to No. 0 micro-engines, load distribution modules corresponding to No. 1, 2, 3 and 4 micro-engines, and queue management modules corresponding to No. No. micro-engine, scheduling management module corresponds to No. 6 micro-engine, and data packet sending module corresponds to No. 7 micro-engine. The processing steps of load distribution are as follows: 步骤1:数据包接收模块从PCF和PDSN的链路上接收所有的数据包,同时依次传至负载分配模块,Step 1: The data packet receiving module receives all data packets from the link of PCF and PDSN, and transmits them to the load distribution module in turn, 步骤2:负载分配模块根据IP头和端口号判断是信令接口A11数据包还是数据传输接口A10数据包分别进行处理,Step 2: According to the IP header and port number, the load distribution module judges whether it is a signaling interface A11 data packet or a data transmission interface A10 data packet to process respectively, a)如果是信令接口A11数据包,则提取其GRE Key和IMSI并根据GRE Key的不同添充上不同的目的主机MAC地址和IP地址,a) If it is a signaling interface A11 data packet, extract its GRE Key and IMSI and fill in different destination host MAC addresses and IP addresses according to the GRE Key, b)如果是数据传输接口A10数据包,则获取相应的传输标识GRE Key,然后同样根据传输标识GRE Key的不同添充上不同的目的主机MAC地址和IP地址,这样保证了属于同一用户的信令接口A11和数据传输接口A10数据发往了同一台PCF或PDSN,便于对用户进行确认;b) If it is a data packet of the data transmission interface A10, then obtain the corresponding transmission identification GRE Key, and then also fill in different destination host MAC addresses and IP addresses according to the difference of the transmission identification GRE Key, thus ensuring that the information belonging to the same user Make interface A11 and data transmission interface A10 send data to the same PCF or PDSN, which is convenient for user confirmation; 步骤3:负载分配模块依次将处理过的数据包传给队列管理模块,并通过数据包发送模块发往交换机。Step 3: The load distribution module sequentially transmits the processed data packets to the queue management module, and sends them to the switch through the data packet sending module.
CN2008100190621A 2008-01-11 2008-01-11 A mobile Internet data load allocation method based on network processor Expired - Fee Related CN101217486B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2008100190621A CN101217486B (en) 2008-01-11 2008-01-11 A mobile Internet data load allocation method based on network processor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2008100190621A CN101217486B (en) 2008-01-11 2008-01-11 A mobile Internet data load allocation method based on network processor

Publications (2)

Publication Number Publication Date
CN101217486A CN101217486A (en) 2008-07-09
CN101217486B true CN101217486B (en) 2011-09-14

Family

ID=39623848

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008100190621A Expired - Fee Related CN101217486B (en) 2008-01-11 2008-01-11 A mobile Internet data load allocation method based on network processor

Country Status (1)

Country Link
CN (1) CN101217486B (en)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102025607B (en) * 2009-09-19 2013-04-17 华为技术有限公司 Data processing method, network processor and network equipment
CN102497601A (en) * 2011-12-13 2012-06-13 曙光信息产业(北京)有限公司 Adaptive data splitting method
CN102769862B (en) * 2012-08-16 2016-02-10 重庆重邮汇测通信技术有限公司 Point-to-point protocol VJ packed data method of reducing
CN102970096A (en) * 2012-12-03 2013-03-13 武汉虹信通信技术有限责任公司 Method for analyzing code division multiple access R-P (Radio-Packet) interface data services
CN103391219A (en) * 2013-08-09 2013-11-13 盛科网络(苏州)有限公司 Message analysis method and device based on conversation
CN103856984B (en) * 2013-12-27 2017-04-19 恒为科技(上海)股份有限公司 Method and device for large-flow R-P port data association on basis of mark transmitting back

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1572120A (en) * 2001-07-30 2005-01-26 思达伦特网络公司 Managing packet data interconnections in mobile communications
US20050025192A1 (en) * 2003-07-09 2005-02-03 Nortel Networks Limited Method for updating and managing synchronization identifier by using release messages or status request and response
CN1620786A (en) * 2001-09-20 2005-05-25 艾利森电话股份有限公司 System and method for service interface scalability in network packet core functions
US20070153751A1 (en) * 2005-12-30 2007-07-05 Svensson Sven Anders B PDSN-based session recovery from RBS/AN failure in a distributed architecture network

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1572120A (en) * 2001-07-30 2005-01-26 思达伦特网络公司 Managing packet data interconnections in mobile communications
CN1620786A (en) * 2001-09-20 2005-05-25 艾利森电话股份有限公司 System and method for service interface scalability in network packet core functions
US20050025192A1 (en) * 2003-07-09 2005-02-03 Nortel Networks Limited Method for updating and managing synchronization identifier by using release messages or status request and response
US20070153751A1 (en) * 2005-12-30 2007-07-05 Svensson Sven Anders B PDSN-based session recovery from RBS/AN failure in a distributed architecture network

Also Published As

Publication number Publication date
CN101217486A (en) 2008-07-09

Similar Documents

Publication Publication Date Title
US12095882B2 (en) Accelerated network packet processing
CN100477643C (en) Data Packet Capture Method Based on Shared Memory
US9755947B2 (en) Hierarchical self-organizing classification processing in a network switch
US9300597B2 (en) Statistics module for network processors in virtual local area networks
US10057387B2 (en) Communication traffic processing architectures and methods
CN100438481C (en) Packet processing device
CN104348740B (en) Data package processing method and system
EP1832085B1 (en) Flow assignment
US9485200B2 (en) Network switch with external buffering via looparound path
CN1206600C (en) Full distribution type aggregation network servicer system
US11729300B2 (en) Generating programmatically defined fields of metadata for network packets
US20070053294A1 (en) Network load balancing apparatus, systems, and methods
CN101217486B (en) A mobile Internet data load allocation method based on network processor
US20140181319A1 (en) Communication traffic processing architectures and methods
US20140153575A1 (en) Packet data processor in a communications processor architecture
US20130114599A1 (en) Packet steering
CN104394090B (en) A kind of use DPI carries out the SDN controllers of network flow classification to packet
CN108566342A (en) Multi-service traffic distribution system and distribution data processing method based on SDN architecture
TWI257790B (en) System for protocol processing engine
US10887234B1 (en) Programmatic selection of load balancing output amongst forwarding paths
CN103023803B (en) Method and system for optimizing virtual links of fiber channel over Ethernet
CN106131162B (en) A method of network service agent is realized based on IOCP mechanism
CN118368230A (en) Method for forwarding computing messages in a network, forwarding node and computer storage medium
CN103188264B (en) Online network security processor and processing method
Doo et al. Multicore Flow Processor with Wire‐Speed Flow Admission Control

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20110914

Termination date: 20150111

EXPY Termination of patent right or utility model