EP2507948A1 - Device and method for aggregating data received over a plurality of physical links - Google Patents

Device and method for aggregating data received over a plurality of physical links

Info

Publication number
EP2507948A1
EP2507948A1 EP10784779A EP10784779A EP2507948A1 EP 2507948 A1 EP2507948 A1 EP 2507948A1 EP 10784779 A EP10784779 A EP 10784779A EP 10784779 A EP10784779 A EP 10784779A EP 2507948 A1 EP2507948 A1 EP 2507948A1
Authority
EP
European Patent Office
Prior art keywords
data
block
data packet
physical links
packet
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
EP10784779A
Other languages
German (de)
French (fr)
Inventor
Henri Teboulle
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sagemcom Energy and Telecom SAS
Original Assignee
Sagemcom Energy and Telecom SAS
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sagemcom Energy and Telecom SAS filed Critical Sagemcom Energy and Telecom SAS
Publication of EP2507948A1 publication Critical patent/EP2507948A1/en
Ceased legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/24Multipath
    • H04L45/245Link aggregation, e.g. trunking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4633Interconnection of networks using encapsulation techniques, e.g. tunneling
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Definitions

  • An apparatus and method for aggregating data received over a plurality of physical links An apparatus and method for aggregating data received over a plurality of physical links.
  • the present invention relates to the field of link aggregation at the link layer of a data transmission system. It relates more particularly to a device and a method for aggregating data received on a plurality of physical links.
  • the aggregation of physical links to compensate for bandwidth shortcomings is known.
  • it is known to distribute the data packets of the link layer over a plurality of physical links according to the addressing data contained in the header of these packets.
  • This solution leads to unsuitable solutions where the actual occupation of each physical link depends on the addressing information that is not correlated with the available bandwidths of each link.
  • Other solutions cut the received data packets and distribute them directly on the physical links.
  • These solutions require synchronization of the physical links to allow rebuilding the packets at the other end.
  • the invention aims at solving the above problems by proposing a data method based on the division of the block link packets. Each block has a sequence number and a flag indicating the last block of the packet. Blocks are routed independently on each physical link. The distribution is made according to the bandwidths of each link.
  • the described method makes it possible to flexibly manage any type of physical link and does not require synchronizing the physical links.
  • the invention relates to a data aggregation device that includes an external link for sending data packets; a plurality of internal physical links for receiving data packets; means for receiving a plurality of received data blocks on the plurality of internal physical links; means for deleting the header of each received data block which has a sequence number of said block within a data packet and a flag marking the last block of the packet; means for aggregating said blocks to reconstruct a data packet based on the sequence number of each block and the flag marking the last block and means for transmitting said data packet on the external link.
  • it comprises means for inserting a preamble at the beginning of the data packet.
  • the physical links having a GMII interface, the insertion means (10.10) of a preamble are means for inserting a GMII preamble.
  • the device further comprises means for calculating and inserting a checksum of the data packet at the end of the data packet.
  • the invention also relates to a method for aggregating data within a device having an external link for transmitting data and a plurality of internal physical links for receiving data that includes a step of receiving a plurality of data. received data blocks on the plurality of internal physical links; a step for deleting the header of each received data block which has a sequence number of said block within a data packet and a flag marking the last block of the packet; a step of aggregating the different blocks to reconstruct the data packet and a step of transmitting the data packet on the external link.
  • it comprises a step of inserting a preamble at the beginning of each data packet.
  • the physical links having a GMII interface is a step of inserting a GMII preamble.
  • the method further comprises a step of calculating and inserting a checksum of the data packet at the end of the data packet.
  • Fig. 1 illustrates the operating diagram of the invention
  • FIG. 2 illustrates the format of the data packets of an exemplary embodiment
  • FIG. 3 illustrates the splitting of the data packets in an exemplary embodiment of the invention
  • Fig. 4 illustrates the operation of the transmitter in an exemplary embodiment of the invention
  • Fig. 5 illustrates the general operation of the receiver in an exemplary embodiment of the invention
  • Fig. 6 illustrates the operation of the reception on one of the physical links in an exemplary embodiment of the invention
  • Fig. 7 illustrates the reconstruction of the frame in an exemplary embodiment of the invention
  • Fig. 8 illustrates the general architecture of the transmitter, receiver, according to an exemplary embodiment of the invention
  • Fig. 9 illustrates the architecture of the distribution block according to an exemplary embodiment of the invention
  • Fig. 10 illustrates the architecture of the aggregation block according to an exemplary embodiment of the invention
  • Fig. 11 illustrates the general operation of the transmission process according to an exemplary embodiment of the invention
  • Fig. 12 illustrates the general operation of the reception process according to an exemplary embodiment of the invention.
  • Fig. 1 illustrates the operating diagram of the invention. This concerns the aggregation of links in a packet communication network.
  • the link aggregation occurs between two network devices 1.2 and 1.4. Each of these devices has a first link, called the external link, which allows it to receive and transmit data as data packets to other devices.
  • the external link of the equipment 1.2 is the link 1.1.
  • the external link of the 1.4 equipment is link 1.5.
  • a plurality of links 1.3 connect the two devices 1 .2 and 1 .4.
  • Each of its links can work according to its own physical technology.
  • Each of these links has its own characteristics such as bandwidth, transmission latency and others.
  • the invention is based on specific hardware for managing internal links. With reference to the OSI model of the communication links, the invention intervenes at the level of the link layer to distribute the data received from the external link between the various internal links. The data received on these different internal links are aggregated to reconstruct the data packets of the link layer. The invention is therefore transparent for the link layer.
  • the exemplary embodiment is based on an Ethernet type link layer according to the international standard ISO / IEC 8802-3, but could be applied to other link layer standards.
  • the physical layer used for links can be diverse, it can be radio communication, optical fiber, copper or others.
  • the invention operates independently of the physical medium of the link. Some of these physical layers provide a guaranteed throughput, while others have a variable rate of flow over time. This is typically the case for radio transmissions subject to variations in the radio channel. According to some embodiments, the invention makes it possible to optimally use the variable bandwidth of this type of link.
  • Fig. 2 illustrates the format of the data packets of an exemplary embodiment.
  • the data packets 2.2 typically Ethernet
  • the data packets 2.2 are transmitted preceded by a preamble 2.1 and followed by a checksum 2.3, typically of the type CRC (Cyclic redundancy check in English).
  • the Ethernet packet itself consists of a 2.4 header and a 2.5 message body (payload).
  • the data transiting on the external links are thus transmitted under this form: preamble bytes, bytes constituting the Ethernet packet and bytes of CRC.
  • Fig. 3 illustrates the splitting of data packets in an exemplary embodiment of the invention.
  • the preamble and CRC bytes outside the packet itself are discarded.
  • the data packet is then divided into blocks.
  • the blocks have a fixed size, but it is not necessary.
  • the last block may also be of variable size.
  • the data packet is divided into blocks 3.10, 3.1 1, 3.12, 3.13 and 3.14, of 256 bytes, the last block can have a size of between 64 and 320 bytes to accommodate the size of the packet. received data.
  • a header 3.30, 3.31, 3.32, 3.33 and 3.34 which has at least two functions.
  • a first is to allow to memorize the sequence of blocks constituting the data packet. To do this, a sequence number is stored in ⁇ header.
  • a second function is to mark the end of the data packet. To do this, a flag indicates the last block constituting a data packet.
  • the header has two bytes. The sequence number is coded on 14 bits, while a fifteenth bit serves as a flag and is set to 1 for the last block of the packet. The sixteenth bit is unused.
  • the body of each block 3.20, 3.21, 3.22, 3.23 and 3.24 contains the data of the packet, respectively the parts 3.10, 3.11, 3.12, 3.13 and 3.14 of the data packet.
  • Fig. 1 1 illustrates the general operation of the transmitter. It expresses the repetitive nature of the process in the form of an endless loop. The repeated process is illustrated in FIG. 4.
  • Fig. 4 illustrates the operation of the transmitter in an exemplary embodiment of the invention.
  • the receive algorithm operates on a byte basis.
  • a first step 4.1 one receives a byte. It is then tested whether it is a preamble byte or CRC, step 4.2. If this is the case, we bypass the byte and return to the receipt of the next byte. Otherwise, the received byte 4.3 is stored in a receive buffer.
  • This buffer works on a first in, first out, or FIFO (First In First Out) basis.
  • Step 4.4 represents the output of a byte of this receive buffer to be transferred to a block build buffer.
  • it includes adding a ninth bit to the byte to memorize whether the byte is the last byte of the block.
  • the bytes of the output buffer are extracted. It is tested whether the extracted byte is the first byte of a new block, step 4.10. If this test is positive, we determine the physical link that will be used to transmit the block in step 4.1. 1.
  • the physical links being managed via a GMII ⁇ Gigabit Media Independent Interface in English), we must insert a GMII preamble before the first octet, step 4.12. The byte is then extracted in step 4.14.
  • step 4.13 we test if a block is being extracted. If this is the case, we extract a byte in step 4.14, otherwise we do nothing during this passage and we loop over the entire flowchart.
  • a valid CRC of the block is inserted at the end thereof, this step is not shown in the figure.
  • Fig. 12 illustrates the general operation of the reception process.
  • a variable PI is initialized to 0 to signify that no block extraction is in progress on the channel 1.
  • a variable P2 is initialized to 0 to signify that no extraction of block is in progress on channel 2.
  • a Start Frame variable is initialized to 0 to signify that it is at the beginning of the frame.
  • a finite frame variable is initialized to 1 to indicate that we are not at the end of the frame. These variables are used as semaphore for, respectively, the insertion of a header and a checksum at the beginning and at the end of the frame. Then, an endless loop is started on a reception step channel 1 12.2, a reception step channel 2 12.3, a concatenation step 12.4 and a step of extracting the output buffer 12.5. These steps will be detailed in the figures described below.
  • Fig. 5 details the operation of the receiver in an exemplary embodiment of the invention.
  • two physical links constitute the aggregation.
  • a state variable is used by link and called Pi where i is the number of the physical link.
  • the algorithm starts by testing these variables to determine if a block is being received on one of the links, ie if one of the variables is 1. These are steps 5.1 and 5.2. If a block is being received, it goes directly to the step of receiving said block 5.10 or 5.11. If no block is being received, it is tested whether a new block is available on one of the links, steps 5.3 and 5.4.
  • the corresponding state variable is set to 1, steps 5.6 and 5.7.
  • the 2 bytes of the block header are then deleted, steps 5.8 and 5.9.
  • the flag indicating that a block is the last block of the packet that is present in the header is stored in a state variable called "Frame End".
  • the word frame is used here to designate a data packet of the link layer. We then start the reception step on this physical link 5.10 or 5.1 1. The sequence numbers will be used to check the block order and rebuild the packet in the right order.
  • Fig. 6 illustrates the operation of the reception on one of the physical links in an exemplary embodiment of the invention.
  • step 6.1 a byte is transferred from the receive buffer of the physical link to the reconstruction buffer of the package. It is then tested whether it is the last byte of the block, step 6.2. If it is the case, step 6.3, the variable Pi of the current physical link is set to 0 to indicate the end of the step of receiving a block on this physical link. It is then tested whether the extracted block is the last block of the packet to be rebuilt in step 6.4, by testing the variable End Frame. If so, calculate and insert the CRC of the reconstructed packet, step 6.5, and set the End Frame variable to 1, step 6.6.
  • Fig. 7 illustrates the reconstruction of the frame in an exemplary embodiment of the invention.
  • Fig. 8 illustrates the general architecture of the transmitter, receiver, according to an exemplary embodiment of the invention.
  • the physical links use a Serialization / Deserialization "serdes" module, 8.1, 8.7 and 8.9, coupled respectively to a GMII module, 8.2, 8.6 and 8.8.
  • the modules 8.1 and 8.2 represent the external link, while the modules 8.6 and 8.7, respectively 8.8 and 8.9 represent the internal physical links.
  • the data received from the external link is directed to a distribution module 8.4 responsible for building the blocks and distributing them on the physical links. This module works according to the algorithms described above.
  • the blocks received from the internal physical links are directed to an aggregation module 8.5 responsible for rebuilding the data packets of the link layer according to the algorithms defined above.
  • the device receives real-time information on the bandwidth available on each of the internal links.
  • This information corresponds to a so-called ACM (Adaptive Code Modulation) mode available especially for radio links.
  • This information is then received by a 8.3 bit rate management module.
  • This module 8.3 then supplies the distribution module 8.4 with information on the current rates available on the physical links in the form of a signal.
  • This information will be used by the distribution module to distribute data between internal links based on this available bandwidth.
  • Fig. 9 illustrates the architecture of the distribution module according to an exemplary embodiment of the invention.
  • the data packets arrive from the external link to the reception buffer 9.1.
  • the bytes are then transferred to block buffer 9.2.
  • This buffer has a size of 320 bytes in the exemplary embodiment, that is to say the maximum size of a block.
  • An insert module for block headers 9.3, allows to insert the 2 bytes of block headers under the control of the state module by setting the sequence number of the block and the variable of last block of the frame.
  • a module 9.12 is responsible for calculating a CRC and inserting it if necessary in the buffer 9.5 under the control of the state module. This module is optional, especially in the case where modems accept packets with an erroneous GMII CRC.
  • a signal sent by the buffer 9.2 to the state module allows the detection of frames greater than 320 bytes. In this way the status module 9.4 is warned in real time that the buffer 9.2 is full, and therefore that there is at least one complementary block to receive for the current data packet.
  • the module 9.6 controls the determination of the physical link on which each block will be sent, as well as the transmission of the blocks to the channels 9, 10 and 9. 1 1.
  • This generation is made by a NCO (Numerically Controlled Oscillator in English) according to the received bit rate value.
  • NCOs consisting of the adder 9.13 and the high-order bit selector MSB 9.14 make it possible to generate a synchronization signal proportional to the rate of the channel considered, for each channel. outgoing. This optimizes the use of the authorized bandwidth for each channel.
  • the signal from module 9.5 to module 9.6 indicates that this buffer has a block to transmit.
  • a return signal called Enable ffo allows the 9.6 module to control the byte byte output of the block.
  • the NCO signals 1 and NC0 2 received from the NCOs are respectively synchronous byte of the transmission channels 1 and 2.
  • CC I functions as an integrator representative of the imbalance between the number of bytes actually transmitted by the modem located after channel 1 and the number of bytes extracted from buffer 9.5.
  • a symmetric integrator is implemented for channel 2.
  • the module 9.6 checks the output of the bytes constituting the block storage buffer blocks as well as the insertion of a GMII preamble using the insertion modules 9.8 and 9.7 to constitute the signals 9.10 and 9.11 transmitted on each of the blocks. physical links. These signals are therefore characterized in that they consist of data blocks representing an ordered sequence of bytes of a data packet of the link layer. In addition, each of these blocks has a header with a sequence number and a flag to indicate that the current block is the last block of the data packet.
  • the CRC insertion module 9.12 is added at the end of each block to satisfy GMII implementations that do not accept blocks having an erroneous CRC.
  • Fig. 10 illustrates the architecture of the aggregation module according to an exemplary embodiment of the invention.
  • the data arriving from each of the internal links therefore consist of blocks according to the invention. These blocks are processed by GMII 10.1 and 10.2 preamble retrieval modules and also, optionally, CRC GMII removal.
  • the blocks are then stored in receive buffers, one per link, 10.3 and 10.4.
  • the state module 10.5 then checks the aggregation of these modules. To do this, he receives the sequence numbers of each block and the fill level of the receive buffers. It then determines the buffer to be emptied of the contents of a block, it is the block whose number is the next expected in chronological order.
  • the 2 bytes of the block header are discarded and its body is transferred to the output buffer 10.8.
  • Control of selector 10.7 is used to insert the CRC of the data packet at the end of the last block of the frame using the CRC 10.6 calculation module.
  • the transmission of the frame on the external link is managed by the module 10.9 which manages the transmission of data and the insertion at the head of each frame of a preamble GMII prepared by the preamble insertion module 10.10.
  • the invention described here in the Ethernet framework and using an embodiment with two physical links naturally extends to any number of physical links. It can be applied to any link protocol regardless of the physical technology used for the different links.

