一种以太网口数据包带vlanid的方法

文档序号:6517546阅读:2040来源:国知局
一种以太网口数据包带vlan id的方法
【专利摘要】一种以太网口数据包带VLAN?ID的方法。步骤1:应用程序调用VLAN应用接口模块,设置VLAN信息;步骤2:所述VLAN应用接口模块将VLAN信息发送给VLAN内核模块;步骤3:所述VLAN内核模块判断数据包源端口是否在允许设VLAN的端口列表里;步骤4:若数据包源端口在允许设VLAN的端口列表里,则所述VLAN内核模块将VLAN?ID加到所述数据包中并发送到网卡驱动。采用本发明方法后,通过纯软件的方式实现以太网口数据包带VLANID,不需要依赖于具体的硬件平台,能够避免不同厂商必须通过设置寄存器的方式实现VLAN功能,具有更高的可通用性和可移植性,也可以提高软件研发速度和减少重复性工作。
【专利说明】—种以太网口数据包带VLAN ID的方法
【技术领域】
[0001]本发明涉及路由器【技术领域】,特别是涉及一种以太网口数据包带VLAN ID的方法。【背景技术】
[0002]目前众多路由器厂商,为了满足终端设备不同的业务需求,有时候需要把以太网口带上不同的VLAN ID,来区分不同的业务,然后把数据包上传到上层设备。
[0003]传统以太网口带VLAN ID的方式,是通过设置交换芯片的寄存器值来实现,这种方法依赖于具体的硬件,故不具备可移植性和重用性,当我们需要在另一款不同厂家的芯片上实现以太网带VLAN ID的需求时,就必须重新读相关的数据手册,才能实现功能。

【发明内容】

[0004]如【背景技术】所述,现有以太网口带VLAN ID依赖于具体硬件实现,不具备可移植性和重用性。
[0005]基于此,有必要提供一种以太网口数据包带VLAN ID的方法,包括:
[0006]步骤1:应用程序调用VLAN应用接口模块,设置VLAN信息;
[0007]步骤2:所述VLAN应用接口模块将VLAN信息发送给VLAN内核模块;
[0008]步骤3:所述VLAN内核模块判断数据包源端口是否在允许设VLAN的端口列表里;
[0009]步骤4:若数据包源端口在允许设VLAN的端口列表里,则所述VLAN内核模块将VLAN ID加到所述数据包中并发送到网卡驱动。
[0010]优选的,所述VLAN信息包括VLAN ID,允许设VLAN的端口列表。
[0011]优选的,还包括:
[0012]若数据包源端口不在允许设VLAN的端口列表里,则所述VLAN内核模块直接将数据包发送到网卡驱动。
[0013]优选的,若所述数据包源端口在允许设VLAN的端口列表里时,在所述VLAN内核模块将VLAN ID加到所述数据包中并发送到网卡驱动之前还包括:
[0014]VLAN内核模块判断数据包源端口是否开启了 VLAN功能;
[0015]若数据包源端口开启了 VLAN功能,则所述VLAN内核模块将VLAN ID加到所述数据包中并发送到网卡驱动。
[0016]优选的,还包括:
[0017]若数据包源端口没有开启VLAN功能,则所述VLAN内核模块直接将数据包发送到网卡驱动。
[0018]采用本发明方法后,通过纯软件的方式实现以太网口数据包带VLAN ID,不需要依赖于具体的硬件平台,能够避免不同厂商必须通过设置寄存器的方式实现VLAN功能,具有更高的可通用性和可移植性,也可以提高软件研发速度和减少重复性工作。
【专利附图】

