CN103064794A - 实现mpls标签高效管理的方法 - Google Patents

实现mpls标签高效管理的方法 Download PDF

Info

Publication number
CN103064794A
CN103064794A CN2013100424042A CN201310042404A CN103064794A CN 103064794 A CN103064794 A CN 103064794A CN 2013100424042 A CN2013100424042 A CN 2013100424042A CN 201310042404 A CN201310042404 A CN 201310042404A CN 103064794 A CN103064794 A CN 103064794A
Authority
CN
China
Prior art keywords
label
offset
bit
value
mpls
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.)
Granted
Application number
CN2013100424042A
Other languages
English (en)
Other versions
CN103064794B (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.)
Fiberhome Telecommunication Technologies Co Ltd
Original Assignee
Fiberhome Telecommunication 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 Fiberhome Telecommunication Technologies Co Ltd filed Critical Fiberhome Telecommunication Technologies Co Ltd
Priority to CN201310042404.2A priority Critical patent/CN103064794B/zh
Publication of CN103064794A publication Critical patent/CN103064794A/zh
Application granted granted Critical
Publication of CN103064794B publication Critical patent/CN103064794B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种实现MPLS标签高效管理的方法,包括以下步骤:分配内存块,用于保存标签使用状态的标签位图数据结构,标签位图的每个数据位与一个MPLS标签值相对应,MPLS标签值LABEL_VALUE在标签位图中的映射关系为:LABEL_VALUE=INT_OFFSET×B+BIT_OFFSET;初始化标签位图,将每一个数据位设为空闲状态;分配MPLS标签时,查找到标签位图的空闲数据位,并将该空闲数据位设置为已分配状态;释放MPLS标签时,根据MPLS标签值LABEL_VALUE计算出INT_OFFSET和BIT_OFFSET,然后根据INT_OFFSET和BIT_OFFSET定位到标签位图的指定数据位,将指定数据位设置为空闲状态。本发明,使用位图数据结构来存储MPLS标签的状态,极大地节省了存储空间,并且实现了MPLS标签的高效分配和释放。

Description