Abstract

The invention relates to link aggregation at the link layer of a data communication system and, in particular, to a data distribution method in which link packets are divided up into blocks. Each block is provided with a sequence number and a flag indicating the last block of the packet. The blocks are routed independently over each physical link. The method allows the flexible management of all types of physical links and does not require the synchronisation of the physical links.

Description

Dispositif et procédé d'agrégation de données reçues sur une pluralité de liens physiques.  An apparatus and method for aggregating data received over a plurality of physical links.
La présente invention concerne le domaine de l'agrégation de lien au niveau de la couche de liaison d'un système de transmission de données. Elle concerne plus particulièrement un dispositif et un procédé d'agrégation de données reçues sur une pluralité de liens physiques. The present invention relates to the field of link aggregation at the link layer of a data transmission system. It relates more particularly to a device and a method for aggregating data received on a plurality of physical links.
L'agrégation de liens physiques pour pallier des insuffisances de bande passante est connue. En particulier, il est connu de distribuer les paquets de données de la couche de liaison sur une pluralité de liens physiques en fonction des données d'adressage contenues dans l'en-tête de ces paquets. Cette solution conduit à des solutions non adéquates où l'occupation réelle de chaque lien physique dépend des informations d' adressage qui ne sont pas corrélées avec les bandes passantes disponibles de chaque lien. D'autres solutions découpent les paquets de données reçues et les distribuent directement sur les liens physiques. Ces solutions nécessitent une synchronisation des liens physiques pour permettre de reconstruire les paquets à l'autre extrémité. L'invention vise à résoudre les problèmes précédents en proposant un procédé de données basé sur le découpage des paquets de liaison en blocs. Chaque bloc est doté d'un numéro de séquence et d'un drapeau indiquant le dernier bloc du paquet. Les blocs sont acheminés indépendamment sur chaque lien physique. La distribution est faite en fonction des bandes passantes de chaque lien. Le procédé décrit permet de gérer souplement tout type de lien physique et ne nécessite pas de synchroniser les liens physiques. The aggregation of physical links to compensate for bandwidth shortcomings is known. In particular, it is known to distribute the data packets of the link layer over a plurality of physical links according to the addressing data contained in the header of these packets. This solution leads to unsuitable solutions where the actual occupation of each physical link depends on the addressing information that is not correlated with the available bandwidths of each link. Other solutions cut the received data packets and distribute them directly on the physical links. These solutions require synchronization of the physical links to allow rebuilding the packets at the other end. The invention aims at solving the above problems by proposing a data method based on the division of the block link packets. Each block has a sequence number and a flag indicating the last block of the packet. Blocks are routed independently on each physical link. The distribution is made according to the bandwidths of each link. The described method makes it possible to flexibly manage any type of physical link and does not require synchronizing the physical links.
L'invention concerne un dispositif d'agrégation de données qui comporte un lien externe permettant l'émission de paquets de données ; une pluralité de liens physiques internes permettant la réception de paquets de données ; des moyens de réception d'une pluralité de blocs de données reçus sur la pluralité de liens physiques internes ; des moyens pour supprimer l'en-tête de chaque bloc de données reçu qui comporte un numéro de séquence dudit bloc au sein d'un paquet de données et un drapeau marquant le dernier bloc du paquet ; des moyens pour agréger lesdits blocs pour reconstituer un paquet de données en fonction du numéro de séquence de chaque bloc et du drapeau marquant le dernier bloc et des moyens pour émettre ledit paquet de données sur le lien externe.  The invention relates to a data aggregation device that includes an external link for sending data packets; a plurality of internal physical links for receiving data packets; means for receiving a plurality of received data blocks on the plurality of internal physical links; means for deleting the header of each received data block which has a sequence number of said block within a data packet and a flag marking the last block of the packet; means for aggregating said blocks to reconstruct a data packet based on the sequence number of each block and the flag marking the last block and means for transmitting said data packet on the external link.
Selon un mode particulier de réalisation de l'invention, il comporte des moyens d'insertion d'un préambule au début du paquet de données.  According to a particular embodiment of the invention, it comprises means for inserting a preamble at the beginning of the data packet.
Selon un mode particulier de réalisation de l'invention, les liens physiques ayant une interface GMII, les moyens d'insertion (10.10) d'un préambule sont des moyens d'insertion d'un préambule GMII.  According to a particular embodiment of the invention, the physical links having a GMII interface, the insertion means (10.10) of a preamble are means for inserting a GMII preamble.
Selon un mode particulier de réalisation de l'invention, le dispositif comporte en outre des moyens de calcul et d'insertion d'une somme de contrôle du paquet de données en fin de paquet de données.  According to a particular embodiment of the invention, the device further comprises means for calculating and inserting a checksum of the data packet at the end of the data packet.
L'invention concerne également un procédé d'agrégation de données au sein d'un dispositif comportant un lien externe pour l'émission des données et une pluralité de liens physiques internes pour la réception des données qui comporte une étape de réception d'une pluralité de blocs de données reçus sur la pluralité de liens physiques internes ; une étape pour supprimer l'en-tête de chaque bloc de données reçu qui comporte un numéro de séquence dudit bloc au sein d'un paquet de données et un drapeau marquant le dernier bloc du paquet ; une étape d'agrégation des différents blocs pour reconstituer le paquet de données et une étape d'émission du paquet de données sur le lien externe. Selon un mode particulier de réalisation de l'invention, il comporte une étape d'insertion d'un préambule au début de chaque paquet de données. The invention also relates to a method for aggregating data within a device having an external link for transmitting data and a plurality of internal physical links for receiving data that includes a step of receiving a plurality of data. received data blocks on the plurality of internal physical links; a step for deleting the header of each received data block which has a sequence number of said block within a data packet and a flag marking the last block of the packet; a step of aggregating the different blocks to reconstruct the data packet and a step of transmitting the data packet on the external link. According to a particular embodiment of the invention, it comprises a step of inserting a preamble at the beginning of each data packet.
Selon un mode particulier de réalisation de l'invention, les liens physiques ayant une interface GMII, l'étape d'insertion (7.3) d'un préambule est une étape d'insertion d'un préambule GMII.  According to a particular embodiment of the invention, the physical links having a GMII interface, the insertion step (7.3) of a preamble is a step of inserting a GMII preamble.
Selon un mode particulier de réalisation de l'invention, le procédé comporte en outre une étape de calcul et d'insertion d'une somme de contrôle du paquet de données en fin de paquet de données.  According to a particular embodiment of the invention, the method further comprises a step of calculating and inserting a checksum of the data packet at the end of the data packet.
Les caractéristiques de l'invention mentionnées ci-dessus, ainsi que d'autres, apparaîtront plus clairement à la lecture de la description suivante d'un exemple de réalisation, ladite description étant faite en relation avec les dessins joints, parmi lesquels :  The characteristics of the invention mentioned above, as well as others, will appear more clearly on reading the following description of an exemplary embodiment, said description being given in relation to the attached drawings, among which:
La Fig. 1 illustre le schéma de fonctionnement de l'invention,  Fig. 1 illustrates the operating diagram of the invention,
La Fig. 2 illustre le format des paquets de données d'un exemple de réalisation, La Fig. 3 illustre le découpage des paquets de données dans un exemple de réalisation de l'invention,  Fig. 2 illustrates the format of the data packets of an exemplary embodiment, FIG. 3 illustrates the splitting of the data packets in an exemplary embodiment of the invention,
La Fig. 4 illustre le fonctionnement de l'émetteur dans un exemple de réalisation de l'invention,  Fig. 4 illustrates the operation of the transmitter in an exemplary embodiment of the invention,
La Fig. 5 illustre le fonctionnement général du récepteur dans un exemple de réalisation de l'invention,  Fig. 5 illustrates the general operation of the receiver in an exemplary embodiment of the invention,
La Fig. 6 illustre le fonctionnement de la réception sur l'un des liens physiques dans un exemple de réalisation de l'invention,  Fig. 6 illustrates the operation of the reception on one of the physical links in an exemplary embodiment of the invention,
La Fig. 7 illustre la reconstruction de la trame dans un exemple de réalisation de l'invention,  Fig. 7 illustrates the reconstruction of the frame in an exemplary embodiment of the invention,
La Fig. 8 illustre l'architecture générale de l'émetteur, récepteur, selon un exemple de réalisation de l'invention,  Fig. 8 illustrates the general architecture of the transmitter, receiver, according to an exemplary embodiment of the invention,
La Fig. 9 illustre l'architecture du bloc de distribution selon un exemple de réalisation de l'invention,  Fig. 9 illustrates the architecture of the distribution block according to an exemplary embodiment of the invention,
La Fig. 10 illustre l'architecture du bloc d'agrégation selon un exemple de réalisation de l'invention,  Fig. 10 illustrates the architecture of the aggregation block according to an exemplary embodiment of the invention,
La Fig. 11 illustre le fonctionnement général du processus d'émission selon un exemple de réalisation de l'invention,  Fig. 11 illustrates the general operation of the transmission process according to an exemplary embodiment of the invention,
La Fig. 12 illustre le fonctionnement général du processus de réception selon un exemple de réalisation de l'invention. La Fig. 1 illustre le schéma de fonctionnement de l'invention. Celle-ci concerne l'agrégation de liens dans un réseau de communication par paquet. L'agrégation de lien intervient entre deux équipements réseau 1.2 et 1.4. Chacun de ces équipements dispose d'un premier lien, que l'on appelle le lien externe, qui lui permet de recevoir et d'émettre des données sous forme de paquets de données vers d'autres équipements. Le lien externe de l'équipement 1.2 est le lien 1.1. Le lien externe de l'équipement 1.4 est le lien 1.5. Fig. 12 illustrates the general operation of the reception process according to an exemplary embodiment of the invention. Fig. 1 illustrates the operating diagram of the invention. This concerns the aggregation of links in a packet communication network. The link aggregation occurs between two network devices 1.2 and 1.4. Each of these devices has a first link, called the external link, which allows it to receive and transmit data as data packets to other devices. The external link of the equipment 1.2 is the link 1.1. The external link of the 1.4 equipment is link 1.5.
Une pluralité de liens 1.3, que l'on appelle les liens internes, relie les deux équipements 1 .2 et 1 .4. Chacun de ses liens peut fonctionner selon sa propre technologie physique. Chacun de ces liens possède ses propres caractéristiques telles que sa bande passante, sa latence de transmission et autres.  A plurality of links 1.3, referred to as the internal links, connect the two devices 1 .2 and 1 .4. Each of its links can work according to its own physical technology. Each of these links has its own characteristics such as bandwidth, transmission latency and others.
L'invention est basée sur du matériel spécifique permettant la gestion des liens internes. En référence au modèle OSI des liens de communication, l'invention intervient au niveau de la couche de liaison pour distribuer les données reçues du lien externe entre les différents liens internes. Les données reçues sur ces différents liens internes sont agrégées pour reconstituer les paquets de données de la couche de liaison. L'invention est donc transparente pour la couche de liaison.  The invention is based on specific hardware for managing internal links. With reference to the OSI model of the communication links, the invention intervenes at the level of the link layer to distribute the data received from the external link between the various internal links. The data received on these different internal links are aggregated to reconstruct the data packets of the link layer. The invention is therefore transparent for the link layer.
L'exemple de réalisation est basé sur une couche de liaison du type Ethernet selon la norme internationale ISO/IEC 8802-3, mais elle pourrait s'appliquer à d'autres standards de couches de liaison. La couche physique utilisée pour les liens peut être diverse, il peut s'agir de communication radio, fibre optique, cuivre ou autres. L'invention fonctionne indépendamment du support physique du lien. Certaines de ces couches physiques permettent d'assurer un débit garanti, tandis que d' autres ont un débit variable dans le temps. C ' est typiquement le cas des transmissions radio sujettes aux variations du canal radio. Selon certains modes de réalisation, l'invention permet d'utiliser de manière optimale la bande passante variable de ce type de lien.  The exemplary embodiment is based on an Ethernet type link layer according to the international standard ISO / IEC 8802-3, but could be applied to other link layer standards. The physical layer used for links can be diverse, it can be radio communication, optical fiber, copper or others. The invention operates independently of the physical medium of the link. Some of these physical layers provide a guaranteed throughput, while others have a variable rate of flow over time. This is typically the case for radio transmissions subject to variations in the radio channel. According to some embodiments, the invention makes it possible to optimally use the variable bandwidth of this type of link.
La Fig. 2 illustre le format des paquets de données d'un exemple de réalisation. Sur le support physique, les paquets de données 2.2, typiquement Ethernet, sont transmis précédés d'un préambule 2.1 et suivis d'une somme de contrôle 2.3, typiquement du type CRC (Cyclic redundancy check en anglais). Le paquet Ethernet lui-même est constitué d'un en-tête 2.4 et d'un corps de message 2.5 (payload en anglais). Les données transitant sur les liens externes sont donc transmises sous cette forme : des octets de préambule, des octets constituant le paquet Ethernet et des octets de CRC. Fig. 2 illustrates the format of the data packets of an exemplary embodiment. On the physical medium, the data packets 2.2, typically Ethernet, are transmitted preceded by a preamble 2.1 and followed by a checksum 2.3, typically of the type CRC (Cyclic redundancy check in English). The Ethernet packet itself consists of a 2.4 header and a 2.5 message body (payload). The data transiting on the external links are thus transmitted under this form: preamble bytes, bytes constituting the Ethernet packet and bytes of CRC.
La Fig. 3 illustre le découpage des paquets de données dans un exemple de réalisation de l'invention. Lors de la réception des paquets de données, les octets de préambule et de CRC extérieurs au paquet lui-même sont écartés. Le paquet de données est alors divisé en blocs. Avantageusement, les blocs ont une taille fixe, mais ce n'est pas nécessaire. En particulier, les paquets de données reçus pouvant être de taille variable, le dernier bloc peut être également de taille variable. Selon l'exemple de réalisation, le paquet de données est divisé en blocs 3.10, 3.1 1, 3.12, 3.13 et 3.14, de 256 octets, le dernier bloc pouvant avoir une taille comprise entre 64 et 320 octets pour accommoder la taille du paquet de données reçu.  Fig. 3 illustrates the splitting of data packets in an exemplary embodiment of the invention. When receiving the data packets, the preamble and CRC bytes outside the packet itself are discarded. The data packet is then divided into blocks. Advantageously, the blocks have a fixed size, but it is not necessary. In particular, since the received data packets may be of variable size, the last block may also be of variable size. According to the exemplary embodiment, the data packet is divided into blocks 3.10, 3.1 1, 3.12, 3.13 and 3.14, of 256 bytes, the last block can have a size of between 64 and 320 bytes to accommodate the size of the packet. received data.
On ajoute à chaque bloc de données ainsi créé un en-tête 3.30, 3.31 , 3.32, 3.33 et 3.34 qui a au moins deux fonctions. Une première est de permettre de mémoriser la séquence des blocs constituant le paquet de données. Pour ce faire, un numéro de séquence est stocké dans Γ en-tête. Une seconde fonction est de marquer la fin du paquet de données. Pour ce faire, un drapeau signale le dernier bloc constituant un paquet de données. Selon l'exemple de réalisation, l'en-tête comporte deux octets. Le numéro de séquence est codé sur 14 bits, tandis qu'un quinzième bit sert de drapeau et est positionné à 1 pour le dernier bloc du paquet. Le seizième bit est inutilisé. Le corps de chaque bloc 3.20, 3.21, 3.22, 3.23 et 3.24 contient les données du paquet, respectivement les parties 3.10, 3.11, 3.12, 3.13 et 3.14 du paquet de données.  To each block of data thus created is added a header 3.30, 3.31, 3.32, 3.33 and 3.34 which has at least two functions. A first is to allow to memorize the sequence of blocks constituting the data packet. To do this, a sequence number is stored in Γ header. A second function is to mark the end of the data packet. To do this, a flag indicates the last block constituting a data packet. According to the exemplary embodiment, the header has two bytes. The sequence number is coded on 14 bits, while a fifteenth bit serves as a flag and is set to 1 for the last block of the packet. The sixteenth bit is unused. The body of each block 3.20, 3.21, 3.22, 3.23 and 3.24 contains the data of the packet, respectively the parts 3.10, 3.11, 3.12, 3.13 and 3.14 of the data packet.
Le fait de choisir une taille de bloc relativement petite permet d'avoir un système souple dont la granularité va permettre de s'adapter à la diversité des liens physiques constituant l'agrégation. Une trop petite taille, toutefois, augmente la quantité des en-têtes rajoutés et nuit à l'utilisation de la bande passante. Un choix judicieux de cette taille de bloc est donc fait en fonction du type de lien physique utilisé. Le fait de numéroter les blocs permet un réordonnancement des blocs lors de la reconstruction du paquet et donc de gérer des liens dont la latence de communication est différente. En l'absence de ce mécanisme, il est nécessaire de synchroniser les liens pour assurer une reconstruction du paquet à l'arrivée, ce qui n'est pas nécessaire ici. On a donc une grande souplesse dans le choix des liens physiques utilisés pouvant marier diverses technologies. La Fig. 1 1 illustre le fonctionnement général de l'émetteur. Elle exprime le caractère répétitif du processus sous la forme d'une boucle sans fin. Le processus répété est illustré par la Fig. 4. Choosing a relatively small block size makes it possible to have a flexible system whose granularity will make it possible to adapt to the diversity of the physical links constituting the aggregation. Too small, however, increases the amount of headers added and affects bandwidth usage. A wise choice of this block size is therefore made according to the type of physical link used. The fact of numbering the blocks allows a reordering of the blocks during the reconstruction of the packet and thus to manage links whose communication latency is different. In the absence of this mechanism, it is necessary to synchronize the links to ensure a reconstruction of the packet on arrival, which is not necessary here. There is therefore great flexibility in the choice of physical links used that can combine various technologies. Fig. 1 1 illustrates the general operation of the transmitter. It expresses the repetitive nature of the process in the form of an endless loop. The repeated process is illustrated in FIG. 4.
La Fig. 4 illustre le fonctionnement de l'émetteur dans un exemple de réalisation de l'invention. L'algorithme de réception fonctionne sur une base octet. Lors d'une première étape 4.1 , on reçoit un octet. On teste alors s'il s'agit d'un octet de préambule ou de CRC, étape 4.2. Si c'est le cas, on écarte l'octet et on repasse à la réception de l'octet suivant. Sinon, on mémorise 4.3 l'octet reçu dans un tampon de réception. Ce tampon fonctionne selon le principe premier entré, premier sorti ou FIFO {First In First Out en anglais). L'étape 4.4 représente la sortie d'un octet de ce tampon de réception pour être transféré dans un tampon de construction de bloc. Avantageusement, elle comporte l'ajout d'un neuvième bit à l'octet pour mémoriser si l'octet est le dernier octet du bloc. On teste 4.5 alors s'il s'agit du premier octet du bloc courant. Si c'est le cas, on teste 4.6 alors s'il s'agit du dernier bloc du paquet de données reçu. Lorsqu'il s'agit du premier octet d'un bloc, on ajoute les deux octets d' en-tête en positionnant le numéro de séquence du bloc et le drapeau de dernier bloc, étapes 4.7 ou 4.8. Les octets du tampon de construction de bloc sont transférés lors de l'étape 4.9 au tampon de sortie.  Fig. 4 illustrates the operation of the transmitter in an exemplary embodiment of the invention. The receive algorithm operates on a byte basis. In a first step 4.1, one receives a byte. It is then tested whether it is a preamble byte or CRC, step 4.2. If this is the case, we bypass the byte and return to the receipt of the next byte. Otherwise, the received byte 4.3 is stored in a receive buffer. This buffer works on a first in, first out, or FIFO (First In First Out) basis. Step 4.4 represents the output of a byte of this receive buffer to be transferred to a block build buffer. Advantageously, it includes adding a ninth bit to the byte to memorize whether the byte is the last byte of the block. One tests 4.5 then if it is the first byte of the current block. If this is the case, we test 4.6, if it is the last block of the received data packet. When it is the first byte of a block, the two bytes of header are added by positioning the sequence number of the block and the last block flag, steps 4.7 or 4.8. The bytes of the block build buffer are transferred in step 4.9 to the output buffer.
Les octets du tampon de sortie sont extraits. On teste si l'octet extrait est le premier octet d'un nouveau bloc, étape 4.10. Si ce test est positif, on détermine le lien physique qui va être utilisé pour émettre le bloc lors de l'étape 4.1 1. Les liens physiques étant gérés via une interface GMII {Gigabit Media Independent Interface en anglais), on doit alors insérer un préambule GMII avant le premier octet, étape 4.12. On extrait alors l'octet lors de l'étape 4.14.  The bytes of the output buffer are extracted. It is tested whether the extracted byte is the first byte of a new block, step 4.10. If this test is positive, we determine the physical link that will be used to transmit the block in step 4.1. 1. The physical links being managed via a GMII {Gigabit Media Independent Interface in English), we must insert a GMII preamble before the first octet, step 4.12. The byte is then extracted in step 4.14.
Dans le cas où l'on n'a pas de nouveau bloc à extraire, on teste si un bloc est en cours d'extraction, étape 4.13. Si c'est le cas, on extrait un octet lors de l'étape 4.14, sinon on ne fait rien lors de ce passage et on boucle sur l ' ensemble de l'organigramme.  In the case where there is no new block to extract, we test if a block is being extracted, step 4.13. If this is the case, we extract a byte in step 4.14, otherwise we do nothing during this passage and we loop over the entire flowchart.
Le bloc est donc émis sur le lien physique sous la forme d'un paquet GMII. Ces paquets sont normalement terminés par une somme de contrôle de type CRC. Selon les implémentations des interfaces GMII, les paquets GMII dont la somme de contrôle est erronée seront acceptés ou pas. Avantageusement, on insère donc un CRC valide du bloc à la fin de celui-ci, cette étape n'est pas représentée sur la figure. La Fig. 12 illustre le fonctionnement général du processus de réception. Lors d'une première étape d'initialisation 12.1, une variable P I est initialisée à 0 pour signifier qu'aucune extraction de bloc n'est en cours sur la voie 1. Une variable P2 est initialisée à 0 pour signifier qu'aucune extraction de bloc n'est en cours sur la voie 2. Une variable Début Trame est initialisée à 0 pour signifier que l'on est en début de trame. Une variable Fin Trame est initialisée à 1 pour signifier que l'on n'est pas en fin de trame. Ces variables sont utilisées comme sémaphore pour, respectivement, l'insertion d'un en-tête et d'une somme de contrôle en début et en fin de trame. Ensuite, on entame une boucle sans fin sur une étape de réception voie 1 12.2, une étape de réception voie 2 12.3, une étape de concaténation 12.4 et une étape d'extraction du tampon de sortie 12.5. Ces étapes vont être détaillées dans les figures décrites ci-dessous. The block is therefore sent on the physical link in the form of a GMII packet. These packets are normally terminated by a CRC checksum. Depending on the implementations of the GMII interfaces, GMII packages whose checksum is wrong will be accepted or not. Advantageously, a valid CRC of the block is inserted at the end thereof, this step is not shown in the figure. Fig. 12 illustrates the general operation of the reception process. During a first initialization step 12.1, a variable PI is initialized to 0 to signify that no block extraction is in progress on the channel 1. A variable P2 is initialized to 0 to signify that no extraction of block is in progress on channel 2. A Start Frame variable is initialized to 0 to signify that it is at the beginning of the frame. A finite frame variable is initialized to 1 to indicate that we are not at the end of the frame. These variables are used as semaphore for, respectively, the insertion of a header and a checksum at the beginning and at the end of the frame. Then, an endless loop is started on a reception step channel 1 12.2, a reception step channel 2 12.3, a concatenation step 12.4 and a step of extracting the output buffer 12.5. These steps will be detailed in the figures described below.
La Fig. 5 détaille le fonctionnement du récepteur dans un exemple de réalisation de l'invention. Selon l'exemple de réalisation de l'invention, deux liens physiques constituent l'agrégation. Toutefois, le procédé décrit s'étend naturellement à une pluralité de liens physiques. Une variable d'état est utilisée par lien et appelée Pi où i est le numéro du lien physique. L'algorithme commence par tester ces variables pour déterminer si un bloc est en cours de réception sur l'un des liens, c'est-à-dire si l'une des variables est à 1. Ce sont les étapes 5.1 et 5.2. Si un bloc est en cours de réception, on passe directement à l'étape de réception dudit bloc 5.10 ou 5.11. Si aucun bloc n'est en cours de réception, on teste si un nouveau bloc est disponible sur l'un des liens, étapes 5.3 et 5.4. Si c'est le cas, on positionne la variable d'état correspondante à 1 , étapes 5.6 et 5.7. On supprime ensuite les 2 octets d' en-tête du bloc, étapes 5.8 et 5.9. Le drapeau indiquant qu'un bloc est le dernier bloc du paquet qui est présent dans l'en-tête est mémorisé dans une variable d'état appelée « Fin Trame ». Le mot trame est ici utilisé pour désigner un paquet de données de la couche de liaison. On entame ensuite l'étape de réception sur ce lien physique 5.10 ou 5.1 1. Les numéros de séquence seront utilisés pour vérifier l'ordre des blocs et pour reconstruire le paquet dans le bon ordre.  Fig. 5 details the operation of the receiver in an exemplary embodiment of the invention. According to the exemplary embodiment of the invention, two physical links constitute the aggregation. However, the disclosed method naturally extends to a plurality of physical links. A state variable is used by link and called Pi where i is the number of the physical link. The algorithm starts by testing these variables to determine if a block is being received on one of the links, ie if one of the variables is 1. These are steps 5.1 and 5.2. If a block is being received, it goes directly to the step of receiving said block 5.10 or 5.11. If no block is being received, it is tested whether a new block is available on one of the links, steps 5.3 and 5.4. If this is the case, the corresponding state variable is set to 1, steps 5.6 and 5.7. The 2 bytes of the block header are then deleted, steps 5.8 and 5.9. The flag indicating that a block is the last block of the packet that is present in the header is stored in a state variable called "Frame End". The word frame is used here to designate a data packet of the link layer. We then start the reception step on this physical link 5.10 or 5.1 1. The sequence numbers will be used to check the block order and rebuild the packet in the right order.
II faut noter qu'au préalable, les octets de préambule GMII et des éventuels It should be noted that beforehand, the bytes of the preamble GMII and the possible
CRC GMII auront été écartés. CRC GMII will have been discarded.
La Fig. 6 illustre le fonctionnement de la réception sur l'un des liens physiques dans un exemple de réalisation de l'invention. Lors de l'étape 6.1, un octet est transféré du tampon de réception du lien physique vers le tampon de reconstruction du paquet. On teste ensuite s'il s'agit du dernier octet du bloc, étape 6.2. Si c'est le cas on positionne, étape 6.3, la variable Pi du lien physique courant à 0 pour indiquer la fin de l'étape de réception d'un bloc sur ce lien physique. On teste alors si le bloc extrait est le dernier bloc du paquet à reconstruire lors de l'étape 6.4, par le test de la variable Fin Trame. Si c'est le cas, on calcule et on insère le CRC du paquet reconstruit, étape 6.5, et on positionne la variable Fin Trame à 1, étape 6.6. Fig. 6 illustrates the operation of the reception on one of the physical links in an exemplary embodiment of the invention. In step 6.1, a byte is transferred from the receive buffer of the physical link to the reconstruction buffer of the package. It is then tested whether it is the last byte of the block, step 6.2. If it is the case, step 6.3, the variable Pi of the current physical link is set to 0 to indicate the end of the step of receiving a block on this physical link. It is then tested whether the extracted block is the last block of the packet to be rebuilt in step 6.4, by testing the variable End Frame. If so, calculate and insert the CRC of the reconstructed packet, step 6.5, and set the End Frame variable to 1, step 6.6.
La Fig. 7 illustre la reconstruction de la trame dans un exemple de réalisation de l'invention. Lors de l'étape 7.1, on teste si le paquet de données est complet. Si c'est le cas, on teste si l'on est positionné en début de trame, étape 7.2, par un test Début Trame = 0. Dans ce cas, on insère un préambule GMII, étape 7.3, on positionne la variable Début Trame à 1, étape 7.4. On peut alors extraire un octet du tampon vers le lien externe, étape 7.5. Si cet octet est le dernier octet de la trame, étape 7.6, on positionne la variable Début Trame à 0 lors de l'étape 7.7. On extrait ainsi les trames, octet par octet, pour les émettre sur le lien externe.  Fig. 7 illustrates the reconstruction of the frame in an exemplary embodiment of the invention. In step 7.1, it is tested whether the data packet is complete. If this is the case, we test if we are positioned at the beginning of the frame, step 7.2, by a Start Trame = 0 test. In this case, we insert a preamble GMII, step 7.3, we position the variable. at 1, step 7.4. One can then extract a byte from the buffer to the external link, step 7.5. If this byte is the last byte of the frame, step 7.6, set the Start Frame variable to 0 in step 7.7. The frames are thus extracted, byte by byte, to transmit them on the external link.
La Fig. 8 illustre l'architecture générale de l'émetteur, récepteur, selon un exemple de réalisation de l'invention. Les liens physiques utilisent un module dit « serdes » de sérialisation / désérialisation, 8.1 , 8.7 et 8.9, couplé respectivement à un module GMII, 8.2, 8.6 et 8.8. Les modules 8.1 et 8.2 représentent le lien externe, tandis que les modules 8.6 et 8.7, respectivement 8.8 et 8.9 représentent les liens physiques internes. Les données reçues du lien externe sont dirigées vers un module de distribution 8.4 chargé de construire les blocs et de les distribuer sur les liens physiques. Ce module fonctionne selon les algorithmes décrits ci-dessus. Les blocs reçus des liens physiques internes sont dirigés vers un module d'agrégation 8.5 chargé de la reconstruction des paquets de données de la couche de liaison selon les algorithmes définis ci-dessus.  Fig. 8 illustrates the general architecture of the transmitter, receiver, according to an exemplary embodiment of the invention. The physical links use a Serialization / Deserialization "serdes" module, 8.1, 8.7 and 8.9, coupled respectively to a GMII module, 8.2, 8.6 and 8.8. The modules 8.1 and 8.2 represent the external link, while the modules 8.6 and 8.7, respectively 8.8 and 8.9 represent the internal physical links. The data received from the external link is directed to a distribution module 8.4 responsible for building the blocks and distributing them on the physical links. This module works according to the algorithms described above. The blocks received from the internal physical links are directed to an aggregation module 8.5 responsible for rebuilding the data packets of the link layer according to the algorithms defined above.
Avantageusement, le dispositif reçoit des informations en temps réel sur la bande passante disponible sur chacun des liens internes. Ces informations correspondent à un mode dit ACM (Adaptative Code Modulation en anglais) disponible notamment pour les liens radio. Ces informations sont alors reçues par un module 8.3 de gestion des débits. Ce module 8.3 fournit alors au module de distribution 8.4 une information sur les débits courants disponibles sur les liens physiques sous la forme d'un signal. Ces informations seront utilisées par le module de distribution pour répartir les données entre les liens internes en fonction de cette bande passante disponible. La Fig. 9 illustre l'architecture du module de distribution selon un exemple de réalisation de l'invention. Les paquets de données arrivent du lien externe vers le tampon de réception 9.1. Les octets sont alors transférés au tampon de bloc 9.2. Ce tampon fait une taille de 320 octets dans l'exemple de réalisation, c'est-à-dire la taille maximum d'un bloc. Sous le contrôle du module d'état 9.4, les blocs sont alors transférés dans un tampon de mémorisation des blocs 9.5. Un module d'insertion des en-têtes de bloc 9.3, permet d'insérer les 2 octets d'en-têtes de blocs sous le contrôle du module d'état en positionnant le numéro de séquence du bloc et la variable de dernier bloc de la trame. Un module 9.12 est chargé de calculer un CRC et de l'insérer au besoin dans le tampon 9.5 sous le contrôle du module d'état. Ce module est optionnel, en particulier dans le cas où les modems acceptent des paquets avec un CRC GMII erroné. Un signal émis par le tampon 9.2 vers le module d'état permet la détection des trames supérieures à 320 octets. De cette façon le module d'état 9.4 est prévenu en temps réel que le tampon 9.2 est plein, et donc qu'il y a au moins un bloc complémentaire à recevoir pour le paquet de données en cours. Advantageously, the device receives real-time information on the bandwidth available on each of the internal links. This information corresponds to a so-called ACM (Adaptive Code Modulation) mode available especially for radio links. This information is then received by a 8.3 bit rate management module. This module 8.3 then supplies the distribution module 8.4 with information on the current rates available on the physical links in the form of a signal. This information will be used by the distribution module to distribute data between internal links based on this available bandwidth. Fig. 9 illustrates the architecture of the distribution module according to an exemplary embodiment of the invention. The data packets arrive from the external link to the reception buffer 9.1. The bytes are then transferred to block buffer 9.2. This buffer has a size of 320 bytes in the exemplary embodiment, that is to say the maximum size of a block. Under the control of the status module 9.4, the blocks are then transferred to a block storage buffer 9.5. An insert module for block headers 9.3, allows to insert the 2 bytes of block headers under the control of the state module by setting the sequence number of the block and the variable of last block of the frame. A module 9.12 is responsible for calculating a CRC and inserting it if necessary in the buffer 9.5 under the control of the state module. This module is optional, especially in the case where modems accept packets with an erroneous GMII CRC. A signal sent by the buffer 9.2 to the state module allows the detection of frames greater than 320 bytes. In this way the status module 9.4 is warned in real time that the buffer 9.2 is full, and therefore that there is at least one complementary block to receive for the current data packet.
Le module 9.6 contrôle la détermination du lien physique sur lequel va être émis chaque bloc, ainsi que l ' émission des blocs vers les voies 9. 10 et 9. 1 1. Avantageusement, il reçoit les signaux 9.9 des débits courants de chacun des liens physiques. Il les utilise pour générer un signal de synchronisation proportionnel au débit du lien pour chacun des liens. Cette génération est faite par un NCO (Numerically Controlled Oscillator en anglais) en fonction de la valeur de débit reçue. Plus précisément, grâce aux informations sur les débits courants reçus, 9.9, les NCO constitués de l'additionneur 9.13 et du sélectionneur de bit de poids fort MSB 9.14 permettent de générer un signal de synchronisation proportionnel au débit de la voie considérée, pour chaque voie sortante. On optimise ainsi de manière fine l'utilisation de la bande passante autorisée pour chaque voie.  The module 9.6 controls the determination of the physical link on which each block will be sent, as well as the transmission of the blocks to the channels 9, 10 and 9. 1 1. Advantageously, it receives the signals 9.9 from the current rates of each of the links physical. It uses them to generate a synchronization signal proportional to the link rate for each link. This generation is made by a NCO (Numerically Controlled Oscillator in English) according to the received bit rate value. More precisely, thanks to the information on the received current rates, 9.9, the NCOs consisting of the adder 9.13 and the high-order bit selector MSB 9.14 make it possible to generate a synchronization signal proportional to the rate of the channel considered, for each channel. outgoing. This optimizes the use of the authorized bandwidth for each channel.
Le signal issu du module 9.5 vers le module 9.6 indique que ce tampon a un bloc à transmettre. Un signal en retour appelé Enable fîfo, permet au module 9.6 de contrôler la sortie octet par octet du bloc. Les signaux NCO l et NC0 2 reçus des NCO sont respectivement synchrones octet des voies de transmission 1 et 2.  The signal from module 9.5 to module 9.6 indicates that this buffer has a block to transmit. A return signal called Enable ffo, allows the 9.6 module to control the byte byte output of the block. The NCO signals 1 and NC0 2 received from the NCOs are respectively synchronous byte of the transmission channels 1 and 2.
Pour chacune des voies 1 et 2, on gère des compteurs courants CC I et CC 2 sur 16 bits initialisés à 0. A chaque top de 125 MHz, en ce qui concerne le compteur CC I de la voie 1 on implémente le comportement suivant : Quand « NCO 1 » = 0 et « Enable fifo » = 1 , CC I = CC I + 1 en cours de bloc et CC I = CC I + 6 si l' on est en début de bloc pour tenir compte de l'encapsulation GFP {Generic Framing Procédure en anglais), qui est dans notre exemple de réalisation la méthode d'encapsulation utilisée pour transporter la trame Ethernet via le modem. For each of the channels 1 and 2, 16-bit DC I and CC 2 current counters initialized at 0 are managed. At each 125 MHz top, with respect to the CC I counter of the channel 1, the following behavior is implemented: When "NCO 1" = 0 and "Enable fifo" = 1, CC I = CC I + 1 during the block and CC I = CC I + 6 if we are at the beginning of the block to take into account the encapsulation GFP {Generic Framing Procedure in English), which is in our example embodiment the encapsulation method used to transport the Ethernet frame via the modem.
Quand « NCO_l » = « Enable_fîfo », CC_1 reste inchangé.  When "NCO_l" = "Enable_fîfo", CC_1 remains unchanged.
Quand « NCO l » = 1 et « Enable fifo » = 0, CC I = CC I - 1, CC I restant toujours au moins égal à 0.  When "NCO l" = 1 and "Enable fifo" = 0, CC I = CC I - 1, CC I always remaining at least equal to 0.
CC I fonctionne comme un intégrateur représentatif du déséquilibre entre le nombre d'octets effectivement transmis par le modem situé après la voie 1 et le nombre d'octets extraits du tampon 9.5.  CC I functions as an integrator representative of the imbalance between the number of bytes actually transmitted by the modem located after channel 1 and the number of bytes extracted from buffer 9.5.
Un intégrateur symétrique est implémenté pour la voie 2.  A symmetric integrator is implemented for channel 2.
Quand un bloc complet a été extrait du tampon 9.5, on compare les compteurs CC I et CC 2 à un seuil programmable pour chaque voie, Seuil l et Seuil_2. Si CC I < Seuil l et CC I <= CC 2, on décide de sortir le prochain bloc du tampon 9.5 vers la voie 1. De même, si CC 2 < Seuil_2 et CC 2 < CC I, on décide de sortir le prochain bloc du tampon 9.5 vers la voie 2. Dans les autres cas, on ne fait rien.  When a complete block has been extracted from the buffer 9.5, the counters CC I and CC 2 are compared to a programmable threshold for each channel, Threshold 1 and Threshold 2. If CC I <Threshold l and CC I <= CC 2, we decide to take the next block from buffer 9.5 to channel 1. Similarly, if CC 2 <Threshold_2 and CC 2 <CC I, we decide to release the next one Block 9.5 to channel 2. In other cases, nothing is done.
Le module 9.6 contrôle la sortie des octets constituant les blocs du tampon de mémorisation des blocs ainsi que l'insertion d'un préambule GMII à l'aide des modules d'insertion 9.8 et 9.7 pour constituer les signaux 9.10 et 9.11 émis sur chacun des liens physiques. Ces signaux sont donc caractérisés en ce qu'ils sont constitués de blocs de données représentant une séquence ordonnée d'octets d'un paquet de données de la couche liaison. De plus, chacun de ces blocs comporte un en-tête comportant un numéro de séquence et un drapeau pour indiquer que le bloc courant est le dernier bloc du paquet de données.  The module 9.6 checks the output of the bytes constituting the block storage buffer blocks as well as the insertion of a GMII preamble using the insertion modules 9.8 and 9.7 to constitute the signals 9.10 and 9.11 transmitted on each of the blocks. physical links. These signals are therefore characterized in that they consist of data blocks representing an ordered sequence of bytes of a data packet of the link layer. In addition, each of these blocks has a header with a sequence number and a flag to indicate that the current block is the last block of the data packet.
De manière optionnelle, le module d'insertion de CRC 9.12 est ajouté à la fin de chaque bloc pour satisfaire les implémentations de GMII qui n'acceptent pas les blocs ayant un CRC erroné.  Optionally, the CRC insertion module 9.12 is added at the end of each block to satisfy GMII implementations that do not accept blocks having an erroneous CRC.
La Fig. 10 illustre l'architecture du module d'agrégation selon un exemple de réalisation de l'invention. Les données arrivant de chacun des liens internes sont donc constituées de blocs selon l'invention. Ces blocs sont traités par des modules de retrait des préambules GMII 10.1 et 10.2 et aussi, en option, de retrait du CRC GMII. Les blocs sont alors mémorisés dans des tampons de réception, un par lien, 10.3 et 10.4. Le module d'état 10.5 contrôle alors l'agrégation de ces modules. Pour ce faire, il reçoit les numéros de séquence de chaque bloc et le niveau de remplissage des tampons de réception. Il détermine alors le tampon devant être vidé du contenu d'un bloc, il s ' agit du bloc dont le numéro est le prochain attendu dans l'ordre chronologique. Les 2 octets d'en-tête du bloc sont écartés et son corps est transféré au tampon de sortie 10.8. Le contrôle du sélecteur 10.7 permet d'insérer le CRC du paquet de données à la fin du dernier bloc de la trame à l'aide du module de calcul de CRC 10.6. L'émission de la trame sur le lien externe est gérée par le module 10.9 qui gère l'émission des données et l'insertion en tête de chaque trame d'un préambule GMII préparé par le module d'insertion de préambule 10.10. Fig. 10 illustrates the architecture of the aggregation module according to an exemplary embodiment of the invention. The data arriving from each of the internal links therefore consist of blocks according to the invention. These blocks are processed by GMII 10.1 and 10.2 preamble retrieval modules and also, optionally, CRC GMII removal. The blocks are then stored in receive buffers, one per link, 10.3 and 10.4. The state module 10.5 then checks the aggregation of these modules. To do this, he receives the sequence numbers of each block and the fill level of the receive buffers. It then determines the buffer to be emptied of the contents of a block, it is the block whose number is the next expected in chronological order. The 2 bytes of the block header are discarded and its body is transferred to the output buffer 10.8. Control of selector 10.7 is used to insert the CRC of the data packet at the end of the last block of the frame using the CRC 10.6 calculation module. The transmission of the frame on the external link is managed by the module 10.9 which manages the transmission of data and the insertion at the head of each frame of a preamble GMII prepared by the preamble insertion module 10.10.
L'invention ici décrite dans le cadre Ethernet et à l'aide d'un exemple de réalisation comportant deux liens physiques s'étend naturellement à un nombre quelconque de liens physiques. Elle peut s'appliquer à tout protocole de liaison et ce quelle que soit la technologie physique utilisée pour les différents liens.  The invention described here in the Ethernet framework and using an embodiment with two physical links naturally extends to any number of physical links. It can be applied to any link protocol regardless of the physical technology used for the different links.

