免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2444 | 回复: 2
打印 上一主题 下一主题

[网络子系统] 关于内核网络子系统vlan的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-12-23 14:00 |只看该作者 |倒序浏览
今天在内核源码的时候在vlan_skb_recv中看到这个注释
/* If the VLAN device is defined, we use it.
* If not, and the VID is 0, it is a 802.1p packet (not
* really a VLAN),
*/
这句话什么意思呢?是没有创建vlan,报文也会带有优先级,用的是默认的vlan 0吗?还是要怎么设置才能在没有创建vlan的情况下报文带有优先级?

论坛徽章:
6
金牛座
日期:2013-10-08 10:19:10技术图书徽章
日期:2013-10-14 16:24:09CU十二周年纪念徽章
日期:2013-10-24 15:41:34狮子座
日期:2013-11-24 19:26:19未羊
日期:2014-01-23 15:50:002015年亚洲杯之阿联酋
日期:2015-05-09 14:36:15
2 [报告]
发表于 2013-12-23 16:00 |只看该作者
回复 1# jasonsungblog
今天在内核源码的时候在vlan_skb_recv中看到这个注释
/* If the VLAN device is defined, we use it.
* If not, and the VID is 0, it is a 802.1p packet (not
* really a VLAN),
*/
这句话什么意思呢?是没有创建vlan,报文也会带有优先级,用的是默认的vlan 0吗?还是要怎么设置才能在没有创建vlan的情况下报文带有优先级?


具体的代码没看,但从注释里面已经很清楚了啊。

802.1p协议时802.1q协议的扩展,而且这个两个协议的ETH type都是0x8100。所有要想区分是802.1p还是802.1q就只能通过注释的方式来区分了。




参考:
___________________________________________________________________________________
|     7   |  1  |  6  | 6  |  2   |  2  |     2        | 42-1496 bytes   | 4 bytes |
|---------|-----|-----|----|------|-----|--------------|-----------------|---------|
|Preamble | SFD |  DA | SA | TPID | TCI | Type Length  |    Data         |   CRC   |
----------|-----|-----|----|------|-----|--------------|-----------------|---------|

Preamble(Pre) - 7字节。Pre 字段中1和0交互使用,接收站通过该字段知道导入帧,并且该字段提供了同步化接收物理层帧接收部分和导入比特流的方法。
Start-of-Frame delimiter(SFD) - 1字节。字段中1和0交互使用,结尾是两个连续的1,表示下一位是利用目的地址的重复使用字节的重复使用位
Destination Address(DA) - 6字节。DA 字段用于识别需要接收帧的站。
Source Addresses(SA) - 6字节。SA 字段用于识别发送帧的站。
TPID - 值为8100(hex)。当帧中的 EtherType 也为8100时,该帧传送标签 IEEE 802.1Q/802.1P。
TCI - 标签控制信息字段,包括用户优先级(User Priority)、规范格式指示器(Canonical Format Indicator)和 VLAN ID。


3  1 12 bits
User Priority CFI Bits of VLAN ID (VIDI) to identify possible VLANs

User Priority:定义用户优先级,包括8个(2^3)优先级别。IEEE 802.1P 为3比特的用户优先级位定义了操作。
CFI:以太网交换机中,规范格式指示器总被设置为0。由于兼容特性,CFI 常用于以太网类网络和令牌环类网络之间,如果在以太网端口接收的帧具有 CFI,那么设置为1,表示该帧不进行转发,这是因为以太网端口是一个无标签端口。
VID:VLAN ID 是对 VLAN 的识别字段,在标准 802.1Q 中常被使用。该字段为12位。支持4096(2^12) VLAN 的识别。在4096可能的 VID 中,VID=0 用于识别帧优先级。 4095(FFF)作为预留值,所以 VLAN 配置的最大可能值为4,094。
Length/Type - 2字节。如果是采用可选格式组成帧结构时,该字段既表示包含在帧数据字段中的 MAC 客户机数据大小,也表示帧类型 ID。
Data - 是一组 n(46=< n =<1500)字节的任意值序列。帧总值最小为64字节。
Frame Check Sequence(FCS) - 4字节。该序列包括32位的循环冗余校验(CRC)值,由发送 MAC 方生成,通过接收 MAC 方进行计算得出以校验被破坏的帧。

   

论坛徽章:
0
3 [报告]
发表于 2013-12-23 17:48 |只看该作者
谢谢你的回答。我不是要区别是什么报文,我只是想知道如果我不配置vlan,发出去的报文能不能带有优先级?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP