Cluster of service data replicating entities

The method synchronizes sequence number generation across multiple service data replicating entities using a common reference time and cycle time, addressing the integration challenge of compute and network reliability to achieve zero failover time and continuous communication for mission-critical services.

WO2026002384A1PCT designated stage Publication Date: 2026-01-02TELEFONAKTIEBOLAGET LM ERICSSON (PUBL)
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
PCT/EP2024/068114
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Filing Date
2024-06-27
Publication Date
2026-01-02

AI Technical Summary

Technical Problem

Existing cloud-based mission-critical services face challenges in maintaining high reliability with low failover times due to suboptimal integration of compute and network domain reliability mechanisms, leading to potential service disruptions and failures.

Method used

A method for generating synchronized sequence numbers across multiple service data replicating entities using a common reference time and cycle time, ensuring coordinated operation and seamless failover in case of failures, integrating TSN FRER and cloud redundancy solutions.

Benefits of technology

Ensures zero failover time and continuous communication in case of failures, providing high reliability and scalability for mission-critical applications by synchronizing sequence number generation across distributed entities.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure EP2024068114_02012026_PF_FP_ABST
    Figure EP2024068114_02012026_PF_FP_ABST
Patent Text Reader

Abstract

Cluster of service data replicating entities The application relates to a method at one service data replicating entity from a plurality of service data replicating entities where each of the service data replicating entities replicates data packets used for providing a service to a service user and assigns a sequence number to the data packets which are transmitted to a service user over different paths. The service data replicating entity receives a service initiation time corresponding to a starting time of the service, receives a cycle time corresponding to a communication cycle between a service providing entity and the service user and generates a sequence number for the data packets based on the service initiation time, the cycle time and a common reference time valid for all service data replicating entities
Need to check novelty before this filing date? Find Prior Art

Description

[0001] Cluster of service data replicating entities

[0002] Technical Field

[0003] The present application relates to method carried out at one service data replicating entity, to a method carried out by a system comprising a plurality of service data replicating entities, to a method carried out by control entity configured to control a plurality of service data replicating entities. Furthermore, the corresponding entities and systems are provided , a computer program and a carrier comprising the computer program.

[0004] Background

[0005] Application virtualization, i.e. , running them in a container or in a virtual machine, VM, enables the benefits of the cloud, such as dynamic and elastic resource handling, flexible deployment management, robustness, etc.. Furthermore, Edge computing provides a distributed execution environment, where the compute resources are closer to the location of their consumers, resulting in reduced latency and jitter between a client and a server application. Together with real-time support features in the software execution environment (e.g., real-time Linux kernel, real-time libraries, CPU isolation) the Edge computing ecosystem can support mission-critical services, where time-awareness (e.g., bounded latency) is an important requirement.

[0006] Reliability is also a key requirement for mission-critical or industrial applications. In cloud computing, the widely used reliability approach is to deploy multiple instances of a certain application and distribute these instances to different locations (containers, VMs, nodes) using independent infrastructure (physical and / or virtual) resources whenever possible. WO 2023 / 174550 A1 discloses an example how multiple application instances can be deployed, managed and synchronized in a cloud native way.

[0007] In the communication network segment, extremely low packet loss can be achieved by leveraging the Frame Replication and Elimination for Reliability (FRER, IEEE 802.1CB) technology specified by the IEEE 802.1 TSN Task Group. FRER specifies a mechanism to replicate each original frame on the sender side and assign a sequence number to the replicas to identify them (sequence number is carried by the Ethernet header, e.g., in the R-Tag field). The replicated frames are transmitted on maximally independent (e.g., disjoint) paths over the network. At the receiver side, there is an elimination function that discards the replicas of the original frame based on the sequence number. Similar functionality is introduced by IETF for DetNet reliability, called Packet Replication, Elimination, and Ordering Functions (PREOF). In conclusion, the deployment of multiple application instances in a compute domain and the usage of TSN FRER / IETF PREOF in the network domain as toolsets ensure high reliability end-to-end (E2E).

[0008] In general, the above-mentioned reliability technics in the compute and network domains can provide reliability within their own domain. Proper E2E reliability can only be achieved if they operate in an integrated and coordinated way, where the TSN FRER considers the characteristics of the reliability features in the compute ecosystem and vice versa.

[0009] WO 2021 / 005 400 A1 discloses an IEEE specified FRER operation mode compatible with cloud-based application deployment, and proposes an extension of the FRER component to the compute domain as a virtualized network function.

[0010] In general, in time critical communication scenarios, e.g. a communication between a service provider and a service user, failover time is an important aspect. In a cloud environment the typical, automated failure detection procedures are rather optimized for best-effort services and their operation time is in ~n*100ms or even in ~n*1s scale, which is not tolerated by time / mission-critical services. Such an outage could cause a serious impact on the application service or even could cause the collapse of the service.

[0011] Accordingly a need exists to overcome the drawbacks indicated above and to provide a solution where reliability of the provided service is improved while keeping a failover time low.

[0012] Summary

[0013] This need is met by the features of the independent claims. Further aspects are described in the dependent claims.