Claims

REVENDICATIONS
1/ Dispositif d'agrégation de données comportant : 1 / Data aggregation device comprising:
- un lien externe permettant l'émission de paquets de données ;  an external link enabling the transmission of data packets;
- une pluralité de liens physiques internes permettant la réception de blocs de données ;  a plurality of internal physical links allowing the reception of data blocks;
- des moyens de réception (10.1 , 10.2) d'une pluralité de blocs de données reçus sur la pluralité de liens physiques internes ;  means for receiving (10.1, 10.2) a plurality of data blocks received on the plurality of internal physical links;
- des moyens pour supprimer l'en-tête de chaque bloc de données reçu qui comporte un numéro de séquence dudit bloc au sein d'un paquet de données et un drapeau marquant le dernier bloc du paquet ;  means for deleting the header of each received data block which comprises a sequence number of said block within a data packet and a flag marking the last block of the packet;
- des moyens pour agréger lesdits blocs pour reconstituer un paquet de données en fonction du numéro de séquence de chaque bloc et du drapeau marquant le dernier bloc ;  means for aggregating said blocks to reconstruct a data packet according to the sequence number of each block and the flag marking the last block;
- des moyens pour émettre ledit paquet de données sur le lien externe, caractérisé en ce qu'il comporte en outre :  means for transmitting said data packet on the external link, characterized in that it furthermore comprises:
- des moyens de calcul et d'insertion (10.6) d'une somme de contrôle du paquet de données en fin de paquet de données. 21 Dispositif d'agrégation de données selon la revendication 1 , caractérisé en ce qu'il comporte des moyens d'insertion (10.10) d'un préambule au début du paquet de données.  means for calculating and inserting (10.6) a checksum of the data packet at the end of the data packet. Data aggregation device according to claim 1, characterized in that it comprises means (10.10) for inserting a preamble at the beginning of the data packet.
3/ Dispositif d'agrégation de données selon la revendication 2, caractérisé en ce que, les liens physiques ayant une interface GMII, les moyens d'insertion (10.10) d'un préambule sont des moyens d'insertion d'un préambule GMII. 3 / device for aggregating data according to claim 2, characterized in that, the physical links having a GMII interface, the insertion means (10.10) of a preamble are means for inserting a preamble GMII.
4/ Procédé d'agrégation de données au sein d'un dispositif comportant un lien externe pour l'émission des données et une pluralité de liens physiques internes pour la réception de blocs de données comportant : 4 / A method of aggregating data within a device having an external link for transmitting data and a plurality of internal physical links for receiving data blocks comprising:
- une étape (5.10, 5.1 1) de réception d'une pluralité de blocs de données reçus sur la pluralité de liens physiques internes ; - une étape (5.8, 5.9) pour supprimer Γ en-tête de chaque bloc de données reçu qui comporte un numéro de séquence dudit bloc au sein d'un paquet de données et un drapeau marquant le dernier bloc du paquet ; a step (5.10, 5.1 1) of receiving a plurality of data blocks received on the plurality of internal physical links; a step (5.8, 5.9) for deleting Γ header of each received data block which includes a sequence number of said block within a data packet and a flag marking the last block of the packet;
- une étape (12.4) d'agrégation des différents blocs pour reconstituer le paquet de données;  a step (12.4) of aggregating the different blocks to reconstitute the data packet;
- une étape (12.5) d'émission du paquet de données sur le lien externe, caractérisé en ce qu'il comporte en outre :  a step (12.5) for transmitting the data packet on the external link, characterized in that it furthermore comprises:
- une étape (6.5) de calcul et d'insertion d'une somme de contrôle du paquet de données en fin de paquet de données.  a step (6.5) for calculating and inserting a checksum of the data packet at the end of the data packet.
5/ Procédé de distribution de données selon la revendication 4, caractérisé en ce qu'il comporte une étape (7.3) d'insertion d'un préambule au début de chaque paquet de données. 5 / method of data distribution according to claim 4, characterized in that it comprises a step (7.3) of inserting a preamble at the beginning of each data packet.
6/ Procédé de distribution de données selon la revendication 5, caractérisé en ce que, les liens physiques ayant une interface GMII, l'étape d'insertion (7.3) d'un préambule est une étape d'insertion d'un préambule GMII. 6 / A method of data distribution according to claim 5, characterized in that, the physical links having a GMII interface, the insertion step (7.3) of a preamble is a step of inserting a preamble GMII.
EP10784779A 2009-11-30 2010-11-25 Device and method for aggregating data received over a plurality of physical links Ceased EP2507948A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR0958517A FR2953354A1 (en) 2009-11-30 2009-11-30 DEVICE AND METHOD FOR AGGREGATING DATA RECEIVED ON A PLURALITY OF PHYSICAL LINKS.
PCT/EP2010/068190 WO2011064287A1 (en) 2009-11-30 2010-11-25 Device and method for aggregating data received over a plurality of physical links

