Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
ISO/IEC 29341-10-10规定了UPnP QoS设备服务,这是将QoS设备能力暴露给UPnP控制点的服务级接口。该服务定义了使控制点能够查询、配置和监控QoS设备上的QoS策略的动作、状态变量和事件机制。它是UPnP QoS框架实现流量管理的程序化接口。
QoS设备服务作为托管在QoS设备上的标准UPnP服务运行。它公开了用于检索支持的流量类别、应用流量策略、查询当前QoS状态以及订阅QoS相关事件(如带宽变化或策略违规)的动作。
QoS设备服务定义了一套全面的动作,按功能组组织。配置动作允许控制点设置流量策略和带宽预留。查询动作检索当前QoS状态、活动流信息和可用的流量类别。监控动作提供QoS统计信息的访问,包括数据包计数、丢弃数据包数和队列深度。
QoS设备服务中的状态变量分为三类:配置变量(可由授权控制点写入)、状态变量(只读,反映当前设备状态)和事件型变量(变更时触发通知)。关键状态变量包括:QosDeviceState(空闲/活动/配置中/错误)、TotalBandwidth、AvailableBandwidth、ActiveFlowCount和PolicyViolationCount。
| 动作名称 | 类别 | 说明 | 关键参数 |
|---|---|---|---|
| GetSupportedTrafficClasses | 查询 | 检索支持的流量类别列表 | 输出: TrafficClassList |
| ApplyTrafficPolicy | 配置 | 对流量流应用QoS策略 | 输入: FlowSpec, TrafficClass, Priority |
| RemoveTrafficPolicy | 配置 | 移除之前应用的策略 | 输入: PolicyID |
| GetQosState | 查询 | 检索当前QoS设备状态 | 输出: QosState, ActiveFlows |
| GetQosStatistics | 查询 | 获取流量/性能统计信息 | 输出: StatsData |
| RequestBandwidthReservation | 配置 | 为特定流量流预留带宽 | 输入: FlowID, Bandwidth, Duration |
| ReleaseBandwidthReservation | 配置 | 释放带宽预留 | 输入: ReservationID |
| SubscribeToQosEvents | 事件 | 订阅QoS事件通知 | 输入: EventFilter, 输出: SubscriptionID |
实际实施QoS设备服务需要仔细的线程安全设计。服务必须处理来自多个控制点的并发动作调用,同时保持状态变量的一致性。标准建议使用读写锁模式:多个并发查询动作是安全的,但配置动作应获取独占访问权限以防止竞态条件。
错误处理需要特别关注。服务应为常见的故障场景返回有意义的错误代码:无效的动作参数返回402(无效参数)、内部设备错误返回501(动作失败)、无效的流量类别或带宽值返回606(参数值超出范围)、请求控制点缺少权限时返回702(未授权)。
对于带宽预留管理,实现超时机制,在控制点意外断开时自动释放孤立预留。标准建议使用可配置的超时时间,300秒(5分钟)是合理的默认值。这可以防止带宽被崩溃或无响应的控制点永久占用。