[发明专利]Linux软桥支持VLAN的方法有效
| 申请号: | 201410395046.8 | 申请日: | 2014-08-12 |
| 公开(公告)号: | CN104125128B | 公开(公告)日: | 2017-04-12 |
| 发明(设计)人: | 周转运;李长春;王志军;赵伟 | 申请(专利权)人: | 烽火通信科技股份有限公司 |
| 主分类号: | H04L12/46 | 分类号: | H04L12/46;H04L12/741 |
| 代理公司: | 北京捷诚信通专利事务所(普通合伙)11221 | 代理人: | 魏殿绅,庞炳良 |
| 地址: | 430074 湖北省武*** | 国省代码: | 湖北;42 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | linux 支持 vlan 方法 | ||
1.Linux软桥支持VLAN的方法,其特征在于,包括以下步骤:
步骤A10、在Linux内核创建网桥br0和VLAN网络端口,并将网络端口和VLAN网络端口加入到网桥br0中形成相应的网桥端口,网桥端口以VLAN端口链表组的形式进行维护;
步骤A20、配置网桥br0中网桥端口,创建或更新对应的VLAN端口链表;
步骤A30、利用网桥br0实现基于VLAN的数据转发。
2.如权利要求1所述,其特征在于,步骤A10中网桥VLAN端口链表的维护方法如下:
(1)一组VLAN ID相同的网桥端口通过一个VLAN端口链表来组织;
(2)每个网桥端口的结构成员中包含指向所属VLAN端口链表的链表头信息,用于数据包洪泛转发时遍历VLAN上的所有端口;
(3)在网桥中创建新的VLAN网络端口时,需创建新的VLAN端口链表;
(4)添加网络端口或者VLAN网络端口到网桥时,根据网桥端口的PVID或VLAN ID查找对应VLAN端口链表,添加网桥端口到该VLAN端口链表的表尾;
(5)删除网桥中网络端口或者VLAN网络端口时,根据网桥端口的VLAN ID查找对应VLAN端口链表,遍历VLAN端口链表查找相应成员,将其删除。
3.如权利要求1所述,其特征在于,步骤A20包括以下步骤:
步骤A21、配置VLAN网络端口的网络端口和VLAN ID,创建基于802.1Q的虚拟端口,配置网络端口的PVID属性;
步骤A22、判断新增网桥端口是否为网络端口,如果是网络端口,则获取该网桥端口的PVID,转步骤A23;如果是VLAN网络端口,则获取该虚拟端口的VLAN ID,转步骤A23;
步骤A23、以VLAN ID或者PVID为索引,查找对应VLAN端口链表是否存在,如果不存在,创建新的VLAN端口链表;如果存在,将新增的网桥端口加入对应的VLAN端口链表。
4.如权利要求1所述,其特征在于,步骤A30包括以下步骤:
步骤A31、网络端口接收到数据包;
步骤A32、检查该数据包是否带有802.1Q TAG,如果数据包协议类型为802.1Q,则转步骤A33;否则转步骤A34;
步骤A33、剥离数据包中的802.1Q字段,修改数据包的接收端口为VLAN网络端口,转步骤A34;
步骤A34、判断数据包的接收端口是否为网桥端口,如果是,则转步骤A35;否则送Linux上层协议栈处理,结束;
步骤A35、数据包进入桥协议栈进行处理,并创建或更新转发表;
步骤A36、判断数据包的目的MAC地址是广播地址还是单播地址,如果是广播地址,则转步骤A39;否则转步骤A37;
步骤A37、根据数据包目的MAC地址和VLAN信息查找转发表;
步骤A38、如果转发表中存在与目的MAC地址相同的VLAN网络端口,转步骤A40;如果不存在,则转步骤A39;
步骤A39、根据接收数据包的网络端口VLAN ID信息,获取该网桥端口所属的网桥VLAN端口链表,向VLAN端口链表中的其他网络端口进行洪泛;
步骤A40、定位到与目的MAC地址相同的VLAN网络端口,由网桥端口转发;
步骤A41、判断桥端口是否为VLAN网络端口,如果是,则转步骤A42;否则转步骤A43;
步骤A42、通过802.1Q协议栈添加对应的802.1Q TAG,转步骤A43;
步骤A43、将数据包经由网络端口发送出去;
步骤A44、结束。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于烽火通信科技股份有限公司,未经烽火通信科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410395046.8/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种通信群组创建方法、系统及装置
- 下一篇:对互联网应用场所分类的方法和装置