[0014] According to a first aspect a method is provided carried out at one service data replicating entity from a plurality of service data replicating entities where each of the service data replicating entities replicates data packets used for providing a service to a service user and assigns a sequence number to the data packets which are transmitted to a service user over different paths. The service data replicating entity receives a service initiation time corresponding to a starting time of the service, receives a cycle time corresponding to a communication cycle between a service providing entity and the service user and generates a sequence number for the data packets based on the service initiation time, the cycle time and a common reference time valid for all service data replicating entities. Furthermore the corresponding service data replicating entity is provided configured to operate as discussed above or as discussed in further detail below.

[0015] With the generation of the sequence number using the service initiation time and the cycle time it is possible to make sure that the same sequence number can be generated by different service data replicating entities which replicate data packets used for providing the same service to the service user. The timing information used for determining the sequence number in the service data replicating entity provides a common basis for the sequence number generation which is not restricted to the service data replicating entity where the sequence number is generated, but the generation is based on other time variables which can be used by several of the service data replicating entities.

[0016] According to another aspect a method is provided carried out by a system comprising a plurality of service data replicating entities wherein each of the service data replicating entity replicates the data packets used for providing a service to a service user and each of the service data replicating entities assigns a sequence number to the data packets transmitted to the service user over different paths. Each of the service data replicating entities generates the sequence number according to a method as discussed above or as discussed in detail below. Preferably the same sequence number is assigned by all the service data replicating entities and more preferably in the same communication cycle.

[0017] Furthermore the corresponding system is provided configured to operate according to the method.

[0018] Additionally a method carried out at a control entity is provided configured to control the plurality of service data replicating entities wherein each of the service data replicating entities replicates data packets used for providing the same service to a service user. The control entity transmits a service initiation time corresponding to a starting time of the service to each of the service data replicating entities and transmits a cycle time corresponding to a communication cycle between the service providing entity providing the service and the service user. Furthermore the corresponding control entity is provided configured to operate as discussed above or as discussed in further detail below.

[0019] The control entity, with the transmission of the general timing information can make sure that each of the service data replicating entities can determine the sequence number in the same way so that a distributed and coordinated generation of the sequence number generation is possible, especially when a common reference time is used. Additionally a system is provided comprising a cluster of the service providing entities providing the same service to a service user, wherein the system furthermore comprises a plurality of service data replicating entities with each of them being configured as discussed above or as discussed in further detail below.

[0020] In addition, a computer program comprising program code to be executed by at least one processing unit of a service data replicating entity, of a system is provided wherein the execution of the program code causes the at least one processing unit to carry out a method as discussed for the service data replicating entity, the system of service data replicating entities or for the control entity.

[0021] Finally, a carrier is provided comprising the computer program wherein the carrier is one of an electronic signal, optical signal, radio signal, and computer-readable storage medium.

[0022] It is to be understood that the features mentioned above and features yet to be explained below can be used not only in the respective combinations indicated, but also in other combinations or in isolation without departing from the scope of the present invention. Features of the above- mentioned aspects and embodiments described below may be combined with each other in other embodiments unless explicitly mentioned otherwise.

[0023] Brief description of the drawings

[0024] The foregoing and additional features and effects of the invention will become apparent to a person with skill in the art from the following detailed description when read in conjunction with the accompanying drawings in which like reference numerals refer to like elements.

[0025] Fig. 1 shows a schematic architectural view of a system comprising a cluster of application providing entities, service data replicating entities and a service user providing a high reliability and very low failover time.

[0026] Fig. 2 shows a further schematic architectural view of the system of Fig. 1.

[0027] Fig. 3 shows an example flowchart of a method carried out by a service data replicating entity used in the system of Fig. 1 or 2. Fig. 4 shows a schematic example flowchart of a method carried out at a control entity configured to control the generation of the sequence number by the service data replicating entities.

[0028] Fig. 5 shows an example schematic representation of a service data replicating entity used in the system of Fig. 1 and 2.

[0029] Fig. 6 shows an example schematic representation of a control unit configured to coordinate the sequence number generation in a system as shown in Fig. 1 and 2.

[0030] Detailed Description

[0031] In the following, embodiments of the invention will be described in detail with reference to the accompanying drawings. It is to be understood that the following description of embodiments is not to be taken in a limiting sense. The scope of the invention is not intended to be limited by the embodiments described hereinafter or by the drawings, which are to be illustrative only.

[0032] The drawings are to be regarded as being schematic representations, and elements illustrated in the drawings are not necessarily shown to scale. Rather, the various elements are represented such that their function and general purpose becomes apparent to a person skilled in the art. Any connection or coupling between functional blocks, devices, components of physical or functional units shown in the drawings and described hereinafter may also be implemented by an indirect connection or coupling. A coupling between components may be established over a wired or wireless connection. Functional blocks may be implemented in hardware, software, firmware, or a combination thereof.