【附图说明】[0019]图1为本发明提供的一个实施例的流程图。
【具体实施方式】
[0020]为了使本发明的目的、技术方案及优点更清楚明白,以下结合附图及实施例,对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
[0021]参阅图1,本发明提供的一个实施例的以太网口数据包带VLAN ID的方法,包括:
[0022]步骤S10,应用程序调用VLAN应用接口模块,设置VLAN信息;
[0023]应用层接口模块(proc文件系统接口)主要是向开发者提供接口设置VLAN信息的,VLAN信息包括VLAN ID,允许设VLAN的端口列表。
[0024]步骤S20,VLAN应用接口模块将VLAN信息发送给VLAN内核模块;
[0025]VLAN应用接口模块将VLAN信息,即VLAN ID,允许设VLAN的端口列表发送到VLAN内核模块。
[0026]步骤S30,VLAN内核模块判断数据包源端口是否在允许设VLAN的端口列表里;
[0027]若数据包源端口不在允许设VLAN的端口列表里,则VLAN内核模块直接将数据包发送到网卡驱动即跳至步骤S60。
[0028]步骤S40,判断VLAN内核模块判断数据包源端口是否开启了 VLAN功能;
[0029]即使在步骤S30中,数据包源端口在允许设VLAN的端口列表里,如果数据源端口没有开启VLAN功能,也实现不了以太网口带VLAN ID,从而通过不同的VLAN ID来区分不同的业务需求,比如IPTV业务。
[0030]若数据包源端口没有开启VLAN功能,则VLAN内核模块直接将数据包发送到网卡驱动即跳至步骤S60。
[0031 ] 步骤S50,若数据包源端口在允许设VLAN的端口列表里并且数据源端口开启了VLAN功能,则VLAN内核模块将VLAN ID加到数据包中并发送到网卡驱动即跳至步骤S60。
[0032]当然,可以理解,以太网口数据包带VLAN ID的方法直接由步骤S30跳至该步骤,即不由VLAN内核模块判断数据源端口是否开启了 VLAN功能。在没有步骤S40的情况下,即由步骤S30直接跳至该步骤时,则步骤S50为:若数据包源端口在允许设VLAN的端口列表里,则VLAN内核模块将VLAN ID加到数据包中并发送到网卡驱动即跳至步骤S60。这时,数据源端口没有开启VLAN功能,只要数据包源端口在允许设VLAN的端口列表里,则VLAN内核模块将VLAN ID加到数据包中,由于数据包源端口没有开启VLAN功能,即使增加了 VLANID也是徒劳,即无法通过该VLAN ID来区分不同的业务需求。
[0033]步骤S60,将数据包发送至网卡驱动。
[0034]不管前面步骤中是否已经在数据包中增加VLAN ID,都将数据发送至网卡驱动。如果数据包源端口在允许设VLAN的端口列表里并且数据源端口开启了 VLAN功能,则发送至网卡驱动的数据包中增加了 VLAN ID,用户可以通过不同的VLAN ID来区分不同的业务需求,比如IPTV业务。步骤S30或步骤S40只要其中之一不符合条件,数据包将不经过VLAN内核在数据包中增加VLAN ID的步骤,直接将数据包发送给网卡驱动。
[0035]采用本发明方法后,通过纯软件的方式实现以太网口数据包带VLAN ID,不需要依赖于具体的硬件平台,能够避免不同厂商必须通过设置寄存器的方式实现VLAN功能,具有更高的可通用性和可移植性,也可以提高软件研发速度和减少重复性工作。
[0036]以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
【权利要求】
1.一种以太网口数据包带VLAN ID的方法,其特征在于,包括: 步骤1:应用程序调用VLAN应用接口模块,设置VLAN信息; 步骤2:所述VLAN应用接口模块将所述VLAN信息发送给VLAN内核模块; 步骤3:所述VLAN内核模块判断数据包源端口是否在允许设VLAN的端口列表里;步骤4:若所述数据包源端口在允许设VLAN的端口列表里,则所述VLAN内核模块将VLAN ID加到所述数据包中并发送到网卡驱动。
2.根据权利要求1所述的以太网口数据包带VLANID的方法,其特征在于,所述VLAN信息包括VLAN ID,允许设VLAN的端口列表。
3.根据权利要求1所述的以太网口数据包带VLANID的方法,其特征在于,还包括: 若数据包源端口不在允许设VLAN的端口列表里,则所述VLAN内核模块直接将数据包发送到网卡驱动。
4.根据权利要求1所述的以太网口数据包带VLANID的方法,其特征在于,若所述数据包源端口在允许设VLAN的端口列表里时,在所述VLAN内核模块将VLAN ID加到所述数据包中并发送到网卡驱动之前还包括: VLAN内核模块判断数据包源端口是否开启了 VLAN功能; 若数据包源端口开启了 VLAN功能,则所述VLAN内核模块将VLAN ID加到所述数据包中并发送到网卡驱动。
5.根据权利要求4所述的以太网口数据包带VLANID的方法,其特征在于,还包括: 若数据包源端口没有开启VLAN功能,则所述VLAN内核模块直接将数据包发送到网卡驱动。
【文档编号】G06F9/44GK103634190SQ201310533785
【公开日】2014年3月12日 申请日期:2013年10月31日 优先权日:2013年10月31日
【发明者】胡雄 申请人:上海斐讯数据通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1