本发明专利技术公开一种在二层单板上实现三层通信的方法,包括:根据报文从L2传递所产生的中断,获取报文及对应的skb指针;提取报文中的VLAN信息,根据VLAN信息,判断是否能够查找到对应的虚拟网口;若是,则将skb指针对应的skb?dev替换为虚拟网口dev;通过虚拟网口dev接收或转发报文。本发明专利技术还公开一种在二层单板上实现三层通信的装置。本发明专利技术通过根据报文从L2传递所产生的中断,获取该报文及对应的skb指针,根据报文中的VLAN信息,将该报文接收或转发的方法,具有在L2交换芯片系统上实现三层通信的有益效果,提高了数据传输性能,避免了子接口的使用限制,节约了硬件成本。
【技术实现步骤摘要】
本专利技术涉及通讯
,尤其涉及ー种在ニ层单板上实现三层通信的方法及装置。
技术介绍
在ニ层系统中,Iinux (—类多用户计算机操作系统的统称)单板之间的通讯是 通过交换芯片进行ニ层转发的;目前,随着组网环境越来越复杂,设备也越来越多,使ニ层Iinux单板具有三层通信功能成了迫切需求。在ニ层单板上实现三层通信的基本原理是CPU (Central Processing Unit,中央处理器)和交換芯片之间通过网ロ相连,可以通过该网线对应的物理网ロ(比如ETHn)将各个VLAN (Virtual Local Area Network,虚拟局域网)的报文上报给CPU进行三层处理;CPU处理(或者转发、或者接收、或者丢弃)完毕之后,再进行VLAN封装,通过物理网ロ ETHnロ将报文发送到L2 (Layer2,ニ层)芯片上,L2通过VLAN实现报文转发,最终实现三层通τΗ ο基于上述基本原理,现有技术中的Linux系统可以通过子接ロ实现报文跨VLAN接收和转发,并将ETHn设置成桥模式,然后再根据VLAN创建子接ロ,实现VLAN报文之间的接收;报文上报CPU后,再通过子接ロ将报文转发,但是子接ロ需要和主接ロ共用MAC (MediaAccess Control,介质访问控制)地址,且不能实现网ロ独立的功能。
技术实现思路
本专利技术的主要目的是提供ー种在ニ层单板上实现三层通信的方法及装置,g在解决单板物理网口数目不足,不能和L2交換芯片的对外接ロ一一映射的问题。本专利技术公开了ー种在ニ层单板上实现三层通信的方法,包括以下步骤根据报文从ニ层L2传递所产生的中断,获取所述报文及对应的套接字缓冲区skb指针;提取所述报文中的虚拟局域网VLAN信息,根据所述VLAN信息,判断是否能够查找到对应的虚拟网ロ;若是,则将所述skb指针对应的skb设备dev替换为虚拟网ロ dev ;通过所述虚拟网ロ dev接收或转发所述报文。优选地,所述通过所述虚拟网ロ dev转发所述报文的步骤具体包括将所述报文数据提交至协议栈处理;将处理后的所述报文通过所述虚拟网ロ转发至所述虚拟网ロ dev ;调用所述虚拟网ロ dev的发送函数,在所述发送函数中添加所述VLAN信息后,再调用物理网ロ的发送函数将所述报文发出。优选地,所述根据报文从L2传递所产生的中断,获取所述报文及对应的skb指针的步骤之前还包括步骤创建并配置与所述物理网ロ绑定的多个所述虚拟网ロ。优选地,所述创建并配置与所述物理网ロ绑定的多个所述虚拟网ロ的步骤具体包括分配网络设备结构体和虚拟网ロ私有结构体;配置所述虚拟网ロ的相关參数,并设置所述虚拟网ロ dev的所述VLAN信息;根据所述虚拟网ロ绑定的所述物理网ロ状态,设置所述虚拟网ロ状态。优选地,所述绑定到同一个所述物理网ロ的所述虚拟网ロ通过指针关联在一起。本专利技术还公开ー种在ニ层单板上实现三层通信的装置,包括报文接收模块,用于根据报文从L2传递所产生的中断,获取所述报文及对应的 skb指针;VLAN信息获取模块,用于提取所述报文中的VLAN信息,根据所述VLAN信息,判断是否能够查找到对应的虚拟网ロ ;dev替换模块,用于在获取到对应的虚拟网ロ时,将所述skb指针对应的skb dev替换为虚拟网ロ dev ;报文发送模块,用于通过所述虚拟网ロ dev接收或转发所述报文。优选地,所述报文发送模块具体包括报文处理单元,用于将所述报文数据提交至协议栈处理;报文转发单元,用于将处理后的所述报文通过所述虚拟网ロ转发至所述虚拟网ロdev ;报文发送単元,用于调用所述虚拟网ロ dev的发送函数,在所述发送函数中添加所述VLAN信息后,再调用物理网ロ的发送函数将所述报文发出。优选地,所述在ニ层单板上实现三层通信的装置,还包括网ロ配置模块,用于创建并配置与所述物理网ロ绑定的多个所述虚拟网ロ。优选地,所述网ロ配置模块包括结构体分配単元,用于分配网络设备结构体和虚拟网ロ私有结构体;虚拟网ロ參数配置単元,用于配置所述虚拟网ロ的相关參数,并设置所述虚拟网ロ dev的所述VLAN信息;虚拟网ロ状态设置単元,根据所述虚拟网ロ绑定的所述物理网ロ状态,设置所述虚拟网ロ状态。优选地,所述绑定到同一个所述物理网ロ的所述虚拟网ロ通过指针关联在一起。本专利技术通过根据报文从L2传递所产生的中断,获取该报文及对应的skb指针,根据报文中的VLAN信息,将该报文通过虚拟网ロ dev发送的方法,具有在只有L2交换芯片的系统上实现三层通信的有益效果,提高了数据传输性能,避免了子接ロ使用过程中的ー些限制,节约了硬件成本。附图说明图I是本专利技术在ニ层单板上实现三层通信的方法第一实施例流程示意图;图2是本专利技术在ニ层单板上实现三层通信的方法中通过虚拟网ロ dev发送报文一实施例流程示意图3是本专利技术在ニ层单板上实现三层通信的方法第二实施例流程示意图;图4是本专利技术在ニ层单板上实现三层通信的方法中创建并配置与物理网ロ绑定的多个所述虚拟网ロー实施例流程示意图;图5是本专利技术在ニ层单板上实现三层通信的装置第一实施例结构示意图;图6是本专利技术在ニ层单板上实现三层通信的装置中报文发送模块ー实施例结构示意图;图7是本专利技术在ニ层单板上实现三层通信的装置第二实施例结构示意图;图8是本专利技术在ニ层单板上实现三层通信的装置中网ロ配置模块ー实施例结构示意图。本专利技术目的的实现、功能特点及优点将结合实施例,參照附图做进ー步说明。具体实施例方式以下结合说明书附图及具体实施例进ー步说明本专利技术的技术方案。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。參照图1,图I是本专利技术在ニ层单板上实现三层通信的方法第一实施例流程示意图;如图I所示,本专利技术在ニ层单板上实现三层通信的方法包括以下步骤步骤S01、根据报文从L2传递所产生的中断,获取所述报文及对应的skb指针;报文在ニ层单板上进行传递时,产生中断,触发物理网ロ的接收流程,物理网ロ获取该报文,并获取到该报文对应的skb (socket buffer,套接字缓冲区)指针。 步骤S02、提取所述报文中的VLAN信息,根据所述VLAN信息,判断是否能够查找到对应的虚拟网ロ ;若是,则执行步骤S03 ;若否,则执行步骤S04 ;步骤S03、将所述skb指针对应的skb dev替换为虚拟网ロ dev ;步骤S04、按照常规接收流程进行处理;物理网ロ提取该报文中的VLAN信息,所述VLAN信息为配置虚拟网ロ时注册的VLAN信息,ー个或多个VLAN信息只能对应唯一的虚拟网ロ ;根据该VLAN信息,物理网ロ采用一定的算法判断是否能够查找到对应的虚拟网ロ,该算法可以是遍历法等,在此不作限制。如果物理网ロ能够找到对应的虚拟网ロ,则将skb dev (device,设备)替换为虚拟网ロ dev ;如果物理网ロ没有找到对应的虚拟网ロ,则按照常规的处理流程进行接收处理。步骤S05、通过所述虚拟网ロ dev接收或转发所述报文。物理网ロ将接收到的报文提交至协议栈进行处理,本实施例中的协议栈指的是Linux协议栈;Linux协议栈将报文处理后,通过虚拟网ロ将处理后的报文转发至虚拟网ロdev ;物理网ロ调用对应虚拟网ロ dev的发送函数,在虚拟网ロ发送函数中添加VLAN信息后,再调用物理网ロ的发送函数,本文档来自技高网...
【技术保护点】
一种在二层单板上实现三层通信的方法,其特征在于,包括以下步骤:根据报文从二层L2传递所产生的中断,获取所述报文及对应的套接字缓冲区skb指针;提取所述报文中的虚拟局域网VLAN信息,根据所述VLAN信息,判断是否能够查找到对应的虚拟网口;若是,则将所述skb指针对应的skb设备dev替换为虚拟网口dev;通过所述虚拟网口dev接收或转发所述报文。
【技术特征摘要】
1.ー种在ニ层单板上实现三层通信的方法,其特征在于,包括以下步骤根据报文从ニ层L2传递所产生的中断,获取所述报文及对应的套接字缓冲区Skb指针;提取所述报文中的虚拟局域网VLAN信息,根据所述VLAN信息,判断是否能够查找到对应的虚拟网ロ;若是,则将所述skb指针对应的skb设备dev替换为虚拟网ロ dev ;通过所述虚拟网ロ dev接收或转发所述报文。2.如权利要求I所述的方法,其特征在于,所述通过所述虚拟网ロdev转发所述报文的步骤具体包括将所述报文数据提交至协议栈处理;将处理后的所述报文通过所述虚拟网ロ转发至所述虚拟网ロ dev ;调用所述虚拟网ロ dev的发送函数,在所述发送函数中添加所述VLAN信息后,再调用物理网ロ的发送函数将所述报文发出。3.如权利要求I或2所述的方法,其特征在于,所述根据报文从L2传递所产生的中断,获取所述报文及对应的skb指针的步骤之前还包括步骤创建并配置与所述物理网ロ绑定的多个所述虚拟网ロ。4.如权利要求3所述的方法,其特征在于,所述创建并配置与所述物理网ロ绑定的多个所述虚拟网ロ的步骤具体包括分配网络设备结构体和虚拟网ロ私有结构体;配置所述虚拟网ロ的相关參数,并设置所述虚拟网ロ dev的所述VLAN信息;根据所述虚拟网ロ绑定的所述物理网ロ状态,设置所述虚拟网ロ状态。5.如权利要求4所述的方法,其特征在于,所述绑定到同一个所述物理网ロ的所述虚拟网ロ通过指针关联在一起。6.ー种在ニ层单板上实现三...
【专利技术属性】
技术研发人员:李曙光,么爱利,
申请(专利权)人:中兴通讯股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。