实现MPLS标签高效管理的方法
技术领域
本发明涉及通信技术领域,具体涉及实现MPLS标签高效管理的方法。
背景技术
多协议标签交换(MPLS)是一种用于快速数据包交换和路由的体系,它提供了一种方式,将IP地址映射为简单的具有固定长度的标签,用于不同的包转发和包交换技术。标签是MPLS的核心,一个MPLS标签由32比特组成,前20比特为标签值,标签值的范围是从0到220-1。标签交换路由器根据标签来转发报文。
如何对数量巨大的标签进行高效(高效的性能和高效的存储)的管理,是MPLS标签管理的重要要求。目前一般的作法有以下两种:
(1)以索引为标签值,这种方法需要为每个标签值分配内存,通过状态位来标记使用或空闲。因此,这种方法虽然可以快速定位到标签值,但内存占用大。
(2)只保存已分配过的标签,这种方法内存占用少,但是当下次分配标签时,需要遍历已分配过的标签,效率低。而且,当保存的标签经过一系列的分配和释放后,已分配的标签和空闲的标签混杂在一起的时候,再采用遍历的方式查找新的空闲标签,性能会很低。
由此可见,现有的MPLS标签管理无法作到高效管理。
发明内容
本发明所要解决的技术问题是解决如何实现MPLS标签高效管理的问题。
为了解决上述技术问题,本发明所采用的技术方案是提供一种实现MPLS标签高效管理的方法,包括以下步骤:
分配内存块,用于保存标签使用状态的标签位图数据结构,标签位图由多个整型元素构成,每个整型元素具有多个数据位,每个数据位与一个MPLS标签值相对应,MPLS标签值LABEL_VALUE在标签位图中的映射关系为:LABEL_VALUE=INT_OFFSET×B+BIT_OFFSET,其中:B为系统的整型长度,INT_OFFSET为整型元素的偏移值,BIT_OFFSET为整型元素中的数据位偏移值;
初始化标签位图,将每一个数据位设为空闲状态;
分配MPLS标签时,查找到标签位图的空闲数据位,并将该空闲数据位设置为已分配状态;
释放MPLS标签时,根据MPLS标签值LABEL_VALUE计算出INT_OFFSET和BIT_OFFSET,然后根据INT_OFFSET和BIT_OFFSET定位到标签位图的指定数据位,将指定数据位设置为空闲状态。
在上述方法中,查找到标签位图的空闲数据位包括以下步骤:
定位到有空闲数据位的整型元素;
定位到有空闲数据位的整型元素中的空闲数据位。
在上述方法中,利用位运算定位到有空闲数据位的整型元素,方法如下:
自初始整型元素开始,对相应的整型元素执行(BITMAPINT[INT_OFFSET]& 0xFFFFFFFF)!=0xFFFFFFFF运算,如果运算结果为真则表示该整型元素有空闲数据位,如果结果为假,则计算下一个整型元素,直到找到有空闲数据位的整型元素。
在上述方法中,释放MPLS标签时,INT_OFFSET和BIT_OFFSET的计算方法如下:
BIT_OFFSET=LABEL_VALUE%B;
INT_OFFSET=LABEL_VALUE/B;
%为模运算符;
/为除法运算符。
本发明,使用位图数据结构来存储MPLS标签的状态,极大地节省了存储空间,并且实现了MPLS标签的高效分配和释放。
附图说明
图1为本发明中标签位图的示意图。
具体实施方式
本发明提供的实现MPLS标签高效管理的方法,通过标签位图数据结构保存MPLS标签的使用状态,实现了标签的高效存储以及高效分配和释放。下面结合附图对本发明作出详细的说明。
实现MPLS标签高效管理的方法,包括以下步骤:
(1)分配内存块,用于保存标签使用状态的标签位图数据结构,标签位图的数据结构如图1所示,由多个整型元素(行)构成,每个整型元素具有多个数据位,标签位图中的每一个方格代表一位数据位,并与一个MPLS标签值相对应。MPLS标签值LABEL_VALUE在标签位图中的映射关系为:LABEL_VALUE=INT_OFFSET×B+BIT_OFFSET。
其中,B为系统的整型长度,如32位系统,B=32,64位系统,B=64,根据系统的整形长度设定B值,可以提高处理效率,INT_OFFSET为整型元素的偏移值,BIT_OFFSET为整型元素中的数据位偏移值。
例如:INT_OFFSET=0,BIT_OFFSET=16就代表MPLS标签值LABEL_VALUE=16。
以整型长度为32位,MPLS标签值的范围为从0到220-1为例说明,那么图1中:
BIT_OFFSET的范围为:0–31,表示某个整型元素中的第BIT_OFFSET+1位;
因为220-1/32=32768个整型长度,所以:
INT_OFFSET的范围为:0–32767,表示标签位图中的第INT_OFFSET+1个整型元素。
因为1个整型长度为4个字节,所以为整个标签位图分配的内存大小为:32768×4=131072(Byte)。
(2)初始化标签位图,将每一个数据位设为空闲状态,标签位图的每位设为0时,表示空闲状态;设为1时,表示已分配状态。
(3)MPLS标签的分配。
MPLS标签分配的主要工作是查找标签位图的空闲数据位,并将空闲数据位设置为已分配状态。
如果是一般的做法,需要遍历所有的MPLS标签值,那么最坏的情况下,需要循环220次。
而在本发明中,将原来的一维查找变成了二维查找,定位标签位图的空闲数据位分为两步:一、定位到有空闲数据位的整型元素;二、定位到有空闲数据位的整型元素中的空闲数据位。
对于图1所示的具体实施例,首先,定位有空闲数据位的整型元素BITMAPINT[INT_OFFSET]。方法是:依次检查标签位图中的每一个整型元素,直接对整型元素BITMAPINT[INT_OFFSET]进行一次位操作就可以知道该整型元素中是否有空闲数据位。
例如:BITMAPINT[INT_OFFSET]表示标签位图中的第INT_OFFSET个整型元素。
&表示位与运算符;
!=表示不等于逻辑运算符;
如果((BITMAPINT[INT_OFFSET]& 0xFFFFFFFF)!=0xFFFFFFFF)为真,则表示该整型元素有空闲数据位。如果该整型元素中有空闲数据位,则进入后面的定位空闲数据位的操作,如果该整型元素中没有空闲数据位,则继续计算下一个整型元素,直到找到有空闲数据位的整型元素。
定位有空闲数据位的整型元素的操作,最坏的情况下需要循环220-5次。
定位有空闲数据位的整型元素BITMAPINT[INT_OFFSET]中的空闲数据位方法如下:
依次检查BITMAPINT[INT_OFFSET]的每一位是否空闲,如果空闲,则得到空闲数据位偏移BIT_OFFSET。
定位有空闲数据位的整型元素BITMAPINT[INT_OFFSET]中的空闲数据位的操作,最坏的情况下需要循环32次。
这样我们就得到了INT_OFFSET和BIT_OFFSET的值,然后根据MPLS标签值和标签位图的位映射关系:LABEL_VALUE=INT_OFFSET×32+BIT_OFFSET,就完成了MPLS标签值的分配。
本发明提供的方法,在最坏的情况下,只需要循环220-5+32次,优于一般的处理方法。
(4)MPLS标签的释放。
MPLS标签的释放的工作就是根据MPLS标签值LABEL_VALUE,计算出INT_OFFSET和BIT_OFFSET,然后根据INT_OFFSET和BIT_OFFSET定位到标签位图的指定数据位,并将指定数据位设置为空闲状态。
INT_OFFSET和BIT_OFFSET的计算方法如下:
BIT_OFFSET=LABEL_VALUE%32;
INT_OFFSET=LABEL_VALUE/32;
%为模运算符;
/为除法运算符;
例如:需要释放MPLS标签值35,那么根据上述算式:
BIT_OFFSET=35%32=3;
INT_OFFSET=35/32=1;
那么就可以知道,MPLS标签值35对应的是图1所示的标签位图的第2行、第4列(读数从0开始),这样将指定数据位设置为空闲,就完成了MPLS标签的释放。
本发明不局限于上述最佳实施方式,任何人应该得知在本发明的启示下作出的结构变化,凡是与本发明具有相同或相近的技术方案,均落入本发明的保护范围之内。

