SYSTEMS AND METHODS FOR CONTINUOUS RESTART FOR CONTINUOUS TSN / DETNET REDUNDANCY
Patent Information
- Application Number
- MX2022011119
- Authority / Receiving Office
- MX · MX
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2020-03-13
- Filing Date
- 2022-09-07
- Publication Date
- 2026-02-25
- Estimated Expiration
- 2041-03-12
AI Technical Summary
Current TSN and DetNet networks face challenges with unnecessary packet drops during continuous redundancy mechanisms, especially in cloud environments, due to the restart of the sequence generation function, which are not adequately addressed by existing IEEE 802.1CB and '397 application solutions.
Implementing an explicit notification of the reset event through a SeqResetFlag and introducing a new linear initial sequence number space (InitSeqNumSpace) to enhance the replication and deletion functions, ensuring seamless restart and minimizing packet drops.
This approach ensures seamless redundancy in cloud environments by preventing unnecessary packet losses during sequence number generation restarts, maintaining high availability and reducing the impact on TSN applications.
Smart Images

Figure MX431254B0
Abstract
Description
SYSTEMS AND METHODS FOR CONTINUOUS RESTART FOR CONTINUOUS REDUNDANCY OF TSN / DetNet Related requests This application claims the benefit of provisional patent application serial number 62 / 989,340, filed on March 13, 2020, the contents of which are incorporated herein by reference in their entirety. Technical field The present invention relates to the creation of time-sensitive networks (TSNs) and the creation of deterministic networks (DetNet) and, more specifically, to the replication and elimination of frames or packets in a TSN or DetNet. Background of the invention Time-sensitive networks (TSNs) are currently being developed at the Institute of Electrical and Electronics Engineers (IEEE) as a new technology that enhances the IEEE 802.1 and IEEE 802.3 Ethernet standards to a whole new level of determinism. They can be seen as an evolution of Ethernet to ensure low end-to-end latency, low jitter, and low packet loss. The TSN Working Group (TG) within the IEEE 802.1 Working Group (WG) is responsible for deterministic services over IEEE 802 networks. The TSN TG specifies the tools in the TSN toolbox, as well as the use of those tools for a particular purpose. The TSN TG is authorized to provide deterministic services over IEEE 802 networks with: • Guaranteed packet transport, • Low packet loss, • Limited low latency, and • Low packet delay variation. To achieve extremely low packet loss, the TSN Technical Group specified Frame Replication and Elimination for Reliability (FRER) (802.1CB), which aims to prevent frame loss due to equipment failure. It is essentially a 1+1 (or 1+n) per-frame redundancy function. There is no built-in fault detection / switching. FRER sends frames on two (or more) disjoint paths, then combines the sequences and discards the extra frames. Note that the same functions are defined for networks in deterministic networks (DetNet) as packet elimination and replication functions (PREFs) to simplify implementation and allow the use of the same concept in Layer2 (TSN) and Layer3 (DetNet) networks. ινΐΛ / a / zuzz / ui 11 iy In the description provided in this document, the focus is on FRER. Note according to IEEE 802.1CB: ... this standard defines Frame Replication and Removal for Reliability (FRER), which splits a flow into one or more linked member flows, thereby converting the original flow into a composite flow. It replicates the flow's packets, splitting the copies into several member flows, and then rejoins those member flows at one or more points, removes the replicas, and delivers the reconstituted flow from those points. A discard function evaluates the sequence number subparameter of a packet from one or more member streams passed from lower layers to discard duplicate packets. The SequenceHistory variable maintains a history of the sequence number subparameters of recently received packets. During duplicate discard, the sequence number is compared to a history window (defined by frerSeqRcvyHistoryLength). Packets outside the history window are discarded as invalid. Under normal conditions, received packets fall within the history window, and only duplicates are discarded. IEEE 802.1CB defines a timeout mechanism for the discard function to handle certain network scenarios that result in unnecessarily discarded frames (for example, if the discard function somehow becomes out of sync with its corresponding sequence generator function; if a sequence generator function is reset; etc.). If the timeout expires, the history is reset, and the recovery algorithm allows it to accept the next packet, regardless of the value of its sequence number subparameter (see TakeAny in 7.4.3.2.6 of IEEE 802.1CB). Brief description of the invention This document describes systems and methods for continuous redundancy restoration, for example, in a time-sensitive network (TSN) or a deterministic network of networks (DetNet). In one embodiment, a method implemented by a transmitting node for packet or frame replication involves determining that a sequence generation function has been restarted at the transmitting node.The method further comprises, in response to the determination that the sequence generation function at the transmitting node has been reset, transmitting a first plurality of packets in a packet stream through at least two separate paths across a network, wherein: (a) each of the first plurality of packets comprises a respective sequence number from a linear sequence number space, and (b) at least one first packet from among the first plurality of packets sent after the reset further comprises an explicit indicator of the reset. The method further comprises determining that an end of the linear sequence number space has been reached or that the use of the linear sequence number space has been otherwise disabled.The method further comprises, in response to the determination that the end of the linear sequence number space has been reached or that the use of the linear sequence number space has been otherwise disabled, transmitting a second plurality of packets in the packet flow through at least two paths across the network, wherein (a) each of the second plurality of packets comprises a respective sequence number from a cyclic sequence number space. In this way, a continuous restart for sequence number generation is provided. In one embodiment, each of the first plurality of packets further comprises an explicit indication that the linear sequence number space is being used. In one mode, the network is a TSN network. In one embodiment, the method further comprises resetting the sequence generation function, wherein resetting the sequence generation function comprises resetting a sequence number history, a history window, or both the sequence number history and the history window. In one mode, the steps of determining that the sequence generation function at the transmitting node has been restarted, transmitting the first plurality of packets in the packet flow, determining that the end of the linear sequence number space has been reached or that the use of the linear sequence number space has been otherwise disabled, and transmitting the second plurality of packets in the packet flow are carried out by a Frame Replication and Elimination for Reliability (FRER) function of the transmitting node. In one mode, the network is a DetNet. In one mode, the steps of determining that the sequence generation function on the transmitting node has been restarted, transmitting the first plurality of packets in the packet flow, determining that the end of the linear sequence number space has been reached or that the use of the linear sequence number space has been otherwise disabled, and transmitting the second plurality of packets in the packet flow are carried out by a packet elimination and replication (PRER) function of the transmitting node. Corresponding modes of a transmission node are also described. In one mode, a transmission node for packet or frame replication is adapted to determine that a sequence generation function has been restarted at the transmission node. The transmission node is further adapted to, in response to the determination that the sequence generation function at the transmission node has been restarted, transmit a first plurality of packets in a packet stream through at least two separate paths across a network, wherein: (a) each of the first plurality of packets comprises a respective sequence number from a linear sequence number space, and (b) at least one first packet among the first plurality of packets sent after the restart further comprises an explicit indicator of the restart.The transmission node is further adapted to determine that the end of the linear sequence number space has been reached or that the use of the linear sequence number space has been otherwise disabled and, in response to the determination that the end of the linear sequence number space has been reached or that the use of the linear sequence number space has been otherwise disabled, transmit a second plurality of packets in the packet flow through at least two separate paths through the network, wherein (a) each of the second plurality of packets comprises a respective sequence number from a cyclic sequence number space. In one embodiment, a transmission node for packet or frame replication comprises a network interface and a processing circuit associated with the network interface. The processing circuit is configured to enable the transmission node to determine that a sequence generation function has been restarted on the transmission node.The processing circuit is further configured to cause the transmitting node, in response to the determination that the sequence generation function at the transmitting node has been reset, to transmit a first plurality of packets in a packet flow through at least two separate paths across a network, wherein: (a) each of the first plurality of packets comprises a respective sequence number from a linear sequence number space and (b) at least one first packet from among the first plurality of packets that was sent after the reset further comprises an explicit indicator of the reset.The processing circuit is further configured to cause the transmitting node to determine that the end of the linear sequence number space has been reached or that the use of the linear sequence number space has been otherwise disabled and, in response to determining that the end of the linear sequence number space has been reached or that the use of the linear sequence number space has been disabled, to transmit a second plurality of packets in the packet flow through at least two separate paths through the network, wherein (a) each of the second plurality of packets comprises a respective sequence number from a cyclic sequence number space. In one embodiment, a method carried out by a transmission node for replicating packets or frames comprises obtaining a packet to be sent and determining that the packet does not include a label indicating that the packet has already been replicated. The method further comprises, in response to the determination that the packet does not include a label indicating that the packet has already been replicated, determining that a linear sequence number space is to be used and, in response, enabling an explicit indication in the packet that the linear sequence number space is being used, adding a sequence number from the linear sequence number space to the packet, and adding a label to the packet indicating that the packet has been replicated. The method further comprises providing the packet for replication and transmission. In one embodiment, the method further comprises, in response to the determination that the packet does not include a label indicating that the packet has already been replicated, determining that a sequence generation function has been restarted at the transmitting node, thereby enabling an explicit indication in the packet that the sequence generation function has been restarted in response to the determination that the sequence generation function at the transmitting node has been restarted, and otherwise disabling the explicit indication in the packet that the sequence generation function has been restarted. In one embodiment, the method further comprises, in response to the determination that the linear sequence number space is to be used, incrementing the sequence number from the linear sequence number space. In one embodiment, the method further comprises repeating the method for a plurality of additional packets until the linear sequence number space is exhausted or the use of the linear sequence number space is disabled. In one embodiment, the method further comprises, after the linear sequence number space is exhausted or after the use of the linear sequence number space is disabled, obtaining an additional packet to send and ensuring that the additional packet does not include a label indicating that the additional packet has already been replicated.The method further comprises, in response to determining that the add-on packet does not contain a label indicating that the add-on packet has already been replicated: determining that a cyclic sequence number space is to be used, instead of a linear sequence number space; in response to the determination that the cyclic sequence number space is to be used, disabling an explicit indication in the add-on packet that the linear sequence number space is being used and adding a sequence number from the cyclic sequence number space to the add-on packet; and adding a label to the add-on packet indicating that the add-on packet has been replicated. The method further comprises providing the add-on packet for replication and transmission. In one embodiment, the method further comprises, in response to the determination that the add-on packet does not include a label indicating that the add-on packet has already been replicated, determining whether a sequence generation function has been restarted at the transmitting node, thereby enabling an explicit indication in the add-on packet that the sequence generation function has been restarted in response to the determination that the sequence generation function at the transmitting node has been restarted and, otherwise, disabling the explicit indication in the add-on packet that the sequence generation function has been restarted. Corresponding modes of a transmission node are also described. In one mode, a transmission node for packet or frame replication is adapted to obtain a packet to be sent and determine that the packet does not contain a label indicating that it has already been replicated. The transmission node is further adapted to, in response to the determination that the packet does not contain a label indicating that it has already been replicated, determine that a linear sequence number space is to be used. The transmission node is further adapted to, in response to the determination that the linear sequence number space is to be used, enable an explicit indication in the packet that the linear sequence number space is being used and append a sequence number from the linear sequence number space to the packet.The transmission node is also adapted to add a label to the packet indicating that the packet has been replicated and to provide the packet for replication and transmission. In one embodiment, a transmission node for packet or frame replication comprises a network interface and a processing circuit associated with that interface. The processing circuit is configured to have the transmission node obtain a packet to be sent and determine that the packet does not contain a label indicating that it has already been replicated. The processing circuit is further configured to have the transmission node, in response to the determination that the packet does not contain a label indicating that it has already been replicated, determine that a linear sequence number space is to be used.The processing circuit is further configured to cause the transmitting node, upon determining that the linear sequence number space is to be used, to enable an explicit indication in the packet that the linear sequence number space is being used and to append a sequence number from the linear sequence number space to the packet. The processing circuit is further configured to cause the transmitting node to add a label to the packet indicating that the packet has been replicated and to provide the packet for replication and transmission. In one embodiment, a method carried out by a receiving node for packet or frame disposal comprises receiving a packet from one of a plurality of replicated flows traversing separate paths from a transmitting node to the receiving node across a network, wherein the packet comprises a sequence number. The method further comprises determining whether the packet comprises an explicit indication that a linear sequence number space is being used, rather than a cyclic sequence number space; determining whether the packet comprises an explicit indication that a sequence generation function has been reset at the transmitting node; and determining whether the packet's sequence number is outside an ignore reset range (iRIR) associated with the use of the linear sequence number space.The method further comprises accepting the packet in response to the determination that the packet includes the explicit indication that the linear sequence number space is being used and that the packet includes the explicit indication that the sequence generation function at the transmitting node has been reset and the packet's sequence number is outside the iRIR. In one embodiment, the method further comprises, in response to the determination that the packet contains the explicit indication that the linear sequence number space is being used and that the packet contains the explicit indication that the sequence generation function at the transmitting node has been reset and the packet's sequence number is outside the iRIR, updating a history window and a history associated with the linear sequence number space based on the packet's sequence number. In one embodiment, the method further comprises, upon determining that the packet contains the explicit indication that the linear sequence number space is being used and that the packet does not contain the explicit indication that the sequence generation function at the transmitting node has been reset or the packet's sequence number is not outside the iRIR, determining whether the packet's sequence number is within a history window (iHSW) associated with the use of the linear sequence number space, determining whether the packet's sequence number is already in a history associated with the use of the linear sequence number space that comprises sequence numbers from the linear sequence number space that have already been received, and accepting the packet in response to determining that the packet's sequence number is within the iHSW and determining that the packet's sequence number is not already in the history.In one embodiment, the method further comprises discarding the packet in response to determining that the packet's sequence number is within the iHSW and determining that the packet's sequence number is already in the history. In another embodiment, the method further comprises updating the iHSW and the history associated with the linear sequence number space based on the packet's sequence number in response to determining that the packet's sequence number is within the iHSW and determining that the packet's sequence number is not already in the history. Corresponding modes of a receive node are also described. In one mode, a receive node for packet or frame disposal is adapted to receive a packet from a plurality of replicated flows traversing separate paths from a transmitting node to the receive node across a network, where the packet comprises a sequence number. The receive node is further adapted to determine whether the packet comprises an explicit indication that a linear sequence number space is being used, rather than a cyclic sequence number space; whether the packet includes an explicit indication that a sequence generation function has been restarted at the transmitting node; and whether the packet's sequence number is outside an ignore reset range (iRIR) associated with the use of the linear sequence number space.The receiving node is further adapted to accept the packet in response to the determination that the packet contains the explicit indication that the linear sequence number space is being used and that the packet contains the explicit indication that the sequence generation function at the transmitting node has been reset and the packet's sequence number is outside the iRIR. In one embodiment, a receiving node for packet or frame disposal comprises a network interface and a processing circuit associated with the network interface. The processing circuit is configured to cause the receiving node to receive a packet from a plurality of replicated streams traversing separate paths from a transmitting node to the receiving node across a network, where the packet comprises a sequence number.The processing circuit is further configured to have the receiving node determine if the packet includes an explicit indication that a linear sequence number space is being used, rather than a cyclic sequence number space; determine if the packet includes an explicit indication that a sequence number space is being used; determine if the generation function has been reset at the transmitting node; and determine if the packet's sequence number is outside an ignore reset range (iRIR) associated with the use of the linear sequence number space.The processing circuit is further configured to cause the receiving node to accept the packet in response to the determination that the packet includes the explicit indication that the linear sequence number space is being used and that the packet includes the explicit indication that the sequence generation function in the transmitter node has been reset and the packet's sequence number is outside the iRIR. Brief description of the drawings The accompanying drawings incorporated into and forming part of this specification illustrate various aspects of the invention and, together with the description, serve to explain the principles of the invention. Figure 1 illustrates a cloud-based scenario that requires an enhancement of frame replication and scrapping for reliability (FRER) functions. Figure 2 illustrates ranges of the IEEE 802.1CB-2017 cyclic sequence number space used here for packet drop probability analysis. Figure 3 illustrates a system that includes a transmitting node (TX) and a receiving node (RX) that provide FRER according to modalities of the present invention. Figure 4 illustrates an example of a relationship between a new (linear) sequence number space and the original (cyclic) sequence number space used for FRER according to embodiments of the present invention. Figure 5 illustrates a state diagram for a replication function on the TX node according to an embodiment of the present invention. Figure 6 is a flowchart illustrating the operation of the replication function on the TX node according to an embodiment of the present invention. Figure 7 is a flowchart illustrating the operation of the replication function on the TX node according to another embodiment of the present invention. Figure 8 illustrates a state diagram for a deletion function at node RX according to an embodiment of the present invention. Figures 9A and 9B provide a flowchart illustrating the operation of the elimination function at the RX node according to an embodiment of the present invention. Figure 10 illustrates the R-TAG format according to IEEE 802.1CB and in which a SeqResetFlag, an InitSeqFlag and a new sequence number belonging to the linear sequence number space can be encoded according to an embodiment of the present invention. Figures 11, 12, and 13 are schematic block diagrams of a network node. Detailed description Some of the modalities covered in this document will now be described in more detail with reference to the accompanying drawings. However, while other modalities are included within the scope of the subject matter disclosed herein, the subject matter described should not be interpreted as being limited solely to the modalities set forth in this document; rather, these modalities are provided by way of example to convey the scope of the subject matter to those skilled in the art. The modalities described below represent information that enables those skilled in the art to practice the modalities and illustrate the best way to practice them. By reading the following description in light of the accompanying drawings, those skilled in the art will understand the concepts of the invention and recognize applications of these concepts that are not specifically addressed herein. It should be understood that these concepts and applications fall within the scope of the invention. In general, all terms used in this document should be interpreted according to their current meaning in the relevant technical field, unless a different meaning is clearly given and / or implied from the context in which they are used. All references to an element, apparatus, component, means, step, etc., should be clearly interpreted as referring to at least one instance of the element, apparatus, component, means, step, etc., unless explicitly stated otherwise. The steps of any of the methods described in this document do not have to be carried out in the exact order described, unless a step is explicitly described as following or preceding another step and / or it is implied that one step must follow or precede another. Any feature of any of the modalities described in this document may be applied to any other modality, where appropriate.Furthermore, any advantage of any of the modalities can be applied to any other modality, and vice versa. Other objectives, characteristics, and advantages of the attached modalities will become clear from the following description. TSN Node: As used in this document, a time-sensitive network (TSN) node is any network node in a TSN network. Examples of a TSN node include a TSN endpoint and a TSN bridge. Currently, there are certain challenges regarding TSN and deterministic networks (DetNet). The available mechanisms for restoring transparent redundancy functions involve too many unnecessary packet drops and are not cloud-ready. Since the ultimate goal of perfect redundancy is to avoid packet loss as much as possible, unnecessary packet drops due to the operation of a continuous redundancy mechanism must be minimized. Furthermore, moving seamless redundancy components (e.g., Institute of Electrical and Electronics Engineers (IEEE) 802.1CB) to a cloud environment creates availability challenges, so seamless redundancy functions are reset much more frequently than in current industrial hardware environments.Therefore, perfect detection and adaptation to scenarios caused by the re-establishment of continuous redundancy functions (e.g., IEEE 802.1CB) are essential. Furthermore, the history window and timeout mechanism described above require careful design of the related parameters. However, these are not trivial tasks, as conflicting requirements must be met. During the design of the history window, a small window size might be selected, for example, to protect the resources of the deletion node or to protect against spoofed packets (security). Conversely, large window size values are more tolerant of network failures and errors. Finding an optimal window size can be challenging. Similarly, designing a timeout parameter value that is too low can lead to frequent (and unnecessary) restarts of the deletion function. On the other hand, a timeout parameter value that is too large slows down recovery after failure scenarios and causes unwanted network transients.In addition, the use of Frame Duplication and Removal for increased reliability (FRER) for burst streams (non-constant bit rate (CBR)) makes the above design more challenging or even impossible to balance properly. In our previous international publication, PCT patent application No. WO2021005397A1 (hereinafter referred to as application '397'), we describe an explicit notification solution based on a new flag included in the R-TAG, namely SeqResetFlag. This flag is set by the replication function when the sequencing function is reset, allowing deletion functions to easily recognize such events. This solution focuses on the scenario where frames may be unnecessarily lost (with a high probability) when the sequencing function is reset. This solution provides a much better solution than IEEE 802.1CB-2017 when the sequencing function is reset, but it cannot provide lossless recovery in all cases. It may result in some packet loss after the reset event. Certain aspects of the present invention and its embodiments may provide solutions to the aforementioned or other challenges. This document describes systems and methods that provide continuous recovery for continuous redundancy mechanisms based on sequence numbers after a sequence number generation reset event. The modalities of the solution proposed in this document aim to resolve the scenario where the IEEE 802.1CB-2017 functions discard frames unnecessarily due to the restart of the sequence generation function. The aspects of the proposed solution include: 1. an explicit notification of the restart event, and 2. Add a new linear starting sequence number space to the existing IEEE 802.1CB-2017 cyclic sequence number space. Note that the existing IEEE 802.1CB-2017 cyclic sequence number space is referred to in this document as the original sequence number space. Explicit notification of the reset event is based on a flag included in the RTAG, referred to herein as SeqResetFlag. The use of the new linear initial sequence number space (referred to herein as InitSeqNumSpace) is indicated by a new flag included in the R-TAG, also referred to herein as InitSeqFlag. The sequence values of the new number space (InitSeqNumSpace) are also included in the R-TAG. Although the modalities described in this document focus on TSN's FRER, the solutions proposed herein are also applicable to DetNet's PREF or other continuous redundancy mechanisms that rely on sequence numbering or equivalent functionality (e.g., provided by timestamps). The solution modalities described in this document enable the cloudification of redundancy without disruption by providing a seamless restart for sequence number generation (sequence generation function) through enhancements to, for example, the replication and deletion function of IEEE 802.1CB-2017. In some modalities, the following aspects are introduced: (1) a new flag for the explicit indication of the reset of the sequence generation function, and (2) the use of a new linear initial sequence number space for the existing cyclic sequence number space of, for example, IEEE 802.1CB-2017. Again, while the description provided here focuses on FRER as defined in IEEE 802.1CB, the solution described here is applicable to TSN's FRER, DetNet's PREF, or other continuous redundancy mechanisms that rely on sequential numbering or equivalent functionality (e.g., provided by timestamps). Several approaches are proposed in this document that address one or more of the problems described herein. Certain approaches may provide one or more of the following technical advantages. The proposed solution approaches described herein enable seamless redundancy cloudification by providing a seamless restart for sequence number generation (sequence generation function) through enhancements to the IEEE 802.1CB-2017 replication and deletion function. These enhancements ensure a much faster and smoother adaptation to network failure scenarios and further protect against unnecessary packet drops when sequence generation restarts. The primary motivation for these enhancements is to enable cloudification, that is, the cloud-native implementation of FRER / Packet Removal and Replication Function (PREF) functions. The current trend is to move applications to virtualized environments. This trend has also reached applications used in industrial environments, such as edge computing and fog computing. Using FRER / PREF in a cloud-based scenario, where the speakers / listeners (sources / destinations) are moved to the cloud, creates many additional challenges for FRER / PREF functions. FRERs / PREFs are TSN / DetNet functions that belong to the endpoints, so FRER / PREF must operate within the cloud. For example, a FRER / PREF is typically an instance in a controller cluster (ctrlcluster) serving an industrial application in the cloud, as illustrated in Figure 1.In this regard, Figure 1 illustrates a cloud-based scenario that requires an improvement in FRER functions. Typical cloud actions, such as running multiple virtual machines (VMs) / containers / instances, creating a VM / container / instance, moving a VM / container / instance, resetting a role, deleting a VM / container / instance, etc., require FRER functions to adapt seamlessly to the changing environment. Changes in this environment are much more frequent than in current industrial networking scenarios or non-cloud network deployments. High-availability systems require the elimination of any single point of failure. Therefore, FRER / PREF functions (i.e., sequence generation) must be enhanced to support various cloud-specific redundancy solutions. Using IEEE 802.1CB FRER as an example, the impact of resetting the sequence number generation function depends on the actual sequence number used for the last packet sent before the reset (denoted here as SNL) and the sequence number used for the first packet sent after the reset (denoted here as SNR). According to IEEE 802.1CB-2017, SNR is always 0 and SNL is a value in the range {0; ...; GenSeqSpace - 1}. The following ranges can be defined to analyze the impact of the restart for (1) the solution described in IEEE 802.1CB-2017, (2) the solution described in application '397 and (3) the solution described in this document. • A: SNr > SNl+ d • B: SNl+ d >= SNr > SNL • C: SNl>= SNr > SNl- d • D: SNl - d >= SNr > SNL- 2d • E: SNl- 2d >= SNr where d = frerSeqRcvyHistoryLength defined in IEEE 802.1CB-2017. Note that due to the cyclical nature of the original sequence number space, A and E are adjacent ranges, where the boundary between them is defined here for analysis as moduloGenSeqSpace (SNl + ινΐΛ / a / zuzz / ui 11 iy GenSeqSpace / 2). Figure 2 illustrates the ranges of the cyclic sequential number space. The assumption for the analysis is that (i) there are no other events in the network, only the sequence generation function is reset and (ii) the frerSeqRcvyHistoryLength (d) takes the value of 100 for probability calculations. For the evaluation of the solution described in IEEE 802.1CB-2017, the following range is important: • history window (HSW) = { SNL+ d;.. ; SNLd +1}, where d = frerSeqRcvyHistoryLength. Note that HSW is practically a fusion of the B range and the C range used for evaluation. According to IEEE 802.1CB-2017, packets with a sequence number outside the History Window (HSW) are dropped, and packets within the history window are evaluated against the Sequence History to determine if they are duplicates. Therefore, IEEE 802.1CB-2017 operates as follows for each of the AE ranges: A: Packets are discarded until the timer expires or the sequence_number of packets reaches SN1+1. B: No packet drop, SNr accepted, C: Packets are discarded until the sequence_number of packets reaches SN1 + 1, D: Packets are discarded until the packet sequence number reaches SNL+ 1, E: Packets are discarded until the timer expires or the packet sequence number reaches SNL+ 1. In other words, there is a high probability of packet loss (99.8%) in most cases until the timeout triggers the acceptance of the next packet. Note that packet loss means the loss of packets for the application, whose operation may be impaired by the lost packets. For the evaluation of the solution described in Request '397, the following additional range is important: • Reset Ignore Range (RIR) = { SNl + d; . . ; SNl - 2d +1}, where d = frerSeqRcvyHistoryLength Note that RIR is practically the fusion of the B range, C range, and D range used for evaluation. RIR is the range where the Eliminator function ignores the received SeqResetFlag and checks the received packet against the HSW. Note that range D is also part of RIR, since duplicates on slower redundancy paths can have a sequence number below SNL and can be as low as SNL - d. Therefore, the solution described in Request '397 behaves as follows for each of the ranges: A: No packet loss, SNr accepted, B: No packets are dropped, SNR is accepted, C: drop packets until the sequence_number of packets reaches SNl + 1, D: packet drop until packet sequence number reaches SNL+ 1, E: no packet drop, SNr accepted. There is a low probability of packet loss (0.3%) in most cases. When packet loss does occur, it is limited to a maximum of 2d packets after a restart. Some TSN applications can tolerate this after a restart, while others cannot. The solution described here has the following characteristics for each of the ranges: A: No packet loss, SNr accepted, B: no packet loss, SNr accepted, C: no packet drop, SNr accepted, D: no packet loss, SNr accepted, E: no packet drop, SNr accepted. There is no packet loss. Packets sent after the reboot are considered valid immediately. TSN applications are completely unaffected, and the impact of the implementation on FRER nodes is moderate. This document describes systems and methods for improving the delete function in a TSN network using FRER in accordance with IEEE 802.1CB (or similarly in a DetNet using PREFs). Note that the discussion in this document uses IEEE 802.1CB terminology and variable names where applicable, indicated as VariableName. New variables, functions, and parameters follow IEEE 802.1CB naming conventions and are indicated as NewEntityName. From this point forward, the description focuses on the proposed solution modalities for IEEE 802.11 FRER and, as such, uses terms and notations as described in 802.1CB-2017 FRER. However, the solution proposed here is equally applicable to other continuous redundancy mechanisms (e.g., PREF for DetNet) that rely on sequential numbering or equivalent functionality (e.g., provided by timestamps). Figure 3 illustrates a system 300 that includes a transmit (TX) node 302 and a receive (RX) node 304, where the TX node 302 transmits a replicated packet flow to the RX node 304 across a TSN network 306. Note that the TX node 302 and the RX node 304 could be, for example, TSN endpoints, TSN bridges, or any other type of TSN node in this example. Transmitting the replicated packet flow involves replicating a packet flow into multiple member flows to provide a composite flow. The member flows are then transmitted to the RX node 304 across the TSN network 306 via maximally disjoint paths. Note that although nodes 302 and 304 are referred to here as node TX and node RX, respectively, it should be understood that these nodes can transmit and receive flows through the TSN 306 network. As illustrated, node TX 302 includes a FRER function 308 that operates to provide FRER in accordance with, in this example, IEEE 802.1CB. FRER 308 includes a replication function 310 and a deletion function 312 (illustrated as optional in that it is not used for transmitting the stream to node RX 304). Similarly, node RX 304 includes a FRER function 314 that operates to provide FRER in accordance with, in this example, IEEE 802.1CB. FRER 314 includes a replication function 316 (illustrated as optional in that it is not used for receiving the stream from node TX 302) and a deletion function 322. As illustrated, the replication function 310 includes a sequence generation function 320. The sequence generation function 320 generates sequence numbers for packets in the packet stream. The disposal function 318 includes a sequence retrieval function 322. The sequence retrieval function 322 operates on packets passed through the protocol stack to upper-layer functions and uses the sequence number subparameter to decide which packets to pass and which to discard. In some configurations, the TX 302 node is part of a cloud implementation (e.g., part of a Ctrl group as described above with respect to Figure 1). A sequencing function in FRER 308 and 314 provides the sequence_number subparameter for FRER functions. In particular, the Sequencing function has two types of component functions: (1) a Sequence Generation function (e.g., Sequence Generation function 320) that operates on packets passed through the protocol stack to the physical layer and generates a value for the sequence number subparameter, and (2) a Sequence Retrieval function (e.g., Sequence Retrieval function 322) that operates on packets passed through the protocol stack to upper-layer functions and uses the sequence_number subparameter of the received packets to decide which packets to pass and which to discard. The solution methods described in this document use the indicator introduced by application '379 for the R-TAG, namely the SeqResetFlag. This indicator is used as follows: • When transmitting the packet flow, the replication function 310 at TX node 302 does not change the SeqResetFlag value of the packet if a redundancy tag (R-TAG) is already included in the packet header (i.e., in the header of the corresponding Ethernet frame). • The replication function 310 on the TX node 302 sets the SeqResetFlag” (for example, sets the value SeqResetFlag” = 1) for a specified period of time or for a certain number of packets sent when the sequence generation function 320 is restarted. • The replication function 310 on TX node 302 clears the SeqResetFlag” (for example, sets the value of SeqResetFlag” = 0) in all other cases. The modalities of the solution described herein introduce a new additional sequence number space, referred to herein as "InitSeqNumSpace," which is used after the initialization or reset of the sequence generation function 320. The newly introduced InitSeqNumSpace is illustrated by the bolded linear sequence number space in Figure 4. The sequence_number of the subsequent package is stored in a new variable, namely "InitGenSeqNum." When this new number space is exhausted, the sequence generation function 320 begins using the original sequence number space, which is illustrated by the non-bold sequence number space in Figure 4. In other words, Figure 4 illustrates an example of the relationship between the new (linear) sequence number space and the original (cyclic) sequence number space. The solution methods described in this document introduce a new flag in the R-TAG, called InitSeqFlag. This flag is used by replication function 310 on node TX 302 as follows: • For each packet in the Packet Flow transmitted by TX node 302, replication function 310 does not change the InitSeqFlag value of the packet if R-TAG is already included in the packet header. • The replication function 310 establishes the The InitSeqFlag (for example, sets the value of InitSeqFlag = 1) is used when the sequence generation function 320 is initialized or restarted. The InitSeqNumSpace is used by the replication function 310 to generate the sequence number for the packet. • The replication function 310 deletes the InitSeqFlag (for example, sets the value of InitSeqFlag = 0) in all other cases. The InitSeqNumSpace is used as follows: • InitSeqNumSpace is a linear sequence number space that starts with InitSeqStart (e.g., a configurable parameter set to, in the example in Figure 4) 32768 and ends with GenSeqSpace-1 (i.e., 65535 in accordance with IEEE 802.1CB-2017). • InitSeqNumSpace has its own set of variables used to handle the sequence number of packages. Note that the InitSeqNumSpace variable names are derived from the original sequence number variable names by adding an Init prefix, for example, InitGenSeqNum, InitRecovSeqNum, InitSequenceHistory, InitTakeAny, InitRemainingTicks, etc. • The replication function 310 on TX node 302 uses the “InitSeqNumSpace” as follows: o UselnitSeqSpace is a boolean state variable that shows that the new InitSeqNumSpace (value=l) should be used by the sequence generation function 320 to generate the sequence number for the next packet. Each time the sequence generation function 320 is initialized or reset, Uselni tSeqSpace (e.g., value = 1) is set to show that InitSeqNumSpace should be used to generate the sequence_number for sent packets. o All packets sent with sequence number from InitSeqNumSpace have the InitSeqFlag set in their R-Tag (e.g., value=l). "Ini tGenSeqNum" takes the value of "Ini tSeqStart" each time the sequence generation function 320 is initialized or reset, and is incremented by 1 when a packet is sent. When "InitGenSeqNum" increments and becomes greater than its maximum value, "UselnitSeqSpace" is cleared (for example, value = 0) to show that "InitSeqNumSpace" cannot be used. The Sequence Generation 320 function then uses the original sequence number space for the next packet. If UselnitSeqSpace” is clear (value = 0), the sequence generation function 320 uses GenSeqNum to generate the sequence number for subsequent packets (i.e., the original sequence number space is used). The modalities of the solution defined here also define a new procedure for the 318 drop function on the RX node 304. It uses the new set of variables to handle packets containing sequence numbers from the InitSeqNumSpace described above. The history window size is the same for both sequence number spaces. The 318 drop function operates as follows upon receiving a packet from one of the member flows of the flow transmitted by the TX node 302: • If the InitSeqFlag flag is set on the received packet (for example, value = 1), the sequence retrieval function 322 uses the new variables related to the linear sequence number space (InitSeqNumSpace) as follows: The sequence retrieval function 322 sets InitRecovSeqNum to the sequence_number of the packet and clears InitSequenceHistory if SeqResetFlag is set and the packet's sequence number is outside the iRIR range { InitRecovSeqNum + frerSeqRcvyHistoryLength; ... ; InitRecovSeqNum - 2 x frerSeqRcvyHistoryLength +1}. Note that the range must be calculated according to the boundaries of the new linear sequence number space. The Sequence Retrieval function 322 ignores the SeqResetFlag if the packet's sequence_number is within the iRIR range. If the sequence_number is outside the iHSW range, the packet is discarded. If it is within iHSW, then it is checked whether the packet has already been received. The sequence recovery function 322 does not change the SeqResetFlag” and InitSeqFlag values of the packet. The sequence retrieval function 322 sets the TakeAny variable of the original sequence number space if the sequence number of the packet is in the following range { GenSeqSpace -fr rerSeqRcvyHistoryLength; ... ; ινΐΛ / a / zuzz / ui 11 iy GenSeqSpace - 2 x frerSeqRcvyHistoryLength}. Note that this range shows that the new initial sequence number space soon runs out, i.e., it approaches the original sequence number space. • If the InitSeqFlag flag in the received packet is clean (value = 0), the sequence recovery function uses variables related to the original sequence number space. The Sequence Recall function 322 sets RecovSeqNum to the sequence_number value of the packet and clears the SequenceHistory if SeqResetFlag is set and the sequence_number of the packet is outside the RIR range { RecovSeqNum + frerSeqRcvyHistoryLength; ... ; RecovSeqNum - 2 x frerSeqRcvyHistoryLength + 1} . Note that the range must be calculated according to the modulo rules of the original sequence number space. The Sequence Retrieval function 322 ignores the SeqResetFlag if the packet's sequence_number is within the RIR range. If the sequence_number is outside the HSW range, the packet is discarded. If it is within the HSW range, check whether the packet has already been received. The Sequence Retrieval function 322 does not change the SeqResetFlag value of the packet. Note that the sequence retrieval timeout mechanism, to accept the next packet regardless of the value of its sequence number subparameter (see the TakeAny variable in 802.1CB-2017 for the original sequence number space), is not changed and both sequence number spaces are not applied. An implementation can use two variables to enable / disable the use of the reset flag (UsingResetFlag = 1 / 0 (enable / disable)) and the new initial sequence number space (UsinglnitSpace = 1 / 0 (enable / disable)). Figure 5 illustrates a state diagram for replication function 310 on TX node 302 according to one embodiment of the present invention. As illustrated, when in a first state where replication function 310 uses the original sequence number space and UsingInitSpace=False, replication function 310 uses the original sequence number space. Upon resetting with the initial sequence number space disabled, replication function 310 sets SeqGenNum=0 and UselnitSeqNum=False and remains in the first state. However, upon resetting with the initial sequence number space enabled, replication function 310 sets InitSeqGenNum = InitSeqStart and UselnitSeqNum = True and transitions to a second state where replication function 310 uses the initial sequence number space.While in the second state, upon resetting with the initial sequence number space enabled, replication function 310 sets InitSeqGenNum = InitSeqStart and UselnitSeqNum = True and remains in the second state where replication function 310 uses the initial sequence number space. While in the second state, upon exhaustion of the initial sequence number space, the replication function sets SeqGenNum = 0 and UselnitSeqNum = False and transitions to the first state where the replication function uses the original sequence number space. While in the second state, upon disabling the initial sequence number space, the replication function sets SeqGenNum = 0 and UselnitSeqNum = False and transitions to the first state where the replication function uses the original sequence number space. Figure 6 is a flowchart illustrating the operation of replication function 310 at TX node 302 according to one embodiment of the present invention. Optional steps are represented by dashed lines. As illustrated, replication function 310 receives a packet (e.g., from one or more higher layers in the protocol stack) for forwarding (step 600). Replication function 310 determines whether the R-tag is present or set in the packet (step 602). If so (602, YES), the packet with the set R-tag is ready to be forwarded and thus provided to a lower layer in the protocol stack for transmission (step 604). For example, multiple copies of the packet can be generated and sent via different (e.g., separate) paths across the TSN network 306.If the R tag is not present or configured in the packet (step 602, NO), replication function 310 determines whether Use of Reset Flag is enabled (step 606). If so, replication function 310 determines whether sequencing function 320 has recently restarted (step 608). This is true if a restart occurred within a predefined or preconfigured amount of time before receiving the packet (i.e., the current time) or within a predefined or preconfigured number of packets before receiving the packet. If sequencing function 320 has recently restarted (step 608, YES), replication function 310 enables the SeqResetFlag (for example, by setting it to a value of 1) (step 610). Otherwise, replication function 310 disables the SeqResetFlag (for example, sets it to a value of 0) (step 612). Whether you proceed from step 610 or step 612, replication function 310 determines whether the use of InitSeqNumSpace is enabled (step 614). If not (614, NO), the process proceeds to step 632, which is described below. Otherwise (step 614, YES), replication function 310 determines whether UselnitSeqNum is enabled (for example, set to True) (step 616). If so (step 616, YES), replication function 310 enables InitSeqFlag (for example, sets it to 1) (step 618), adds a sequence number (seq_num) equal to InitGenSeqNum to the packet (step 620), increments InitGenSeqNum (step 622), and determines whether the InitSeqNumSpace is exhausted (step 624). If not (step 624, NO), the process proceeds to step 628, which is described below. Otherwise (step 624, YES), replication function 310 sets GenSeqNum equal to 0 and sets UselnitSeqNum to False (step 626).Then, whether you proceed from the NO branch of step 624 or step 626, replication function 310 adds an R tag to the packet (step 628) and the procedure advances to step 604 where the packet is ready to be sent. Returning to step 616, if UselnitSeqNum is not set to TRUE, replication function 310 disables initSeqFlag (for example, sets it to 0) (step 630), adds a sequence number (seq_num) equal to GenSeqNum to the packet (step 632), and increments GenSeqSum (step 634). The procedure then proceeds to step 628, where an R tag is added to the packet, and the packet is then ready for transmission. Figure 7 is a flowchart illustrating the operation of replication function 310 at node TX 302 according to another embodiment of the present invention. This embodiment is similar to that in Figure 6. As illustrated, replication function 310 determines that sequence generation function 310 at node TX 302 has been restarted (step 700). In response to the determination that sequence generation function 310 at node TX 302 has been restarted, replication function 310 transmits a first plurality of packets in a packet stream, wherein: (a) each of the first plurality of packets comprises a respective sequence number from a linear sequence number space, and (b) at least one of the first packets sent after the rest further comprises an explicit indicator of the restart (step 702).Replication function 310 determines that the end of the linear sequence number space has been reached or that the use of the linear sequence number space has been otherwise disabled (step 704). In response to the determination that the end of the linear sequence number space has been reached or that the use of the linear sequence number space has been disabled, replication function 310 transmits a second plurality of packets in the packet stream, wherein (a) each of the second plurality of packets comprises a respective sequence number from a cyclic sequence number space (step 706). In one embodiment, each of the first plurality of packets further comprises an explicit indication that the linear sequence number space is being used. In one mode, the network is a TSN network. Furthermore, in one mode, the method further comprises resetting the 310 sequence generation function, wherein resetting the 310 sequence generation function comprises resetting a sequence number history, a history window (for example, resetting RecovSeqNum, which is the midpoint of the history window), or both the sequence number history and the history window.In one mode, the steps of determining (700) that the sequence generation function 310 on TX node 302 has been restarted, transmitting (702) the first plurality of packets in the Packet Stream, determining (704) that the end of the linear sequence number space has been reached or that the use of the linear sequence number space has been otherwise disabled, and transmitting (706) the second plurality of packets in the Packet Stream are carried out by the FRER function 308 of TX node 302 and, more specifically, by the replication function 310 of TX node 302. In another mode, the network is a DetNet network. ινΐΛ / a / zuzz / ui 11 iy Additionally, in one mode, the steps of determining (700) that the sequence generation function 310 on node TX 302 has been restarted, transmitting (702) the first plurality of packets in the Packet Flow, determining (704) that the end of the linear sequence number space has been reached or that the use of the linear sequence number space has been otherwise disabled, and transmitting (706) the second plurality of packets in the Packet Flow are carried out by a PRER from node TX 302. Figure 8 illustrates a state diagram for an example mode of the 318 Drop Function on RX node 304. As illustrated, when in the first state, the 318 Drop Function uses the original sequence number space. When in the first packet state and a packet is received with InitSeqNumFlag = 0, or a packet is received and the initial sequence number space is disabled, the 318 Drop Function remains in the first state. However, when in the first state and a packet is received with InitSeqNumFlag = 1 and the initial sequence number space is enabled, the 318 Drop Function transitions to a second state where it uses the initial sequence number space. When in the second state and a packet is received with InitSeqNumFlag = 1 and the initial sequence number space is enabled, the 318 Drop Function uses the initial sequence number space. 318 remains in the second state. When it is in the second state and a packet is received with InitSeqNumFlag = 0 or a packet is received and the starting sequence number space is disabled, the delete function 318 transitions to the first state. Figures 9A and 9B provide a flowchart illustrating the operation of the elimination function 318 at the RX node 304 according to an embodiment of the present invention. The optional steps are represented by dashed lines. As illustrated, the drop function 318 receives a packet (e.g., from a lower layer or layers in the protocol stack) for processing (step 900). The packet has a seq num value. The drop function 318 determines whether Use Reset Flag is enabled (step 902). If not (step 902, NO), the drop function 318 determines whether the packet's sequence number is in the History Window (HSW) (step 904). If not (step 904, NO), the drop function 318 determines whether TakeAny is enabled (step 904). If not (step 906, NO), the drop function 318 discards the packet (step 908). Otherwise, if TakeAny is enabled (step 906, YES), the procedure advances to step 912, which is described below.Returning to step 904, if the packet sequence number is in the HSW (step 904, YES), the deletion function 318 determines whether the packet sequence number is already in the history (step 910). If so (step 910, YES), the deletion function 318 discards the packet (step 908). Otherwise, if the packet sequence number is not already in the history (step 910, NO), the procedure proceeds to step 912, which is described below. Returning to step 902, if UsingResetFlag is enabled (step 902, YES), the dropout function 318 determines whether the use of InitSeqNumSpace is enabled (step 920). If not (step 920, NO), the dropout function 318 determines whether SeqResetFlag is enabled and the received packet sequence number is outside the RIR (step 922). If not (step 922, NO), the procedure proceeds to step 904. Otherwise (step 922, YES), the procedure proceeds to step 912. Whether it comes from the YES branch of step 906, the NO branch of step 910, or the YES branch of step 922, the delete function 318 then updates the RecovSeqNum (step 912), updates the Sequence History (step 914), deletes TakeAny (step 916), and accepts the package (step 918). Returning to step 920, if the use of InitSeqNumSpace is enabled (step 920, YES), the delete function 318 determines whether InitSeqFlag is enabled (step 924). If not (step 924, NO), the process proceeds to step 922. Otherwise (step 924, YES), the delete function 318 determines whether SeqResetFlag is enabled and the sequence number of the received packet is outside iRIR (step 926). If so (step 926, YES), the procedure proceeds to step 932, which is described below. Otherwise (step 926, NO), the delete function 318 determines whether the sequence number of the packet is in iHSW (step 928). If so (step 928, YES), the deletion function 318 determines if the packet is already in the history (step 930). If not (step 930), the procedure advances to step 932. Otherwise (step 932, NO), the deletion function 318 discards the packet (step 944).Returning to step 928, if the packet sequence number is not in iHSW (step 928, NO), the discard function 318 determines whether InitTakeAny is enabled (step 942). If not (step 942, NO), the discard function 318 discards the packet (step 944). Otherwise (step 942, YES), the process proceeds to step 932. Whether it comes from the YES branch of step 926, the NO branch of step 930, or the YES branch of step 942, delete function 318 updates InitRecovSeqNum (step 932), updates InitSequenceHistory (step 934), and deletes InitTakeAny (step 936). Delete function 318 determines if the sequence number is in STAR (i.e., the range {GenSeqSpace - d;... ; GenSeqSpace - 2 xd}) (step 938). If so (step 938, YES), delete function 318 sets TakeAny to TRUE (step 940), and the package is accepted (step 918). Otherwise (step 938, NO), the deletion function 318 accepts the package (step 918). One possible option for encoding the SeqResetFlag, the InitSeqFlag, and the new sequence number belonging to the linear sequence number space in the R-TAG is described below: • in the reserved field (2nd and 3rd bytes of the R-TAG), and / or • in the Sequence Number field (4th and 5th bytes of the R-TAG). In Figure 10, which illustrates the R-TAG format (Figure 7-4 in IEEE 802.1CB): The SeqResetFlag and InitSeqFlag can be encoded in the R-TAG using two bits of the reserved field, one bit for each flag. According to 802.1CB-2017: This field will be transmitted with zeros only and will be ignored upon receipt. The new sequence number belonging to the linear sequence number space can be encoded in the Sequence Number field of the R-TAG. InitSeqFlag indicates how to interpret the Sequence Number field. Other encoding methods are also possible. For example, SeqResetFlag can be encoded in the R-TAG using the reserved fields with 1 bit, and the new sequence number belonging to the linear sequence number space can be encoded in the remaining 15 bits of the reserved fields. Such encoding also includes the sequence number space information, so it is not necessary to explicitly encode InitSeqFlag. Figure 11 is a schematic block diagram of a network node 1100 according to some embodiments of the present invention. The network node 1100 may be either the TX node 302 or the RX node 304 described above. As illustrated, the network node 1100 includes one or more processors 1104 (for example, central processing units (CPUs), application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), and / or the like), memory 1106, and a network interface 1108. The one or more processors 1104 are also referred to herein as processing circuits. The one or more processors 1104 operate to provide one or more functions of the network node 1100 as described herein (for example, one or more functions of the TX node 302 or one or more functions of the RX node 304, as described herein). In some modalities, the functions are implemented in software that is stored, for example, in memory 1106 and executed by one or more processors 1104. Figure 12 is a schematic block diagram illustrating a virtualized embodiment of the 1100 network node according to certain embodiments of the present invention. This discussion is equally applicable to other types of network nodes. Furthermore, other types of network nodes may have similar virtualized architectures. Again, optional features are represented by dashed boxes. As used herein, a virtualized network node is an implementation of network node 1100 in which at least a portion of the functionality of network node 1100 is implemented as virtual component(s) (for example, through virtual machine(s)) running on a physical processing node(s) in a network(s). As illustrated in this example, network node 1100 includes one or more processing nodes 1200 coupled to or included as part of a network(s) 1202. Each processing node 1200 includes one or more processors 1204 (for example, CPUs, ASICs, FPGAs, and / or the like), memory 1206, and a network interface 1208.In this example, the 1210 functions of network node 1100 described herein (for example, one or more functions of TX node 302 or one or more functions of RX node 304, as described herein) are implemented on one of the 1200 processing nodes or distributed among two or more of the 1200 processing nodes in any desired manner. In some particular configurations, some or all of the 1210 functions of network node 1100 described herein are implemented as virtual components executed by one or more virtual machines deployed in a virtual environment hosted by the 1200 processing node(s). In some embodiments, a computer program that includes instructions that, when executed by at least one processor, cause the at least one processor to perform the functionality of network node 1100 or a node (for example, a processing node 1200) that implements one or more of the functions 1210 of network node 1100 in a virtual environment according to any of the embodiments described herein. In some embodiments, a carrier comprising the aforementioned computer program product is provided. The carrier is an electronic signal, an optical signal, a radio signal, or a computer-readable storage medium (for example, a non-transient computer-readable medium such as memory). Figure 13 is a schematic block diagram of network node 1100 according to some other embodiments of the present invention. Network node 1100 includes one or more modules 1300, each of which is implemented in software. The modules 1300 provide the functionality of network node 1100 304 described herein (for example, one or more functions of node TX 302 or one or more functions of node RX ινΐΛ / a / zuzz / ui 11 iy 04, as described herein). This discussion is equally applicable to the processing node 1200 in Figure 12 where the 1300 modules can be implemented on one of the processing nodes 1200 or distributed among several processing nodes 1200. Any appropriate step, method, feature, function, or benefit described herein may be carried out through one or more functional units or modules of one or more virtual appliances. Each virtual appliance may comprise several of these functional units. These functional units may be implemented by processing circuits, which may include one or more microprocessors or microcontrollers, as well as other digital hardware, which may include digital signal processors (DSPs), special-purpose digital logic, and the like. The processing circuit may be configured to execute program code stored in memory, which may include one or more types of memory, such as read-only memory (ROM), random-access memory (RAM), cache memory, flash memory devices, optical storage devices, and so on.The program code stored in memory includes program instructions for executing one or more telecommunications and / or data communication protocols, as well as instructions for carrying out one or more of the techniques described herein. In some implementations, the processing circuitry can be used to enable the respective functional unit to perform the corresponding functions according to one or more embodiments of the present invention. Although the processes in the figures may show a particular order of operations carried out by certain modalities of the present invention, it should be understood that such order is exemplary (for example, alternative modalities may carry out the operations in a different order, combine certain operations, overlap certain operations, etc.). Some example embodiments of the present invention are as follows: Mode 1: A method carried out by a transmission node (302) for a network for the replication of packets or frames, wherein the method comprises one or more of the following steps: • determine (700) that a sequence generation function (310) has been restarted at the transmission node (302); • in response to the determination (700) that the sequence generation function (310) at the transmitting node (302) has been reset, transmit (702) a first plurality of packets in a Packet Stream, wherein: (a) each of the first plurality of packets comprises a respective sequence number from a linear sequence number space and (b) at least one first packet from among the first plurality of packets that was sent after the rest further comprises an explicit indicator of the reset; • determine (704) that an end of the linear sequence number space has been reached or that the use of the linear sequence number space has been otherwise disabled; and • in response to the determination (704) that the end of the linear sequence number space has been reached or that the use of the linear sequence number space has been otherwise disabled, transmit (706) a second plurality of packets in the Packet Stream, wherein (a) each of the second plurality of packets comprises a respective sequence number from a cyclic sequence number space. Mode 2: The method of mode 1 wherein each of the first plurality of packets further comprises an explicit indication that the linear sequence number space is being used. Mode 3: Mode 1 or 2 of the method where the network is a time-sensitive network connection network, TSN. Mode 4: The method of any of modes 1 to 3 further comprising resetting the sequence generation function (310), wherein resetting the sequence generation function (310) comprises resetting a sequence number history, a history window, or both the sequence number history and the history window Mode 5: The method of mode 3 wherein the steps to determine (700) that the sequence generation function (310) at the transmitting node (302) has been restarted, transmit (702) the first plurality of packets in the Packet Flow, determine (704) that the end of the linear sequence number space has been reached or that the use of the linear sequence number space has been otherwise disabled, and transmit (706) the second plurality of packets in the Packet Flow are carried out by a Reliability Frame Replication and Elimination Function, FRER, (308) of the transmitting node (302). Mode 6: Mode 1 or 2 of the method where the network is a deterministic network of networks, DetNet. Mode 7: The method of mode 6 wherein the steps of determining (700) that the sequence generation function (310) on the transmitting node (302) has been restarted, transmitting (702) the first plurality of packets in the Packet Flow, determining (704) that the end of the linear sequence number space has been reached or that the use of the linear sequence number space has been otherwise disabled, and transmitting (706) the second plurality of packets in the Packet Flow are carried out by a packet replication and deletion function, PRER, of the transmitting node (302). Mode 8: A method carried out by a receiving node (304) for a network for the elimination of packets or frames, wherein the method comprises one or more of the following steps: • receive (900) a packet from one of a plurality of replicated streams traversing different paths from a transmitting node (302) to the receiving node (304) across the network, wherein the packet comprises a sequence number; • determine (924, YES) that the packet comprises an explicit indication that a linear sequence number space is being used; • determine (926) whether the packet comprises an explicit indication that a sequence generation function (310) has been restarted at the transmitting node (302); • determine (926) if the packet sequence number is outside an ignore reset range, iRIR, associated with the use of linear sequence number space; inaLa / a / zuzz / ui 11 iy • in response to the determination that the packet includes the explicit indication that the linear sequence number space is being used (924, YES) and that the packet includes the explicit indication that the sequence generation function (310) at the transmitting node (302) has been reset and the packet's sequence number is outside the iRIR (926, YES), accept (918) the packet. Mode 9: The method of mode 8 further comprising, in response to the determination that the packet comprises the explicit indication that the linear sequence number space is being used (924, YES) and that the packet comprises the explicit indication that the sequence generation function (310) at the transmitting node (302) has been reset and the packet's sequence number is outside the iRIR (926, YES), updating (932; 934) the iHSW and history associated with the linear sequence number space based on the packet's sequence number. Mode 10: the method of mode 8 further comprising, in determining that the packet comprises the explicit indication that the linear sequence number space is being used (924, YES) and that the packet does not comprise the explicit indication that the sequence generation function (310) at the transmitting node (302) has been reset or the packet's sequence number is not outside the iRIR (926, NO): • determine (928) if the packet sequence number is within a historical window, iHSW, associated with the use of linear sequence number space; • determine (930) if the packet's sequence number is already in a history associated with the use of the linear sequence number space comprising sequence numbers that have already been received; and • in response to determining (928, YES) that the packet's sequence number is within the iHSW and determining (930, NO) that the packet's sequence number is not yet in the history, accept (918) the packet. Mode 11: The method of mode 10 further comprising, in response to determining (928, YES) that the packet sequence number is within the iHSW and determining (930, YES) that the packet sequence number is already in the history, discarding (918) the packet. Mode 12: The method of mode 10 further comprising, in response to determining (928, YES) that the packet sequence number is within the iHSW and determining (930, NO) that the packet sequence number is not yet in the history, updating (932; 934) the iHSW and the history associated with the linear sequence number space based on the packet sequence number. Mode 13: A method carried out by a transmission node (302) for a network for the replication of packets or frames, wherein the method comprises one or more of the following steps: • obtain (600) a package that will be sent; • determine (602, NO) that the packet has not yet been replicated by an earlier network node in the network (e.g., determine that R-Tag is not already present in the packet); • determine (608) if a sequence generation function (310) has been restarted on the transmit node (302); • enable (610) an explicit indication in the packet indicating that the sequence generation function (310) has been restarted in response to the determination (608) that the sequence generation function (310) at the transmitting node (302) has been restarted; otherwise, disable (612) the explicit indication in the packet; • determine (616, YES) that a linear sequence number space will be used; • in response to the determination (616, YES) that the linear sequence number space will be used: or enable (618) an explicit indication in the packet indicating that the linear sequence number space is being used; and add (620) a sequence number from the linear sequence number space to the packet; • add (628) a label to the packet indicating that it has been replicated; · provide (604) the package for replication and transmission. Mode 14: A network node (302; 304; 1100) adapted to carry out the method of any of modes 1 to 13. Skilled practitioners will recognize improvements and modifications to the embodiments of the present invention. All such improvements and modifications are considered to be within the scope of the concepts described herein.
Claims
1. A method carried out by a transmission node (302) for the replication of packets or frames, wherein the method comprises: determining (700) that a sequence generation function (310) has been restarted at the transmission node (302); in response to the determination (700) that the sequence generation function (310) at the transmission node (302) has been restarted, transmitting (702) a first plurality of packets in a packet stream through at least two separate paths through a network, wherein: (a) each of the first plurality of packets comprises a respective sequence number from a linear sequence number space and (b) at least one first packet from among the first plurality of packets that was sent after the restart further comprises an explicit indicator of the restart;determine (704) that the end of the linear sequence number space has been reached or that the use of the linear sequence number space has been otherwise disabled; and in response to the determination (704) that the end of the linear sequence number space has been reached or that the use of the linear sequence number space has been otherwise disabled, transmit (706) a second plurality of packets in the packet flow through at least two separate paths through the network, wherein (a) each of the second plurality of packets comprises a respective sequence number from a cyclic sequence number space.
2. The method according to claim 1, wherein each of the first plurality of packages further comprises an explicit indication that the linear sequence number space is being used.
3. The method according to claim 1 or 2, wherein the network is a time-sensitive network connection network, TSN.
4. The method according to any of claims 1 to 3, further comprising resetting the sequence generation function (310), wherein resetting the sequence generation function (310) comprises resetting a sequence number history, a history window, or both the sequence number history and the history window.
5. The method according to claim 3 or 4, wherein the steps of determining (700) that the sequence generation function (310) in the transmitting node (302) has been restarted, transmitting (702) the first plurality of packets in the packet flow, determining (704) that the end of the linear sequence number space has been reached or that the use of the linear sequence number space has been otherwise disabled, and transmitting (706) the second plurality of packets in the packet flow are carried out by a frame replication and discarding function for reliability, FRER, (308) of the transmitting node (302).
6. The method according to claim 1 or 2, wherein the network is a deterministic network of networks, DetNet.
7. The method according to claim 6, wherein the steps of determining (700) that the sequence generation function (310) in the transmitting node (302) has been restarted, transmitting (702) the first plurality of packets in the packet flow, determining (704) that the end of the linear sequence number space has been reached or that the use of the linear sequence number space has been otherwise disabled, and transmitting (706) the second plurality of packets in the packet flow are carried out by a packet replication and deletion function, PRER, of the transmitting node (302).
8. A transmission node (302) for replication of frames or packets, the transmission node (302) adapted to: determine (700) that a sequence generation function (310) in the transmission node (302) has been restarted; in response to the determination (700) that the sequence generation function (310) in the transmission node (302) has been restarted, transmit (702) a first plurality of packets in a packet flow through at least two separate paths through a network, wherein: (a) each of the first plurality of packets comprises a respective sequence number from a linear sequence number space and (b) at least one first packet from among the first plurality of packets that was sent after the restart further comprises an explicit indicator of the restart;determine (704) that the end of the linear sequence number space has been reached or that the use of the linear sequence number space has been otherwise disabled; and in response to the determination (704) that the end of the linear sequence number space has been reached or that the use of the linear sequence number space has been otherwise disabled, transmit (706) a second plurality of packets in the packet flow through at least two separate paths through the network, wherein (a) each of the second plurality of packets comprises a respective sequence number from a cyclic sequence number space.
9. The transmission node (302) according to claim 8, wherein the transmission node (302) is further adapted to carry out the method according to any of claims 2 to 7.
10. A transmitting node (302; 1100) for packet or frame replication, wherein the transmitting node (302; 1100) comprises: a network interface (1108; 1208); and processing circuitry (1104; 1204) associated with the network interface (1108; 1208), the processing circuitry (1104; 1204) being configured to cause the transmitting node (302; 1100): to determine (700) that a sequencing function (310) has been restarted at the transmitting node (302; 1100); in response to the determination (700) that the sequencing function (310) at the transmitting node (302;1100) has been restarted, transmit (702) a first plurality of packets in a packet stream through at least two separate paths through a network, wherein: (a) each of the first plurality of packets comprises a respective sequence number from a linear sequence number space and (b) at least one first packet from among the first plurality of packets that was sent after the restart further comprises an explicit number indicating the restart; determine (704) that the end of the linear sequence number space has been reached or that the use of the linear sequence number space has been otherwise disabled;and in response to the determination (704) that the end of the linear sequence number space has been reached or that the use of the linear sequence number space has been otherwise disabled, transmit (706) a second plurality of packets in the packet flow through at least two separate paths through the network, wherein (a) each of the second plurality of packets comprises a respective sequence number from a cyclic sequence number space.; 11. The transmission node (302; 1100) according to claim 10, wherein the processing circuit (1104; 1204) is further configured to cause the transmission node (302; 1100) to carry out the method according to any of claims 2 to 7.
12. A method carried out by a transmission node (302) for the replication of packets or frames, wherein the method comprises: • obtaining (600) a packet to be sent; • determining (602, NO) that the packet does not include a label indicating that the packet has already been replicated; • in response to the determination (602, NO) that the packet does not include the label indicating that the packet has already been replicated: either determine (616, YES) that a linear sequence number space is to be used; or in response to the determination (616, YES) that the linear sequence number space is to be used: enable (618) an explicit indication in the packet indicating that the linear sequence number space is being used; and add (620) a sequence number from the linear sequence number space to the packet; or add (628) a label to the packet indicating that the packet has been replicated; and • providing (604) the packet for replication and transmission.
13. The method according to claim 12, further comprising, in response to the determination (602, NO) that the packet does not include a label indicating that the packet has already been replicated: determining (608) that a sequence generation function (310) has been restarted at the transmitting node (302); and enabling (610) an explicit indication in the packet indicating that the sequence generation function (310) has been restarted in response to the determination (608) that the sequence generation function (310) at the transmitting node (302) has been restarted, otherwise disabling (612) the explicit indication in the packet indicating that the sequence generation function (310) has been restarted.
14. The method according to claim 12 or 13, further comprising, in response to the determination (616, YES) that the linear sequence number space is to be used, incrementing (622) the sequence number of the linear sequence number space.
15. The method according to claim 14, further comprising repeating the method according to claim 14 for a plurality of additional packets until the linear sequence number space is exhausted or the use of the linear sequence number space is disabled.
16. The method according to claim 15, further comprising, after the linear sequence number space is exhausted or after the use of the linear sequence number space is disabled: • obtaining (600) another packet to be sent; • determining (602, NOT) that the additional packet does not comprise a label indicating that the additional packet has already been replicated; • in response to the determination (602, NOT) that the additional packet does not include a label indicating that the additional packet has already been replicated: or determining (616, NOT) that a cyclic sequence number space is to be used, instead of a linear sequence number space; or in response to the determination (616, NOT) that the cyclic sequence number space will be used: disabling (630) an explicit indication in the additional packet that the linear sequence number space is being used;and add (632) a sequence number from the cyclic sequence number space to the add-on packet; add (628) the label to the add-on packet indicating that the add-on packet has been replicated; and provide (604) the add-on packet for replication and transmission.
17. The method according to claim 16, further comprising, in response to the determination (602, NO) that the add-on packet does not comprise a label indicating that the add-on packet has already been replicated: determining (608) whether the sequence generation function (310) at the transmitting node (302) has been restarted; and enabling (610) an explicit indication in the add-on packet indicating that the sequence generation function (310) has been restarted in response to the determination (608) that the sequence generation function (310) at the transmitting node (302) has been restarted, otherwise disabling (612) the explicit indication in the add-on packet indicating that the sequence generation function (310) has been restarted.
18. A transmitting node (302) for replication of frames or packets, the transmitting node (302) adapted to: • obtain (600) a packet to be sent; • determine (602, NO) that the packet does not comprise the label indicating that the packet has already been replicated; • in response to the determination (602, NO) that the packet does not include a label indicating that the packet has already been replicated: either determine (616, YES) that a linear sequence number space will be used; or in response to the determination (616, YES) that the linear sequence number space will be used: enable (618) an explicit indication in the packet indicating that the linear sequence number space is being used; and add (620) a sequence number from the linear sequence number space to the packet; or add (628) the label to the packet indicating that the packet has been replicated; and • provide (604) the package for replication and transmission.
19. The transmission node (302) according to claim 18, wherein the transmission node (302) is further adapted to carry out the method according to any of claims 13 to 17.
20. A transmitting node (302; 1100) for packet or frame replication, wherein the transmitting node (302; 1100) comprises: • a network interface (1108; 1208); and • processing circuits (1104; 1204) associated with the network interface (1108; 1208), the processing circuits (1104; 1204) being configured to cause the transmitting node (302; 1100): either obtain (600) a packet to be sent; or determine (602, NO) that the packet does not comprise a tag indicating that the packet has already been replicated; or in response to the determination (602, NO) that the packet does not include the tag indicating that the packet has already been replicated: determine (616, YES) that a linear sequence number space is to be used; In response to the determination (616, YES) that the linear sequence number space will be used: • enable (618) an explicit indication in the package that the linear sequence number space is being used;and • add (620) a sequence number from the linear sequence number space to the packet; and add (628) the label to the packet indicating that the packet has been replicated; I provide (604) the packet for replication and transmission.; 21. The transmission node (302; 1100) according to claim 20, wherein the processing circuit (1104; 1204) is further configured to cause the transmission node (302; 1100) to carry out the method according to any of claims 13 to 17.
22. A method carried out by a receiving node (304) for packet or frame disposal, wherein the method comprises: receiving (900) a packet from one of a plurality of replicated flows traversing separate paths from a transmitting node (302) to the receiving node (304) across a network, wherein the packet comprises a sequence number; determining (924, YES) that the packet comprises an explicit indication that a linear sequence number space is being used, rather than a cyclic sequence number space; determining (926) whether the packet comprises an explicit indication that a sequence generation function (310) has been reset at the transmitting node (302); determining (926) whether the sequence number of the packet is outside an ignore reset range, iRIR, associated with the use of the linear sequence number space;and in response to the determination that the packet comprises the explicit indication that the linear sequence number space is being used (924, YES) and that the packet comprises the explicit indication that the sequence generation function (310) at the transmitting node (302) has been reset and the packet's sequence number is outside the iRIR (926, YES), accept (918) the packet.; 23. The method according to claim 22, further comprising, in response to the determination that the packet comprises the explicit indication that the linear sequence number space is being used (924, YES) and that the packet comprises the explicit indication that the sequence generation function (310) at the transmitting node (302) has been reset and the packet's sequence number is outside the iRIR (926, YES), updating (932; 934) a history window and a history associated with the linear sequence number space based on the packet's sequence number.
24. The method according to claim 22, further comprising, in determining that the packet comprises the explicit indication that the linear sequence number space is being used (924, YES) and that the packet does not comprise the explicit indication that the sequence generation function (310) at the transmitting node (302) has been reset or the packet's sequence number is not outside the iRIR (926, NO): determining (928) whether the packet's sequence number is within a history window, iHSW, associated with the use of the linear sequence number space; determining (930) whether the packet's sequence number is already in a history associated with the use of the linear sequence number space comprising sequence numbers from the linear sequence number space that have already been received;and in response to determining (928, YES) that the packet sequence number is within the iHSW and determining (930, NO) that the packet sequence number is not yet in the history, accept (918) the packet.; 25. The method according to claim 24, further comprising, in response to determining (928, YES) that the packet sequence number is within the iHSW and determining (930, YES) that the packet sequence number is already in the history, discarding (918) the packet.
26. The method according to claim 24, further comprising, in response to determining (928, YES) that the packet sequence number is within the iHSW and determining (930, NO) that the packet sequence number is not yet in the history, updating (932; 934) the iHSW and the history associated with the linear sequence number space based on the packet sequence number.
27. A receive node (304) for packet or frame disposal, the receive node (304) adapted to: receive (900) a packet from one of a plurality of replicated flows traversing separate paths from a transmitting node (302) to the receive node (304) across a network, wherein the packet comprises a sequence number; determine (924, YES) that the packet comprises an explicit indication that a linear sequence number space is being used, rather than a cyclic sequence number space; determine (926) whether the packet comprises an explicit indication that a sequence generation function (310) has been reset at the transmitting node (302); determine (926) whether the sequence number of the packet is outside an ignore reset range, iRIR, associated with the use of the linear sequence number space;and in response to the determination that the packet comprises the explicit indication that the linear sequence number space is being used (924, YES) and that the packet comprises the explicit indication that the sequence generation function (310) at the transmitting node (302) has been reset and the packet's sequence number is outside the iRIR (926, YES), accept (918) the packet.; 28. The receiving node (304) according to claim 27, wherein the transmitting node (302) is further adapted to carry out the method according to any of claims 23 to 26.
29. A receiving node (304; 1100) for packet or frame disposal, wherein the receiving node (304; 1100) comprises: a network interface (1108; 1208); and processing circuitry (1104; 1204) associated with the network interface (1108; 1208), the processing circuitry (1104; 1204) configured to cause the receiving node (304; 1100): to receive (900) a packet from one of a plurality of replicated flows traversing separate paths from a transmitting node (302) to the receiving node (304; 1100) across a network, wherein the packet comprises a sequence number; determine (924, YES) that the packet comprises an explicit indication that a linear sequence number space is being used, rather than a cyclic sequence number space; determine (926) if the packet comprises an explicit indication that a sequence generation function (310) has been restarted at the transmitting node (302);determine (926) if the packet sequence number is outside an ignore reset range, iRIR, associated with the use of the linear sequence number space; and in response to the determination that the packet understands the explicit indication that the linear sequence number space is being used (924, YES) and that the packet understands the explicit indication that the sequence generation function (310) at the transmitting node (302) has been reset and the packet sequence number is outside the iRIR (926, YES), accept (918) the packet.; 30. The receiving node (304; 1100) according to claim 29, wherein the processing circuit (1104; 1204) is further configured to cause the receiving node (304; 1100) to carry out the method according to any of claims 23 to