-
HINTERGRUND
DER ERFINDUNG
-
Gebiet der Erfindung
-
Diese
Erfindung betrifft allgemein Netzwerkprozessor-Einheiten und insbesondere
einen Mechanismus zur Verteilung der Verarbeitung auf mehrere Universalprozessoren
(d.h. Steuerpunktprozessoren).
-
Erläuterung
zum Stand der Technik
-
1 zeigt
eine typische Netzwerkkonfiguration 10, die eine einzelne
Universalprozessor- (GPP) Steuereinheit 15 enthält, die
viele Netzwerkprozessor-Einheiten 25a, ..., 25n steuert.
Eine Verarbeitungsengstelle entsteht häufig in dem System 10 an
dem GPP, da der GPP alle speziellen Datenpakettypen (Rahmentypen)
verarbeitet (z.B. Punkt-zu-Punkt- (PPP) Steuerrahmen oder unbekannte
Rahmen).
-
2 veranschaulicht
eine stärker
verteilte Netzwerkkonfiguration, bei der eine Vielzahl von Universalprozessor-Steuereinheiten 15a,
..., 15n eingesetzt werden. Damit bei dieser Konfiguration
ein Netzwerkprozessor einen bestimmten Rahmentyp an einen GPP zur
Verarbeitung weiterleitet, benötigt
jeder GPP Protokollstapel für
jedes Protokoll, das er verarbeiten muss, da die Netzwerkprozessoren
nicht entschlüsseln
können,
wie ein bestimmter Rahmen an einen speziellen GPP zu senden ist.
Eine Forderung, dass jeder GPP einen vollständigen Protokollstapel für jedes
Protokoll, das von dem Netzwerkprozessor verarbeitet wird, besitzen
muss, vergrößert den
Speicherbedarf und verringert die Leistungsfähigkeit.
-
Das
US-Patent 5 734 830, das am 31. März 1998 erteilt wurde, offenbart
ein Mehrgeräte-Leitverfahren und
eine Masterstation mit kundenspezifisch angepassten virtuellen Anschlüssen, die
durch eine Wähleinheit (polling
unit) gemäß einem
Verknüpfungsadressen-Kopfsatz
ausgewählt
werden, der eine geeignete Nebenstation kennzeichnet, an die die
Datennachricht geliefert werden soll, so dass außerdem ein Netzwerkgerätetyp (NET)
automatisch gekennzeichnet wird. Das Leitverfahren und die Masterstation
dienen zur kundenspezifischen Anpassung von Funktionen, die typischerweise
in den Schichten 1 bis 3 des Verbindungsmodells OSI für offene
Systeme vorhanden sind, so dass zwischen unterschiedlichen Netzwerkgerätetypen
eine Kommunikation erfolgen kann, wie z.B. zwischen Geräten des
System-Netzwerkarchitekturtyps (SNA-Typ) und Geräten des Nicht-SNA-Typs.
-
Zusammenfassung
der Erfindung
-
Die
Erfindung stellt demzufolge ein System zur Verteilung der Verarbeitung
von speziellen Datenrahmen bereit, die in einer verteilten Netzumgebung
von einer Netzwerkprozessor-Einheit (NP-Einheit) empfangen werden,
die einen oder mehrere Universal-Steuerungsprozessoren (GPP) umfasst,
die wenigstens eine NP-Einheit steuern, wobei das System umfasst:
eine konfigurierbare Tabelle, die in der wenigstens einen NP-Einheit realisiert
ist, um spezielle Datenrahmen-Typen abzubilden, die an der NP-Einheit
mit einer Zieladresse und einer Zielanschlussadresse empfangen werden,
die einem Ziel-GPP
zugeordnet sind, der für
die Verarbeitung des speziellen Rahmentyps geeignet ist; und eine
Anwendungsprogrammierungs-Schnittstelle für die anwenderspezifische
Anpassung der konfigurierbaren Tabelle in der NP-Einheit an die
Zieladressen- und Zielanschlussadressen-Einträge durch einen GPP; wobei der
Netzwerkprozessor NP ferner einen Mechanismus enthält, um die
empfangenen Datenrahmen zu klassifizieren und jeden dieser Rahmen
mit Einträgen in
der konfigurierbaren Tabelle zu vergleichen, und wobei die Netzwerkprozessor-Einheit ein Mittel
enthält,
das auf den klassifizierten Rahmentyp reagiert, der einen entsprechenden
Eintrag in der Tabelle aufweist, um den Rahmen über eine entsprechende Zielanschlussadresse
an den Ziel-GPP weiterzuleiten, wobei der Ziel-GPP zur Verarbeitung/Weiterleitung
von Datenrahmen des speziellen Typs vorgesehen ist.
-
Gemäß einer
bevorzugten Ausführungsform
wird in einer verteilten Netzumgebung eine GPP-Konfiguration bereitgestellt,
die die Notwendigkeit beseitigt, bei jeder GPP-Einheit einen vollständigen Satz
von Protokollstapeln vorzuhalten.
-
Vorzugsweise
wird ein Mechanismus zum Konfigurieren von GPPs in einer verteilten
Netzumgebung bereitgestellt, um spezifische spezielle Rahmentypen
zu verarbeiten und um die Möglichkeit
zu schaffen, spezielle Rahmentypen durch einen Netzwerkprozessor
an einen spezifischen, konfigurierten GPP zu verteilen.
-
Ferner
werden eine Anwendungsprogrammierungs-Schnittstelle (API) und ein
Verfahren bereitgestellt, um eine Verarbeitung auf mehrere Universal-Prozessoren
(d.h. Steuerpunkt-Prozessoren)
zu verteilen und um die Möglichkeit
zu schaffen, dass ein Netzwerkprozessor festlegt, welcher Prozessor
bestimmte Operationen behandelt.
-
In
einem weiteren Aspekt stellt die Erfindung ein Verfahren zur Verteilung
der Verarbeitung von speziellen Datenrahmen bereit, die in einer
verteilten Netzumgebung von einem Netzwerkprozessor (NP) empfangen
werden, der einen oder mehrere Universal-Steuerungsprozessoren (GPP)
umfasst, die eine oder mehrere NP-Einheiten steuern, wobei das Verfahren
umfasst:
- a) Bereitstellen einer Tabelle, die
in der NP-Einheit realisiert ist, zum Abbilden von speziellen Datenrahmen-Typen,
die an der NP-Einheit mit einer Zieladresse und einer Zielanschlussadresse
empfangen wurden, die einem Ziel-GPP zugeordnet sind, der den speziellen
Rahmentyp verarbeiten kann;
- b) Empfangen eines Datenrahmens eines Datenrahmentyps an dem
Netzwerkprozessor NP;
- c) Klassifizieren der empfangenen Datenrahmen und Vergleichen
von jedem Rahmen mit Einträgen
in der Tabelle; und
- d) wenn der klassifizierte Rahmentyp in der Tabelle einen entsprechenden
Eintrag besitzt, Weiterleiten des speziellen Datenrahmens zu dem
Ziel-GPP über
eine entsprechende Zielanschlussadresse, wobei der Ziel-GPP zur
Verarbeitung/Weiterleitung von speziellen Datenrahmentypen vorgesehen
ist, wobei der Schritt a) den folgenden Schritt enthält: Realisieren
einer Anwendungsprogrammierungs-Schnittstelle
zum Konfigurieren der Tabelle mit der Zieladresse und einer Zielanschlussadresse,
die für
jeden Eintrag eines bestimmten Rahmentyps einem Ziel-GPP zugeordnet
sind.
-
Vorzugsweise
ermöglicht
ein derartiges Verfahren vorteilhaft, dass ein Netzwerkprozessor
die Verarbeitung auf mehrere Universalprozessoren (d.h. Steuerpunktprozessoren)
verteilt, und er schafft die Möglichkeit
zu konfigurieren, welcher Prozessor bestimmte Operationen in einer
großen
Netzumgebung ausführt,
wodurch die Anzahl von Protokollstapeln verringert wird, die bei
jedem Universal-Steuerprozessor unterhalten werden müssen.
-
In
einem weiteren Aspekt stellt die Erfindung eine Anwendungsprogrammierungs-Schnittstelle
zum Konfigurieren einer Netzwerkprozessor-Einheit (NP-Einheit) bereit,
die in einer verteilten Netzwerkumgebung betrieben wird und einen
oder mehrere Universal-Steuerungsprozessoren (GPP) enthält, die
eine oder mehrere NP-Einheiten steuern, wobei die Schnittstelle
umfasst: einen Mechanismus zum Erzeugen einer Datenstruktur zum
Eingeben in die NP-Einheit, wobei die Datenstruktur einen oder mehrere
Einträge
besitzt, die in der Netzwerkumgebung einen bestimmten Rahmentyp
sowie eine zugeordnete Zieladresse und eine Zielanschlussadresse
spezifizieren, die einem GPP zugeordnet sind, der zum Bearbeiten
des speziellen Rahmentyps geeignet ist; und eine Einheit zum Erzeugen
einer kundenspezifisch angepassten Tabelle aus der erzeugten Datenstruktur
und zum Eingeben der kundenspezifisch angepassten Tabelle in einen
Speicher der NP-Einheit,
wodurch nachfolgende Tabellenaufrufe in der Tabelle ausgeführt werden,
um spezielle Rahmentypen über eine
Zielanschlussadresse an einen zugeordneten GPP weiterzuleiten.
-
In
einem weiteren Aspekt stellt die Erfindung eine Programmspeichereinheit
bereit, die von einem Rechner gelesen werden kann und konkret ein
Programm aus Anweisungen beinhaltet, die durch den Rechner ausgeführt werden
können,
um Verfahrensschritte zum Konfigurieren einer in einer verteilten
Netzwerkumgebung betriebenen Netzwerkprozessor-Einheit (NP-Einheit) auszuführen, die
einen oder mehrere Universal-Steuerungsprozessoren
(GPP) enthält,
die eine oder mehrere NP-Einheiten
steuern, wobei die Verfahrensschritte umfassen:
- a)
Erzeugen einer Datenstruktur zum Eingeben in die NP-Einheit, wobei die
Datenstruktur einen oder mehrere Einträge besitzt, die in der Netzwerkumgebung
einen speziellen Datenrahmen-Typ sowie eine zugeordnete Zieladresse
und eine Zielanschlussadresse, die einem GPP zugeordnet sind, spezifizieren,
der zum Verarbeiten des speziellen Rahmentyps geeignet ist; und
- b) Erzeugen einer kundenspezifisch angepassten Tabelle aus der
erzeugten Datenstruktur und Eingeben der kundenspezifisch angepassten
Tabelle in einen Speicher der NP-Einheit, wodurch nachfolgende Tabellenaufrufe
in der Tabelle ausgeführt
werden, um spezielle Rahmentypen über eine Zielanschlussadresse an
einen zugeordneten GPP weiterzuleiten.
-
Die
Datenstruktur enthält
vorzugsweise eine Folge von markierten Listenwerten, wobei jeder
markierte Listenwert ein Attributfeld, das angibt, dass ein bestimmter
Rahmentyp in der Tabelle enthalten sein soll, ein Längenfeld,
das eine Länge
des markierten Listenwerts angibt, und ein Wertfeld zum Spezifizieren
eines Ziels, das mit der Zieladresse und der Zielanschlussadresse
für den
bestimmten Rahmentyp verbunden ist, enthält.
-
Kurzbeschreibung der Zeichnungen
-
Nachfolgend
wird eine bevorzugte Ausführungsform
der vorliegenden Erfindung lediglich beispielhaft sowie unter Bezugnahme
auf die folgenden Zeichnungen beschrieben:
-
1 ist
ein allgemeines Blockschaltbild einer verteilten Netzverarbeitungsumgebung,
die eine Vielzahl von Netzwerkprozessor-Einheiten enthält, die
von einer einzelnen Universalprozessor-Einheit (GPP-Einheit) gesteuert
werden.
-
2 ist
ein allgemeines Blockschaltbild einer verteilten Netzverarbeitungsumgebung,
die eine Vielzahl von Netzwerkprozessor-Einheiten enthält, die
von mehreren Universalprozessor-Einheiten (GPP-Einheiten) gesteuert
werden.
-
3 veranschaulicht
ein Beispiel einer anwenderspezifisch angepassten Tabelle 100 zum
Weiterleiten der speziellen Rahmentypen gemäß einer bevorzugten Ausführungsform
der vorliegenden Erfindung.
-
4 ist
ein Ablaufplan, der zeigt, wie die Verarbeitung gemäß einer
bevorzugten Ausführungsform der
vorliegenden Erfindung auf mehrere Universalprozessoren verteilt
wird.
-
Genaue Beschreibung der
bevorzugten Ausführungsform
-
Gemäß einer
bevorzugten Ausführungsform
wird eine Anwendungsprogrammierungs-Schnittstelle (API) bereitgestellt,
die durch eine Universalprozessor-Steuereinheit (GPP-Steuereinheit) realisiert
ist, die in einer verteilten Netzumgebung (z.B. externer GPP, im
Netzwerkprozessor eingebetteter GPP usw.) betrieben wird, um die
anwenderspezifische Anpassung und die Konfiguration der Netzwerkprozessor-Einheiten (NP-Einheiten)
in der Weise zu ermöglichen,
dass sie das Weiterleiten von speziellen Typen von Datenpaketen (Rahmen)
abwickeln können.
Es erfolgt eine beispielhafte Bezugnahme auf eine prozessorgestützte Netzwerkeinheit
und ein System, die in der im gemeinsamen Besitz befindlichen, gleichzeitig
anhängigen
US-Patentanmeldung
Serien-Nr. 09/384,691, die am 27 August 1999 eingereicht wurde,
mit dem Titel "NETWORK
PROCESSOR PROCESSING COMPLEX AND METHODS" beschrieben sind, deren Kopie sich
in der Akte befindet. Die Erfindung kann jedoch in weiteren prozessorgestützten Netzwerkeinheiten
mit verschiedenen Hardware/Software-Ausführungsformen angewendet werden.
-
Wie
in der oben erwähnten
gleichzeitig anhängigen
US-Patentanmeldung
beschrieben ist, besteht der allgemeine Ablauf für einen Datenrahmen, der an
einer NP-Einheit empfangen wird, im Allgemeinen in Folgendem. Rahmen,
die von einer Netzverbindung, z.B. Ethernet MAC, empfangen werden,
werden entweder als normale Datenrahmen oder als Systemsteuerrahmen
(geleitete Rahmen, Guided Frames) identifiziert. Im Zusammenhang
mit der Ausführungsform
werden Rahmen, die als normale Datenrahmen identifiziert wurden,
für einen
Komplex mit eingebettetem Prozessor (EPC) in Warteschlangen angeordnet,
der eine Vielzahl von Pikoprozessoren, z.B.
-
Protokollprozessoren,
enthält,
die eine Logik (Pikocode) ausführen,
die den empfangenen Rahmenvorsatz betrachten und entscheiden kann,
was mit dem Rahmen geschehen soll (Weiterleiten, Modifizieren, Filtern
usw.). Der EPC hat Zugriff auf verschiedene Nachschlagtabellen,
und eine Klassifizierungshardware hilft, dass die Pikoprozessoren
mit den Anforderungen hoher Bandbreite des Netzwerkprozessors auf
dem Laufenden gehalten werden können.
Insbesondere ist eine Klassifizierungshardware-Hilfseinheit vorgesehen, um
Rahmen mit wohlbekannten Rahmenformaten zu klassifizieren. Der Komplex
mit eingebettetem Prozessor (EPC) stellt insbesondere die Programmierbarkeit
des Chips der NP-Einheit bereit und steuert diese und enthält neben
anderen Komponenten (wie etwa Speicher, Verteiler, Schnittstellen)
eine oder mehrere Verarbeitungseinheiten, die gleichzeitig Pikocode
ausführt,
der in einem gemeinsamen Befehlsspeicher gespeichert ist. Jede Verarbeitungseinheit
enthält
vorzugsweise einen Verarbeitungseinheit-Kern, der z.B. eine dreistufige Pipeline,
Universalregister und eine ALU umfasst. Während des Betriebs werden Klassifizierungsergebnisse von
der Klassifizierungshardware-Hilfseinheit während des Rahmenversands zu
einer oder zu mehreren Verarbeitungseinheiten geleitet. Insbesondere
eine Verarbeitungseinheit, die als Verarbeitungseinrichtung für allgemeine
Daten (General Data Handler, GDH) bezeichnet wird, umfasst eine
Hauptverarbeitungseinheit und eine oder mehrere Nebenverarbeitungseinheiten,
die hauptsächlich
verwendet werden, um gemäß einer
bevorzugten Ausführungsform
der Erfindung Rahmen weiterzuleiten.
-
Die
API der bevorzugten Ausführungsform
wird insbesondere von einer GPP verwendet, um Parameter zu konfigurieren,
die den Pikocode beeinflussen, der ausgeführt wird, wenn ein bestimmter
Netzwerkprozessor bestimmte Pakettypen sendet. Diese API ermöglicht einem
Endanwender, eine anwenderspezifisch angepasste Tabelle zu konfigurieren,
die einen Querbezug zwischen bestimmten Rahmentypen und einem Ziel-GPP
herstellt, der zum Verarbeiten der entsprechenden bestimmten Rahmen
vorgesehen ist. Auf diese Weise wird die Forderung nach dem vorsehen
eines Protokollstapels in jedem GPP vermieden.
-
3 zeigt
eine beispielhafte anwenderspezifisch angepasste Tabelle 100 zum
Weiterleiten der bestimmten Rahmentypen über die API zu einem im Voraus
festgelegten GPP. In der bevorzugten Ausführungsform ist die anwenderspezifisch
angepasste Tabelle 100 eine ebene Tabelle, die in dem Speicher
der NP-Einheit konfiguriert ist und Einträge enthält, die den klassifizierten
speziellen Rahmentypen entsprechen, jedoch nicht auf Folgendes beschränkt sind:
ein Punkt-zu-Punkt- (PPP) Steuertyp 102, unbekannte Datenrahmentypen 105 (d.h.
Rahmen eines Protokolls, das von der NP-Einheit nicht verstanden
wird), IP-Rahmentypen 107 und Rahmen 110 des Wrap-Typs
(d.h. Rahmen, die von einer Vermittlungsstruktur an einer Eingangsseite
des NP empfangen werden). Es ist klar, dass zusätzliche spezielle Rahmentypen,
z.B. Protokolle der Schicht 3, für bestimmte
Zielorte der GPPs in der anwenderspezifisch angepassten Tabelle,
die in 3 dargestellt ist, abgebildet sein können. Es
ist ferner klar, dass die anwenderspezifisch angepasste Tabelle 100 dann,
wenn sie infolge von vielen Rahmentypeinträgen größer ist, in dem Speicher des
NP in Form eines binären
Baums konfiguriert sein kann, um das Nachschlagen in der Tabelle
zu erleichtern. Für
jeden Rahmen, der als ein spezieller Rahmentyp klassifiziert ist,
gibt es einen entsprechenden Eintrag, vorausgesetzt, dass er Folgendes
enthält: eine „Anschlussleisten"-Zieladresse (Target-"blade"-Adresse) 115, d.h. die Adresse
des Elements der gedruckten Leiterplatte, das dem Ziel-GPP zur Verarbeitung
des speziellen Rahmentyps zugeordnet ist; und eine Anschlussadresse 120 der
NP-Einheit, die mit dem Ziel-GPP verbindet. Es ist klar, dass die
Tabelle 100 bei einigen Ausführungsformen zudem zusätzliche
Abbildungsdaten enthält.
-
Bei
der bevorzugten Ausführungsform
wird die anwenderspezifisch anpassbare Tabelle 100 in dem System 100 von
dem GPP über
die API zu jedem Netzwerkprozessor 125a, ..., 125n heruntergeladen.
Es folgt eine beispielhafte API, die zum Konfigurieren der ebenen
Tabelle realisiert ist:
- – np_ims_customizedParms_configure()
- – INPUTS:
– number_TLVs – Anzahl
der TLVs, die in dem Parameter *tlv enthalten sein werden
– tlv -Zeiger
zu einer Zeichenfolge der markierten Liste
– Values (TLVs). Jede TLV besitzt
die folgende Form:
– Attr#
length Value
– Attr#
Attributnummer aus zwei Oktetten, die den gespeicherten Wert beschreiben,
siehe
– np_types.h
für mögliche
– NP_ATTRNUM's
length zwei
Oktette der TLV-Länge,
die die Länge
der Felder Attr# und length enthalten
– Value Feld mit variabler
Länge;
das einen gespeicherten Wert enthält
– ctrl_info Steuerinformationen,
die die erwarteten Charakteristiken der asynchronen Reaktion spezifizieren
– OUTPUTS:
– keine
– RETURN
VALUE:
– np_return_code_t-
– NP_RC_NOT_READY – IMS wurde
nicht korrekt initialisiert
– NP_RC_BADPARMS – falsche
Parameter weitergegeben
– NP_RC_MISCERR – während Konfiguration
ist Fehler aufgetreten
– NP_RC_SUCCESS
– ASYNCH
RESPONSE:
– Diese
API wird eine Reaktion auf die Beendigung des asynchronen Befehls
liefern, wie in den Parametern np_msg_ctrl_info_s spezifiziert ist.
– DESCRIPTION:
– Diese
API wird verwendet, um die anwenderspezifisch angepassten Parameter
zu konfigurieren, um den Pikocode dorthin zu leiten, wohin PPP-Steuerpakete,
IP-Pakete und unbekannte Datenpakete (z.B. Datenprotokolle, die
von PPP, IP usw. verschieden sind) gesendet werden sollen.
– Die folgenden
TLVs sind für
diese API gültig:
– NP_ATTRNUM_PPPCONTROL_ADDR:
2 Bytes NP + 2 Bytes Anschluss
– NP_ATTRNUM_IP_ADDR: 2 Bytes
NP + 2 Bytes Anschluss
– NP_ATTRNUM_UNKNOWN_DATA_ADDR:
2 Bytes NP + 2 Bytes Anschluss
– NP_ATTRNUM_WRAP_ADDR: 2 Bytes
NP + 2 Bytes Anschluss
-
Die
vorhergehende beispielhafte API wird im Folgenden genauer beschrieben:
Die API realisiert im Einzelnen einen Prozeduraufruf np_ims_customizedParms_configure,
der in einer Ausführungsform
in der Sprache C/C++ ausgeführt
wird, um vom Anwender festgelegte Parameter zum Konfigurieren der
anwenderspezifisch angepassten Tabelle von 3 zu empfangen.
Zu diesen Parametern gehören
z.B. eine Eingabe np_unit32number-TLVs, die die Anzahl von Werten
der markierten Liste (TLVs) darstellt, die in einer TLV-Liste bereitgestellt
werden und eine Initialisierung der Anzahl von bestimmten Rahmentypen
erzeugen, die in der Tabelle konfiguriert werden sollen; eine Eingabe
np_TLV_s*tlv, die einen Zeiger auf eine Zeichenfolge von TLV-Werten
darstellt; und eine Eingabe np_msg_ctrl_info_s ctrl_info, die Steuerinformationen
für eine
asynchrone Systemreaktion darstellt, wie etwa eine Benachrichtigung,
dass die API die anwenderspezifische Anpassung der Tabelle für den NP
beendet hat. Bei der TLV-Wert-Zeichenfolge
besitzt jede Zeichenfolge vorzugsweise die oben festgelegte Form
Attr#
length Value
wobei Attr# eine Attributnummer (ein Oktett oder
mehrere Oktette) darstellt, die das bestimmte Protokoll beschreibt,
das konfiguriert werden soll, z.B. das PPP-Protokoll; length repräsentiert
die physische Länge
des Werts; und Value repräsentiert
den tatsächlichen
Wert des Protokollrahmentyps und umfasst eine Anzahl von Bytes,
wobei z.B. zwei Bytes die "Anschlussleisten"-Adresse ("Blade"-Adresse) repräsentiert
und eine andere Menge von Bytes z.B. den NP-Anschluss repräsentiert,
der dem Ziel-GPP zugeordnet ist. Diese Werte werden zur Speicherung
in einem Feld mit veränderlicher
Länge heruntergeladen.
Auf eine Kopfsatz-Datei np_types.h kann zum Aufrufen der möglichen
Anzahl von TLVs Bezug genommen werden, und sie kann in Übereinstimmung
mit der anwenderspezifisch angepassten Tabelle von 3 enthalten:
NP_ATTRNUM_'s mit zwei Byte NP-Adresse
+ zwei Byte Anschlussadresse, wie etwa NP_ATTRNUM_PPPPCONTROL_ADDR,
NP_ATTRNUM_IP_ADDR, NP_ATTRNUM_UNKNOWN_DATA_ADDR und NP_ATTRNUM_WRAP_ADDR.
-
Weitere
zum Herunterladen über
die API konfigurierte Daten enthalten Steuerinformationen zum Spezifizieren
von erwarteten asynchronen Reaktionscharakteristiken wie z.B. eine
Benachrichtigung über
die API, dass alle NPs in dem Netzwerk mit der anwenderspezifisch
angepassten Tabelle konfiguriert worden sind. Ein Rückführungsparameter
der API, der als np_return_code_t bezeichnet wird, leitet z.B. folgende
Werte zurück: NP_RC_NOT_READY
zum Anzeigen, dass ein bestimmtes Untersystem nicht richtig initialisiert
wurde; NP_RC_BADPARMS zum Anzeigen, dass ein falscher Parameter
weitergegeben wurde; NP_RC_MISCERR zum Anzeigen, dass während der
Tabellenkonfiguration ein Fehler aufgetreten ist; und NP_RC_SUCCESS zum
Anzeigen, dass die NP-Konfiguration erfolgreich war.
-
Nachdem
der EPC jedes Netzwerkprozessors konfiguriert wurde, wird nun der
Prozess 200 der Verteilung der Verarbeitung auf mehrere
Universalprozessoren unter Bezugnahme auf 4 und gemäß einer
bevorzugten Ausführungsform
beschrieben.
-
In 4 ist
ein erster Verarbeitungsschritt 203 dargestellt, der einen
Netzwerkprozessor zeigt, der einen Rahmen vom Netzwerk empfängt. Im
Schritt 205 wird der empfangene Rahmentyp durch eine Hardware-Klassifizierungseinrichtung
der Netzwerkprozessor-Einheit klassifiziert und zu dem Pikocode
des NP, der in der GDH ausgeführt
wird, weitergeleitet. wenn die Hardware-Klassifizierungseinrichtung
den Rahmen nicht klassifizieren konnte, wird er vom Pikocode klassifiziert.
Anhand der Klassifizierung führt
der Pikocode im Schritt 210 die Logik zum Ausführen eines
Nachschlagens in der anwenderspezifisch angepassten Tabelle 100 (3)
aus, die in den Datenspeicher des Netzwerkprozessors geladen wurde.
Es ist klar, dass der Rahmentyp vorzugsweise als ein Index für die Tabelle 100 verwendet
wird. Dann wird im Schritt 213 festgestellt, ob eine Übereinstimmung
vorhanden ist, d.h., ob der Rahmen anhand seines Rahmentyps zu einem
bestimmten GPP für
eine spezielle Verarbeitung weitergeleitet werden muss. Wenn keine Übereinstimmung
besteht, (d.h., es ist keine spezielle Verarbeitung erforderlich),
verarbeitet der Netzwerkprozessor den Rahmen im Schritt 215.
Wenn im Schritt 213 festgestellt wird, dass eine Übereinstimmung
vorhanden ist, wird das Nachschlagen in der anwenderspezifisch angepassten
Tabelle 100 ausgeführt,
um die Ziel-GPP-Adresse und die Anschlussadresse für diesen
Rahmentyp im Schritt 218 zu ermitteln, und der spezielle
Rahmen wird unter Verwendung dieser Parameter im Schritt 220 an
den geeigneten GPP weitergeleitet. Die unter Bezugnahme auf 4 beschriebene
Verarbeitung hat vier mögliche
Ergebnisse zur Folge: 1) das Paket wird zur Verarbeitung in den Netzwerkprozessor weitergeleitet;
2) das Paket wird zur Verarbeitung zu einem GPP umgeleitet; 3) das
Paket wird verworfen; und 4) das Paket wird verworfen und eine unangeforderte
Nachricht wird an den GPP gesendet.
-
Ein
Beispiel für
die Verwendung der Methodik der bevorzugten Ausführungsform, die in 4 dargestellt
ist, wird nun für
den Fall beschrieben, der eine Verarbeitung eines Rahmens des Punkt-zu-Punkt-Protokolls
(PPP) beinhaltet. Der PPP-Rahmen wird durch den Netzwerkprozessor
verarbeitet. Wenn der Rahmen ein PPP-Steuerrahmen ist, wird er auf
der Grundlage der anwenderspezifisch angepassten Tabelle (3)
zu dem konfigurierten GPP weitergeleitet. Wenn der Rahmen ein Rahmen
der Schicht 3 ist, wird er vom Pikocode des Netzwerkprozessors der
Schicht 2 zu der geeigneten Netzwerkprozessor-Komponente weitergeleitet. Wenn
das Protokoll der Schicht 3 durch den Pikocode nicht verarbeitet
wird, wird der Rahmen zu dem konfigurierten GPP für dieses
Protokoll, der in der Nachschlagtabelle festgelegt ist, weitergeleitet.
Wenn das Protokoll nicht freigegeben wurde, wird der Rahmen in einer
Verwerfen-Warteschlange, die nicht gezeigt ist, angeordnet. Wenn
der Rahmen nicht als Rahmen der Schicht 3 erkannt wird und das Verwerfen
unbekannter PPP-Rahmen konfiguriert wurde, wird er in der Verwerfen-Warteschlange
angeordnet. Andernfalls wird der Rahmen zu dem konfigurierten GPP
für unbekannte/nicht
erkannte PPP-Rahmen weitergeleitet, wie in der Nachschlagtabelle
festgelegt ist.
-
Beispielhafte
Aktionen, die unternommen werden, sind in der folgenden Tabelle
zusammengefasst:
-
Indem
ein Netzwerkprozessor befähigt
wird, eine Verarbeitung auf mehrere Universal-Prozessoren zu verteilen,
und indem die Möglichkeit
geschaffen wird zu konfigurieren, welcher NP in einer großen Netzumgebung
bestimmte Operationen verarbeitet, ergibt sich offensichtlich vorteilhaft,
dass weniger Protokollstapel in jedem Universal-Prozessor erforderlich
sind, da jeder GPP nur für
die Verarbeitung der bestimmten Rahmen ausgerüstet wird, die von dem NP in Übereinstimmung
mit der anwenderspezifisch angepassten Tabelle, die in 3 veranschaulicht
ist, weitergeleitet werden.