FR2874296A1 - Procede et dispositif de classification de paquets en pipeline et de recherche d'adresse combinees pour une commutation d'environnements - Google Patents

Procede et dispositif de classification de paquets en pipeline et de recherche d'adresse combinees pour une commutation d'environnements Download PDF

Info

Publication number
FR2874296A1
FR2874296A1 FR0506639A FR0506639A FR2874296A1 FR 2874296 A1 FR2874296 A1 FR 2874296A1 FR 0506639 A FR0506639 A FR 0506639A FR 0506639 A FR0506639 A FR 0506639A FR 2874296 A1 FR2874296 A1 FR 2874296A1
Authority
FR
France
Prior art keywords
packet
packet header
frame
frame type
type
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.)
Granted
Application number
FR0506639A
Other languages
English (en)
Other versions
FR2874296B1 (fr
Inventor
James Yik
Rong Feng Chang
Craig Barrack
Eric Changhwa Lin
John Ta
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.)
Microsemi Semiconductor ULC
Original Assignee
Zarlink Semoconductor Inc
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 Zarlink Semoconductor Inc filed Critical Zarlink Semoconductor Inc
Publication of FR2874296A1 publication Critical patent/FR2874296A1/fr
Application granted granted Critical
Publication of FR2874296B1 publication Critical patent/FR2874296B1/fr
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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/56Routing software
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3063Pipelined operation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/54Organization of routing tables
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/20Support for services
    • H04L49/201Multicast operation; Broadcast operation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/60Software-defined switches
    • H04L49/602Multilayer or multiprotocol switching, e.g. IP switching

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

Noeud de commutation par paquet muni d'une architecture de traitement de paquet en pipeline traitant des paquets reçus par l'intermédiaire d'un connecteur d'entrée associé au noeud de commutation par paquet. Le procédé effectué par le dispositif comprend la détermination d'un type de trame de paquet du paquet reçu, l'extraction sélective de valeurs de champ d'en-tête de paquet spécifiques à un type de trame de paquet, la valeur extraite de champ d'en-tête de paquet comprenant une information d'adressage de paquet, l'attribution au paquet d'une action préliminaire devant être appliquée concernant le paquet, la recherche d'une information de commutation de paquet suivie par le noeud de commutation par paquet sur la base d'une information extraite d'adressage de paquet, la formulation d'une réponse préliminaire de commutation pour le paquet, le classement du paquet dans un flux parmi une pluralité de flux de paquet, la modification de la réponse préliminaire de commutation selon un élément parmi l'action préliminaire, le flux de paquet dans lequel a été classé le paquet et une action de connecteur par défaut correspondant au connecteur d'entrée, la modification de l'en-tête de paquet selon un élément parmi l'action préliminaire, le flux de paquet et l'action de connecteur par défaut, et le traitement du paquet selon la réponse de commutation. Des avantages sont déduis du traitement en pipeline des paquets permettant un court-circuitage du reste du traitement pour des paquets inadaptés, d'une détermination flexible du type de trame qui est rapide pour des types bien connus de trame, encore de support flexible pour de nouveaux types de trame retardant l'obsolescence d'une mise en oeuvre particulière, d'une détermination préliminaire d'une action de traitement qui est affinée, de façon successive, par des étages suivants, d'un moteur combiné de recherche d'adressage de réseau de Couche 2 et de Couche 3 agissant sur des adresses de réseau indexées de courte longueur de bits de Couche 2 et de Couche 3 réduisant les contraintes de stockage de table d'adressage de réseau, nécessitant une largeur de bande réduite pour le transfert des données pour un accès à la table d'adressage de réseau, d'une grande table d'adressage hachée externe de réseau primaire et d'une seconde table d'adressage interne de réseau secondaire, d'une détermination préliminaire d'une réponse de commutation et d'une réponse de commutation basée sur le classement de paquet et d'une modification d'en-tête de paquet.

Description

