DE69425757T2 - Sucheinrichtung für paketnetzwerk - Google Patents

Sucheinrichtung für paketnetzwerk

Info

Publication number
DE69425757T2
DE69425757T2 DE69425757T DE69425757T DE69425757T2 DE 69425757 T2 DE69425757 T2 DE 69425757T2 DE 69425757 T DE69425757 T DE 69425757T DE 69425757 T DE69425757 T DE 69425757T DE 69425757 T2 DE69425757 T2 DE 69425757T2
Authority
DE
Germany
Prior art keywords
packet
address
information
fields
search
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.)
Expired - Lifetime
Application number
DE69425757T
Other languages
English (en)
Other versions
DE69425757D1 (de
Inventor
Nutan Behki
Wayne Burwell
Jerome Gobuyan
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.)
Nokia Canada Inc
Original Assignee
Newbridge Networks Corp
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 Newbridge Networks Corp filed Critical Newbridge Networks Corp
Publication of DE69425757D1 publication Critical patent/DE69425757D1/de
Application granted granted Critical
Publication of DE69425757T2 publication Critical patent/DE69425757T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • 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/3081ATM peripheral units, e.g. policing, insertion or extraction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4604LAN interconnection over a backbone network, e.g. Internet, Frame Relay
    • H04L12/462LAN interconnection over a bridge based backbone
    • H04L12/4625Single bridge functionality, e.g. connection of two networks over a single bridge
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q11/00Selecting arrangements for multiplex systems
    • H04Q11/04Selecting arrangements for multiplex systems for time-division multiplexing
    • H04Q11/0428Integrated services digital network, i.e. systems for transmission of different types of digitised signals, e.g. speech, data, telecentral, television signals
    • H04Q11/0478Provisions for broadband connections
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5638Services, e.g. multimedia, GOS, QOS
    • H04L2012/5646Cell characteristics, e.g. loss, delay, jitter, sequence integrity
    • H04L2012/5652Cell construction, e.g. including header, packetisation, depacketisation, assembly, reassembly

Landscapes

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

