Timestamp confidence level
By generating the timestamps of events and their confidence in the event processing system, the problem of difficult time stamp accuracy in hardware timestamps is solved, and the relative measurement of timestamp accuracy and application decision-making is achieved.
Patent Information
- Application Number
- CN202210417799.9
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2021-05-03
- Filing Date
- 2022-04-20
- Publication Date
- 2025-06-27
- Estimated Expiration
- 2042-04-20
AI Technical Summary
In hardware timestamp implementations, there is a difference between the time reported and the time when the event occurs, making the accuracy of the timestamp difficult and the application lacks the necessary information to evaluate the importance of timestamps.
By generating the timestamp of an event and a confidence level indicating the accuracy of the timestamp and adding it to the event data item, confidence levels are generated in response to a variety of factors such as traffic mode, line speed, bandwidth, hardware state, etc.
A relative measure of timestamp accuracy is provided, allowing applications to process timestamp data based on confidence levels, improving timestamp reliability and application decision accuracy.
Smart Images

Figure CN115296764B_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to computer systems, and more particularly but not exclusively to timestamps. Background Art
[0002] Hardware timestamping is used in many network applications. One application of hardware timestamping in network devices is to measure the packet ingress or egress time. The timestamped information can then be used to establish clock synchronization across multiple systems, which is a prerequisite for many modern distributed system applications, including large data center applications and radio access networks for wireless technologies such as 5G. Timestamping can also be used to create external consistency, unified logs, and events across different network nodes.
[0003] For example, U.S. Patent 8,370,675 to Kagan describes a method for clock synchronization that includes calculating an offset value between a local clock time of a real-time clock circuit and a reference clock time and loading the offset value into a register associated with the real-time clock circuit. The local clock time is then added to the value in the register, thereby giving an adjusted value of the local clock time synchronized with the reference clock.
[0004] US10320952 to Raveh et al. describes a network device that includes: a plurality of ports for communicating via a communication network; and a packet processing circuit. The packet processing circuit is configured to: receive packets belonging to a plurality of multicast streams via the ports; for each multicast stream, receive (i) a first configuration specifying clients that will receive the multicast stream before a specified handover time, and (ii) a second configuration specifying clients that will receive the multicast stream after the specified handover time; forward the multicast stream via the ports according to the first configuration; extract a value indicating the handover time from a field in at least one of the packets; and based on the extracted value, simultaneously switch the forwarding of the multicast stream from the first configuration to the second configuration at the handover time. Summary of the Invention
[0005] According to an embodiment of the present disclosure, there is provided an event processing system including a clock configured to provide a time value and an event processing circuit configured to generate a confidence level indicating the confidence in the accuracy of a timestamp, the timestamp being generated for an event in response to the time value indicating when an operation associated with the event occurs.
[0006] Further according to an embodiment of the present disclosure, the event processing circuit is configured to: identify the occurrence of an event; and generate the timestamp for the identified event in response to the time value indicating when a hardware operation associated with the event occurs.
[0007] Still further according to an embodiment of the present disclosure, the event processing circuit is configured to add the timestamp and the confidence level to an event data item.
[0008] Additionally, according to an embodiment of the present disclosure, the event data item is a grouped notification message.
[0009] Furthermore, according to an embodiment of the present disclosure, the event data item is a clock synchronization message.
[0010] Further according to an embodiment of the present disclosure, the event processing circuit is configured to generate the confidence level in response to any one or more of the following factors: the traffic pattern during the occurrence of the event; the line speed during the occurrence of the event; the bandwidth value during the occurrence of the event; the boot engine used during the occurrence of the event; the hardware that performs the hardware operation; the clock state; the queue occupancy; or the PHY protocol used to perform the hardware operation.
[0011] Yet further according to an embodiment of the present disclosure, the system includes: a network interface configured to receive data packets via a packet data network; and a packet processing circuit configured to process the received data packets, and wherein the event includes the data packets being received by the packet processing circuit at the time value, and the event processing circuit is configured to add the timestamp and the confidence level to the data packets.
[0012] Additionally, according to an embodiment of the present disclosure, the event processing circuit is configured to generate the confidence level in response to any one or more of the following entry factors: the position of the data packet in the packet processing pipeline when the timestamp is generated; the traffic pattern during the entry of the data packet; the line speed during the entry of the data packet; the bandwidth value during the entry of the data packet; the entry queue occupancy; the clock state; or the boot engine used during the entry of the data packet.
[0013] Furthermore, according to an embodiment of the present disclosure, the system includes: a network interface configured to send data packets via a packet data network; and a packet processing circuit configured to process the data packets for sending via the network interface via the packet data network, and wherein the event includes the data packets being sent via the packet data network at the time value, and the event processing circuit is configured to add the timestamp and the confidence level to the data packets.
[0014] Further according to an embodiment of the present disclosure, the system includes an output buffer configured to store the data packets before sending the data packets via the packet data network, wherein the event processing circuit is configured to generate the confidence level in response to the buffer level of the output buffer at the time value.
[0015] Further in accordance with an embodiment of the present disclosure, the event processing circuit is configured to generate the confidence level in response to any one or more of the following output factors: the position of the data packet in the packet processing pipeline when the timestamp is generated; the traffic pattern during the data packet output; the line speed during the data packet output; the bandwidth value during the data packet output; the output queue occupancy rate; the clock state; or the steering engine used during the data packet output.
[0016] In addition, in accordance with an embodiment of the present disclosure, the system includes a data analyzer configured to: receive a data set that includes event data items having respective timestamps and respective confidence levels; reduce the data set to remove some of the event data items from the data set that have respective confidence levels in the respective confidence levels that are lower than the respective confidence levels of the remaining event data items in the data set; and analyze the reduced data set.
[0017] In addition, in accordance with an embodiment of the present disclosure, the system includes a data analyzer configured to: receive a data set that includes event data items having respective timestamps and respective confidence levels; select one event data item having the highest confidence level in the respective confidence levels from the event data items; and analyze the selected event data item.
[0018] Still further in accordance with an embodiment of the present disclosure, the system includes a data analyzer configured to: receive a data set that includes event data items having respective timestamps and respective confidence levels; identify at least one traffic pattern that causes some of the respective event data items to have respective confidence levels in the respective confidence levels that are lower than a given confidence level; and issue a command to adjust the identified at least one traffic pattern.
[0019] Yet still further in accordance with an embodiment of the present disclosure, the system includes a transaction processing device configured to process requests from a plurality of request entities in response to a timeout, the timeout being set in response to the generated confidence level.
[0020] Additionally, according to an embodiment of the present disclosure, the system includes a first network node and a second network node, and the first and second network nodes are directly connected by a cable, wherein: the first network node includes a first event processing circuit configured to: identify the occurrence of the event; and generate the timestamp of the identified event in response to the time value indicating when the hardware operation associated with the event occurs; and the second network node includes a second event processing circuit configured to generate the confidence level indicating the accuracy confidence of the timestamp generated by the first network node in response to a common traffic pattern between the first network node and the second network node.
[0021] Furthermore, according to an embodiment of the present disclosure, the first network node is a master clock synchronization node, the second network node is a slave clock synchronization node, the master clock synchronization node is configured to send a clock synchronization message including the timestamp to the slave synchronization node, and the slave clock synchronization node is configured to perform clock synchronization in response to the received clock synchronization message.
[0022] Still further according to an embodiment of the present disclosure, the system includes a clock synchronization circuit configured to: receive a plurality of clock synchronization messages including corresponding timestamps, the corresponding timestamps having associated confidence levels indicating the corresponding accuracies of the corresponding timestamps; select at least one of the corresponding timestamps in response to a corresponding associated confidence level among the associated confidence levels; and perform clock synchronization in response to the at least one selected timestamp among the corresponding timestamps.
[0023] Yet still further according to an embodiment of the present disclosure, the clock synchronization circuit is configured to perform clock synchronization in response to the corresponding timestamp while applying a higher weight to at least one of the selected corresponding timestamps.
[0024] Moreover, according to an embodiment of the present disclosure, the system includes a master clock synchronization node and a slave clock synchronization node, the slave clock synchronization node includes the clock synchronization circuit, wherein the master clock synchronization node is configured to send the plurality of clock synchronization messages including the corresponding timestamp and the associated confidence level to the slave clock synchronization node.
[0025] According to another embodiment of the present disclosure, an event processing method is further provided, including: providing a time value; and generating a confidence level indicating the accuracy confidence of a timestamp, the timestamp being generated for the event in response to the time value indicating when an operation associated with the event occurs.
[0026] In addition, according to an embodiment of the present disclosure, the method includes: identifying the occurrence of the event; and generating the timestamp for the identified event in response to the time value indicating when the hardware operation associated with the event occurs.
[0027] Further according to an embodiment of the present disclosure, the method includes adding the timestamp and the confidence level to the event data item.
[0028] Still further according to an embodiment of the present disclosure, the event data item is a grouped notification message.
[0029] Additionally, according to an embodiment of the present disclosure, the event data item is a clock synchronization message.
[0030] In addition, according to an embodiment of the present disclosure, generating the confidence level is performed in response to any one or more of the following factors: the traffic pattern during the occurrence of the event; the line speed during the occurrence of the event; the bandwidth value during the occurrence of the event; the boot engine used during the occurrence of the event; the hardware performing the hardware operation; the queue occupancy rate; the clock state; or the PHY protocol used to perform the hardware operation.
[0031] Further according to an embodiment of the present disclosure, the method includes: receiving a data packet through a packet data network; processing the received data packet, where the event includes receiving the data packet at the time value; and adding the timestamp and the confidence level to the data packet.
[0032] Still further according to an embodiment of the present disclosure, generating the confidence level is performed in response to any one or more of the following incoming factors: the position of the data packet in the packet processing pipeline when the timestamp is generated; the traffic pattern during the entry of the data packet; the line speed during the entry of the data packet; the bandwidth value during the entry of the data packet; the incoming queue occupancy rate; the clock state; or the boot engine used during the occurrence of the event.
[0033] Additionally, according to an embodiment of the present disclosure, the method includes: sending a data packet through a packet data network; processing the data packet for sending through the packet data network, where the event includes sending the data packet through the packet data network at the time value; and adding the timestamp and the confidence level to the data packet.
[0034] In addition, according to an embodiment of the present disclosure, the method includes storing the data packet in an output buffer before sending the data packet through the packet data network, where generating the confidence level is performed in response to the buffer level of the output buffer at the time value.
[0035] Further in accordance with an embodiment of the present disclosure, generating the confidence level is performed in response to any one or more of the following output factors: the position of the data packet in the packet processing pipeline when generating the timestamp; the traffic pattern during the data packet output; the line speed during the data packet output; the bandwidth value during the data packet output; the output queue occupancy rate; the clock state; or the steering engine used during the data packet output.
[0036] Still further in accordance with an embodiment of the present disclosure, the method includes: receiving a data set including event data items having respective timestamps and respective confidence levels; reducing the data set to remove some of the event data items from the data set, the event data items having respective confidence levels lower than the respective confidence levels of the remaining event data items in the data set; and analyzing the reduced data set.
[0037] Additionally, in accordance with an embodiment of the present disclosure, the method includes: receiving a data set including event data items having respective timestamps and respective confidence levels; selecting one event data item having the highest confidence level among the respective confidence levels of the event data items; and analyzing the selected event data item.
[0038] Furthermore, in accordance with an embodiment of the present disclosure, the method includes: receiving a data set including event data items having respective timestamps and respective confidence levels; identifying at least one traffic pattern that causes some of the respective event data items to have respective confidence levels lower than a given confidence level; and issuing a command to adjust the identified at least one traffic pattern.
[0039] Further in accordance with an embodiment of the present disclosure, the method includes processing requests from multiple request entities in response to a timeout, the timeout being set in response to the generated confidence level.
[0040] Still further in accordance with an embodiment of the present disclosure, the method includes: identifying the occurrence of an event in a first network node; generating, in the first network node, the timestamp of the identified event in response to the time value indicating when the hardware operation associated with the event occurs; and generating, in a second network node directly connected to the first network node by a cable, the confidence level indicating the accuracy of the timestamp generated by the first network node in response to a common traffic pattern between the first network node and the second network node.
[0041] Additionally, according to an embodiment of the present disclosure, the first network node is a primary clock synchronization node, the second network node is a slave clock synchronization node, and the method further includes: the primary clock synchronization node sending a clock synchronization message including a timestamp to the slave synchronization node; and the slave synchronization node performing clock synchronization in response to the received clock synchronization message.
[0042] Furthermore, according to an embodiment of the present disclosure, the method includes: receiving a plurality of clock synchronization messages including respective timestamps, the respective timestamps having an associated confidence level indicating a respective confidence in the respective accuracy of the respective timestamp; selecting at least one of the respective timestamps in response to a respective associated confidence level among the associated confidence levels; and performing clock synchronization in response to at least one of the selected respective timestamps.
[0043] Still further according to an embodiment of the present disclosure, performing clock synchronization includes performing clock synchronization in response to the respective timestamp while applying a higher weight to at least one of the selected respective timestamps.
[0044] Yet still further according to an embodiment of the present disclosure, the method includes: the primary clock synchronization node sending the plurality of clock synchronization messages including the respective timestamp and the associated confidence level to the slave clock synchronization node, wherein the clock synchronization is performed by the slave clock synchronization node. Description of the Drawings
[0045] The present invention will be understood from the following detailed description in conjunction with the accompanying drawings, wherein:
[0046] Figure 1 is a partial schematic, partial block diagram view of an event processing system constructed and operated in accordance with an embodiment of the present invention;
[0047] Figure 2 is a flowchart including steps in a method of processing event data items in a system of Figure 1 ;
[0048] Figure 3 is a flowchart including steps in a method of processing the entry of data packets in a system of Figure 1 ;
[0049] Figure 4 is a flowchart including steps in a method of processing the output of data packets in a system of Figure 1 ;
[0050] Figure 5 is a flowchart including steps in a method of reducing a data set and analyzing the reduced data set in a system of Figure 1 ;
[0051] Figure 6 is a flowchart including steps in a system ofFigure 1 Steps in a method for selecting and analyzing event data items in a
[0052] Figure 7 is a flow chart including steps in a method for Figure 1 identifying and adjusting a traffic pattern in a
[0053] Figure 8 is a schematic diagram of a burst traffic pattern;
[0054] Figure 9 is a schematic diagram of a rhythmic traffic pattern;
[0055] Figure 10 is Figure 1 a schematic diagram of an event processing circuit and a packet processing circuit in a
[0056] Figure 11 is a schematic diagram of a transaction processing according to an embodiment of the present invention;
[0057] Figure 12 is a schematic diagram of a clock synchronization system according to an embodiment of the present invention;
[0058] Figure 13 is a flow chart including steps in a method for Figure 12 operating a clock synchronization system including
[0059] Figure 14 is a schematic diagram of a direct link partner node according to an embodiment of the present invention;
[0060] Figure 15 is a schematic diagram of a clock synchronization system according to an alternative embodiment of the present invention; and
[0061] Figure 16 is a flow chart including steps in a method for Figure 15 operating a clock synchronization system including DETAILED DESCRIPTION
[0062] Overview
[0063] In a hardware plus timestamp implementation, the reported time T reported does not exactly match the time T event at the time of event occurrence. Instead, there is some difference ΔT between these two times, e.g.: T reported = T event + ΔT.
[0064] The source of the time difference ΔT has many factors, which are related to the details of timestamp implementation and device status (such as load and queue occupancy rate), and / or related to the nature of the network mode. The time difference usually cannot be measured in a direct way. In some cases, it can be estimated by inference from observable device status parameters (such as queue occupancy rate).
[0065] Different hardware events may be sampled by different logics with different precisions. Some events may require a precision of the same order of magnitude as or higher than the measurement system itself.
[0066] In addition, the application lacks information to determine the relative magnitude of ΔT. Therefore, the application does not have the necessary information to assign higher importance to some timestamps and less importance to other timestamps, and may even ignore them.
[0067] Embodiments of the present invention solve the above problems by generating timestamps of events (such as data packets being received or sent, or buffer overflow, etc.) and confidence levels indicating the confidence in the accuracy of the generated timestamps. The timestamp and the corresponding confidence level can be added to event data items, such as data packets (such as clock synchronization messages) or log data items (such as packet completion notification messages). In some embodiments, the timestamp can be added to one data structure (such as a data packet or any suitable data structure) and the confidence level can be added to another data structure. Additionally or alternatively, the timestamp and / or the confidence level can be sent to a processing unit (such as the local or remote CPU of the entity generating the event data item) for processing. The timestamp can indicate the timing value when the hardware operation associated with the event occurs.
[0068] The confidence level usually has no unit of measurement (such as in seconds). The confidence level is usually a relative measure, where one confidence level can be compared with another to determine which related timestamp is considered more accurate. For convenience, a confidence level with a higher value is considered more accurate, and vice versa. However, the confidence level can be defined differently so that a confidence level with a lower value is considered more accurate. In such a scheme, the highest confidence level from a data set will have the lowest value. In some embodiments, between different hardware devices, or between different generations of hardware devices, the confidence level may need to be adjusted according to some ratio or conversion factor to meaningfully compare different confidence levels.
[0069] A confidence level can be generated in response to any one or more factors selected from the following: traffic patterns during an event; line speed during an event; bandwidth value during an event; steering engine used during an event; hardware that performs a hardware operation; queue occupancy; clock state (e.g., whether the clock is locked or unlocked); or PHY protocol used to perform a hardware operation.
[0070] The confidence level of an ingress timestamp (e.g., for a data packet) may depend on one or more factors, such as any one or more of the following: the position of the data packet in the packet processing pipeline when the ingress timestamp is generated (e.g., in the PHY layer, MAC layer, core / buffer layer, or software layer); traffic patterns during data packet ingress; line speed during data packet ingress; bandwidth value during data packet ingress; ingress queue occupancy; clock state (e.g., whether the clock is locked or unlocked); or steering engine used during data packet ingress.
[0071] The confidence level of an output timestamp (e.g., for a data packet) can depend on one or more factors, such as the buffer level of the output buffer in which the data packet is stored when the output timestamp is assigned.
[0072] The confidence level of an output timestamp (e.g., for a data packet) may depend on one or more factors, such as any one or more of the following: the position of the data packet in the packet processing pipeline when the output timestamp is generated (e.g., in the PHY layer, MAC layer, core / buffer layer, or software layer); traffic patterns during data packet output; line speed during data packet output; bandwidth value during data packet output; output queue occupancy; clock state (e.g., whether the clock is locked or unlocked); or steering engine used during data packet output.
[0073] Providing a confidence level for each timestamp can enable an application to process timestamp data based on the confidence level associated with the timestamp. For example, for a repeated event of the same type, the application can select the timestamp with the highest confidence level, or 30% of the timestamp with the highest confidence level, or timestamps with a confidence level higher than a given confidence level. As another example, one or more traffic patterns associated with timestamps having a lower confidence level can be identified so that the traffic pattern can be avoided in the future.
[0074] As another example, clock synchronization messages with a higher confidence level can be identified, so that clock synchronization can be performed based on timestamps with a higher confidence.
[0075] A transaction processing device can process requests from different entities according to the time when the requesting entity issues the request. Thus, the transaction processing device can wait for a given timeout before processing the request to ensure that the requests are processed according to the time they are issued. In some embodiments, the transaction processing device can adjust the timeout according to the confidence level associated with the timestamp of the received request. For example, if the confidence level is high (e.g., above a given level), the timeout can be reduced and / or if the confidence level is low (e.g., below a given level), the timeout can be increased.
[0076] In some embodiments, even if one of the link partners does not include circuitry or software for generating a confidence level, two direct link partners (e.g., two network nodes directly connected by a cable without intermediate nodes) can implement a confidence level. The direct link partners share the same traffic pattern between them because they are subject to the same bandwidth fluctuations, load, and link speed as they share the same cable. If the first of the direct link partners sends an event data item including an output timestamp to the second of the direct link partners, the second direct link partner can generate a confidence level for the output timestamp (generated by the first direct link partner) based on the known traffic pattern between the direct link partners. The above can be useful in many scenarios including clock synchronization. For example, a master clock synchronization node can send a clock synchronization message to a slave clock synchronization node. If the master clock synchronization node does not have the ability to generate a confidence level, the slave clock synchronization node can generate a confidence level for the timestamp of the received clock synchronization message. The slave clock synchronization node can then select the clock synchronization message with the highest confidence level for clock synchronization.
[0077] System Description
[0078] Now refer Figure 1 , Figure 1 is a partial schematic, partial block diagram view of an event processing system 10 constructed and operated in accordance with an embodiment of the present invention.
[0079] The event processing system 10 includes a data communication device 12. Figure 1 The data communication device 12 shown in
[0080] is a network switch. In some embodiments, the data communication device 12 can be a router or a network interface controller (NIC) or any suitable network device or other processing device that timestamps events occurring in the device. Figures 5 - 7 The event processing system 10 further includes a data analyzer 14. The data analyzer 14 will be described in more detail below with reference to Figure 1Shown is a data analyzer 14 and a data communication device 12 connected via a packet data network 16. The packet data network 16 can include any suitable network, such as a wired network, a wireless network, and / or an optical switching network.
[0081] The data communication device 12 includes a network interface 18, a packet processing circuit 20, an event processing circuit 22, a clock 24, and an output buffer 26. The event processing circuit 22 may further include a timestamping unit 28.
[0082] Figure 1 The network interface 18 shown therein includes two parts, an ingress interface 30 and an egress interface 32. For simplicity, the ingress interface 30 and the egress interface 32 are shown separately. However, in practice, any port of the network interface 18 can be selectively used as an output port or an ingress port. The network interface 18 can include a single unit or more than one unit. The network interface 18 is configured to receive data packets from the packet data network 16 and send data packets through the packet data network 16. The output buffer 26 is configured to store data packets (queue for output) before sending the data packets through the packet data network 16.
[0083] The packet processing circuit 20 is configured to process packets received from the packet data network 16 and process the packets for sending through the packet data network 16. The packet processing circuit 20 can include any suitable hardware and / or software, such as one or more PHY chips and one or more MAC chips.
[0084] The event processing circuit 22 is configured to identify events (e.g., receiving a packet, sending a packet, recorder events such as buffer overflow, etc.) and generate a timestamp and a corresponding confidence level for the identified events, as described in more detail in Figures 2 - 4 The clock 24 is configured to provide a time value. The timestamping unit 28 can be configured to generate a timestamp in response to the time value provided by the clock 24.
[0085] In practice, some or all of the functions of the event processing circuit 22 can be combined in a single physical component, or alternatively, implemented using multiple physical components. These physical components can include hard-wired or programmable devices, or a combination of both. In some embodiments, at least some of the functions of the event processing circuit 22 can be performed by a programmable processor under the control of appropriate software. For example, the software can be downloaded electronically to the device via a network. Alternatively or additionally, the software can be stored in a tangible, non-transitory computer-readable storage medium, such as an optical, magnetic, or electronic memory.
[0086] Providing a confidence level for each timestamp enables the data analyzer 14 (e.g., an application running on the data analyzer 14) to process the timestamp data according to the confidence level associated with the timestamp. For example, the application may select the timestamp with the highest confidence level or 30% of the timestamps with the highest confidence level or the timestamps with a confidence level higher than a given confidence level, as shown in FIG. Figure 5 and Figure 6 As another example, one or more traffic patterns associated with timestamps having a lower confidence level may be identified, such that the identified one or more traffic patterns may be avoided in the future, as described in reference to Figure 7 Described in more detail.
[0087] Reference now Figure 2 , which is a flow chart 200, including Figure 1 The system 10 processes event data items (e.g., data packets 34 ( Figure 1 )) steps in the method. Also refer to Figure 1 . The event processing circuit 22 is configured to identify (block 202) the occurrence of an event, such as the receipt of a data packet 34 or the transmission of a data packet 34, or an overflow of a buffer or any other suitable event. The timestamping unit 28 of the event processing circuit 22 is configured to generate (block 204) a timestamp for the identified event in response to a time value (provided by the clock 24) indicating when a hardware operation associated with the event occurred. The timestamping unit 28 is configured to generate (block 206) a confidence level indicating a confidence in the accuracy of the generated timestamp. The event processing circuit is configured to generate the confidence level in response to any one or more factors selected from the group consisting of: traffic patterns during the occurrence of the event; line speeds during the occurrence of the event; bandwidth values during the occurrence of the event; boot engines used during the occurrence of the event; hardware performing the hardware operation; queue occupancy; clock status (e.g., whether the clock is locked or unlocked); or a PHY protocol (e.g., 10G or 25G) used to perform the hardware operation. For example, if the hardware performing the timestamping is accurate to approximately 1 millisecond, then a given confidence level may be assigned to the timestamps generated by the hardware. If the accuracy of the hardware improves to approximately 1 microsecond, then timestamps generated by the improved hardware may be assigned a higher confidence level.
[0088] The event processing circuitry 22 is configured to add (block 208) the generated timestamp and confidence level to the event data item (e.g. Figure 1 The data packet 34 shown at the bottom includes a timestamp and a corresponding confidence level. In some embodiments, an event data item may include the following references: Figure 12 , 13, the clock synchronization messages described in more detail in 15 and 16. In some embodiments, the event data item may include a packet completion notification message that references the data packet 34 and is sent after the data packet 34.
[0089] As previously mentioned, in the hardware plus timestamp implementation, the reported time T reported is not exactly the same as the time T at the time of event occurrence event . Instead, there is some difference ΔT between these two times, for example: T reported = T event + ΔT. The confidence level usually has no unit of measurement (e.g., in seconds). The confidence level may or may not be linearly related to ΔT. The confidence level is usually a relative measure, where one confidence level can be compared with another confidence level to determine which associated timestamp is considered more accurate. Thus, for example, two timestamps T1 and T2 have their respective corresponding confidence levels C1 and C2. If C1 is greater than C2, it can be assumed that the ΔT of timestamp T1 is less than the ΔT of timestamp T2.
[0090] For convenience, a higher value of the confidence level is considered more accurate, and vice versa. For example, the confidence level can be an 8-bit unsigned integer, where 0 corresponds to the lowest confidence level and 255 corresponds to the highest confidence level. However, the confidence level can be defined differently so that a lower value of the confidence level is considered more accurate. In such a scheme, the highest confidence level from the data set will have the lowest value.
[0091] The confidence level can depend on the event type, such that the confidence level generated for one event type may not be comparable to the confidence level of another event type. For example, the confidence level of a packet entry timestamp may be comparable to or different from the confidence level of an output timestamp. Similarly, the confidence level of a packet entry / output timestamp may not be comparable to a logger event timestamp (e.g., when the buffer overflows).
[0092] Now refer to Figure 3 , which is a flowchart 300, including steps in a method for processing the entry of the data packet 34 in the system 10 of Figure 1 . Also refer to Figure 1 .
[0093] The ingress interface 30 of network interface 18 is configured to receive (block 302) data packet 34 via packet data network 16. Packet processing circuitry 20 is configured to process (block 304) the received data packet 34. The timestamping unit 28 of event processing circuitry 22 is configured to generate (block 306) an ingress timestamp for data packet 34 in response to a time value provided by clock 24. The receipt of data packet 34 by packet processing circuitry 22 is an event that occurs at a time value given by clock 24. Event processing circuitry 22 is configured to generate (block 308) a confidence level for the generated ingress timestamp.
[0094] In some embodiments, event processing circuitry 22 is configured to generate a confidence level in response to the position of data packet 34 in the packet processing pipeline at the time the ingress timestamp is generated. For example, an ingress timestamp may be generated when data packet 34 is in the PHY layer, MAC layer, core / buffer layer, or software layer. A timestamp assigned in the PHY layer may have a higher confidence level than a timestamp assigned in the MAC layer. A timestamp assigned in the MAC layer may have a higher confidence level than a timestamp assigned in the core / buffer layer. A timestamp assigned in the core / buffer layer may have a higher confidence level than a timestamp assigned in the software layer.
[0095] In some embodiments, event processing circuitry 22 is configured to generate a confidence level for the ingress timestamp in response to any one or more of the following ingress factors: traffic pattern during the entry of data packet 34; line speed during the entry of data packet 34; bandwidth value during the entry of data packet 34; ingress queue occupancy; clock state (e.g., whether the clock is locked or unlocked); or the boot engine used during the entry of data packet 34. For example, a timestamp assigned during dynamically fluctuating incoming traffic may have a lower confidence level than a packet arriving during constant or low bandwidth traffic.
[0096] Event processing circuitry 22 is configured to add (block 310) the timestamp and confidence level to data packet 34.
[0097] In some embodiments, the ingress timestamp and corresponding confidence level may be added to any suitable data structure, as a supplement to or alternative to adding to data packet 34. In some embodiments, the ingress timestamp is added to data packet 34 and the corresponding confidence level is added to another data structure, and vice versa. Additionally or alternatively, the ingress timestamp and / or confidence level may be sent to a processing unit (e.g., a local CPU, such as the CPU of data communication device 12 or a remote CPU of the entity that generated data packet 34) for processing.
[0098] Now refer to Figure 4 , which is flowchart 400, including atFigure 1 Steps in a method for processing the output of data packet 34 in system 10.
[0099] Packet processing circuit 20 is configured to process (block 402) data packet 46 (e.g., in the SX pipeline block) for transmission via output interface 32 of network interface 18 over packet data network 16. Packet processing circuit 20 is configured to queue (block 404) data packet 34 for output and queue data packet 34 for timestamping substantially simultaneously. Output buffer 26 is configured to store data packet 34 before transmitting data packet 34 over packet data network 16.
[0100] The timestamping unit 28 of event processing circuit 22 is configured to generate (block 406) an output timestamp for queued data packet 34 in response to a time value provided by clock 24. Transmitting data packet 36 over packet data network 16 is an event that occurs at the time value given by clock 24.
[0101] The delay between data packet 34 leaving data communication device 12 and the timestamp being generated can be variable and affect the relevance of the reported timestamp. A confidence level can be generated in response to hardware implementation and dynamic device state parameters such as queue occupancy, hardware parameters, installed firmware, or device driver type. In some embodiments, event processing circuit 22 is configured to generate (block 408) a confidence level in response to the buffer level of the output buffer at the time (i.e., time value) when the value output timestamp is generated.
[0102] In some embodiments, event processing circuit 22 is configured to generate a confidence level for the output timestamp in response to any one or more of the following output factors: the position of data packet 34 in the packet processing pipeline when the output timestamp is generated; the traffic pattern during the output of data packet 34; the line speed during the output of data packet 34; the bandwidth value during the output of data packet 34; the output queue occupancy; the clock state (e.g., whether the clock is locked or unlocked); or the steering engine used during the output of data packet 34.
[0103] The event processing circuit 22 is configured to add (block 410) an output timestamp and a corresponding confidence level to the data packet 34. In some embodiments, the output timestamp and the corresponding confidence level may be added to any suitable data structure, as a supplement to or an alternative to adding to the data packet 34. In some embodiments, the output timestamp is added to the data packet 34 and the corresponding confidence level is added to another data structure, and vice versa. Additionally or alternatively, the output timestamp and / or the confidence level may be sent to a processing unit (e.g., a local CPU, such as the CPU of the data communication device 12 or a remote CPU of an entity that generates the data packet 34) for processing.
[0104] The output interface 32 of the network interface 18 is configured to send (block 412) the data packet 34 over the packet data network 16.
[0105] Now refer to Figure 5 , which is a flowchart 500, including steps in a method of reducing a data set and analyzing the reduced data set in the Figure 1 system 10. Also refer to Figure 1 . To improve accuracy, the event processing system 10 may oversample and the data analyzer 14 removes outliers from the samples. Using the confidence level provides an effective way to remove outliers by removing outliers having a lower confidence level associated with the timestamps of the outliers. For example, if the data analyzer 14 is configured to discard 30% of the samples, then the data analyzer 14 may be configured to remove 30% of the event data items having the lowest confidence levels (e.g., by event type).
[0106] Accordingly, in some embodiments, the data analyzer 14 is configured to: receive (block 502) a data set including event data items having corresponding timestamps and corresponding confidence levels; reduce (block 504) the data set to remove event data items whose corresponding confidence levels are lower than the corresponding confidence levels of the remaining event data items in the data set (e.g., a certain percentage of event data items); and analyze the reduced data set.
[0107] Now refer to Figure 6 , which is a flowchart 600, including steps in a method of selecting and analyzing event data items in the Figure 1 system 10. Also refer to Figure 1。To improve accuracy, the event processing system 10 can sample a number of events, and the data analyzer 14 can select only one event data item for analysis. Using a confidence level provides an effective way to select an event data item. Thus, in some embodiments, the data analyzer 14 is configured to: receive (block 602) a data set including event data items having corresponding timestamps and corresponding confidence levels; select (block 604) one event data item having the highest confidence level among the corresponding confidence levels in the event data items; and analyze (block 606) the selected event data item.
[0108] Now refer to Figure 7 , which is a flow chart 700 including steps in a method for identifying and adjusting Figure 1 the traffic pattern in the system 10.
[0109] The data analyzer 14 can identify the cause of the low confidence level. For example, the data analyzer 14 can identify that a particular traffic pattern is causing a low confidence level of the generated timestamps, and thus can adjust the traffic pattern. Figure 8 Examples of traffic patterns that can be associated with a low confidence level are shown in Figure 8 shows a low bandwidth burst traffic 800. Figure 8 Each vertical line in represents a packet being processed. The traffic 800 can have an average traffic bandwidth that is low compared to the link speed, but the packets are grouped together in bursts 802, and the bursts 802 are separated by idle periods. Thus, in some embodiments, the data analyzer 14 is configured to: receive (block 702) a data set including event data items (e.g., data packets) having corresponding timestamps and corresponding confidence levels; identify (block 704) at least one traffic pattern (e.g., traffic 800) that causes some event data items to have corresponding confidence levels below a given confidence level; and issue (block 706) a command to adjust the identified traffic pattern. Figure 9 An example of an adjusted traffic pattern 900 is shown in Figure 9 shows that the packets ( Figure 9 the vertical lines in) are distributed substantially uniformly over time. The adjusted traffic pattern 900 can be implemented using pacing within the data communication device 12 at a rate that sends packets through the packet data network 16 at a constant speed.
[0110] In practice, some or all of the functions of the data analyzer 14 may be combined in a single physical component, or alternatively, implemented using multiple physical components. These physical components may include hardwired or programmable devices, or a combination of both. In some embodiments, at least some of the functions of the data analyzer 14 may be performed by a programmable processor under the control of suitable software. For example, the software may be downloaded electronically to the device via a network. Alternatively or additionally, the software may be stored in a tangible, non-transitory computer-readable storage medium, such as optical, magnetic, or electronic memory.
[0111] Now refer to Figure 10 which is Figure 1 a schematic diagram of the event processing circuit 22 and the packet processing circuit 20 in the system 10 of
[0112] Now refer to Figure 11 which Figure 11 is a schematic diagram of a transaction processing according to an embodiment of the present invention.
[0113] The transaction processing device 50 may process requests 54 from different request entities 52 according to the time when the request entity 52 issues the request 54. Thus, the transaction processing device 50 may wait for a given timeout 56 before processing the request 54 to ensure that the request 54 is processed according to the time when the request 54 is issued.
[0114] In some embodiments, each request 54 includes a respective timestamp 58 and a confidence level 60. The transaction processing device 50 may adjust the timeout 56 according to the confidence level 60 associated with the timestamp 58 of the received request 54. For example, if the confidence level 60 is high (e.g., above a given level), the timeout 56 may be reduced and / or if the confidence level 60 is low (e.g., below a given level), the timeout 56 may be increased. The transaction processing device 50 is configured to process requests 54 from multiple request entities 52 in response to the timeout 56, and the timeout 56 is set in response to the generated confidence level 60.
[0115] Now refer to Figure 12 and 13 . Figure 12Schematic diagram of a clock synchronization system 100 according to an embodiment of the present invention. Figure 13 It includes Figure 12 Flowchart of the steps in a method of operating a clock synchronization system 100. A confidence level can be used with clock synchronization messages so that clock synchronization messages with a higher confidence level can be identified, and thus clock synchronization can be performed based on timestamps with a higher confidence, thereby performing more accurate clock synchronization. The confidence level can be used with any suitable clock synchronization protocol, such as but not limited to the Precision Time Protocol (PTP), which is a protocol for synchronizing clocks across a computer network. The term "clock synchronization message" as used in the specification and claims is defined herein as any message transmitted between two network nodes for clock synchronization. Example clock synchronization messages in PTP include: Sync, Follow_Up, Delay_Req, and Delay_Resp.
[0116] The clock synchronization system 100 includes a master clock synchronization node 102 and a slave clock synchronization node 104. The master clock synchronization node 102 includes a clock synchronization circuit 106 and an event processing circuit 108, which are configured to identify the occurrence of an event, generate a timestamp, and a corresponding confidence level. The slave clock synchronization node 104 includes a clock synchronization circuit 110. Figure 12 The shown slave clock synchronization node 104 does not include an event processing circuit. In some embodiments, the slave clock synchronization node 104 may include an event processing circuit to generate a confidence level corresponding to the timestamp.
[0117] The master clock synchronization node 102 is configured to send a clock synchronization message 112 including the corresponding timestamp and the associated confidence level to the slave clock synchronization node 104. Figure 12 Includes line 126. The left line 126 represents the master clock synchronization node 102, and the right line 126 represents the slave clock synchronization node 104. Line 126 also represents the timeline of when the master clock synchronization node 102 and the slave clock synchronization node 104 send and receive messages, and time increases in the downward direction.
[0118] Figure 12 It shows that the master clock synchronization node 102 sends a synchronization message 114 with output timestamps TSE1 and TSE2, and the synchronization message 114 is received by the slave clock synchronization node 104 and respectively assigned into timestamps TSI1 and TSI2. Figure 12 It shows that the slave clock synchronization node 104 sends a delay request message 116 with an output timestamp TDE1, which is received by the master clock synchronization node 102 and assigned into a timestamp TDI1 by the master clock synchronization node 102. In response, the master clock synchronization node 102 sends a delay request response 118, including the timestamp TDI1 and the corresponding confidence level of the timestamp TDI1.
[0119] The clock synchronization circuit 110 is configured to receive (block 120) event data items including respective timestamps (and associated confidence levels with respective confidences. The clock synchronization circuit 110 is configured to select (block 122) at least one of the respective timestamps in response to the respective confidence level among the associated confidence levels. For example, the clock synchronization circuit 110 selects the timestamp associated with the highest confidence level or a confidence level higher than a given value. The clock synchronization circuit 110 is configured to perform (block 124) clock synchronization in response to the selected timestamp.
[0120] In some embodiments, the clock synchronization circuit 110 is configured to perform clock synchronization in response to (some or all of) the received respective timestamps, while applying a higher weight to the selected timestamp.
[0121] In some embodiments, the clock synchronization circuit 110 is configured to perform clock synchronization in response to the received respective timestamps, while applying weighting to (some or all of) the received timestamps according to the respective confidence levels of (some or all of) the received timestamps.
[0122] Now refer to Figure 14 , which is a schematic diagram of direct link partner nodes 128 (including nodes 128-1 and 128-2) according to an embodiment of the present invention. In some embodiments, even if one of the link partner nodes 128 does not include a circuit or software for generating a confidence level, the direct link partner nodes 128 (e.g., two network nodes directly connected by a cable 130 without intermediate nodes) can implement a confidence level. The direct link partner nodes 128 share the same traffic pattern between them because they are subject to the same bandwidth fluctuations, load, and link speed since they share the same cable 130. If link partner node 128-1 sends an event data item including an output timestamp 132 to link partner node 128-2, then link partner node 128-2 can generate a confidence level (block 134) of the output timestamp 132 (generated by link partner node 128-1) based on the known traffic pattern between the direct link partner nodes 128. Additionally or alternatively, link partner node 128-2 can generate a confidence level of its own incoming timestamp, including the incoming timestamp of the event data item when received from link partner node 128-2.
[0123] Node 128-1 includes event handling circuitry 22-1, which is configured to identify the occurrence of an event and generate a timestamp 132 of the identified event in response to a time value indicating when a hardware operation associated with the event occurs. Node 128-2 includes event handling circuitry 22-2, which is configured to generate a confidence level indicating the confidence in the accuracy of the timestamp 132, the timestamp 132 being generated by Node 128-1 in response to a common traffic pattern between Node 128-1 and Node 128-2.
[0124] The above may be useful in many scenarios including clock synchronization. For example, a master clock synchronization node may send a clock synchronization message to a slave clock synchronization node. If the master clock synchronization node does not have the ability to generate a confidence level, the slave clock synchronization node may generate a confidence level for the output timestamp (generated by the master clock synchronization node) and the incoming timestamp (generated by the slave clock synchronization node when receiving the clock synchronization message from the master clock synchronization node) of the received clock synchronization message, as described in more detail with reference to Figure 15 and 16 More detailed description.
[0125] Now refer to Figure 15 and 16 . Figure 15 is a schematic diagram of a clock synchronization system 150 according to an alternative embodiment of the present invention. Figure 16 is a flowchart of steps in a method of operation of a clock synchronization system 150 including Figure 15 The clock synchronization system 150 is substantially the same as the clock synchronization system 100 of Figure 12 except that the master clock synchronization node 102 of the clock synchronization system 150 does not have the ability to generate a confidence level, while the slave clock synchronization node 104 includes event handling circuitry 152, which may generate a confidence level for a timestamp (generated in the slave clock synchronization node 104 or) received from the master clock synchronization node 102 based on a common traffic pattern between the master clock synchronization node 102 and the slave clock synchronization node 104. This is because in the clock synchronization system 150, the master clock synchronization node 102 and the slave clock synchronization node 104 are directly connected by a cable 130 such as Figure 14 So there is a common traffic pattern between the master clock synchronization node 102 and the slave clock synchronization node 104.
[0126] The master clock synchronization node 102 is configured to send clock synchronization messages 112, 114 (such as synchronization messages) including corresponding output timestamps (such as TSE1, TSE2) to the slave synchronization node 104, but without any confidence level. Figure 15It shows that a delay request message 116 with an output timestamp TDE1 is sent from the slave clock synchronization node 104, and this delay request message 116 is received by the master clock synchronization node 102 and the master clock synchronization node 102 assigns an incoming timestamp TDI1. In response, the master clock synchronization node 102 sends a delay request response 118 including the timestamp TDI1.
[0127] The clock synchronization circuit 110 is configured to receive (block 154) clock synchronization messages including respective timestamps. The event processing circuit 152 of the slave clock synchronization node 104 is configured to generate (block 156) a confidence level associated with the respective received timestamp, and this confidence level indicates the respective confidence in the respective accuracy of the respective received timestamp. The clock synchronization circuit 110 is configured to select (block 158) at least one of the respective timestamps in response to the respective confidence level in the associated confidence levels. For example, the clock synchronization circuit 110 selects the timestamp associated with the highest confidence level or a confidence level higher than a given value. The clock synchronization circuit 110 of the slave clock synchronization node 104 is configured to perform (block 160) clock synchronization in response to the selected timestamp.
[0128] For clarity, the various features of the present invention described in the context of separate embodiments can also be provided in combination in a single embodiment. Conversely, for brevity, the various features of the present invention described in the context of a single embodiment can also be provided separately or in any suitable sub-combination.
[0129] The above embodiments are cited as examples, and the present invention is not limited by what is specifically shown and described above. Instead, the scope of the present invention encompasses combinations and sub-combinations of the various features described above, as well as variations and modifications that would occur to those skilled in the art after reading the above description and are not disclosed in the prior art.
Claims
1. An event processing system, comprising: A clock configured to provide a time value; and An event processing circuit for: Generating a confidence level indicating the confidence in the accuracy of a timestamp, the timestamp being generated for the event in response to the time value indicating when an operation associated with the event occurs; and Adding the timestamp and the confidence level to a data packet.
2. The system according to claim 1, wherein the event processing circuit is configured to: Identify the occurrence of the event; and Generate the timestamp for the identified event in response to the time value indicating when a hardware operation associated with the event occurs.
3. The system according to claim 1, wherein the event processing circuit is configured to add the timestamp and the confidence level to an event data item.
4. The system according to claim 3, wherein the event data item is a packet notification message.
5. The system according to claim 3, wherein the event data item is a clock synchronization message.
6. The system according to claim 1, wherein the event processing circuit is configured to generate the confidence level in response to any one or more of the following factors: the traffic pattern during the occurrence of the event; the line speed during the occurrence of the event; the bandwidth value during the occurrence of the event; the boot engine used during the occurrence of the event; the hardware performing the hardware operation associated with the occurred event; the clock state; the queue occupancy rate; or the PHY protocol used to perform the hardware operation.
7. The system according to claim 1, further comprising: A network interface configured to receive the data packet via a packet data network; And A packet processing circuit configured to process the received data packet, and wherein: the event includes the data packet being received by the packet processing circuit at the time value; and the event processing circuit is configured to add the timestamp and the confidence level to the data packet.
8. The system according to claim 7, wherein the event processing circuit is configured to generate the confidence level in response to any one or more of the following incoming factors: the position of the data packet in the packet processing pipeline when the timestamp is generated; the traffic pattern during the entry of the data packet; the line speed during the entry of the data packet; the bandwidth value during the entry of the data packet; the incoming queue occupancy rate; the clock state; or the boot engine used during the entry of the data packet.
9. The system according to claim 1, further comprising: A network interface configured to transmit the data packet via a packet data network; And A packet processing circuit configured to process the data packet for transmission via the packet data network via the network interface, and wherein: the event includes the data packet being transmitted via the packet data network at the time value; And the event processing circuit is configured to add the timestamp and the confidence level to the data packet.
10. The system according to claim 9 further includes an output buffer configured to store the data packet before sending the data packet through the packet data network, wherein the event processing circuit is configured to generate the confidence level in response to a buffer level of the output buffer at the time value.
11. The system according to claim 9, wherein the event processing circuit is configured to generate the confidence level in response to any one or more of the following output factors: a position of the data packet in a packet processing pipeline when the timestamp is generated; a traffic pattern during output of the data packet; a line speed during output of the data packet; a bandwidth value during output of the data packet; an output queue occupancy rate; a clock state; or a steering engine used during output of the data packet.
12. The system according to claim 1 further includes a data analyzer configured to: receive a data set including event data items having respective timestamps and respective confidence levels; reduce the data set to remove some of the event data items from the data set that have respective confidence levels lower than respective confidence levels of the remaining event data items in the data set; and analyze the reduced data set.
13. The system according to claim 1 further includes a data analyzer configured to: receive a data set including event data items having respective timestamps and respective confidence levels; select one event data item having the highest confidence level among the respective confidence levels of the event data items; and analyze the selected event data item.
14. The system according to claim 1 further includes a data analyzer configured to: receive a data set including event data items having respective timestamps and respective confidence levels; identify at least one traffic pattern that causes some of the event data items to have respective confidence levels lower than a given confidence level; and issue a command to adjust the identified at least one traffic pattern.
15. The system according to claim 1 further includes a transaction processing device configured to process requests from a plurality of request entities in response to a timeout, the timeout being set in response to the generated confidence level.
16. The system according to claim 1 further includes a first network node and a second network node, the first network node and the second network node being directly connected by a cable, wherein: the first network node includes a first event processing circuit configured to: identify the occurrence of the event; and generate the timestamp of the identified event in response to the time value indicating when a hardware operation associated with the event occurs; and and The second network node includes a second event processing circuit configured to generate the confidence level indicating the confidence in the accuracy of the timestamp generated by the first network node in response to a common traffic pattern between the first network node and the second network node.
17. The system according to claim 16, wherein: The first network node is a master clock synchronization node; The second network node is a slave clock synchronization node; The master clock synchronization node is configured to send a clock synchronization message including the timestamp to the slave synchronization node; And The slave clock synchronization node is configured to perform clock synchronization in response to the received clock synchronization message.
18. The system according to claim 1, further comprising a clock synchronization circuit configured to: Receive a plurality of clock synchronization messages including respective timestamps, the respective timestamps having associated confidence levels indicating the respective accuracies of the respective timestamps; Select at least one of the respective timestamps in response to a respective associated confidence level among the associated confidence levels; And Perform clock synchronization in response to at least one of the selected respective timestamps.
19. The system according to claim 18, wherein the clock synchronization circuit is configured to perform the clock synchronization in response to the respective timestamp while applying a higher weight to at least one of the selected respective timestamps.
20. The system according to claim 18, further comprising a master clock synchronization node and a slave clock synchronization node, the slave clock synchronization node including the clock synchronization circuit, wherein the master clock synchronization node is configured to send the plurality of clock synchronization messages including respective timestamps and associated confidence levels to the slave clock synchronization node.
21. An event processing method, comprising: Providing a time value; And Generating a confidence level indicating the confidence in the accuracy of a timestamp generated for the event in response to the time value indicating when an operation associated with the event occurs; And Adding the timestamp and the confidence level to a data packet.
22. The method according to claim 21, further comprising: Identifying the occurrence of the event; And Generating the timestamp for the identified event in response to the time value indicating when a hardware operation associated with the event occurs.
23. The method according to claim 21, further comprising adding the timestamp and the confidence level to an event data item.
24. The method according to claim 23, wherein the event data item is a packet notification message.
25. The method according to claim 23, wherein the event data item is a clock synchronization message.
26. The method according to claim 21, wherein generating the confidence level is performed in response to any one or more of the following factors: the traffic pattern during the occurrence of the event; the line speed during the occurrence of the event; the bandwidth value during the occurrence of the event; the guidance engine used during the occurrence of the event; Hardware that performs a hardware operation associated with an event that occurs; queue occupancy; Clock state; or a PHY protocol for performing the hardware operation.
27. The method according to claim 21, further comprising: Receiving the data packet through a packet data network; Processing the received data packet, the event including receiving the data packet at the time value; And Adding the timestamp and the confidence level to the data packet.
28. The method according to claim 27, wherein generating the confidence level is performed in response to any one or more ingress factors selected from the following: the position of the data packet in the packet processing pipeline when the timestamp is generated; the traffic pattern during the ingress of the data packet; the line speed during the ingress of the data packet; the bandwidth value during the ingress of the data packet; the ingress queue occupancy; the clock state; or the steering engine used during the occurrence of the event.
29. The method according to claim 21, further comprising: transmitting the data packet through a packet data network; processing the data packet for transmission through the packet data network, the event including transmitting the data packet through the packet data network at the time value; and adding the timestamp and the confidence level to the data packet.
30. The method according to claim 29, further comprising storing the data packet in an output buffer before transmitting the data packet through the packet data network, wherein generating the confidence level is performed in response to the buffer level of the output buffer at the time value.
31. The method according to claim 29, wherein generating the confidence level is performed in response to any one or more output factors selected from the following: the position of the data packet in the packet processing pipeline when the timestamp is generated; the traffic pattern during the egress of the data packet; the line speed during the egress of the data packet; the bandwidth value during the egress of the data packet; the egress queue occupancy; the clock state; or the steering engine used during the egress of the data packet.
32. The method according to claim 21, further comprising: receiving a data set including event data items having respective timestamps and respective confidence levels; reducing the data set to remove some of the event data items from the data set, the event data items having respective confidence levels lower than the respective confidence levels of the remaining event data items in the data set; and analyzing the reduced data set.
33. The method according to claim 21, further comprising: receiving a data set including event data items having respective timestamps and respective confidence levels; selecting one event data item having the highest confidence level among the respective confidence levels of the event data items; and analyzing the selected event data item.
34. The method according to claim 21, further comprising: receiving a data set including event data items having respective timestamps and respective confidence levels; identifying at least one traffic pattern that causes some of the event data items to have respective confidence levels lower than a given confidence level among the respective confidence levels; and issuing a command to adjust the identified at least one traffic pattern.
35. The method according to claim 21, further comprising processing requests from multiple request entities in response to a timeout, the timeout being set in response to the generated confidence level.
36. The method according to claim 21, further comprising: Identify the occurrence of the event in a first network node; In the first network node, generate the timestamp of the identified event in response to the time value indicating when a hardware operation associated with the event occurs; And In a second network node directly connected to the first network node by a cable, generate the confidence level of the confidence indicating the accuracy of the timestamp generated by the first network node in response to a common traffic pattern between the first network node and the second network node.
37. The method according to claim 36, wherein: The first network node is a primary clock synchronization node; The second network node is a slave clock synchronization node; And The method further includes: The primary clock synchronization node sends a clock synchronization message including the timestamp to the slave synchronization node; And The slave synchronization node performs clock synchronization in response to the received clock synchronization message.
38. The method according to claim 21, further including: Receiving a plurality of clock synchronization messages including respective timestamps, the respective timestamps having associated confidence levels indicating respective confidences in the respective accuracies of the respective timestamps; Selecting at least one of the respective timestamps in response to respective associated confidence levels in the associated confidence levels; and Performing clock synchronization in response to the at least one selected of the respective timestamps.
39. The method according to claim 38, wherein performing the clock synchronization includes performing clock synchronization in response to the respective timestamps while applying a higher weight to the at least one selected of the respective timestamps.
40. The method according to claim 38, further comprising: The primary clock synchronization node sends the plurality of clock synchronization messages including respective timestamps and associated confidence levels to the slave clock synchronization node, wherein the clock synchronization is performed by the slave clock synchronization node.
Citation Information
Patent Citations
System-wide synchronized switch-over of multicast flows
US10320952B2
Precise clock synchronization
US8370675B2
Synchronization for battery powered IoT networks
US10433270B1