PROCÉDÉ ET DISPOSITIF DE CLASSIFICATION DE PAQUETS EN
PIPELINE ET DE RECHERCHE D'ADRESSE COMBINÉES POUR UNE COMMUTATION D'ENVIRONNEMENTS L'invention concerne les communications à commutation par paquets et en particulier, des procédés et un dispositif de recherche et de classification combinées sur pipeline.
Dans le domaine des communications à commutation par paquets, le contenu transporté entre un noeud de réseau de source et un noeud de réseau de destination participant à un réseau de communications est segmenté pour un transport par paquets. Les paquets ont une structure comprenant une entête de paquet et des données utiles de contenu. Les noeuds de réseau de communications dans le trajet séparant les noeuds de réseau de source et de destination comme, sans y être limité, des noeuds de réseau de commutation, reçoivent, stockent, inspectent, traitent et acheminent chaque paquet sur la base d'une information spécifiée dans l'en-tête de paquet. Ce mode de fonctionnement est connu comme une commutation par paquet non déterministe de stockage et d'acheminement.
Les noeuds de réseau de commutation sont des noeuds de réseau à plusieurs connecteurs. Un traitement de chaque paquet stocké et reçu par l'intermédiaire d'un connecteur d'entrée comprend la détermination d'au moins un connecteur de sortie par l'intermédiaire duquel on achemine le paquet stocké. La détermination d'au moins un connecteur de sortie couplé à l'acheminement réel par l'intermédiaire au moins du connecteur déterminé de sortie est connu comme une commutation par paquet. Une caractéristique importante d'un noeud de réseau générique de commutation et une condition d'un noeud de réseau de commutation utilisé dans le noyau d'un réseau de communications est que la largeur de bande de sortie autorisant une commutation par paquet de stockage et d'acheminement soit effectuée à la vitesse de la ligne/câble entrante sur une base en cours. Tandis qu'une telle condition semble raisonnable, elle est difficile à remplir dans la pratique en dépit de ou par suite de nombreux progrès récents dans ce domaine.
L'historique et le développement des communications à commutation par paquet sont très divers, y compris l'utilisation de plusieurs technologies sur la Couche physique 1 comme un câblage, une connexion sans fil, un transport physique optique, etc. ; l'utilisation de plusieurs technologies d'encapsulation sur la Couche 2 de liaison de données comprenant des technologies Ethernet; l'utilisation de plusieurs protocoles de transport sur la Couche 3 de réseau comprenant le Protocole Internet (IP), le Protocole de Message de Commande par Internet (ICMP), etc. Les technologies d'IP sur Ethernet jouissent du plus large développement.
Par exemple, le IP/Ethernet standard présente un transport non déterministe au mieux par paquet. Les caractéristiques non déterministes procurent un réacheminement autonome des paquets dans une infrastructure d'échec de réseau de communications; cependant, la caractéristique au mieux ne fournit pas de garantie concernant un transport réussi (pas même prématurément) de paquet entre le noeud de réseau de source et de destination. Un Protocole de Commande de Transport (TCP) est, de plus, utilisé pour identifier des paquets manquants constituant le moyen pour une demande de retransmission. Un transport de paquet opportun est adressé par l'intermédiaire d'une différenciation de trafic/service et est assuré par l'intermédiaire d'un traitement préférentiel de paquet sur des noeuds intermédiaires de réseau de communications entre les noeuds de réseau de source et de destination.
Il est difficile de traiter tous les problèmes cités ci dessus pour assurer une commutation soutenue par paquets à la vitesse de câblage/ligne. Tandis que des développements théoriques à cet égard fournissent l'assurance que de tels noeuds de réseau de commutation pourraient être élaborés, des mises en oeuvre pratiques sont spoliées par des coûts élevés de développement, de mise en oeuvre et de validation tout en subissant diverses complexités de mise en oeuvre. Par suite d'un développement rapide dans ce domaine, non seulement des noeuds de réseau de commutation doivent fonctionner à la vitesse de ligne/câblage tout en traitant des paquets de longueur minimale sur plusieurs protocoles, mais aussi on désire une certaine mesure de flexibilité pour retarder l'obsolescence d'équipement en vue de développements futurs de la technologie.
Dans la Demande antérieure de Brevet des Etats Unis N 2002/54 604 Al intitulée "Network Switching Architecture with Fast Filtering Processor" qui a été publiée le 9 mai 2002, Kadambi et Ass. décrivent un procédé et un dispositif de filtrage des paquets reçus par l'intermédiaire d'un connecteur d'entrée. Le traitement de paquet atteignant une décision concernant la mise de coté ou non d'un paquet est connu comme un filtrage de paquets. Tandis que Kadambi et Ass. préconisent la mise en oeuvre de fonctions de noeud de réseau de commutation sur une seule pastille dans laquelle les fonctions de noeud de commutation sont modulaires pour un développement indépendant, la mise en oeuvre décrite est complexe et fastidieuse car le filtrage mis en oeuvre en ce qui concerne chaque connecteur nécessite un groupe complexe arbitré de trois canaux assurant une communication interne entre les modules de connecteur. Le filtrage de paquets ne commute pas en soi de paquets; il ne fournit que les moyens de réduire un traitement inutile des paquets.
Certains aspects de sécurité sont traités, de même, par l'intermédiaire d'un filtrage de paquets ce qui révèle, de plus, l'importance du filtrage de paquets. Tandis qu'un filtrage basé sur un connecteur peut très bien assurer un filtrage de paquets à la vitesse de ligne/câblage, un filtrage ne règle pas seul les autres problèmes mentionnés ci dessus concernant le traitement des paquets sur un noeud de réseau de commutation.
Le Brevet des Etats Unis N 6 697 873 Bi intitulé "High Speed MAC Address Search Engine" délivré le 24 février 2004 pour Yik et Ass. (dont certains sont des inventeurs désignés dans notre cas) et incorporé ici en référence décrit un dispositif et un procédé de stockage et de recherche d'adresses de noeud de réseau dans un noeud de réseau de communications comme un noeud de réseau de commutation. Le dispositif comprend deux tables d'adresses de Commande d'Accès de Support (MAC) pour le stockage et la recherche d'adresses MAC. Une table primaire d'adresses MAC stocke des enregistrements spécifiant des valeurs comprimées correspondant aux adresses MAC et chaque enregistrement est stocké sur une position référencée à l'aide de la valeur hachée d'adresse MAC sous la forme d'un index. Afin de prendre en compte des conflits de recherche pouvant résulter du hachage de plusieurs adresses MAC sur le même index et par conséquent, la même position dans la table primaire d'adresses MAC, chaque enregistrement de la table primaire d'adresses MAC est lié, de plus, à une chaîne correspondante d'enregistrements stockés dans la table secondaire d'adresses MAC. Des enregistrements dans la table secondaire d'adresses MAC spécifient des adresses MAC complètes. Un stockage d'adresses MAC sur des noeuds de réseau de commutation est important pour réduire le traitement requis pour une commutation de paquets: des enregistrements dans les tables d'adresses MAC comprennent, de même, des connecteurs de sortie précédemment déterminés pour des paquets adressés de façon similaire. Une extraction rapide des enregistrements d'adresse MAC à partir des tables d'adresses MAC est important pour l'obtention d'une commutation rapide de paquets. La mise en oeuvre décrite par Yik et Ass. assure un équilibre entre les coups de mise en oeuvre des consultations d'adresses MAC et la vitesse de recherche des adresses MAC.
La Demande de Brevet des Etats Unis N 10/750 445 intitulée "High Speed MAC Address Search Engine" déposée le 31 décembre 2003 par Barrak et Ass. (dont certains sont des inventeurs désignés dans notre cas) et incorporée ici en référence, décrit un dispositif et des procédés améliorés pour le stockage et la recherche d'adresses de noeud de réseau dans un noeud de réseau de communications comme un noeud de réseau de commutation. Le dispositif comprend deux tables d'adresses de Commande d'Accès de Support (MAC) pour un stockage et une recherche d'adresses MAC. Une table primaire d'adresses MAC, externe au processeur de commutation de paquet, stocke des enregistrements spécifiant des valeurs comprimées correspondant aux adresses MAC, plus d'un enregistrement étant stocké sur des positions de stockage référencées à l'aide des valeurs hachées d'adresses MAC sous la forme d'indications. Un stockage externe de la table primaire d'adresses MAC permet l'utilisation hors des mémoires intégrées assurant un stockage suffisant qui est compensé par un temps système de transfert de données entre le processeur de commutation et la mémoire externe. Afin de prendre en compte des conflits de recherche pouvant résulter du hachage de plusieurs adresses MAC sur le même index, chaque enregistrement dans la table primaire d'adresses MAC est lié, de plus, à des chaînes correspondantes d'enregistrements stockées dans la table secondaire d'adresses MAC. Des enregistrements dans la table secondaire d'adresses MAC spécifient des adresses MAC comprimées afin de minimiser les conditions de stockage de table secondaire d'adresses MAC en particulier lorsque la table secondaire d'adresses MAC est mise en oeuvre sur la même matrice de pastille avec le processeur de commutation de paquet.
Tandis que les développements décrits ci-dessus visant des performances améliorées de commutation ont effectué des progrès importants, il existe encore un besoin pour résoudre les problèmes mentionnés ci dessus pour une amélioration des performances de commutation, en particulier pour le support de plus grandes densités de connecteurs.
Selon un aspect de l'invention, on prévoit un schéma flexible d'analyse d'en-tête selon lequel trois moteurs d'analyse syntaxique d'en-tête sont utilisés en parallèle pour déterminer divers types de trame sur la base d'une inspection de configurations de bits spécifiques d'en-tête de paquet des paquets entrants à la pleine vitesse de ligne/câblage. L'utilisation de trois moteurs d'analyse syntaxique d'en-tête assure une certaine flexibilité ; un moteur matériel permet une identification rapide de type de trame pour des types standards bien connus de trame, un moteur configurable d'analyse d'arborescence de décision détermine des types de trame par l'intermédiaire d'un processus successif d'élimination de type de trame et un moteur configurable de correspondance de modèle effectue des comparaisons de modèles binaires.
Selon un autre aspect de l'invention, des valeurs de champ d'en-tête de paquet sont extraites de l'en-tête de paquet après la détermination du type de trame, ce qui assure un traitement préliminaire minimal et rapide. Un extracteur de champ pouvant être configuré par l'utilisateur est utilisé. Des décalages pour les champs extraits peuvent être spécifiés en ce qui concerne chaque type de trame. Pour certains types de paquet, une action de traitement de paquet peut être déterminée à ce stade préliminaire dans le pipeline.
Selon un aspect supplémentaire de l'invention, des coûts de mise en oeuvre sont réduits par mappage des adresses MAC de source et de destination de Couche 2 et des adresses IP de source et de destination de Couche 3 dans un index interne utilisé dans la recherche des tables d'adressage. Un moteur de recherche combinée L2 et L3 utilise un schéma de recherche à base de hachage pour mapper des valeurs extraites de champ d'adressage de réseau en un index présentant une courte longueur binaire.
Selon encore un autre aspect de l'invention, des actions finales sont imputées aux paquets classés comprenant sans y être limitées une insertion d'IDentificateur de Réseau Local Virtuel (VLAN ID), un remappage de VLAN, un remappage de Type de Service (TOS), un renforcement de Qualité de Service (QoS), un filtrage, un acheminement et une modification d'en-tête.
Selon un aspect de l'invention, un noeud de commutation par paquet possédant une architecture de traitement de paquets en pipeline est prévu. Le noeud de commutation par paquet comprend: un moyen de détermination d'un type de trame de paquet d'un paquet reçu par l'intermédiaire d'un connecteur d'entrée du noeud de commutation par paquet; un moyen d'extraction sélective des valeurs de champ d'en-tête de paquet spécifiques à un type de trame de paquet, la valeur extraite de champ d'en- tête de paquet comprenant une information d'adressage de paquet; un moyen d'imputation au paquet d'une action préliminaire devant être effectuée en ce qui concerne le paquet; un moyen de recherche d'une information de commutation de paquets suivie par le noeud de commutation par paquet sur la base de l'information extraite d'adressage de paquet; et un moyen pour formuler une réponse préliminaire de commutation pour le paquet. Un classifieur de paquet classe le paquet en une parmi une pluralité de flux de paquets. Un moyen de modification de réponse de commutation modifie la réponse préliminaire de commutation selon un critère parmi l'action préliminaire, le flux de paquets dans lequel a été classé le paquet et une action de connecteur par défaut correspondant au connecteur d'entrée. Un moyen de modification d'en-tête de paquet modifie l'en-tête de paquet selon un critère parmi l'action préliminaire, le flux de paquets et l'action de connecteur par défaut. Le noeud de commutation par paquet comprend, de plus, un moyen pour traiter le paquet selon la réponse de commutation.
Selon un autre aspect de l'invention, un procédé de traitement des paquets reçus sur un noeud de commutation par paquet par l'intermédiaire d'un connecteur d'entrée est prévu. Un type de trame de paquet du paquet reçu est déterminé. Des valeurs de champ d'en-tête de paquet spécifiques au type de trame de paquet sont extraites de façon sélective, les valeurs extraites de champ d'en-tête de paquet comprenant une information d'adressage de paquet.
Une action préliminaire devant être effectuée en ce qui concerne le paquet est imputée au paquet. Une information de commutation de paquets suivie par le noeud de commutation par paquet est recherchée sur la base de l'information extraite d'adressage de paquet. Une réponse préliminaire de commutation est formulée. Le paquet est classé dans une parmi une pluralité de flux de paquets. La réponse préliminaire de commutation est modifiée selon un critère parmi l'action préliminaire, le flux de paquets dans laquelle a été classée le paquet et une action de connecteur par défaut correspondant au connecteur d'entrée.
L'en-tête de paquet est modifiée selon un critère parmi l'action préliminaire, le flux de paquets et l'action de connecteur par défaut. Ensuite, le paquet est traité selon la réponse de commutation.
Selon un aspect supplémentaire de l'invention, un noeud de commutation par paquet possédant une architecture de traitement de paquets en pipeline pour traiter des paquets reçus par l'intermédiaire de plusieurs connecteurs de source de noeud de commutation par paquet est prévu. Le noeud de commutation par paquet comprend un moyen d'extraction de valeur de champ d'en-tête de paquet pour extraire de façon sélective des valeurs de champ d'en-tête de paquet à partir de plusieurs valeurs de champ d'entête de paquet transportées par chaque paquet sur la base d'un des connecteurs de sortie par l'intermédiaire duquel le paquet a été reçu et un type précédemment déterminé de trame de paquet. Le noeud de commutation par paquet comprend, de plus, un moyen pour attribuer un type de correspondance au paquet, le type de correspondance classant à l'avance le paquet sur la base des valeurs extraites de champ d'en-tête de paquet indépendamment du format de la trame de paquet. Le noeud de commutation par paquet comprend, de plus, un moyen de recherche d'un élément parmi une information de commutation de paquets, une information d'acheminement de paquets et une information de protocole de réseau local virtuel suivie par le noeud de commutation par paquet sur la base d'un élément parmi les valeurs extraites de champ d'en-tête de paquet, le type de correspondance et le connecteur de source pour formuler une réponse préliminaire de commutation pour le paquet. Un classifieur de paquets pour classer le paquet dans une parmi plusieurs flux de traitement de paquets sur la base d'un élément parmi l'identificateur de connecteur de source, la réponse préliminaire de commutation, les valeurs extraites de champ d'en-tête de paquet et le type de correspondance.
Selon encore un autre aspect de l'invention, un procédé de traitement des paquets reçus par l'intermédiaire d'une pluralité de connecteurs de source d'un noeud de commutation par paquet présentant une architecture de traitement de paquets en pipeline est prévu. Les valeurs de champ d'entête de paquet sont extraites, de façon sélective, à partir de la pluralité de valeurs de champ d'en-tête de paquet transportées par chaque paquet sur la base d'un des connecteurs de source par l'intermédiaire duquel a été reçu le paquet et d'un type précédemment déterminé de trame de paquet. Le paquet est classé à l'avance indépendamment du format de la trame de paquet sur la base des valeurs extraites de champ d'en-tête de paquet et un type de correspondance est attribué au paquet. Un élément parmi l'information de commutation de paquets, l'information d'acheminement de paquets et une information de protocole de réseau local virtuel suivie par le noeud de commutation par paquet est recherché sur la base d'un élément parmi les valeurs extraites de champ d'en-tête de paquet, le type de correspondance et le connecteur de source pour formuler une réponse préliminaire de commutation pour le paquet. Ensuite, le paquet est classé dans une parmi une pluralité de flux de traitement de paquet sur la base d'un élément parmi l'identificateur de connecteur de source, la réponse préliminaire de commutation, des valeurs extraites de champ d'en-tête de paquet et le type de correspondance.
On tire avantage du traitement de paquets en pipeline permettant de courtcircuiter le reste du pipeline de traitement de paquet, d'une détermination flexible du type de trame qui est rapide pour des types bien connus de trame, constituant encore un support flexible des nouveaux types de trame retardant l'obsolescence d'une mise en oeuvre particulière, d'une détermination préliminaire d'une action de traitement qui est successivement précisée par des étapes suivantes, d'un moteur de recherche d'adressage combiné de réseau de Couche 2 et de Couche 3 agissant sur des adresses indexées de courte longueur binaire de réseau de Couche 2 et de Couche 3 réduisant les conditions de stockage de table d'adresses de réseau, nécessitant une largeur de bande réduite de transfert de données pour un accès à la table d'adressage de réseau, permettant le stockage d'un grand nombre d'entrées hachées dans la table primaire externe d'adressage de réseau, et un nombre relativement grand d'entrées dans la table secondaire interne d'adressage de réseau, une détermination préliminaire d'une réponse de commutation et une réponse de commutation basée sur un classement de paquets et une modification d'en- tête de paquet.
Les caractéristiques et avantages de l'invention deviendront plus évidents à partir de la description détaillée suivante du(des) mode(s) de mise en oeuvre, à titre d'exemple,(s) en référence aux dessins annexés sur lesquels: la Figure 1 est un schéma illustrant des éléments mettant en oeuvre, selon le mode de mise en oeuvre de l'invention, à titre d'exemple, un moteur combiné de recherche et de classification en pipeline pour des environnements de commutation de paquets; la Figure 2 est un schéma illustrant selon le mode de mise en oeuvre de l'invention, à titre d'exemple, un concept d'élimination successive de type de trame; la Figure 3 est un schéma illustrant selon le mode de mise en oeuvre de l'invention, à titre d'exemple, des éléments, à titre d'exemples, d'un moteur d'analyse syntaxique d'arborescence de décision; la Figure 4 est un organigramme illustrant selon le mode de mise en oeuvre de l'invention, à titre d'exemple, des étapes d'un cycle d'un processus d'élimination successive de type de trame; la Figure 5 est un schéma illustrant des priorités, à titre d'exemples, selon lesquelles des actions sont appliquées, à titre d'exemples, par l'étage 5 du pipeline, à titre d'exemple, de traitement de paquet selon une mise en oeuvre, à titre d'exemple, du mode de mise en oeuvre de l'invention, à titre d'exemple, ; la Figure 6 illustre des détails d'une mise en 10 oeuvre, à titre d'exemple, de l'étage 5 du pipeline de traitement de paquets, à titre d'exemple, selon le mode de mise en oeuvre de l'invention, à titre d'exemple, ; et la Figure 7 illustre des détails supplémentaires d'une mise en oeuvre de module de mesure et de comptage selon le mode de mise en oeuvre de l'invention, à titre d'exemple,.
On remarquera que sur les dessins annexés, des parties similaires reçoivent des références similaires.
Selon un mode de mise en oeuvre de l'invention, à titre d'exemple, un moteur combiné de classification de paquets en pipeline et de recherche d'adresses est prévu, fournissant un support pour des services différenciés comme un filtrage, une facturation et des offres de qualité de service.
Selon le mode de mise en oeuvre de l'invention, à titre d'exemple, une des fonctions d'un classifieur de paquet consiste à classer des paquets en flux de paquets, de façon usuelle par examen des multiples valeurs de champ d'en-tête de paquet. Les règles utilisées par le classifieur de paquet spécifient quelles valeurs de champ doivent être examinées et celles qui sont attendues. Des paquets obéissant à la même règle sont classés comme appartenant au même flux de paquets dans l'équipement mettant en oeuvre l'invention. Lors du traitement de tels paquets, la(les) même(s) action(s) de traitement de paquet est(sont) effectuée(s) lors de son traitement, action(s) comprenant, de façon usuelle, une commutation du paquet.
Selon le mode de mise en oeuvre de l'invention, à titre d'exemple, la classification des paquets et la recherche d'adresse de réseau de Couche 2 et de Couche 3 sont intégrées à l'aide d'une architecture de pipeline étagé 100, comme illustré sur la Figure 1.
Selon le mode de mise en oeuvre de l'invention, à titre d'exemple, la détermination du type de trame de paquet est effectuée lors de l'Étape 1 avant l'extraction de champ d'en-tête de paquet; la détermination de la trame de paquet avant le traitement des paquets réduit le traitement lors de l'extraction des valeurs de champ des en-têtes de paquet au minimum requis. Trois moteurs de détermination de type de trame de paquet sont utilisés en parallèle pour identifier les types de trame des paquets reçus. Selon la mise en oeuvre, à titre d'exemple, du mode de mise en oeuvre de l'invention, à titre d'exemple, au moins 256 types de trame de paquet peuvent être discriminés sans en limiter l'invention. Les moteurs de détermination de type de trame de paquet inspectent des parties de chaque en-tête de paquet 102 de chaque paquet reçu et comprennent.
Un moteur matériel de détermination de type de trame 104 assure une identification très rapide de type de trame de paquet pour des formats de trame de paquet spécifiés de façon usuelle selon des standards largement acceptés comme le standard IEEE 802x publié par la Internet Engineering Task Force (IETF) qui est incorporé ici en référence. Sans limitation de l'invention, le fonctionnement du moteur matériel 104 est optimisé lors de sa conception de matériel et de sa fabrication. Le moteur matériel 104 est mis en oeuvre, de façon usuelle, sous la forme d'un circuit logique matériel sur une pastille, ce qui autorise une certaine personnalisation de durée d'exécution. Une personnalisation extensive de durée d'exécution est sacrifiée en faveur d'une détermination très rapide du type de trame de paquet et d'un retard prédéterminé lié de détermination de type de trame de paquet. La majorité du trafic des paquets comprend des paquets standards et sans limitation de l'invention, de façon usuelle, au moins 112 types de trame de paquet peuvent être identifiés avec un retard minimal et un temps système minimal de traitement.
Selon une mise en oeuvre, à titre d'exemple, le moteur matériel 104 détermine un type standard de trame de paquet comme par exemple celui d'un paquet TCP/IP encapsulé d'Ethernet II à code de formatage VLAN dont le format est illustré ci-dessous: B7 BO Adresse MAC de Adresse MAC de destination source Octet 0-1 VID(7-0) P C VID VTAGO VTAG1 Adresse MAC de source (TCIO) 11- (0x00) (0x81) Octet 3-5 IP_IDO IP_ID1 PKT_LENO PKT_LEN1 TOS VER IHL EtypeO Etypel (0x00) (0x08) S_IP2 S_IP3 IP_CHKO IP_CHK1 ID de TTL Décalage FLG Décalage Protocole Fg (3) F (0x11) (5-12) STCPortO STCPortl DIPO DIP1 DIP2 DIP3 SIPO SIP1 ACKNUM2 ACKNUM3 TCP-SEQO TCP SEQ1 TCP SEQ2 TCP_SEQ3 D TCPortO D TCPortl TCP CHKO TCP CHK1 FenêtreO Fenêtrel A R F LEN ACKNUMO ACKNUM1
U P S
URGpoint0 URGpointl Le moteur matériel 104 de détermination de type de trame identifie le paquet TCP/IP encapsulé d'Ethernet II à code de formatage VLAN en faisant correspondre des valeurs de champ d'en-tête sur des décalages (positions) spécifiés comme suit.
- la valeur du 12ième Octet = 0x81 - la valeur du 13ième Octet = 0x00 - la valeur du 16ième Octet = 0x08 - la valeur du 17ième Octet = 0x00; et - la valeur du 27ième Octet = 0x11.
Une fois les valeurs de champ d'en-tête de paquet trouvées comme correspondant à la configuration prédéfinie, une valeur correspondante de type de trame est associée au paquet.
Il est possible que les standards changent ou deviennent obsolètes; une façon de traiter l'obsolescence potentielle prématurée, comme décrit dans notre cas ci-dessous, consiste à mettre en priorité les sorties de type de trame à partir des moteurs configurables de détermination de type de trame 106/108 par rapport au moteur matériel 104.
Une autre façon de traiter l'obsolescence potentielle prématurée consiste à empêcher la comparaison d'anciens types standards de trame en invalidant des parties correspondantes du circuit logique matériel du moteur matériel 104. De cette façon, les temps systèmes de traitement sont réduits au minimum nécessaire. Cependant, une compatibilité en retour est désirée de façon usuelle si aucun conflit ne survient et des parties du circuit logique matériel du moteur matériel 104 peuvent être seulement invalidées si l'identification de l'ancien type standard de trame interfère avec le fonctionnement désiré.
Un processus d'élimination successive du type de trame est effectué par un moteur d'analyse syntaxique d'arborescence de décision 106 La relation entre les types de trame les mieux adaptés à une discrimination par l'intermédiaire d'une élimination successive de type de trame est une relation "type de". Comme cela est bien connu dans le domaine de l'art, des datagrammes de Couche 3 (proto-paquets) sont encapsulés dans des datagrammes de Couche 2. Comme exemple simple, le moteur d'analyse syntaxique d'arborescence de décision 106 effectue une discrimination entre des types de trame de paquet possédant des formats différents d'entête de Couche 3 mais le même format d'en-tête de Couche 2. Une certaine flexibilité est par conséquent assurée en respécifiant les relations "typede" lors de la personnalisation sur place du fonctionnement du moteur d'analyse syntaxique d'arborescence de décision 106. Sans limiter l'invention, une mise en oeuvre, à titre d'exemple, peut supporter jusqu'à 128 types de trame en plus des types de trame détectés par le moteur matériel 104.
Selon un mode de mise en oeuvre de l'invention, donné à titre d'exemple, des relations "type de" entre des types de trame sont spécifiées, à titre d'exemple, comme des noeuds 202 d'une arborescence de décision. Une arborescence de décision binaire 200, à titre d'exemple, est illustrée, de façon schématique, sur la Figure 2. Chaque format prédéfini de trame de paquet est identifié en appliquant une séquence spécifique de tests, séquence qui est spécifiée par des relations entre des noeuds 202 de l'arborescence de décision 200. Des mises en oeuvre pratiques des noeuds 202 comprennent des enregistrements 212 d'une table de décision 210, chaque enregistrement 212 étant associé à un index de rangée de table de décision et comprend un décalage d'en-tête de paquet d'une configuration de bits d'identification de type de trame, une configuration de bits de test d'identification de type de trame et des instructions de saut. La configuration de bits de test d'identification de type de trame peut comprendre un masque binaire, une valeur binaire et une valeur binaire de comparaison pour déterminer si des bits de valeur de champ d'en-tête de paquet correspondant à au moins un champ d'en-tête de paquet, sont égaux à une valeur attendue, des bits spécifiques ignorés en question. Les instructions de saut comprennent des spécificateurs spécifiant si le processus d'élimination successive de type de trame est terminé ; si non, à quel index de rangée de table de décision il faut ensuite sauter si un test de comparaison de configuration de bits est positif ou négatif. La spécification suivante d'enregistrement 212, selon une mise en oeuvre, à titre d'exemple, du mode de mise en oeuvre de l'invention, à titre d'exemple, est représentative d'une information, à titre d'exemple, présente dans chaque enregistrement 212:
Nom de Champ Description
Comparaison de mot Spécifie la position des 2 Octets de comparaison d'information d'en- tête de paquet Comparaison de Valeur de comparaison valeur Masque Masquage binaire des 2 Octets correspondants Saut sur index Adresse de SAUT pour une correspondance ou Valeur de Type de Trame lors d'un résultat l A) Saut à l'adresse spécifiée si la comparaison est une positif de test de correspondance lorsque la fin du bit MATCH = 0 comparaison/Type B) Indique la valeur de Type de Trame lorsque la fin du bit de Trame MATCH = 1 Fin de Indique la fin des comparaisons. Si ce bit est à l'état logique Correspondance,haut, la valeur stockée dans le champ suivant d'adresse de saut pour lune correspondance est alors le Type de Trame Saut sur index Adresse de SAUT pour une non-correspondance ou Valeur de Type de lors d'un résultat Trame négatif de test de Saut à l'adresse spécifiée si la comparaison ne conduit pas à une icorrespondance correspondance lorsque la fin du bit MATCH = 0 Fin de Non- Indique la fin des comparaisons.
!Correspondance Des rendements d'espace de stockage sont obtenus, à titre d'exemple, en réutilisant des champs d'enregistrement à de multiples fins comme dans le cas des champs d'instruction de saut qui sont réutilisés pour la spécification du type de trame pour la fin des enregistrements de détermination de type de trame 212.
Tandis que le moteur d'analyse syntaxique d'arborescence de décision 106 peut ne pas fournir un retard prédéterminé de traitement lors de l'identification d'un type de trame de paquet par comparaison avec le moteur matériel 104, la spécification de relation "type de" nécessite seulement un stockage minimal de définition de type de trame et assure un support pour des formats standards additionnels/amendés de trame pour des standards développés/amendés suite à la fabrication de l'équipement de commutation mettant en oeuvre le moteur d'analyse syntaxique d'arborescence de décision 106.
Il est possible que le moteur d'analyse syntaxique d'arborescence de décision 106 prenne une période de temps relativement longue pour identifier le type de trame d'un paquet reçu. Un seul moteur d'analyse syntaxique d'arborescence de décision 106 peut être utilisé tant que le moteur d'analyse syntaxique d'arborescence de décision 106 peut identifier le type de trame d'un paquet reçu en considérant que les paquets sont reçus, l'en-tête en premier, dans le temps pris pour la réception des données utiles de paquet de taille minimale. Le paquet Ethernet de taille minimale, l'en-tête et les données utiles est de 64 octets avec un intervalle entre trames de 20 octets en prenant en compte le préambule. De façon à assurer un traitement de paquet à la vitesse de la ligne/câblage, soit l'arborescence de décision 200 doit être exprimé de telle façon qu'un nombre relativement petit de noeuds d'arborescence de décision 202 doivent être consultés pour déterminer les types de trame, soit plusieurs moteurs d'analyse syntaxique d'arborescence de décision 106 peuvent être utilisés. Selon l'utilisation prévue de l'équipement mettant en oeuvre le moteur d'analyse syntaxique d'arborescence de décision 106 pour identifier les types de trame, il peut être suffisant que la détermination du type de trame soit terminée en moyenne à la vitesse moyenne d'arrivée de paquet.
Selon une mise en oeuvre, à titre d'exemple, du mode de mise en oeuvre de l'invention, donnée à titre d'exemple, le circuit logique de microcode de 106 peut exécuter un test (202/204/212/214) par cycle d'horloge.
Selon une mise en oeuvre, donnée à titre d'exemple, du mode de mise en oeuvre de l'invention, donné à titre d'exemple, le moteur d'analyse syntaxique d'arborescence de décision 106 comprend une mise en oeuvre par microcode d'un analyseur d'arborescence de décision 206 et de la table de décision 210.
Selon la mise en oeuvre, un identificateur de connecteur de source 112 est prévu pour le premier étage du pipeline 100 et un quelconque des moteurs de détermination de type de trame 104, 106 et 108 peut fournir une spécification de type de trame 114 seulement déterminée sur la base de la spécification du connecteur de source. Une détermination de type de trame basée sur l'identificateur de connecteur de source peut être utilisée lorsque le type de trame des paquets reçus par l'intermédiaire d'un connecteur spécifique est connue à priori.
Selon la mise en oeuvre, donnée à titre d'exemple, du mode de mise en oeuvre de l'invention, donné à titre d'exemple, le moteur d'analyse syntaxique d'arborescence de décision 106 met en oeuvre, de plus, une détermination de type de trame basée sur le connecteur. La table de décision 210 comprend, de plus, des rangées 214 correspondant aux connecteurs d'entrée de l'équipement de commutation mettant en oeuvre le moteur d'analyse syntaxique d'arborescence de décision 106. Selon la mise en oeuvre, à titre d'exemple, du mode de mise en oeuvre de l'invention, à titre d'exemple, les N premiers enregistrements de table de décision 214 sont utilisés pour la mise en oeuvre des noeuds d'arborescence de décision 204 (plusieurs points de départ), N correspondants aux divers connecteurs d'entrée du système de commutation mettant en oeuvre le moteur d'analyse syntaxique d'arborescence de décision 106. De façon avantageuse, l'identificateur de connecteur de source 112 correspondant au connecteur d'entrée sur lequel sont reçus les paquets peut être directement utilisé comme index pour l'extraction des enregistrements de table de décision 214 sans traitement intermédiaire. L'invention n'est pas limitée à cette mise en oeuvre: chaque identificateur de connecteur d'entrée 112 peut être mappé sur un index de rangée de table de décision soit sur une base univoque, soit sur une base de plusieurs sur un seul.
L'analyseur d'arborescence de décision 206, l'identificateur de connecteur de source 112 (et l'en-tête 102) étant rendu disponible pour l'étage 1 du pipeline, extrait tout d'abord l'enregistrement de table de décision 214 correspondant et l'analyseur d'arborescence de décision 206 y applique le test spécifié. De façon avantageuse, chaque noeud d'arborescence de décision 204 représentant un point de départ spécifique séparé de connecteur d'entrée pour le processus d'élimination successive de type de trame, au moins un enregistrement de table de décision 214 peut être configuré avec des valeurs de champ assurant une détermination préliminaire du type de trame sur la base de l'identificateur de connecteur de source 112 seul. Des noeuds d'arborescence de décision 204 peuvent être configurés par l'utilisateur pour spécifier un type de trame lorsqu'un seul type spécifique de trame est prévu de décrire des paquets reçus sur le connecteur d'entrée correspondant. Les avantages sont évidents pour des connecteurs de ligne réseau assurant, en particulier, une détermination rapide de type de trame pour des formats non standards de trame de paquet.
Des améliorations supplémentaires pour l'accélération du processus d'élimination successive du type de trame lorsque des paquets ayant plusieurs types de format de trame doivent être reçus par l'intermédiaire d'un connecteur d'entrée sont obtenues par l'intermédiaire d'une flexibilité prévue pour la spécification des instructions de saut vers un point de différents branchements de l'arborescence de décision 200. Une telle mise en oeuvre, à titre d'exemple, comprend un noeud de commutation utilisé sur le bord d'un réseau de communication dans des applications convergentes fournissant en même temps des services de données et de voix dans lesquelles, du coté transport/fournisseur de l'équipement de commutation, des données et de la voix sont recues sur différents connecteurs (une mise en oeuvre très plausible). En ce qui concerne une solution de Voix sur IP (VoIP), lors de l'identification d'en-têtes de paquet IP pour des paquets transportés sur la liaison descendante et reçus par l'intermédiaire d'un connecteur de ligne réseau VoIP, la détermination du type de trame peut être anticipée en sautant directement au même branchement de l'arborescence de décision 200 pour des paquets reçus par l'intermédiaire de quelconques connecteurs de ligne réseau. L'analyse du branchement peut encore être requise pour déterminer si des paquets VoIP sont des paquets entiers Ethernet ou des paquets Ethernet avec des en-têtes VLAN. En ce qui concerne des paquets traversant le noeud de réseau de communications sur la liaison montante, les paquets de données et de voix sont reçus, de façon usuelle, par l'intermédiaire du même connecteur d'entrée coté distribution associé à un client; cependant, des paquets de données et de voix peuvent être transportés sur des "connexions virtuelles" séparées identifiées, par exemple, par une spécification différente de valeur de champ d'en-tête de paquet TOS. La flexibilité assurée par la spécification de l'arborescence de décision 200 est, de plus, évidente en considérant que, en dépit de l'incapacité d'arrivée selon une décision antérieure sur la base seule de l'identificateur de connecteur de source 112, l'enregistrement de table de décision 214 correspondant peut être codé par l'utilisateur pour spécifier que le processus de détermination de type de trame considère tout d'abord la détermination TOS par l'intermédiaire d'un saut spécifique vers un branchement particulier de l'arborescence de décision 200.
Une opération cyclique 300, à titre d'exemple, de l'analyseur d'arborescence de décision 206 est illustrée sur la Figure 4; l'analyseur d'arborescence de décision 206 extrait en 312 un enregistrement 212 de la table de décision 210 et extrait en 314 des valeurs binaires d'en-tête de paquet à partir de l'en-tête de paquet présentant un décalage (et une longueur binaire) spécifié dans les champs d'enregistrement 212. La valeur binaire extraite est comparée en 316 avec une valeur binaire attendue soumise à des bits ignorés spécifiés dans un masquage binaire. Selon le résultat de la comparaison 316, des champs d'enregistrement 212 soit "correspondant" soit "non correspondant" sont pris en considération. Selon que, en 318, la fin d'une comparaison a été atteinte ou non, une sortie de type de trame est fournie et le processus 300 recommence pour un autre paquet reçu ou l'instruction de saut est utilisée pour extraire en 312 l'enregistrement suivant 212 dans la table de décision 210.
Selon le mode de mise en oeuvre de l'invention, donné à titre d'exemple, comme des bits extraits d'en-tête de paquet peuvent être comparés avec une quelconque valeur spécifiée de comparaison soumise ou non à un masquage binaire, la mise en oeuvre, à titre d'exemple, du mode de mise en oeuvre de l'invention, donné à titre d'exemple, procure des capacités de comparaison ternaire qui permettent une comparaison d'intervalle de valeur binaire.
Selon le mode de mise en oeuvre de l'invention, donné à titre d'exemple, il est possible, si plusieurs champs d'en-tête ont de courtes longueurs binaires et sont relativement rapprochés, un noeud 202 de l'arborescence de décision 200 peut permettre l'exécution de tests en même temps sur plusieurs champs d'en-tête de paquet.
Un moteur de comparaison de modèle 108 est utilisé pour supporter le traitement des paquets présentant un type de trame de paquet non codé à l'avance dans le moteur matériel 104 ou ne pouvant être exprimé comme un "type de" d'un type reconnaissable de trame de paquet par l'intermédiaire de l'arborescence de décision 200. Le moteur de comparaison de modèle 108 assure une flexibilité totale pour la spécification des modèles de format d'en-tête de paquet pour une comparaison de configuration avec des entêtes de paquet recues. Une mise en oeuvre, à titre d'exemple, peut assurer un support pour au moins 16 types spécifiés de trame d'utilisateur en plus des types de trame détectés par le moteur matériel 104 et le moteur d'analyse syntaxique d'arborescence de décision 106.
Selon une mise en oeuvre, donnée à titre d'exemple, du mode de mise en oeuvre de l'invention, donné à titre d'exemple, le moteur de comparaison de modèle 108 utilise une Mémoire Adressable de Contenu Ternaire (TCAM). Une utilisation, à titre d'exemple, de la mémoire adressable de contenu ternaire dans le champ est décrite dans la Demande de Brevet U.S. N 10/403 110 intitulée "Configurable Ternary Content Adressable Memory" déposée par RayChin Lu le 31 mars 2003, incorporée ici en référence. Des modèles d'en-tête de paquet comprennent un masque et une configuration de bits, tous deux pouvant être configurés par l'utilisateur fournissant un support pour un quelconque format de trame. Comme décrit ci-dessus, il est possible d'identifier plusieurs types de trame car la comparaison de modèle est soumise à des bits masqués. Les modèles peuvent être ordonnés de telle façon que la première correspondance de modèle sera considérée comme celle pertinente. Le moteur de comparaison de modèle 108 assure, par conséquent, une pleine flexibilité en spécifiant une configuration de format d'en-tête de paquet devant être comparée. Le moteur de comparaison de modèle 108 contribue, de même, à retarder l'obsolescence de sa mise en oeuvre de noeud de réseau de communication.
Comme les trois moteurs de détermination de type de trame 104, 106 et 108 fonctionnent en parallèle, les multiples sorties de type de trame sont fournies à un sélecteur de sortie de type de trame 110 qui sélectionne la spécification de type de trame 114 devant être utilisée pour traiter chaque paquet sur le pipeline 100. En général, des sorties de spécification de type de trame à partir de moteurs configurables sont prioritaires sur la sortie de moteurs moins configurables. La sortie de type de trame du moteur de comparaison de modèle 108 reçoit, de façon usuelle, une plus grande priorité que la sortie de type de trame du moteur d'analyse syntaxique d'arborescence de décision 106 et la sortie de type de trame du moteur d'analyse syntaxique d'arborescence de décision 106 reçoit une plus grande priorité que la sortie de type de trame du moteur matériel 104.
Il est possible pour l'ensemble des trois moteurs de détermination de type de trame de ne pas reconnaître le type de trame d'un paquet reçu, ce qui peut être dû par exemple à un nouveau standard des paquets transportés, un type de paquet de standard ancien pour lequel un support a été désactivé/arrêté ou un paquet transporté malformé.
Selon le fonctionnement désiré du pipeline 100, des paquets pour lesquels un type de trame ne peut pas être déterminé ne sont plus traités par l'intermédiaire du pipeline 100 et sont, sans limiter l'invention, soit mis de coté, redirigés, ou envoyés à un processeur de gestion si c'est le cas réduisant l'exposition du reste du pipeline 100 à un traitement inutile de tels paquets reçus. Selon une mise en oeuvre, à titre d'exemple, du mode de mise en oeuvre de l'invention, à titre d'exemple, des paquets reçus dont les types de trame ne pouvaient pas être déterminés reçoivent un identificateur de type de trame réservé à des types de trame non comparés (par exemple, la valeur hexadécimale OxFF).
En référence à la Figure 1, l'étage 2 du pipeline 100 est muni de l'identificateur de connecteur de source 112, de l'en-tête de paquet 102 et du type de trame attribué 114.
Un extracteur de valeur de champ d'en-tête de paquet 120 est utilisé pour extraire des valeurs de champ d'en-tête de paquet à partir de l'en-tête de paquet 102 sur la base d'instructions d'extractions spécifiées dans un enregistrement indexé de type de trame 122 d'une table d'extraction 124. Pour chaque type de trame 114, l'enregistrement correspondant 122 spécifie les décalages attenants de champ d'en-tête de paquet pour permettre une extraction de valeur de champ. La pertinence du champ de format d'en-tête de paquet est spécifiée par l'intermédiaire d'un groupe de bits de format valide de trame. Comme mentionné ci-dessus et sans limiter l'invention, selon une mise en oeuvre, à titre d'exemple, l'étage 1 du pipeline 100 peut effectuer une discrimination entre au moins 256 types de trame; par conséquent, la table d'extraction 124 peut comprendre au moins 256 entrées correspondantes d'enregistrement 122.
Ce qui suit est une représentation d'un enregistrement indexé de type de trame 122 d'extraction d'information, à titre d'exemple; Bits de Format de Trame Valide Décalages de Champ d'Extraction E (s 4-1 w + v H z' W d d GL a F Ça u â H.w m H a] H Pa R o W W o C) o A proprement parler, l'extracteur de valeur de champ d'en-tête de paquet 120 consulte un enregistrement indexé de type de trame 122 pour extraire des valeurs de champ d'en-tête de paquet correspondant à chaque ensemble binaire valide de format de trame, en commençant sur le décalage correspondant. Ce qui suit est une liste, à titre d'exemple, des valeurs de champ extraites des en-têtes recues de paquet si valide, pour des types spécifiques correspondants de trame 114: - MAC de destination (6 Octets) ; - MAC de source (6 Octets) - DSAP (1 Octet) ; - SSAP (1 Octet) ; - Type Ethernet (2 Octets) - ID VLAN (12 bits) ; - Priorité 802.1p (3 bits) - TOS (1 Octet) ; - TTL (1 Octet) ; - Id de protocole (1 Octet) ; - IP CHKSUM (2 Octets) ; SRC IP (4 Octets) ; - DES IP (4 Octets) ; - Connecteur SRC L4 (2 Octets) ; - Connecteur de destination L4 (2 Octets) ; - UDP/TCP CHKSUM (2 Octets) ; et - Drapeau Défini par Utilisateur/TCP (1 Octet).
Il peut ressortir que des enregistrements 122 de la table d'extraction 124 spécifient seulement des champs valides pour chaque type de trame et pour chaque champ valide, seul le décalage est spécifié. Cependant, la liste ci dessus des champ d'en-tête de paquet présente, de même, entre parenthèses des longueurs de champ. L'inclusion de spécifications de longueur de champ pour des champs valides dans les enregistrements 122 est laissée au choix du concepteur: une spécification des longueurs de champ dans les enregistrements 122 nécessite un espace de stockage; en option, l'extracteur de valeur de champ d'en-tête de paquet 120 peut faire des suppositions concernant les longueurs des champ d'en-tête de paquet.
Selon une autre mise en oeuvre, à titre d'exemple, du mode de mise en oeuvre de l'invention, à titre d'exemple, l'extracteur de valeur de champ d'en-tête de paquet 120 n'extrait pas, de facon physique, des valeurs de champ à partir des champ d'en-tête de paquet pour seulement les stocker de nouveau dans des registres séparés de l'en-tête de paquet 102. Tandis que l'en-tête de paquet 102 reste disponible à tous les étages du pipeline 100, l'extracteur de valeur de champ d'en-tête de paquet 120 associe un "modèle de pointeur" à chaque paquet reçu sur la base du type de trame 114 ou du Mtype 126 et fournit une en-tête de paquet, un modèle de pointeur et un triplet Mtype aux étages suivants du pipeline 100. Tandis que des modules et/ou des processi des étages suivants doivent inspecter les valeurs de champ d'en-tête de paquet, les modules et/ou les processi consultent le modèle de pointeur associé à chaque paquet traité pour inspecter directement les valeurs de champ d'en-tête de paquet. Un exemple de modèle de pointeur comprend un pointeur d'adresse en mémoire sur le début de l'en-tête de paquet 102 et les valeurs valides de décalage spécifiées dans un enregistrement indexé de type de trame 122 correspondant. Les avantages d'une telle mise en oeuvre comprennent des économies d'espace car l'information d'en-tête de paquet n'est stockée qu'une fois.
Selon le mode de mise en oeuvre de l'invention, à titre d'exemple, chaque enregistrement 122 spécifie, de plus, un type de correspondance 126 (Mtype) pour une classification de paquet. La spécification de type de trame 114 concerne le format d'un paquet à des fins d'extractions des valeurs d'en-tête de paquet tandis que la spécification de type de correspondance 126 est utilisée pour une classification de paquet. Plusieurs types de trame 114 peuvent être mappés sur un seul type de correspondance 126.
Selon le mode de mise en oeuvre de l'invention, donné à titre d'exemple, chaque enregistrement 122 spécifie, de plus, le fait qu'une action de traitement de paquet par défaut 128 doit être effectuée en ce qui concerne un type particulier de trame: 00: utilise l'action de connecteur par défaut (défaut) ; 01: acheminement vers CPU; 10: filtre de mise de côté du paquet; et 11: invalide/réservé.
Selon une mise en oeuvre, donnée à titre d'exemple, du mode de mise en oeuvre de l'invention, donné à titre d'exemple, l'action de connecteur par défaut 128 est spécifiée dans un registre sur une base par connecteur d'entrée. Des actions par défaut de connecteur, à titre d'exemple, 128 comprennent: 00: utilise du résultat de recherche L2/L3 (défaut) ; 01: acheminement vers CPU; 10: filtre de mise de côté du paquet; et 11: invalide/réservé.
Les valeurs extraites de champ 130 en conjonction avec le type de correspondance 126 et l'action préliminaire 15 128 sont fournies à l'étage 3 du pipeline 100 pour une recherche sur L2 et L3. L'action préliminaire peut être modifiée par un étage suivant du pipeline 100.
L'étage 3, à titre d'exemple, comprend trois moteurs de recherche effectuant différentes tâches de recherche: une recherche L2, une recherche de protocole VLAN et une recherche L3.
Le moteur de recherche L2 132 utilise un algorithme de recherche de hachage décrit dans le Brevet U.S. mentionné ci-dessus N 6 697 873 B1 intitulé "High Speed MAC Address Search Engine" délivré le 24 février 2004 pour Yik et Ass.. (dont certains sont désignés ici comme inventeurs). En résumé, le moteur de recherche L2 132 effectue les fonctions suivantes.
Selon un apprentissage de MAC ADDR de source, soit la MAC ADDR de source extraite 130 en elle-même, soit une combinaison de MAC ADDR et de VLAN ID de source (130) est utilisée comme clé pour effectuer une consultation dans une table de commutation L2 d'une base de données de commutation L2 par l'intermédiaire du schéma de hachage décrit dans le Brevet U.S. N 6 697 873 Bl: - si la consultation n'identifie pas d'entrée 5 correspondante, une entrée de base de données de commutation L2 est créée dans la table de commutation L2 (la MAC ADDR apprise peut être, de même, rapportée à un processeur de gestion) ; et - si la consultation identifie une entrée 10 correspondante, un bit de vieillissement associé à l'entrée est mis à jour.
Une recherche de connecteur de destination est effectuée sur la base soit de la MAC ADDR de destination extraite 130, soit de la combinaison de MAC ADDR et de VLAN ID de destination (130) qui est utilisée comme clé pour effectuer une consultation dans la table de commutation L2 de la base de données de commutation L2 par l'intermédiaire du schéma de hachage décrit dans le Brevet U.S. N 6 697 873 Bl: - si la consultation n'identifie pas d'entrée correspondante, le paquet reçu est diffusé vers tous les connecteurs. Si le paquet reçu possède une VLAN ID associée, la diffusion est limitée aux connecteurs associés au même domaine de VLAN; des connecteurs associés au même domaine de VLAN sont spécifiés par l'intermédiaire d'une table de VLAN; - si la consultation réussit, le paquet est alors envoyé seulement au(x) connecteur(s) correct(s). Si le paquet possède une VLAN ID associée, les connecteurs concernés sont ceux associés au même domaine de VLAN.
La base de données de commutation L2 comprend des entrées ayant le formant suivant, à titre d'exemple, :
Nom Description
Label T Estampille temporelle utilisée pour commander le vieillissement d'entrée. Si l'estampille temporelle n'est pas mise à jour dans une période temps prédéfinie, l'entrée peut être enlevée.
Adresse 1. Pour trames L2: MAC ADDR 2. Pour trames de Multidiffusion L3: IP ADDR & VLAN ID Numéro de Pour un paquet de diffusion individuelle, le champ indique le Connecteur/Groupe de numéro de connecteur associé ou le connecteur de ligne réseau de Multidiffusion MAC ADDR (un connecteur de ligne réseau est un connecteur logique correspondant à plusieurs connecteurs physiques).
Pour des paquets de multidiffusion L2 et des paquets de multidiffusion IP, le champ indique la ID de groupe de multidiffusion auquel appartient le paquet. Sur la base de cette ID de groupe, le moteur de recherche effectue une consultation dans une table de groupes de multidiffusion pour obtenir le groupe des connecteurs de sortie de destination.
TYPE État d'entrée: 000 - Invalide 001 - Structure dynamique de données d'entrée MAC - Structure de données de multidiffusion IP 011 - Structure statique de données MAC - Multidiffusion L2 101 - Structure statique de données MAC avec filtre de source et de destination - Structure statique de données MAC avec filtre de source 111 - Structure statique de données MAC avec filtre de destination Priorité Priorité Mise de côté de Bit Mise de côté du paquet de multidiffusion Le moteur de recherche L2 132 extrait/déduit une information de commutation à partir de la base de données de commutation L2, l'information de commutation sans limitation de l'invention comprenant des mappages de connecteur de sortie, une VLAN ID devant être imputée au paquet reçu, un mappage binaire spécifiant une action spécifique de maniement de VLAN ID (insérer, remplacer, enlever, ignorer, etc.), une priorité de transmission, une priorité de saut, une spécification d'acheminement de multidiffusion ou diffusion individuelle, etc. L'information de commutation doit être utilisée lors de la formulation d'une réponse de traitement de paquet pour un maniement dupaquet reçu.
Pour des paquets de multidiffusion, le moteur de recherche L2 132 doit obtenir une spécification de connecteur de sortie correspondant à la ID de groupe en effectuant une consultation dans une table de groupe de multidiffusion ayant, à titre d'exemple, des entrées indexées de ID de groupe spécifiant des membres du groupe par l'intermédiaire d'entrées, à titre d'exemple, de 31 bits comme suit.
31 30-28 27-00 Connecteur de Mappage binaire de Processeur de Gestion Réservé connecteur pour les connecteurs 00 à 27 Sans limiter l'invention, la table de groupe de multidiffusion peut comprendre au moins 256 entrées.
Les MAC ADDRs de source et de destination sont mappées par le moteur de recherche L2 132 sur les spécificateurs correspondants MAC_IDX de source et MAC_IDX de destination qui seront utilisés par le classifieur de paquet 142 à l'étage 4.
Selon le mode de mise en oeuvre de l'invention, à titre d'exemple, l'étage 3 comprend, de plus, un moteur de recherche L3 134. Le moteur de recherche L2 132 et le moteur de recherche L3 134 fonctionnent en parallèle. Le moteur de recherche L3 134 effectue des opérations de recherche de Couche 3 en consultant l'information suivante de routeur de saut dans une base de données de commutation L3 à l'aide de l'adresse extraite de IP de destination comme clé. La base de données de commutation L3 comprend une table de commutation IP L3 et une table de correspondance d'intervalle. L'information extraite lors de la consultation de base de données de commutation L3 est utilisée pour le mappage de la IP ADDR extraite de source et de la IP ADDR de destination sur une valeur d'index qui sera fournie à l'étage 4 pour être utilisée par le classifieur de paquet 142.
La consultation de base de données de commutation L3 est effectuée pour déterminer une information d'acheminement en ce qui concerne le paquet reçu. La consultation de base de données de commutation L3 comprend deux recherches: l'obtention d'une correspondance exacte et la détermination d'une correspondance par intervalle.
La recherche de correspondance exacte est décrite dans la Demande de Brevet U.S. N 10/750 455 intitulée "High Speed MAC Address Search Engine" déposée le 31 décembre 2003 par Barrak et Ass.. (dont certains sont des inventeurs désignés dans notre cas) ; la demande U.S. est incorporée ici en référence. En résumé, en effectuant la recherche L3, les IP ADDRs de destinations sont hachées sur un index de hachage. L'index de hachage est utilisé pour référencer des entrées dans la base de données de commutation L3.
Chaque entrée de base de données de commutation L3 comprend l'information suivante, à titre d'exemple, .
Nom Description
Bit de Vieillissement Indique qu'une recherche réussie récente a correspondu à cette entrée V Indication de validité d'entrée IP IP ADDR à comparer Pointeur de Lien Lien avec la liste d'entrées hachées de façon similaire Information suivante de routeur de bond MAC ADDR de Nouvelle adresse MAC de destination destination VLAN ID VLAN ID de sortie XP Champ de priorité pour VLAN TAG Vecteur de connecteur Indique si oui ou non un label VLAN doit être autorisé sur la T sortie Groupe de Numéro de Numéro de connecteur ou numéro de groupe de ligne réseau pour la Connecteur sortie IDX de compteur Numéro de compteur pour statistiques (étage 5) Lors de la recherche dans la base de données de commutation L3, les IP ADDRs sont comparées avec les IP ADDRs stockées dans des entrées indexées correspondantes.
Si une correspondance de IP ADDR est trouvée, la recherche L3 s'achève et les actions suivantes sont appliquées: - l'information correspondante de routeur de saut suivant est obtenue; - un index de compteur L3 est fourni pour mettre à jour les compteurs de transmission L3 à l'étage 5; - le bit de vieillissement de l'entrée de base de données de commutation L3 est mis à jour, indiquant que l'entrée a été récemment utilisée; et - l'entrée de correspondance est utilisée comme le IP IDX pour une classification de paquet à l'étage 4.
Si une correspondance de IP ADDRs n'est pas trouvée, cela peut signifier que plusieurs IP ADDRs sont hachées sur le même index de hachage. L'entrée de base de données de commutation L3 aura alors un pointeur valide de liaison sur une première entrée d'une liste d'entrées. La liste est analysée pour trouver une correspondance.
Si la liste ne contient pas de correspondance pour la IP ADDR, une indication est fournie concernant l'échec de correspondance exacte. Lors d'un échec pour trouver une correspondance exacte, le résultat d'une recherche d'intervalle L3 est pris en considération.
La recherche d'intervalle L3 émule un schéma plus long de correspondance de préfixe. Des entrées d'une table de correspondance d'intervalle IP de la base de données de commutation L3 comprend une spécification de IP ADDR et un masque IP associé à un intervalle de IP ADDRs. Le masque IP spécifie l'intervalle IP (de façon usuelle, un sous-ensemble IP) pour une comparaison:
Nom Description
Bit de Vieillissement Indique qu'une recherche réussie récente a correspondu à cette entrée V Indication de validité d'entrée IP IP ADDR à comparer IP_MASK Masque IP/masque de réseau/bits appropriés Information suivante de routeur de bond MAC de destination Nouvelle adresse MAC de destination VLAN ID VLAN ID de sortie XP Champ de priorité pour VLAN TAG Vecteur de connecteur Indique si oui ou non un label VLAN doit être autorisé sur la T sortie Groupe de Numéro de Numéro de connecteur ou numéro de groupe de ligne réseau pour la Connecteur sortie IDX de compteur Numéro de compteur pour statistiques (étage 5) Sans limitation de l'invention, la table de correspondance d'intervalle IP de la base de données de commutation L3 peut comprendre 64 entrées; on peut utiliser plus d'entrées comme requis selon l'application.
Les bits de la IP ADDR extraite de destination sont comparés aux bits des IP ADDRs stockées dans l'entrée de base de données de commutation L3 et le résultat est soumis au masque IP. Le masque spécifie les bits pertinents et si les bits pertinents correspondent, la correspondance d'intervalle est alors positive.
Si une correspondance d'intervalle L3 est trouvée, les mêmes actions effectuées en ce qui concerne la correspondance exacte L3 s'appliquent. Si aucune entrée ne correspond, la correspondance d'intervalle L3 est dite avoir subir un échec.
Si, à la fois, la correspondance exactes L3 et la correspondance d'intervalle L3 ont réussi, la correspondance exacte prend la priorité sur la correspondance d'intervalle L3. Si aucune correspondance n'est trouvée, le paquet transporté est acheminé, de façon usuelle, vers le processeur de gestion pour un traitement ultérieur.
Dans la description ci-dessus, le IP de destination recherchant une réponse de commutation pour des paquets transportés L3 a été décrit. Selon le mode de mise en oeuvre de l'invention, à titre d'exemple, pour tous les paquets IP, y compris des paquets transportés et pontés, le moteur de recherche L3 134 essaie, de même, de rechercher dans la base de données de commutation L3 des IP ADDRs de source pour mapper l'adresse IP de 32 bits en un IP-IDX possédant, de façon usuelle, un plus petit nombre de bits (comme 12 ou 14 bits). Le mappage des IP ADDRs en IP IDXs correspondants est utilisé pour réduire les coûts de mise en oeuvre de l'étage 4 de classification.
Selon le mode de mise en oeuvre de l'invention, à titre d'exemple, une option est prévue pour associer un label VLAN à une spécification PROTOCOL de paquet, le PROTOCOL étant identifié par la valeur des champs Ethertype ou DSAP/SSAP pour l'en-tête de paquet. Le moteur de recherche de Protocole VLAN 136 détermine le Ethertype pour les paquets reçus Ethernet-II et SNAP ou le DSAP/SSAP pour d'autres paquets de Commande de Liaison Logique (LLC). Selon une mise en oeuvre, à titre d'exemple, de l'invention, au moins 16 Ethertypes configurables ou DSAP/SSAP peuvent chacun être associé à une VLAN ID. Le moteur de recherche de Protocole VLAN 136 effectue des opérations sur des valeurs extraites de champ d'en- tête de paquet comprenant une correspondance des valeurs extraites de champ avec des configurations connues: - aucune action n'est engagée si aucune correspondance n'est trouvée pour un paquet reçu, ce qui signifie que le paquet ne possède pas d'association de label VLAN. Selon une mise en oeuvre, à titre d'exemple, si aucune correspondance n'est trouvée, une VLAN ID par défaut peut être assignée; - si une correspondance est trouvée, le paquet reçu 35 reçoit un VLAN IDX correspondant à une spécification déduite d'une entrée associée de correspondance; - l'index et la ID de Connecteur 112 sont utilisés comme clés de consultation lors d'une interrogation d'une table VLAN de protocole pour déterminer le VLAN Tag sortant; et - la VLAN ID (Tag) est remplacée lors d'une correspondance.
Une table VLAN de protocole, à titre d'exemple, comprend: 63 32 31 0 Pour Mappage de IDX VLAN de connecteur de CPU sur ID VLAN connecteur de
CPU
Pour Mappage de IDX VLAN de connecteur 31 sur ID VLAN connecteurs...
31-2 Mappage de IDX VLAN de connecteur 2 sur ID VLAN Connecteur 1 VLANID/IDX 15 VLANID/IDX 14 VLANID/IDX 13 VLANID/IDX 12 VLANID/IDX 11 VLANID/IDX 10 VLANID/IDX 9 VLANID/IDX 8 VLANID/IDX 7 VLANID/IDX 6 VLANID/IDX 5 VLANID/IDX 4 VLANID/IDX 3 VLANID/IDX 2 VLANID/IDX 1 VLANID/IDX 0 Connecteur 0 VLANID/IDX 15 VLANID/IDX 14 VLANID/IDX 13 VLANID/IDX 12 VLANID/IDX 11 VLANID/IDX 10 VLANID/IDX 9 VLANID/IDX 8 VLANID/IDX 7 VLANID/IDX 6 VLANID/IDX 5 VLANID/IDX 4 VLANID/IDX 3 VLANID/IDX 2 VLANID/IDX 1 VLANID/IDX 0 Remarquons que le VLAN IDX et le mappage de VLAN sont prévus sur une base par connecteur d'entrée. Par conséquent, une VLAN ID différente peut être assignée pour le même protocole sur des connecteurs différents.
Selon le mode de mise en oeuvre de l'invention, à titre d'exemple, les moteurs de recherche L2 et L3 132 et 134 fournissent en combinaison une information de commutation à partir des entrées de correspondance de base de données de commutation pour supporter la formulation d'au moins une réponse préliminaire de commutation 140 pour le paquet reçu. L'information disponible après la fin du traitement de l'étage 4 supporte la formulation d'une réponse de commutation sur la base de: la ID de connecteur d'entrée, l'information extraite d'en-tête de paquet, l'information de commutation extraite de la base de données de commutation L2, l'information de commutation extraite de la base de données de commutation L3 et une information déduite de la table VLAN de protocole. Une information, à titre d'exemple, spécifiée dans la réponse de commutation comprend:
Champ Description de Champ
Connecteur de source d'origine Connecteur de sortie ayant reçu le paquet Priorité de transmission Priorité de transmission du paquet utilisée pour la mise ne file d'attente et la planification.
Priorité de saut Priorité de mise de côté du paquet utilisée WRED avant la mise en fille d'attente.
VLAN Commande de label comprenant des bits de priorité d'utilisateur, un bit CFI et une VLAN ID.
Bits de priorité d'utilisation Indique que le moteur de recherche L3 134 doit fournir en sortie les bits de priorité stockés dans un label de descripteur, non pas le résultat d'inspection ou de recherche de paquet.
Entrée de label VLAN Indique que le paquet reçu contient une en-tête de label VLAN.
Multidiffusion Indique que le paquet reçu est un paquet de multidiffusion.
Recalcul de CRC Indique si le CRC doit être recalculé pour ce paquet avant la transmission si l'en-tête a été modifiée.
Remplacement de MAC de source Indique que l'adresse MAC de source doit être remplacée pour ce paquet avant la transmission (pour les paquets routés L3).
Bits de sortie de label de Indique les connecteurs de sortie par lesquels un paquet VLAN à label VLAN doit être transmis.
Mappage binaire de connecteur Indique les connecteurs par lesquels le paquet doit être de destination transmis.
Longueur de paquet Longueur du paquet stocké comprenant l'en-tête, les données et le CRC. Ne comprend pas la longueur de descripteur de paquet.
L'information dans une réponse de commutation peut 10 être utilisée pour indiquer la façon de manier le paquet aux moteurs d'acheminement (décrits ailleurs) traitant le paquet reçu suite à l'étage 5.
Selon le mode de mise en oeuvre de l'invention, à titre d'exemple, l'étage 4 classe des paquets en flux de paquet en soumettant les multiples champs extraits à des règles de classification. Les règles de classification peuvent être mises en oeuvre sous la forme de valeurs de test et de masques associés de test.
Rappelons que l'étage 2 extrait les multiples valeurs de champ à partir des en-têtes des paquets reçus et différentes valeurs de champ sont extraites pour différents types de format de trame 114. Selon une mise en oeuvre, à titre d'exemple, du mode de mise en oeuvre de l'invention, à titre d'exemple, les règles de classification de paquet comparent différentes valeurs de champs/champs pour différents types de format de trame de paquet. Des règles de classification sont spécifiées dans les entrées 146 d'une 144 et des champs de la table de règles peuvent avoir différentes significations selon le type de correspondance 126 associé à chaque règle. Par exemple si Mtype = 1 correspond à des paquets Ethernet-II/IP/TCP et Mtype = 2 correspond à des paquets classification de paquets pour titre d'exemple, être effectuée Mtype = 1, ID de Connecteur de source, MAC ADDR de destination, de destination, connecteur de destination TCP tandis pour Mtype = 2 peut effectuée sur la base des champs Mtype = 2, ID de Connecteur de source (112), MAC ADDR de source, MAC ADDR de destination, IP ADDR de source, IP ADDR de destination, code ICMP, type ICMP. Selon la mise en oeuvre, à titre d'exemple, du mode de mise en oeuvre de l'invention, à titre d'exemple, bien que les champs d'entrée de règle de classification peuvent avoir différentes significations, que la alors, Ethernet-II/IP/ICMP, la Mtype = 1 peut alors, à sur la base des champs. source (112), MAC ADDR de IP ADDR de source, IP ADDR source TCP, connecteur de classification de paquets à titre d'exemple, être par exemple le connecteur de source TCP en fonction du code ICMP, cela ne doit pas provoquer de confusion car le test selon des règles de classification est qualifié par des valeurs Mtype correspondantes.
Ce qui suit est un exemple du format d'une entrée de table de règles de classification 146:
Champs de correspondance Description
Mtype (Voir tableau joint pour certains types prédéfinis de correspondance) Connecteur de Sortie Connecteur de sortie: connecteur physique ou connecteur de ligne réseau Index MAC de destination Mappage de moteur de recherche L2 132/numéro d'entrée de
table MAC
Index MAC de source Mappage de moteur de recherche L2 132/numéro d'entrée de
table MAC
VLAN ID VLAN ID
Type Ethernet/DSAP+SSAP Type Ethernet pour des paquets Ethernet-II et SNAP ou DSAP/SSAP pour des paquets LLC Ipv4 de Source Mappage de moteur de recherche L3 134: correspondance exacte ou correspondance d'intervalle Ipv4 de Destination Mappage de moteur de recherche L3 134: correspondance exacte ou correspondance d'intervalle ID de Protocole Champ de protocole IP L4 de Source Connecteur UDP/TCP de source L4 de Destination Connecteur UDP/TCP de destination Drapeau TCP/ Défin. par Drapeau TCP ou champ défini par Utilisateur utilisateur Poids Si plusieurs règles correspondent, prélèvement de la règle avec le plus haut poids En fonctionnement, le classifieur de paquet 142 teste au moins un sous ensemble de valeurs extraites de champ d'en-tête de paquet spécifiées dans la règle de classification associée au Mtype 126 lui-même associé au paquet selon la règle de classification en comparant les valeurs extraites de champ avec les valeurs attendues de test spécifiées dans la règle de classification soumise aux masques correspondants de test. Selon la mise en oeuvre, à titre d'exemple, du mode de mise en oeuvre de l'invention, à titre d'exemple, lorsqu'une correspondance de règle de classification est constatée, l'index d'entrée de règle de classification 146 dans la table de règles de classification 144 est utilisé comme ID de flux de paquet.
Selon le mode de mise en oeuvre de l'invention, donné à titre d'exemple, une pondération est associée à chaque règle de classification. Lorsque plusieurs règles correspondent, un sélecteur de ID de flux de données 148 associé au classifieur de paquet 142 classe le paquet reçu selon la règle de classification présentant la plus forte pondération. Si plusieurs entrées 146 avec la même pondération correspondent, la plus grande entrée avec le plus haut index de table de règle de classification est sélectionnée pour déterminer l'ID de flux du paquet en question.
Selon le mode de mise en oeuvre de l'invention, donné à titre d'exemple, à un certain degré, une action préliminaire 128 est associée au paquet reçu dès l'étage 2 pour arriver à une réponse de commutation 140 pour le paquet. Par exemple, une action préliminaire 128 peut être basée sur le connecteur d'entrée à l'étage 2 puis l'action préliminaire est modifiée à l'étage 3 selon l'information de commutation déduite par le moteur de recherche L2 132 à partir de la base de données de commutation L2 et par le moteur de recherche L3 à partir de la base de données de commutation L3.
La fonctionnalité d'acheminement L3 est assurée par le moteur de recherche L3 134. Cependant, dans le classifieur de paquet 142, elle assure la flexibilité pour effectuer un acheminement L3 par l'intermédiaire d'une correspondance d'intervalle IP. Ainsi, la capacité des correspondances d'intervalle IP est étendue par le classifieur de paquet 142.
Selon la mise en oeuvre, donnée à titre d'exemple, du mode de mise en oeuvre de l'invention, donné à titre d'exemple, la spécification de type de correspondance 126 est utilisée dans la correspondance d'intervalle IP d'acheminement L3 afin de différencier des règles basées sur une signification différente des champs de correspondance. Une façon de traiter ce cas consiste à assigner Mtype + 4 pour un nouveau Mtype. Ainsi, lorsque le moteur de recherche L3 134 ne peut pas trouver de chemin dans sa base de données de commutation L3 et décide d'utiliser le classifieur de paquet 142 pour effectuer la fonction de recherche L3, le moteur de recherche L3 134 ajoute alors 4 à la valeur de Mtype et la fournit en conjonction avec la IP ADDR de destination au classifieur de paquet 142. Selon la mise en oeuvre, à titre d'exemple, le classifieur de paquet 142 peut utiliser la pleine IP ADDR de destination pour comparer des règles basées sur le nouveau Mtype au lieu d'utiliser l'index IP.
Selon le mode de mise en oeuvre de l'invention, donné à titre d'exemple, les actions 128 sont effectuées à l'étage 5 du pipeline 100. Toutes les actions 128 concernant des paquets reçus peuvent être classées en.
actions de connecteur par défaut, actions de type de trame, actions L2/L3 et actions de flux qui sont assignées aux paquets reçus à différents étages du pipeline de traitement de paquets 100. Une réponse de commutation peut avoir été, de même, associée aux paquets reçus. L'application des actions 128 est soumise aux règles précédentes, comme l'exemple illustré en 500 sur la Figure 5.
Les actions de flux reçoivent la plus grande priorité. Des IDS de flux sont attribuées aux paquets si le classifieur de paquet 142 classe avec succès en 502 les paquets reçus à l'étage 4. Les IDS de flux sont utilisées pour consulter des actions de flux dans une table d'actions 154. Une fois la (les) action (s) adaptée (s) de flux et les paramètres correspondants d'action de flux extraits de la table d'actions 154, les actions de flux sont effectuées en 504 sur le paquet et/ou l'en-tête de paquet.
Si aucune action de flux valide n'est associée au paquet reçu, la priorité est donnée aux actions de type de trame si une action de type de trame valide 128 a été associée au paquet reçu à l'étage 2, ce qui est déduit comme décrit ci-dessus des enregistrements 122 de la table d'extraction 124. L'action de type de trame associée au paquet reçu est déterminée à l'Étape 512. Les actions de type de trame 128 comprennent l'acheminement en 514 du paquet reçu vers la CPU et la mise de coté du paquet reçu en 516.
Si le code d'action de type de trame de "00" est associé au paquet reçu, la priorité est alors donnée aux actions de connecteur par défaut sur la base du connecteur de source sur lequel ont été reçus les paquets (sur la base de la ID SPort 112). Le code d'action de connecteur valide associé aux paquets reçus, confirmé à l'Étape 522, comprend l'acheminement en 524 des paquets reçus vers la CPU et la mise de coté du paquet reçu en 526. Selon la mise en oeuvre, des actions de connecteur par défaut peuvent être attribuées aux paquets reçus ou peuvent être spécifiées sur une base par connecteur dans au moins un registre d'action de connecteur par défaut.
Si le code d'action de connecteur par défaut de "00" 30 est associé paquet reçu, le paquet est alors traité en 532 selon les actions de résultats de recherche L2/L3 128.
La Figure 6 illustre des détails d'une architecture, à titre d'exemple, de l'étage 5 du pipeline 100. La ID de flux 150 correspondant au paquet et l'action préliminaire 128 sont utilisées dans la consultation d'une table d'actions 154 pour déterminer les actions devant être appliquées au paquet. La réponse préliminaire de commutation 140 comprenant probablement une spécification ID de connecteur de destination 152 est fournie au modificateur de réponse de commutation 156. Le modificateur de réponse de commutation 156 fonctionne selon des instructions déduites d'une information spécifiée dans la table d'actions 154 pour fournir une réponse préliminaire de commutation 140 à un moteur de trame 162. L'en- tête de paquet 102 est fournie à un modificateur d'en-tête de paquet. Le modificateur d'en-tête de paquet 158 modifie l'en-tête de paquet 102 selon des instructions déduites d'une information spécifiée dans la table d'actions 154. Une fois l'en-tête de paquet 102 modifiée, un module de réassemblage de paquet 164 formule un nouveau paquet devant être transmis par l'intermédiaire d'un connecteur de sortie, le nouveau paquet comprenant les données utiles de paquet et l'en-tête de paquet 102 modifiée.
Chaque entrée de la table d'actions 154 comprend l'information suivante, à titre d'exemple, - un code d'action spécifiant l'action devant être appliquée au paquet/en- tête de paquet; - une spécification Remplacement de VLAN ID ENABLE utilisée pour permettre le remplacement d'une VLAN ID d'en-tête de paquet; - une spécification VLAN ID lorsque le remplacement VLAN ID est validé ; - un champ Acheminement de INDX/DEST BIT MAP ayant plusieurs significations sur la base du code d'action: 1) l'indication de mappage binaire de connecteur de destination; 2) la désignation de l'index d'acheminement pour l'information IP et MAC lorsque l'action comprend le 5 remappage des en-têtes IP et MAC; 3) une indication de champ de battement de coeur lorsque l'action comprend une détection de battement de coeur; une spécification de remappage Enable XP spécifiant 10 une priorité de transmission et un saut de remplacement de priorité ; - un champ XP spécifiant la nouvelle priorité de transmission; - un champ DP spécifiant la nouvelle priorité de 15 saut; - un Snoop-Enable spécifiant un acheminement de paquet vers le connecteur de surveillance de trafic; - un champ Snoop_Port_ID spécifiant le connecteur de surveillance de trafic; un spécificateur Remap_TOS/DSCP_Enable spécifiant un remplacement de champ TOS/DSCP dans l'en-tête IP; - un champ TOS/DSCP spécifiant la valeur TOS/DSCP devant être remplacée; - un spécificateur 802.1p Remap_Enable spécifiant le 25 remplacement de champ 802.1p (une priorité de VLAN) dans l'en-tête de paquet; - un champ 802.1p spécifiant la valeur de priorité de VLAN devant être utilisée pour remplacer la valeur de champ 802.1p; un spécificateur Metering_Enable utilisé pour permettre une fonction de mesure pour le flux; un spécificateur CountingEnable utilisé pour permettre une fonction de comptage pour le flux; et - un spécificateur Metering/Counter_Index indiquant une ID de mesure ou de compteur.
Des détails, donnés à titre d'exemple, de six actions exclusives de flux sont donnés ci dessous.
L'acheminement L2/L3 (le code d'action 000) prend comme paramètres un mappage binaire de destination et écrase le mappage binaire de connecteur de destination spécifié dans la réponse préliminaire de commutation 140 fournie à l'étage 3 du pipeline 100. L'en-tête de paquet est modifiée de la même façon qu'un paquet serait modifié selon un résultat de recherche L2/L3 (comme décrit ci-dessous).
Un acheminement vers la CPU (code d'action 001) modifie le mappage binaire de destination pour spécifier l'acheminement du paquet vers le connecteur de CPU.
Un filtrage de paquet (code d'action 010) peut prendre comme paramètre une instruction pour mettre à jour un compteur de filtrage mettant en oeuvre le comptage des paquets sautés. La réponse préliminaire de commutation 140 est modifiée pour placer le bit de filtre sur ON. Le paquet est sauté.
Détection de battement de coeur (code d'action 011) . si un paquet de battement de coeur est reçu, la ID de session, le type et le mode sont envoyés à un module de basculement pour être traités (le fonctionnement du module de basculement est décrit ailleurs). La réponse préliminaire de commutation 140 est modifiée pour valider un bit de paquet de Basculement, ce qui indique que le paquet est un paquet de battement de coeur. D'autres modifications comprennent le remplacement de la spécification de mappage de connecteur de destination et le paquet est acheminé vers le module de basculement (non illustré) pour un traitement ultérieur.
Le remappage de MAC ADDR d'actions de flux, le remappage de IP ADDR et le remappage L3 partagent la même base de données illustrée sur la Figure 6 pour être mise en oeuvre sous la forme d'une table de remappage ADDR 166 mais référencée respectivement dans notre cas ci-dessous comme la base de données de remappage MAC ADDR 166, la base de données de remappage IP ADDR 166 et la base de données de remappage L3 166. Des entrées de la table de remappage ADDR 166 comprennent une spécification de IP ADDR de destination, un mappage binaire de destination, une spécification de mappage binaire "d'étiquetage" VLAN (voir le vecteur de connecteur T ci dessus), une spécification de VLAN ID et une MAC ADDR de destination.
Le remappage de MAC ADDR (le code d'action 100) prend comme paramètres un index sur le flux de données de basculement (voir ci-dessous) et trois bits FLOV définissant la validation de basculement pour un remappage MAC et IP. FLOVF-E, le bit de Validation de Fonction de Basculement est établi par la CPU pour activer la fonctionnalité de basculement. FLOVE-H, le bit de Validation de Matériel est établi lorsque l'échec de session est détecté par le module de basculement (comme décrit ailleurs). Et FLOVE-S, le bit de validation de logiciel est établi par la CPU lorsque la CPU détecte un échec de session. Basculement/Remappage ON signifie que FLOV-E = 1 et (FLOVE-H OU FLOVE-S = 1). Si Basculement/Remappage est OFF, la réponse préliminaire de commutation 140 n'est pas modifiée. Cependant, si Basculement/Remappage est ON, l'index est utilisé pour effectuer uneconsultation d'une base de données de remappage MAC 166 pour extraire l'information un remplacement de mappage binaire de destination, un remplacement de priorité VLAN ID et VLAN et un remplacement de mappage binaire de label de VLAN sortant forment une table de remappage. Des modifications de la réponse préliminaire de commutation 140 comprennent le remplacement du mappage binaire de destination, le remplacement de la ID VLAN, le remplacement de la priorité VLAN, le remplacement du mappage binaire "d'étiquetage" VLAN (voir le vecteur de connecteur T ci-dessus) et le recalcul du CRC. Des modifications de l'en-tête de paquet comprennent le remplacement de la MAC ADDR de destination.
En ce qui concerne la fonctionnalité de basculement assurée par un bloc de basculement 170, si un paquet entrant est associé à une ID de flux 150 pour laquelle le remappage d'adresse est requis et si un échec a été détecté et enregistré pour cette ID de flux 150, le paquet doit être alors acheminé de façon différente, y compris vers une adresse différente de destination, que s'il n'y avait pas eu d'échec. Les bits FLOV sont utilisés pour identifier le fait qu'il y a eu un échec ou non. Si non, l'acheminement s'effectue normalement. Lors d'un échec, l'index stocké dans une rangée correspondante de la table d'actions 154 est utilisé comme pointeur vers une rangée de la table de remappage 166 contenant une information d'acheminement en option devant être utilisée.
Un remappage IP ADDR (code d'action 101) prend comme paramètres un index sur le flux de données de basculement et trois bits de basculement, comme décrit ci dessus. Si Basculement/Remappage est ON, l'index est utilisé pour effectuer une consultation d'une base de données de remappage IP 166 pour extraire une information comme: un mappage binaire de destination, une MAC ADDR de destination de saut suivant, une ID/TAGg VLAN, un mappage binaire de label de VLAN sortant et une adresse IP de destination qui sont utilisés pour modifier la réponse préliminaire de commutation 140 et l'en-tête de paquet 102. Selon le type de paquet, on constate quatre scénarios différents pour modifier l'en-tête de paquet 102 et la réponse préliminaire de commutation 140, ce qui est résumé dans le tableau suivant.
Scenarios Modifications de champ d'en- Modifications de réponse tête de paquet préliminaire de commutation Si le paquet est un paquet Remplacement de MAC ADDR de Remplacement de mappage destination de Remplacement destination Recalcul de contrôle IP de pontage IP (non pas un IP ADDR de binaire de destination paquet Routé) et non pas un de paquet UDP ou TCP Remplacement de VLAN ID Remplacement des bits (Remplacement de IP ADDR de somme d'étiquetage de VLAN destination) Établissement/recalcul de
CRC
Si le paquet est un paquet Remplacement de MAC ADDR de Remplacement de mappage destination de Remplacement de pontage IP et un paquet de IP ADDR binaire de destination UDP ou TCP (Remplacement de Remplacement de VLAN ID Remplacement des bits IP ADDR de destination & destination recalcul de la somme de Recalcul de somme de contrôle UDP/TCP) d'étiquetage de VLAN contrôle IP Établissement/recalcul de Recalcul de somme de CRC contrôle UDP/TCP Si le paquet est un paquet Remplacement de MAC ADDR de Remplacement de mappage destination Diminution de Remplacement destination de pontage IP et non pas un TTL de un binaire de destination paquet UDP ou TCP de Remplacement de VLAN ID Remplacement des (Application des fonctions IP ADDR de bits de routage et remplacement d'étiquetage de VLAN de IP ADDR de destination) Recalcul de somme de Établissement/recalcul de contrôle IP CRC Remplacement de MAC ADDR de source Si le paquet est un paquet Remplacement de MAC ADDR de Remplacement de mappage UDP ou TCP routé IP destination de un binaire de destination Diminution de TTL Remplacement de IP destination (Application des fonctions Remplacement de VLAN ID Remplacement des de routage, remplacement de ADDR de bits IP ADDR de destination et d'étiquetage de VLAN recalcul de somme de contrôle UDP/TCP) Recalcul de somme de contrôle IP Recalcul de somme de contrôle UDP/TCP Établissement/recalcul du bit de CRC Remplacement de MAC ADDR de source dans lequel le paquet IP Routed concerne un paquet soumis à un routeur L3. En général, l'acheminement L3, un index spécifié dans la table d'actions 154, peut être utilisé pour pointer sur une entrée de la table d'acheminement L3.
L'acheminement L3 (le code d'action 110) prend comme paramètre un index vers une entrée d'acheminement. L'index est utilisé pour extraire un mappage binaire de destination; une MAC ADDR de destination, une MAC ADDR de destination de saut suivant et une information VLAN forment la table de remappage 166. Des modifications de la réponse préliminaire de commutation 140 comprennent le remplacement du mappage binaire de destination, le remplacement de la ID VLAN, le remplacement de la priorité VLAN, le remplacement du mappage binaire "d'étiquetage" de VLAN et le recalcul du CRC. Des modifications de l'en-tête de paquet comprennent le remplacement de la MAC ADDR de destination par la MAC ADDR de saut suivant, la réduction du TTL de un et la mise à jour de la somme de contrôle IP.
Les actions suivantes peuvent coexister et, de même, 20 avec les actions de flux ci-dessus.
Remplacement de XP et de Priorité de Dérivation (DP) : la XP et DP peuvent être redéfinies par la CPU pour chaque flux. Si XP-replace est mis à 1, la réponse préliminaire de commutation 140 est alors modifiée pour 25 remplacer les valeurs XP et DP.
Surveillance de trafic: la réponse préliminaire de commutation 140 est modifiée pour ajouter le connecteur de surveillance de trafic comme un des connecteurs de sortie vers lequel sera acheminé le paquet en validant le bit correspondant au connecteur de surveillance de trafic dans le mappage binaire de destination. On s'assure, de même, que le bit de multidiffusion est établi lors de l'acheminement du paquet.
Remappage TOS/COS l'en-tête de paquet 102 est modifiée en remplaçant le champ TOS/COS sur la base d'une valeur fournie TOS/DSCP. Le CRC et la somme de contrôle IP doivent être recalculés car l'en-tête de paquet 102 a été modifiée.
Remappage 802.1p: le champ 802.1p si la réponse préliminaire de commutation 140 est modifiée par un nouveau VLAN Tag. Le CRC doit être, de même, recalculé.
Remplacement 802.1Q VLAN ID: la 802.1Q VLANID de la réponse préliminaire de commutation 140 est remplacée par 15 une valeur 802.1Q VLAN ID. Le CRC doit être, de même, recalculé.
En référence à la Figure 7, à la fois une mesure de cadence et un comptage de paquet peuvent être activés et désactivés de façon indépendante.
Mesure de cadence: un index de mesure est fourni à un module de mesure 168. Le module de mesure 168 suit les flux de trafic sur la base de l'index de mesure. Si un flux de trafic dépasse une cadence spécifiée de pic le module de mesure 168 rapporte alors une condition rouge. Si le flux de trafic est en dessous d'une cadence moyenne spécifiée, le module de mesure 168 rapporte alors une condition verte. Dans les autres cas, la condition rapportée est jaune. La réponse préliminaire de commutation 140 est modifiée sur la base d'une spécification de couleur rapportée par le module de mesure 168. Si la couleur est rouge ("10"), le bit de filtre est établi, ce qui marque effectivement le paquet comme devant être mis de coté. Si la couleur de retour est jaune ("01"), la priorité de saut est établie, entraînant un saut du paquet selon des règles de priorité. Aucune modification correspondante à la réponse préliminaire de commutation 140 n'est effectuée si la couleur est verte ("00").
Comptage. la fourniture de l'index de mesure au module de mesure 168 peut permettre, de même, un comptage. Des compteurs correspondants au nombre de paquets transmis et aux octets transmis sont incrémentés si la condition de flux n'est pas rouge. Si la condition de flux est rouge, un compteur de mise de côté est incrémenté.
Une fonctionnalité détaillée du module de mesure 168 comprend ce qui suit.
Selon une mise en oeuvre, à titre d'exemple, du mode de mise en oeuvre de l'invention, à titre d'exemple, un schéma de marqueur à trois couleurs et deux vitesses (trTCM) qui est un IETF standard est utilisé pour mesurer le trafic sur une base par flux. Selon le mode de mise en oeuvre de l'invention, à titre d'exemple, le schéma est mis en oeuvre, à titre d'exemple, à l'aide de deux compartiments de fuite selon respectivement une dimension de Cadence d'Information de Pic de Flux (PIR) et de Rafale de Pic Maxi et une dimension de cadence Engagée d'Information (CIR (cadence moyenne) et de Rafale Moyenne Maxi.
Pour chaque paquet nécessitant une mesure du flux, le module de mesure 168 utilise l'index de comptage pour mettre à jour des compteurs correspondants de compartiment de fuite de flux. Le module de comptage renvoie la condition verte, jaune ou rouge comme suit: Rouge: si le trafic dépasse le PIR; Jaune: si le trafic dépasse le CIR mais est conforme au PIR; et Vert: si le trafic est conforme au CIR.
Les compteurs par flux sont conservés, à titre d'exemple, en entrées d'une table indexée d'index de comptage, chaque entrée possédant: un compteur de paquets reçus, un compteur d'octets reçus, un compteur de paquet transmis ou rouge, un compteur d'octet transmis ou rouge, un compteur de mise de coté de paquet. Les compteurs "transmis" sont utilisés pour compter les paquets commutés L3 traités sur la base d'une action L3 tandis que les compteurs "rouges" sont utilisés pour des paquets classés et traités selon les IDs déterminés de flux 150.
Comme décrit ci-dessus, des paquets non associés à une ID de flux 150 peuvent être traités selon des actions correspondant aux résultats de recherche L3. Dans ce cas, le modificateur d'en-tête de paquet 158 est constitué par le moteur de recherche L3 avec un index de compteur de source et un index de compteur de destination. Le modificateur d'en-tête de paquet 158 utilise l'index de source pour mettre à jour le compteur correspondant de réception tout en mettant à jour le compteur d'émission à l'aide d'un index de destination. Si le bit de filtrage de la réponse de commutation 150 est établi, le compteur de mise de coté est alors mis à jour au lieu du compteur d'émission.
Rappelons que le moteur de recherche L3 134 peut ne pas trouver l'adresse IP de source dans la base de données de commutation L3 et par conséquent, risque de ne pas pouvoir fournir la IDX de compteur de source. Selon le mode de mise en oeuvre de l'invention, à titre d'exemple, pour de tels paquets, le connecteur de source est utilisé comme un index pour mettre à jour un compteur de connecteur de source par défaut L3.
Les mises à jour de compteurs de flux sont effectuées lorsque le paquet est classé par rapport à un flux de paquets; l'action de flux peut nécessiter, de même, une mise à jour de compteur en établissant le bit de compteur.
Le module de mesure 168 utilise l'index de compteur de flux pour mettre à jour les compteurs RX associés.
Le module de mesure 168 conserve, de même, la trace du nombre des paquets rouges (mis de coté) pour une mesure de la vitesse d'entrée. Si sa couleur est rouge, le module de mesure 168 met à jour, de même, les compteurs de paquets mis de coté (ce qui partage le même champ avec un compteur de transmission, comme décrit ci-dessus, pour optimiser l'espace) .
Rappelons que le code d'action de flux 000 est similaire à l'action L3 pour des paquets routés. Le traitement suivant doit être appliqué à de tels paquets. L'en-tête de paquet 102 doit être modifiée pour remplacer la MAC ADDR de destination par l'adresse MAC du routeur de saut suivant qui est la MAC ADDR de destination déduite par le moteur de recherche de Protocole VLAN 136, ce qui peut être écrasé, de plus, par la MAC ADDR de destination déduite de la table de remappage MAC ADDR 166 si le paquet est associé à une ID de flux 150 par le classifieur de paquet 142. Le TTL est diminué de un, la IP-CHKSUM est mise à jour. Les modifications apportées à la ID de flux 150 comprennent l'établissement du drapeau de recalcul CRC L2 et la surécriture de la spécification ID VLAN. Remarquons que les actions L3 suivantes sont effectuées par le moteur de recherche L3 134: la mise de coté du paquet si TTL > 1 et l'établissement du bit de MAC ADDR de source de remplacement dans la réponse préliminaire de commutation 140.
Selon le mode de mise en oeuvre de l'invention, à titre d'exemple, on prévoit un schéma flexible d'analyse d'en-tête selon lequel trois moteurs d'analyse syntaxique d'en-tête sont utilisés en parallèle pour déterminer divers types de trame sur la base d'une inspection des configurations spécifiées de bit d'en-tête de paquet pour des paquets entrants à la pleine cadence de ligne. L'utilisation des trois moteurs d'analyse syntaxique d'en-tête assure une certaine flexibilité : un moteur matériel assurant une identification rapide de type de trame pour des types standards bien connus de trame, un moteur d'analyse syntaxique d'arborescence de décision et un moteur de comparaison de modèle configurable.
Selon le mode de mise en oeuvre de l'invention, à titre d'exemple, les valeurs de champ d'en-tête de paquet sont extraites de l'en-tête de paquet après la détermination du type de trame, ce qui assure un traitement préliminaire minimal et rapide. Un extracteur configurable de champ par utilisateur est utilisé selon lequel les décalages d'au moins un champ peuvent être spécifiés par rapport à chaque type de trame. Pour certains types de paquet, une action de traitement de paquet peut être déterminée à ce stade préliminaire sur le pipeline.
Selon le mode de mise en oeuvre de l'invention, à titre d'exemple, les coûts de mise en oeuvre sont réduits en mappant les adresses MAC de source et de destination de Couche 2 et les adresse IP de source et de destination de Couche 3 en un index interne utilisé pour la recherche des tables d'adressage. Un moteur combiné de recherche L2 et L3 utilise un schéma de recherche à base de hachage pour mapper des valeurs extraites de champ d'adressage de réseau en un index présentant une courte longueur binaire.
Selon le mode de mise en oeuvre de l'invention, à titre d'exemple, des actions sont imputées aux paquets classés, comprenant sans être limitées: une insertion d'IDentificateur de Réseau Local Virtuel (VLAN ID), un remappage VLAN, un remappage de Type-de-Service (TOS), une amélioration de Qualité-de-Service (QoS), un filtrage, un acheminement et une modification d'en-tête.
On devra comprendre que les dimensions de chacune des bases de données, des tables, des listes, des entrées, des champs et des registres mentionnés ici possèdent des conditions associées d'espace de stockage en mémoire.
Les dimensions des bases de données, des tables, des listes, des entrées, des champs et des registres sont laissées au choix du concepteur qui prendrait en considération les coûts associés à la prévision de leur espace requis de stockage.
Les modes de mise en oeuvre présentés ne le sont qu'à titre d'exemple seulement et l'homme du métier remarquera que des variantes des modes de mise en oeuvre décrits ci-dessus peuvent être apportées sans sortir de l'esprit de l'invention. L'étendue de protection de l'invention est seulement défini par les revendications annexées.

Claims (1)

  1. 57 REVENDICATIONS
    1. Noeud de commutation par paquet présentant une architecture de traitement de paquet en pipeline pour le traitement de paquets reçus par l'intermédiaire d'une pluralité de connecteurs de source de noeud de commutation par paquet, le noeud de commutation par paquet comprenant: a) un extracteur de valeur de champ d'en-tête de paquet pour extraire, de façon sélective, des valeurs de champ d'en-tête de paquet à partir de la pluralité de valeurs de champ d'en-tête de paquet transportées par chaque paquet sur la base d'un des connecteurs de source par lequel le paquet a été reçu et un type précédemment déterminé de trame de paquet; b) un moyen pour attribuer un type de correspondance au paquet, le type de correspondance classant à l'avance le paquet sur la base des valeurs extraites de champ d'en-tête de paquet indépendamment du format de la trame de paquet; c) un moyen pour rechercher un élément parmi une information de commutation de paquet, une information de routage de paquet et une information de protocole de réseau local virtuel suivie par le noeud de commutation par paquet sur la base d'un élément parmi les valeurs extraites de champ d'en-tête de paquet, le type de correspondance et le connecteur de source pour formuler une réponse préliminaire de commutation pour le paquet; et d) un classifieur de paquet pour classer le paquet dans un élément parmi une pluralité de flux de traitement de paquet sur la base d'un élément parmi l'identificateur de connecteur de source, la réponse préliminaire de commutation, les valeurs extraites de champ d'en-tête de paquet et le type de correspondance.
    2. Noeud de commutation par paquet selon la revendication 1, caractérisé en ce qu'il comprend, de plus, un moyen pour déterminer le type de trame de paquet de chaque paquet reçu, le type de trame classant à l'avance le paquet sur la base du format de la trame de paquet.
    3. Noeud de commutation par paquet selon la revendication 2, caractérisé en ce que le moyen de détermination du type de trame de paquet comprend un moyen parmi.
    a) un moteur matériel d'identification de type de trame possédant un circuit logique matériel pour inspecter des valeurs de bits d'en-tête de paquet et un circuit logique matériel pour reconnaître des configurations standards de bits d'en-tête de paquet; b) un moteur d'élimination successive de type de trame possédant un circuit logique matériel pour soumettre, de façon conditionnelle, des valeurs de champ d'en-tête de paquet successivement à une pluralité de règles; et c) un moteur d'identification de type de trame de correspondance de modèle comprenant une pluralité de modèles d'en-tête de paquet pour une comparaison avec des zones d'en-tête de paquet.
    4. Noeud de commutation par paquet selon la revendication 3, caractérisé en ce que le moteur d'élimination successive de type de trame comprend un élément parmi a) un moteur d'analyse syntaxique d'arborescence de décision par connecteur de source; et b) une table de décision par connecteur de source, 30 chaque table de décision possédant une pluralité d'enregistrements de table de décision, chaque enregistrement d'arborescence de décision spécifiant un décalage d'en-tête de paquet d'une configuration de bits d'identification de type de trame, une configuration de bits de test d'identification de type de trame et un élément parmi une instruction de saut spécifiant l'index de rangée de table de décision d'un enregistrement suivant de table de décision et d'un identificateur de type de trame.
    5. Noeud de commutation par paquet selon la revendication 3, caractérisé en ce qu'il comprend, de plus, un sélecteur de type de trame pour sélectionner un type de trame lorsqu'au moins deux moteurs parmi le moteur matériel d'identification de type de trame, le moteur d'élimination successive de type de trame et le moteur d'identification de type de trame par comparaison de modèle identifient des types différents de trame.
    6. Noeud de commutation par paquet selon la revendication 1, caractérisé en ce que l'extracteur de valeur de champ d'en-tête comprend, de plus, une table de consultation d'extraction possédant une pluralité d'enregistrements de table d'extraction indexés par type de trame, chaque enregistrement spécifiant des décalages de champ d'en-tête de paquet.
    7. Noeud de commutation par paquet selon la revendication 6, caractérisé en ce que le moyen pour attribuer un type de comparaison comprend un spécificateur de type de comparaison pour chaque enregistrement de table d'extraction.
    8. Noeud de commutation par paquet selon la revendication 7, caractérisé en ce que l'extracteur de valeur de champ d'en-tête comprend, de plus, un moyen pour attribuer une action préliminaire devant être appliquée concernant le paquet, chaque enregistrement de table d'extraction comprenant, de plus, un spécificateur d'action préliminaire.
    9. Noeud de commutation par paquet selon la revendication 1, caractérisé en ce que l'extracteur de valeur de champ d'en-tête comprend, de plus, un moyen pour attribuer une action préliminaire devant être effectuée concernant le paquet.
    10. Noeud de commutation par paquet selon la revendication 1, caractérisé en ce que le moyen de recherche d'une information parmi l'information de commutation de paquet, l'information de routage de paquet et l'information de protocole de réseau local virtuel comprend: a) un moteur de recherche de Couche 2 coopérant avec 15 une base de données d'information de commutation; b) un moteur de recherche de Couche 3 coopérant avec une base de données d'information de routage; et c) un moteur de recherche de réseau local virtuel coopérant avec une table de réseau local virtuel.
    11. Noeud de commutation par paquet selon la revendication 1, caractérisé en ce que le classifieur de paquet comprend, de plus, une table de règles de classification possédant des entrées de règle de classification, chaque entrée de règle de classification possédant un format spécifique de type de correspondance, chaque entrée de règle de classification spécifiant un identificateur de traitement devant être associé, de façon conditionnelle, au paquet si les conditions spécifiées dans l'entrée sont satisfaites, chaque entrée de règle de classification spécifiant en option une pondération de règle spécifiant la priorité de l'entrée de règle.
    12. Noeud de commutation par paquet selon la revendication 1, caractérisé en ce qu'il comprend, de plus; a) un moyen pour déterminer une action devant être 5 entreprise sur la base d'un élément parmi le connecteur de source, le type de trame et la classification de flux de traitement; b) un modificateur de réponse de commutation modifiant, de façon sélective, la réponse préliminaire de 10 commutation selon l'action; c) un modificateur d'en-tête de paquet modifiant, de facon sélective, l'en-tête de paquet selon l'action; et d) un moyen pour traiter le paquet selon la réponse de commutation.
    13. Procédé de traitement de paquets reçus par l'intermédiaire d'une pluralité de connecteurs de source d'un noeud de commutation par paquet possédant une architecture de traitement de paquet en pipeline, caractérisé en ce que le procédé comprend: a) l'extraction, de façon sélective, des valeurs de champ d'en-tête de paquet à partir de la pluralité de valeurs de champ d'en-tête de paquet transportées par chaque paquet sur la base d'un des connecteurs de source par lequel le paquet a été reçu et un type précédemment déterminé de trame de paquet; b) la classification à l'avance du paquet, indépendamment du format de trame de paquet, sur la base des valeurs extraites de champ d'en-tête de paquet et l'attribution d'un type de correspondance au paquet; c) la recherche d'un élément parmi une information de commutation de paquet, une information de routage de paquet et une information de protocole de réseau local virtuel suivie par le noeud de commutation par paquet sur la base d'un élément parmi les valeurs extraites de champ d'en-tête de paquet, le type de correspondance et le connecteur de source pour formuler une réponse préliminaire de commutation pour le paquet; et d) le classement du paquet dans un élément parmi une pluralité de flux de traitement de paquet sur la base d'un élément parmi l'identificateur de connecteur de source, la réponse préliminaire de commutation, les valeurs extraites de champ d'entête de paquet et le type de correspondance.
    14. Procédé selon la revendication 13, caractérisé en ce qu'il comprend des étapes antérieures de classification à l'avance de chaque paquet reçu sur la base du format de la trame de paquet et d'attribution d'un type de trame au paquet.
    15. Procédé selon la revendication 14, caractérisé en ce qu'il comprend la détermination du type de trame du paquet selon une action parmi: a) l'inspection des valeurs de bit d'en-tête de paquet et la reconnaissance de configurations de bits standards d'en-tête de paquet; b) la soumission de façon conditionnelle des valeurs de champ d'en-tête de paquet, de façon successive, à une 25 pluralité de règles; et c) la comparaison des champs d'en-tête de paquet avec des modèles d'en-tête de paquet.
    16. Procédé selon la revendication 15, caractérisé en ce que, lors de la soumission conditionnelle 30 des valeurs de champ d'en-tête de paquet, de façon successive, à une pluralité de règles, le procédé comprend, de plus; a) la soumission d'une valeur de champ d'en-tête de paquet extraite de l'en-tête de paquet sur la base d'un décalage d'en-tête de paquet spécifié dans un enregistrement de table de décision d'une pluralité d'enregistrements de table de décision stockés dans une table de décision à une configuration de bits de test d'identification de type de trame spécifiée dans l'enregistrement de table de décision; et b) la sélection sélective d'un enregistrement suivant de table de décision à partir de la pluralité d'enregistrements de table de décision si une détermination définitive de type de trame n'a pas été atteinte et l'attribution d'un identificateur de type de trame spécifié dans l'enregistrement de table de décision dans les autres cas.
    17. Procédé selon la revendication 15, caractérisé en ce qu'il comprend, de plus, la sélection d'un type de trame lorsqu'au moins deux actions parmi l'inspection des valeurs de bit d'en-tête de paquet et la reconnaissance des configurations de bits standards d'en-tête de paquet, la soumission conditionnelle des valeurs de champ d'en-tête de paquet, de façon successive, à la pluralité de règles et la comparaison des champs d'en-tête de paquet avec des modèles d'en-tête de paquet fournissent différents types de trame.
    18. Procédé selon la revendication 13, caractérisé en ce que, suite à l'extraction sélective des valeurs de champ d'en-tête de paquet à partir de la pluralité de valeurs de champ d'en-tête de paquet transportées par chaque paquet, le procédé comprend, de plus, l'attribution d'une action préliminaire devant être exécutée concernant le paquet.
    19. Procédé selon la revendication 13, caractérisé en ce que, lors de la recherche d'un élément parmi l'information de commutation de paquet, l'information de routage de paquet et l'information de protocole de réseau local virtuel suivie par le noeud de commutation par paquet, le procédé comprend respectivement: a) l'interrogation d'une base de données 10 d'information d'une commutation; b) l'interrogation d'une base de données d'information de routage; et c) l'interrogation d'une table de réseau virtuel.
    20. Procédé selon la revendication 13, caractérisé en ce que, lors du classement du paquet dans un parmi une pluralité de flux de traitement de paquet, le procédé comprend, de plus, l'attribution conditionnelle d'un identificateur de flux de traitement au paquet sur la base de conditions spécifiées dans une entrée parmi une pluralité d'entrées de règle de classification.
    21. Procédé selon la revendication 13, caractérisé en ce qu'il comprend, de plus; a) la détermination d'une action devant être effectuée sur la base d'un élément parmi le connecteur de source, le type de trame et la classification de flux de traitement; b) la modification sélective de la réponse préliminaire de commutation selon l'action; c) la modification sélective de l'en-tête de paquet 30 selon l'action; et d) le traitement du paquet selon la réponse de commutation.