Description

  • Diese Erfindung betrifft das Gebiet des Datenaustausches und genauer paketorientierte Netzwerke.
  • Es gibt zwei große Klassen von Netzwerken: schaltungsorientierte und paketorientierte. Herkömmliche Telefonnetzwerke sind schaltungsorientiert. Wenn ein Anruf in einem schaltungsorientierten Netzwerk eingerichtet wird, wird eine Festdrahtverbindung zwischen den anrufenden Parteien aufgestellt und bleibt für die Dauer des Anrufes erhalten. Schaltungsorientierte Netzwerke verschwenden verfügbare Bandbreite und haben keine Flexibilität.
  • Paketorientierte Netzwerke überwinden viele der Nachteile schaltungsorientierter Netzwerke. Bei einem paketorientierten Netzwerk werden die Daten zu Paketen zusammengestellt, die eines oder mehrere Adreßfelder enthalten, die den Kontext eines Paketes definieren, so wie den Protokolltyp und relative Positionen anderer Felder, die in das Paket eingebettet sind. LAN-Brücken und Router benutzen die Information in dem Paket, um es an das Ziel zu befördern.
  • In einem paketorientierten Netzwerk muß ein Paket nach der Syntax analysiert werden, wenn es durch das Netzwerk läuft. Parsing ist ein Prozeß des Herausziehens und Analysierens der Information, so wie Quellen- und Zieladresse und Netzschichtprotokoll, die in den Paketen enthalten ist.
  • Bei bekannten Netzwerken wird die Paketanalyse im allgemeinen mit einem Mikroprozessor durchgeführt, was Flexibilität beim Handhaben unterschiedlicher Pakettypen zur Verfügung stellt und der ausgebaut werden kann, um neue Pakettypen zu behandeln, wenn sie definiert sind. Ein inhaltsorientierter Speicher (CAM) wird üblicherweise für die Hardware- Unterstützung verwendet, um Suchen durch eine Liste bekannter Adressen zu beschleunigen. Dies ist eine langweilige Aufgabe. CAMs sind auch relativ teuer und in Größe und Verfügbarkeit begrenzt.
  • Allzweck-Prozessorarchitekturen sind nicht besonders auf die Operationstypen ausgerichtet, die bei der Paketanalyse erforderlich sind, und so neigen sie zur Ineffizienz. Um die Leistungserfordernisse zu erfüllen, kann eine schnelle, jedoch teure prozessorientierte Lösung implementiert werden. Bei den Systemen mit höchster Leistungsfähigkeit werden Hardware- Lösungen implementiert, um die Geschwindigkeit zu vergrößern, jedoch auf Kosten der Flexibilität. Beispielsweise offenbart die US 5 095 480 ein Routingsystem für Nachrichten, das Routingtabellen benutzt, um den Weg zu der Zieladresse festzustellen.
  • US 5 088 090 offenbart ein Übertragungssystem, das aus lokalen Netzwerken besteht, welche durch Brücken verschaltet sind. An jeder Brücke werden Pakete gefiltert, um festzustellen, ob sie eine Zieladresse auf einem angehängten LAN haben, indem ihre MAC-Adressen mit Adressen in einer Nachschlagetabelle verglichen werden. Das Patent sagt nichts über die Natur des Suchprozesses. Das Patent diskutiert auch das übergreifende Baumprotokoll zum Identifizieren eines Weges durch das Netzwerk.
  • Eine Aufgabe der Erfindung ist es, eine schnelle, jedoch nicht teure Lösung für das Problem der Paketanalyse bei paketorientierten Netzwerken zur Verfügung zu stellen.
  • Gemäß der vorliegenden Erfindung wird eine Anordnung zur Zergliederung von Paketen in einem paketorientierten Datenübertragungsnetzwerk zur Verfügung gestellt, wobei die Pakete Paket-Nachrichtenköpfe umfassen, welche in Felder mit Werten, die Information darstellen, die zu dem Paket gehört, aufgeteilt sind, wobei die Einrichtung eine Eingabe zum Empfangen von Feldern aus den Paket-Nachrichtenköpfen der einlaufenden Pakete, einen Speicher zum Speichern von Information, die zu möglichen Werten der Felder in bezug steht, und eine Suchmaschine zum Wiedergewinnen der gespeicherten Information, die für einen empfangenen Feldwert zweckmäßig ist, aufweist. Die Suchmaschine umfaßt wenigstens einen der Speicher, die die gespeicherte Information in einer hierarchischen Baumstruktur organisiert enthält, und einen Mikrocode-Controller zum Steuern des Betriebs der Suchmaschine, während Bitmuster-Erkennung bei wenigstens einem Teil des Paketes durchgeführt wird.
  • Die Speicher- und Wiedergewinnungseinrichtung bildet eine Suchmaschine, welche die zentrale Quelle ist, die alle Information enthält, die notwendig zum Weiterleiten von Entscheidungen ist.
  • Bei einer paketstrukturierten Datenübertragung, die den IEEE802-Standards genügt, haben die Pakete einen MAC (Mediumzugriffssteuerung)-Nachrichtenkopf, der Information über die Ziel- und Quelladressen und das Netzschichtprotokoll enthält. Die Erfindung erlaubt es, daß die Paketschaltung in einem Brücken-Router erreicht wird, zum Beispiel einem Brücken- Router vom Ethernet zu ATM, mit einer Geschwindigkeit von ungefähr 178.000 Paketen pro Sekunde, wobei Ethernet-Pakete mit 64 Byte Minimum verwendet werden. Dies bedeutet, daß die MAC-Nachrichtenköpfe alle 5.6 Mikrosekunden einmal interpretiert werden.
  • Die Suchmaschine benutzt bevorzugt Tabellen-Nachschlagen, wobei Halbbyte-Indexierung bei variablen Abschnitten des Paketes, so wie bei MAC- und Netzwerkschichtadressen, und Bitmuster-Erkennung auf festen Abschnitten für die Festlegung des Netzwerkschichtprotokolls verwendet wird
  • Jede Nachschlagetabelle ist als ein hexadezimaler Suchbaum organisiert. Jeder Suchbaum beginnt mit einer 16 Wort-Wurzeltabelle. Der Suchschlüssel (z. B. MAC-Adresse) ist in Halbbytes aufgeteilt, die als Indizes auf nachfolgende Tabellen benutzt werden. Der 16 Bit-Eintrag in der Tabelle ist mit dem nächsten Halbbyte aus 4 Bit verkettet, um die 20 Bit-Adresse der nächsten 16 Wort-Tabelle zu bilden. Die finalen Blatt-Einträge zeigen auf die gewünschte Information.
  • Die Bitmuster-Erkennung wird durch einen Mikrocode-Befehlssatz erreicht. Die Mikrocode- Maschine hat die Fähigkeit, Felder in einem Paket mit vorprogrammierten Konstanten zu vergleichen und Verzweigungen durchzuführen und Inkremente zu indexieren, typischerweise in einem einzigen Instruktionszyklus. Die Mikrocode-Maschine hat die vollständige Kontrolle über die Suchprozedur, so kann sie für bestimmte Nachschlagefunktionen maßgeschneidert werden. Ein neuer Mikrocode wird heruntergeladen, wenn neue Funktionen erforderlich werden.
  • Die Suchmaschine kann bis zu zwei Baumsuchen parallel mit der Mikrocode-Ausführung durchführen. Die Suchzeit ist schnell, da der Mikrocode das Netzwerkschichtformat des Paketes bestimmt, während die Quell- und Zieladressen parallel gesucht werden. Die Ergebnisse der Quellen- und Zielsuchen und die Festlegung des Protokolls kommen grob zur selben Zeit an, wobei an diesem Punkt der nächste Entscheidungslevel getroffen wird.
  • Die Suchmaschine führt auch die Protokollfilterung zwischen Gebieten durch. Das System erlaubt es, daß Vorrichtungen beliebig auf einer Pro-Protokoll-Basis in Gebieten gruppiert werden und definiert Filterregeln zwischen diesen Gebieten. Die Suchmaschine verfolgt das Gebiet jeder Station für jedes seiner Protokolle. Die Quell- und Zielgebiete sind in einem Suchbaum quer indexiert, was verwendet wird, um die Filterregel zwischen den beiden Gebieten zu finden. Getrennte Filterregeln sind zum Überbrücken und Schicken an die Netzwerkschicht definiert; das Überbrücken ist normalerweise innerhalb eines Gebietes erlaubt, während das Netzwerkschicht-Schicken wahlweise zwischen Gebieten erlaubt ist.
  • Der Analyse-Controller hat typischerweise einen Zeiger auf das gegenwärtige Feld in dem Paket, das überprüft wird. Der Controller bewegt diesen Zeiger zum nächsten Feld in dem Paket, nachdem alle Entscheidungen basierend auf dem gegenwärtigen Feld getroffen sind.
  • An jedem Entscheidungspunkt auf einem Baum wird das gegenwärtige Feld mit einem bekannten Wert oder Bereich verglichen. Wenn der Vergleich eine Wahr-Bedingung liefert, bewegt sich der Controller zu dem nächsten Entscheidungspunkt, indem der Zeiger für das gegenwärtige Feld bewegt wird. Ansonsten wird der Feld-Zeiger alleingelassen, und der Controller verzweigt zum neuen Code, um das gegenwärtige Feld mit einem unterschiedlichen Wert oder Bereich zu vergleichen. Dieser Prozeß wird wiederholt, bis eine endgültige Entscheidung getroffen ist.
  • Das Bewegen zum nächsten Entscheidungspunkt erfordert mehrere einzelne Schritte in einem Allzweck-Prozessor. Anders als ein Allzweck-Prozessor, der den Nachteil hat, daß er nur einen einzelnen Speicherbus sowohl für Befehle als auch für das Datenholen aufweist, hat der Suchmaschinen-Controller getrennte Busse für Befehle und für Daten und führt typischerweise eine Entscheidung pro Schritt durch. Schnelle Entscheidungen werden durch einen speziellen Befehlssatz möglich gemacht, der in einem einzigen Schritt sowohl bedingungsabhängig den Zeiger bewegt und bedingungsabhängig zum neuen Code verzweigt. Die Vergleiche und Zeigerbewegungen können byte- oder wortweise erfolgen, entsprechend der Größe des gegenwärtigen Feldes.
  • Die Suchmaschine implementiert andere optimierte Befehle, die die logischen Vergleiche auf Bit-Level und bedingungsabhängige Verzweigungen im selben Zyklus durchführen, ebenso wie andere Befehle, die maßgeschneidert sind, um Daten aus Halbbyte-indexierten Datenstrukturen wiederzugewinnen.
  • Die Suchmaschine ist bevorzugt in die folgenden Abschnitte aufgeteilt:
  • a) eine oder mehrere Halbbyte-Baumadressen-Suchmaschinen (ALE)
  • b) eine Mikrocode-Maschine
  • Jede ALE wird verwendet, um nach Adressen in einer Baumstruktur in ihrer eigenen großen Speicherbank zu suchen. Das Ergebnis einer Suche ist ein Zeiger auf relevante Information über die Adresse. Eine ALE wird Zieladressen (DALE) und Quelladressen (SALE) zugeordnet. Die LEAs arbeiten unabhängig voneinander.
  • Die Mikrocode-Maschine wird verwendet, um die Suche zu koordinieren. Sie ruft die SALE und DALE auf, um jeweils nach den Quell- und Zieladressen zu suchen, und fährt fort, den Rest des Paketes zu analysieren, wobei ein anwendungsspezifischer Befehlssatz verwendet wird, um das Protokoll festzulegen.
  • Die SALE, die DALE und die Mikrocode-Maschine können parallel arbeiten und kommen bei ihren entsprechenden Ergebnissen grob zur selben Zeit an. Die Mikrocode-Maschine benutzt dann die Ergebnisse der SALE und DALE zusammen mit ihren eigenen, um an der zu schickenden Entscheidung anzukommen.
  • Der Vorteil, einen RAM anstelle eines CAM zu verwenden, liegt in der Erweiterbarkeit und in den Kosten. Das Vergrößern eines RAM ist eine triviale und billige Aufgabe im Vergleich zum Steigern der Größe eines CAM.
  • Der Vorteil der Mikrocode-Suchmaschine gegenüber einem Allzweck-Prozessor ist, daß eine ASIC-Implementation der Funktion viel weniger teuer und weniger komplex ist als ein computerorientiertes Design mit all dem Allgemeinaufwand (RAM, ROM), der damit verbunden ist.
  • Die Erfindung stellt auch ein Verfahren zum Zerlegen von Paketen in einem paketorientierten Datenübertragungsnetzwerk zur Verfügung, wobei die Pakete Paket-Nachrichtenköpfe umfas sen, die in Felder mit Werten aufgeteilt sind, welche Information darstellen, die zu dem Paket gehören, einschließlich des Speicherns von Information, die mit möglichen Werten des Feldes in Zusammenhang ist, des Empfangens von Feldern von den Paket-Nachrichtenköpfen der einlaufenden Pakete und des Wiedergewinnens der gespeicherten Information mittels einer Suchmaschine, die für einen empfangenen Feldwert geeignet ist, dadurch gekennzeichnet, daß die Information von einem Speicher wiedergewonnen wird, der in einer hierarchischen Baumstruktur organisiert ist, unter der Steuerung eines Mikrocode-Controllers, während der Mikrocode-Controller eine Bitmuster-Erkennung auf wenigstens einem Teil des Paketes durchführt.
  • Die Erfindung wird nun in weiteren Einzelheiten beispielhaft mit Bezug auf die beigefügten Zeichnungen beschrieben, wobei:
  • Fig. 1 ein Beispiel eines MAC-Schicht-Nachrichtenkopfes eines typischen Paketes ist;
  • Fig. 2 die Datenwege in einem typischen Brücken-Router zwischen Ethernet LAN- und ATM-Netzwerken zeigt;
  • Fig. 3 ein Blockschaubild einer ersten Ausführungsform einer Suchmaschine gemäß der Erfindung ist;
  • Fig. 4 ein Blockschaubild eines Suchmaschinen-Controllers für die in Fig. 3 gezeigte Suchmaschine ist;
  • Fig. 5 ein Blockschaubild einer zweiten Ausführungsform einer Suchmaschine gemäß der Erfindung ist;
  • Fig. 6 ein Blockschaubild eines Suchmaschinen-Controllers für die in Fig. 5 gezeigte Suchmaschine ist;
  • Fig. 7 eine Abbildung von Adressensuchmaschinen (ALE)-Speichern für die Suchmaschine ist;
  • Fig. 8 ein Schaubild ist, das die Suchbaum-Operation in einer ALE veranschaulicht;
  • Fig. 9 ein Beispiel eines MAC-Suchbaums zeigt;
  • Fig. 10 die Wirkung der organisationsmäßig eindeutigen Identifizierer der MAC-Adressen auf die Größe des Suchbaumes zeigt;
  • Fig. 11 die Quelladressentabelle der Suchmaschine zeigt;
  • Fig. 12 die Zieladressentabelle der Suchmaschine zeigt;
  • Fig. 13 die Adressiermodi der Suchmaschine veranschaulicht;
  • Fig. 14 einen Stations-Informationsblock zeigt;
  • Fig. 15 einen Port-Informationsblock zeigt;
  • Fig. 16 ein Beispiel der Protokollfilterung zeigt;
  • Fig. 17 eine Befehlszustandsmaschine des Controllers für die Suchmaschine zeigt;
  • Fig. 18 ein typisches Schaubild für die schnelle Zeitgebung zeigt; und
  • Fig. 19 ein typisches Schaubild für die SIB-RAM-Zugriffsbefehlszeitgebung zeigt. Eine typische Suchmaschine (LUE) gemäß der Erfindung ist so gestaltet, daß sie in einem Ethernet zu ATM-Brücken-Router mit einem Geschwindigkeitsport mit verdrahteten 12 Ports verwendet wird, der in der Lage ist, ungefähr 178.000 Pakete pro Sekunde zu schalten, wobei Ethernet-Pakete mit 64 Byte Minimum verwendet werden. Diese Paketgeschwindigkeit entspricht einer Suchanfrage, die alle 5.6 us auftritt. Die LUE wird jedesmal eingesetzt, wenn ein Paket vom Ethernet- oder ATM-Netzwerk erhalten wird. Der Typ Information, den die Maschine zur Verfügung stellt, hängt von der Richtung des Paketstromes und von Typ des Paketes ab.
  • Die Suchmaschine stellt all die Information zur Verfügung, die benötigt wird, um den Weg zu jedem bekannten Ziel zu finden, ebenso wie Default-Information in dem Fall unbekannter Ziele.
  • Fig. 1 zeigt ein typisches MAC-Schicht-Nachrichtenkopfformat für ein Paket, das mit der Hilfe der Suchmaschine gemäß der Erfindung zerlegt werden kann. Der Nachrichtenkopf weist Ziel- und Quelladressfelder 100, 101, ein Feld für den Typ des Netzwerkschichtprotokolls 102 und Ziel- und Quelladressfelder 103, 104 für die Netzwerkschicht auf. Fig. 1 veranschaulicht auch, wie der Nachrichtenkopf gemäß der Erfindung zerlegt wird. Alle Felder, mit der Ausnahme von 102, werden analysiert, indem eine Baumsuche durchgeführt wird. Das Feld 102 für den Typ des Netzschichtprotokolls wird analysiert, indem Mikrocode- Vergleiche in der Mikrocode-Maschine, die beschrieben wird, verwendet werden.
  • Bei einem Brücken-Router wird jeder Port durch ein entsprechendes Bild in einem PortSet (Ports 0-11) dargestellt, welches ein Wert mit 16 Bit ist, der nur lokale Bedeutung hat. Dem Steuerprozessor und der ATM sind jeweils ein Port zugeordnet.
  • Die folgenden Definitionen sind Spezialfälle eines PortSet:
  • SinglePortSet
  • Ein PortSet, bei dem ein einziges Bit gesetzt ist.
  • HorstPortSet
  • Ein SinglePortSet, der dem Steuerprozessor entspricht.
  • MyPortSet
  • Ein SinglePortSet entsprechend dem Quellenport dieses Pakets.
  • NullPortSet
  • Ein PortSet ohne Ports.
  • Ein Verbindungsidentifizierer (CI), der einen 16 Bit-Wert mit nur lokaler Bedeutung ist, wird verwendet, um Verbindungen in VPI/VCI-Werte abzubilden.
  • Die folgenden Definitionen sind spezielle Fälle des CI:
  • Mesh_CI
  • Ein CI, der einem Weg in Richtung auf das Ziel der Endstation des Brücken- Routers entspricht.
  • Null_CI
  • Ein CI, der mit nichts verbunden ist. Er wird zurückgegeben, wenn das Ziel an dem lokalen Brücken-Router festgelegt ist, oder wenn die Verbindung nicht erlaubt ist.
  • RS_CI
  • Ein CI, der einem Weg zum Router-Server entspricht.
  • ABS_CI
  • Ein CI, der einem Weg zu dem Adressen-Sendungs-Server entspricht.
  • MAC-Schichtadressen sind global eindeutige 48 Bit-Werte, mit der Ausnahme bei einigen Protokollen, so wie DECNet, wo sie nicht global eindeutig sein dürfen.
  • Unicast_DA
  • Eine MAC-Schicht-Zieladresse einer Endstation.
  • Router_DA
  • Eine MAC-Schicht-Zieladresse des Router-Servers. Eine Endstation schickt Pakete an den Router-Server, wenn sie sie nicht direkt zum Ziel an der MAC- Schicht schicken kann.
  • Broadcast_DA
  • Die geschickte MAC-Schicht-Adresse (alle), die von allen Endstationen empfangen wird. Sie kann keine Quelladresse sein.
  • Multicast_DA
  • Eine mehrfach umgewandelte MAC-Schicht-Adresse (Gruppenbit gesetzt), die von denjenigen Endstationen empfangen wird, die die mehrfach umgewandelte Adresse erkennen.
  • Netzwerkschicht (NL)-Adressen sind abhängig vom Netzwerkprotokoll. Sie sind im allgemeinen aufgeteilt in Netzwerk-, Unternetz- und Knotenabschnitte, obwohl nicht alle Protokolle alle drei vorliegen haben. Die Feldgrößen der Netzwerkschicht-Adresse (in Bits) sind in der Tabelle unten zusammengefaßt.
  • Die Suchmaschine behandelt einfach umgewandelte Netzwerkschicht-Adressen.
  • Wenn die Suchmaschine bei einem Brücken-Router verwendet wird, der eine Schnittstelle zwischen einem Ethernet und einem ATM-Netzwerk zur Verfügung stellt, werden Pakete, die von der Ethernet-Seite kommen, in die Suchmaschine eingespeist. Das Ergebnis der Suche hat die Form:
  • Eingabe → Befehl, CI, PortSet
  • wobei Eingabe aus den ersten wenigen Bytes des Paketes abgeleitet ist und Befehl ein Betriebsbefehl an die AXE (Übertragungsmaschine) ist.
  • Das Quad-MAC-Statuswort unterscheidet zwischen Router-MAC, gesendeten und mehrfach umgewandelten MACs.
  • Überbrücken tritt auf, wenn die Zieladresse eine einfach umgewandelte Adresse ist und eine andere als die Router-Server-Adresse. Überbrücken ist zwischen zwei Endstationen in demselben Gebiet für ein gegebenes Protokoll erlaubt.
  • Sowohl die Quell- als auch die Ziel-MAC-Adressen müssen bekannt sein, bevor das automatische Überbrücken/Filtern durchgeführt wird; sonst wird das Paket an den Router-Server geschickt für die:
  • SA (Quelladressen)-Validierung, falls die SA niemals als ein gegebenes Protokoll ansprechend gesehen worden ist;
  • DA (Zieladressen)-Auflösung, falls die DA im lokalen MAC-Hintergrundspeicher nicht gefunden worden ist.
  • Der Überbrückungs-Befehl instruiert die AXE (Übertragungsmaschine), die RFC-1483- Brückenverkapselung zu benutzen. Der Überbrücken-Prop-Befehl instruiert die AXE, die Brücken-Router-Verkapselung zu benutzen (schließe das Quellen-PortSet in die Verkapselung ein).
  • Unknown_SA → BridgeProp, Null_CI, HostPortSet, MyPortSet
  • unbekannte SA - an HP zur übergeordneten Baumverarbeitung schicken
  • HP wird entscheiden, ob sie zur ABS zum Lernen geschickt wird, abhängig vom Zustand des übergeordneten Baums
  • Unicast_DA → Bridge, Mesh_CI, NullPortSet
  • DA im selben Gebiet auf einem unterschiedlichen Brücken-Router
  • Unicast_DA → Bridge, Null_CI, NullPortSet
  • DA nicht im selben Gebiet (zurückweisen)
  • Protokoll zum Brücken-Router nicht erlaubt
  • DA auf demselben Port
  • Unicast_DA → Bridge, Null_CI, SinglePortSet
  • DA in demselben Gebiet auf demselben Brücken-Router, jedoch auf einem unterschiedlichen Port
  • Unknown_DA → BridgeProp, ABS_CI, NullPortSet, MyPortSet
  • DA in der Tabelle nicht gefunden - schicke an ABS für die fließende Verarbeitung Broadcast_DA → BridgeProp, ABS_CI, NullPortSet, MyPortSet
  • Sende DA - schicke an Steuerprozessor für die Sendeverarbeitung
  • Multicast_DA → BridgeProp, ABS_CI, NullPortSet, MyPortSet
  • mehrfach umgewandelte DA - schicke an ABS für die Mehrfachumwandlungsverarbeitung
  • Multicast_DA → BridgeProp, Null_CI, HostPortSet, MyPortSet
  • mehrfach umgewandelte DA ist von Interesse für HP (z. B. übergeordneter Baum)
  • HP wird entscheiden, ob sie für die Mehrfachumwandlungsverarbeitung an ABS geschickt wird.
  • Routing tritt auf, wenn die Zieladresse die einfach umgewandelte Router-Server-Adresse ist. Filterregeln zwischen Gebieten sind ausdrücklich durch das Protokoll definiert. Das durch Protokoll festgelegte Quellengebiet ist ein Attribut der Quellen-MAC-Adresse, und das durch Protokoll festgelegte Zielgebiet ist ein Attribut der Ziel-NL-Adresse
  • Sowohl die Quellen-MAC-, als auch die Ziel-NL-Adressen müssen bekannt sein, bevor das Netzwerkschicht-Schicken auftreten kann.
  • Das Paket wird zum Router-Server überbrückt, falls irgend etwas des folgenden wahr ist:
  • die IP-Optionen liegen vor
  • das Protokoll ist unbekannt
  • Das Paket wird fallengelassen, falls irgendetwas des folgenden wahr ist:
  • das Quellengebiet darf für dieses Protokoll nicht an das Zielgebiet schicken
  • die Quellen-NL-Adresse ist ungültig (z. B. irgendeine IP-Sendeadresse)
  • die Prüfsumme ist ungültig
  • das Lebensdauerfeld läuft aus
  • Unicast_NLDA → Route, Mesh_CI, NullPortSet
  • NL-Knoten auf einem unterschiedlichen Brücken-Router
  • Unicast_NLDA → Route, Null_CI, SinglePortSet
  • NL-Knoten auf demselben Brücken-Router (könnte derselbe Port sein)
  • Unknown_NLDA → Bridge, RS_CI, NullPortSet
  • unbekannter NL-Knoten - schicke an Router-Server
  • Unknown_Protocol → Bridge, RS_CI, NullPortSet
  • Protokoll unbekannt oder Paket mit Optionen
  • Fig. 2 zeigt die Datenwege in einem typischen Brücken-Router. Der Steuerprozessor 12 hat die Kontrolle über die Formatierung der Pakete, die er schickt und empfängt. Wenn der Steuerprozessor 12 möchte, daß die Suchmaschine 17 eine Suche durchführt, formatiert er das Paket in derselben Weise wie Quad Mac 15; sonst schickt er es als ein rohes Paket, das keine lange Suche erfordert. Der Steuerprozessor legt vorab das Ziel fest, indem ein CI (Verbindungsidentifizierer) und ein Ausgabe-Portset als Teil des Datenstromes zur Verfügung gestellt werden. Ein Bit in dem Quad-Mac-Statuswort zeigt ein rohes Paket an, und die Suchmaschine gewinnt einfach den CI und den Portset als Teil des Datenstromes wieder. Ein Bit in dem Quad-Mac-Statuswort gibt ein rohes Paket an, und die Suchmaschine gewinnt einfach den CI und den Portset aus dem Datenstrom wieder, und gibt es an die AXE (Übertragungsmaschine) durch den Ergebnis-FIFO. Der Steuerprozessor ist verantwortlich, die erforderliche Einkapselung korrekt zu formatieren.
  • Wie in Fig. 2 gezeigt, werden Pakete, die von der ATM-Seite kommen, in die Suchmaschine eingegeben. Die Suchmaschine akzeptiert ein nach RFC-1483 gekapseltes Paket und stellt fest, ob auf eine MAC- oder NL-Adresse zu schauen ist. Das Ergebnis der Suche wird die Form haben:
  • Eingabe → PortSet
  • In dieser Richtung wird Filtern nicht durchgeführt. Es wird angenommen, daß die gesamte Filterung auf der Zugangsseite durchgeführt wird. Es wird auch angenommen, daß es für die Ziel-Endstation bekannt ist, daß sie an den empfangenen Brücken-Router angehängt wird, so daß einfach umgewandelte Pakete mit unbekannten Zieladressen weggeworfen werden.
  • Überschwemmende und gesendete Pakete werden in einem speziellen Format verkapselt, das eine explizite Ausgabe PortSet umfaßt.
  • Unicast_DA → SinglePortSet
  • DA auf diesem Brücken-Router
  • Unknown_DA → NullPortSet
  • DA nicht in der Tabelle (wegwerfen) - diese Situation sollte nicht auftreten.
  • Unicast NLDA → SinglePortSet
  • NLDA auf diesem Brücken-Router
  • Unknown NLDA → NullPortSet
  • NLDA nicht in der Tabelle (wegwerfen) - diese Situation sollte nicht auftreten.
  • Broadcast_DA, PortSet → PortSet
  • systemgebundene Sendeanfrage vom RS erhalten
  • Multicast_DA, PortSet → PortSet
  • systemgebundene Multicast-Anfrage vom RS erhalten
  • Unknown DA, PortSet → PortSet
  • systemgebundene Überschwemm-Anfrage vom RS erhalten
  • Wenn man sich nun der Fig. 3 zuwendet, besteht die Suchmaschine aus drei funktionalen Blöcken, nämlich einer Suchmaschine für die Zieladresse (DALE) 1, einer Suchmaschine für die Quelladresse (SALE) 2 und einen Suchmaschinen-Controller (LEC) 3, der einen Mikrocode-RAM 4 enthält, DALE 1 umfaßt einen Zieladressen-Suchcontroller 5 und den DALE RAM 6. SALE 2 umfaßt einen Quelladressen-Suchcontroller 7 und den SALE RAM 8. Die Eingabe in die Suchmaschine geschieht durch einen schnellen 16 Bit breiten I/F RAM 9, der die Eingabe von der AXE (Übertragungsmaschine) und den Re-Assembler erhält. Die Ausgabe aus der Suchmaschine geschieht durch wortbreite FIFOs 11, 12.
  • Eine Ausführungsform des Suchmaschinen-Controllers (LEC) 3 ist in weiteren Einzelheiten in Fig. 4 gezeigt. Dieser weist den (Stationsinformationsblock) SIB RAM 20, den Schnittstellen-RAM 21 und den Mikrocode-RAM 22 auf. Der SIB RAM 20 ist mit Suchzeigern 23 verbunden. Der Schnittstellen-RAM 21 ist mit dem Datenregister 25 und Indexzeigern 26, die mit der ALU (arithmetische Logikeinheit) 27 verbunden ist, verbunden. Der Mikrocode-RAM 22 ist mit dem Befehlsregister 28 verbunden.
  • Der Suchmaschinen-Controller 3 ist eine mikrocodierte Maschine, die für effiziente Bitmuster-Vergleiche durch ein Paket maßgeschneidert ist. Er kommuniziert mit der Quelladressen- Suchmaschine 2 und der Zieladressen-Suchmaschine 1, die beide als Coprozessoren für den LEC 3 arbeiten.
  • Die Suchmaschine schnuppert auf den Datenbussen für Empfang und Sendung und legt den Nachrichtenkopfabschnitt der Pakete in den I/F RAM 9. Die Suchantwort wird an den geeigneten FIFO 11, 12 gegeben.
  • Fig. 5 zeigt eine alternative Ausführungsform der Suchmaschine und des Controllers. In Fig. 5 umfaßt der LEC 3 in 64 · 16 I/F (Schnittstellen)-RAM 41, der mit den FIFOs 42, 43 (First-in, First-out-Speicher) verbunden ist, die jeweils mit Sperrschaltungen 44, 45 verbunden sind, welche Eingaben von der AXE (Übertragungsmaschine) und dem Re-Assembler erhalten.
  • Mit Bezug nun auf Fig. 6 enthält auch der LEC 3 mehrere Register, die nun beschrieben werden. Registerauswahlbefehle werden für die Registerbänke (XP 0-7, LP 0-7) zur Verfügung gestellt.
  • Das Indexzeigerregister (IP) 50 ist ein Byte-Index in den I/F RAM 21. Bei normalem Betrieb zeigt das Indexzeigerregister 50 auf das gegenwärtige Paketfeld, das in dem I/F RAM 21 überprüft wird, aber es kann immer benutzt werden, wenn wahlfreier Zugriff auf den I/F RAM 21 erforderlich ist.
  • Das IP 50 kann in einer der folgenden Weisen modifiziert werden:
  • 1) geladen mit dem LOADIP-Befehl (z. B. um auf den Anfang des Paketes zu zeigen)
  • 2) um 1 (Byte-Vergleich) oder 2 (Wort-Vergleich) inkrementiert, wenn eine Verzweigungsbedingung nicht erfüllt ist.
  • 3) um 2 inkrementiert durch einen MOVE (IP) + Typ-Befehl.
  • Das Datenregister 51 enthält den 16 Bit-Wert, der aus dem I/F RAM 21 gelesen worden ist, wobei das aktuelle IP benutzt wird. Das DR 51 wirkt wie ein Ein-Wort-Hintergrundspeicher; der LEC hält seinen Inhalt jederzeit gültig.
  • Der Programmzähler 52 zeigt auf den gegenwärtigen Mikrocode-Befehl. Er wird um Eins inkrementiert, falls eine Verzweigungsbedingung wahr ist, ansonsten wird das Verlagerungsfeld hinzugefügt.
  • Die Suchzeiger (LP 0-7) 23 sind 16 Bit-Register, die Zeiger auf den SIB RAM 20 enthalten. Die LPs werden verwendet, um Zeiger zu speichern, wann immer Meilensteine in einer Suche erreicht sind. Ein LP wird typischerweise auf einen Quellen-SIB zeigen und ein anderer wird auf einen Ziel-SIB zeigen. Der LP bildet die oberen 16 Bit des Zeigers; die unteren 4 Bit werden durch ein Mikrocode-Wort zum Indexieren in einen gegebenen SIB gebildet.
  • Die LPs werden auch benutzt, um den SALE und den DALE mit ihren jeweiligen Wurzelzeigern vorzubereiten.
  • Die X, Y-Register 53, 54 sind Allzweckregister, in denen logische Manipulationen (AND, OR, XOR) durchgeführt werden können. Sie werden benutzt, um in bestimmten Wörtern in dem SIB RAM Bits zu setzen und zu löschen (z. B. das Alter-Bit) und auf bestimmte Bits zu prüfen (z. B. Statusbits). Das X-Register 53 kann als Operand A für die Logikeinheit ausgewählt werden, während das Y-Register als Operand B ausgewählt wird.
  • Die BYZ- und BYNZ-Befehle verzweigen sich bedingungsabhängig bei Y = 0 bzw. Y < > 0.
  • Das Y-Register 54 ist die einzige Register-Quelle für Bewegungen zu den Ergebnis-FIFOs.
  • Das X-Register 53 kann in X'-Registern (X'0 - X'7) 55 gespeichert oder davon wiedergewonnen werden. Das mnemonische Symbol für das aktuell ausgewählte X'-Register ist XP.
  • Das S-Register 56 ist eine vorbereitende Stufe zwischen dem SIB-RAM 20 und der Logikeinheit. Es vereinfacht den Lesezugriff vom SIB RAM 20 durch Erleichtern der Fortpflanzungs- Verzögerungsanforderungen von dem SIB RAM 20, gültig für das Registereinrichten. Es bietet den zusätzlichen Vorteil, daß er im wesentlichen den jüngsten SIB RAM-Zugriff für wiederholte Nutzung im Hintergrund hält. Es wird durch den GET Index (LP)-Befehl geladen.
  • Wie in Fig. 3 steuert der LEC 3 den Betrieb der Suchmaschine. Alle Suchanfragen laufen durch den LEC 3, der wiederum die SALE 2 und die DALE 5 wie erforderlich aktiviert. Der LEC 3 ist Mikrocode-orientiert, ausgehend von einem 32 Bit breiten Mikrocode-RAM. Der Befehlssatz besteht hauptsächlich aus Vergleiche- und Verzweige-Befehlen, die benutzt werden können, um bestimmte Bitmuster zu finden oder um auf gültige Bereiche in Paketfeldern zu überprüfen. Spezielle I/O-Befehle geben dem LEC wahlfreien Lesezugriff auf den Schnittstellen-RAM.
  • Der LEC hat Zugriff auf drei Speichersysteme: den Schnittstellen-RAM 9, den SIB RAM 20 und den Mikrocode-RAM 22.
  • Der Schnittstellen-RAM 9 wird benutzt, um Paketdaten in den LEC 3 einzugeben. Die Suchmaschine beherbergt Speicherauszugs-Paket-Nachrichtenköpfe in diesem RAM durch Schnupper-FIFOs 42, 43. Dieser RAM ist nur durch die Schnupperbusse zugänglich.
  • Der SIB RAM 20 wird verwendet, um Information für jede bekannte Endstation zu halten. Der LEC 3 kann beliebig Daten aus diesem RAM wiedergewinnen und sie zu einem der Antwort-FIFOs 11, 12 oder an interne Register für die Manipulation und Überprüfung überführen. Ein Hochgeschwindigkeits-RAM wird auch benutzt, um die Datenwiedergewinnungszeit zu minimieren. Die Größe des SIB RAM 20 ist abhängig von der maximalen Anzahl erreichbarer Endstationen. Für eine Grenze von 8000 Endstationen beträgt die Größe des SIB RAM 256 KBytes. Dieser RAM ist für Aktualisierungen direkt durch den Steuerprozessor zugänglich.
  • Der Mikrocode-RAM 22 ist dem LEC 3 zugewiesen. Er enthält die 32 Bit-Mikrocode- Befehle. Der LEC 3 hat normalerweise auf diesen Hochgeschwindigkeits-RAM nur für das Lesen Zugriff, aber dieser wird direkt auf den Speicherraum es Steuerprozessors beim Starten für das Mikrocode-Herunterladen abgebildet.
  • Variable Felder eines Paketes, so wie Adressen, werden in einem der vielen Suchbäume in dem ALEs 1, 2 (Fig. 5 gesucht), welche Halbbyte-Indexmaschinen sind. Jede ALE 1, 2 hat ihren eigenen Suchbaum-RAM 6, 8 (Fig. 7), der typischerweise eine hohe Dichte, jedoch eine geringe Geschwindigkeit hat. Dieser RAM ist in Blöcke mit 32 Byte aufgeteilt, die entweder Index-Anordnungen oder Informationsblöcke sein können.
  • Die Suchen in den ALEs 1, 2 basieren streng auf dem Wurzelzeiger, der Suchschlüssel und die Suchschlüssellänge ist gegeben. Ein Blick auf die Suchmaschinen-Speicherkarte (Fig. 7), wie sie von den ALEs gesehen wird, zeigt, wie der Mechanismus arbeitet.
  • Alle Suchbäume in einer gegebenen ALE 6, 8 befinden sich in der oberen Hälfte ihres Speichers. Der 16 Bit-Wurzelzeiger, der an die ALE vergeben ist, wird das höchstwertige Bit gesetzt haben. Der Suchschlüssel (z. B. MAC-Adresse) wird in Halbbytes aufgeteilt. Das erste Halbbyte ist mit dem Wurzelzeiger verkettet, um einen Index in die Wurzelzeiger-Anordnung zu erhalten. Das Wort an diesem Ort wird abgerufen. Wenn das MSB (höchstwertige Bit) (P Bit) gesetzt ist, wird das nächste Halbbyte mit dem aufgerufenen Wort verkettet, um den nächsten Zeiger zu bilden. Wenn das P Bit gelöscht ist, ist die Suche beendet. Das endgültige Ergebnis wird an den LEC gegeben, der es entweder als einen Zeiger in den SIB RAM oder als Daten benutzt, abhängig von dem Kontext der Suche. Ein Null-Wert ist als ein Null- Zeigerwert reserviert. Fig. 8 veranschaulicht die Suchbaum-Operation.
  • Die Suchschlüssel-Länge begrenzt die Anzahl der Iterationen auf ein bekanntes Maximum. Der Steuerprozessor, welcher die Suchbaum-Struktur manipuliert, kann auswählen, die Suche zu verkürzen, indem Daten mit einem Null-P Bit an irgendeinem Punkt in den Baum gegeben wird.
  • "Don't Care"-Felder sind auch erreichbar, indem geeignete Zeiger innerhalb derselben Zeiger-Anordnung dupliziert werden. Suchbäume werden von dem Steuerprozessor gewartet, der direkten Zugriff auf die RAMs 6, 8 der SALE und der DALE hat.
  • Fig. 9 ist ein Schaubild, das ein Beispiel für einen MAC-Suchbaum veranschaulicht. Der Hauptzweck der ALE-RAMs 6, 8 ist es, die MAC-Schichtadressen zu halten. Die Größe des RAM, die für einen MAC-Adreßbaum erforderlich ist, hängt von der statistischen Verteilung der Adressen ab. Der absolut schlimmste Fall ist durch die folgende Formel gegeben:
  • N = min (16I-1, X)
  • wobei
  • X die Anzahl der Adressen ist
  • L die Anzahl der Halbbytes in der Adresse ist
  • N die Anzahl der Zeiger-Anordnungen ist.
  • Die erforderliche Speichermenge bei vorgegebenen 32 Byte Zeiger-Anordnungen ist 32 N. Die Zahl, die aus dieser Formel erhalten wird, kann sehr groß sein, insbesondere für MAC- Adressen, es können jedoch einige Rationalisierungen vorgenommen werden.
  • In dem Fall von MAC-Adressen sind die ersten 6 Halbbytes der Adresse der organisationsmäßig eindeutige Identifizierer (OUI), der für Ethernet-Karten vom selben Hersteller der gleiche ist. Es kann angenommen werden, das ein bestimmtes System nur eine kleine Anzahl unterschiedlicher OUIs hat.
  • Die Formel für MACs wird dann:
  • N = min (16I-1, M) + min (16I-7, Xj)
  • wobei
  • M die Anzahl unterschiedlicher OUIs ist,
  • Xj die Anzahl der Stationen in OUIj ist
  • Es sei angenommen, daß die Adressen gleichmäßig über alle OUIs verteilt sind, dann
  • N = min (16I-1, M) + M min (16I-7, X/M)
  • Die Wirkung des OUI auf die Suchbaumgröße ist in Fig. 10 gezeigt.
  • Ähnliche Rationalisierungen können mit IP und anderen Netzwerkschicht-Protokolladressen vorgenommen werden. Ein IP-Netzwerk wird nicht sehr viele Unternetze haben und noch weniger Netzwerkzahlen.
  • Obwohl die SALE 2 typischerweise lokal angehängte Quellen-MAC-Adressen hält und die DALE 1 typischerweise Ziel-MAC-Adressen hält, ist jede ALE 1, 2 in der Lage, irgendeinen beliebigen Suchbaum zu halten. Netzwerkschicht-Adressen, Zwischengebiets-Filter und benutzerdefinierte MAC-Protokolltypen können alle in Suchbäumen gespeichert sein. Die Entscheidung, einen Suchbaum entweder in die SALE oder in die DALE zu bringen, ist implementationsabhängig; man verläßt sich darauf, welche Suchen parallel bei maximaler Geschwindigkeit durchgeführt werden können.
  • Die Hauptfunktion der SALE 2 ist es, die MAC-Adressen für alle Stationen zu verfolgen, die lokal an den Brücken-Router angehängt sind. Typischerweise wird eine Station an einen Port des Brücken-Router angehängt werden, jedoch sind Verbindungen zu herkömmlichen Buchsen, Verstärkern und Brücken-Routern erlaubt, so wird man mehr Quellen-Adressen gegenüberstehen.
  • Wenn man die obige Formel für die RAM-Größe benutzt, liefern typische RAM- Berechnungen für die Quelladreßbäume das folgende:
  • Die Anzahl der Quellenstation ist auf irgendeinen Bruchteil der insgesamt erlaubten Stationen begrenzt. Diese Begrenzung wird hier auferlegt, da die SALE höchstwahrscheinlich viele der anderen Suchbäume halten wird (z. B. Pro-Protokoll-NL-Adressen-Suchbäume, Zwischengebiet-Filter).
  • Wann immer sie auf eine neue Quelladresse trifft, wird die SALE 1 sie nicht in dem Suchbaum für die MAC-Quelladresse finden. Der LEC 3 realisiert die Tatsache und schickt sie an den Steuerprozessor. Die neue Quelladresse wird in den Suchbaum eingesetzt, wenn einmal die Validierung vom Router-Server erhalten worden ist.
  • Wann immer man einer zuvor gelernten Adresse erneut gegenübersteht, wird der Alters- Eintrag in dem SIB 20 von dem LEC 3 aufgefrischt. Der Steuerprozessor löscht den Alters- Eintrag aller Quelladressen bei jeder Alterungsperiode. Der Eintrag wird entfernt, wenn die Alters-Grenze überschritten ist.
  • Die Tabelle der Suchmaschine für die Quelladresse ist in Fig. 11 gezeigt.
  • Die DALE 1 verfolgt alle Stationen, die direkt vom Brücken-Router erreichbar sind, einschließlich denen, die lokal angehängt sind. Die DALE-Suchbäume sind beträchtlich größer, da sie MAC-Adressen von bis zu 8000 Stationen enthalten.
  • Typische Speichergrößen für Suchbäume für MAC-Zieladressen würden sein:
  • Die MAC-Adresse einer Station wird in dem MAC-Suchbaum erscheinen, wenn die Station durch MAC-Überbrücken erreichbar ist. Eine Netzwerkschichtadresse einer Station wird in dem entsprechenden Netzwerkschicht-Suchbaum erscheinen, wenn sie durch Routing erreichbar ist.
  • Die Tabelle für die Suchmaschine der MAC-Zieladresse ist in Fig. 12 gezeigt.
  • IP-Maskierung kann erforderlich sein, wenn für einen bestimmten Port bekannt ist, daß an ihn ein Router angehängt ist. Das Maskieren wird erreicht, indem der Suchbaum für die IP- Netzwerkschicht in einer solchen Weise konfiguriert wird, daß der Knotenabschnitt der Adresse als "Don't care"-Bits behandelt wird und die entsprechenden Zeiger auf dieselbe Nächste-Index-Anordnung zeigen.
  • Die RAMs 8, 6 der SALE und der DALE sind in 16 Wort-Blöcke aufgeteilt. Diese RAMs sind nur für die entsprechende ALE und den Steuerprozessor zugreifbar. Diese RAMs enthalten weitgehend Zeiger-Anordnungen, die in mehreren Suchbäumen organisiert sind.
  • Der SIB RAM 20 ist in 16 Wort-Blöcke aufgeteilt, die als Aufzeichnungen mit 16 Feldern behandelt werden können. Jeder Block enthält typischerweise Information über eine Endstation. Auf diesen RAM kann nur durch den LEC und den CP zugegriffen werden.
  • Der LEC 3 benutzt den Suchzeiger (LP) als einen Basiszeiger in einen SIB 20. Die Inhalte des LP werden entweder aus dem Ergebnis einer Suche durch die SALE 2 oder die DALE 1 auf zugreifbare Endstations-Information oder aus einer Konstante, die durch den Mikrocode eingeladen wird, um auf verschiedenste Information zuzugreifen (z. B. Port-Information), erhalten. Der LP liefert die oberen 16 Bits und das Mikrocode-Wort liefert die untersten 4 Bits der SIB RAM-Adresse.
  • Das Adressierschema der Suchmaschine ist in Fig. 13 gezeigt.
  • Der SIB RAM 20 (Fig. 14) enthält im allgemeinen Information über den Ort einer Endstation und wie diese zu erreichen ist. Zum Beispiel kann das PortSet-Feld den Port verfolgen, an den die Endstation angehängt ist (wenn sie lokal angehängt ist), und der Verbindungsindex bezieht sich auf eine VPI/VCI-Leitung zu der Endstation (wenn sie entfernt angehängt ist). Andere Felder sind frei definierbar für andere Sachen, so wie Protokollfilter, Typen der Quellen- und Zielkapselung und Parameter für die Qualität des Service, wenn die Notwendigkeit entsteht.
  • Eine Variante des SIB ist der Port-Informations-Block (PIB) (Fig. 15). PIBs enthalten Information über einen bestimmten Port. Bestimmte Protokolle haben Attribute, die an den Port selbst angehängt sind anstatt an die Endstationen. Eine Endstation erbt die Eigenschaften, die dem Port zugeordnet sind, an den sie angehängt ist.
  • Die Definition des SIB ist flexibel; die einzige Anforderung ist, daß die Daten leicht von dem LUE-Befehlssatz zu verdauen sind. Der Feldtyp kann ein einzelnes Bit sein, ein Halbbyte, ein Byte oder ein ganzes Wort.
  • In Fig. 14 ist das CI (Verbindungsidentifizierer)-Feld eine Referenz zu einer ATM- Verbindung zu der Endstation, wenn sie entfernt angehängt ist. Dieses Feld ist Null für eine lokal angehängte Endstation.
  • Das PortSet-Feld wird sowohl zum Bestimmen des Ziel-Port einer lokal angehängten Endstation als auch zum Bestimmen, ob eine Quellen-Endstation sich bewegt hat, benutzt. Bei einem Newbridge-Router-Netzwerksystem muß eine bewegte Endstation durch eine Neuzulassungs- Prozedur gehen, um die Integrität des Netzwerkes zu erhalten. Dieses Feld ist Null für eine entfernt angehängte Endstation.
  • Der MAC-Index ist eine Referenz zu der 6 Byte großen MAC-Schichtadresse der Endstation. Dieses Feld wird für über Netzwerkschichten geschickte Pakete benutzt, bei denen die MAC- Schicht-Kapselung entfernt ist. Die MAC-Schicht-Adresse wird wieder angehängt, wenn ein Paket erneut vor dem erneuten Senden aus einem Ethernet-Port gekapselt wird. Der Kapselungs-Merker legt das Neukapselungsformat für MAC fest.
  • Die Proto-Gebiet und Proto-Ziel-Gebiet-Felder werden für Filteroperationen benutzt. Da das Newbridge-Router-System im wesentlichen die herkömmlichen physikalischen Einschränkungen bei einer Netzwerktopologie entfernt, erlegt das Gebietskonzept logisch erneut die Einschränkungen auf, damit vorliegende Protokolle richtig arbeiten können. Filterregeln, die zwischen Gebieten definiert sind, legen fest, ob zwei Endstationen logisch miteinander kommunizieren dürfen, wobei ein bestimmtes Protokoll benutzt wird.
  • Das Proto-Gebiet-Feld ist ein Zeiger auf einen Baum mit Filterregeln, der in seiner Struktur ähnlich den Adreßbäumen ist. Das Ziel-Gebiet-Feld ist ein Suchschlüssel in den Baum hinein. Das Ergebnis der Suche ist ein Bitfeld, in dem jedes Protokoll einem Bit zugeordnet ist. Kommunikationen sind erlaubt, wenn das entsprechende Bit gesetzt ist.
  • Fig. 16 zeigt einen Baum für Filterregeln.
  • Der Mikrocode für den LEC 3 wird nun beschrieben. Der LEC-Mikrocode wird in vier Hauptfelder wie in der Tabelle unten gezeigt, aufgeteilt. Der Einsatz jedes Feldes ist abhängig von der Befehlsgruppe.
  • Das Befehlsgruppen-Feld besteht aus Befehlen, die entsprechend der Ähnlichkeit ihrer Funktion gruppiert sind. Ein Maximum von acht Befehlsgruppen kann definiert werden.
  • Die Befehlsfeld-Definition ist abhängig von der Befehlsgruppe.
  • Bei Verzweigungsbefehlen wird das Verlagerungsfeld zu dem PC addiert, wenn die Verzweigungsbedingung richtig ist. Dieses Feld wird bei Nicht-Verzweigungs-Befehlen für andere Zwecke genutzt.
  • Das Parameterfeld ist ein 16 Bit-Wert, der für den Vergleich, als ein Operand oder als ein Index benutzt wird, abhängig von dem Befehl.
  • Die Funktionen der Gruppen sind in der folgenden Tabelle aufgeführt.
  • Gruppe 0 Index-Zeiger/Bankauswahlbefehle Diese Befehle manipulieren den IP und das Register-Bankauswahlregister.
  • Gruppe 1 Befehle für das schnelle Bewegen Diese Befehle bewegen Daten zwischen dem I/F RAM und internen Registern
  • Gruppe 2 Befehle für die bedingte Verzweigung Diese Befehle verzweigen, wenn eine gegebene Bedingung erfüllt ist. Sie können gegebenenfalls den IP inkrementieren.
  • Gruppe 3 X-Register-Verzweigungsbefehle Diese Befehle verzweigen aufgrund eines logischen Vergleichs im X-Register
  • Gruppe 4 Nicht benutzt
  • Gruppe 5 Befehle für die langsame Bewegung Diese Befehle schließen im allgemeinen den SIB RAM-Bus ein. Die Zugriffszeit auf den SIB RAM ist länger, aufgrund von Betrachtungen für die Einrichtezeit der Adresse und weil der CP auf ihn zur selben Zeit zugreifen darf. Zugriff auf die Ergebnis-FIFOs sind hier eingeschlossen.
  • Gruppe 6 Nicht benutzt
  • Gruppe 7 Verschiedene Befehle Diese Befehle rufen spezielle Funktionen auf.
  • Die folgende Tabelle beschreibt die Verwendung jedes der Felder.
  • *wenn LSel = 110
  • Bedingung
  • 000 - (IP) = Komparand
  • 001 - (IP) < Komparand
  • 010 - (IP) > Komparand
  • 011 - Wahr
  • 100 - erweiterte Bedingung = Wahr
  • 101 - erweiterte Bedingung = Falsch
  • 110 - Y = 0
  • 111 - Y < > 0
  • Ziel
  • 000 - gegenwärtig aktiver FIF0
  • 001 - X-Register
  • 010 - Adressen-RAM für Suchmaschinen
  • 011 - Gruppe 5 : S-Register
  • sonst: keines
  • 100 - Y-Register
  • 101 - Index (LP) (SIB RAM)
  • 110 - XP-Register
  • 111 - Suchzeiger
  • Operation - IP/Registerauswahloperation
  • 00 - Registerauswabl
  • 10 - Laden
  • Größe - IP-Inkrementiergröße
  • 00 - kein Inkrement
  • 01 -Byte (+1)
  • 10 - Wort (+2)
  • Verlagerung (8 Bits)
  • 00000001 - nächster Befehl
  • 00000000 - derselbe Befehl
  • Verlagerung (5 Bits)
  • 00001- nächster Befehl
  • 00000 - derselbe Befehl
  • LSel - Auswahl der logischen Einheit
  • 000 - A AND B
  • 001 - A OR B
  • 010-A AND NOT B
  • 011 - A OR NOT B
  • 100-A XOR B
  • 101 - Reserviert
  • 110 - B
  • 111 - A
  • ASel - Auswahl Operand A
  • 000 - (IP), (IP) + Indirekte I/F-Daten
  • 001 - X X-Register
  • 010 - S S-Register
  • 011-XP X'-Register
  • 100 - XP X'-Register
  • 101 -
  • 110 -
  • 111 -
  • BSel - Auswahl Operand B
  • 00 - Y Y-Register
  • 01 - #-Wert unmittelbarer Wert
  • 11 - spezielle Funktion
  • Wenn LSeI = 110:
  • O 10 - Ergebnis der DALE-Suche
  • 110 - Ergebnis der SALE-Suche
  • Unmittelbarer Wert
  • Wort-Werte füllen das gesamte Feld
  • Byte-Werte müssen zweimal wiederholt werden, um das Feld zu füllen Wenn BSel = 11 (spezielle Funktionen):
  • Wenn der Wert = $3000 (Portset-Funktion):
  • X(11 : 8) f(15 : 0)
  • 0 0000000000000001
  • 1 0000000000000010
  • 2 0000000000000100
  • 3 0000000000001000
  • 4 0000000000010000
  • 5 0000000000100000
  • 6 0000000001000000
  • 7 0000000010000000
  • 8 0000000100000000
  • 9 0000001000000000
  • 10 0000010000000000
  • 11 0000100000000000
  • 12 0001000000000000
  • 13 0010000000000000
  • 14 0100000000000000
  • 15 1000000000000000 FIFO-Schreibbefehle
  • Extra/B Sel
  • Oee 01 MOVEF #Wert, Extra
  • Bewege unmittelbaren Wert zum FIFO mit Extra-Bits
  • Oee 00 MOVEF Y, Extra
  • Bewege Y-Register zum FIF0 mit Extra-Bits
  • lee 00 MOVEF Index (LP), Extra
  • Bewege indexierte Suchdaten zum FIFO mit Extra-Bits
  • Die FIFO-Schreibbefehle werden benutzt, um Daten in den gegenwärtig aktiven Ergebnis- FIFO zu schreiben. Die Extra-Feldsteuerbits 16 und 17 in den FIFO-Datenbus.
  • Der dritte Befehl in der Liste ist ein direkter Speicherzugriff vom SIB RAM zu dem aktiven FIFO. Der SIB RAM wird freigegeben, während dem aktiven FIFO ein Schreibpuls geschickt wird. Indem so vorgegangen wird, wird vermieden, daß SIB-Daten sich durch den LUE fortpflanzen. Das Bit 20 unterscheidet zwischen einem DMA- und einem Nicht-DMA-Befehl.
  • Das X-Register kann nicht als eine MOVEF-Quelle benutzt werden, da diese normalerweise der Konflikt zwischen dem ASel-Feld mit dem Extra-Feld sein würde.
  • Benutzung:
  • MOVEF #IPSnap, 0; Paket ist IP über SNAP
  • Schnittstellen-RAM Datenlesebefehle
  • Ziel/Größe
  • 001 00 MOVE (IP), X
  • Bewege IP indirekt zum X-Register
  • 001 10 MOVE (IP) +, X
  • Bewege IP indirekt, autoinkrementiert, zum X-Register
  • 100 00 MOVE (IP), Y
  • Bewege IP indirekt zum Y-Register
  • 100 10 MOVE (IP) +, Y
  • Bewege IP indirekt, autoinkrementiert, zum Y-Register
  • 111 00 MOVE (IP), LP
  • Bewege IP indirekt zum LP-Register
  • 111 10 MOVE (IP) +, LP
  • Bewege IP indirekt, autoinkrementiert, zum LP-Register
  • Die Schnittstellen-RAM-Datenlesebefehle werden benutzt, um Daten vom Schnittstellen- RAM 41 in das X-, Y- oder LP-Register zu lesen. Das benutzte LP wird vorausgewählt, wobei der RSEL-Befehl benutzt wird. Suchzeigerbefehle
  • Gruppe/Ziel/LSel/ASel/BSel - Befehlstyp
  • 101 101 111 001 00 MOVE X, Index (LP)
  • Bewege X-Register zu indexierten Suchdaten
  • 101 101 110 000 00 MOVE Y, Index (LP)
  • Bewege Y-Register zu indexierten Suchdaten
  • 101 011 000 000 00 GET Index (LP)
  • Lade S-Register mit indexierten Suchdaten
  • 001 111 110 000 00 MOVE Y, LP
  • Bewege Y-Register zum Suchzeiger
  • 001 111 110 000 01 MOVE #Wert, LP
  • Bewege unmittelbaren Wert zum Suchzeiger
  • 001 111 111 001 00 MOVE X, LP
  • Bewege X-Register zum Suchzeiger
  • Suchzeiger-Befehle werden benutzt, um die Suchzeiger zu laden oder um Werte im Such- RAM zu speichern oder daraus wiederzugewinnen. Benutzung: Logische Befehle
  • Logische Befehle werden benutzt, um logische Manipulationen in den X- und Y-Registern durchzuführen. Kombinationen der obigen Auswahlen ergeben die folgenden (nützlichen) Befehle:
  • Ziel/LSel/ASel/BBel
  • 001 110 000 00 MOVE Y, X
  • Y &rarr; X
  • 100 111 001 00 MOVE X, Y
  • X &rarr; Y
  • 001 111 010 00 MOVE S, X
  • S &rarr; X
  • 100 111 010 00 MOVE S, Y
  • S &rarr; Y
  • 001 110 000 01 MOVE #Wert, X
  • Unmittelbarer Wert &rarr; X
  • 100 110 000 01 MOVE #Wert, Y
  • Unmittelbarer Wert &rarr; Y
  • 001 000 001 00 AND X, Y, X
  • X AND Y &rarr; X
  • 001 000 014 00 AND S, Y, X
  • S AND Y &rarr; X
  • 001 000 001 01 AND X, #Wert, X
  • X AND Wert &rarr; X
  • 001 000 010 01 AND S, #Wert, X
  • S AND Y Wert &rarr; X
  • 100 000 001 00 AND X, Y, Y
  • X AND Y &rarr; Y
  • 100 000 010 00 AND S, Y, Y
  • S AND Y &rarr; Y
  • 100 000 001 01 AND X, #Wert, Y
  • X AND Wert &rarr; Y
  • 100 000 010 01 AND S, #Wert, Y
  • S AND Wert &rarr; Y
  • OR, ANDN, ORN und XOR sind ähnlich wie AND:
  • dst 001 aaa bb OR aaa, bb, dst
  • Aaa OR bb &rarr; dst
  • dst 010 aaa bb ANDN aaa, bb, dst
  • aaa OR bb &rarr; dst
  • dst 011 aaa bb ORN aaa, bb, dst
  • aaa OR bb &rarr; dst
  • dst 100 aaa bb XOR aaa, bb, dst
  • aaa OR bb &rarr; dst Bedingungsabhängige Verzweigungsbefehle
  • Bedingung/ Größe
  • 000 01 ESCHE.b #Komparand, Label
  • Aussteigen, falls Byte nicht gleich
  • 000 10 ESCNE.w #Komparand, Label
  • Aussteigen, falls Wort nicht gleich
  • 001 01 ESCGE.b #Komparand, Label
  • Aussteigen, falls Byte größer oder gleich
  • 001 10 ESCGE.w #Komparand, Label
  • Aussteigen, falls Wort größer oder gleich
  • 010 01 ESCLE.b #Komparand, Label
  • Aussteigen, falls Byte kleiner oder gleich
  • 010 10 ESCLE.w #Komparand, Label
  • Aussteigen, falls Wort kleiner oder gleich
  • 110 00 BYZ Label
  • Verzweigen, falls Y-Register Null ist
  • 111 00 BYNZ Label
  • Verzweigen, falls Y-Register nicht Null ist
  • Inkrementale Verzweigungsbefehle werden benutzt, um das gegenwärtige Paketfeld mit einem unmittelbaren Wert zu vergleichen. Falls die Bedingung erfüllt ist, wird die Verzweigung durchgeführt; sonst wird IP durch die Inkrementiergröße inkrementiert.
  • Benutzung:
  • Label 1: ; überprüfe, ob SNAP-Nachrichtenkopf
  • ESCHE.w #$AAAA, Label 2 ; vergleiche mit SNAP-Wert
  • ESCHE.w #$0003, OtherLabel
  • ...
  • Label 2: X-Register-Verzweigungsbefehle
  • Bedingung/LSel
  • 110 100 BXEQ #Wert, Label
  • Verzweige, falls X gleich dem Wert ist
  • 111 100 BXNE #Wert, Label
  • Verzweige, falls X nicht gleich dem Wert ist
  • 110 000 ANDBZ #Wert, Label
  • Verzweige, falls X AND der Wert gleich Null ist
  • 111 000 ANDBNZ #Wert, Label
  • Verzweige, falls X AND der Wert nicht gleich Null ist
  • 110 010 ANDNBZ #Wert, Label
  • Verzweige, falls X AND NOT der Wert gleich Null ist
  • 111 010 ANDNBNZ #Wert, Label
  • Verzweige, falls X AND NOT der Wert nicht gleich Null ist
  • X-Register-Verzweigungsbefehle werden von den logischen Befehlen für das X-Register mit dem Operanden A abgeleitet, der immer auf das X-Register gesetzt ist und dem Operanden B, der immer auf den unmittelbaren Wert gesetzt ist. Das X-Register ist von keinem dieser Befehle beeinflußt. Das Verlagerungsfeld wird auf 5 Bits (+/- 32 Befehle) verringert.
  • Benutzung:
  • Siehe Ziel-Suchbefehlbeispiel
  • SKIP.w ; Ignoriere das nächste Wortfeld Weitere Verzweigungsbefehle
  • 100 00 $00 $000 0 DWAIT
  • Auf DALE warten
  • 100 00 $00 $800 0 SWAIT
  • Auf SALE warten
  • 101 00 $00 $C00 0 FWAIT
  • Warten, bis der Schnupper-FIFO fertig ist
  • 101 00 ddd $400 0 BCSERR ddd
  • Auf Prüfsummenfehler verzweigen
  • 011 01 $01 $000 0 SKIP.b
  • Byte überspringen (dasselbe wie IBRA.b + 1)
  • 011 10 $01 $000 0 SKIP.w
  • Wort überspringen (dasselbe wie IBRA.b + 1)
  • 011 01 $ddd $000 d IBRA.b Label
  • Byte inkrementieren und immer verzweigen
  • 011 10 ddd $000 d IBRA.w Label
  • Wort inkrementieren und immer verzweigen
  • 011 00 000 $800 0 SWITCH
  • X einschalten (X zu PC addieren)
  • 011 00 ddd $000 d BRA. u Label
  • immer verzweigen
  • Diese Befehle sind von den bedingungsabhängigen Verzweigungsbefehlen abgeleitet. Wartebefehle laufen in der Schleife, bis die erweiterte Bedingung falsch ist. Sprungbefehle bewegen zum nächsten Befehl und inkrementieren den IP geeignet.
  • Weitere Verzweigungsbefehle können leicht definiert werden, indem Bedingung = 100 oder 101 benutzt wird und ein unbenutztes erweitertes Bedingungsmuster verwendet wird.
  • Wenn Bedingung = 011 (wahr), wird das Verlagerungsfeld auf 12 Bits erweitert.
  • Der SWITCH-Befehl addiert das niederwertigste Halbbyte von X zu dem PC. Falls X (3 : 0) = 0, wird 16 zu dem PC addiert.
  • Benutzung:
  • SKIP.w ; ignoriere das nächste Wortfeld Index-Zeiger/Register-Auswahlbefehle
  • Gruppe/Ziel/Oper/LSel/ASel/BSel
  • 001 110 001 110 00 111 000 00 ST X [, XPn, LPn]
  • X &rarr; XP, gegebenenfalls schalten auf XPn, LPn
  • 001 001 00 111 100 00 LD X [, XPn, LPn]
  • XP &rarr; X gegebenenfalls schalten auf XPn, LPn
  • 001 011 00 111 00 111 000 00 RSEL XPn, LPn
  • schalten auf XPn, LPn
  • 000 011 10 110 000 01 LOADIP #Wert
  • Lade IP unmittelbar
  • 000 011 10 111 001 00 LOADIP X
  • Lade IP mit X
  • Index-Zeiger-Befehle werden benutzt, um Manipulationen an dem Index-Zeiger durchzuführen.
  • Übertragungen aus den X-Registern werden normalerweise bei einer Suchfunktion nicht benutzt, können aber nützlich für Übertragungen für allgemeine Zwecke vom Interface-RAM sein.
  • Der Register-Auswahlbefehl wählt ein Register aus jeder der Registerbänke. Das Format des Bank-Auswahlbit-Feldes ist:
  • Die En-Bits legen fest, ob die entsprechenden Auswahlbits gültig sind. Falls En Null ist, bleibt die entsprechende Registerauswahl unverändert. Falls En eins ist, werden die entsprechenden Auswahlbits benutzt. Dieser Mechanismus erlaubt es, daß Registerauswahlen unabhängig voneinander getroffen werden können. Zielsuche-Befehle
  • Größe/ASel
  • 00 001 DLOAD X, Address [, Command]
  • Lade X in DALE
  • 00 000 DLOAD (IP), Address [, Command]
  • Lade IP indirekt in DALE/lade Befehlsregister
  • 10 000 DLOAD (IP) +, Address [, Command]
  • Lade IP indirekt autoinkrementiert in DALE/lade Befehlsregister
  • Ziel
  • 111 DMOVE LP
  • Bewege DALE-Ergebniszeiger in Suchzeiger
  • 001 DMOVE X
  • Bewege DALE-Ergebniszeiger in X-Register
  • 100 DMOVE Y
  • Bewege DALE-Ergebniszeiger in Y-Register
  • Die Ziel-Suchebefehle richten die DALE ein und lesen Ergebnisse daraus aus. Der gegenwärtig ausgewählte Such-Zeiger wird als der Wurzelzeiger benutzt.
  • Der DLOAD-Befehl lädt Wörter in den 16 mal 16 Bit-DALE-Halbbyte-RAM und lädt das Befehlsregister. Der DMOVE-Befehl gibt das DALE-Ergebnis zurück. Befehlsregister
  • Das Start-Bit signalisiert der DALE, die Suche zu starten.
  • Das Halbbyte-Versetzungsfeld zeigt auf das erste gültige Halbbyte in dem ersten Wort, das in den Adressen-RAM geladen ist.
  • Das Adreßfeld zeigt auf das Wort, das in den Halbbyte-RAM geschrieben wird.
  • Der DMOVE-Befehl bekommt den 16 Bit DALE-Ergebniszeiger. Dem DMOVE sollte DWAIT vorangehen, ansonsten kann das Ergebnis ungültig sein. Benutzung: Quellensuche-Befehl
  • Größe/ASel
  • 00 001 SLOAD X, Address [, Command]
  • Lade X in SALE
  • 00 000 SLOAD (IP), Address [, Command]
  • Lade IP indirekt in SALE/lade Befehlswort
  • 10 000 SLOAD (IP) +, Address [, Command]
  • Lade IP indirekt, autoinkrementiert, in SALE/lade Befehlswort
  • Ziel
  • 111 SMOVE LP
  • Bewege SALE-Ergebniszeiger in Suche-Zeiger
  • 001 SMOVE X
  • Bewege SALE-Ergebniszeiger in X-Register
  • 100 SMOVE Y
  • Bewege SALE-Ergebniszeiger in Y-Register
  • Die Zielsuche-Befehle richten die SALE ein und lesen Ergebnisse daraus aus. Der gegenwärtig ausgewählte Suchezeiger wird als der Wurzelzeiger benutzt.
  • Der SLOAD-Befehl lädt Wörter in den 16 mal 16 Bit SALE-Halbbyte-RAM und lädt das Befehlswort. Der SMOVE-Befehl gibt das SALE-Ergebnis zurück Befehlswort.
  • Das Start-Bit signalisiert der SALE, die Suche zu starten.
  • Das Halbbyte-Versetzungsfeld zeigt auf das erste gültige Halbbyte in dem ersten Wort, das in den Adressen-RAM geladen ist.
  • Das Adreßfeld zeigt auf das Wort, das in den Adressen-RAM geschrieben wird.
  • Der SMOVE-Befehl erhält den 16 Bit SALE-Ergebniszeiger. Dem SMOVE-Befehl sollte SWAIT vorangehen, ansonsten kann das Ergebnis ungültig sein. Benutzung: Prüfsummen-Maschinenbefehle
  • Größe/ASel
  • 00 001 CLOAD X
  • Lade X in Prüfsummenmaschine und beginne
  • 00 000 CLOAD (IP)
  • Lade IP indirekt in Prüfsummenmaschine und beginne
  • 10 000 CLOAD (IP) +
  • Lade IP indirekt, autoinkrementiert, in Prüfsummenmaschine und beginne
  • Der CLOAD-Befehl lädt eine Worzählung in die Prüfsummenmaschine, löscht die Prüfsumme und startet die Maschine. Das Wort, das gegenwärtig durch IP indexiert ist, wird anschließend zur Prüfsumme addiert, jedesmal, wenn der IP eine Wortgrenze überschreitet, bis die Zählsumme erschöpft ist. Verschiedene Befehle
  • Diese Befehle rufen spezielle Funktionen auf
  • Code
  • 001 STOP
  • Ausführung bis zur nächsten Suchanforderung anhalten
  • Die Arbeitsweise der Suchmaschine wird nun in weiteren Einzelheiten beschrieben. Die Befehlszustandsmaschine (ISM) ist in Fig. 17 gezeigt.
  • Ein Suchmaschinen-Mikrocode dauert typischerweise 4 Taktzyklen. Bei 50 MHz braucht der Befehlszyklus 80 ns zur Ausführung. Befehle, die Zugriff auf den SIB RAM erfordern, was eine Abstimmung mit dem Steuerprozessor erfordert, und irgendwelche zukünftigen Erweiterungen, die mehr Zeit zur Ausführung erfordern, werden einen oder mehrere zusätzliche Zyklen bis zur Beendigung erfordern.
  • Nach dem Rücksetzen ist der LEC 3 im Leerlaufzustand. Sobald einer der Schnupper-FIFOs 42, 43 nicht leer ist, tritt die ISM in die Hauptbefehlszyklus-Schleife ein.
  • Ein Mikrocode-Befehlszyklus ist typischerweisein vier Hauptzustände aufgeteilt. Zustand 3 und Zustand 0 erlauben es, daß sich Mikrocode-Inhalte durch den LEC fortpflanzen. Die Befehlsgruppe ist in Zustand 1 festgelegt. Wenn ein schneller Befehl ausgeführt wird (Gruppen 0-3), wird unmittelbar in Zustand 2 eingetreten. Ansonsten wird in den geeigneten nächsten Zustand eingetreten, entsprechend dem Gruppenfeld.
  • Fig. 18 zeigt einen typischen schnellen Befehl.
  • Zu dem Zeitpunkt, zu dem Zustand 2 erreicht wird, werden alle Signale abgearbeitet sein. Neue Werte für den PC und falls notwendig den IP und/oder das ausgewählte Ziel werden am Ende dieses Zustands geladen.
  • Zustand 42 ist ein Ersatzzustand für gegenwärtig undefinierte Gruppen.
  • Zustand 52 ist ein Wartezustand für externe Zugriffe auf den SIB RAM. Die ISM verläßt diesen Zustand, wenn der SIB RAM dem LEC lang genug zugewiesen worden ist, damit ein Zugriff beendet werden konnte.
  • Fig. 19 zeigt einen typischen SIB RAM-Zugriffsbefehl.
  • Die Zustände 72 und 73 werden während des STOP-Befehls durchgeführt. Der Zustand 73 spült die Schnupper-FIFOs in diesem Fall.
  • Der LEC läuft definiert zyklisch durch die Zustände 0 bis 3, bis er einem STOP-Befehl gegenübersteht, was den LEC zurück in den Leerlaufzustand bringt.
  • Der Suchanforderungsmechanismus für eine MAC-Schicht-Suche ist wie folgt:
  • Der Anforderer (z. B. die AXE) plaziert Information, im allgemeinen einen Paket- Nachrichtenkopf, in den Schnupper-FIFO.
  • Der leere Merker des FIFO tritt den LEC an.
  • Der LEC instruiert die DALE, nach der Zieladresse zu suchen.
  • Der LEC instruiert die SALE, die Quelladresse zu suchen.
  • Der LEC schaut in das Paket, um das Netzwerkschichtprotokoll festzulegen, für den Fall, daß es weitergeschickt werden muß.
  • Der LEC wartet auf die SALE und liest den Quelladressen-SIB-Zeiger.
  • Der Quellenport wird mit dem zuvor gespeicherten Portset verglichen, um zu sehen, ob sich die Quellen-Endstation bewegt hat.
  • Der LEC wartet auf die DALE und liest den Zieladressen-SIB-Zeiger.
  • Das Zielgebiet wird mit dem Quellgebiet verglichen, um zu sehen, ob die Endstationen in demselben Gebiet liegen.
  • Der Quellenport wird mit dem Zielport verglichen, um zu sehen, ob die Endstationen auf demselben Port liegen.
  • Pakete werden entsorgt, wenn sie keinem weiteren nützlichen Zweck dienen (z. B. SA und DA auf demselben Port oder in unterschiedlichen Gebieten, fehlerhafte Pakete). Ansonsten werden sie an den Steuerprozessor für die weitere Verarbeitung geschickt. Probeprogramm
  • Die beschriebene Suchmaschine ist in der Lage, Brücken-Router - und die meisten Netzwerkschicht-Suchen in weniger als 5.6 us (1/178.000) mit bis auf Minimum Anforderungen an RAM und Kosten durchzuführen und maximiert die Flexibilität für zukünftige Hinzufügungen/Korrekturen ohne Hardwareänderungen.
  • Die beabsichtigte Anwendung der Suchmaschine sind die Hochleistungs-LAN-Systeme und andere paketorientierte Vorrichtungen.
  • GLOSSAR
  • BRÜCKEN-ROUTER Eine LAN Brücken-Routing-Vorrichtung mit 12 Ethernet-Ports und einem ATM-Port.
  • ATM Asynchroner Übertragungsmodus. Ein Zellenschaltstandard.
  • ABS Adressen/Sende-Server Eine Komponente eines Router-Servers, die die Adressenauflösung und den Sendeverkehr behandelt.
  • AXE Eine Übertragungsmaschine
  • DA Zieladresse. Die MAC-Adresse des beabsichtigten Ziels auf einem MAC-Rahmen.
  • DALE Zieladressen-Suchmaschine. Die LUE-Komponente, die im allgemeinen durch einen Tabelle der MAC-Schicht-Zieladressen sucht.
  • CI Verbindungsidentifizierer. Eine Zahl, die intern benutzt wird, um eine bestimmte Verbindung anzuzeigen.
  • IP Internet-Protokoll. Ein weithin benutztes Netzwerkschicht- Protokoll, das von der Internet-Gemeinde benutzt wird.
  • IPX Internet-Paketaustausch. Ein Netzwerkschicht-Protokoll, das von Novell entwickelt worden ist.
  • LEC Suchmaschinen-Controller. Die LUE-Komponenten, die den Mikrocode ausführt.
  • LUE Suchmaschine.
  • MAC Mediumzugangssteuerung. Ein Ausdruck, dem man üblicherweise in IEEE 802 Standards gegenübersteht, die sich im allgemeinen darauf beziehen, wie ein bestimmtes Medium (d. h. Ethernet) benutzt wird. "MAC-Adresse" wird üblicherweise be nutzt, um auf die global eindeutige 48 Bit-Adresse Bezug zu nehmen, die an Schnittstellen-Karten gegeben wird, was etwa dem IEEE 802 Standard anhaftet.
  • RS Leitungsserver.
  • SA Quelladresse. Die MAC-Adresse des Ursprungs eines MACRahmens.
  • SALE Quelladresse-Suchmaschine. Die LUE-Komponente, die im allgemeinen durch eine Tabelle von MAC-Schicht-Quelladressen sucht.
  • SIB Stationsircformationsblock. Die Datenstruktur in der LUE, die relevante Information über eine Endstation hält.
  • CAM Inhaltsorientierter Speicher.
  • VPI Identifizierer für den virtuellen Weg
  • VGI Identifizierer für den virtuellen Kanal
  • Steuerprozessor Der Prozessor in dem Brücken-Router, der Managementfunktionen behandelt.