Publications (1)

Publication Number Publication Date
EP2507948A1 true EP2507948A1 (en) 2012-10-10

Family

ID=42244091

Family Applications (1)

Application Number Title Priority Date Filing Date
EP10784779A Ceased EP2507948A1 (en) 2009-11-30 2010-11-25 Device and method for aggregating data received over a plurality of physical links

Country Status (4)

Country Link
EP (1) EP2507948A1 (en)
CN (1) CN102640460B (en)
FR (1) FR2953354A1 (en)
WO (1) WO2011064287A1 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106464419B (en) * 2014-12-29 2019-07-19 华为技术有限公司 Working condition method of adjustment, device, terminal device and the system of aggregated links
CN110943933B (en) * 2018-09-25 2023-09-01 华为技术有限公司 Method, device and system for realizing data transmission

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6873630B1 (en) * 1999-05-19 2005-03-29 Sun Microsystems, Inc. Method and apparatus for a multi-gigabit ethernet architecture
US6765866B1 (en) * 2000-02-29 2004-07-20 Mosaid Technologies, Inc. Link aggregation
US6879590B2 (en) * 2002-04-26 2005-04-12 Valo, Inc. Methods, apparatuses and systems facilitating aggregation of physical links into logical link
US7986622B2 (en) * 2006-10-24 2011-07-26 Broadcom Corporation Method and system for physical layer aggregation

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
None *
See also references of WO2011064287A1 *

