Brevet FR3031642A1 — publié le 20160715

Domaine de l'invention La présente invention se rapporte à un procédé de classification de segment de données pour la suite de son traitement. Etat de la technique De façon connue, un contrôleur de communication pour des réseaux comme par exemple CAN (bus système série), CAN étendu ou FlexRay ont des fonctions de filtres pour les paquets de données pour ne séparer par filtrage qu'une partie du trafic réseau et l'observer. Pour les unités de passage de réseau, c'est-à-dire les por- to tails, on peut réaliser des filtres de paquets de données avec de grandes matrices de communication en mettant en oeuvre des moyens importants pour les mémoires de données. Mais le nombre croissant de types de réseau et de participants dans le domaine automobile complique la construction d'un portail souple entre les réseaux différents. 15 La publication "Cuckoo hashing » Rasmul Tagh et Glem- ming Friche Rodler décrit un procédé de hachage « coucou ». Exposé et avantages de l'invention La présente invention a ainsi pour objet un procédé de classification d'un segment de données pour son traitement dans une 20 unité de transport de données, notamment dans un processeur de ré- seau, ce procédé étant caractérisé en ce que le segment de données comporte une information d'entête d'un paquet de données d'un protocole réseau encapsulé, on détermine une première valeur de hachage en fonction de l'information d'entête qui fonctionne comme une clef de re- 25 cherche à l'aide d'une première fonction de hachage, on détermine une seconde valeur de hachage en fonction de l'information d'entête qui fonctionne comme clef de recherche à l'aide d'une seconde fonction de hachage, on détermine une première entrée dans une première table de hachage en fonction de la première valeur de hachage, on détermine 30 une seconde entrée dans une seconde table de hachage en fonction de la seconde valeur de hachage, on sélectionne une clef d'une table de concordance en fonction de la première et de la seconde entrées de table à l'aide d'une fonction de sélection et, on détermine un paramètre pour la suite du traitement du segment de données en fonction d'une entrée 3031642 2 dans la table de concordance qui correspond à la clef de la table de concordance. Selon l'invention, pour déterminer le paramètre pour la suite du traitement d'un segment de données, on sélectionne une clef 5 correspondante pour une table de concordance en fonction d'une pre- mière et d'une seconde entrées dans une table de hachage respective à l'aide d'une fonction de sélection. De façon avantageuse, l'utilisation de deux tables de hachage et de deux fonctions de hachage différentes permettent de terminer le procédé et en même temps de réduire forte- ment le nombre de déterminations erronées de la clef et ainsi l'impossibilité de passage pour des segments de données. Selon un développement avantageux, une première fonc- tion de hachage détermine une première zone partielle de l'information d'entête comme première valeur de hachage ce qui correspond à une fonction de hachage simple qui s'exécute sans difficulté jusqu'à la fin. Selon un développement avantageux, la seconde fonction de hachage détermine une seconde zone partielle de l'information d'entête d'une valeur fixe comme seconde valeur de hachage ce qui correspond à une fonction de hachage simple qui s'exécute jusqu'à la fin sans difficulté. Selon un développement avantageux, on détermine un indice de bit de passage en fonction d'une caractéristique fixée au préalable et d'une caractéristique de l'interface d'entrée d'où provient le segment de données. En fonction des deux bits de passage qui se trou- vent à l'endroit de la suite des bits des entrées de tableaux comme défi- ni par l'indice de bit de passage, on sélectionne la clef de la table de concordance. L'utilisation du bit de passage de la suite de bits de l'entrée respective de la table compense avantageusement la non injectivité de la fonction de hachage utilisée. Cela permet notamment par rap- port à la phase d'entrée, de décider qu'en cas de collision par au moins un segment égal par section de l'information d'entête si des entrées de table de hachage sont ouvertes, c'est-à-dire si les segments de données correspondantes sont utilisées ou non, pour avoir un filtrage exact des segments de données. 3031642 3 Selon un développement avantageux, l'information d'entête comporte une caractéristique CAN étendue, la première zone partielle ayant une première partie de la caractéristique CAN étendue ou une fraction de celle-ci, la seconde zone partielle ayant une seconde 5 partie de la caractéristique CAN étendue ou une fraction de celle-ci. Selon un développement avantageux, pour déterminer la première et/ou la seconde zone partielle on élimine un certain nombre de bits, notamment trois bits de la caractéristique CAN étendue. Selon un développement avantageux, l'information 10 d'entête comporte une caractéristique CAN standard, la première zone partielle comportant la caractéristique CAN standard et la seconde zone partielle ayant toutes les positions nulles. Selon un développement avantageux, l'information d'entête est une caractéristique Flexray, la première zone partielle com- as porte la caractéristique Flexray, un bit de canal Flexray et une première partie d'un champ de cycle Flexray et la seconde zone partielle comporte une seconde partie du champ de cycle Flexray. Selon un développement avantageux, on détermine une seconde clef pour la table de concordance en fonction d'une caractéris- 20 tique fixée au préalable et d'une caractéristique de l'interface d'entrée d'où provient le segment de données et on détermine le paramètre pour la suite du traitement du segment de données en fonction de la première clef et de la seconde clef à partir de la table de concordance. Selon un développement avantageux, on mémorise la 25 première et la seconde clefs pour un premier segment de données de l'un des blocs de code et en fonction de la première et de la seconde clefs enregistrées, on détermine les paramètres pour la poursuite du traitement de l'ensemble des segments de données de la table de concordance. 30 Selon un développement avantageux, l'un des paramètres pour la suite du traitement du segment de données identifie une file d'attente dans laquelle est inscrit le segment de données. Selon un développement avantageux, l'un des paramètres pour la suite du traitement du segment de données identifie une unité de traitement qui reçoit le segment de données. 3031642 4 Selon un mode de réalisation avantageux, on rejette le segment de données si sur le fondement de la première clef et/ou de la seconde clef on ne détermine aucun paramètre pour la suite du traitement ou du segment de données à partir de la table de concordance. 5 On configure le circuit de commutation pour exécuter le procédé pour un temps de commutation en dehors du circuit de commutation, la première table de hachage et la seconde table de hachage sont remplies par le procédé "hachage coucou". Cette solution a l'avantage de réduire fortement le nombre de segments de données 10 transmis par erreur. Cela provient de ce que le procédé "hachage cou- cou" améliore avantageusement la répartition des entrées des deux tables. Dessins La présente invention sera décrite ci-après de manière 15 plus détaillée à l'aide d'un exemple de procédé de classification d'un segment de données représenté dans les dessins annexés dans lesquels : - les figures 1 à 3 montrent chacune un schéma par blocs, les figures 4, 5, 6 montrent chacune schématiquement une infor- 20 mation d'en-tête et, la figure 7 montre un schéma d'ordinogramme. Description de modes de réalisation La figure 1 montre un schéma par blocs. Un segment de données 4 est fourni à une interface d'entrée 6. Le segment de données 25 4 comporte une caractéristique chid fixée au préalable, qui est égale- ment appelée identificateur de canal. Le segment de données 4 comporte également la caractéristique devid de l'interface d'entrée 6. Le segment de données 4 a également une zone de données 8, encore appelée charge transportée du segment de données 4. Le segment de don- 30 nées 4 a également d'autres informations telles que par exemple la position du segment de données 4 comme faisant partie d'un bloc de données composé de plusieurs segments de données 4. Le paquet de données 10 d'un protocole réseau encapsulé comporte une information d'antenne 12 ainsi qu'une zone de données 35 14. Comme le montre la figure 1, la zone de données 8 du segment de 3031642 5 données 4 ne constitue qu'une partie du segment de données 10. A titre d'exemple, le segment de données de la figure 1 est le premier d'un ensemble de segments de données 4 servant à transmettre le paquet de données 10. 5 Un bloc 16 reçoit la caractéristique chid convenue au préalable, la caractéristique devid de l'interface d'entrée 6 dans le cas d'un premier segment de données 4, l'information d'en-tête 12 du paquet de données 10. En fonction des grandeurs fournies, le bloc 16 détermine le paramètre 20 pour la poursuite du traitement du segment de 10 données 4 à partir de la table de concordance décrite ensuite. Ainsi, le bloc 16 classifie le segment de données 4 pour son traitement ultérieur dans une unité de transport de données, notamment dans un processeur réseau ; l'unité de transport de données se compose au moins du bloc 16 et d'un bloc 18 ; le bloc 18 reçoit les paramètres 20 ainsi que le 15 segment de données 4. Suivant la flèche 22, le bloc 18 transmet les segments de données 4 pour lesquels on peut déterminer les paramètres 20, vers un ou plusieurs autres points de sortie non représentés. Le paquet de données 10 est par exemple un paquet de 20 données CAN, un paquet de données FlexRay, un paquet de données XCP (protocole de calibrage de mesure universel), un paquet de données CCP (protocole de calibrage CAN) ou un paquet de données Ethernet. Dans ce contexte on peut également envisager d'autres protocoles réseau non cités. 25 L'un des paramètres 20 identifie par exemple la longueur de la file d'attente dans le bloc 18 pour la suite du traitement du segment de données 4 ; le paramètre 20 identifie de manière univoque l'unité de traitement assurant la suite du traitement du segment de données 4 car chaque file d'attente est associée de manière fixe à une 30 unité de traitement de données. De façon avantageuse, tous les procédés décrits ici sont conçus pour que le bloc 16 fonctionne de manière terminale, c'est-à-dire que dans les étapes de traitement, en réponse à une entrée sous la forme d'un segment de données, il génère une sortie sous la forme de 35 paramètres 20. Le bloc 16 est avantageusement réalisé comme circuit 3031642 6 intégré. Le circuit intégré comporte par exemple un circuit dédié ASIC ou encore un circuit logique programmable FPGA. La figure 2 montre sous la forme d'un schéma par blocs, un détail du bloc 16 qui classifie un segment de données 4 pour son 5 traitement suivant, en déterminant des paramètres pour ce traitement du segment de données. La classification d'un seul segment de données englobe également la classification d'un bloc de données à plusieurs segments de données. C'est ainsi que par exemple, comme cela sera décrit ensuite, on utilise avantageusement une information d'en-tête dans 10 le premier segment de données du bloc de données pour déterminer des paramètres correspondants qui seront également utilisés pour les segments de données du bloc de données à la suite du premier segment de données pour en assurer le traitement. Un bloc 24 reçoit la caractéristique chid fixée au préa- 15 lable et la caractéristique devid du interface d'entrée 6. En fonction de la caractéristique chid fixée au préalable et de la caractéristique devid de l'interface d'entrée 6, le bloc 24 forme les grandeurs de sortie. Le bloc 24 utilise une première table 26 préconfigurée et une seconde table 28 préconfigurée. Dans le premier cas, à l'aide de la caractéristique devid 20 du interface d'entrée 6, la table 26 donne une seconde clef 30. Dans un autre cas, en utilisant la caractéristique chid convenue au préalable, en plus de la caractéristique devid, avec la table 28 on détermine la seconde clef 30 en fonction de la caractéristique devid de l'interface d'entrée 6 et de la caractéristique chid convenue au préalable. Avec la 25 seconde clef 30 on peut adresser par exemple des plages de mémoire dans la table de concordance 32 qui sont associées à l'une des interfaces d'entrée 6 ou aussi à l'une des interfaces d'entrée 6 et à la caractéristique chid convenue au préalable. La seconde clef 30 et la première clef 34 sont fournies à 30 la plage 64. A partir de la seconde clef 30 et de la première clef 34 on forme une clef de concordance 36, par exemple en additionnant la seconde clef 30 et la première clef 34. Dans cette addition, la première clef 34 constitue par exemple le décalage par rapport à la seconde clef 30, mais on peut également envisager d'autres combinaisons entre la se- 35 conde clef 30 et la première clef 34 pour la clef de concordance 36. 3031642 7 Un bloc 40 accède à la table de concordance 32 préconfiguré en fonction de la clef de concordance 36 et à partir de la table de concordance 32, il détermine les paramètres 20 pour la suite du traitement du segment de données 4 en cours de traitement. Par une infor- 5 mation 84 on indique au bloc 40 si le segment de données 4 examiné est le dernier, le premier ou un segment intermédiaire de données 4 du bloc de données ou du paquet de données 10. Si le bloc 40 ne peut déterminer aucun paramètre 20 pour la suite du traitement du segment de données 4 avec la clef de concordance 36 qu'il a reçue, dans la table 10 de concordance 32, le traitement du segment de données 4 sera arrêté et le segment rejeté. Le rejet du segment de données 4 qui n'a pas été saisi par une préconfiguration dans la table de concordance 32 ne nécessite pas d'élément de filtre avant l'interface d'entrée 6 dans la région du réseau respectif et le filtrage des flux de données de différentes par- 15 ties de réseau ou type de réseau peut être avantageusement centralisé dans le bloc 16. Une implémentation du bloc 16 sous la forme d'un circuit constitue un autre perfectionnement. Le signal 42 indique au bloc 44 lequel des signaux d'entrée du bloc 44 doit être transmis comme première clef 34. Le bloc 20 46 détermine une première clef 34a en fonction de la caractéristique chid fixée au préalable. Le bloc 48 génère une première clef 34b en fonction des informations d'entête 12 du paquet de données 10 et en fonction d'un signal 52 ; le signal 52 est généré par le bloc 24 pour indiquer au bloc 25 48 quel protocole et quelle plage des informations d'entête 12 doivent être exploitées. Le bloc 50 est un bloc de classification XCP pour le pro- tocole XCP (protocole de calibrage de mesure universel) qui est transporté par le protocole Ethernet. Le bloc 24 indique au bloc 50 par le 30 signal 54 à quel emplacement dans les données se trouve l'entête XCP car XCP peut par exemple être transmis par Ethernet, CAN ou Flexray et ainsi l'information d'entête 12 sera différente suivant le type de réseau de sorte que la position de l'entête XCP sera à un endroit différent à chaque fois. Un signal 56 indique au bloc 50 les informations concer- 3031642 8 nant la position de départ de l'entête XCP dans l'entête 12 et les informations concernant le codage de l'entête XCP. Le bloc 65 sert ainsi à générer et sélectionner la première clef 34. En particulier, par l'exploitation de l'information d'en-tête 12 on 5 forme la première clef 34. Ainsi, on pourra exploiter le signal FRAME-ID (identification de trame de données) à partir de l'information d'entête 12 et notamment l'adresse d'origine / ou l'adresse de destination dans l'information d'entête 12, car il y a une relation univoque entre devid, chid, l'information d'entête 12 et les paramètres 20, c'est-à-dire 10 l'enregistrement dans la table de concordance 32. Le bloc 68 accède à une première table de hachage 72 et une seconde table de hachage 74. Le bloc 68 génère une première clef 34e. Le bloc 24 fournit au bloc 68, un indice de bit de passage 76 décrit ci-après et qui se détermine en fonction des caractéristiques devid et 15 chid avec une table de conversion correspondante. La figure 3 est un schéma par blocs, du bloc 68 de la figure 2. L'information d'entête 12 est appliquée à un bloc 80 pour générer une première valeur de hachage 82. L'information d'entête 12 est appliquée à un bloc 84 pour générer une seconde valeur de hachage 86. 20 Le bloc 80 combine un masque de bit 88 à l'information d'entête 12 par une opération logique ET ; les bits de valeur faible de l'information d'entête 12 forment la première valeur de hachage 82. Le bloc 68 détermine d'une manière non représentée, un type TLV (TLV : Valeur de longueur d'étiquette) de l'information d'entête 12, c'est-à-dire si 25 l'information d'entête 12 est de type CAN standard, CAN étendu ou Fle- xray. Pour cela on recherche de préférence 13 Bits dans le format TLV de l'information d'entête 12 et on les réunit pour former la première valeur de hachage 82. Le masque de bit 88 et le bloc 80 sont appelés de manière générale, première fonction de hachage 92. La première fonc- 30 tion de hachage 92 détermine le masque de bit 88 en fonction de l'information d'entête 12 de type TLV. Le bloc 84 combine le masque de bit 90 à l'information d'entête 12 par une combinaison logique ET ; les bits de valeurs élevées de l'information d'entête 12 forment la seconde valeur de hachage 86. 35 On extrait de préférence 13 bits du format TLV de l'information d'entête 3031642 9 12 et on les combine pour former la seconde valeur de hachage 86. Le masque de bit 90 et le bloc 84 seront appelés globalement seconde fonction de hachage 94. La seconde fonction de hachage 94 détermine le masque de bit 90 en relation avec le type TLV de l'information d'entête 5 12. La première valeur de hachage 82 et la seconde valeur de hachage 86 ont chaque fois 13 bits selon la forme de réalisation préférentielle. On peut également avoir un nombre différent de bits provenant de l'information d'entête 12 pour les valeurs de hachage 82 et 86. La première valeur de hachage 82 est l'indice d'une pre- 10 mière entrée 86 dans la première table de hachage 72. La seconde va- leur de hachage 86 induit une seconde entrée 98 dans la seconde table de hachage 74. La première entrée 96 dans la première table de hachage 72 comprend un premier indicateur 100, une première suite de bits 102 et une seconde suite de bits 104. La seconde entrée de tableau 15 98 de la seconde table de hachage 74 se compose d'un second indica- teur 110, d'une première suite de bits 112 et d'une seconde suite de bits 114. On fournit au bloc 106, le premier indicateur 100, la se- conde valeur de hachage 86, la première valeur de hachage 82, le se- 20 cond indicateur 110, l'indice de bit de passage 76, une clef de rejet 118 et une clef de passage 120. On fournit également au bloc 106 les suites de bits 102, 104, 112, 114 des entrées 96 et 98. Le bloc 106, dont la fonction sera détaillée à l'aide de la figure 7, choisit la clef de rejet 118, ou la clef de passage 120 parmi les clefs sélectionnées 122 et transmet 25 la clef 122 à un bloc 124. La clef de passage 120 indique dans le ta- bleau de concordance 32, un enregistrement qui contient les paramètres 20 pour la suite du traitement. Le paramètre 20 pour la suite du traitement désigne par exemple un certain nombre d'une ou plusieurs files d'attente pour le segment de données 4. On peut ainsi former des 30 groupes multicast de files d'attente en établissant le segment de don- nées 4 dans chaque file d'attente des groupes multicast. En revanche, la clef de rejet 118 désigne une entrée dans la table de concordance 32 contenant le paramètre 20 qui aboutit au rejet du segment de données 4 ou à sa transmission vers une file 35 d'attente de correction de défaut. La file d'attente de correction de dé- 3031642 10 faut est exploitée par une fonction de correction de défaut pour traiter les segments de données 4 reçus, par exemple pour une recherche de défaut dans la circulation de données reçues. On peut également former pour la clef de rejet 118 des groupes multicast 41 de files d'attente de 5 correction de défaut. Le bloc 124 choisit une clef de correction de défaut comme première clef 34e, s'il n'y a aucun contenu de trame dans le segment de données 4, c'est-à-dire si le type TLV n'est pas de type CAN ou de type FlexRay. Ou encore le bloc 124 choisit la clef 122 juste obte- 10 nue comme première clef 34e ce qui est communiqué au bloc 124 par le signal 126. La figure 4 montre schématiquement une information d'entête 12a du protocole CAN étendu. Cette information d'entête 12 comporte une caractéristique de protocole CAN étendue. La caractéris- as tique CAN étendue 128 se compose d'une première partie 130 avec un nombre de 11 bits et une seconde partie 132 avec un nombre de 18 bits. Selon la première fonction de hachage 92 on ne tient pas compte d'un nombre de bits, ici du nombre de trois bits 133 qui correspond aux bits de valeur basse de la seconde partie 132 et la première valeur de 20 hachage 82 se compose de la première partie 130 et des deux bits de valeur basse de la seconde partie 132. La seconde valeur de hachage 86 résulte, selon la seconde fonction de hachage 94, des autres 13 bits de valeur élevée de la seconde partie 132. On peut également sélectionner les bits non pris en compte 134 à un autre endroit. 25 La première valeur de hachage 82 est également appelée première zone partielle de l'information d'entête 12 ; la première zone partielle adresse les bits de valeur basse de l'information d'entête 12. La seconde valeur de hachage 86 est également appelée seconde zone partielle de l'information d'entête 12 ; cette seconde zone partielle adresse 30 les bits de valeur élevée de l'information d'entête 12. La figure 5 montre une information d'entête 12b schématique d'un protocole CAN standard avec un nombre de 11 bits pour la caractéristique CAN standard 136 et deux autres bits 138 et 140. La première valeur de hachage 82 est formée à partir de l'information 35 d'entête 12b selon la première fonction de hachage 92. La seconde va- 3031642 11 leur de hachage 86 est remplie d'une valeur fixe, par exemple de zéros ou de uns. La figure 6 montre une information d'entête 12c schéma- tique du protocole Flexray avec une caractéristique Flexray 142, un bit 5 de canal Flexray 144 et un champ de cycle Flexray 146. Avec la pre- mière fonction de hachage 92 on forme la première valeur de hachage82. Avec la seconde fonction de hachage 94 on forme la seconde valeur de hachage 86. La figure 7 est le schéma d'un ordinogramme du bloc 106 10 de la figure 2. A la place 148 on vérifie si le segment de données 4 exa- miné avec l'information d'entête 12 est un segment de données 4 du protocole CAN étendu, encapsulé. Dans l'étape 150, s'il s'agit du protocole CAN étendu, on détermine un premier bit de passage à un emplacement de la suite de bits 102 défini par l'indice de bit de passage 76 et 15 un second bit de passage à l'endroit de la suite de bits 112 déterminé par l'indice de bit de passage 76. Dans l'étape 152, s'il ne s'agit pas du protocole CAN étendu, on détermine le premier bit de passage à l'endroit de la suite de bits 104 déterminé par l'indice de bit de passage 76 et le second bit de passage à l'endroit de la suite de bits 114 déter- 20 miné par l'indice de bit de passage 76. Les suites de bits 102 et 112 sont préconfigurées pour le protocole CAN étendu. Les suites de bits 104 et 114 sont préconfigurées pour les autres protocoles de réseau, encapsulés, tels que CAN standard et Flexray. A la position 154 on exploite le premier et le second bits 25 de passage. Les deux bits de passage sont « un », c'est-à-dire si les deux bits de passage correspondent à la valeur « vraie » selon l'algèbre de Boole, alors dans l'étape 156 on sélectionne la clef de passage 120 pour la transmission. Dans le cas contraire, c'est-à-dire si au moins l'un des deux bits de passage est égal à « zéro », c'est-à-dire si le bit est « faux » 30 selon l'algèbre de Boole, on passe à la position 158. A la position 158 on combine l'information d'entête 12 avec le premier indicateur 100. Si le premier indicateur 100 se trouve dans au moins une zone partielle de l'information d'entête 12, alors on passe à l'étape 156 ; dans le cas contraire on passe à l'étape 160. 3031642 12 A l'étape 160 on combine l'information d'entête 12 avec le second indicateur 110. Si on trouve le second indicateur 110 au moins dans une zone partielle de l'information d'entête 12, alors on passe à l'étape 156 ; dans le cas contraire on passe à l'étape 162 pour sélec- 5 tionner la clef de rejet 118 et poursuivre. Selon un mode de réalisation préférentiel, le premier indicateur 100 et la première valeur de hachage 82 correspondantes sont choisies comme des parties disjointes de l'information d'entête 12. De même, on sélectionne le second indicateur 110 et la seconde valeur de 10 hachage 86 comme des parties disjointes de l'information d'entête 12. Si l'information d'entête 12 contient un nombre de 29 bits, on détermine comme première valeur de hachage 82, un nombre de 13 bits de valeur basse et un nombre de 16 bits de valeur haute comme premier indicateur 100. On détermine un nombre de 13 bits de valeur haute comme 15 seconde valeur de hachage 86 et un nombre de 16 bits de valeur basse comme second indicateur 110. On peut également avoir une autre répartition, également d'autres zones qui n'utilisent pas le total du nombre de bits de l'information d'entête 12. On peut également enregistrer l'ensemble de l'information d'entête 12 comme indicateur 100 ou 20 110. Pendant le temps de fonctionnement, il est avantageusement pos- sible d'une part de comparer l'information d'entête 12 reçue avec l'information d'entête prévisible selon l'indicateur 100 ou 110 et d'autre part, de réduire la place de mémoire pour les indicateurs 100, 110 et passer de 29 à 16 Bits. On réalise ainsi un compromis entre 25 l'emplacement de mémoire nécessaire et la détection garantie et l'association de l'information d'entête 12. On génère les entrées de tables 96 et 98 pendant le temps de configuration ; on détermine l'utilisation des entrées de tables 96 et 98 pendant le temps de fonctionnement. 30 On sélectionne la première clef 34e de la table de concor- dance 32 en fonction de la première et de la seconde entrées de tables 96, 98 avec une fonction de sélection selon le bloc 106. La relation entre la première clef 34e et la première et la seconde entrées de tables 96, 98 signifie que l'on interroge les deux entrées de tables 96, 98 pour déter- 35 miner la première clef 34e. 3031642 13 Pour configurer le circuit de commutation pendant le temps de configuration à l'extérieur du circuit de commutation ou dans un processeur, on remplit la première table de hachage 72 et la seconde table de hachage 74 avec le hachage "coucou". Pour cela on commence 5 avec une nouvelle entrée à insérer dans la première table de hachage 72 et l'algorithme de hachage "coucou" introduit la nouvelle entrée dans la table de hachage 72 s'il y a de la place. Si la place est occupée, on cherche à décaler l'entrée dans la table de hachage 74. Si dans celle-ci la place est également occupée, on cherche de nouveau à décaler 10 l'entrée dans la table de hachage 72. Si aucune entrée ne peut être in- sérée car toutes les tentatives d'insertion de hachage "coucou" entre les tableaux échouent, on démarre avec la table de hachage 74. Si l'insertion dans la table de hachage 74 échoue, alors soit dans les suites de bits 102 et 112, soit dans l'une des deux suites de bits 104 et 114, 15 c'est-à-dire en fonction de l'existence d'une information d'entête 12 se- lon CAN étendu, on met à un endroit déterminé par l'indice de bit de passage 74, le bit à l'état 1. L'indice de bit de passage 76 se détermine en fonction de la caractéristique devid et chid qui identifient en commun l'une des interfaces d'entrée 6. Si la première et la seconde tables 20 de hachage 72, 74 sont terminés, on les charges sur le circuit intégré dans les mémoires. Grâce au bit de passage et à son utilisation, il est possible pendant le temps de fonctionnement, de résoudre les collisions de hachage. En particulier, on renonce à détecter les collisions pendant le temps de fonctionnement. On applique néanmoins les mesures ci- 25 dessus dans le sens de la prévision des valeurs de hachage et les bits de passage pour résoudre efficacement un nombre aussi élevé que possible de collisions de hachage pendant le temps de fonctionnement. D'un autre côté on ne peut prévoir toutes les collisions possibles et c'est pourquoi on accepte une suite réduite, c'est-à-dire une collision qui en- 30 traîne un traitement erroné des segments de données 4. 35 REVENDICATIONS1°) Procédé de classification d'un segment de données (4) pour son traitement dans une unité de transport de données (18), notamment dans un processeur de réseau, procédé caractérisé en ce que le segment de données (4) comporte une information d'entête (12), d'un paquet de données (10) d'un protocole réseau encapsulé, on détermine une première valeur de hachage (82) en fonction de l'information d'entête (12) qui fonctionne comme une clef de re- cherche à l'aide d'une première fonction de hachage (92), on détermine une seconde valeur de hachage (86) en fonction de l'information d'entête (12) qui fonctionne comme clef de recherche à l'aide d'une seconde fonction de hachage (94), on détermine une première entrée de table (96) dans une première table de hachage (72) en fonction de la première valeur de hachage (82), on détermine une seconde entrée de table (98) dans une seconde table de hachage (74) en fonction de la seconde valeur de hachage (86), on sélectionne une clef (34e ; 122 ; 118 ; 120) d'un tableau de con- cordance (32) en fonction de la première et de la seconde entrées de tableau (96, 98) à l'aide d'une fonction de sélection (106) et, on détermine un paramètre (20) pour la suite du traitement du segment de données (4) en fonction d'une entrée dans la table de concordance (32) qui correspond à la clef (34e) de la table de con- cordance (32). 2°) Procédé selon la revendication 1, caractérisé en ce que la première fonction de hachage (92) détermine une première plage par- tielle de l'information d'entête (12) comme première valeur de hachage (82). 3°) Procédé selon la revendication 2, caractérisé en ce que 3031642 15 la seconde fonction de hachage (94) détermine une seconde zone partielle de l'information d'entête (12) ou une valeur fixe comme seconde valeur de hachage (86). 5 4°) Procédé selon la revendication 1, caractérisé en ce qu' on détermine un indice de bit de passage (76) en fonction d'une caractéristique (chid) fixée au préalable en fonction d'une caractéristique (devid) d'une interface d'entrée (6) d'où provient le segment de données 10 (4), et en fonction de deux bits de passage qui se trouvent à un endroit fixé par l'indice de bit de passage (76) dans les suites de bits respectives (102, 112, 144) de la première et de la seconde entrées de tables (96, 98), on sélectionne la clef (34e, 122, 118, 120) pour la table de concor- 15 dance (32). 5°) Procédé selon la revendication 1, caractérisé en ce que l'information d'entête (12a) comporte une caractéristique CAN étendue, 20 la première zone partielle ayant une première partie de la caractéris- tique CAN étendue ou une partie de celle-ci et la seconde zone partielle comporte une seconde partie de la caractéristique CAN étendue ou une partie de celle-ci et la seconde zone partielle comporte une seconde partie de la caractéristique CAN étendue ou une partie de celle-ci. 25 6°) Procédé selon la revendication 5, caractérisé en ce que pour déterminer la première et/ou la seconde zone partielle, on élimine un certain nombre de bits, notamment 3 bits de la caractéristique CAN 30 étendue. 7°) Procédé selon la revendication 1, caractérisé en ce que 3031642 16 l'information d'entête (12b) contient une caractéristique CAN standard, la première zone partielle comprend la caractéristique standard CAN et dans la seconde zone partielle, toutes les positions sont des zéros. 5 8°) Procédé selon la revendication 1, caractérisé en ce que l'information d'entête (12) comporte une caractéristique Flexray (142), la première zone partielle comportant la caractéristique Flexray (142), un bit de canal Flexray (144) et une première partie d'un champs de cycle 10 Flexray (146) et la seconde zone partielle comporte une seconde partie du champ de cycle Flexray (146). 9°) Procédé selon la revendication 1, caractérisé en ce qu' 15 une seconde clef (30) pour la table de concordance (32) dépend d'une caractéristique (chid) fixée au préalable et d'une caractéristique (devid) de l'interface d'entrée (6) d'où provient le segment de données (4), et on détermine le paramètre (20) pour la suite du traitement de segment de données (4) en fonction de la première clef (34) et de la seconde 20 clef (30) de la table de concordance (32). 10°) Procédé selon la revendication 1, caractérisé en ce que la première et la seconde clefs (34, 30) sont enregistrées pour le premier 25 segment de données (4) de l'un des blocs de données et en fonction de la première et de la seconde clefs (34, 30) enregistrées, on détermine les paramètres (20) pour la suite du traitement de l'ensemble des segments de données (4) de la table de concordance (32). 30 11°) Procédé selon la revendication 1, caractérisé en ce que l'un des paramètres (20) de la suite du traitement du segment de données (4) identifie une file d'attente dans laquelle le segment de données (4) est inscrit. 35 3031642 17 12°) Procédé selon la revendication 1, caractérisé en ce que le segment de données (4) est rejeté sur le fondement de la première clef (30) et/ou de la seconde clef (34), on ne détermine aucun paramètre 5 pour poursuivre le traitement du segment de données (4) à partir de la table de concordance (32). 13°) Circuit intégré pour la mise en oeuvre du procédé selon l'une quelconque des revendications 1 à 12, selon lequel 10 le segment de données (4) comporte une information d'entête (12) d'un paquet de données (10) d'un protocole réseau encapsulé, on détermine une première valeur de hachage (82) en fonction de l'information d'entête (12) qui fonctionne comme une clef de recherche à l'aide d'une première fonction de hachage (92), 15 on détermine une seconde valeur de hachage (86) en fonction de l'information d'entête (12) qui fonctionne comme clef de recherche à l'aide d'une seconde fonction de hachage(94), on détermine une première entrée de table (96) dans une première table de hachage (72) en fonction de la première valeur de ha- 20 chage(82), on détermine une seconde entrée de table (98) dans une seconde table de hachage (74) en fonction de la seconde valeur de hachage (86), on sélectionne une clef (34e ; 122 ; 118 ; 120) d'une table de con- 25 cordance (32) en fonction de la première et de la seconde entrées de table (96, 98) à l'aide d'une fonction de sélection (106) et, on détermine un paramètre (20) pour la suite du traitement de segment de données (4) en fonction d'une entrée dans la table de concordance (32) qui correspond à la clef (34e) de la table de con- 30 cordance (32). 14°) Procédé de configuration du circuit intégré selon la revendication 13, caractérisé en ce que 3031642 18 pour la configuration, au-delà du circuit de commutation on remplit une première table de hachage (72) et une seconde table de hachage (74) par le hachage "coucou". 5 15°) Procédé selon la revendication 14, caractérisé en ce qu' on charge la première et la seconde table de hachage (72, 74) dans le circuit intégré. 10