[0033] In the following a solution is discussed where multiple active instances of an application, by way of example a service providing entity deployed in a compute domain such as the cloud, an edge cloud are provided. A distributed and coordinated operation for generating sequence numbers belonging to different service data replicating entities is provided which serve several service providing I application instances deployed in the compute domain. In the example given below the application or service providing entity is discussed in connection with FRER components described in IEEE 802.1CB, however it should be understood that the application is not restricted to FRER components, it might also be used in connection with PREOF or any other technology where a replication, elimination and sequence numbering of data packets is applied in order to make sure that at least one of the replicated data packets including the same kind of information reaches its destination. Duplicated packets arriving at the destination are eliminated based on the sequence number. One aspect relates to the generation of identical sequence numbers by different service data replicating entities provided for a cluster of service providing entities wherein each service providing entity is connected with a corresponding service data replicating entity. As discussed below a common reference time information is used as a basis and the sequence number generation process in the different replicating entities to identify the packets.

[0034] The deployment of multiple application instances, the cluster of service providing entities in the compute domain and the usage of the coordinated sequence number generation ensures a high reliability end-to-end, E2E. Accordingly, based on the compute and network reliability a continuous communication with approximately zero failover time between multiple active application instances and a physical end device, the service user is provided. The solution discussed hereinafter guarantees continuous communication in the case of failures that can occur either in the compute or in the network domain.

[0035] Fig. 1 shows a schematic architectural view of a system guaranteeing the continuous communication comprises an application cluster 50 comprising different application instances providing a defined service wherein all the application instances provide the same service to a service user 250. The application cluster comprises a plurality of service providing entities 51 and 52 wherein a cloud management 40 is provided which is responsible for the maintenance of the different service providing entities. For each of the service providing entities 51 , 52 a corresponding service data replicating entity 100 is provided, in the example shown the two entities 100A and 100B. In the service data replicating entities 100, the data packets or frames transmitted from the corresponding service providing entity are replicated and a sequence number is added wherein the data packets are transmitted over a network 80 including gateways such as data center gateways, DC gateways 85 and 86 to a device 200 where a service user 250 is located using the data transmitted by the different service providing entities. At the receiving side a corresponding replication elimination function 220 can be provided which mainly eliminates the duplicated data packets arriving at the receiving side based on the sequence number. A control entity 300 in the compute domain 20 is provided which is responsible for configuring and parameterizing the sequence number generation. Each of the service data replicating entities 100A and 100B comprises a sequence number generating entity 105 and a replication / elimination entity 106 configured to replicate the data packets to which the sequence number has been added by entity 105. As shown in Fig. 1 the control entity 300 is especially connected to the sequence number generating entity 205 in order to make sure that all the service data replicating entities 100 generate the same sequence number for the same kind of information. In the example shown in Fig.1 and 2 a cloud-based mobile robot control scenario is discussed, by way of example in a manufacturing process where the control logic is virtualized and multiple control logic instances such as the service providing entities 51 and 52 are deployed in the cloud. If the service providing entities 51 and 52 were to generate different control commands, an inadequate operation would follow if control packets from different control application instances are used by the service user in the different cycles. It should be understood that any other kind of service could be provided by the different service providing entities 51 , 52.

[0036] The cloud management such as Kubernetes is configured for the maintenance of the different service providing entities 50, 51. In order to ensure that the service providing or application instances generate the same information for the service user a synchronized operation is required among them. This might be obtained using a stateless application operation where the applications can synchronize their states via a shared database. As an alternative, the solution discussed in WO2023 / 174550A1 might be used. Furthermore, identical number of generated packets has to be made sure after encapsulation and transport in the networking layer.

[0037] By way of example the setting of MTU on the network interface card, NIC should be in line with the generated packet size due to the fact that packet fragmentation should be avoided which would result in different number of generated packets.

[0038] The cloud management can also be responsible for deploying and maintaining the different service data replicating entities 100A and 100B that contain the distributed sequence number generation entities or functions 105. To minimize the latency between a certain application and its serving service data replicating entity, it is advantageous to deploy both entities close to each other. This could be enforced by applying affinity rules during the deployment process.

[0039] The control entity 300 configures and provides the parameters for the distributed sequence number generation entities 105 to guarantee that they can mimic properly the operation of a single native sequence number generation. In the deployment case each service providing entity 51 , 52 is linked to one service data replicating entity or one sequence number generating entity 105.

[0040] According to 802.1CB the original FRER entities provide the replication and elimination function to create or merge the TSN member streams. In the solution discussed below a member stream is established between each replicating entity 106 and the elimination entity 220 on the receiving side. In each communication cycle, the service providing entities 51 , 52 generate packets and the distributed service data replicating entities, here the sequence number generating entities 105 generate unique sequence numbers for each forwarded frame. To ensure that the same sequence number is used, a coordinated operation is established between the different sequence number generating entities 105.

[0041] If any application instance or a service data replicating entity fails, the compute and the communication service remain active by using the other active entities. In any failure case, the cloud management is responsible to re-start / re-deploy the impacted components as soon as possible to restore the original level of system reliability, but these actions are not time-critical as the service operation is not broken. The proposed solution ensures that the re-deployed Sequence number replicating entity can synchronize its operation to the other ones.

[0042] On the device side, a legacy FRER entity works and performs the elimination of the duplicates. This ensures that the multiple active application instances as well as the deployment of several service data replicating entity provided e.g. in the cloud and operation in the compute domain are hidden from the device to guarantee backward compatibility using legacy TSN functionality on the device side.

[0043] The method described herein provides the details of the operation of the distributed Sequence number generation function to support multiple, active application instances in virtualized environment. The usage of the distributed Sequence number generation function allows the seamless integration of TSN FRER redundancy and cloud redundancy solutions and ensures continuous service operation (e.g., zero-failover time) in the case of any single failure.