FR0506639A 2004-06-30 2005-06-29 Procede et dispositif de classification de paquets en pipeline et de recherche d'adresse combinees pour une commutation d'environnements Expired - Fee Related FR2874296B1 (fr)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/881,226 US7760719B2 (en) 2004-06-30 2004-06-30 Combined pipelined classification and address search method and apparatus for switching environments

Publications (2)

Publication Number Publication Date
FR2874296A1 true FR2874296A1 (fr) 2006-02-17
FR2874296B1 FR2874296B1 (fr) 2008-11-28

Family

ID=35511636

Family Applications (1)

Application Number Title Priority Date Filing Date
FR0506639A Expired - Fee Related FR2874296B1 (fr) 2004-06-30 2005-06-29 Procede et dispositif de classification de paquets en pipeline et de recherche d'adresse combinees pour une commutation d'environnements

Country Status (6)

Country Link
US (1) US7760719B2 (fr)
JP (1) JP2006020317A (fr)
KR (1) KR100697568B1 (fr)
CN (2) CN1716912B (fr)
DE (1) DE102005029396B4 (fr)
FR (1) FR2874296B1 (fr)

Families Citing this family (115)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7724740B1 (en) * 2002-08-27 2010-05-25 3Com Corporation Computer system and network interface supporting class of service queues
US7444454B2 (en) * 2004-05-11 2008-10-28 L-3 Communications Integrated Systems L.P. Systems and methods for interconnection of multiple FPGA devices
US7921323B2 (en) * 2004-05-11 2011-04-05 L-3 Communications Integrated Systems, L.P. Reconfigurable communications infrastructure for ASIC networks
US7492763B1 (en) * 2004-07-16 2009-02-17 Applied Micro Circuits Corporation User-specified key creation from attributes independent of encapsulation type
US7720031B1 (en) * 2004-10-15 2010-05-18 Cisco Technology, Inc. Methods and devices to support mobility of a client across VLANs and subnets, while preserving the client's assigned IP address
US8000324B2 (en) * 2004-11-30 2011-08-16 Broadcom Corporation Pipeline architecture of a network device
US8065712B1 (en) 2005-02-16 2011-11-22 Cisco Technology, Inc. Methods and devices for qualifying a client machine to access a network
US7606231B2 (en) 2005-02-18 2009-10-20 Broadcom Corporation Pipeline architecture for a network device
US7941150B2 (en) 2005-05-19 2011-05-10 Nortel Networks Limited Method and system for allocating media access control layer resources in a wireless communication environment
US7843927B1 (en) * 2006-12-22 2010-11-30 Extreme Networks, Inc. Methods, systems, and computer program products for routing packets at a multi-mode layer 3 packet forwarding device
JP4583312B2 (ja) * 2006-01-30 2010-11-17 富士通株式会社 通信状況判定方法、通信状況判定システム及び判定装置
JP2009527839A (ja) * 2006-02-21 2009-07-30 コレリクス リミテッド 通信ネットワークのトランザクション監視のための方法及びシステム
US7809009B2 (en) * 2006-02-21 2010-10-05 Cisco Technology, Inc. Pipelined packet switching and queuing architecture
US7298636B1 (en) 2006-03-08 2007-11-20 Integrated Device Technology, Inc. Packet processors having multi-functional range match cells therein
US7825777B1 (en) 2006-03-08 2010-11-02 Integrated Device Technology, Inc. Packet processors having comparators therein that determine non-strict inequalities between applied operands
KR100776115B1 (ko) 2006-03-22 2007-11-15 기장근 부정 및 시작 플래그를 가지는 터너리 컨텐트 어드레스어블 메모리
US7668107B2 (en) * 2006-03-22 2010-02-23 Marvell Israel (M.I.S.L.) Ltd. Hardware implementation of network testing and performance monitoring in a network device
JP4776412B2 (ja) 2006-03-23 2011-09-21 エヌ・ティ・ティ・コミュニケーションズ株式会社 パケット転送装置、パケット転送方法、及びプログラム
US7733907B2 (en) 2006-04-07 2010-06-08 Microsoft Corporation Combined header processing for network packets
US8379644B1 (en) 2006-06-30 2013-02-19 Marvell International Ltd. System and method of processing management frames
GB2443005A (en) * 2006-07-19 2008-04-23 Chronicle Solutions Analysing network traffic by decoding a wide variety of protocols (or object types) of each packet
US7852843B2 (en) * 2006-07-21 2010-12-14 Cortina Systems, Inc. Apparatus and method for layer-2 to layer-7 search engine for high speed network application
US7808995B2 (en) * 2006-11-16 2010-10-05 L-3 Communications Integrated Systems L.P. Methods and systems for relaying data packets
JP5080589B2 (ja) * 2006-12-06 2012-11-21 テレフオンアクチーボラゲット エル エム エリクソン(パブル) 拡張vlanクラシフィケーション
CN101563908B (zh) 2006-12-19 2013-01-09 国际商业机器公司 分析网络流的装置和方法
IL189514A (en) 2007-02-14 2011-12-29 Marvell Israel Misl Ltd Logical mediation system and method
CN100531097C (zh) * 2007-02-16 2009-08-19 华为技术有限公司 一种桥接的方法及装置
KR101442278B1 (ko) * 2007-03-30 2014-09-22 소니 주식회사 정보 처리 장치 및 방법
US7920560B2 (en) * 2007-06-12 2011-04-05 Hewlett-Packard Development Company, L.P. Method for detecting topology of computer systems
US7773595B2 (en) * 2007-09-14 2010-08-10 Agate Logic, Inc. System and method for parsing frames
US8391293B2 (en) * 2008-01-31 2013-03-05 Cisco Technology, Inc. Transporting X.25-over-ISDN through IP, using CUGS/protocol translation
US8279867B2 (en) * 2008-03-02 2012-10-02 Jeffrey Alan Carley Method and apparatus for reducing flood traffic in switches
US8335780B2 (en) * 2008-03-11 2012-12-18 James Madison Kelley Scalable high speed relational processor for databases and networks
JP2009239401A (ja) * 2008-03-26 2009-10-15 Alaxala Networks Corp パケット転送装置
CN101577662B (zh) 2008-05-05 2012-04-04 华为技术有限公司 一种基于树形数据结构的最长前缀匹配方法和装置
US8102865B2 (en) * 2008-05-16 2012-01-24 Microsoft Corporation Group based allocation of network bandwidth
JP5161683B2 (ja) * 2008-07-22 2013-03-13 キヤノン株式会社 情報処理装置、その制御方法、及びコンピュータプログラム
JP5161682B2 (ja) * 2008-07-22 2013-03-13 キヤノン株式会社 映像処理装置、その制御方法、コンピュータプログラム、及び映像処理システム
US8688902B2 (en) * 2008-08-06 2014-04-01 Fujitsu Limited Method and system for processing access control lists using an exclusive-or sum-of-products evaluator
CN101656659B (zh) * 2008-08-19 2012-05-23 中兴通讯股份有限公司 一种混合业务流的缓存处理方法、存储转发方法及装置
JP5407712B2 (ja) * 2009-09-30 2014-02-05 富士通株式会社 通信装置および通信制御方法
US8571031B2 (en) * 2009-10-07 2013-10-29 Intel Corporation Configurable frame processing pipeline in a packet switch
WO2011053973A1 (fr) * 2009-11-02 2011-05-05 Marvell World Trade Ltd. Et Al. Appareil et procédé de commutation basés sur des interfaces virtuelles
NO332162B1 (no) * 2009-12-21 2012-07-09 Cisco Systems Int Sarl Anordning og fremgangsmate for a filtrere mediapakker
US8368423B2 (en) * 2009-12-23 2013-02-05 L-3 Communications Integrated Systems, L.P. Heterogeneous computer architecture based on partial reconfiguration
US8397054B2 (en) * 2009-12-23 2013-03-12 L-3 Communications Integrated Systems L.P. Multi-phased computational reconfiguration
US8331373B2 (en) 2010-03-15 2012-12-11 Extreme Networks, Inc. Methods, systems, and computer readable media for automatically selecting between internet protocol switching modes on a per-module basis in a packet forwarding device
US8788543B2 (en) * 2010-05-13 2014-07-22 International Business Machines Corporation Scalable, concurrent resizing of hash tables
FR2960371B1 (fr) * 2010-05-20 2012-06-22 Thales Sa Procede et dispositif d'analyse de donnees interceptees sur un reseau ip pour la surveillance de l'activite des utilisateurs d'un site web
US8964742B1 (en) 2010-07-28 2015-02-24 Marvell Israel (M.I.S.L) Ltd. Linked list profiling and updating
CN102377581A (zh) * 2010-08-09 2012-03-14 高通创锐讯通讯科技(上海)有限公司 一种多域流分类流水线的实现方法
EP2630774A1 (fr) * 2010-10-22 2013-08-28 Telefonaktiebolaget L M Ericsson (PUBL) Gestion différenciée du trafic d'un réseau au moyen d'une traduction d'adresse réseau
US8312066B2 (en) * 2010-11-30 2012-11-13 Telefonaktiebolaget L M Ericsson (Publ) Hash collision resolution with key compression in a MAC forwarding data structure
US9118576B2 (en) 2011-01-06 2015-08-25 Marvell Israel (M.I.S.L) Ltd. Network device with a programmable core
US9161080B2 (en) * 2011-01-28 2015-10-13 Level 3 Communications, Llc Content delivery network with deep caching infrastructure
US8886742B2 (en) 2011-01-28 2014-11-11 Level 3 Communications, Llc Content delivery network with deep caching infrastructure
KR101760333B1 (ko) * 2011-03-02 2017-07-21 삼성전자주식회사 다중 사용자 다중 안테나 전송에서 그룹 아이디 관리를 위한 타겟 단말 및 액세스 포인트의 통신 방법
US9001828B2 (en) * 2011-03-21 2015-04-07 Marvell World Trade Ltd. Method and apparatus for pre-classifying packets
CN102769884A (zh) * 2011-05-03 2012-11-07 中国移动通信集团公司 基于udp的永远在线业务传输心跳数据包的方法及设备
US8935389B2 (en) * 2011-05-17 2015-01-13 Guavus, Inc. Method and system for collecting and managing network data
US9716592B1 (en) * 2011-06-10 2017-07-25 Google Inc. Traffic distribution over multiple paths in a network while maintaining flow affinity
US9065860B2 (en) 2011-08-02 2015-06-23 Cavium, Inc. Method and apparatus for multiple access of plural memory banks
US9729431B1 (en) 2011-08-16 2017-08-08 Marvell International Ltd. Using standard fields to carry meta-information
US9183102B2 (en) * 2011-09-30 2015-11-10 Alcatel Lucent Hardware consumption architecture
US8724455B2 (en) * 2012-01-20 2014-05-13 International Business Machines Corporation Distributed control of a fail-to-wire switch for a network communication link
US9203780B2 (en) * 2012-01-27 2015-12-01 Microsoft Technology Licensing, Llc Techniques to distribute messages using communication pipelines
US9154413B2 (en) * 2012-06-21 2015-10-06 Breakingpoint Systems, Inc. High-speed CLD-based pipeline architecture
US8942258B2 (en) * 2012-09-14 2015-01-27 International Business Machines Corporation Segmentation and reassembly of network packets for switched fabric networks
US8923299B2 (en) * 2012-09-14 2014-12-30 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Segmentation and reassembly of network packets
CN104125093B (zh) * 2013-04-29 2018-07-10 阿瓦亚公司 分布式网络中的通信故障转移
CN108989311A (zh) * 2013-05-31 2018-12-11 华为技术有限公司 生成输入参数的方法及设备
US20140369363A1 (en) * 2013-06-18 2014-12-18 Xpliant, Inc. Apparatus and Method for Uniquely Enumerating Paths in a Parse Tree
US9363178B2 (en) 2013-12-18 2016-06-07 Telefonaktiebolaget L M Ericsson (Publ) Method, apparatus, and system for supporting flexible lookup keys in software-defined networks
US9544402B2 (en) * 2013-12-31 2017-01-10 Cavium, Inc. Multi-rule approach to encoding a group of rules
US9275336B2 (en) 2013-12-31 2016-03-01 Cavium, Inc. Method and system for skipping over group(s) of rules based on skip group rule
US9667446B2 (en) 2014-01-08 2017-05-30 Cavium, Inc. Condition code approach for comparing rule and packet data that are provided in portions
US9825913B2 (en) * 2014-06-04 2017-11-21 Nicira, Inc. Use of stateless marking to speed up stateful firewall rule processing
US9516145B2 (en) * 2014-06-19 2016-12-06 Cavium, Inc. Method of extracting data from packets and an apparatus thereof
CN104135434B (zh) * 2014-08-04 2017-09-22 新华三技术有限公司 以太网虚拟化互联网络中的路径切换方法和装置
WO2016049802A1 (fr) * 2014-09-29 2016-04-07 Hewlett-Packard Development Company, L.P. Division et compression adaptatives
US9838337B1 (en) * 2014-09-30 2017-12-05 Juniper Networks, Inc. Automatic virtual local area network (VLAN) provisioning in data center switches
US9961170B2 (en) * 2014-11-25 2018-05-01 Qualcomm Incorporated Ethertype packet discrimination data type
CN105791145B (zh) * 2014-12-18 2019-10-25 南京中兴新软件有限责任公司 基于等价多路径ecmp的报文传输方法及装置
US10015048B2 (en) 2014-12-27 2018-07-03 Intel Corporation Programmable protocol parser for NIC classification and queue assignments
US9912615B2 (en) * 2015-02-05 2018-03-06 Verizon Patent And Licensing Inc. Dynamic removal of MAC table entries based on a MAC table fullness level
US10153972B2 (en) 2015-02-13 2018-12-11 Nxp Usa, Inc. Method and apparatus for coding a user defined constant into a key composition rule using variable length command
US9729680B2 (en) 2015-04-23 2017-08-08 Nxp Usa, Inc. Methods and systems to embed valid-field (VF) bits in classification keys for network packet frames
CN104917705A (zh) * 2015-06-18 2015-09-16 国家电网公司 一种智能变电站过程层交换机的网络报文管理方法
US9825862B2 (en) 2015-08-26 2017-11-21 Barefoot Networks, Inc. Packet header field extraction
US9826071B2 (en) 2015-08-26 2017-11-21 Barefoot Networks, Inc. Configuring a switch for extracting packet header fields
US9912774B2 (en) 2015-12-22 2018-03-06 Intel Corporation Accelerated network packet processing
US10911579B1 (en) * 2016-03-01 2021-02-02 Amazon Technologies, Inc. Generating programmatically defined fields of metadata for network packets
CN107181637B (zh) 2016-03-11 2021-01-29 华为技术有限公司 一种心跳信息发送方法、装置及心跳发送节点
TWI615007B (zh) * 2016-05-12 2018-02-11 遠傳電信股份有限公司 基於gtp-u協定的封包篩選切片系統及其使用方法
CN105857218A (zh) * 2016-06-14 2016-08-17 京东方科技集团股份有限公司 一种车载显示系统
JP2018011210A (ja) * 2016-07-14 2018-01-18 三菱電機株式会社 中継装置及び中継方法
US10194007B2 (en) * 2016-08-11 2019-01-29 Calix, Inc. Concurrent optical network terminal simulation
US10554494B1 (en) 2017-01-04 2020-02-04 Juniper Networks, Inc. Automatic ICCP provisioning and VLAN provisioning on an inter-chassis link in a MC-LAG
US11223520B1 (en) 2017-01-31 2022-01-11 Intel Corporation Remote control plane directing data plane configurator
CN108574679B (zh) * 2017-03-13 2021-03-30 华为技术有限公司 处理分组的方法和网络设备
US10694006B1 (en) 2017-04-23 2020-06-23 Barefoot Networks, Inc. Generation of descriptive data for packet fields
US10523578B1 (en) 2017-07-23 2019-12-31 Barefoot Networks, Inc. Transmission of traffic management data to processing pipeline
US10594630B1 (en) 2017-09-28 2020-03-17 Barefoot Networks, Inc. Expansion of packet data within processing pipeline
US11159440B2 (en) * 2017-11-22 2021-10-26 Marvell Israel (M.I.S.L) Ltd. Hybrid packet memory for buffering packets in network devices
US10785189B2 (en) * 2018-03-01 2020-09-22 Schweitzer Engineering Laboratories, Inc. Selective port mirroring and in-band transport of network communications for inspection
TWI685231B (zh) * 2019-04-23 2020-02-11 國立中央大學 封包分類方法
CN111277602B (zh) * 2020-01-23 2023-07-11 奇安信科技集团股份有限公司 网络数据包的识别处理方法、装置、电子设备及存储介质
US11875172B2 (en) 2020-09-28 2024-01-16 VMware LLC Bare metal computer for booting copies of VM images on multiple computing devices using a smart NIC
JP2022107316A (ja) 2021-01-08 2022-07-21 富士通株式会社 情報処理装置、情報処理方法及び情報処理プログラム
WO2022269786A1 (fr) * 2021-06-23 2022-12-29 日本電信電話株式会社 Dispositif et procédé d'identification de données de communication
US11757777B2 (en) * 2021-09-23 2023-09-12 Hewlett Packard Enterprise Development Lp Assigning security group tag for infrastructure traffic and preserving security group tag in snooped packets in dynamic segmentation
WO2023112174A1 (fr) * 2021-12-14 2023-06-22 日本電信電話株式会社 Dispositif de traitement de données, procédé de traitement de données, et programme
CN114710434B (zh) * 2022-03-11 2023-08-25 深圳市风云实业有限公司 一种基于OpenFlow交换机的多级流表构建方法
US11899594B2 (en) 2022-06-21 2024-02-13 VMware LLC Maintenance of data message classification cache on smart NIC
US11928062B2 (en) 2022-06-21 2024-03-12 VMware LLC Accelerating data message classification with smart NICs

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5748905A (en) * 1996-08-30 1998-05-05 Fujitsu Network Communications, Inc. Frame classification using classification keys
US20020085560A1 (en) * 2000-05-24 2002-07-04 Jim Cathey Programmable packet processor with flow resolution logic
US20030231625A1 (en) * 2002-06-13 2003-12-18 International Business Machines Corporation Selective header field dispatch in a network processing system