Claims (21)

1. Einrichtung zur Zergliederung von Paketen in einem paketorientierten Datenübertragungsnetz, wobei die Pakete Paket-Nachrichtenköpfe umfassen, die sich in Felder gliedern, die auf das Paket bezogene Informationen darstellende Werte beinhalten, wobei die Einrichtung ferner eine Eingabe für die Aufnahmefelder von den Paket-Nachrichtenköpfen der ankommenden Pakete, einen Speicher zum Speichern von Information, die sich auf die möglichen Werte der Felder beziehen, und eine Suchmaschine zum Abfragen von gespeicherte, einem erhaltenen Feldwert entsprechender Information umfaßt, dadurch gekennzeichnet, daß die Suchmaschine (1) zumindest einen der Speicher (6, 8), der in einer hierarchischen Baumstruktur organisierte und gespeicherte Informationen beinhaltet, und einen Microcode-Controller (3) zur Steuerung des Betriebes dieser Suchmaschine (1, 2) während des Bitmuster-Erkennungsprozesses in zumindest einem Teil des Pakets, umfaßt.
2. Einrichtung nach Anspruch 1, dadurch gekennzeichnet, daß zumindest einer der Speicher (6, 8) Adresseninformation speichert und mit zumindest einer Adressensteuereinheit (5, 7) verbunden ist, die durch den Microcode-Controller (3) gesteuert wird.
3. Einrichtung nach Anspruch 2, dadurch gekennzeichnet, daß zumindest eine der Adressensteuereinheiten (5, 7) in zumindest einem der Speicher Adressen aufsucht, wobei sie Halbbyte-Indexierung in den Feldern verwendet.
4. Einrichtung nach Anspruch 3, dadurch gekennzeichnet, daß zumindest eine der Adressensteuereinheit (5, 7) das erste Halbbyte des ankommenden Feldwertes mit einem Wurzelzeiger verkettet, um einen Index einer Wurzelzeiger-Anordnung zu erhalten, und ferner ein Wort in einer durch den Index identifizierten Stelle aufsucht, das nächste Halbbyte mit dem nächsten Wort verkettet, um den nächsten Zeiger herzustellen, und so weiter, bis die betreffende Information abgefragt sind.
5. Einrichtung nach einem der Ansprüche 1 bis 4, dadurch gekennzeichnet, daß zumindest einer der Speicher ein Speicher mit wahlfreiem Zugriff (RAM-Speicher) ist.
6. Einrichtung nach einem der Ansprüche 1 bis 5, dadurch gekennzeichnet, daß die Felder variable Teile des Pakets beinhalten, und daß der zumindest eine Teil der feste Teil des Pakets ist.
7. Einrichtung nach einem der Ansprüche 2 bis 6, dadurch gekennzeichnet, daß sie zwei der Speicher (6, 8) umfaßt, die mit im Parallelbetrieb arbeitenden Steuereinheiten (5, 7) verbunden sind, wobei einer dieser Speicher (8) die Quellenadressen-Informationen speichert und der andere dieser zwei Speicher die Zieladressen-Informationen speichert.
8. Einrichtung nach Anspruch 6, dadurch gekennzeichnet, daß die sich auf die Zieladresse beziehenden Informationen die Pfaddaten beinhalten, die sich auf die zuständige Zielstelle beziehen.
9. Einrichtung nach einem der Ansprüche 1 bis 8, dadurch gekennzeichnet, daß der Microcode-Controller (3) die folgenden Komponenten umfaßt: einen Schnittstellen-Speicher (21) zum Empfang der ankommenden Pakete, einen Stations-Informationsblock-Speicher (20) zum Speichern der sich auf Endstationen beziehenden Informationen, und einen Microcode-Speicher (4) zum Speichern von Microcode-Befehlen.
10. Einrichtung nach Anspruch 9, dadurch gekennzeichnet, daß der Microcode-Controller (3) den Rest des Paket-Nachrichtenkopfes zergliedert, wobei sie einen bestimmten Befehlssatz beim Abfragen der Informationen aus den Speichern verwendet.
11. Einrichtung nach Anspruch 10, dadurch gekennzeichnet, daß der Microcode-Controller selbständige Busse für Befehle und Daten umfaßt.
12. Einrichtung nach Anspruch 11, dadurch gekennzeichnet, daß der Microcode-Controller (3) ferner Mittel zur Durchführung von optimalierten Befehlen umfaßt, die logische Vergleiche auf dem Bit-Niveau durchführen sowie bedingte Verzweigungen innerhalb desselben Zyklus und andere Befehle, die zum Abfragen von Daten aus Halbbyte-Index- Datenstruktur bestimmt sind.
13. Einrichtung nach Anspruch 12, dadurch gekennzeichnet, daß die Microcode-Steuereinheit in der Form eines ASIC-Prozessors eingesetzt wird.
14. Verfahren zur Zergliederung von Paketen in einem paketorientierten Datenübertragungsnetz, wobei die Pakete Paket-Nachrichtenköpfe umfassen, die sich in Felder gliedern, welche die auf diese Pakete bezogene Informationen darstellenden Werte beinhalten, das ferner das Speichern von Informationen, die sich auf die möglichen Werte der Felder beziehen, das Aufnehmen von Feldern von den Paket-Nachrichtenköpfen der ankommenden Pakete, und das Abfragen - durch eine Suchmaschine - von gespeicherten, einem erhaltenen Feldwert entsprechenden Informationen umfaßt, dadurch gekennzeichnet, daß diese Informationen aus einem in einer hierarchischen Baumstruktur organisierten Speicher unter der Steuerung eines Microcode-Controllers abgefragt werden, wobei der Microcode-Controller das Bitmuster-Erkennen in zumindest einem Teil des Pakets durchführt.
15. Verfahren nach Anspruch 14, dadurch gekennzeichnet, daß in jedem Entscheidungspunkt der Baumstruktur beim Abfragen der Informationen das aktuelle Feld mit einem bekannten Wert oder Bereich verglichen wird, der aktuelle Feldzeiger versetzt und in einen neuen Code verzweigt wird, falls der Vergleich zu der ersten logischen Bedingung führt, während das aktuelle Feld mit einem anderen Wert oder Bereich verglichen wird, falls der Vergleich zur zweiten logischen Bedingung führt, und so weiter, bis der Vergleich zur ersten logischen Bedingung führt.
16. Verfahren nach Anspruch 14 oder 15, dadurch gekennzeichnet, daß zumindest einer der in Baumstruktur organisierten Speicher mit Hilfe der Halbbyte-Indexierung durchgesucht wird.
17. Verfahren nach Anspruch 16, dadurch gekennzeichnet, daß das erste Halbbyte des ankommenden Feldwertes mit einem Wurzelzeiger verkettet wird, um einen Index einer Wurzelzeiger-Anordnung zu erhalten, und ferner ein Wort in einer durch den Index identifizierten Stelle aufgesucht wird, das nächste Halbbyte mit dem nächsten Wort verkettet wird, um den nächsten Zeiger herzustellen, und so weiter, bis diese betreffenden Informationen abgefragt sind.
18. Verfahren nach einem der Ansprüche 14 bis 17, dadurch gekennzeichnet, daß der zumindest eine Teil ein fester Teil des Pakets ist.
19. Verfahren nach einem der Ansprüche 14 bis 17, dadurch gekennzeichnet, daß die Felder variable Teile des Pakets darstellen.
20. Verfahren nach Anspruch 19, dadurch gekennzeichnet, daß die Felder Adressenfelder umfassen.
21. Verfahren nach Anspruch 20, dadurch gekennzeichnet, daß eines der Felder eine Zieladresse beinhaltet, und die Informationen Pfaddaten umfassen, die mit der entsprechenden Zieladresse zusammenhängen, und ein anderes der Felder eine Quellenadresse beinhaltet.
DE69425757T 1993-12-24 1994-12-21 Sucheinrichtung für paketnetzwerk Expired - Lifetime DE69425757T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB939326476A GB9326476D0 (en) 1993-12-24 1993-12-24 Network
PCT/CA1994/000695 WO1995018497A1 (en) 1993-12-24 1994-12-21 Look-up engine for packet-based network