[0044] In a first step the cloud management 40 may create the different application or service providing instances 51 , 52 which can act as talkers for the downstream TSN member streams, wherein downstream means that a stream is transmitted from talker to listener. The service data replicating entities 100A and 100B may also be deployed by the cloud management 40 and connected to the service providing instances 51 and 52 accordingly by a one-to-one pairing.

[0045] After the deployment of the service providing entities 51 and 52 and the deployment of the distributed service data replicating entities, the latter are initiated and configured by the cloud management 40. The control entity 300 now configures the different sequence number generating entities 105 with the following two parameters: - A service initiation time: This is the starting time of the service and is used to synchronize the different sequence number generating entities 105 to the start of the first communication cycle.

[0046] - Cycle time: This is the communication cycle of the application service, here the communication between the service providing entity 51 , 52 and the service user 250 to make sure that the same sequence numbers are generated by the different entities 105 a synchronized operation is required among them.

[0047] The sequence number generating entities 105 are synchronized by a common time reference such as a GrandMaster clock and this common reference time information may be provided to the different replicating entities 100 using protocols such as precision time protocol, PTP. The time reference as common information is used by each of the replicating entities to generate the sequence number with the following formula where it is assumed that a single packet is generated by the service providing entity per cycle:

[0048] T packet arrival 'sthe time when the actual sequence number is generated for a packet by a certain sequence number generating entity 105. Tinitiationis the time of service initiation while Tcycle\s the communication cycle of the application service. GenSeqSpace is the range of value for the sequence number, sub-parameters, wherein in IEEE 802.1CB the value is 65536. This formula together with time synchronization guarantees that in a certain cycle, the distributed sequence number generating entities generate the same sequence number. Furthermore a truncation function is used as within a cycle the value of Tpacketarrival could be different and could be ahead or behind of the theoretical value in the case of different service data replicating entities. Accordingly the truncation considers that the packets do not all arrive at the same time instance at the different service data replicating entities and here the sequence number generating entities 105.

[0049] In the situation shown in Fig. 1 a common time reference could be provided through the control entities or directly by a master clock ( not shown in Fig. 1).

[0050] Fig. 2 shows a similar situation as shown in Fig. 1 with the addition that a master clock 70 provides a common time reference to the sequence number generation. The above-mentioned sequence number generation formula (1) works if the service providing entities 51 , 52 generate one packet per cycle. However, in some cases the applications can generate multiple packets in a single cycle. Hence an extended version of the time synchronization-based method is described below, which is able to handle such scenarios, where there are multiple packets sent from the service providing entities (Talker) within a cycle. The extension comprises the following steps:

[0051] 1. Defining a block for the SeqNum parameters (SeqNumBlock) that can be used within a given cycle. The sequence number space (GenSeqSpace) is divided into blocks, the different blocks are assigned to distinct cycles, respectively. The block contains Nmax piece of sequence numbers, where “Nmax” denotes the maximum number of packets per cycle.

[0052] 2. Detecting based on the packet arrival, which block has to be used for adding a SeqNum to the packet.

[0053] 3. Selecting the first not-yet-used number of the block for the packet SeqNum parameters (SeqNumBlock), and update the list of already used numbers.

[0054] Each SeqNumBlock can be referred by its first SeqNum value (SeqNumStart), and for a received packet the related block can be calculated as follow: where Nmax denotes the maximum number of packets per cycle.

[0055] As for FRER a circular sequence number space can used, the solution can track usage in the actually used block only. Usage of a new block starts with an empty history (no values used) and the first packet uses the value of SeqNumStart.

[0056] Accordingly, first the block is calculated which should be used to assign a sequence number for a particular packet. The block is identified by the first sequence number belonging to the block. Using formula (2) above the first sequence number is calculated for a given block. This happens in step 2 mentioned above. In step 3 the first-not -yet-assigned sequence number is assigned to the incoming packet. By way of example, if Nmax is 3, each block contains 3 sequence numbers such as 0,1 ,2 for the first block and 3,4,5 for the second block. When a packet arrives in a cycle and based on the packet arrival time sequence numbers of the second block have to be used, then formula (2) gives 3 as SeqNumStart which will be the sequence number for the first packet according to step 3 above. If a next packet arrives in the same cycle, formula (2) gives a result of 3, as sequence numbers from the same blocks should be used again, but in step 2, number 4 will be assigned as sequence number as 3 has already be assigned to the previous packet.

[0057] Accordingly, in this case, multiple packets can be sent out in a single cycle - a set of sequence numbers (called as block) is assigned to each cycle. Using the service initiation time, the cycle time and the current time the number of the actual cycle can be calculated. Then the first number of the block assigned to the certain cycle is used for the first packet in the given cycle. Other number are used for the upcoming packets (which are coming in the same cycle).

[0058] In case the talker or service providing entity sends less than Nmax packets in a cycle, not all the values of the block are used. If more than Nmax packets were received within a cycle an error signal may be generated and overflow packets may be dropped. In general, receiving more than Nmax packets is treated as a failure scenario (e.g., configuration error, misbehaving talker) and the control entity 300 may be invoked to update the configuration of the involved Sequence number generating entities 105.

