编写适用于 Oracle® Solaris 11.2 的设备驱动程序

退出打印视图

更新时间: 2014 年 9 月
 
 

GLDv2 设备支持

    GLDv2 框架支持以下类型的设备:

  • DL_ETHER:ISO 8802-3、IEEE 802.3 协议

  • DL_TPR:IEEE 802.5 令牌传递环

  • DL_FDDI:ISO 9314-2 光纤分布式数据接口

Ethernet V2 和 ISO 8802-3 (IEEE 802.3)

对于声明为 DL_ETHER 类型的设备,GLDv2 提供 Ethernet V2 和 ISO 8802-3 (IEEE 802.3) 包处理支持。通过 Ethernet V2,用户可以访问遵循该标准的数据链路服务提供方,而无需了解有关此提供者协议的专门知识。服务访问点 (service access point, SAP) 是用户用于与服务提供者进行通信的点。

绑定到范围为 [0-255] 的 SAP 值的流均视为相同的流,并表示用户要使用 8802-3 模式。如果 DL_BIND_REQ 的 SAP 值在此范围内,则 GLDv2 将计算该流上的每条后续 DL_UNITDATA_REQ 消息的长度。长度不包括 14 字节的介质访问控制 (media access control, MAC) 头。然后,GLDv2 将传输 MAC 帧标题 type 字段中具有这些长度的 8802-3 帧。这样的长度不超过 1500。

拥有范围为 [0-1500] 的 type 字段的帧被视为 8802-3 帧。这些帧以 8802-3 模式沿所有打开的流进行路由。那些具有范围为 [0-255] 的 SAP 值的流均被视为处于 8802-3 模式下。如果多个流处于 8802-3 模式,则传入帧会被复制并沿这些流进行路由。

那些绑定到大于 1500 的 SAP 值的流均被假定为处于 Ethernet V2 模式下。这些流将接收以太网 MAC 头 type 值与流绑定到的 SAP 值完全匹配的传入包。

TPR 和 FDDI:SNAP 处理

对于 DL_TPRDL_FDDI 介质类型,GLDv2 会实现最低限度的 SNAP(Sub-Net Access Protocol,子网访问协议)处理。此处理用于任何绑定到大于 255 的 SAP 值的流。范围为 [0-255] 的 SAP 值是 LLC SAP 值。此类值自然地通过介质包格式传送。大于 255 的 SAP 值需要 SNAP 头(从属于 LLC 头)来传送 16 位 Ethernet V2 样式的 SAP 值。

SNAP 头位于 LLC 头后面,目标是 SAP 0xAA。SAP 值大于 255 的外发包要求 LLC+SNAP 头采用以下形式:

AA AA 03 00 00 00 XX XX

XX XX 表示对应于 Ethernet V2 样式 type 的 16 位 SAP。在支持非零的组织唯一标识符字段方面,此头是独一无二的。03 之外的 LLC 控制字段被视为具有 SAP 0xAA 的 LLC 包。要使用此格式之外的 SNAP 格式的客户机必须使用 LLC 并绑定到 SAP 0xAA

将检查传入包是否符合上述格式。将符合的包与任何已绑定到包的 16 位 SNAP 类型的流进行匹配。此外,还将这些包视为与 LLC SNAP SAP 0xAA 相匹配。

针对任何 LLC SAP 接收的包将沿所有绑定到 LLC SAP 的流传递。相关内容,请参见介质类型 DL_ETHER 的介绍。

TPR:源路由

对于类型 DL_TPR 设备,GLDv2 实现最低限度的源路由支持。

    源路由支持包括以下任务:

  • 针对要通过桥接介质发送的包指定路由信息。路由信息存储在 MAC 头中。此信息用于确定路由。

  • 了解路由。

  • 索取并响应有关可能的多个路由的信息请求。

  • 在可用的路由之间进行选择。

源路由会将路由信息字段添加到传出包的 MAC 头中。此外,此支持还可在传入包中识别此类字段。

GLDv2 的源路由支持并未实现《ISO 8802-2 (IEEE 802.2)》的第 9 节中指定的完整路由确定实体 (route determination entity, RDE)。但是,此支持可以与任何可能存在于同一网络或桥接网络中的 RDE 实现进行交互操作。