Patent Description:
The present disclosure relates to a redundancy mechanism in Time Sensitive Networking (TSN) network, Deterministic Networking (DetNet), or similar network technology and, more specifically, to avoidance of duplicate delivery due to an associated reset mechanism.

Time-Sensitive Networking (TSN) is currently being developed at the Institute for Electronics and Electrical Engineering (IEEE) as a new technology that enhances IEEE <NUM> and IEEE <NUM> Ethernet standards to an entirely new level of determinism. It can be seen as an evolution of Ethernet to guarantee low end-to-end latency, low jitter, and low packet loss.

The TSN Task Group (TG) within the IEEE <NUM> Working Group (WG) deals with deterministic services through IEEE <NUM> networks. The TSN TG specifies the tools of the TSN toolbox, as well as the use of the tools for a particular purpose. TSN TG is chartered to provide deterministic services through IEEE <NUM> networks with:.

In order to achieve extremely low packet loss, the TSN TG specified Frame Replication and Elimination for Reliability (FRER) (<NUM>. 1CB), which is targeted to avoid frame loss due to equipment failure. It is practically a per-frame <NUM>+<NUM> (or <NUM>+n) redundancy function. There is no failure detection / switchover incorporated. FRER sends frames on two (or more) maximally disjoint paths, then combines the streams and deletes extra frames.

Note that the same functions are defined for Deterministic Networking (DetNet) networks as Packet Replication and Elimination Functions (PREFs) in order to simplify implementation and allow use of the same concept in both Layer2 (TSN) and Layer3 (DetNet) networks. In the description provided herein, the focus is on FRER.

Note as per IEEE <NUM>. this standard defines Frame Replication and Elimination for Reliability (FRER), which divides a Stream into one or more linked Member Streams, thus making the original Stream a Compound Stream. It replicates the packets of the Stream, splitting the copies into the multiple Member Streams, and then rejoins those Member Streams at one or more other points, eliminates the replicates, and delivers the reconstituted Stream from those points.

An Elimination function evaluates the "sequence_number" sub-parameter of a packet of one or more Member Streams passed up from the lower layers, in order to discard duplicated packets. The "SequenceHistory" variable maintains a history of the "sequence_number" sub-parameters of recently received packets. During duplicate elimination, "sequence_number" is checked against a history window ("+/- frerSeqRcvyHistoryLength"). Packets being outside the history window are discarded as invalid. Under normal operation, received packets are within the history window and only duplicates are dropped.