Claims (4)

1.实现MPLS标签高效管理的方法,其特征在于,包括以下步骤:
分配内存块,用于保存标签使用状态的标签位图数据结构,标签位图由多个整型元素构成,每个整型元素具有多个数据位,每个数据位与一个MPLS标签值相对应,MPLS标签值LABEL_VALUE在标签位图中的映射关系为:LABEL_VALUE=INT_OFFSET×B+BIT_OFFSET,其中:B为系统的整型长度,INT_OFFSET为整型元素的偏移值,BIT_OFFSET为整型元素中的数据位偏移值;
初始化标签位图,将每一个数据位设为空闲状态;
分配MPLS标签时,查找到标签位图的空闲数据位,并将该空闲数据位设置为已分配状态;
释放MPLS标签时,根据MPLS标签值LABEL_VALUE计算出INT_OFFSET和BIT_OFFSET,然后根据INT_OFFSET和BIT_OFFSET定位到标签位图的指定数据位,将指定数据位设置为空闲状态。
2.如权利要求1所述的实现MPLS标签高效管理的方法,其特征在于,查找到标签位图的空闲数据位包括以下步骤:
定位到有空闲数据位的整型元素;
定位到有空闲数据位的整型元素中的空闲数据位。
3.如权利要求2所述的实现MPLS标签高效管理的方法,其特征在于,利用位运算定位到有空闲数据位的整型元素,方法如下:
自初始整型元素开始,对相应的整型元素执行(BITMAPINT[INT_OFFSET]&0xFFFFFFFF)!=0xFFFFFFFF运算,如果运算结果为真则表示该整型元素有空闲数据位,如果结果为假,则计算下一个整型元素,直到找到有空闲数据位的整型元素。
4.如权利要求2所述的实现MPLS标签高效管理的方法,其特征在于,释放MPLS标签时,INT_OFFSET和BIT_OFFSET的计算方法如下:
BIT_OFFSET=LABEL_VALUE%B;
INT_OFFSET=LABEL_VALUE/B;
%为模运算符;
/为除法运算符。
CN201310042404.2A 2013-02-04 2013-02-04 实现mpls标签高效管理的方法 Active CN103064794B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310042404.2A CN103064794B (zh) 2013-02-04 2013-02-04 实现mpls标签高效管理的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310042404.2A CN103064794B (zh) 2013-02-04 2013-02-04 实现mpls标签高效管理的方法

Publications (2)

Publication Number Publication Date
CN103064794A true CN103064794A (zh) 2013-04-24
CN103064794B CN103064794B (zh) 2016-05-25

Family

ID=48107426

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310042404.2A Active CN103064794B (zh) 2013-02-04 2013-02-04 实现mpls标签高效管理的方法

Country Status (1)

