Open vSwitch ETHERNET相关字段详解(eth_src/dl_src、eth_dst/dl_dst、eth_type/dl_type)

字段概览

备注:由于历史原因,某些字段会有多个名字,如下表,/后面表示该字段的其他名字

字段名长度格式Masking前置项访问权限OpenFlow 1.0OpenFlow 1.1NXM/OXM Support描述
eth_src/dl_src48位以太网地址支持任意位掩码Ethernet读/写exact match onlyyesOF 1.2+ and OVS 1.1+以太网帧的源MAC地址
eth_dst/dl_dst48位以太网地址支持任意位掩码Ethernet读/写exact match onlyyesOF 1.2+ and OVS 1.1+以太网帧的目的MAC地址
eth_type/dl_type16位十六进制不支持Ethernet只读exact match onlyexact match onlyOF 1.2+ and OVS 1.1+表示装在这个以太网帧里的数据的类型

字段详解

以太网是Open vSwitch唯一一个支持的2层网络协议。eth_src/dl_src、eth_dst/dl_dst比较简单,分别匹配数据包的源MAC地址和目的MAC地址,以下重点解释eth_type/dl_type这个字段。

eth_type/dl_type

最常见的以太网帧的报文头格式为“Ethernet II”,如下:
在这里插入图片描述
在这种格式中,最后两个字节表示以太网的类型,并且值大于等于0x600 (1536),用于表示装在这个Frame里面数据的类型,此时eth_type/dl_type的值就取自这两个字节。
当最后两个字节<0x600时,则表示该帧不是Ethernet II格式,此时在Ethernet头后面一般会有一个802.2 LLC的头,OpenFlow和Open vSwitch只支持IEEE 802.3 SNAP格式的LLC头,即DSAP=0xaa、SSAP=0xaa、cntl=0x03,LLC后面会跟一个5个字节大小的SNAP,OpenFlow和OVS只支持org=0x000000的SNAP,在这个格式的以太网帧中,eth_type/dl_type的值取自SNAP的后两个字节的值。
在这里插入图片描述
当一个802.1Q头插入到Ethernet之后时,如下:
在这里插入图片描述
eth_type/dl_type取自Ethertype。
当在802.3 SNAP格式中插入802.1Q头时,如下:
在这里插入图片描述
此时eth_type/dl_type也取自Ethertype。
当一个数据包的报文头不满足上述格式时,OVS和OpenFlow把eth_type/dl_type设为0x5ff(OFP_DL_TYPE_NOT_ETH_TYPE)。

eth_type/dl_type各个取值的含义参考:EtherType

参考资料:

  1. IEEE 802.2 LLC协议
  2. 以太网帧格式
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值