Winsock ATM QoS 扩展

本部分介绍 ATM 的特定于协议的服务质量(QOS)结构,该结构包含在 QOS 结构的 ProviderSpecific 字段中。 请注意,Windows 套接字 2 客户端可以选择使用此 特定于 ATM 的 QOS 结构,并且 ATM 服务提供商需要将此通用 FLOWSPEC 结构映射到相应的 Q.2931 信息元素。 但是,如果同时指定泛型 FLOWSPEC 结构和特定于 ATM 的 QOS 结构,则应优先于发生任何冲突时,在 ATM 特定的 QOS 结构中指定的值。 有关 QoS 预配和 FLOWSPEC 结构的详细信息,请参阅 Windows 套接字 2 API 规范第 2.7 节。

ATM 的特定于协议 QOS 结构是 Q.2931 信息元素(IE)结构的串联,这些结构在以下文本中定义。 如果应用程序省略 UNI 3.x 授权的 IE,则服务提供商应插入合理的默认值,并将 FLOWSPEC 结构中的信息纳入考虑(如果适用)。

重复 IE 的处理取决于 IE 本身。 如果重复 IE,并且允许根据 ATM 论坛 UNI 规范重复它,则提供商必须正确处理它。 在这种情况下,列表中的顺序决定了首选项顺序,列表前面显示的元素更优先。 如果重复 IE 并且不允许按 ATM 论坛 UNI 规范执行此作,提供商可能会失败来自客户端(首选选项)的请求或使用找到的该类型的最后 IE。

每个单独的 IE 结构采用以下方式进行格式化,并由 IEType 字段标识:

typedef struct {
    Q2931_IE_TYPE IEType;
    ULONG         IELength;
    UCHAR         IE[1];
} Q2931_IE;

IEType 字段的法律值定义为:

typedef enum {
    IE_AALParameters,
    IE_TrafficDescriptor,
    IE_BroadbandBearerCapability,
    IE_BHLI,
    IE_BLLI,
    IE_CalledPartyNumber,
    IE_CalledPartySubaddress,
    IE_CallingPartyNumber,
    IE_CallingPartySubaddress,
    IE_Cause,
    IE_QOSClass,
    IE_TransitNetworkSelection,
} Q2931_IE_TYPE;

IE 字段由特定的 IE 结构覆盖,IELength 字段是 IE 结构的总长度(包括 IETypeIELength 字段)。 这些 IE 结构的每个元素的语义和法律值是每个 ATM UNI 3.x 规范。 SAP_FIELD_ABSENT可用于给定 IE 结构的可选元素,每个 ATM UNI 3.x 规范。