Publications (2)

Publication Number Publication Date
DE69425757D1 DE69425757D1 (de) 2000-10-05
DE69425757T2 true DE69425757T2 (de) 2001-04-19

Family

ID=10747243

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69425757T Expired - Lifetime DE69425757T2 (de) 1993-12-24 1994-12-21 Sucheinrichtung für paketnetzwerk

Country Status (8)

Country Link
US (1) US5917821A (de)
EP (1) EP0736236B1 (de)
JP (1) JPH09511105A (de)
AU (1) AU703464B2 (de)
CA (1) CA2179613A1 (de)
DE (1) DE69425757T2 (de)
GB (1) GB9326476D0 (de)
WO (1) WO1995018497A1 (de)

Families Citing this family (153)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19629765A1 (de) * 1996-07-23 1998-01-29 Siemens Ag Verfahren zur Adreßreduktion in ATM-Vermittlungssystemen
US6163392A (en) 1997-05-23 2000-12-19 Ciena Corporation Distributed intelligence wavelength division multiplexed network
US6185207B1 (en) * 1997-06-19 2001-02-06 International Business Machines Corporation Communication system having a local area network adapter for selectively deleting information and method therefor
US6172980B1 (en) * 1997-09-11 2001-01-09 3Com Corporation Multiple protocol support
US6363067B1 (en) 1997-09-17 2002-03-26 Sony Corporation Staged partitioned communication bus for a multi-port bridge for a local area network
US6446173B1 (en) 1997-09-17 2002-09-03 Sony Corporation Memory controller in a multi-port bridge for a local area network
US6308218B1 (en) 1997-09-17 2001-10-23 Sony Corporation Address look-up mechanism in a multi-port bridge for a local area network
US6442168B1 (en) 1997-09-17 2002-08-27 Sony Corporation High speed bus structure in a multi-port bridge for a local area network
US6301256B1 (en) 1997-09-17 2001-10-09 Sony Corporation Selection technique for preventing a source port from becoming a destination port in a multi-port bridge for a local area network
US6617879B1 (en) 1997-09-17 2003-09-09 Sony Corporation Transparently partitioned communication bus for multi-port bridge for a local area network
US6738384B1 (en) 1997-09-17 2004-05-18 Sony Corporation Technique for optimizing cut-through for broadcast and multi-cast packets in a multi-port bridge for a local area network
US6175867B1 (en) * 1998-03-23 2001-01-16 Mci World Com, Inc. System and method for managing networks addressed via common network addresses
US6256307B1 (en) * 1998-03-27 2001-07-03 Hewlett-Packard Co. Local area network receive filter
US6700891B1 (en) * 1998-06-25 2004-03-02 Cisco Technology, Inc. Apparatus and method for providing a device level security mechanism in a network
US6876653B2 (en) * 1998-07-08 2005-04-05 Broadcom Corporation Fast flexible filter processor based architecture for a network device
US6308219B1 (en) * 1998-07-31 2001-10-23 Cisco Technology, Inc. Routing table lookup implemented using M-trie having nodes duplicated in multiple memory banks
US7133400B1 (en) * 1998-08-07 2006-11-07 Intel Corporation System and method for filtering data
US7333484B2 (en) * 1998-08-07 2008-02-19 Intel Corporation Services processor having a packet editing unit
GB2340701B (en) * 1998-08-15 2003-06-25 Roke Manor Research Programmable packet header processor
US6359886B1 (en) * 1998-08-17 2002-03-19 Compaq Computer Corporation Method and apparatus for filtering and routing communications frames
JP3735471B2 (ja) * 1998-10-05 2006-01-18 株式会社日立製作所 パケット中継装置およびlsi
JP3228249B2 (ja) * 1998-12-04 2001-11-12 日本電気株式会社 ルータ装置
US7899052B1 (en) * 1999-01-27 2011-03-01 Broadcom Corporation Memory structure for resolving addresses in a packet-based network switch
KR20000054938A (ko) * 1999-02-01 2000-09-05 서평원 이더넷 정합장치의 패킷 처리장치 및 방법
US6192051B1 (en) * 1999-02-26 2001-02-20 Redstone Communications, Inc. Network router search engine using compressed tree forwarding table
ATE495500T1 (de) * 1999-06-30 2011-01-15 Apptitude Inc Verfahren und vorrichtung zur überwachung des verkehrs in einem netzwerk
US6789116B1 (en) 1999-06-30 2004-09-07 Hi/Fn, Inc. State processor for pattern matching in a network monitor device
US6771646B1 (en) 1999-06-30 2004-08-03 Hi/Fn, Inc. Associative cache structure for lookups and updates of flow records in a network monitor
US6553029B1 (en) * 1999-07-09 2003-04-22 Pmc-Sierra, Inc. Link aggregation in ethernet frame switches
US6427169B1 (en) * 1999-07-30 2002-07-30 Intel Corporation Parsing a packet header
US7310688B1 (en) 1999-08-30 2007-12-18 Ciena Corporation Relative addressing for network elements
JP3643507B2 (ja) * 1999-09-20 2005-04-27 株式会社東芝 パケット処理装置及びパケット処理方法
US6631419B1 (en) * 1999-09-22 2003-10-07 Juniper Networks, Inc. Method and apparatus for high-speed longest prefix and masked prefix table search
US6625152B1 (en) * 1999-10-13 2003-09-23 Cisco Technology, Inc. Methods and apparatus for transferring data using a filter index
US6779043B1 (en) * 1999-11-16 2004-08-17 National Semiconductor Corporation Network address manager
US6711153B1 (en) * 1999-12-13 2004-03-23 Ascend Communications, Inc. Route lookup engine
SE9904685D0 (sv) * 1999-12-17 1999-12-17 Switchcore Ab A programmable packet decoder
US6697873B1 (en) * 1999-12-20 2004-02-24 Zarlink Semiconductor V.N., Inc. High speed MAC address search engine
US6961337B2 (en) * 2000-01-06 2005-11-01 International Business Machines Corporation Interleaved processing system for processing frames within a network router
US6807585B2 (en) * 2001-02-22 2004-10-19 Ati Technologies, Inc. Method and system for parsing section data
US6988238B1 (en) 2000-01-24 2006-01-17 Ati Technologies, Inc. Method and system for handling errors and a system for receiving packet stream data
US7366961B1 (en) * 2000-01-24 2008-04-29 Ati Technologies, Inc. Method and system for handling errors
US6810031B1 (en) 2000-02-29 2004-10-26 Celox Networks, Inc. Method and device for distributing bandwidth
US7000034B2 (en) * 2000-03-02 2006-02-14 Agere Systems Inc. Function interface system and method of processing issued functions between co-processors
US6988235B2 (en) * 2000-03-02 2006-01-17 Agere Systems Inc. Checksum engine and a method of operation thereof
US6850516B2 (en) * 2000-03-02 2005-02-01 Agere Systems Inc. Virtual reassembly system and method of operation thereof
US7200684B1 (en) * 2000-04-13 2007-04-03 International Business Machines Corporation Network data packet classification and demultiplexing
US6798777B1 (en) * 2000-04-17 2004-09-28 Juniper Networks, Inc. Filtering and route lookup in a switching device
US7688727B1 (en) 2000-04-17 2010-03-30 Juniper Networks, Inc. Filtering and route lookup in a switching device
US7215637B1 (en) 2000-04-17 2007-05-08 Juniper Networks, Inc. Systems and methods for processing packets
US6574195B2 (en) * 2000-04-19 2003-06-03 Caspian Networks, Inc. Micro-flow management
US7075926B2 (en) * 2000-05-24 2006-07-11 Alcatel Internetworking, Inc. (Pe) Programmable packet processor with flow resolution logic
US6711661B1 (en) 2000-06-29 2004-03-23 Motorola, Inc. Method and apparatus for performing hierarchical address translation
US7111071B1 (en) * 2000-06-29 2006-09-19 Intel Corporation Longest prefix match for IP routers
US7373425B2 (en) * 2000-08-22 2008-05-13 Conexant Systems, Inc. High-speed MAC address search engine
US6854117B1 (en) 2000-10-31 2005-02-08 Caspian Networks, Inc. Parallel network processor array
JP4151217B2 (ja) * 2000-12-15 2008-09-17 沖電気工業株式会社 データグラム転送装置
US7069422B2 (en) * 2000-12-22 2006-06-27 Modelski Richard P Load-shift carry instruction
AU2002253900A1 (en) * 2001-02-06 2002-08-19 Atlantic Technology Ventures, Inc. Superconducting packet switch
US20020141378A1 (en) * 2001-03-28 2002-10-03 Bays Robert James Methods, apparatuses and systems facilitating deployment, support and configuration of network routing policies
US7139242B2 (en) * 2001-03-28 2006-11-21 Proficient Networks, Inc. Methods, apparatuses and systems facilitating deployment, support and configuration of network routing policies
US7292586B2 (en) * 2001-03-30 2007-11-06 Nokia Inc. Micro-programmable protocol packet parser and encapsulator
US6751627B2 (en) * 2001-07-23 2004-06-15 Networks Associates Technology, Inc. Method and apparatus to facilitate accessing data in network management protocol tables
DE10147419A1 (de) * 2001-09-26 2003-04-24 Siemens Ag Verfahren zur Erstellung einer dynamischen Adresstabelle für einen Koppelknoten in einem Datennetz und Verfahren zur Übertragung eines Datentelegramms
US7065083B1 (en) * 2001-10-04 2006-06-20 Cisco Technology, Inc. Method and apparatus for dynamically generating lookup words for content-addressable memories
US7389360B1 (en) * 2001-11-05 2008-06-17 Juniper Networks, Inc. Context switched route lookup key engine
US6968393B1 (en) * 2001-11-19 2005-11-22 Redback Networks, Inc. Method and apparatus for an attribute oriented routing update
US7421515B2 (en) * 2002-01-17 2008-09-02 Hewlett-Packard Development Company, L.P. Method and system for communications network
US7737134B2 (en) * 2002-03-13 2010-06-15 The Texas A & M University System Anticancer agents and use
US6972978B1 (en) 2002-03-15 2005-12-06 Integrated Device Technology, Inc. Content addressable memory (CAM) devices with block select and pipelined virtual sector look-up control and methods of operating same
US6867991B1 (en) 2003-07-03 2005-03-15 Integrated Device Technology, Inc. Content addressable memory devices with virtual partitioning and methods of operating the same
US20030185220A1 (en) * 2002-03-27 2003-10-02 Moshe Valenci Dynamically loading parsing capabilities
US7688823B2 (en) * 2002-06-04 2010-03-30 Alcatel-Lucent Usa Inc. Efficient mechanism for wire-tapping network traffic
US7508825B2 (en) * 2002-08-05 2009-03-24 Intel Corporation Data packet classification
US7689485B2 (en) * 2002-08-10 2010-03-30 Cisco Technology, Inc. Generating accounting data based on access control list entries
US7724740B1 (en) * 2002-08-27 2010-05-25 3Com Corporation Computer system and network interface supporting class of service queues
US7894480B1 (en) * 2002-08-27 2011-02-22 Hewlett-Packard Company Computer system and network interface with hardware based rule checking for embedded firewall
US7616662B2 (en) * 2002-09-06 2009-11-10 Infineon Technologies Ag Parser for parsing data packets
US7254696B2 (en) * 2002-12-12 2007-08-07 Alacritech, Inc. Functional-level instruction-set computer architecture for processing application-layer content-service requests such as file-access requests
US7093099B2 (en) * 2002-12-12 2006-08-15 Alacritech, Inc. Native lookup instruction for file-access processor searching a three-level lookup cache for variable-length keys
JP4108524B2 (ja) * 2003-04-14 2008-06-25 日本電気株式会社 Atmブリッジ装置及びatmブリッジにおけるループ検出方法
US7801980B1 (en) 2003-05-12 2010-09-21 Sourcefire, Inc. Systems and methods for determining characteristics of a network
US7082493B1 (en) 2003-10-31 2006-07-25 Integrated Device Technology, Inc. CAM-based search engines and packet coprocessors having results status signaling for completed contexts
US7539681B2 (en) 2004-07-26 2009-05-26 Sourcefire, Inc. Methods and systems for multi-pattern searching
US7496962B2 (en) * 2004-07-29 2009-02-24 Sourcefire, Inc. Intrusion detection strategies for hypertext transport protocol
US7460544B2 (en) * 2004-12-29 2008-12-02 Intel Corporation Flexible mesh structure for hierarchical scheduling
US7548563B1 (en) * 2005-04-01 2009-06-16 Marvell International Ltd. Data transmission using address encoding
US7325074B2 (en) * 2005-09-28 2008-01-29 Cisco Technology, Inc. Incremental compilation of packet classifications using fragmented tables
US7733803B2 (en) * 2005-11-14 2010-06-08 Sourcefire, Inc. Systems and methods for modifying network map attributes
US8046833B2 (en) * 2005-11-14 2011-10-25 Sourcefire, Inc. Intrusion event correlation with network discovery information
US8547843B2 (en) * 2006-01-20 2013-10-01 Saisei Networks Pte Ltd System, method, and computer program product for controlling output port utilization
US20070171825A1 (en) * 2006-01-20 2007-07-26 Anagran, Inc. System, method, and computer program product for IP flow routing
US7726309B2 (en) * 2006-06-05 2010-06-01 Ric Investments, Llc Flexible connector
EP1871038B1 (de) * 2006-06-23 2010-06-02 Nippon Office Automation Co., Ltd. Protokoll- und Sitzunganalysator
US8717911B2 (en) 2006-06-30 2014-05-06 Centurylink Intellectual Property Llc System and method for collecting network performance information
US7948909B2 (en) 2006-06-30 2011-05-24 Embarq Holdings Company, Llc System and method for resetting counters counting network performance information at network communications devices on a packet network
US8289965B2 (en) 2006-10-19 2012-10-16 Embarq Holdings Company, Llc System and method for establishing a communications session with an end-user based on the state of a network connection
US8184549B2 (en) 2006-06-30 2012-05-22 Embarq Holdings Company, LLP System and method for selecting network egress
US8194643B2 (en) 2006-10-19 2012-06-05 Embarq Holdings Company, Llc System and method for monitoring the connection of an end-user to a remote network
US8000318B2 (en) 2006-06-30 2011-08-16 Embarq Holdings Company, Llc System and method for call routing based on transmission performance of a packet network
US9094257B2 (en) 2006-06-30 2015-07-28 Centurylink Intellectual Property Llc System and method for selecting a content delivery network
US8488447B2 (en) 2006-06-30 2013-07-16 Centurylink Intellectual Property Llc System and method for adjusting code speed in a transmission path during call set-up due to reduced transmission performance
US7948988B2 (en) * 2006-07-27 2011-05-24 Sourcefire, Inc. Device, system and method for analysis of fragments in a fragment train
US7701945B2 (en) 2006-08-10 2010-04-20 Sourcefire, Inc. Device, system and method for analysis of segments in a transmission control protocol (TCP) session
US8274905B2 (en) 2006-08-22 2012-09-25 Embarq Holdings Company, Llc System and method for displaying a graph representative of network performance over a time period
US8194555B2 (en) 2006-08-22 2012-06-05 Embarq Holdings Company, Llc System and method for using distributed network performance information tables to manage network communications
US8064391B2 (en) 2006-08-22 2011-11-22 Embarq Holdings Company, Llc System and method for monitoring and optimizing network performance to a wireless device
US8144587B2 (en) 2006-08-22 2012-03-27 Embarq Holdings Company, Llc System and method for load balancing network resources using a connection admission control engine
US7843831B2 (en) 2006-08-22 2010-11-30 Embarq Holdings Company Llc System and method for routing data on a packet network
US8619600B2 (en) 2006-08-22 2013-12-31 Centurylink Intellectual Property Llc System and method for establishing calls over a call path having best path metrics
US8223655B2 (en) 2006-08-22 2012-07-17 Embarq Holdings Company, Llc System and method for provisioning resources of a packet network based on collected network performance information
US8189468B2 (en) 2006-10-25 2012-05-29 Embarq Holdings, Company, LLC System and method for regulating messages between networks
US8130793B2 (en) 2006-08-22 2012-03-06 Embarq Holdings Company, Llc System and method for enabling reciprocal billing for different types of communications over a packet network
US8144586B2 (en) 2006-08-22 2012-03-27 Embarq Holdings Company, Llc System and method for controlling network bandwidth with a connection admission control engine
US8224255B2 (en) 2006-08-22 2012-07-17 Embarq Holdings Company, Llc System and method for managing radio frequency windows
US8576722B2 (en) 2006-08-22 2013-11-05 Centurylink Intellectual Property Llc System and method for modifying connectivity fault management packets
US8125897B2 (en) 2006-08-22 2012-02-28 Embarq Holdings Company Lp System and method for monitoring and optimizing network performance with user datagram protocol network performance information packets
US9479341B2 (en) 2006-08-22 2016-10-25 Centurylink Intellectual Property Llc System and method for initiating diagnostics on a packet network node
US8743703B2 (en) 2006-08-22 2014-06-03 Centurylink Intellectual Property Llc System and method for tracking application resource usage
US8102770B2 (en) 2006-08-22 2012-01-24 Embarq Holdings Company, LP System and method for monitoring and optimizing network performance with vector performance tables and engines
US8015294B2 (en) 2006-08-22 2011-09-06 Embarq Holdings Company, LP Pin-hole firewall for communicating data packets on a packet network
US8750158B2 (en) 2006-08-22 2014-06-10 Centurylink Intellectual Property Llc System and method for differentiated billing
US8040811B2 (en) 2006-08-22 2011-10-18 Embarq Holdings Company, Llc System and method for collecting and managing network performance information
US8199653B2 (en) 2006-08-22 2012-06-12 Embarq Holdings Company, Llc System and method for communicating network performance information over a packet network
US8307065B2 (en) 2006-08-22 2012-11-06 Centurylink Intellectual Property Llc System and method for remotely controlling network operators
US7940735B2 (en) 2006-08-22 2011-05-10 Embarq Holdings Company, Llc System and method for selecting an access point
US8098579B2 (en) 2006-08-22 2012-01-17 Embarq Holdings Company, LP System and method for adjusting the window size of a TCP packet through remote network elements
US8549405B2 (en) 2006-08-22 2013-10-01 Centurylink Intellectual Property Llc System and method for displaying a graphical representation of a network to identify nodes and node segments on the network that are not operating normally
US8537695B2 (en) 2006-08-22 2013-09-17 Centurylink Intellectual Property Llc System and method for establishing a call being received by a trunk on a packet network
US8107366B2 (en) 2006-08-22 2012-01-31 Embarq Holdings Company, LP System and method for using centralized network performance tables to manage network communications
US8531954B2 (en) 2006-08-22 2013-09-10 Centurylink Intellectual Property Llc System and method for handling reservation requests with a connection admission control engine
US7684332B2 (en) 2006-08-22 2010-03-23 Embarq Holdings Company, Llc System and method for adjusting the window size of a TCP packet through network elements
US8407765B2 (en) 2006-08-22 2013-03-26 Centurylink Intellectual Property Llc System and method for restricting access to network performance information tables
US8238253B2 (en) 2006-08-22 2012-08-07 Embarq Holdings Company, Llc System and method for monitoring interlayer devices and optimizing network performance
US8228791B2 (en) 2006-08-22 2012-07-24 Embarq Holdings Company, Llc System and method for routing communications between packet networks based on intercarrier agreements
CA2672908A1 (en) * 2006-10-06 2008-04-17 Sourcefire, Inc. Device, system and method for use of micro-policies in intrusion detection/prevention
US8069352B2 (en) 2007-02-28 2011-11-29 Sourcefire, Inc. Device, system and method for timestamp analysis of segments in a transmission control protocol (TCP) session
US8806059B1 (en) * 2007-04-05 2014-08-12 Juniper Networks, Inc. Rule tree for network device
US8127353B2 (en) * 2007-04-30 2012-02-28 Sourcefire, Inc. Real-time user awareness for a computer network
US7724684B2 (en) 2007-05-24 2010-05-25 Modelware, Inc. System and method for designing and implementing packet processing products
US8111692B2 (en) 2007-05-31 2012-02-07 Embarq Holdings Company Llc System and method for modifying network traffic
US8683572B1 (en) 2008-01-24 2014-03-25 Dunti Llc Method and apparatus for providing continuous user verification in a packet-based network
US8068425B2 (en) 2008-04-09 2011-11-29 Embarq Holdings Company, Llc System and method for using network performance information to determine improved measures of path states
US8474043B2 (en) * 2008-04-17 2013-06-25 Sourcefire, Inc. Speed and memory optimization of intrusion detection system (IDS) and intrusion prevention system (IPS) rule processing
US8356125B1 (en) * 2008-05-15 2013-01-15 Xilinx, Inc. Method and apparatus for providing a channelized buffer
US8272055B2 (en) 2008-10-08 2012-09-18 Sourcefire, Inc. Target-based SMB and DCE/RPC processing for an intrusion detection system or intrusion prevention system
JP5809238B2 (ja) 2010-04-16 2015-11-10 シスコ テクノロジー,インコーポレイテッド 準リアルタイムネットワーク攻撃検出のためのシステムおよび方法、ならびに検出ルーティングによる統合検出のためのシステムおよび方法
US8433790B2 (en) 2010-06-11 2013-04-30 Sourcefire, Inc. System and method for assigning network blocks to sensors
US8671182B2 (en) 2010-06-22 2014-03-11 Sourcefire, Inc. System and method for resolving operating system or service identity conflicts
KR101747079B1 (ko) 2011-02-17 2017-06-14 세이블 네트웍스 인코포레이티드 하이 레이트 분산 서비스 거부(DDoS) 공격을 검출하고 완화하는 방법 및 시스템
US8601034B2 (en) 2011-03-11 2013-12-03 Sourcefire, Inc. System and method for real time data awareness
US8902890B2 (en) 2011-05-27 2014-12-02 International Business Machines Corporation Memory saving packet modification
WO2013173244A1 (en) 2012-05-14 2013-11-21 Sable Networks, Inc. System and method for ensuring subscriber fairness using outlier detection

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5095480A (en) * 1989-06-16 1992-03-10 Fenner Peter R Message routing system for shared communication media networks
US5088090A (en) * 1990-01-31 1992-02-11 Rad Network Devices Ltd. Routing system to interconnect local area networks
WO1994001828A1 (en) * 1992-07-02 1994-01-20 Wellfleet Communications Data packet processing method and apparatus