[0059] Fig. 3 summarizes some of the steps carried out at the service data replicating entities in the situation as discussed above. In step S31 the service data replicating entity receives the service initiation time corresponding to a starting time of the service. Furthermore in step S32 the cycle time corresponding to a communication cycle between the service providing entity and the service user is received and based on this information the sequence number can be generated for the data packets based on the service initiation time, the cycle time and a common reference time valid for all service data replicating entities (S33).

[0060] Fig. 4 describes the corresponding steps carried out by the control entity 300 wherein in step S41 the control entity 300 transmits the service initiation time to each of the service data replicating entities and transmits the cycle time to each of the service data replicating entities in S42.

[0061] Fig. 5 shows a possible schematic architectural view of one of the service data replicating entities shown in Fig. 1 and 2. The service data replicating entity can replicate the data packets and assign a sequence number as discussed in detail above wherein the entity comprises an interface 110 provided for transmitting and receiving data packets or control messages to other entities or from other entities. The entity 100 furthermore comprises a processing unit 120 which is responsible for the operation of the service data replicating entity 100. The processing unit 120 can comprise one or more processors and can carry out instructions stored on a memory 130, wherein the memory may include a read-only memory, a random access memory, a mass storage, a hard disk or the like. The memory can furthermore include suitable program code to be executed by the processing unit 120 so as to implement the abovedescribed functionalities in which the service data replicating entity is involved. The service providing entity itself may be implemented in a single node or may be distributed over several nodes or entities in a cloud implementation.

[0062] Fig. 6 shows a schematic architectural view of the control entity 300 controlling the different service data replicating entities 100. The control entity 300 comprises an interface 310 configured to provide control messages or other data to other entities and provided for receiving control messages or other data from other entities. The interface 110 may be especially used to transmit the service initiation time and the cycle time to the different service data replicating entities. The entity 300 furthermore comprises a processing unit 320 responsible for the operation of the entity 300. The processing unit 320 comprises one or more processors and can carry out instructions stored on a memory 330, wherein the memory may include a read-only memory, a random access memory, a mass storage, a hard disk or the like. The memory 330 can include suitable program code to be executed by the processing unit 320 so as to implement the above-described functionalities in which the control entity 300 is involved. The entity 300 can be implemented in a single node or may be distributed over several nodes in a cloud implementation.

[0063] In the following, a downlink operation is discussed. The distributed Sequence number generation operation is leveraged in the downlink direction (i.e., from the service providing entity to the service user or from Talker to Listener using the IEEE specific terms). When the service providing entities 51 , 52 instances and Sequence number generation entities 105 are deployed, configured, and connected to each other the normal operation phase starts. Each application instance / service providing entity creates its own packets for the end device, the service user, and these output packets are forwarded to the distributed Sequence number generation components only after the state synchronization process between the service providing entities 51 , 52 are performed properly. The state synchronization may be obtained as discussed in WO2023 / 174550 A1.

[0064] When the packets are received in a given cycle by the distributed Sequence number generating entities 105, these generate and add the same sequence numbers to the corresponding frames. In each cycle, each distributed Sequence number generation and Frame Replication component sends out one or multiple replica frames in accordance with the number of generated packets by the service providing instances 51 or 52. The elimination function on the receiver side works according to the existing IEEE 802.1CB standard, it forwards the first received replica to the device and eliminates the other ones.

[0065] Due to the shared resource handling paradigm of the compute domain, it may occur that service providing entity does not get CPU resources in time. The distributed Sequence number generation solution ensures that the service is not impacted even in this case - if at least one service providing entity (independently from which one) generates a packet in time, it is properly sent to the device, while the late packets are eliminated.

[0066] Furthermore, a restauration or healing of a sequence number generating entity after a failure is discussed. If one sequence number generating entity 105 fails, it does not cause any interruption in the service, since other application instance(s) can send frame(s) to the device via other, active distributed Sequence number generating entities. If cloud management 40 detects the failure of a sequence number generating entity, it is re-deployed, linked to the corresponding application instance. The re-deployed Sequence number generating entity is configured again by the control entity 300 with the service initiation time and the cycle time. Based on this information and using the common refence time via PTP, the Sequence number generating entity automatically can generate the adequate sequence numbers for the upcoming cycles.

[0067] If a service proving instance 51 , 52 fails and therefore cannot generate frames, the cloud management 40 detects it and informs the control entity 300, which can switch the serving distributed Sequence number generating entity of the failed service providing entity to idle mode to avoid the generation of failed data (if any generated by the failed application) towards the end device. During the idle mode, the operation of the given distributed Sequence number generating entity 105 can be synchronized to the other FRER functions. If the service providing instance is restored and connected again to its serving distributed Sequence number generating entity, the component is set to active mode by control entity 300 and can work according to the above description.

[0068] An operation in the uplink direction is as follows: The generated packets by the device side are replicated by a legacy FRER component, specified in IEEE 802.1CB. The uplink replicas are sent for example to a multicast group that the service providing instances are subscribed to ensure proper reception at each one of them.

