WANG YU (CN)
WO2009099357A1 | 2009-08-13 |
CN101453308A | 2009-06-10 | |||
CN102136959A | 2011-07-27 | |||
CN101997774A | 2011-03-30 | |||
CN101136792A | 2008-03-05 |
北京康信知识产权代理有限责任公司 (CN)
权 利 要 求 书 1. 一种时延性能监测方法, 包括: 在对第一时间戳进行初始化时, 触发网络处理器开始获取第二时间戳; 在达到预定时长时, 更新所述第一时间戳, 并结合所述更新后的第一时间 戳与所述获取到的第二时间戳来执行延时性能监测。 2. 根据权利要求 1所述的方法, 其中, 对所述第一时间戳进行初始化包括: 中央处理器 CPU获取当前纳秒级的系统时间值并保存。 3. 根据权利要求 2所述的方法,其中,所述 CPU获取当前纳秒级的系统时间值并 保存包括: 所述 CPU读取当前纳秒级的第一系统时间值; 所述 CPU将读取到的所述第一系统时间值的秒值保存在第一寄存器中; 所述 CPU将读取到的所述第一系统时间值的纳秒值保存在第二寄存器中。 4. 根据权利要求 1所述的方法,其中,所述网络处理器获取所述第二时间戳包括: 在所述预定时长内, 记录所述网络处理器接收到所述环回报文的次数; 根据记录的所述次数以及预先设定的所述网络处理器每秒接收所述环回报 文的次数获取所述第二时间戳。 5. 根据权利要求 4所述的方法, 其中, 记录所述网络处理器接收到所述环回报文 的次数包括: 通过第三寄存器对所述环回报文的环回次数进行累加得到所述次数。 6. 根据权利要求 1所述的方法, 其中, 更新所述第一时间戳包括: 获取所述预定时长达到时的第二系统时间值; 采用所述第二系统时间值更新所述第一系统时间值。 7. 根据权利要求 6所述的方法, 其中, 获取所述预定时长达到时的第二系统时间 值包括: CPU读取纳秒级的所述第二系统时间值; 所述 CPU将读取到的所述第二系统时间值的秒值保存在第一寄存器中; 所述 CPU将读取到的所述第二系统时间值的纳秒值保存在第二寄存器中。 8. 根据权利要求 7所述的方法,其中,在所述 CPU读取纳秒级的所述第二系统时 间值时, 还包括: 所述网络处理器将第三寄存器当前记录的所述环回报文的环回次数清空。 9. 根据权利要求 1所述的方法, 其中, 结合更新后的所述第一时间戳与获取到的 所述第二时间戳来执行延时性能监测包括: 将所述更新后的第一时间戳与所述获取到的第二时间戳相加获取第三时间 戳; 在所述预定时长后的下一预定时长内, 采用所述第三时间戳执行延时性能 10. 一种时延性能监测装置, 包括: 触发模块, 设置为在对第一时间戳进行初始化时, 触发网络处理器开始获 取第二时间戳; 更新模块, 设置为在达到预定时长时, 更新所述第一时间戳; 执行模块, 设置为结合所述更新后的第一时间戳与所述获取到的第二时间 戳来执行延时性能监测。 11. 根据权利要求 10所述的装置, 其中, 所述更新模块包括: 第一获取单元, 设置为获取所述预定时长达到时的第二系统时间值; 更新单元, 设置为采用所述第二系统时间值更新所述第一系统时间值。 12. 根据权利要求 10所述的装置, 其中, 所述执行模块包括: 第二获取单元, 设置为将所述更新后的第一时间戳与所述获取到的第二时 间戳相加获取第三时间戳; 执行单元, 设置为在所述预定时长后的下一预定时长内, 采用所述第三时 间戳执行延时性能监测。 |
( 1 )设备 A在指定的链路 L AB 上周期性的发送延迟测量消息(Delay Measurement Message,简称为 DMM)报文, DMM报文中带有发送该报文的时间戳 TxTimeStampf;
(2)链路 L AB 对端的设备 B收到 DMM后,会向设备 A回复延迟测量应答(Delay Measurement Reply, 简称为 DMR) 报文。 DMR报文中包含对应 DMM报文中的发送 时间戳 TxTimeStampf, 以及设备 B收到 DMM报文的时间戳 RxTimeStampf和发送 DMR报文的时间戳 TxTimeStampb;
(3 )设备 A收到 DMR报文后, 可以根据 DMR中的 3个时间戳, 以及设备 A收 到 DMR的时间戳 RxTimeStampb, 计算出最终的帧时延:
(RxTimeStampb - TxTimeStampf) - (TxTimeStampb - RxTimeStamp)。 通常情况下, 网络处理器不支持 0AM功能, 也不能直接生成时间戳。 所以, 实 现时延性能监测一般有两种方案, 第一种是使用通用 CPU来生成时间戳, 再配合网络 处理器或转发芯片来接收和发送 DMM和 DMR报文; 第二种是使用专用的 0AM芯 片来生成时间戳, 再配合网络处理器或转发芯片来接收和发送 DMM和 DMR报文。 第一种方案会大幅增加 CPU负载, 而且由于 CPU的处理速度限制, 也无法满足对毫 秒级的时延性能监测报文的处理。 第二种方案虽然能满足对时延性能监测报文的 毫秒 级处理, 但是使用额外的芯片也会明显增加系统的开发 成本。 发明内容 本发明提供了一种时延性能监测方法及装置, 以至少解决相关技术中使用通用 CPU来生成时间戳会大幅增加 CPU负载, 而且由于 CPU的处理速度限制, 也无法满 足对毫秒级时延性能监测报文的处理; 使用额外的芯片又会明显增加系统开发成本的 问题。 根据本发明的一个方面, 提供了一种时延性能监测方法。 根据本发明的时延性能监测方法包括: 在对第一时间戳进行初始化时, 触发网络 处理器开始获取第二时间戳; 在达到预定时长时, 更新第一时间戳, 并结合更新后的 第一时间戳与获取到的第二时间戳来执行延时 性能监测。 优选地, 对第一时间戳进行初始化包括: 中央处理器 CPU获取当前纳秒级的系统 时间值并保存。 优选地, CPU获取当前纳秒级的系统时间值并保存包括: CPU读取当前纳秒级的 第一系统时间值; CPU将读取到的第一系统时间值的秒值保存在第 一寄存器中; CPU 将读取到的第一系统时间值的纳秒值保存在第 二寄存器中。 优选地, 网络处理器获取第二时间戳包括: 在预定时长内, 记录网络处理器接收 到环回报文的次数; 根据记录的次数以及预先设定的网络处理器每 秒接收环回报文的 次数获取第二时间戳。 优选地, 记录网络处理器接收到环回报文的次数包括: 通过第三寄存器对环回报 文的环回次数进行累加得到次数。 优选地, 更新第一时间戳包括: 获取预定时长达到时的第二系统时间值; 采用第 二系统时间值更新第一系统时间值。 优选地, 获取预定时长达到时的第二系统时间值包括: CPU读取纳秒级的第二系 统时间值; CPU将读取到的第二系统时间值的秒值保存在第 一寄存器中; CPU将读取 到的第二系统时间值的纳秒值保存在第二寄存 器中。 优选地, 在 CPU读取纳秒级的第二系统时间值时, 还包括: 网络处理器将第三寄 存器当前记录的环回报文的环回次数清空。 优选地, 结合更新后的第一时间戳与获取到的第二时间 戳来执行延时性能监测包 括: 将更新后的第一时间戳与获取到的第二时间戳 相加获取第三时间戳; 在预定时长 后的下一预定时长内, 采用第三时间戳执行延时性能监测。 根据本发明的另一方面, 提供了一种时延性能监测装置。 根据本发明的时延性能监测装置包括: 触发模块, 设置为在对第一时间戳进行初 始化时, 触发网络处理器开始获取第二时间戳; 更新模块, 设置为在达到预定时长时, 更新第一时间戳; 执行模块, 设置为结合更新后的第一时间戳与获取到的第 二时间戳 来执行延时性能监测。 优选地, 更新模块包括: 获取单元, 设置为获取预定时长达到时的第二系统时间 值; 更新单元, 设置为采用第二系统时间值更新第一系统时间 值。 优选地, 执行模块包括: 获取单元, 设置为将更新后的第一时间戳与获取到的第 二时间戳相加获取第三时间戳; 执行单元, 设置为在预定时长后的下一预定时长内, 采用第三时间戳执行延时性能监测。 通过本发明, 解决了相关技术中使用通用 CPU来生成时间戳会大幅增加 CPU负 载, 而且由于 CPU的处理速度限制, 也无法满足对毫秒级时延性能监测报文的处理 ; 使用额外的芯片又会明显增加系统开发成本的 问题, 进而达到了在不增加系统开发成 本的前提下, 提高了时间戳的精确度, 满足对毫秒级时延性能监测报文处理需求的效 果。 附图说明 此处所说明的附图用来提供对本发明的进一步 理解, 构成本申请的一部分, 本发 明的示意性实施例及其说明用于解释本发明, 并不构成对本发明的不当限定。 在附图 中: 图 1是根据本发明实施例的时延性能监测方法流 图; 图 2是根据本发明优选实施例的 CPU初始化校正时间戳的流程图; 图 3是根据本发明优选实施例的由网络处理器模 时钟变化的流程图; 图 4是根据本发明优选实施例的由 CPU周期性校正时间戳的流程图; 图 5是根据本发明优选实施例的网络处理器计算 终的时间戳的流程图; 图 6是根据本发明实施例的时延性能监测装置的 构框图; 图 7是根据本发明优选实施例的时延性能监测装 的结构框图; 以及 图 8是根据本发明实例的 CPU与网络处理器结合的系统示意图。 具体实施方式 下文中将参考附图并结合实施例来详细说明本 发明。 需要说明的是, 在不冲突的 情况下, 本申请中的实施例及实施例中的特征可以相互 组合。 图 1是根据本发明实施例的时延性能监测方法流 图。 如图 1所示, 该方法主要 包括以下处理: 步骤 S102:在对第一时间戳进行初始化时,触发网络 理器开始获取第二时间戳; 步骤 S104: 在达到预定时长时, 更新第一时间戳, 并结合更新后的第一时间戳与 获取到的第二时间戳来执行延时性能监测。 相关技术中, 使用通用 CPU来生成时间戳会大幅增加 CPU负载, 而且由于 CPU 的处理速度限制, 也无法满足对毫秒级时延性能监测报文的处理 ; 使用额外的芯片又 会明显增加系统开发成本。 采用图 1所示的技术方案, 使用网络处理器的流量整形功 能来模拟时钟变化, 同时周期性的使用 CPU校正该时钟, 然后根据校正后的模拟时钟 生成时间戳, 最后, 由网络处理器使用生成的时间戳完成 DMM和 DMR等时延监测 报文的处理, 实现时延性能监测。 由此, 解决了相关技术中使用通用 CPU来生成时间 戳会大幅增加 CPU负载, 而且由于 CPU的处理速度限制, 也无法满足对毫秒级时延 性能监测报文的处理; 使用额外的芯片又会明显增加系统开发成本的 问题, 实现了在 不增加系统开发成本的前提下, 提高了时间戳的精确度, 满足对毫秒级时延性能监测 报文处理需求。 优选地, 上述步骤 S102 中, 对第一时间戳进行初始化可以包括以下处理: CPU 获取当前纳秒级的系统时间值并保存。 在优选实施过程中,上述 CPU获取当前纳秒级的系统时间值并保存可以包 括以下 处理: ( 1 ) CPU读取当前纳秒级的第一系统时间值;
( 2 ) CPU将读取到的第一系统时间值的秒值保存在第 一寄存器中;
( 3 ) CPU将读取到的第一系统时间值的纳秒值保存在 第二寄存器中。 以下结合图 2进一步描述上述优选实施方式, 如图 2所示, CPU初始化校正时间 戳可以包括以下处理步骤: 步骤 S202: 由 CPU读取当前的系统时钟; 需要说明的是, 当前的系统时钟需要精确到纳秒。 步骤 S204: 将系统时钟的秒值保存在校正时间戳寄存器 S CPU - S (相当于上述第一 寄存器) 中; 步骤 S206: 将系统时钟的纳秒值保存在校正时间戳寄存器 S CPU _ NS (相当于上述第 二寄存器) 中。 需要说明的是, 将当前系统时间值保存到两个寄存器中主要是 为了防止将秒值和 纳秒值保存在同一个寄存器中易发生溢出, 而且在计算时间时由二进制向十进制转换 会造成当前系统时间值的精度下降, 因此, 为了确保时间戳精确到纳秒级, 应该将秒 值和纳秒值分别保存在两个寄存器当中。 优选地, 网络处理器获取第二时间戳可以包括以下处理 : 在预定时长内, 记录网 络处理器接收到环回报文的次数; 根据记录的次数以及预先设定的网络处理器每 秒接 收环回报文的次数获取第二时间戳。 在优选实施过程中, 上述记录网络处理器接收到环回报文的次数包 括: 通过第三 寄存器对环回报文的环回次数进行累加得到次 数。 以下结合图 3进一步描述上述优选实施方式, 如图 3所示, 该由网络处理器模拟 时钟变化可以包括以下处理步骤: 步骤 S302: 配置网络处理器的整形功能; 例如: 在网络处理器的专用环回接口上配置流量整形 为 L PKT XNLP字节 /秒。 其中, N LP 为环回报文在每秒钟的环回次数, 可以根据系统需要的时间戳精度来适当调整。 如果需要支持毫秒级的报文处理, 可设置 NLP为 1000; L PKT 为环回报文的长度, 可以 根据网络处理器的环回处理能力来适当调整。 步骤 S304: 初始化报文环回次数寄存器 CLP (相当于上述第三寄存器) 为 0; 步骤 S306: 每次网络处理器收到上述环回报文时, 需要将环回次数寄存器 CLP加 1; 需要说明的是, 在每次出现定时器 T CPU 超时的情况下, 需要将环回次数寄存器 C LP 清 0。 步骤 S308 : 当前的模拟时钟 S NP 可以通过 NLP和 CLP计算得到, 即 S NP = CL P / NLP 秒。 需要注意的是,在系统运行的整个过程中,需 要 CPU来周期性的校正时间戳时钟, 以提高最终获得的时间戳的精度。 可能导致最终时间戳偏差主要有以下两个原因 : 其 一, 在系统负载发生较大的震荡变化时, 流量整形功能可能不是绝对均匀的, 这会导 致网络处理器的模拟时钟引入偏差; 其二,环回报文的环回次数是保存在寄存器中 的, 每次报文环回时会自动加 1, 由于寄存器自身的存储长度限制, 不断的加 1运算会使 寄存器发生溢出, 同样也会导致网络处理器的模拟时钟引入偏差 。通过 CPU周期性的 清除环回次数寄存器, 可以有效的降低网络处理器的模拟时钟引入的 偏差, 提高最终 需要的时间戳的精度。 优选地, 上述步骤 S 104中, 更新第一时间戳可以包括以下处理: ( 1 ) 获取预定时长达到时的第二系统时间值; ( 2 ) 采用第二系统时间值更新第一系统时间值。 在优选实施过程中, 上述获取预定时长达到时的第二系统时间值可 以包括以下处 理:
( 1 ) CPU读取纳秒级的第二系统时间值;
( 2 ) CPU将读取到的第二系统时间值的秒值保存在第 一寄存器中; ( 3 ) CPU将读取到的第二系统时间值的纳秒值保存在 第二寄存器中。 在优选实施过程中, 在 CPU读取纳秒级的第二系统时间值时, 还可以包括: 网络 处理器将第三寄存器当前记录的环回报文的环 回次数清空。 需要说明的是, 随着当前记录的环回报文的环回次数的不断增 加会使第三寄存器 发生溢出, 这样会导致网络处理器的模拟时钟引入偏差。 因此, 每次达到预定时长时, 均需要对第三寄存器进行清空, 以确保网络处理器生成的时间戳的精度。 以下结合图 4进一步描述上述优选实施方式, 如图 4所示, 该由 CPU周期性校正 时间戳可以包括以下处理步骤: 步骤 S402: CPU初始化定时器 T CPU; 需要说明的是, 由 CPU周期性校正时间戳时钟是通过定时器完成的 。在系统使能 时延监测功能时, CPU会触发一个定时器 T CPU 。 一般来说, T CPU 是秒级的定时器, 不 会影响 CPU的正常业务。 同时 T CPU 必须小于环回次数寄存器 NLP发生溢出的最长时 间, 防止 NLP在 T CPU 超时前发生翻转, 从而导致模拟时钟 S NP 出现偏差。 步骤 S404: 当定时器 T CPU 超时, 由 CPU读取当前的系统时钟, 将系统时钟的秒 值 S CPU . S 和纳秒值 S CPU . NS 保存到校正时间戳寄存器 S CPU 中; 需要说明的是, 当前的系统时钟需要精确到纳秒。 步骤 S406: 网络处理器将环回次数寄存器 CLP清 0。 优选地, 结合更新后的第一时间戳与获取到的第二时间 戳来执行延时性能监测可 以包括以下处理:
( 1 ) 将更新后的第一时间戳与获取到的第二时间戳 相加获取第三时间戳; ( 2 ) 在预定时长后的下一预定时长内, 采用第三时间戳执行延时性能监测。 以下结合图 5进一步描述上述优选实施方式, 如图 5所示, 该网络处理器计算最 终的时间戳可以包括以下处理步骤: 步骤 S502: 当前网络处理器的模拟时钟是 S NP , 可以通过 NLP和 CLP计算得到, 即 步骤 S504: CPU校正当前时间戳 步骤 S506:最终的时间戳 S STAMP 可以通过 S NP 和 S CPU 计算得到,即 S STAMP = S N p + s CPU 秒。 图 6是根据本发明实施例的时延性能监测装置的 构框图。 如图 6所示, 该时延 性能监测装置主要包括: 触发模块 602, 设置为在对第一时间戳进行初始化时, 触发 网络处理器开始获取第二时间戳; 更新模块 604, 与触发模块 602耦合, 设置为在达 到预定时长时, 更新第一时间戳; 执行模块 606, 与更新模块 604耦合, 设置为结合 更新后的第一时间戳与获取到的第二时间戳来 执行延时性能监测。 相关技术中, 使用通用 CPU来生成时间戳会大幅增加 CPU负载, 而且由于 CPU 的处理速度限制, 也无法满足对毫秒级时延性能监测报文的处理 ; 使用额外的芯片又 会明显增加系统开发成本。 采用图 6所示的装置, 在对第一时间戳进行初始化时, 由 触发模块 602触发网络处理器开始获取第二时间戳;在达 到预定时长时,更新模块 604 更新第一时间戳; 最后, 由执行模块 606结合更新后的第一时间戳与获取到的第二时 间戳来执行延时性能监测。 由此, 解决了相关技术中使用通用 CPU来生成时间戳会大 幅增加 CPU负载, 而且由于 CPU的处理速度限制, 也无法满足对毫秒级时延性能监 测报文的处理; 使用额外的芯片又会明显增加系统开发成本的 问题, 实现了在不增加 系统开发成本的前提下, 提高了时间戳的精确度, 满足对毫秒级时延性能监测报文处 理需求。 在优选实施过程中,可以采用 CPU读取当前纳秒级的第一系统时间值对第一时 间 戳进行初始化并保存。 CPU将读取到的第一系统时间值的秒值保存在第 一寄存器中; CPU将读取到的第一系统时间值的纳秒值保存在 第二寄存器中。 网络处理器获取第二 时间戳可以包括: 在预定时长内, 记录网络处理器接收到环回报文的次数; 根据记录 的次数以及预先设定的网络处理器每秒接收环 回报文的次数获取第二时间戳, 其中, 记录网络处理器接收到环回报文的次数可以包 括: 通过第三寄存器对环回报文的环回 次数进行累加得到次数。 优选地, 如图 7所示, 上述更新模块 604可以包括: 第一获取单元 6040, 设置为 获取预定时长达到时的第二系统时间值; 更新单元 6042, 与获取单元 6040耦合, 设 置为采用第二系统时间值更新第一系统时间值 。 在优选实施过程中, 在达到预定时长时, 可以采用 CPU读取纳秒级的第二系统时 间值; CPU将读取到的系统时钟的秒值保存在第一寄存 器中; CPU将读取到的系统时 钟的纳秒值保存在第二寄存器中。在 CPU读取纳秒级的第二系统时间值时, 还可以包 括: 网络处理器将第三寄存器保存的当前记录的环 回报文的环回次数清空。 优选地, 如图 7所示, 上述执行模块 606可以包括: 第二获取单元 6060, 设置为 将更新后的第一时间戳与获取到的第二时间戳 相加获取第三时间戳; 执行单元 6062, 与获取单元 6060耦合, 设置为在预定时长后的下一预定时长内,采用 第三时间戳执行 延时性能监测。 图 8是根据本发明实例的 CPU与网络处理器结合的系统示意图。如图 8所示, 该 系统主要包括: CPU和网络处理器; CPU又可以进一步包括:系统时钟和定时器 T CPU; 网络处理器又可以进一步包括: 统计寄存器 S CPU (相当于上述第一寄存器和第二寄存 器)、 S NP 、 C LP (相当于上述第三寄存器)。 在系统开始执行时延性能监测之前, 需要 初始化两个统计寄存器 S CPU 和 S NP ,分别保存 CPU的校正时间戳和网络处理器的模拟 时间戳; 同时, 再初始化一个统计寄存器 CLP, 保存整形器中的环回报文的环回次数; 还要初始化一个定时器 T CPU , 用于 CPU周期性的更新校正时间戳。 当系统开始执行 时延性能监测以后, 首先, 由 CPU获取当前的系统时间, 来初始化校正时间戳寄存器 SCPU; 同时触发网络处理器中整形器的整形功能来模 拟时钟变化, 不断更新环回报文 的环回次数寄存器 CL P; 同时还要触发定时器 T CPU ,来定时更新校正时间戳寄存器 S CPU 。 这样当网络处理器需要发送和接收 OAM时延监测报文时, 可以将环回次数 CLP换算 成模拟时钟 S NP , 再结合校正时间戳 S CPU , 最终计算出精确的时间戳, 完成 DMM和 DMR等时延监测报文的处理, 实现时延性能监测。 从以上的描述中, 可以看出, 本发明实现了如下技术效果: 在不增加系统开发成 本的前提下, 提高了时间戳的精确度, 满足对毫秒级时延性能监测报文处理需求。 显然, 本领域的技术人员应该明白, 上述的本发明的各模块或各步骤可以用通用 的计算装置来实现, 它们可以集中在单个的计算装置上, 或者分布在多个计算装置所 组成的网络上, 可选地, 它们可以用计算装置可执行的程序代码来实现 , 从而, 可以 将它们存储在存储装置中由计算装置来执行, 并且在某些情况下, 可以以不同于此处 的顺序执行所示出或描述的步骤, 或者将它们分别制作成各个集成电路模块, 或者将 它们中的多个模块或步骤制作成单个集成电路 模块来实现。 这样, 本发明不限制于任 何特定的硬件和软件结合。 以上所述仅为本发明的优选实施例而已, 并不用于限制本发明, 对于本领域的技 术人员来说, 本发明可以有各种更改和变化。 凡在本发明的精神和原则之内, 所作的 任何修改、 等同替换、 改进等, 均应包含在本发明的保护范围之内。