IEEE <NUM>. 1CB defines a timeout mechanism for the Elimination function in order to cope with some networking scenarios that results in unnecessarily dropped frames (e.g., if Elimination function somehow gets out of step with its corresponding Sequence generation function; if a Sequence generation function is reset; etc.). If a timeout occurs, the history is reset, and it is allowed to accept the next packet by the recovery algorithm, no matter what the value of its "sequence_number" sub-parameter (see "TakeAny" in <NUM>. <NUM> in IEEE <NUM>.

There currently exist certain challenge(s) with respect to FRER as defined in IEEE <NUM>. The reset method for the Sequence recovery function defined in IEEE <NUM>. 1CB-<NUM> may cause temporary duplicate delivery in some cases. Duplicate delivery (even temporarily) is not acceptable for TSN networks as it breaks one of the basic design rules, namely a TSN Stream is not allowed to consume more than the resources reserved for it. Consuming more that the designated resources via duplicate delivery may cause violation of Quality of Service (QoS) requirements for some of the Streams, e.g., delay or loss violation.

Systems and methods for avoiding duplicate delivery in the reset mechanism of seamless redundancy, e.g., of a Time Sensitive Networking (TSN) network or Deterministic Networking (DetNet) network, are disclosed herein. In one embodiment, a method performed by a receiving node that implements a redundancy mechanism based on sequence numbering or equivalent functionality comprises receiving packets from a plurality of packet streams from a transmitting node via a network. Each packet stream of the plurality of packet streams is a replication of a particular packet stream, the plurality of packet streams traverse separate paths from the transmitting node to the receiving node through the network, and each packet of each of the plurality of packet streams comprises a sequence indication that indicates a position of the packet within the particular packet stream. The method further comprises performing an elimination procedure that processes each received packet to determine whether to discard the received packet or to accept the received packet, wherein performing the elimination procedure comprises resetting one or more parameters utilized by the elimination procedure responsive to an occurrence of an event while receiving the packets and discarding all of the received packets processed by the elimination procedure from a time at which the elimination procedure was reset until an end of a defined period of time responsive to resetting the one or more parameters utilized by the elimination procedure. In this manner, no duplicate delivery happens due to the reset of the sequence generation function used for sequence number based seamless redundancy.

In one embodiment, the defined period of time has a duration that is equal to or greater than a maximum path delay difference between any two paths traversed by the plurality of packet streams through the network. In another embodiment, the defined period of time has a duration that is equal to a maximum path delay difference between any two paths traversed by the plurality of packet streams through the network.

In one embodiment, discarding received packets processed by the elimination procedure from the time at which the elimination procedure was reset until the end of the defined period of time comprises starting a timer that is set to a value that is equal to or greater than a maximum path delay difference between any two paths traversed by the plurality of packet streams through the network and discarding received packets that are processed by the elimination procedure as long as the time is running.

In one embodiment, performing the elimination procedure further comprises accepting a first received packet after the end of the defined period.

In one embodiment, the network is a TSN network, and the elimination procedure is performed as part of a Frame Replication and Elimination for Reliability (FRER) function of the receiving node. In one embodiment, the one or more parameters that are reset comprise a recovery sequence number parameter and a sequence history parameter.

In one embodiment, the network is a DetNet network, and the elimination procedure is performed as part of a Packet Replication and Elimination Function (PREF) function of the receiving node.

In one embodiment, the sequence indication is a sequence number. In another embodiment, the sequence indication is a timestamp.

Corresponding embodiments of a receiving node are also disclosed. In one embodiment, a receiving node that implements a redundancy mechanism based on sequence numbering or equivalent functionality is adapted to receive packets from a plurality of packet streams from a transmitting node via a network. Each packet stream of the plurality of packet streams is a replication of a particular packet stream, the plurality of packet streams traverse separate paths from the transmitting node to the receiving node through the network, and each packet of each of the plurality of packet streams comprises a sequence indication that indicates a position of the packet within the particular packet stream. The receiving node is further adapted to perform an elimination procedure that processes each received packet to determine whether to discard the received packet or to accept the received packet. In order to perform the elimination procedure, the receiving node is further adapted to, while receiving the packets, reset one or more parameters utilized by the elimination procedure responsive to an occurrence of an event and, responsive to resetting the one or more parameters utilized by the elimination procedure, discard all of the received packets processed by the elimination procedure from a time at which the elimination procedure was reset until an end of a defined period of time.

In one embodiment, a receiving node that implements a redundancy mechanism based on sequence numbering or equivalent functionality comprises a network interface and processing circuitry associated with the network interface. The processing circuitry is configured to cause the receiving node to receive packets from a plurality of packet streams from a transmitting node via a network. Each packet stream of the plurality of packet streams is a replication of a particular packet stream, the plurality of packet streams traverse separate paths from the transmitting node to the receiving node through the network, and each packet of each of the plurality of packet streams comprises a sequence indication that indicates a position of the packet within the particular packet stream. The processing circuitry is further configured to cause the receiving node to perform an elimination procedure that processes each received packet to determine whether to discard the received packet or to accept the received packet. In order to perform the elimination procedure, the processing circuitry is further configured to cause the receiving node to, while receiving the packets, reset one or more parameters utilized by the elimination procedure responsive to an occurrence of an event and, responsive to resetting the one or more parameters utilized by the elimination procedure, discard all of the received packets processed by the elimination procedure from a time at which the elimination procedure was reset until an end of a defined period of time.

In one embodiment, a method performed by a receiving node that implements a redundancy mechanism based on sequence numbering or equivalent functionality comprises receiving packets from a plurality of packet streams from a transmitting node via a network. Each packet stream of the plurality of packet streams is a replication of a particular packet stream, the plurality of packet streams traverse separate paths from the transmitting node to the receiving node through the network, and each packet of each of the plurality of packet streams comprises a sequence indication that indicates a position of the packet within the particular packet stream. The method further comprises performing an elimination procedure that processes each received packet to determine whether to discard the received packet or to accept the received packet, wherein performing the elimination procedure comprises detecting an occurrence of a reset event while receiving the packets and, responsive to detecting the reset event, performing one or more actions to discard or accept received packet(s), wherein the one or more actions are a function of a root-cause of the resetting.

In one embodiment, performing the one or more actions comprises determining the root-cause of the reset event, determining whether the root-cause of the reset event is a begin event or initialization event, and, responsive to determining that the root-cause of the reset event is a begin event or initialization event, collecting and storing a first "n" of the received packets since the reset event, selecting a packet from among the first "n" of the received packets with a latest sequence indication, and accepting the selected packet and discarding a remainder of the first "n" of the received packets.

In one embodiment, performing the one or more actions comprises determining whether the root-cause of the reset event is a management event and, responsive to determining that the root-cause of the reset event is a management event, determining whether a first received packet since the reset event can be accepted and accepting the first received packet responsive to determining that the first received packet since the reset event can be accepted. In one embodiment, determining whether the first received packet since the reset event can be accepted comprises preserving a plurality of sequence recovery related variables as they were before the reset event where the plurality of sequence recovery related variables comprises a history window and one or more parameters that indicate whether a packet with a particular sequence indication has already been received, determining whether the sequence indication of the first received packet is out of the predefined history window, determining that the first received packet can be accepted if the first received packet is out of the history window. Determining whether the first received packet since the reset event can be accepted further comprises, if the first received packet is within of the history window, determining whether the first received packet has already been received based on the one or more parameters that indicate whether a packet with a particular sequence indication has already been received, determining that the first received packet is to be discarded if the first received packet has already been received, and otherwise determining that the first received packet is to be accepted.

In one embodiment, performing the one or more actions comprises determining whether the root-cause of the reset event is a recovery timeout event and accepting a first received packet since the reset event responsive to determining that the root-cause of the reset event is a recovery timeout event.

In one embodiment, the network is a TSN network, and the elimination procedure is performed as part of a FRER function of the receiving node. In one embodiment, the one or more parameters associated to the elimination procedure comprise a recovery sequence number parameter and a sequence history parameter.

In one embodiment, the network is a DetNet network, and the elimination procedure is performed as part of a PREF function of the receiving node.

Corresponding embodiments of a receiving node are also disclosed. In one embodiment, a receiving node that implements a redundancy mechanism based on sequence numbering or equivalent functionality is adapted to receive packets from a plurality of packet streams from a transmitting node via a network. Each packet stream of the plurality of packet streams is a replication of a particular packet stream, the plurality of packet streams traverse separate paths from the transmitting node to the receiving node through the network, and each packet of each of the plurality of packet streams comprises a sequence indication that indicates a position of the packet within the particular packet stream. The receiving node is further adapted to perform an elimination procedure that processes each received packet to determine whether to discard the received packet or to accept the received packet. In order to perform the elimination procedure, the receiving node is further adapted to detect an occurrence of a reset event while receiving the packets and, responsive to detecting the reset event, perform one or more actions to discard or accept received packet, wherein the one or more actions are a function of a root-cause of the resetting.

In one embodiment, a receiving node that implements a redundancy mechanism based on sequence numbering or equivalent functionality comprises a network interface and processing circuitry associated with the network interface. The processing circuitry is configured to cause the receiving node to receive packets from a plurality of packet streams from a transmitting node via a network. Each packet stream of the plurality of packet streams is a replication of a particular packet stream, the plurality of packet streams traverse separate paths from the transmitting node to the receiving node through the network, and each packet of each of the plurality of packet streams comprises a sequence indication that indicates a position of the packet within the particular packet stream. The processing circuitry is further configured to cause the receiving node to perform an elimination procedure that processes each received packet to determine whether to discard the received packet or to accept the received packet. The processing circuitry is further configured to cause the receiving node to, in order to perform the elimination procedure, detect an occurrence of a reset event while receiving the packets and, responsive to detecting the reset event, perform one or more actions to discard or accept received packet, wherein the one or more actions are a function of a root-cause of the resetting.

There currently exist certain challenge(s) with respect to Frame Replication and Elimination for Reliability (FRER) as defined in Institute for Electronics and Electrical Engineering (IEEE) <NUM>. The reset method for the Sequence recovery function defined in IEEE <NUM>. 1CB-<NUM> may cause temporary duplicate delivery in some cases. Duplicate delivery (even temporarily) is not acceptable for Time Sensitive Networking (TSN) networks as it breaks one of the basic design rules, namely a TSN Stream is not allowed to consume more than the resources reserved for it. Consuming more that the designated resources via duplicate delivery may cause violation of Quality of Service (QoS) requirements for some of the Streams, e.g., delay or loss violation.

IEEE <NUM>. 1CB-<NUM> defines three reasons to reset the Sequence recovery function:.

Reset the Sequence recovery function (see section <NUM>. <NUM> Sequence Recovery Reset of <NUM>. 1CB-<NUM>) sets the "RecovSeqNum" to "RecovSeqSpace - <NUM>", clears the "SequenceHistory" array, and sets "TakeAny" to true.

Out of the paths used for seamless redundancy, the end-to-end delay of some paths is larger than that of other paths. A path with smaller end-to-end delay is called a fast path, whereas a path with larger end-to-end delay is called a slow path. Thus, the end-to-end delay is different for different copies/duplicates of a packet transferred over the different paths. This artifact of seamless redundancy has effects on its operation.

In case-<NUM> (BEGIN) and case-<NUM> (Management), the slow path may be transferring packets whose corresponding duplicates were already received and processed (forwarded) by the Elimination function of a node before the reset was generated. Such scenarios result in duplicate delivery. <FIG> shows such a duplicate delivery after reset of the Sequence Recovery function. After the reset, a packet with sequence_number=<NUM> arrives over the fast path. It is accepted by the Elimination function due to the true value of "TakeAny". Packets received over the slow path after the reset (i.e., packet-<NUM>, packet-<NUM>, and packet-<NUM>) are also accepted as they are in the history window and the reset has cleared the "SequenceHistory". But these packets were already delivered before the reset so duplicate delivery happens.

Certain aspects of the present disclosure and their embodiments may provide solutions to the aforementioned or other challenges. Systems and methods are disclosed herein for avoiding duplicate delivery in the reset mechanism of the seamless redundancy of TSN or Deterministic Networking (DetNet). In particular, in some embodiments, the systems and methods ensure that no duplicate delivery is caused by the reset function. In one embodiment, a reset-guard period (also referred to herein as a guard-timer) is added after the reset, where received packets are dropped. In another embodiment, the reset procedure is modified to be root-cause dependent.

Embodiments disclosed herein provide improvements to the Elimination function of IEEE <NUM>. 1CB in order to achieve seamless reset of the Sequence recovery function. In one embodiment, a guard-timer based reset method is provided. In another embodiment, a reset method that takes into account the root cause of the reset is provided.

Embodiments of the solutions described herein are applicable to FRER of TSN, Packet Replication and Elimination Function (PREF) of DetNet, or other seamless redundancy mechanisms based on sequence numbering or equivalent functionality (e.g., provided by timestamps). In general, system and methods are described herein that avoid duplicate packets in the event of a reset of a sequencing function of a redundancy mechanism such as FRER of TSN or PREF of DetNet.

Certain embodiments may provide one or more of the following technical advantage(s). The embodiments described herein can ensure that no duplicate delivery happens due to the reset of the sequence generation function of sequence number based seamless redundancy.

The following description focuses on embodiments of the solutions described herein for improvement of the Sequence recovery function's reset in IEEE <NUM>. As such, IEEE <NUM>. 1CB terminology and variable names are used herein where appropriate, denoted as "VariableName". New variables, functions, and parameters follow IEEE <NUM>. 1CB naming convention and are denoted as "NewEntityName". Although, the following description uses the terms, definitions, and functions specified by IEEE <NUM>. 1CB, the solutions described herein are applicable to FRER of TSN, PREF of DetNet, or other seamless redundancy mechanisms based on sequence numbering or equivalent functionality (e.g., provided by timestamps).

<FIG> illustrates a system <NUM> that includes a transmitting (TX) node <NUM> and a receiving (RX) node <NUM>, where the TX node <NUM> transmits a replicated stream of packets to the RX node <NUM> via a TSN network <NUM>. As discussed above, transmission of the replicated stream of packets involves replicating a Stream of packets into multiple Member Streams to thereby provide a Compound Stream. The Member Streams are then transmitted to the RX node <NUM> via the TSN network <NUM> via maximally disjoint paths, including fast-path(s) and slow-path(s). Note that while the nodes <NUM> and <NUM> are denoted herein as "TX node" and "RX node", respectively, it should be understood that these nodes may both transmit and receive streams via the TSN network <NUM>.

As illustrated, the TX node <NUM> includes a FRER function <NUM> that operates to provide FRER in accordance with, in this example, IEEE <NUM>. The FRER <NUM> includes a Replication function <NUM> and an Elimination function <NUM> (illustrated as optional in the sense that it is not used for transmission of the Stream to the RX node <NUM>). In a similar manner, the RX node <NUM> includes a FRER function <NUM> that operates to provide FRER in accordance with, in this example, IEEE <NUM>. The FRER <NUM> includes a Replication function <NUM> (illustrated as optional in the sense that it is not used for reception of the Stream from the TX node <NUM>) and an Elimination function <NUM>.

When receiving the Member Streams of the Compound Stream transmitted by the TX node <NUM>, the Elimination function <NUM> at the RX node <NUM> evaluates the "sequence_number" sub-parameter of each packet of each received Member Streams in order to discard duplicated packets. The "SequenceHistory" variable maintained by the FRER <NUM> at the RX node <NUM> maintains a history of the "sequence_number" sub-parameters of recently received packets. During duplicate elimination, the "sequence_number" of a received packet is checked against a history window ("+/- frerSeqRcvyHistoryLength"). If the packet is outside the history window, the packet is discarded as invalid. Under normal operation, received packets are within the history window and only duplicates are dropped. As described above, under certain circumstances, the Sequence Recovery function (part of the Elimination function <NUM>) at the RX node <NUM> may be reset. Reset of the Sequence Recovery function sets "RecovSeqNum" to "RecovSeqSpace - <NUM>", clears the "SequenceHistory" array and sets "TakeAny" to true. If the conventional reset mechanism is used, this can result in duplicate packets being received (i.e., not being discarded by the Elimination function <NUM>), as discussed above. As such, systems and methods relating to a new reset mechanism are described herein.

The root cause of the duplicate delivery is that slow path packets are within the history window by design. It is required for the proper operation of the Elimination function <NUM> at the RX node <NUM>. Therefore, the purpose of the history is to avoid duplicates. However, if the reset clears the history, then the duplicate elimination capability provided by the history is lost.

Two solutions are proposed herein, each of which are described in detail below.

The first solution is to extend the reset mechanism with an added reset-guard period, where received packets are dropped. The duration of the reset-guard period depends on the delay difference of the different paths used by the Member Streams. For example, the maximum path delay difference between any pair of the Member Streams can be computed as follows: <MAT> where "n" denotes the number of Member Streams and i, j = {<NUM>. In one embodiment, the reset-guard period is set to MaxPathDelayDiff. However, in an alternative embodiment, the reset-guard period is set to a value that is greater than or equal to MaxPathDelayDiff.

In one embodiment, the reset-guard period timer ("ResetGuardTime") is used by the Elimination function <NUM> of the FRER <NUM> at the RX node <NUM> as follows:.

<FIG> is a state diagram that illustrates the operation of the Elimination function <NUM> at the RX node <NUM> in accordance with the first solution. As illustrated, starting from the normal mode of Elimination, packets are received and the normal elimination procedure is performed. Upon reset, the Elimination function <NUM> transitions into a state in which the Elimination function <NUM> waits until the ResetGuardTimer expires. Until this timer expires, the Elimination function <NUM> drops all received packets. Upon expiry of the ResetGuardTimer, the Elimination function <NUM> transitions into a state in which the Elimination function <NUM> takes, or accepts, any received packet. Upon receive of a packet, the Elimination function <NUM> returns to the state in which the Elimination function <NUM> performs the normal mode of elimination.

<FIG> is a flow chart that illustrates the operation of the RX node <NUM> in accordance with at least some aspects of the first solution described above. Here, the operation of the RX node <NUM> is not limited to FRER for TSN. Rather, the process of <FIG> generally applies to FRER of TSN, PREF of DetNet, or other seamless redundancy mechanisms based on sequence numbering or equivalent functionality (e.g., provided by timestamps). Note that optional steps are represented by dashed lines/boxes.

As illustrated in <FIG>, the RX node <NUM> receives packets from multiple packet streams from the TX node <NUM> via a network (e.g., an Ethernet network using TSN network (referred to herein as a TSN network) or a DetNet network (which can use any L2 networking technology including, but not limited to, Ethernet) (step <NUM>). Each packet stream is a replication of a particular packet stream (e.g., in IEEE <NUM>. 1CB terminology, each packet stream is a Member Stream). The packet streams traverse separate paths (e.g., maximally disjoint paths) from the TX node <NUM> to the RX node <NUM> through the network. Further, each packet of each of the plurality of packet streams comprises a sequence indication that indicates a position of the packet within the particular packet stream. The sequence indication may be, for example, a sequence number (e.g., as in IEEE <NUM>. 1CB), a timestamp, or some equivalent mechanism for defining the position of the packet within the particular packet stream being replicated).

The RX node <NUM> performs an elimination procedure that processes each received packet to determine whether to discard the received packet or to accept the received packet (step <NUM>). Performing the elimination procedure includes, while receiving the packets, resetting one or more parameters utilized by the elimination procedure responsive to an occurrence of an event (step 402A). As an example, for FRER for TSN, the event may be a BEGIN event, a MNGMT event, or a RECOVERY_TIMEOUT event. Responsive to resetting the elimination procedure, the RX node <NUM> discards all received packets processed by the elimination procedure from a time at which the elimination procedure was reset until an end of a defined period of time (step 402B). In other words, the RX node <NUM> discards all received packets that are received and processed by the elimination procedure during the reset-guard period. As discussed above, in some embodiments, the defined period of time has a duration that is equal to or greater than a maximum path delay difference between any two paths traversed by the plurality of packet streams through the network. In some other embodiments, the defined period of time has a duration that is equal to a maximum path delay difference between any two paths traversed by the plurality of packet streams through the network.

In some embodiments, discarding received packets processed by the elimination procedure from the time at which the elimination procedure was reset until the end of the defined period of time comprises starting a timer that is set to a value that is equal to or greater than a maximum path delay difference between any two paths traversed by the plurality of packet streams through the network (step 402B1) and discarding received packets that are processed by the elimination procedure as long as the time is running (step 402B2). One embodiment of this timer is the reset-guard period timer discussed above.

In one embodiment, performing the elimination procedure further comprises accepting a first received packet after the end of the defined period (step 402C) and updating one or more parameters utilized by the elimination procedure accordingly (step 402D), as described above.

In one embodiment, the network is a TSN network, and the elimination procedure is performed as part of a FRER function of the RX node <NUM>. Further, in one embodiment, the one or more parameters that are reset in step 402A comprise a recovery sequence number parameter and a sequence history parameter, as described above. In another embodiment, the network is a DetNet network, and the elimination procedure is performed as part of a PREF function of the RX node <NUM>.

In a second solution disclosed herein, the reset procedure is modified according to a root-cause of the reset. In the description below, "n" denotes the number of Member Streams. The root-cause of the reset may be a BEGIN event, a MNGMT event (management initiated reset of the sequence recovery function), or a RECOVERY_TIMEOUT event. The operation of the Elimination function <NUM> at the RX node <NUM> in accordance with the second solution is described below for each of these root-causes of the reset. Note, however, the Elimination function <NUM> is not required to implement the second solution for all of these root-causes of the rest. Rather, the Elimination function <NUM> may implement the second solution for any one or more of these root-causes of the reset.

In case of the root-cause of the reset being a BEGIN event, there is a node initialization or a reset. All variables are set to their default values, and their values before the reset event are forgotten. When a BEGIN event caused the reset, the Elimination function <NUM> of the RX node <NUM> operates as follows:.

In case of the root-cause of the reset being a MNGMT event, a sequence recovery function reset has been requested by the management system via the "frerSeqRcvyReset" variable. In this case, values of sequence recovery related variables are preserved as they were before the reset and are used during the evaluation of the received packets. When a MNGMT event caused the reset, the Elimination function <NUM> of the RX node <NUM> operates as follows:.

In case of the root-cause of the reset being a RECOVERY_TIMEOUT event, the timeout mechanism triggers the reset. If the timeout mechanism is properly designed, the timeout lasts longer than the delay difference of the different paths of the Member Streams; therefore, the history can be cleared, and the first packet can be accepted without any risk of duplicate delivery. When a RECOVERY_TIMEOUT event caused the reset, the Elimination function <NUM> of the RX node <NUM> operates as follows:.

<FIG> is a state diagram when the reset procedure takes into account the root-cause of the reset in accordance with the second solution described above.

<FIG> illustrates the operation of the RX node <NUM> in accordance with at least some aspects of the second solution described above. Here, the operation of the receiving node <NUM> is not limited to FRER for TSN. Rather, the process of <FIG> generally applies to FRER of TSN, PREF of DetNet, or other seamless redundancy mechanisms based on sequence numbering or equivalent functionality (e.g., provided by timestamps). Note that optional steps are represented by dashed lines/boxes.

As illustrated in <FIG>, the receiving node <NUM> receives packets from multiple packet streams from the TX node <NUM> via a network (e.g., a TSN network or a DetNet network) (step <NUM>). Each packet stream is a replication of a particular packet stream (e.g., in IEEE <NUM>. 1CB terminology, each packet stream is a Member Stream). The packet streams traverse separate paths (e.g., maximally disjoint paths) from the TX node <NUM> to the RX node <NUM> through the network. Further, each packet of each of the plurality of packet streams comprises a sequence indication that indicates a position of the packet within the particular packet stream. The sequence indication may be, for example, a sequence number (e.g., as in IEEE <NUM>. 1CB), a timestamp, or some equivalent mechanism for defining the position of the packet within the particular packet stream being replicated).

The RX node <NUM> performs an elimination procedure that processes each received packet to determine whether to discard the received packet or to accept the received packet (step <NUM>). Performing the elimination procedure includes, while receiving the packets, detecting an occurrence of a reset event (step 602A). As an example, for FRER for TSN, the reset event may be a BEGIN event, a MNGMT event, or a RECOVERY_TIMEOUT event. Responsive to detecting the reset event, the RX node <NUM> performs one or more actions to discard or accept received packet(s), wherein the one or more actions are a function of a root-cause of the reset event (step 602B). The RX node <NUM> may then resume normal operation with respect to the elimination procedure (step 602C).

<FIG> is a flow chart that illustrates step 602B in more detail in accordance with at least some aspects of the second solution. Again, the operation of the receiving node <NUM> is not limited to FRER for TSN. Rather, the process of <FIG> generally applies to FRER of TSN, PREF of DetNet, or other seamless redundancy mechanisms based on sequence numbering or equivalent functionality (e.g., provided by timestamps). Note that optional steps are represented by dashed lines/boxes.

As illustrated in <FIG>, in order to perform the one or more actions to discard or accept the received packet(s) since the reset based on the root-cause of the reset, the RX node <NUM> determines the root-cause of the resetting (step <NUM>). Again, using FRER as an example, the root-cause may be a BEGIN event, a MNGMT event, or a RECOVERY_TIMEOUT event. While these terms are used in <FIG>, in this context, they are to be understood to generally cover corresponding events in PREF.

The RX node <NUM> determines whether the root-cause of the resetting is a BEGIN event or initialization event (step <NUM>). If the root-cause is a BEGIN event or an initialization event (step <NUM>, YES), variables are set to their default values, and their values before the reset event are forgotten, as described above. Further, the RX node <NUM> collects and stores a first "n" of the received packets since the resetting (step <NUM>), selects a packet with a latest sequence indication (e.g., a largest sequence number) (step <NUM>), and accepts the selected packet and discards a remainder of the first "n" of the received packets (step <NUM>). The RX node <NUM> updates the parameter(s) of the elimination procedure according, as described above (step <NUM>).

If the root-cause is a MNGMT event (step <NUM>, NO and step <NUM>, YES), the RX node <NUM> determines whether a first received packet since the resetting can be accepted (step <NUM>). If so, the RX node <NUM> accepts the first received packet and updates the parameter(s) of the elimination procedure accordingly, as described above (step <NUM>). In regard to step <NUM>, in one embodiment as illustrated in <FIG>, the RX node <NUM> determines whether the first received packet can be accepted by preserving a plurality of sequence recovery related variables as they were before the resetting where the plurality of sequence recovery related variables comprise a history window and one or more parameters that indicate whether a packet with a particular sequence indication has already been received (e.g., "RecovSeqNum" and "SequenceHistory") and determining whether the sequence indication of the first received packet is out of the predefined history window (steps <NUM>-<NUM> and <NUM>-<NUM>). If the first received packet is out of the history window (step <NUM>-<NUM>, YES), the RX node <NUM> determines that the first received packet can be accepted (<NUM>-<NUM>). If the first received packet is within of the history window (step <NUM>-<NUM>, NO), the RX node <NUM> determines whether the first received packet has already been received based on the one or more parameters that indicate whether a packet with a particular sequence indication has already been received (step <NUM>-<NUM>). If the first received packet has already been received (step <NUM>-<NUM>, YES), the RX node <NUM> determines that the first received packet (step <NUM>-<NUM>) can be discarded; otherwise, the RX node <NUM> determines the first received packet can be accepted (step <NUM>-<NUM>).

Returning to <FIG>, if the root-cause of the resetting is a recovery timeout event (step <NUM>, NO and step <NUM>, NO), the RX node <NUM> accept a first received packet since the resetting (step <NUM>) and updates the parameter(s) of the elimination procedure accordingly, as described above (step <NUM>).

Again, in one embodiment, the network is a TSN network, and the elimination procedure is performed as part of a FRER function of the RX node <NUM>. In one embodiment, the one or more parameters that are reset comprise a recovery sequence number parameter and a sequence history parameter. In another embodiment, the network is a DetNet network, and the elimination procedure is performed as part of a PREF, function of the RX node <NUM>.

As discussed above, in one embodiment, the sequence indication is a sequence number. In another embodiment, the sequence indication is a timestamp.

<FIG> is a schematic block diagram of the RX node <NUM> according to some embodiments of the present disclosure. As illustrated, the RX node <NUM> includes one or more processors <NUM> (e.g., Central Processing Units (CPUs), Application Specific Integrated Circuits (ASICs), Field Programmable Gate Arrays (FPGAs), and/or the like), memory <NUM>, and a network interface <NUM>. The one or more processors <NUM> are also referred to herein as processing circuitry. The one or more processors <NUM> operate to provide one or more functions of the RX node <NUM> as described herein. In some embodiments, the function(s) are implemented in software that is stored, e.g., in the memory <NUM> and executed by the one or more processors <NUM>.

<FIG> is a schematic block diagram that illustrates a virtualized embodiment of the RX node <NUM> according to some embodiments of the present disclosure.

As used herein, a "virtualized" RX node is an implementation of the RX node <NUM> in which at least a portion of the functionality of the RX node <NUM> is implemented as a virtual component(s) (e.g., via a virtual machine(s) executing on a physical processing node(s) in a network(s)). As illustrated, in this example, the RX node <NUM> includes one or more processing nodes <NUM> coupled to or included as part of a network(s) <NUM>. Each processing node <NUM> includes one or more processors <NUM> (e.g., CPUs, ASICs, FPGAs, and/or the like), memory <NUM>, and a network interface <NUM>. In this example, functions <NUM> of the RX node <NUM> described herein are implemented at one of the processing nodes <NUM> or distributed across two or more of the processing nodes <NUM> in any desired manner. In some particular embodiments, some or all of the functions <NUM> of the RX node <NUM> described herein are implemented as virtual components executed by one or more virtual machines implemented in a virtual environment(s) hosted by the processing node(s) <NUM>.

In some embodiments, a computer program including instructions which, when executed by at least one processor, causes the at least one processor to carry out the functionality of the RX node <NUM> or a node (e.g., a processing node <NUM>) implementing one or more of the functions <NUM> of the RX node <NUM> in a virtual environment according to any of the embodiments described herein is provided.

<FIG> is a schematic block diagram of the RX node <NUM> according to some other embodiments of the present disclosure. The RX node <NUM> includes one or more modules <NUM>, each of which is implemented in software. The module(s) <NUM> provide the functionality of the RX node <NUM> described herein. This discussion is equally applicable to the processing node <NUM> of <FIG> where the modules <NUM> may be implemented at one of the processing nodes <NUM> or distributed across multiple processing nodes <NUM>.

Claim 1:
A method performed by a receiving node (<NUM>) that implements a redundancy mechanism based on sequence numbering, the method comprising:
• receiving (<NUM>) packets from a plurality of packet streams from a transmitting node (<NUM>) via a network, wherein:
o each packet stream of the plurality of packet streams is a replication of a particular packet stream;
o the plurality of packet streams traverse separate paths from the transmitting node (<NUM>) to the receiving node (<NUM>) through the network; and
o each packet of each of the plurality of packet streams comprises a sequence indication that indicates a position of the packet within the particular packet stream;
• performing (<NUM>) an elimination procedure that processes each received packet to determine whether to discard the received packet or to accept the received packet, wherein performing (<NUM>) the elimination procedure comprises:
o while receiving (<NUM>) the packets, resetting (402A) one or more parameters utilized by the elimination procedure responsive to an occurrence of an event; and being characterised by comprising the step of
o responsive to resetting (402B) the one or more parameters utilized by the elimination procedure, discarding (402C) all of the received packets processed by the elimination procedure from a time at which the elimination procedure was reset until an end of a defined period of time.