[0069] Considering the application deployment, one might ensure that each service providing instance receives the same message(s) from the device. However, if a frame is lost on the uplink path, the impacted service providing instance cannot receive input from the device. To handle this case the last FRER components can be invoked. In uplink direction, cross-connections are established between the last FRER components and the received frames are replicated and sent out via these cross-connections (called “ladder redundancy” in Annex C.3 of 802.1CB). The received frames over the cross-connections are handled by using a legacy IEEE 802.1CB Elimination function in each FRER component. This ensure that if at least one component receives an uplink frame, this frame can be distributed via the cross-connections towards all other service providing instances.

[0070] The solution discussed has the following advantages:

[0071] A zero failover time is obtained in case of a single failure and a continuous service operation is guaranteed even if a service providing instance or a sequence number generating instance or application function fails. Furthermore multiple failures could be handled by more than two replicas along more than two disjoint paths. An n-time replication or redundancy can handle n- 1 failure events. Furthermore, the method guarantees end-to-end redundancy requirements of mission-critical applications. There is a tight integration of TSN FRER functionality with the redundancy solutions applied in the compute (edge / cloud) domain. The method is scalable and multiple active service providing instances could be handled by leveraging the reliability capabilities of the compute domain. It is compatible with legacy TSN FRER operation ensuring backward compatibility. As the method enables the usage of multiple active application instances it can help to mitigate the uncertainties of the application timing in the compute domain.

[0072] The invention can be described by the following clauses:

[0073] 1. A method carried out at one service data replicating entity (100, 100a, 100b) from a plurality of service data replicating entities (100a, 100b), each of the service data replicating entities replicating data packets used for providing the same service to a service user (250) and assigning a sequence number to the data packets transmitted to the service user over different paths, the method comprising:

[0074] - receiving a service initiation time corresponding to a starting time of the service,

[0075] - receiving a cycle time corresponding to a communication cycle between a service providing entity and the service user,

[0076] - generating a sequence number for the data packets based on the service initiation time, the cycle time and a common reference time valid for each of the service data replicating entities. 2. The method of clause 1 , wherein the sequence number is generated based on an available sequence number space.

[0077] 3. The method of clause 1 or 2, wherein the sequence number is generated using a truncation mechanism where the generated sequence number is truncated.

[0078] 4. The method of any preceding clause, wherein several data packets are provided per cycle time, wherein the sequence number is determined based on a maximum number of data packets, Nmax, per communication cycle.

[0079] 5. The method of clause 4, wherein the sequence number space is divided into several blocks, the method further comprising

[0080] - determining a block from the several blocks into which an arriving data packet for which the sequence number is to be determined, is to be placed, based on an arrival time of the arriving data packet,

[0081] - selecting a first not yet used number within the determined block for the sequence number.

[0082] 6. The method of clause 5, wherein the block and or the sequence number is determined based on Nmax, the service initiation time and the cycle time.

[0083] 7 The method of any preceding clause, wherein the service initiation time and the cycle time is received from a control entity configured to control a synchronized generation of the sequence numbers for the plurality of service data replicating entities.

[0084] 8. The method of any preceding clause, wherein the data packets are received from one of the service providing entities from a cluster of service providing entity providing the same service.

[0085] 9. The method of any preceding clause, wherein the sequence number is generated by a sequence number generating entity provided in the service data replicating entity,

[0086] 10. A method carried out by a system comprising a plurality of service data replicating entities, each of the service data replicating entities replicating data packets used for providing a service to a service user and each of the service data replicating entities assigning a sequence number to the data packets transmitted to the service user over different paths, wherein each of the service data replicating entities generates the sequence number according to a method as mentioned in any of clauses 1 to 9. 11. The method of clause 10, wherein each of the service generating entities is connected to one service providing entity (50) from a cluster of service providing entities providing the same service.

[0087] 12. A method carried out at control entity configured to control a plurality of service data replicating entities, each of the service data replicating entities replicating data packets used for providing the same service to a service user, the method comprising:

[0088] - transmitting a service initiation time corresponding to a starting time of the service to each of the service data replicating entities,

[0089] - transmitting, to each of the service data replicating entities, a cycle time corresponding to a communication cycle between a service providing entity providing the service and the service user.

[0090] 13. The method of clause 12, further being informed that a failure occurred at one of the plurality of service data replicating entities, wherein the service data replicating entity where the failure occurred is set into an idle mode in response to the information about the failure.

[0091] 14. The method of clause 13, further retransmitting the service initiation time and the cycle time to the service data replicating entity where the failure has occurred.

[0092] 15. A service data replicating entity configured to replicate data packets used for providing a service to a service user and assigning a sequence number to the data packets transmitted to the service user over different paths, configured to:

[0093] - receive a service initiation time corresponding to a starting time of the service,

[0094] - receive a cycle time corresponding to a communication cycle between a service providing entity and the service user,

[0095] - generating a sequence number for the data packets based on the service initiation time, the cycle time and a common reference time valid for a plurality of service data replicating entities providing the service to the service user.

[0096] 16. The service data replicating entity of clause 15, further being configured to generate the sequence number based on an available sequence number space.

[0097] 17. The service data replicating entity of clause 15 or 16, further being configured to generate the sequence number using a truncation mechanism where the generated sequence number is truncated. 18. The service data replicating entity of any of clauses 15 to 17, further being configured, when several data packets are provided per cycle time, to determine the sequence number based on a maximum number of data packets, Nmax, per communication cycle.