Country Link
CN (1) CN103064794B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104036033A (zh) * 2014-06-30 2014-09-10 北京数字认证股份有限公司 数字证书的证书吊销列表缓存及查询方法
CN105474179A (zh) * 2013-09-25 2016-04-06 英特尔公司 具有分布变换器的存储器控制器
CN107704199A (zh) * 2017-09-07 2018-02-16 郑州云海信息技术有限公司 一种固态硬盘的逻辑分区方法及装置
CN109257279A (zh) * 2018-10-26 2019-01-22 新华三技术有限公司 一种报文转发方法及装置
CN109522308A (zh) * 2018-11-06 2019-03-26 北京太星晨信息技术有限公司 一种连接句柄管理方法和装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1564560A (zh) * 2004-04-14 2005-01-12 港湾网络有限公司 一种多协议标记交换标签的处理方法
CN1671114A (zh) * 2004-03-19 2005-09-21 华为技术有限公司 一种ip地址管理的方法
US20110153976A1 (en) * 2009-12-22 2011-06-23 Eric Brandon Tamura Methods and apparatuses to allocate file storage via tree representations of a bitmap

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1671114A (zh) * 2004-03-19 2005-09-21 华为技术有限公司 一种ip地址管理的方法
CN1564560A (zh) * 2004-04-14 2005-01-12 港湾网络有限公司 一种多协议标记交换标签的处理方法
US20110153976A1 (en) * 2009-12-22 2011-06-23 Eric Brandon Tamura Methods and apparatuses to allocate file storage via tree representations of a bitmap

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105474179A (zh) * 2013-09-25 2016-04-06 英特尔公司 具有分布变换器的存储器控制器
CN105474179B (zh) * 2013-09-25 2018-09-18 英特尔公司 具有分布变换器的存储器控制器
CN104036033A (zh) * 2014-06-30 2014-09-10 北京数字认证股份有限公司 数字证书的证书吊销列表缓存及查询方法
CN107704199A (zh) * 2017-09-07 2018-02-16 郑州云海信息技术有限公司 一种固态硬盘的逻辑分区方法及装置
CN109257279A (zh) * 2018-10-26 2019-01-22 新华三技术有限公司 一种报文转发方法及装置
CN109257279B (zh) * 2018-10-26 2021-03-26 新华三技术有限公司 一种报文转发方法及装置
CN109522308A (zh) * 2018-11-06 2019-03-26 北京太星晨信息技术有限公司 一种连接句柄管理方法和装置
CN109522308B (zh) * 2018-11-06 2023-06-20 北京太一星晨信息技术有限公司 一种连接句柄管理方法和装置

Also Published As

Publication number Publication date
CN103064794B (zh) 2016-05-25

Similar Documents

Publication Publication Date Title
US20200159654A1 (en) Pipelined hash table with reduced collisions
CN103064794A (zh) 实现mpls标签高效管理的方法
US10284497B2 (en) Networking method for data center network and data center network
US9086950B2 (en) Method for heap management
CN103546299A (zh) 使用串行器/解串器通道的50Gb/s以太网
CN104298541A (zh) 云存储系统的数据分布算法及其装置
CN102262590B (zh) 一种用于对硬件加速器的请求队列重排的方法和系统
CN103034544A (zh) 一种用户态与内核态共享内存的管理方法和装置
CN108259346B (zh) 一种等价路由表项建立方法和装置
CN109962850A (zh) 实现分段路由的方法和控制器及计算机可读存储介质
CN103746927A (zh) 基于优先级的流控pfc方法及发送设备、接收设备
CN103778120A (zh) 全局文件标识生成方法、生成装置及相应的分布式文件系统
CN103354520A (zh) 一种标签处理的方法及装置
CN104182356A (zh) 一种内存管理方法、装置及终端设备
CN104598194A (zh) 一种头尾指针链表存储器的初始化方法及电路
CN104142979A (zh) 一种实现rfid标签存储管理的索引方法
CN103605478A (zh) 存储地址标示、配置方法和数据存取方法及系统
CN105574076A (zh) 一种基于Bloom Filter的键值对存储结构及方法
CN106817291A (zh) Vxlan实现装置及其工作方法
CN105227468A (zh) 一种查找装置、查找方法和配置方法
CN116527559A (zh) 网络切片的报文转发处理及发送方法、装置、设备和介质
CN107453971A (zh) 一种多个虚拟机之间的通信方法及系统
CN103200029A (zh) 网管对PTN/IPRan设备的标签分配和管理的方法
CN102355410B (zh) 一种用于mpls网络虚拟交换实例的伪线标签方法
CN103618707B (zh) 用于数字化城市管理系统的web前端快速调用系统

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