Family Cites Families (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0273746A (ja) 1988-09-09 1990-03-13 Nec Corp パケツト伝送方式
JPH08163242A (ja) 1994-12-08 1996-06-21 Hitachi Ltd Lapd手順における異常検出方法
JP3406136B2 (ja) 1995-11-09 2003-05-12 株式会社日立コミュニケーションテクノロジー デジタル回線切替装置
JPH09198334A (ja) 1996-01-16 1997-07-31 Hitachi Inf Technol:Kk データ伝送システムの障害管理方法
US6229787B1 (en) * 1996-09-11 2001-05-08 Nortel Networks Limited Mechanism to achieve very fast failover in ATM backbone networks using multi-homed circuits
WO2000003516A1 (fr) * 1998-07-08 2000-01-20 Broadcom Corporation Architecture de commutation de reseau a synchronisation a tables multiples et transfert de paquets ip et ipx
US6370666B1 (en) * 1998-12-02 2002-04-09 Agere Systems Guardian Corp. Tuning scheme for error-corrected broadcast programs
US6594268B1 (en) 1999-03-11 2003-07-15 Lucent Technologies Inc. Adaptive routing system and method for QOS packet networks
US6697873B1 (en) * 1999-12-20 2004-02-24 Zarlink Semiconductor V.N., Inc. High speed MAC address search engine
JP4294821B2 (ja) 2000-01-26 2009-07-15 株式会社日立製作所 ネットワーク中継装置
JP2001251351A (ja) 2000-03-02 2001-09-14 Nec Corp パケット交換機における入力パケット処理方式
JP2001297016A (ja) 2000-04-12 2001-10-26 Nec Corp 命令実行システム
US6763479B1 (en) 2000-06-02 2004-07-13 Sun Microsystems, Inc. High availability networking with alternate pathing failover
US7107359B1 (en) * 2000-10-30 2006-09-12 Intel Corporation Host-fabric adapter having hardware assist architecture and method of connecting a host system to a channel-based switched fabric in a data network
US7131125B2 (en) * 2000-12-22 2006-10-31 Nortel Networks Limited Method and system for sharing a computer resource between instruction threads of a multi-threaded process
US20020116521A1 (en) * 2001-02-22 2002-08-22 Denis Paul Soft multi-contract rate policing
JP4410467B2 (ja) * 2001-03-19 2010-02-03 インターナショナル・ビジネス・マシーンズ・コーポレーション キャッシュ入力の選択方法および装置
JP3715541B2 (ja) 2001-03-28 2005-11-09 アンリツ株式会社 Atm接続装置
US20020186683A1 (en) * 2001-04-02 2002-12-12 Alan Buck Firewall gateway for voice over internet telephony communications
US6963566B1 (en) * 2001-05-10 2005-11-08 Advanced Micro Devices, Inc. Multiple address lookup engines running in parallel in a switch for a packet-switched network
US7031314B2 (en) * 2001-05-16 2006-04-18 Bytemobile, Inc. Systems and methods for providing differentiated services within a network communication system
JP2003008581A (ja) 2001-06-26 2003-01-10 Yokogawa Electric Corp 通信制御装置
US7042841B2 (en) * 2001-07-16 2006-05-09 International Business Machines Corporation Controlling network congestion using a biased packet discard policy for congestion control and encoded session packets: methods, systems, and program products
US7248585B2 (en) 2001-10-22 2007-07-24 Sun Microsystems, Inc. Method and apparatus for a packet classifier
US7647422B2 (en) * 2001-11-06 2010-01-12 Enterasys Networks, Inc. VPN failure recovery
US7457297B2 (en) * 2001-11-16 2008-11-25 Enterasys Networks, Inc. Methods and apparatus for differentiated services over a packet-based network
JP2003188905A (ja) 2001-12-20 2003-07-04 Nec Commun Syst Ltd サーバ/クライアントシステムにおけるtcp/ip通信の多重化方式および方法
JP3914072B2 (ja) 2002-03-19 2007-05-16 株式会社山武 ネットワーク障害監視方法、通信システムおよび回線切替装置
JP2003298660A (ja) 2002-03-29 2003-10-17 Hitachi Communication Technologies Ltd VoIPゲートウエイ装置およびVoIP通信状態の検出方法
JP2003338835A (ja) * 2002-05-20 2003-11-28 Fujitsu Ltd パケットスイッチ及び方法
US7450507B2 (en) * 2002-06-05 2008-11-11 Lucent Technologies Inc. Hierarchal rate-limiting at a network node that utilizes an infinity rate-limit check
US7487264B2 (en) * 2002-06-11 2009-02-03 Pandya Ashish A High performance IP processor
US6993039B2 (en) * 2002-07-22 2006-01-31 Utstarcom, Inc. System and method for GRE heartbeats
US7292589B2 (en) * 2002-08-13 2007-11-06 Narendra Kumar Dhara Flow based dynamic load balancing for cost effective switching systems
US7260066B2 (en) 2002-10-31 2007-08-21 Conexant Systems, Inc. Apparatus for link failure detection on high availability Ethernet backplane
US7835265B2 (en) 2002-10-31 2010-11-16 Conexant Systems, Inc. High availability Ethernet backplane architecture
KR100462480B1 (ko) * 2002-12-17 2004-12-17 한국전자통신연구원 튜플 공간 검색 기반의 ip 패킷 분류장치 및 분류방법
US20050125557A1 (en) 2003-12-08 2005-06-09 Dell Products L.P. Transaction transfer during a failover of a cluster controller
KR100576005B1 (ko) 2004-01-05 2006-05-02 삼성전자주식회사 고가용성 라우터 이중화 방법 및 장치

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5748905A (en) * 1996-08-30 1998-05-05 Fujitsu Network Communications, Inc. Frame classification using classification keys
US20020085560A1 (en) * 2000-05-24 2002-07-04 Jim Cathey Programmable packet processor with flow resolution logic
US20030231625A1 (en) * 2002-06-13 2003-12-18 International Business Machines Corporation Selective header field dispatch in a network processing system

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
LAU M V ET AL: "GIGABIT ETHERNET SWITCHES USING A SHARED BUFFER ARCHITECTURE", IEEE COMMUNICATIONS MAGAZINE, IEEE SERVICE CENTER,NEW YORK, NY, US, vol. 41, no. 12, December 2003 (2003-12-01), pages 76 - 84, XP001186789, ISSN: 0163-6804 *

Also Published As

Publication number Publication date
DE102005029396B4 (de) 2013-10-17
KR100697568B1 (ko) 2007-03-22
US20060002386A1 (en) 2006-01-05
FR2874296B1 (fr) 2008-11-28
KR20060048742A (ko) 2006-05-18
CN1716912B (zh) 2014-06-11
JP2006020317A (ja) 2006-01-19
US7760719B2 (en) 2010-07-20
CN1716911A (zh) 2006-01-04
CN100555986C (zh) 2009-10-28
DE102005029396A1 (de) 2006-01-26
CN1716912A (zh) 2006-01-04

Similar Documents

Publication Publication Date Title
FR2874296A1 (fr) Procede et dispositif de classification de paquets en pipeline et de recherche d'adresse combinees pour une commutation d'environnements
US10616001B2 (en) Flexible processor of a port extender device
US7289498B2 (en) Classifying and distributing traffic at a network node
US8151339B2 (en) Method and apparatus for implementing filter rules in a network element
US6347087B1 (en) Content-based forwarding/filtering in a network switching device
US9313131B2 (en) Hardware implemented ethernet multiple tuple filter system and method
EP1158724A2 (fr) Processeur de paquets avec logique d'application programmable
US7869411B2 (en) Compact packet operation device and method
US11729300B2 (en) Generating programmatically defined fields of metadata for network packets
US20120281714A1 (en) Packet processing accelerator and method thereof
JP2003513540A (ja) ネットワークスイッチポート上でデータパケットのタイプをリアルタイムで識別するための装置および方法
US20060221850A1 (en) Field content based packet classification
US11700202B2 (en) Port extender with local switching
US7274698B2 (en) Multilevel parser for conditional flow detection in a network device
JP2004507158A (ja) ネットワークスイッチポート上でワイヤレートでデータパケットを識別するための装置および方法
WO2000010297A1 (fr) Architecture et procedes de traitement par paquets
US20230147422A1 (en) Filtering vlan packets having malformed tpids
WO2023076884A1 (fr) Filtrage de paquets vlan comportant des tpid mal formés
EP1533951A1 (fr) Architecture flexible rapide du processeur basée sur le contrôle de limites et procédé de traitement basé sur ceux-ci

Legal Events

Date Code Title Description
TP Transmission of property
ST Notification of lapse

Effective date: 20160229