Method for managing received data frames, producing computer program and corresponding device.
Patent Information
- Application Number
- FR2023001963
- Authority / Receiving Office
- FR · FR
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2023-03-02
- Publication Date
- 2025-02-21
- Estimated Expiration
- 2043-03-02
Smart Images

Figure 00000027_0000 
Figure 00000027_0001 
Figure 00000028_0000
Abstract
Description
Title of the invention: Method for managing received data frames, corresponding computer program product and device. Field of invention
[0001] The field of the invention is that of communications networks which notably comprise different paths through which redundant (i.e. identical) data frames pass between network devices.
[0002] The invention relates more particularly to a method for managing data frames received by the devices of such a communications network.
[0003] The invention thus has numerous applications, in particular, but not exclusively, in all fields in which such communications networks are used. This concerns, for example, the field of local networks, or industrial networks implemented in embedded systems (avionics, automotive, etc.). Prior art and its drawbacks
[0004] Some communications networks are characterized by the fact that they include different paths through which data frames pass between devices (e.g., between switches) in the network. More specifically, a flow is a sequence of data frames from a source to one or more destinations, with the same quality of service (QoS). Flow replication allows the flow to be sent multiple times at the same time along different paths. Data path redundancy provides better reliability by duplicating a data frame and sending it through different paths in the network. Each replica of the flow is called a member flow. A compound flow is made up of multiple member flows. More specifically, a source or relay (e.g., a switch) sends multiple copies of the same frame into a network via different member flows. Conversely, a destination or relay receives the different copies.
[0005] However, for this redundancy function to be transparent to the upper layers of the protocol implemented in a frame receiving device, a discard mechanism must be implemented in the device in question. Typically, the strategy consists of choosing the frame arriving first from this set of redundant frames. Replicas of frames that arrive later must not be retained.
[0006] Such a mechanism is for example specified in the FRER standard (for “Frame Replication and Elimination for Reliability” in English), as defined in the document IEEE Std 802.1CB-2017, pages 1-102, 2017. This mechanism requires identifying these frames as redundant, i.e., identical to the first received frame. In order to assert that different received frames are identical or not, an identifier of the first received frame must be stored regardless of the number of copies (or duplicates) received. This strategy is easy to implement when the average latency along each path is similar. However, when the delay difference between different paths is large and / or when the data rate is high, the amount of data to be stored can be significant.
[0007] An existing solution used in the standard called TSN (for "Time Sensitive Network" in English) consists of storing a vector in which each bit is associated with a unique identifier of a frame. The bit changes to a predetermined logical value when the switch receives the frame corresponding to the identifier associated with the bit. Thus, upon receipt of each frame, the switch looks at the value of the corresponding bit in order to know whether it is a first reception or not.
[0008] However, such a solution has drawbacks. Indeed, in the case of a network whose paths have different travel times, the time difference between receptions of identical frames can be very significant. This then requires storing a large number of bits associated with the identifiers used, which can require a significant amount of memory. Furthermore, reading a large vector upon reception of each frame requires a significant reading time, which is all the more problematic in very high-speed networks exchanging a very large number of frames.
[0009] There is thus a need for a technique for determining whether a frame received by a receiver, e.g. via a given member stream, has already been received, e.g. via another member stream. There is a need for such a technique to be efficient with regard to the memory size required for its implementation. Statement of the invention
[0010] In one embodiment of the invention, a method is proposed for managing data frames received by a telecommunications receiver via a plurality of member streams of a data stream. The member streams each carry a copy of the frames. The frames carry a respective frame identifier of the binary word type coded on N bits, successive frames in a given member stream carrying identifiers interpreted as successive integers modulo 2N. According to such a method, an electronic device performs for at least one data frame received via a given member stream:
[0011] - a determination of whether or not the identifier belongs to the data frame received at least at one continuous interval of identifiers interpreted as successive integers modulo 2N. The interval is defined by a lower bound and a upper bound, the identifiers of the interval identifying corresponding frames previously received by the receiver via said member streams. The determination delivers membership information;
[0012] - if the membership information is representative of the membership of the identifier of the data frame received at said at least one interval, a generation of reception information representative of the fact that the received data frame was previously received by the receiver via a member stream other than the given member stream;
[0013] - if the membership information is representative of the non-membership of the identifier of the data frame received at said at least one interval, an update of said at least one interval to take into account the reception of the received data frame.
[0014] Thus, the invention proposes a novel and inventive solution for determining whether a data frame received via a given member stream has already been received via another member stream.
[0015] More particularly, the storage of continuous intervals of identifiers defined by their respective lower and upper bounds makes it possible to limit the quantity of data stored in order to determine whether a received data frame has already been received via another member stream (e.g. only the lower and upper bounds of the interval are stored in a memory of the electronic device implementing the method). Indeed, in practice, failures within a redundant communications network lead to losses of data frames “in bulk”, i.e. to losses of sets of successive data frames. Conversely, when the network operates without failures, the receiver receives the data frames successively. In the latter case, according to the present approach, a single interval is stored via its lower bound and its upper bound, the latter being incremented as and when the data frames arrive correctly.
[0016] Thus, the approach of storing continuous intervals of identifiers already received, the intervals being defined by their respective lower and upper bounds, is representative of the behavior encountered in practice in a real network. This makes it possible to avoid the exhaustive storage of information relating to the reception of each frame without needing to multiply the number of intervals to be managed, different intervals appearing only when a problem occurs in the network.
[0017] In some embodiments, the method comprises, if the reception information is generated: destroying the received data frame.
[0018] Thus, the frame received in duplicate is deleted.
[0019] In certain embodiments, said determination of whether or not the identifier of the received data frame belongs to at least one interval comprises, for at least minus a given interval defined by a given lower bound and a given upper bound, the given interval including the given lower bound and excluding the given upper bound:
[0020] - a subtraction between the identifier of the received data frame and the terminal in given lower value delivering a first subtraction result;
[0021] - a subtraction between the given upper bound and the identifier of the frame of received data delivering a second subtraction result; and
[0022] - a comparison between the given upper bound and the identifier of the frame of data received delivering a comparison result.
[0023] The subtractions and comparison are performed with operands interpreted as integers within a range of amplitude values 2N. The delivered membership information is representative of the membership of the identifier of the data frame received at the given interval when the following conditions are all verified:
[0024] - the first subtraction result, when said first result is interpreted in the range of result values between -2N 1 and 2N I-1, is positive or zero;
[0025] - the second subtraction result, when said second result is interpreted in the range of result values between -2N 1 and 2N1-1, is positive or zero; and
[0026] - the comparison result is representative of the fact that the given upper bound is not equal to the received data frame ID.
[0027] Thus, determining whether or not the identifier of the received data frame belongs to an interval is simple and efficient. Indeed, only the comparisons with the limits of the interval in question are tested. Thus, it is not necessary to test all the values associated with the identifiers already received. Furthermore, the convention of implementing the operations linked to the comparisons on signed integers makes it possible to manage the circularity of the identifiers coded on N bits (i.e. the modulo 2N effect) and thus to carry out the comparisons via simple subtractions. Such operations linked to the comparisons in question can also be carried out in parallel, which further improves the speed of execution of the present method.
[0028] In certain embodiments, the delivered membership information is representative of non-membership of the identifier of said data frame received at the given interval when at least one of the following conditions is verified:
[0029] - the first subtraction result, when said first result is interpreted in the range of result values between -2N 1 and 2N I-1, is strictly negative;
[0030] - the second subtraction result, when said second result is interpreted in the range of result values between -2N 1 and 2N1-1, is strictly negative; or
[0031] - the comparison result is representative of the fact that the given upper bound is equal to the identifier of said received data frame.
[0032] In some embodiments, said update comprises, for at least one given interval defined by a given lower bound and a given upper bound, the given interval including the given lower bound and excluding the given upper bound:
[0033] - a comparison between the given upper bound and the identifier of said frame of received data delivering a higher comparison result, the comparison being carried out with operands interpreted as integers included in a range of values of amplitude 2N;
[0034] - if the upper comparison result is representative of the fact that the identifier of the received data frame is equal to the given upper bound, an extension of the given interval so as to include the identifier of the received data frame delivering an extended interval defined by the given lower bound and by the given upper bound incremented by one.
[0035] In some embodiments, said update comprises, when said at least one interval comprises a plurality of intervals, and if said incremented given upper bound is equal to the lower bound of another interval than the given interval among the plurality of intervals:
[0036] - a fusion of the given interval and the other interval delivering an interval merged defined by the lower bound of the given interval and the upper bound of the other interval, the merged interval including the lower bound of the given interval and excluding the upper bound of the other interval.
[0037] In some embodiments, said updating comprises, when said at least one interval comprises a plurality of intervals:
[0038] - a subtraction between the given upper limit incremented and the lower limit of another interval than the given interval among the plurality of intervals, the other interval comprising the smallest identifiers among the intervals of the plurality, the subtraction being carried out with operands interpreted as integers included in a range of values of amplitude 2N and delivering an amplitude of received identifiers; and
[0039] - if the amplitude of identifiers received is strictly greater than 2N ', an increment increasing by one unit the lower bound of said other interval so as to maintain the difference between the given upper bound incremented and the lower bound of the other interval less than or equal to 2N '.
[0040] In some embodiments, the difference between the incremented given upper bound and the lower bound of the other interval may be less than or equal to another value than 2N '. In such embodiments, if the amplitude of identifiers received is strictly greater than said other value, the lower bound of said other in interval is incremented by one unit so as to keep the difference between the given upper bound incremented and the lower bound of the other interval less than or equal to said other value.
[0041] Such a limitation of the managed dynamics of the received identifiers makes it possible, for example, to implement the test of whether or not the identifier of the received data frame belongs to a given interval via simple subtractions with the limits of the interval in question by working on signed integers.
[0042] In certain embodiments, said update comprises, for said at least one given interval defined by a given lower bound and a given upper bound:
[0043] - a comparison between the given lower bound and the identifier of the frame of received data delivering a lower comparison result, the comparison being carried out with operands interpreted as integers included in a range of values of amplitude 2N;
[0044] - if the lower comparison result is representative of the fact that the identifier of the received data frame is equal to the given lower bound decremented by one, an extension of the given interval so as to include the identifier of the received data frame delivering an extended interval defined by the given lower bound decremented by one and by the upper bound.
[0045] In some embodiments, said update comprises, when said at least one interval comprises a plurality of intervals, and if the decremented given lower bound is equal to the upper bound of another interval than the given interval among the plurality of intervals:
[0046] - a merger of the given interval and the other interval delivering an interval merged defined by the lower bound of the other interval and by the upper bound of the given interval, the merged interval including the lower bound of the other interval and excluding the upper bound of the given interval.
[0047] In some embodiments, said updating comprises, when said at least one interval comprises a plurality of intervals:
[0048] - a subtraction between the upper limit of an interval other than the interval given among the plurality of intervals, the other interval comprising the largest identifiers among the intervals of the plurality, and said given lower bound decremented. The subtraction is performed with operands interpreted as integers included in a range of values of amplitude 2N and delivers an amplitude of received identifiers.
[0049] Said extension of the given interval is executed only if the amplitude of received identifiers is less than or equal to a predetermined threshold. For example, the predetermined threshold is equal to 2N '.
[0050] Thus, the amplitude of the identifiers managed via the present method is kept lower than or equal to the predetermined threshold (eg lower than or equal to 2N '), thereby making it possible to implement in a simple and efficient manner the test of whether or not an identifier of a data frame received belongs to a given interval via simple subtractions with the limits of the interval in question by working on signed integers.
[0051] In some embodiments, the comparisons are repeated for each interval among said at least one interval delivering at least one respective upper comparison result and at least one respective lower comparison result. If said at least one upper comparison result is representative of the fact that the identifier of the received data frame is not equal to any interval upper bound, and if said at least one lower comparison result is representative of the fact that the identifier of the received data frame is not equal to any interval lower bound decremented by one, said update comprises:
[0052] - a creation of a new interval defined by a lower bound equal to the identifier of the received data frame and an upper bound equal to the identifier of the received data frame incremented by one unit, the new interval including the lower bound equal to the identifier of the received data frame and excluding the upper bound equal to the identifier of the received data frame plus one unit.
[0053] In some embodiments, said update comprises:
[0054] - a subtraction between the upper limit of the new interval and the lower limit of another interval than the new interval among said at least one interval, the other interval comprising the smallest identifiers among the intervals of the plurality. The subtraction is carried out with operands interpreted as integers included in a range of values of amplitude 2N and delivers another amplitude of received identifiers.
[0055] If the other amplitude of identifiers received is strictly greater than another predetermined threshold (eg the other predetermined threshold is equal to 2N '), the creation of a new interval comprises an incrementation of the lower limit of said other interval so as to maintain the difference between the given upper limit incremented and the lower limit of the other interval less than or equal to the other predetermined threshold.
[0056] In some embodiments, said updating comprises, when said at least one interval comprises a plurality of intervals, and when a total number of intervals among the plurality of intervals is greater than a predetermined maximum number of intervals after execution of said creation of a new interval:
[0057] - a destruction of an interval comprising the smallest identifiers among the in intervals of plurality.
[0058] In some embodiments, said update comprises, when said at at least one interval comprises a plurality of intervals, and when a total number of intervals among the plurality of intervals is greater than a predetermined maximum number of intervals after performing said creation of a new interval:
[0059] - a merger of the two intervals comprising the smallest identifiers among the in intervals of the plurality. In some embodiments, the method comprises, when no other data frame has been received before the received data frame:
[0060] - a creation of a first continuous interval of identifiers defined by a first lower bound and a first upper bound. The first interval includes the first lower bound and excludes the first upper bound, the first lower bound being equal to the identifier of the received data frame and the first upper bound being equal to the identifier of the received data frame incremented by one, delivering said at least one interval.
[0061] The invention also relates to a computer program comprising program code instructions for implementing a method as described above, according to any one of its different embodiments, when executed on a computer.
[0062] The invention also relates to an electronic device for managing data frames. Such a device comprises a reprogrammable computing machine or a dedicated computing machine configured to implement the steps of the data frame management method as described above (according to any one of the various embodiments mentioned above). Thus, the characteristics and advantages of this device are the same as those of the corresponding steps of the data frame management method described above. Consequently, they are not detailed further.
[0063] The invention also relates to a telecommunications receiver comprising an electronic device for managing data frames as described previously (according to any one of the different embodiments mentioned above). List of figures
[0064] Other aims, characteristics and advantages of the invention will appear more clearly on reading the following description, given as a simple illustrative, and non-limiting, example, in relation to the figures, among which:
[0065] [Fig. 1] represents a telecommunications receiver communicatively connected to a source switch via two data paths each passing through a respective network switch according to an embodiment of the invention;
[0066] [Fig.2] represents an example of a device structure allowing the implementation, within the receiver of [Fig.l], of the steps of the method for managing received data frames of [Fig.3] according to an embodiment of the invention;
[0067] [Fig.3] represents the steps of a method for managing data frames received by the receiver of [Fig.l] according to one embodiment of the invention;
[0068] [Fig.4] represents frame identifiers identifying the received data frames by the receiver of [Fig.l] according to one embodiment of the invention.
[0069] Detailed description of embodiments of the invention
[0070] We now present, in relation to [Fig.l], a telecommunications receiver 120 communicatively connected to a source switch 100 via two data paths each passing through a respective network switch 110a, 110b according to an embodiment of the invention. For example, the communication between the receiver 120, the source switch 100 and the network switches 110a, 110b implements an Ethernet protocol. However, in other embodiments, other communication protocols are implemented, e.g. of the type implemented in embedded systems such as the CAN protocol (for “Controller Area Network” in English).
[0071] Similarly, in the embodiment of [Fig.l], two data paths are considered between the source switch 100 and the receiver 120. However, in other embodiments more than two data paths exist between the source switch 100 and the receiver 120.
[0072] Returning to [Fig.l], the transmission of data frames between the source switch 100 and the receiver 120 implements a redundancy function of the type known and described above in the “Prior Art” section. In this way, the receiver 120 receives the data frames transmitted by the source switch 100 via two member streams of a data stream. Each member stream follows a different data path. The member streams each carry a copy of the data frames transmitted by the source switch 100. Furthermore, the frames carry a respective frame identifier of the binary word type coded on N bits, successive frames in a given member stream carrying identifiers interpreted as successive integers modulo 2N.
[0073] In order to identify the redundant received frames, the receiver 120 comprises an electronic device 120d implementing means enabling it to implement the data frame management method described below in relation to [Fig. 3]. More particularly, according to the embodiment of [Fig. 2], the electronic device 120d comprises a random access memory 203 (for example a RAM memory), a processing unit 202 equipped for example with a processor, and controlled by a computer program stored in a read-only memory 201 (for example a ROM memory or a hard disk). Upon initialization, the code instructions of the computer program are for example loaded into the random access memory 203 before being executed by the processor of the processing unit 202.
[0074] This [Fig.2] illustrates only one particular way, among several possible, to produce the electronic device 120d so that it performs certain steps of the data frame management method according to the invention (according to any one of the embodiments and / or variants described below in relation to [Fig. 3]). Indeed, these steps can be performed indifferently on a reprogrammable computing machine (a PC computer, a DSP processor or a microcontroller) executing a program comprising a sequence of instructions, or on a dedicated computing machine (for example a set of logic gates such as an FPGA or an ASIC, or any other hardware module).
[0075] In the case where the electronic device 120d is produced with a reprogrammable computing machine, the corresponding program (i.e. the sequence of instructions) may be stored in a removable storage medium (such as for example a CD-ROM, a DVD-ROM, a USB key) or not, this storage medium being partially or totally readable by a computer or a processor.
[0076] We now present, in relation to [Fig. 3], the steps of a method for managing data frames received by the receiver 120 according to an embodiment of the invention.
[0077] More particularly, upon reception of a first data frame by the receiver 120 (e.g. when no data frame has yet been previously received by the receiver 120 or after a reset of the logic of the electronic device 120d), during a step E300, the electronic device 120d executes a creation of a first continuous interval of identifiers defined by a first lower bound and a first upper bound. More particularly, the first interval includes the first lower bound and excludes the first upper bound. In other words, the first interval is a closed interval with respect to the first lower bound and is an open interval with respect to the first upper bound.
[0078] However, in other embodiments, another convention is used to define the continuous intervals of identifiers. For example, the intervals are open with respect to the lower bound and closed with respect to the upper bound.
[0079] Returning to [Fig.3], the first lower bound is equal to the identifier of the first data frame received. The first upper bound is equal to the identifier of the first data frame received incremented by one.
[0080] However, such a step is not systematically executed. Indeed, as data frames are received by the receiver 120, a plurality of continuous intervals of identifiers can be created, in particular in the event of failures within a redundant communications network as described further below. In this way, a set of continuous intervals of identifiers is managed by the data frame management method according to the present technique, the set being able to reduce to a single continuous interval of identifiers in a nominal operating case, i.e. without failures within a redundant communications network, or after the reception of a first frame as discussed above. Furthermore, an interval is continuous in the sense that the successive identifiers that compose it are successive integers when taken modulo 2N.
[0081] Thus, when receiving a data frame via a given member stream, the electronic device 120d executes, during a step E310, a determination of whether or not the identifier of the received data frame belongs to at least one continuous interval of identifiers interpreted as successive integers modulo 2N, the interval being defined by a lower bound and an upper bound. The identifiers of such an interval identify corresponding frames previously received by the receiver 120 via the member streams. At the end of step E310, membership information is thus delivered.
[0082] If the membership information is representative of the membership of the identifier of the data frame received in said at least one interval, during a step E320, the electronic device 120d executes a generation of reception information representative of the fact that the received data frame was previously received by the receiver 120 via a member stream other than the given member stream.
[0083] If the membership information is representative of the non-membership of the identifier of said data frame received to said at least one interval, during a step E340, the electronic device 120d executes an update of said at least one interval to take into account the reception of the received data frame.
[0084] In view of the above, it is observed that the storage of continuous intervals of identifiers defined by their respective lower and upper bounds makes it possible to limit the quantity of data stored in order to determine whether a received data frame has already been received via another member stream (e.g. only the lower and upper bounds of the interval are stored in a memory of the electronic device 120d). Indeed, in practice, failures within a redundant communications network lead to losses of data frames “in bulk”, i.e. to losses of sets of successive data frames. Conversely, when the network operates without failures, the receiver 120 receives the data frames successively.In the latter case, according to the present approach, a single interval is stored via its lower bound and its upper bound, the latter being incremented as data frames arrive correctly as discussed further below.
[0085] Thus, the approach of storing continuous intervals of identifiers already received, the intervals being defined by their respective lower and upper bounds, is representative of the behavior encountered in practice in a real network. This eliminates the need to store exhaustive information about the reception of each frame without having to multiply the number of intervals to manage, with different intervals only appearing when a problem occurs in the network.
[0086] Returning to [Fig. 3], if the reception information is generated (step E320 described above), during a step E330 the electronic device 120d executes a destruction of the received data frame. Thus, the duplicate received frame is deleted.
[0087] Furthermore, according to the embodiment of [Fig.3], the step E310 of determining whether or not the identifier of the received data frame belongs to at least one continuous interval of identifiers comprises, for at least one given interval defined by a given lower bound and a given upper bound, the given interval including the given lower bound and excluding the given upper bound:
[0088] - a step E310a of subtraction between the identifier of the received data frame and the given lower bound delivering a first subtraction result;
[0089] - a step E310b of subtraction between the given upper limit and the identifier of the received data frame delivering a second subtraction result; and
[0090] - a step E310c of comparison between the given upper bound and the identifier of the received data frame (eg we test the equality between the given upper bound and the identifier of the received data frame) delivering a comparison result.
[0091] More particularly, the subtractions and the comparison are carried out with operands interpreted as integers included in a range of values of amplitude 2N.
[0092] Indeed, in the context of interval management, it is preferable to have a total order to classify the received data frames. The identifiers being of the binary word type coded on N bits which can be interpreted as an integer, the set of frame identifiers is a closed set of 2N numbers. The numbers being ordered between them, this set is circular due to the modulo effect and can be represented as such as illustrated in [Fig.4]. In such a set, if the identifiers are interpreted as unsigned integers, i.e. between 0 and 2N-1, it is not possible to directly use the upper and lower comparators to determine the order of the frame identifiers. For example, for a frame identifier coded on 16 bits (N = 16), if we take b = 65000, then 0 > b in this set.To solve this problem, in the present embodiment, we take the convention that two consecutively received frames have frame identifiers different by at most 2N1-1, i.e. the frame identifiers are here interpreted as signed integers between -2N 1 and 2N1-1. According to such a convention, we can thus subtract two identifiers and check whether the result is positive or negative in order to determine in a simple and efficient manner which identifier corresponds to a received frame. previously.
[0093] For example, consider the identifiers b and s which correspond to the integers b = 60000 and s = 50000 when the binary words (coded on N bits) representing the identifiers in question are interpreted as unsigned integers between 0 and 2N -1 ([Fig.4]). The same identifiers b and s correspond to the relative integers b = -5536 and s = -15536 when the binary words (coded on N bits) are interpreted as relative integers between -2N 1 and 2N1-1. According to this convention, we have: sb = -10000 which is negative. The negative sign of the difference is representative of the fact that the frame identified by the identifier s was transmitted before the frame identified by the identifier b. According to another example, with the same value of the identifier b, we have for example 0-b = +5563 which is positive according to this convention.The positive sign of the difference represents the fact that the frame identified by identifier 0 was emitted after the frame identified by identifier b.
[0094] However, generally speaking, the same technical effect is achieved by interpreting the identifiers as integers within a range of values of magnitude 2N. According to such a convention, we can subtract (or compare) two identifiers and check whether the result, when said result is interpreted (or reduced) within the range of values of results between -2N 1 and 2N1-1, is compared to zero.
[0095] In other embodiments, the convention is also taken that two frames received consecutively have frame identifiers different by at most one value other than 2N '-1 (i.e. in the case where the past and the future are not separated into two sets of identifiers of identical sizes, but on the contrary into two sets of identifiers of different sizes).
[0096] Returning to [Fig.3], based on the present convention for the interpretation of frame identifiers as signed integers between -2N 1 and 2N1-1, the membership information delivered during step E310 is representative of the membership of the identifier of the data frame received at the given interval when the following conditions are all verified:
[0097] - the first subtraction result (step E310a), when said first result is interpreted in the range of result values between -2N 1 and 2N I-1, is positive or zero;
[0098] - the second subtraction result (step E310b), when said second result is interpreted in the range of result values between -2N 1 and 2N1-1, is positive or zero; and
[0099] - the comparison result (step E310c) is representative of the fact that the terminal su upper data frame is not equal to the received data frame identifier.
[0100] Thus, the determination of whether or not the identifier of the frame belongs to data received at an interval is simple and efficient. Indeed, only comparisons with the limits of the interval in question are tested. Thus, it is not necessary to test all the values associated with the identifiers already received. Such operations related to the comparisons in question can also be carried out in parallel, which further improves the execution speed of the present method.
[0101] Conversely, the membership information delivered during step E310 is representative of non-membership of the identifier of the data frame received at the given interval when at least one of the following conditions is verified:
[0102] - the first subtraction result (step E310a), when said first result is interpreted in the range of result values between -2N 1 and 2N I-1, is strictly negative;
[0103] - the second subtraction result (step E310b), when said second result is interpreted in the range of result values between -2N 1 and 2N1-1, is strictly negative; or
[0104] - the comparison result (step E310c) is representative of the fact that the terminal su superior data frame is equal to the identifier of said received data frame.
[0105] However, in other embodiments, the determination of whether or not the identifier of the received data frame belongs to at least one continuous interval of identifiers is based on other approaches, e.g. a comparison of the identifier of the received data frame with each of the different identifiers included in said at least one continuous interval of identifiers.
[0106] Returning to [Fig.3], step E340 of updating said at least one interval to take into account the reception of the received data frame comprises, for at least one given interval defined by a given lower bound and a given upper bound, the given interval including the given lower bound and excluding the given upper bound:
[0107] - a step E340a of comparison between the given upper bound and the identifier of the received data frame delivering a higher comparison result. The comparison is performed with operands interpreted as integers within a range of amplitude values 2N as discussed above in relation to [Fig.4];
[0108] - if the upper comparison result is representative of the fact that the identifier of the received data frame is equal to the given upper bound, a step E340b of extending the given interval so as to include the identifier of the received data frame delivering an extended interval defined by the given lower bound and by the given upper bound incremented by one unit.
[0109] However, in other embodiments other conventions are used to define the continuous intervals of identifiers. For example, the intervals are open with respect to the lower bound and closed with respect to the upper bound. In these embodiments, the step E340 of updating said at least one interval implements eg symmetrical steps with respect to the upper and lower bounds.
[0110] Returning to [Fig.3], step E340 of updating said at least one interval to take into account the reception of the received data frame comprises, when said at least one interval comprises a plurality of intervals, and if the incremented given upper bound is equal to the lower bound of an interval other than the given interval among the plurality of intervals:
[0111] - a step E340c of merging the given interval and the other interval delivering a merged interval defined by the lower bound of the given interval and the upper bound of the other interval, the merged interval including the lower bound of the given interval and excluding the upper bound of the other interval.
[0112] However, in other embodiments other conventions are used to define the continuous intervals of identifiers. For example, the intervals are open with respect to the lower bound and closed with respect to the upper bound.
[0113] Returning to [Fig.3], step E340 of updating said at least one interval to take into account the reception of the received data frame comprises, when said at least one interval comprises a plurality of intervals, a step E340d comprising:
[0114] - a subtraction between the given upper bound incremented and the lower bound of another interval than the given interval among the plurality of intervals. The other interval comprises the smallest identifiers among the intervals of the plurality. The subtraction is performed with operands interpreted as integers within a range of values of magnitude 2N, as discussed above in relation to [Fig.4], and delivering an amplitude of received identifiers; and
[0115] - if the amplitude of identifiers received is strictly greater than 2N ', an increment mentation of one unit of the lower bound of the other interval so as to maintain a difference between, on the one hand, the given upper bound incremented and, on the other hand, the lower bound of the other interval, less than or equal to 2N '.
[0116] In other embodiments, the difference between the incremented given upper bound and the lower bound of the other interval may be less than or equal to another value than 2N '. In such embodiments, if the amplitude of identifiers received is strictly greater than said other value, the lower bound of said other interval is incremented by one unit so as to maintain the difference between the incremented given upper bound and the lower bound of the other interval less than or equal to said other value.
[0117] Such a limitation of the managed dynamics of the received identifiers makes it possible, for example, to implement the test of whether or not the identifier of the received data frame belongs to a given interval via simple subtractions with the bounds of the interval in question as discussed above in relation to [Fig.4]. However, in other embodiments, other conventions are considered for the interpretation of the frame identifiers, e.g. as unsigned integers. This may be the case when the determination of whether or not the identifier of the received data frame belongs to a continuous interval of identifiers is based on other approaches such as e.g. a comparison of the identifier of the received data frame with each of the different identifiers included in the interval in question.
[0118] Returning to [Fig.3], step E340 of updating said at least one interval to take into account the reception of the received data frame comprises, for said at least one given interval defined by a given lower bound and a given upper bound:
[0119] - a step E340e of comparison between the given lower bound and the identifier of the received data frame delivering a lower comparison result. The comparison is performed with operands interpreted as integers within a range of amplitude values 2N as discussed above in relation to [Fig.4];
[0120] - if the lower comparison result is representative of the fact that the identifier of the received data frame is equal to the given lower bound decremented by one unit, a step E340f of extending the given interval so as to include the identifier of the received data frame delivering an extended interval defined by the given lower bound decremented by one unit and by the upper bound.
[0121] However, in other embodiments other conventions are used to define the continuous intervals of identifiers. For example, the intervals are open with respect to the lower bound and closed with respect to the upper bound. In these embodiments, the step E340 of updating said at least one interval implements eg symmetrical steps with respect to the upper and lower bounds as also discussed above in relation to steps E340a and E340b.
[0122] Returning to [Fig.3], step E340 of updating said at least one interval to take into account the reception of the received data frame comprises, when said at least one interval comprises a plurality of intervals, and if the decremented given lower bound is equal to the upper bound of an interval other than the given interval among the plurality of intervals:
[0123] - a step E340g of merging the given interval and the other interval delivering a merged interval defined by the lower bound of the other interval and by the upper bound lower bound of the given interval, the merged interval including the lower bound of the other interval and excluding the upper bound of the given interval.
[0124] However, in other embodiments other conventions are used to define the continuous intervals of identifiers. For example, the intervals are open with respect to the lower bound and closed with respect to the upper bound.
[0125] Returning to [Fig.3], step E340 of updating said at least one interval to take into account the reception of the received data frame comprises, when said at least one interval comprises a plurality of intervals:
[0126] - a step E340h of subtraction between, on the one hand, the upper limit of another interval than the given interval among the plurality of intervals, the other interval comprising the largest identifiers among the intervals of the plurality and, on the other hand, the given lower bound decremented. The subtraction is carried out with operands interpreted as integers included in a range of values of amplitude 2N and delivers an amplitude of received identifiers. The step E340f of extending the given interval is executed only if the amplitude of received identifiers is less than or equal to a predetermined threshold. For example, the predetermined threshold is equal to 2NL
[0127] Thus, the amplitude of the identifiers managed via the present method is kept less than or equal to the predetermined threshold, thereby making it possible to simply and efficiently implement the test of whether or not an identifier of a received data frame belongs to a given interval via simple subtractions with the bounds of the interval in question as discussed above in relation to [Fig.4]. However, in other embodiments, other conventions are considered for the interpretation of the frame identifiers, eg as unsigned integers as discussed above.
[0128] Returning to [Fig.3], the comparison steps E340a and E340e are repeated for each interval among said at least one interval delivering at least one respective upper comparison result and at least one respective lower comparison result.
[0129] If said at least one upper comparison result is representative of the fact that the identifier of the received data frame is not equal to any upper interval limit, and if said at least one lower comparison result is representative of the fact that the identifier of the received data frame is not equal to any lower interval limit decremented by one unit, the updating step E340 comprises:
[0130] - a step E340i of creating a new interval defined by a lower bound equal to the identifier of the received data frame and an upper bound equal to the identifier of the received data frame incremented by one, the new interval including the lower bound equal to the identifier of the received data frame and excluding the upper bound equal to the identifier of the received data frame plus one unit.
[0131] In certain embodiments, the update step E340 comprises:
[0132] - a subtraction between the upper bound of the new interval and the lower bound of another interval than the new interval among said at least one interval, the other interval comprising the smallest identifiers among the intervals of the plurality. The subtraction is carried out with operands interpreted as integers included in a range of values of amplitude 2N and delivers another amplitude of received identifiers.
[0133] If the other amplitude of identifiers received is strictly greater than another predetermined threshold (eg the other predetermined threshold is equal to 2N '), the step E340i of creating a new interval comprises an incrementation of the lower limit of the other interval so as to maintain the difference between the given incremented upper limit and the lower limit of the other interval less than or equal to the other predetermined threshold.
[0134] Thus, the amplitude of the identifiers managed via the present method is kept lower than or equal to the other predetermined threshold, thereby making it possible to simply and efficiently implement the test of whether or not an identifier of a received data frame belongs to a given interval via simple subtractions with the bounds of the interval in question as discussed above in relation to [Fig.4]. However, in other embodiments, other conventions are considered for the interpretation of the frame identifiers, eg as unsigned integers as discussed above.
[0135] Furthermore, the updating step E340 comprises, when said at least one interval comprises a plurality of intervals, and when a total number of intervals among the plurality of intervals is greater than a predetermined maximum number of intervals after execution of the step E340i of creating a new interval:
[0136] - a step E340j of destruction of an interval comprising the smallest iden tifiers among the intervals of the plurality.
[0137] In certain embodiments, the updating step E340 comprises, when said at least one interval comprises a plurality of intervals, and when a total number of intervals among the plurality of intervals is greater than a predetermined maximum number of intervals after execution of said creation of a new interval:
[0138] - a step of merging the two intervals comprising the smallest identifiers among the intervals of the plurality.
[0139] Thus, the number of intervals in the plurality does not exceed the predetermined maximum number of intervals. The computational load and the amount of data stored are is thus limited. Furthermore, the interval comprising the smallest identifiers corresponds to the frames received first by the receiver 120, i.e. the oldest frames. It is thus unlikely that replicas of these frames are received at the considered instant of execution of the step E340i. The interval comprising the smallest identifiers can thus be destroyed as a priority.
[0140] According to the implementations considered, the steps E310, E320, E330 and E340 described above are implemented iteratively for the different data frames received successively by the receiver 120. Alternatively, the steps E310, E320, E330 and E340 described above are implemented for a predetermined number of data frames received successively by the receiver 120 eg, before a reset of the logic of the electronic device 120d and a new implementation of the step E300 then of the steps E310, E320, E330 and E340, iteratively or for a predetermined number of data frames received.
[0141] Table [Table 1] below illustrates the implementation of the data frame management method discussed above in relation to [Fig.3] on a practical case.
[0142] [Tables 1] Frame Action Io Ii I2 L [33; 35[ [37; 49[ [50; 120[ [125; 160[ Fno Destruction [33; 35[ [37; 49[ [50; 120[ [125; 160[ F160 - [33; 35[ [37; 49[ [50; 120[ [125; 161[ F161 - [34; 35[ [37; 49[ [50; 120[ [125; 162[ F49 - [34; 35[ [37; 120[ [125; 162[ - F123 - [34; 35[ [37; 120[ [123; 124[ [125; 162[
[0143] More particularly, it is considered here that the predetermined maximum number of intervals (see step E340i discussed above in relation to [Fig.3]) is set at 4. It is also considered that the frame identifiers are binary words coded on 8 bits. Furthermore, the convention discussed above is considered here according to which the frame identifiers are interpreted as signed integers between -2N 1 and 2 N1-1, here with N=8, during comparisons or operations eg of the subtraction type. According to the mechanism discussed above in relation to step E340h, the amplitude of the identifiers managed via the present method is thus kept less than or equal to 2N ', i.e. 128 in the present case.
[0144] Let us recall that the existence of an interval of identifiers noted [z; j[ indicates that the frames F„ F / +;,..., F?; respectively conveying the identifiers i, i+1,... ,jl have been previously received by the receiver 120 via all or part of the different streams members. We thus consider that we are at a time when the receiver 120 has already received the frames corresponding to the identifier intervals Io = [33; 35[, Ii = [37; 49[, I 2 = [50; 120[ and I3 = [125; 160[. We observe in Table 1 that:
[0145] - the 2nd line corresponds to the reception of the frame Fn0 by the receiver 120: as the identifier 110 is part of the interval I2, the frame Fn0 is deleted (steps E310, E320 and E330 described above in relation to [Fig.3]).
[0146] - the 3rd line corresponds to the reception of the Fi60 frame by the receiver 120: the upper limit of the interval I3 is incremented (step E340d described above in relation to [Fig.3]).
[0147] - the 4th line corresponds to the reception of the Fi6i frame by the receiver 120: the upper bound of the interval I3 is incremented. But since the difference between the largest identifier, 162, and the smallest identifier, 33, is greater than 128, the value of the minimum identifier is increased from 33 to 34 (step E340d described above in relation to [Fig.3]).
[0148] - the 5th line corresponds to the reception of frame F49 by receiver 120: we observe that the intervals E and I2 are consecutive (step E340g described above in relation to [Fig.3]). We therefore merge the intervals E and I2, the interval I3 becoming empty.
[0149] - the 6th line corresponds to the reception of the frame Fi23 by the receiver 120: we created a new interval between E and I2 and we find 4 intervals.
Claims
Claims
1. Method for managing data frames received by a telecommunications receiver (120) via a plurality of member streams of a data stream, the member streams each conveying a copy of said frames, the frames conveying a respective frame identifier of the binary word type coded on N bits, successive frames in a given member stream conveying identifiers interpreted as successive integers modulo 2N, characterized in that an electronic device (120d) performs for at least one data frame received via a given member stream: - a determination (E310) of whether or not the identifier of said received data frame belongs to at least one continuous interval of identifiers interpreted as successive integers modulo 2N, the interval being defined by a lower bound and an upper bound,said interval identifiers identifying corresponding frames previously received by the receiver via said member streams, said determination delivering membership information; - if the membership information is representative of the membership of the identifier of said received data frame to said at least one interval, a generation (E320) of reception information representative of the fact that said received data frame was previously received by the receiver via a member stream other than said given member stream; - if the membership information is representative of the non-membership of the identifier of said received data frame to said at least one interval, an update (E340) of said at least one interval to take into account the reception of said received data frame.,
2. Method according to claim 1, comprising, if the reception information is generated: a destruction (E330) of said received data frame.
3. Method according to claim 1 or 2, wherein said determination of whether or not the identifier of said received data frame belongs to at least one interval comprises, for at least one given interval defined by a given lower bound and a given upper bound, the given interval including the given lower bound and excluding the given upper bound: - a subtraction (E310a) between the identifier of said received data frame and the given lower bound delivering a first subtraction result; - a subtraction (E310b) between the given upper limit and the identifier of said received data frame delivering a second subtraction result; and - a comparison (E310c) between the given upper bound and the identifier of said received data frame delivering a comparison result, in which said subtractions and said comparison are carried out with operands interpreted as integers included in a range of values of amplitude 2N, in which the delivered membership information is representative of the membership of the identifier of said received data frame in said given interval when the following conditions are all verified: - the first subtraction result, when said first result is interpreted in the range of result values between -2N 1 and 2N1-1, is positive or zero; - the second subtraction result, when said second result is interpreted in the range of result values between -2N 1 and 2N 1 -1, is positive or zero; and - the comparison result is representative of the fact that the given upper bound is not equal to the identifier of said received data frame.
4. Method according to any one of claims 1 to 3, in which the update (E340) comprises, for at least one given interval defined by a given lower bound and a given upper bound, the given interval including the given lower bound and excluding the given upper bound: - a comparison (E340a) between the given upper bound and the identifier of said received data frame delivering an upper comparison result, the comparison being carried out with operands interpreted as integers included in a range of amplitude values 2N; - if the upper comparison result is representative of the fact that the identifier of said received data frame is equal to the given upper bound, an extension (E340b) of said given interval so to include the identifier of said received data frame delivering an extended interval defined by the given lower bound and by the given upper bound incremented by one unit.
5. Method according to claim 4, wherein the update (E340) comprises, when said at least one interval comprises a plurality of intervals, and if said incremented given upper bound is equal to the lower bound of another interval than said given interval among said plurality of intervals: - a merger (E340c) of said given interval and said other interval delivering a merged interval defined by the lower bound of said given interval and the upper bound of said other interval, the merged interval including the lower bound of said given interval and excluding the upper bound of said other interval.
6. Method according to claim 4, wherein the update (E340) comprises, when said at least one interval comprises a plurality of intervals: - a subtraction (E340d) between said incremented given upper bound and the lower bound of another interval than said given interval among said plurality of intervals, said other interval comprising the smallest identifiers among the intervals of the plurality, the subtraction being carried out with operands interpreted as integers included in a range of values of amplitude 2N delivering an amplitude of received identifiers; and - if the amplitude of received identifiers is strictly greater than 2N ', an incrementation (E340d) of one unit of the lower bound of said other interval so as to maintain the difference between said incremented given upper bound and the lower bound of the other interval less than or equal to 2N1.
7. Method according to any one of claims 4 to 6, in which the update (E340) comprises: - a comparison (E340e) between the given lower bound and the identifier of said received data frame delivering a lower comparison result, the comparison being carried out with operands interpreted as integers included in a range of values of amplitude 2N; - if the lower comparison result is representative of the fact that the identifier of said received data frame is equal to the given lower bound decremented by one unit, an extension (E340f) of said given interval so as to include the identifier of said received data frame delivering an extended interval defined by the given lower bound decremented by one unit and by the upper bound.
8. Method according to claim 7, wherein the update (E340) comprises, when said at least one interval comprises a plurality of intervals, and if said decremented given lower bound is equal to the upper bound of another interval than said given interval among said plurality of intervals: - a merger (E340g) of said given interval and said other interval delivering a merged interval defined by the lower bound of said other interval and by the upper bound of said given interval, the merged interval including the lower bound of said other interval and excluding the upper bound of said given interval.
9. Method according to claim 7, wherein the update (E340a) comprises, when said at least one interval comprises a plurality of intervals: - a subtraction (E340h) between the upper limit of another interval than said given interval among said plurality of intervals, said other interval comprising the largest identifiers among the intervals of the plurality, and said decremented given lower limit, the subtraction being carried out with operands interpreted as integers included in a range of values of amplitude 2N and delivering an amplitude of received identifiers, said extension (E340f) of said given interval being executed only if the amplitude of received identifiers is less than or equal to a predetermined threshold.
10. Method according to any one of claims 7 to 9, wherein, said comparisons being repeated for each interval among said at least one interval delivering at least one respective upper comparison result and at least one respective lower comparison result, if said at least one upper comparison result is representative of the fact that said identifier of said received data frame is not equal to any interval upper bound, and if said at least one lower comparison result is representative of the fact that said identifier of said received data frame is not equal to any interval lower bound decremented by one unit, the update (E340) comprises: - a creation (E340i) of a new interval defined by an in- lower bound equal to the identifier of said received data frame and an upper bound equal to the identifier of said received data frame incremented by one unit, the new interval including the lower bound equal to the identifier of said received data frame and excluding the upper bound equal to the identifier of said received data frame plus one unit.
11. Method according to claim 10, wherein the update (E340) comprises, when said at least one interval comprises a plurality of intervals, and when a total number of intervals among the plurality of intervals is greater than a predetermined maximum number of intervals after execution of said creation (E340i) of a new interval: - a destruction of an interval comprising the smallest identifiers among the intervals of the plurality.
12. A computer program product comprising program code instructions for implementing the method according to any one of claims 1 to 11, when said program is executed on a computer.
13. Electronic device (120d) for managing data frames received by a telecommunications receiver (120) via a plurality of member streams of a data stream, the member streams each conveying a copy of said frames, the frames conveying a respective frame identifier of the binary word type coded on N bits, successive frames in a given member stream conveying identifiers interpreted as successive integers modulo 2N, characterized in that it comprises a reprogrammable computing machine (202) or a dedicated computing machine configured to perform for at least one data frame received via a given member stream: - a determination (E310) of whether or not the identifier of said received data frame belongs to at least one continuous interval of identifiers interpreted as successive integers modulo 2N, the interval being defined by a lower bound and an upper bound,said interval identifiers identifying corresponding frames previously received by the receiver via said member streams, said determination delivering membership information; - if the membership information is representative of the membership of, the identifier of said data frame received at said at least one interval, a generation (E320) of reception information representative of the fact that said received data frame was previously received by the receiver via a member stream other than said given member stream; - if the membership information is representative of the non-membership of the identifier of said data frame received in said at least one interval, an update (E340) of said at least one interval to take into account the reception of said received data frame.
14. Telecommunications receiver (120) comprising an electronic device (120d) for managing data frames according to claim 13.