[0098] 19. The service data replicating entity of clause 18, wherein the sequence number space is divided into several blocks, the service data replicating entity being configured to:

[0099] - determine a block from the several blocks into which an arriving data packet for which the sequence number is to be determined, is to be placed, based on an arrival time of the arriving data packet,

[0100] - select a first not yet used number within the determined block for the sequence number.

[0101] 20. The service data replicating entity of clause 19, further being configured to determine the block based on Nmax, the service initiation time and the cycle time.

[0102] 21. The service data replicating entity of any of clauses 15 to 20, further being configured to receive the service initiation time and the cycle time from a control entity configured to control a synchronized generation of the sequence numbers for the plurality of service data replicating entities.

[0103] 22. The service data replicating entity of any of clauses 15 to 21 , further being configured to receive the data packets, for which the sequence number is generated, from one of the service providing entities from a cluster of service providing entity providing the same service.

[0104] 23. The service data replicating entity of any of clauses 15 to 21 , further comprising a service number generating entity configured to generate the sequence number based on the service initiation time, the cycle time and a common reference time valid for all service data replicating entities.

[0105] 24. A control entity configured to control a plurality of service data replicating entities, each of the service data replicating entities replicating data packets used for providing the same service to a service user, the control entity configured to:

[0106] - transmit a service initiation time corresponding to a starting time of the service to each of the service data replicating entities,

[0107] - transmit a cycle time corresponding to a communication cycle between a service providing entity providing the service and the service user. 25. The control entity of clause 24, further configured to set one of the plurality of service data replicating entity where a failure occurred into an idle mode in response to an information about the failure at said one service data replicating entity.

[0108] 26. The control entity of clause 25, further being configured to retransmit the service initiation time and the cycle time to said one service data replicating entity where the failure has occurred.

[0109] 27. A system comprising a plurality of service data replicating entities, each of the service data replicating entities replicating data packets used for providing a service to a service user and each of the service data replicating entities assigning a sequence number to the data packets transmitted to the service user over different paths, wherein each of the service data replicating entities is configured to generate the sequence number according to a method as mentioned in any of clauses 1 to 9.

[0110] 28. A system comprising:

[0111] - a cluster of service providing entities providing the same service to a service user,

[0112] - a plurality of service data replicating entities, each of the service data replicating entities being configured as claimed in any of clauses 15 to 23.

[0113] 29. The system of clause 28 further comprising a control entity as mentioned in any of claims 24 to 26.

[0114] 30. A computer program comprising program code to be executed by at least one processing unit of a service data replicating entity, wherein execution of the program code causes the at least one processing unit to carry out a method as mentioned in any of clauses 1 to 9.

[0115] 31. A computer program comprising program code to be executed by at least one processing unit of a system, wherein execution of the program code causes the at least one processing unit to carry out a method as mentioned in clauses 10 or 11.

[0116] 32. A computer program comprising program code to be executed by at least one processing unit of a control entity, wherein execution of the program code causes the at least one processing unit to carry out a method as mentioned in any of clauses 12 to 14. 33. A carrier comprising the computer program of any of clauses 30 to 32, wherein the carrier is one of an electronic signal, optical signal, radio signal, and computer readable storage medium.

Claims

Claims1. A method carried out at one service data replicating entity (100, 100a, 100b) from a plurality of service data replicating entities (100a, 100b), each of the service data replicating entities replicating data packets used for providing the same service to a service user (250) and assigning a sequence number to the data packets transmitted to the service user over different paths, the method comprising:- receiving a service initiation time corresponding to a starting time of the service,- receiving a cycle time corresponding to a communication cycle between a service providing entity and the service user,- generating a sequence number for the data packets based on the service initiation time, the cycle time and a common reference time valid for each of the service data replicating entities.

2. The method of claim 1 , wherein the sequence number is generated based on an available sequence number space.

3. The method of claim 1 or 2, wherein the sequence number is generated using a truncation mechanism where the generated sequence number is truncated.

4. The method of any preceding claim, wherein several data packets are provided per cycle time, wherein the sequence number is determined based on a maximum number of data packets, Nmax, per communication cycle.

5. The method of claim 4, wherein the sequence number space is divided into several blocks, the method further comprising- determining a block from the several blocks into which an arriving data packet for which the sequence number is to be determined, is to be placed, based on an arrival time of the arriving data packet,- selecting a first not yet used number within the determined block for the sequence number.

6. The method of claim 5, wherein the block is determined based on Nmax, the service initiation time and the cycle time.

7. The method of any preceding claim, wherein the service initiation time and the cycle time is received from a control entity configured to control a synchronized generation of the sequence numbers for the plurality of service data replicating entities.

8. The method of any preceding claim, wherein the data packets are received from one of the service providing entities from a cluster of service providing entity providing the same service.

9. The method of any preceding claim, wherein the sequence number is generated by a sequence number generating entity provided in the service data replicating entity.

10. A method carried out by a system comprising a plurality of service data replicating entities, each of the service data replicating entities replicating data packets used for providing a service to a service user and each of the service data replicating entities assigning a sequence number to the data packets transmitted to the service user over different paths, wherein each of the service data replicating entities generates the sequence number according to a method as mentioned in any of claims 1 to 9.