Also Published As

Publication number Publication date
CN102640460B (en) 2016-05-04
CN102640460A (en) 2012-08-15
WO2011064287A1 (en) 2011-06-03
FR2953354A1 (en) 2011-06-03

Similar Documents

Publication Publication Date Title
CA1264875A (en) Method and device for transmitting digital data in the form of frame organized messages
EP0559593B1 (en) Method and apparatus for data compression and decompression for a transmission system
EP0354120B1 (en) Method and device for asynchronous transmission using microcells
FR2778517A1 (en) CARRIER ACTIVATION FOR DATA TRANSMISSION
FR2754123A1 (en) TRAFFIC MANAGEMENT AND CONTAINMENT CONTROL SYSTEM FOR PACKET BASED NETWORKS
WO2007080284A2 (en) Method and system for transmitting a multimedia data stream
EP1385315A2 (en) Multiplexing device, demultiplexing device and multiplexing/demultiplexing system
EP2605475A2 (en) Method and device for robust transmission of data packet streams with compressed headers with no bandwidth increase
EP1058477A1 (en) Interface apparatus between an ATM equipment and a synchronous radio transmission channel
EP2507947B1 (en) Device and method for distributing data over a plurality of physical links
EP0648063B1 (en) Method and apparatus for transmsission of series of ATM-cells
FR2828979A1 (en) COMPRESSOR, DECOMPRESSOR, DATA BLOCK, AND RESOURCE MANAGEMENT METHOD
FR2998125A1 (en) METHOD FOR TRANSMITTING DATA PACKETS BETWEEN TWO COMMUNICATION MODULES AND TRANSMITTER MODULE AND RECEIVER MODULE
EP2507948A1 (en) Device and method for aggregating data received over a plurality of physical links
EP0831601B1 (en) Arrangement for transmitting digital information by satellite from a plurality of ground stations
EP0547958B1 (en) Procedure and system for transmitting communication information via a transmission link consisting of variable length data blocks in asynchronous time
EP1376958A1 (en) Method of secure determination of a given state of a communication channel for a transmission system
FR2691029A1 (en) Remote surveillance and maintenance for digital transmission system - has analyser connected at distance to network between terminal and subscriber monitoring protocol words
EP1889388A1 (en) Method and system for transmitting a clock rate on an ethernet network link and applications thereof
FR3052944B1 (en) METHOD FOR SEGMENTING HIGH-PERFORMANCE DATA
EP1230769B1 (en) Method and system for transmitting ethernet frames in a sdh network
FR2947408A1 (en) Data transmission configuring device for two synchronous sub-networks, has interface module triggering reading of re-broadcasting memories on one of sub-networks by using phase difference as triggering threshold
FR3052943A1 (en) METHOD FOR RECONSTRUCTING DATA IN LOW-FLOW TRANSMISSION
EP2677805A1 (en) Device and method for managing bandwidth distribution between data in circuit form and data in packet form
WO2003069817A1 (en) System and method for the transmission of data in a synchronous network

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

17P Request for examination filed

Effective date: 20120621

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR

DAX Request for extension of the european patent (deleted)
17Q First examination report despatched

Effective date: 20141013

REG Reference to a national code

Ref country code: DE

Ref legal event code: R003

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE APPLICATION HAS BEEN REFUSED

18R Application refused

Effective date: 20170322