Also Published As

Publication number Publication date
DE69425757D1 (de) 2000-10-05
EP0736236B1 (de) 2000-08-30
AU703464B2 (en) 1999-03-25
WO1995018497A1 (en) 1995-07-06
GB9326476D0 (en) 1994-02-23
JPH09511105A (ja) 1997-11-04
EP0736236A1 (de) 1996-10-09
AU1270095A (en) 1995-07-17
US5917821A (en) 1999-06-29
CA2179613A1 (en) 1995-07-06

Similar Documents

Publication Publication Date Title
DE69425757T2 (de) Sucheinrichtung für paketnetzwerk
DE69324204T2 (de) Aufsuchen von Adressen bei Paketübertragung mittels Hashing und eines inhaltsadressierten Speichers
DE69319757T2 (de) Verfahren zur Verbindung einer Leitungskarte mit einer Adressenerkennungseinheit
DE69331672T2 (de) Adressenerkennungsvorrichtung
DE69434330T2 (de) Übertragungsvorrichtgung und verfahren
DE69229473T2 (de) Verfahren und vorrichtung zum puffern von daten in nachrichtennetzwerkstationen
DE60305035T2 (de) Anpassen des längsten präfix unter verwendung von baumartigen &#34;bitmap&#34; datenstrukturen
DE60026676T2 (de) Paketklassifizierungsautomat
DE69330675T2 (de) Verbesserte Paketstruktur für Netzschicht
DE60221030T2 (de) Verfahren, einrichtung und rechnerprogramm für die entkapselung und verkapselung von paketen mit mehreren kopffeldern
DE69834122T2 (de) Verbindingsunterstützung in einer hochleistungsnetzwerkvorrichtung
DE69325557T2 (de) Paketformat in Knotenpunkt für ein Datenübertragungssystem
DE60120790T2 (de) Methode und gerät zum durchsuchen von tabellen in hoher geschwindigkeit
DE69033517T2 (de) Suchvorgang innerhalb einer Datenbasis durch komprimierte Präfixassoziation
DE69422935T2 (de) Verfahren und vorrichtung zum vergleichen von datensequenzen variabler länge
DE60214670T2 (de) Verfahren und vorrichtung zur leitweglenkungstabellenverwaltung
DE3854361T2 (de) Programmierbare Protokollvorrichtung.
DE60222622T2 (de) Verfahren und Vorrichtung zur Paketkopfteilverarbeitung
DE60015186T2 (de) Verfahren und system für rahmen- und protokollklassifikation
DE60216938T2 (de) Gleichzeitiges durchsuchen verschiedener tabellen in einem inhaltsadressierbaren speicher
DE69927109T2 (de) Speicher zur Informationssuche durch Präfixanalyse für Knoten von Hochgeschwindigkeitsnetzen
DE60029467T2 (de) Netzwerkschalter und komponenten und betriebsverfahren
DE60021846T2 (de) Leitweglenkungsanordnung
DE69823483T2 (de) Mehrfachkopiewarteschlangestruktur mit einem suchbaren cachespeicherbereich
DE69829645T2 (de) Verfahren zur Änderung von dynamischen Entscheidungsbäume

Legal Events

Date Code Title Description
8327 Change in the person/name/address of the patent owner

Owner name: ALCATEL CANADA INC., KANATA, ONTARIO, CA

8364 No opposition during term of opposition