11. The method of claim 10, wherein each of the service generating entities is connected to one service providing entity (50) from a cluster of service providing entities providing the same service.

12. A method carried out at control entity configured to control a plurality of service data replicating entities, each of the service data replicating entities replicating data packets used for providing the same service to a service user, the method comprising:- transmitting a service initiation time corresponding to a starting time of the service to each of the service data replicating entities,- transmitting, to each of the service data replicating entities, a cycle time corresponding to a communication cycle between a service providing entity providing the service and the service user.

13. The method of claim 12, further being informed that a failure occurred at one of the plurality of service data replicating entities, wherein the service data replicating entity where the failure occurred is set into an idle mode in response to the information about the failure.

14. The method of claim 13, further retransmitting the service initiation time and the cycle time to the service data replicating entity where the failure has occurred.

15. A service data replicating entity configured to replicate data packets used for providing a service to a service user and assigning a sequence number to the data packets transmitted to the service user over different paths, configured to:- receive a service initiation time corresponding to a starting time of the service,- receive a cycle time corresponding to a communication cycle between a service providing entity and the service user,- generating a sequence number for the data packets based on the service initiation time, the cycle time and a common reference time valid for a plurality of service data replicating entities providing the service to the service user.

16. The service data replicating entity of claim 15, further being configured to generate the sequence number based on an available sequence number space.

17. The service data replicating entity of claim 15 or 16, further being configured to generate the sequence number using a truncation mechanism where the generated sequence number is truncated.

18. The service data replicating entity of any of claims 15 to 17, further being configured, when several data packets are provided per cycle time, to determine the sequence number based on a maximum number of data packets, Nmax, per communication cycle.

19. The service data replicating entity of claim 18, wherein the sequence number space is divided into several blocks, the service data replicating entity being configured to:- determine a block from the several blocks into which an arriving data packet for which the sequence number is to be determined, is to be placed, based on an arrival time of the arriving data packet,- select a first not yet used number within the determined block for the sequence number.

20. The service data replicating entity of claim 19, further being configured to determine the block based on Nmax, the service initiation time and the cycle time.

21. The service data replicating entity of any of claims 15 to 20, further being configured to receive the service initiation time and the cycle time from a control entity configured to control a synchronized generation of the sequence numbers for the plurality of service data replicating entities.

22. The service data replicating entity of any of claims 15 to 21 , further being configured to receive the data packets, for which the sequence number is generated, from one of the service providing entities from a cluster of service providing entity providing the same service.

23. The service data replicating entity of any of claims 15 to 22, further comprising a service number generating entity configured to generate the sequence number based on the service initiation time, the cycle time and a common reference time valid for all service data replicating entities.

24. A control entity configured to control a plurality of service data replicating entities, each of the service data replicating entities replicating data packets used for providing the same service to a service user, the control entity configured to:- transmit a service initiation time corresponding to a starting time of the service to each of the service data replicating entities,- transmit a cycle time corresponding to a communication cycle between a service providing entity providing the service and the service user.

25. The control entity of claim 24, further configured to set one of the plurality of service data replicating entity where a failure occurred into an idle mode in response to an information about the failure at said one service data replicating entity.

26. The control entity of claim 25, further being configured to retransmit the service initiation time and the cycle time to said one service data replicating entity where the failure has occurred.

27. A system comprising a plurality of service data replicating entities, each of the service data replicating entities replicating data packets used for providing a service to a service user and each of the service data replicating entities assigning a sequence number to the data packets transmitted to the service user over different paths, wherein each of the service data replicating entities is configured to generate the sequence number according to a method as mentioned in any of claims 1 to 9.

28. A system comprising:- a cluster of service providing entities providing the same service to a service user,- a plurality of service data replicating entities, each of the service data replicating entitiies being configured as claimed in any of claims 15 to 23.

29. The system of claim 28 further comprising a control entity as mentioned in any of claims 24 to 26.

30. A computer program comprising program code to be executed by at least one processing unit of a service data replicating entity, wherein execution of the program code causes the at least one processing unit to carry out a method as mentioned in any of claims 1 to 9.

31. A computer program comprising program code to be executed by at least one processing unit of a system, wherein execution of the program code causes the at least one processing unit to carry out a method as mentioned in claims 10 or 11.

32. A computer program comprising program code to be executed by at least one processing unit of a control entity, wherein execution of the program code causes the at least one processing unit to carry out a method as mentioned in any of claims 12 to 14.

33. A carrier comprising the computer program of any of claims 30 to 32, wherein the carrier is one of an electronic signal, optical signal, radio signal, and computer readable storage medium.

Citation Information

Patent Citations

  • Systems and methods enabling TSN / detnet replication function fallback

    WO2021005400A1

  • Methods, computing nodes and system for controlling a physical entity

    WO2023174550A1

  • Data transmission method and electronic equipment

    CN112436924A

  • Industrial Automation with 5G and Beyond

    US20200259896A1

  • SYSTEMS AND METHODS ENABLING TSN / DetNet REPLICATION FUNCTION FALLBACK

    US20220360537A1