DE112004000122T5 - Vorrichtung und Verfahren zum Konfigurieren des Datenebenenverhaltens auf Netzwerkweiterleitungselementen - Google Patents

Vorrichtung und Verfahren zum Konfigurieren des Datenebenenverhaltens auf Netzwerkweiterleitungselementen Download PDF

Info

Publication number
DE112004000122T5
DE112004000122T5 DE112004000122T DE112004000122T DE112004000122T5 DE 112004000122 T5 DE112004000122 T5 DE 112004000122T5 DE 112004000122 T DE112004000122 T DE 112004000122T DE 112004000122 T DE112004000122 T DE 112004000122T DE 112004000122 T5 DE112004000122 T5 DE 112004000122T5
Authority
DE
Germany
Prior art keywords
protocol
network
interface
configuration information
forwarding element
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.)
Withdrawn
Application number
DE112004000122T
Other languages
English (en)
Inventor
Shriharsha Hedge
Russell Fenger
Amol Kulkarni
Hsin-Yuo Liu
Hormuzd Khosravi
Manasi Deval
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.)
Intel Corp
Original Assignee
Intel 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 Intel Corp filed Critical Intel Corp
Publication of DE112004000122T5 publication Critical patent/DE112004000122T5/de
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/54Link editing before load time
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/50Routing or path finding of packets in data switching networks using label swapping, e.g. multi-protocol label switch [MPLS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/161Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields

Abstract

Es werden ein Verfahren und eine Einrichtung zum Konfigurieren des Datenebenenverhaltens auf Netzwerkweiterleitungselementen beschrieben. In einer Ausführungsform beinhaltet das Verfahren den Empfang von einer Protokollanwendung entnommenen Protokollkonfigurationsinformation innerhalb einer Netzwerkelement-Steuerebene, wobei eine Programmierschnittstelle (API) der Netzwerkprotokoll-anwendung zum Einsatz kommt. Nach Empfang der Protokoll-konfigurationsinformation wird diese unter Einsatz einer Steuerschnittstelle verarbeitet, wobei eine Steuerschnittstelle verwendet wird, die dem von der Protokollanwendung implementierten Netzwerkprotokoll entspricht. Nach Verarbeitung der Protokoll-konfigurationsinformation programmiert die Steuerschnittstelle eine oder mehrere Datenebenen-Weiterleitungselemente des Netzwerkelements gemäß der Protokollkonfigurationsinformation. Durch diese Vorgehensweisetellen für verschiedene Netzwerkprotokolle die Zusammenarbeit von Bauteilen verschiedener Lieferanten ermöglicht.

Description

  • ERFINDUNGSGEBIET
  • Eine oder mehrere Ausführungsformen der Erfindung beziehen sich allgemein auf das Gebiet der Netzwerkkommunikationen und -protokolle. Insbesondere beziehen sich eine oder mehrere Ausführungsformen auf ein Verfahren und eine Einrichtung zum Konfigurieren des Datenebenenverhaltens auf Netzwerkweiterleitungselementen.
  • ALLGEMEINER STAND DER TECHNIK
  • Heutzutage erzeugen zahlreiche unabhängigen Hardware-Lieferanten (IHV = Independent Hardware Vendors) netzwerkanwendungsspezifische integrierte Schaltungen (ASIC = Applications Specific Integrated Circuits) zur Durchführung einer Unzähligkeit von Paketverarbeitungsaufgaben. Leider besteht die gegenwärtige Schnittstelle zu solchen ASICs im Allgemeinen aus Speicherabbildungsregistern, die entsprechendes Bit-Level-Verhalten und entsprechende Dokumentation aufweisen. Nicht alle IHVs beschränken jedoch ihre Produkte auf Register-Level-Beschreibungen, manche bieten C-Level- oder andere Software-Schnittstellen zur Hardware an. Diese Schnittstellen sind jedoch lediglich eine bequeme Widerspiegelung der zugrundeliegenden Register und unterscheiden sich daher von Lieferant zu Lieferant (IHV).
  • Des weiteren wird aufgrund der Register-Level-Beschreibungen oder ihrer Software-Schnittstellen zu den Hardware-ASICs die Benutzung dieser verschiedenen Produkte sehr erschwert. Tatsächlich bedeuten diese Register-Level-Modelle eine steil ansteigende Lernkurve und eine enge Bindung an einen OEM-Hersteller oder ISV-Lieferanten, der die integrierte Schaltung (ASIC) oder das Networking Silicon in einem Produkt verwenden möchte. Bei einer derartigen Mikro-Level-Beschreibung (d. h. Register-Bits) ist es schwierig Code zu schreiben, der auf alle diese verschiedenen ASICs wiederanwendbar ist. Ferner ist es schwierig, die Mikro-Level-Funktionalität des Networking Silicon der ASICs zu entziffern.
  • Seit kurzem gibt es einen Trend in der Netzwerkindustrie, ASICs, die relativ unflexibel sind, durch besser programmierbare, aber dennoch leistungsorientierte Netzwerkgeräte wie zum Beispiel Netzwerkprozessoren zu ersetzen. Leider befinden sich Netzwerkprozessoren allgemein noch in ihren Anfangsstadien und weisen kein abstraktes Programmiermodell oder keins auf, was hinreichend aussagekräftig und flexibel ist, um zusammen mit den Fortschritten im Prozessor wachsen zu können. Allgemein können Netzwerkelemente wie Schalter und Router in drei 1 logische Betriebskomponenten aufgegliedert werden: die Steuerebene, die Weiterleitungsebene und die Managementebene.
  • Im Allgemeinen führt die Steuerebene verschiedene Signalisierungs- und/oder Routingprotokolle aus und stellt der Weiterleitungsebene die gesamte Routing-Information bereit. Die Weiterleitungsebene trifft aufgrund dieser Information Entscheidungen und führt Arbeiten auf den Paketen aus, wie zum Beispiel Weiterleitung, Klassifizierung, Filterung usw. Eine orthogonale Managementebene managt die Steuer- und Weiterleitungsebenen. Die Einführung von standardisierten Anwendungsprogrammierschnittstellen (API) innerhalb der obengenannten Ebenen kann jedoch Systemlieferanten, OEM-Herstellern und Endbenutzern dieser Netzwerkelemente helfen, die von verschiedenen Lieferanten erhältlichen Bauteile aufeinander abzustimmen, um ein Gerät ihrer Wahl zu erhalten.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • Die verschiedenen Ausführungsformen der vorliegenden Erfindung sind anhand von Beispielen, die aber keine Einschränkungen bedeuten, in den Figuren der beigefügten Zeichnungen dargestellt, in denen
  • 1 ein Blockdiagramm ist, das ein herkömmliches Computernetzwerk nach dem Stand der Technik zeigt.
  • 2 ein Blockdiagramm ist, das ein herkömmliches Computernetzwerk, wie in 1 dargestellt, zeigt, das zudem verschiedene Netzwerkelemente enthält, die beim Routen von Paketen im Netzwerk, wie aus der Technik bekannt, zum Einsatz kommen.
  • 3 ein Blockdiagramm ist, das ein herkömmliches Computernetzwerkelement zeigt, das innerhalb des in 2 dargestellten herkömmlichen Netzwerks zum Einsatz kommt.
  • 4 ein Blockdiagramm ist, das ein Netzwerkelement gemäß einer erfindungsgemäßen Ausführungsform darstellt.
  • 5 ein Blockdiagramm ist, das Netzwerkelemente, wie in 4 dargestellt, gemäß einer erfindungsgemäßen Ausführungsform verwendet.
  • 6 ein Ablaufdiagramm ist, das ein Verfahren zum Konfigurieren des Datenebenenverhaltens auf Netzwerk-Weiterleitungselementen gemäß einer erfindungsgemäßen Ausführungsform darstellt.
  • 7 ein Ablaufdiagramm ist, das ein Verfahren zur Verarbeitung der empfangenen Konfigurationsinformation gemäß einer erfindungsgemäßen Ausführungsform darstellt, wobei eine Steuerschnittstelle entsprechend einem Netzwerkprotokoll zum Einsatz kommt, das von der empfangenen Konfigurationsinformation implementiert wurde.
  • 8 ein Ablaufdiagramm ist, das ein Verfahren zum Programmieren eines oder mehrerer Datenebenen-Weiterleitungselemente in Übereinstimmung mit einem Netzwerkprotokoll gemäß einer erfindungsgemäßen Ausführungsform darstellt.
  • 9 ein Ablaufdiagramm ist, das ein Verfahren zum Programmieren eines oder mehrerer Datenebenen-Weiterleitungselemente in Übereinstimmung mit einem IPv4-Routingprotokoll (Internetprotokoll Version 4) gemäß einer erfindungsgemäßen Ausführungsform darstellt.
  • 10 ein Ablaufdiagramm ist, das ein Verfahren zum Programmieren eines oder mehrerer Datenebenen-Weiterleitungselemente in Übereinstimmung mit einem IPv6-Routingprotokoll (Internetprotokoll Version 6) gemäß einer erfindungsgemäßen Ausführungsform darstellt.
  • 11 ein Ablaufdiagramm ist, das ein Verfahren zum Programmieren eines oder mehrerer Datenebenen-Weiterleitungselemente in Übereinstimmung mit einem MPLS-Protokoll (Multi-Protocol Label Switching) gemäß einer erfindungsgemäßen Ausführungsform darstellt.
  • 12 ein Ablaufdiagramm ist, das ein Verfahren zum Programmieren eines oder mehrerer Datenebenen-Weiterleitungselemente in Übereinstimmung mit einem DiffServ-Protokoll (Differential Services) gemäß einer erfindungsgemäßen Ausführungsform darstellt.
  • 13 ein Ablaufdiagramm ist, das ein Verfahren zur Verarbeitung eines empfangenen Pakets innerhalb eines Weiterleitungselements darstellt, welches gemäß einer Steuerebenen-Steuerschnittstelle zur Implementierung eines Routingprotokolls gemäß einer erfindungsgemäßen Ausführungsform programmiert wurde.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Es wird ein Verfahren und eine Einrichtung zum Konfigurieren des Datenebenenverhaltens auf Netzwerkweiterleitungselementen beschrieben. In einer Ausführungsform beinhaltet das Verfahren den Empfang von Protokollkonfigurationsinformation innerhalb einer Netzwerkelementsteuerebene, die einem Netzwerkprotokollstapel (Protokollanwendung) entnommen wird, wobei eine API-Schnittstelle (Netzwerkprotokollanwendungs-Programmierschnittstelle) zum Einsatz kommt. Nach Empfang der Protokollkonfigurationsinformation wird diese unter Einsatz einer entsprechenden Steuerschnittstelle der Steuerebene verarbeitet.
  • Nach Verarbeitung der Protokollkonfigurationsinformation programmiert die Steuerschnittstelle ein oder mehrere Datenebenen-Weiterleitungselemente des Netzwerkelements gemäß der empfangenen Protokollkonfigurationsinformation. Dementsprechend wird durch Bereitstellung ähnlicher Steuerschnittstellen für verschiedene Netzwerkprotokolle die Zusammenarbeit von Bauteilen verschiedener Lieferanten ermöglicht. Dies führt zu einer Lieferantenunabhängigkeit, woraus sich eine kürzere Zeitspanne bis zur Vermarktung, verbesserte Leistung, geringere Kosten und größere Innovationsmöglichkeiten für zukünftige Netzwerkelemente ergeben.
  • In der folgenden Beschreibung werden zum Zwecke der Erklärung zahlreiche spezifischen Beispiele angeführt, um ein gründliches Verständnis der Ausführungsformen der vorliegenden Erfindung zu vermitteln. Für den Fachmann ist jedoch offensichtlich, daß die verschiedenen erfindungsgemäßen Ausführungsformen ohne einige dieser spezifischen Details praktiziert werden können. Ferner beschränkt sich die nachfolgende Beschreibung auf einen Untersatz möglicher Ausführungsformen und ihrer zugehörigen Zeichnungen, ohne eine erschöpfende Liste aller möglichen Implementierungen der erfindungsgemäßen Ausführungsformen vorzusehen. In manchen Fällen werden gut bekannte Strukturen und Geräte in Blockdiagrammform dargestellt, um eine Verwischung der Details der verschiedenen erfindungsgemäßen Ausführungsformen zu vermeiden.
  • Systemarchitektur
  • Im Blockdiagramm von 1 ist ein herkömmliches Netzwerk 100 mit einem Internet Host 102, der über das Internet mit Hostcomputern 140 (140-1, ..., 140N) verbunden ist, dargestellt. Im Allgemeinen erfolgt das Weiterleiten von Information zwischen dem Internet Host 102 und den Hostcomputern 140 mit herkömmlichen Mitteln zum Übertragen von Datenpaketen. Die verschiedenen Pakete werden innerhalb des Internets vom Internet Host 102 an die verschiedenen Hostcomputer 140 weitergeleitet. Obwohl dieses Modell erfolgreich für die Übertragung von herkömmlicher verpackter Information ist, gibt es neuerdings eine Reihe von Anwendungen, wie Telekonferenz- und Multimedienanwendungen, die empfindlich gegenüber Verzögerungen innerhalb herkömmlicher Netzwerke sind.
  • Dies hatte zur Folge, daß die Anforderung der verfügbaren Netzwerke zur Verbesserung sowie Variierung der Dienstgüte (QoS), Switching (Vermittlung), Forwarding (Weiterleitung) und dergleichen durch das Auftauchen von Multimedien- und Echtzeitanwendungen, die Netzwerke gemäß der Darstellung in 1 verwenden, getrieben wurde. Desgleichen benötigen verschiedene Informations(-Pakete), die durch Netzwerk 100 weitergeleitet werden können, möglicherweise verschiedene spezialisierte Protokollaktivitäten. Leider verwenden Netzwerke gemäß der Darstellung in 1 ein traditionelles „Best-Effort” Servicemodell, das nicht im Voraus eine Bandbreite zum Handhaben des Netzwerkverkehrs bereitstellt, sondern einfach Pakete unter Einsatz der aktuell verfügbaren Bandbreite auf „Best Effort-Basis” routet. Demzufolge sind im ganzen Internet unterschiedliche Warteschlangenverzögerungen und Verstopfungen durchaus üblich.
  • Das durch Netzwerk 100 implementierte „Best-Effort” Servicemodell basiert auf dem TCP/IP Protokoll (Transmission Control Protocol/Internet Protocol). Genau genommen bezieht sich die Protokollimplementierung auf die IP-Version 4 (IPv4). Im Allgemeinen ist IPv4 die meist installierte Version des Internet-Protokolls, das heutzutage im Einsatz steht. Wie dem Fachmann bekannt sein wird, ist eine IP-Adresse eine 32-Bit-Zahl, die jeden Sender oder Empfänger von Information identifiziert, die paketweise über das Internet geschickt wird. Eine IP-Adresse besteht normalerweise aus zwei Teilen – einer Kennung eines bestimmten Netzwerks im Internet, und einer Kennung des jeweiligen Geräts innerhalb des Netzwerks.
  • Als solches ist das Internet eine Zwischenverbindung zwischen vielen individuellen Netzwerken, und IPv4 ist ein Satz von Regeln für ein Netzwerk, das mit einem anderen Netzwerk kommuniziert, vorausgesetzt, daß das Netzwerk seine eigene Internetadresse und die der anderen Netzwerke, mit denen es kommuniziert, kennt. Leider steht die von IPv4 vorgegebene 32-Bit-IP-Adresse kurz davor, überholt zu werden. In anderen Worten, es ist wahrscheinlich, daß aufgrund des Internet-Wachstums in Abwesenheit einer neuen Architektur die Anzahl der möglichen Netzwerkadressen, die das von IPv4 bereitgestellte Adressiersystem benutzen, bald überschritten sein wird. Desgleichen ist das vom aktuellen TCP/IP-Protokoll bereitgestellte „Best-Effort” Servicemodell für verschiedene aktuelle als auch zukünftige Netzwerkanwendungen unzureichend.
  • Daher wurde eine neue Version (die nächste Generation) des Internet-Protokolls implementiert. Wie dem Fachmann bekannt sein wird, ist dieses Internet-Protokoll der nächsten Generation die Version IPv6. Die offensichtliche Verbesserung in IPv6 gegenüber IPv4 besteht darin, daß die IP-Adressen von 32-Bits auf 128-Bits erweitert wurden. Diese Erweiterung bedeutet, daß mit einem beträchtlichen Wachstum des Internets gerechnet wird, und deshalb Vorsorge zu treffen war, dem bevorstehenden Mangel an Netzadressen entgegenzuwirken. IPv6 stellt ferner Regeln für drei Arten von Adressierung auf: Unicast (ein Host zu einem anderen Host); Anycast (ein Host zum Nächsten von mehreren Hosts) und Multicast (ein Host zu vielen Hosts).
  • Ferner stellt IPv6 verschiedene Verbesserungen bereit. Zum Beispiel können Pakete, die einem Ende-Ende-Pfad (oder „Fluß”) angehören, beispielsweise als Teil einer Multimedienpräsentation identifiziert werden, die eine Echtzeit-Ankunft erfordert. Demzufolge kann Paketen, die eine Echtzeit-Auslieferung erfordern oder empfindlich gegenüber Verzögerungen sind, durch Bereitstellung dieser Identifikation eine gegenüber dem normalen Netzwerkverkehr höhere Dienstgüte (QoS) gegeben werden.
  • Zum Beispiel zeigt 2 ein Blockdiagramm des in 1 dargestellten Netzwerks, um die verschiedenen Netzwerkelemente zwischen beispielsweise einem Echtzeit-Anwendungsserver (Quellencomputer) 200 und einem Zielcomputer 220 zu verdeutlichen. Aufgrund der Tatsache, daß das Netzwerk gemäß des IPv4-Routingprotokolls konfiguriert ist, wird der empfangene Netzwerkverkehr auf der Basis des „Best-Effort” Servicemodells weitergeleitet. Dies führt dazu, daß bei der Übertragung von verpackten Daten zwischen dem Echtzeit-Anwendungsserver 200 und einem Zielcomputer 220 verschiedene Routing-Verzögerungen eintreten aufgrund der Tatsache, daß im ganzen Internet aufgrund des weitverbreiteten Einsatzes des Internets Verstopfungen durchaus üblich sind. Zum Beispiel würde während der Spitzenverkehrszeiten die Übertragung von in Echtzeit verpackten Daten unter derart großen Verzögerungen leiden, daß die Anwendung auf dem Zielcomputer unbrauchbar würde.
  • Ein aktuelles Netzwerkprotokoll (Modell) zur Bereitstellung von Service-Differenzierung (variierende QoS (Dienstgüte)) für Verkehrsflüsse ist das Modell für differenzierte Dienste (DiffServ). Das DiffServ-Modell stellt qualitative Differenzierung für „Flow Aggregates” (Ansammlung von Flüssen) bereit, im Gegensatz zu harten Garantien wie „Delay Bounds” (Verzögerungsgrenzen) und „Assured Bandwidth” (zugesicherte Bandbreite), die von dem Modell für integrierte Dienste (IntServ) bereitgestellt werden. Zum Beispiel kann die qualitative Differenzierung, die vom DiffServ-Modell bereitgestellt wird, auf eine höhere Priorität für Klasse A gegenüber Klasse B eingerichtet werden. Ferner stellt das DiffServ-Modell Datenpfadelemente (DPE) wie „Classifiers” (Klassifizierer), „Meters” (Meßgeräte), „Droppers” (Ableger), „Queues” (Warteschlangen) und „Schedulers” (Planer) bereit.
  • Ein weiteres Netzwerkprotokoll, welches beispielsweise zur Beschleunigung des Netzwerkverkehrs verwendet werden könnte, um Anwendungen wie Audio- und Sprachanwendungen zu implementieren, die sehr empfindlich auf Warteschlangenverzögerungen und Verstopfungen im Netzwerk reagieren, ist das MPLS-Protokoll (Multi-Protokol Label Switching). Das MPLS-Protokoll ist eine normale genehmigte Technologie zur Beschleunigung des Netzwerkverkehrsflusses sowie eines vereinfachten Managements desselben. MPLS beinhaltet des Einrichten eines bestimmten Pfads für eine gegebene Folge von Paketen, die durch ein Label (Etikett) in jedem Paket identifiziert werden. Dies führt zu Einsparungen von Zeit, die allgemein der Router benötigt, um Adressen zum nächsten Knoten nachzuschlagen, an den das Paket weitergeleitet werden soll.
  • Außerdem wird MPLS auch als Multi-Protokoll bezeichnet, weil es, wie in der Technik bekannt, mit dem Internet-Protokoll, dem ATM-Protokoll (Asynchronous Transfer Mode) und dem Frame-Delay-Netzwerkprotokoll zusammenarbeitet. Ferner erlaubt MPLS das Weiterleiten der meisten Pakete auf Layer-2 Level (Switching) gegenüber Layer-3 Level (Routing). Darüber hinaus stellt MPLS, neben der Beschleunigung des Verkehrs, auch ein vereinfachtes Management eines Netzwerks hinsichtlich Dienstgüte (QoS) und Verkehrstechnik (Traffic Engineering) bereit. Demgemäß sind Netzwerke, die das MPLS-Protokoll implementieren, fähig, eine hinreichende Dienstgüte (QoS) für verschiedene Netzwerkverkehrsmischungen bereitzustellen. Wie hier beschrieben, werden die oben beschriebenen Switching- und QoS-Protokolle kollektiv als „Netzwerkprotokolle” bezeichnet.
  • Unter Bezugnahme auf 3 ist zu sagen, daß in 3 ein herkömmliches Netzwerkelement 302, wie in Netzwerk 300 von 2 verwendet, dargestellt ist. Wie dargestellt, beinhaltet das Netzwerkelement eine Weiterleitungsebene 380 mit einem Eintrittsfilterblock 304, einem Weiterleitungsentscheidungsblock 390 und einem Austrittsfilterblock 306, um eingehende Pakete, wie durch die Steuerebene 310 diktiert, zu einem Zielort zu routen. Leider stellt das Netzwerkelement 302 eng gekoppelte Weiterleitungs- und Steuerebenen innerhalb eines einzigen Geräts zur Verfügung. Deshalb erfordert die Implementierung variierender QoS wie von verzögerungsempfindlichen Anwendungen gefordert, innerhalb des Netzwerkelements (302) eine intime Kenntnis einer innerhalb des Geräts benutzten firmenspezifischen Schnittstelle.
  • Ein kürzlicher Trend in der Netzwerkindustrie besteht jedoch darin, herkömmliche Netzelemente, die relativ unflexibel sind, durch besser programmierbare, aber trotzdem leistungsorientierte Netzwerkgeräte, wie zum Beispiel durch Netzwerkprozessoren zu ersetzen. Leider befinden sich Netzwerkprozessoren noch in ihren Anfangsstadien und besitzen kein abstraktes Programmiermodell oder keins, was genügend aussagekräftig und flexibel wäre, um zusammen mit den Fortschritten im Prozessor selbst wachsen zu können.
  • Allgemein gesagt können Netzwerkelemente wie Schalter und Router in drei logische Betriebskomponenten aufgegliedert werden: die Steuerebene, die Weiterleitungsebene und die Managementebene. Zum Beispiel führt die Steuerebene verschiedene Signalisier- oder Routingprotokolle aus und stellt der Weiterleitungsebene alle Routinginformationen bereit. Die Weiterleitungsebene trifft Entscheidungen aufgrund dieser Information und nimmt Arbeiten auf den Paketen vor, wie zum Beispiel Weiterleitung, Klassifizierung, Filterung usw. Eine orthogonale Ebene managt die Steuer- und Weiterleitungsebenen.
  • Die Einführung von standardisierten Anwendungsprogrammier-schnittstellen (API) innerhalb der obengenannten Ebenen kann jedoch Systemlieferanten, OEM-Herstellern und Endbenutzern dieser Netzwerkelemente helfen, die von verschiedenen Lieferanten verfügbaren Bauteile aufeinander abzustimmen, um ein Gerät ihrer Wahl zu erhalten. Demgemäß ist in 4 ein Blockdiagramm eines Netzwerkelements 400 dargestellt, bei dem gemäß einer erfindungsgemäßen Ausführungsform die Steuerebene 410 und die Datenebene 430 getrennt und über die Zusammenschaltung 402 miteinander verbunden sind.
  • In einer Ausführungsform ermöglicht die Steuerebene 410 die Abfrage der Datenebene zur Bestimmung von Information, die zur Programmierung des Weiterleitungselements der Datenebene 430 benötigt wird. Dies erlaubt einen größeren Grad an Allgemeingültigkeit bei der Steuerung des spezifischen Verhaltens in Netwerkweiterleitungselementen. Wie hier beschrieben, werden die verschiedenen Parameter und die Information zur Erstellung einer Tabelle und deren Ausfüllung mit Werten zur Implementierung des entsprechenden Protokolls kollektiv unter dem Ausdruck „Protokollkonfigurationsinformation” zusammengefaßt.
  • Folglich ist die Steuerschnittstelle 420 fähig, ein ausgewähltes Datenebenen-Weiterleitungselement zu programmieren, um innerhalb der Datenebene 430 Drittpartei-Netzwerkprotokollstapel (Protokollanwendungen) ungeachtet der Lieferantenquelle der Datenebene zu programmieren. In einer Ausführungsform programmiert die Steuerschnittstelle 420 die Datenebene 430 gemäß der Protokollkonfigurationsinformation, die der Protokollanwendung durch eine mit dem Protokoll korrespondierende API entnommen wurde. Zum Beispiel implementiert das Netzwerkelement 400, wie dargestellt, die IPv4-, IPv6-Routingprotokolle und auch die MPLS- und DiffServ-Netzwerkprotokolle („Netzwerkprotokolle”) über die Anwendungen 424 und 426. Desgleichen ist auch eine Management/Konfigurationsanwendung 422 vorgesehen.
  • Um die verschiedenen Protokollanwendungen von verschiedenen Drittpartei-Entwicklern zu ermöglichen, stellt eine erfindungsgemäße Ausführungsform APIs für beispielsweise das IPv4-Routingprotokoll, das IPv6-Routingprotokoll, das MPLS-Netzwerkprotokoll und das DiffServ-Netzwerkprotokoll bereit. Verschiedene APIs für gewünschte zusätzliche Protokolle können jedoch gemäß Ausführungsformen der vorliegenden Erfindung implementiert werden. Demgemäß kann durch Einsatz einer API in Übereinstimmung mit Ausführungsformen der vorliegenden Erfindung eine Drittpartei-Protokollanwendung mit einer Steuerebene von Lieferant A versehen werden, um ein bestimmtes Protokoll zu implementieren, wie es vom Drittpartei-Softwareentwickler innerhalb einer Datenebene von Lieferant B gewünscht wird.
  • In einer Ausführungsform werden die Kommunikationsschnittstellen sowie auch die Implementierung des Protokolls innerhalb der Datenebene 430 von der betreffenden Protokoll-API gehandhabt. In anderen Worten, die Steuerschnittstelle 420 engagiert die APIs für die oben beschriebenen Protokolle. So kommt es, das durch Einfügung einer entsprechenden API in eine herkömmliche Protokollanwendung plattform-unabhängige Protokollanwendungen bereitgestellt werden. Als solches stellt in einer Ausführungsform die entsprechende API Protokollkonfigurationsinformation bereit, die der Protokollanwendung für Steuerebene 420 entnommen wurde.
  • In einer Ausführungsform benutzt die Steuerebene 420 diese Protokollkonfigurationsinformation zur Programmierung von Weiterleitungselementen der Datenebene 430, um das Protokoll zu implementieren. Außerdem wird die Kommunikation zwischen der Steuerschnittstelle 420 und der Datenebene 430 dadurch erzielt, daß zum Beispiel ein Zusammenschaltungs-Meldungsprotokoll oder dergleichen verwendet wird. Zum Beispiel kann das IPv6-Routingprotokoll innerhalb von Weiterleitungselement 440 implementiert werden. Wie dargestellt, werden die IPv6-Weiterleitungstabellen sowie die Nachbartabelle 460 beim Hochfahren des Geräts innerhalb von Weiterleitungselement 440 gebildet. Außerdem werden, wie von der Protokollkonfigurationsinformation vorgegeben, die schnittstellenspezifischen Tabelleneinträge (462 und 464) erzeugt und in die entsprechende Tabelle (460) eingetragen, um das Routen von empfangenen Paketen über die Schnittstellen 442 vorzugeben.
  • Desgleichen können auch MPLS-, FTN-(Forward Equivalent Class (FEC) to Nexthop Label-Forwarding Entry (NHLFE)) und ILM-Tabellen (Incoming Label Map) mit spezifischen Einträgen (452, 454 und 456) innerhalb von Weiterleitungselement 440 implementiert werden. Die spezifischen Einträge werden von der entsprechenden LDP-Anwendung (LDP = Label Distribution Protocol) vorgegeben, um das Verhalten von Weiterleitungselementen beim Empfang von entsprechenden Pakete über die Schnittstellen 442 zu steuern. Desgleichen kann das IPv4-Routingprotokoll wie auch das DiffServ-Routingprotokoll innerhalb von Weiterleitungselement 470 implementiert werden.
  • Diese Möglichkeit wird aufgrund der Tatsache bereitgestellt, daß in einer Ausführungsform die Steuerschnittstelle 420 den Mechanismus bereitstellt, eins von vielen spezifischen Elementen innerhalb der Datenebene 430 anzupeilen. Das heißt, ein einziger spezifischer Tabelleneintrag innerhalb einer oder mehrerer Tabellen innerhalb eines von vielen Weiterleitungselementen kann angesprochen werden. Desgleichen stellt in einer Ausführungsform die Steuerschnittstelle einen Mechanismus für Steuerebenen-Bauteile (Protokollanwendungen) bereit, die Weiterleitungselemente abzufragen, um Parameter und Ressourcen der Datenebene zu bestimmen.
  • In 5 ist ein Blockdiagramm eines Netzwerks 500 dargestellt, bei dem Netzwerkelemente 400, wie in 4 dargestellt gemäß einer Ausführungsform der vorliegenden Erfindung zum Einsatz kommen. Wie dargestellt, ist ein Echtzeit-Anwendungsserver 200 fähig, eine verbesserte/variierende QoS zu empfangen, die zum Beispiel vom DiffServ-Netzwerkprotokoll innerhalb von Netzwerkelement 400 bereitgestellt wird. Auch andere verschiedene Quellencomputer benötigen vielleicht ein separates Routing-/Netzwerkprotokoll wie zum Beispiel IPv4- (für alte Anwendungen) und IPv6-Routingprotokolle, MPLS-Netzwerke oder dergleichen. Diese Protokolle können innerhalb des Netzwerkelements unter Einsatz von zum Beispiel Drittpartei-Protokollanwendungen einschließlich einer entsprechenden Protokoll-API gemäß einer erfindungsgemäßen Ausführungsform implementiert werden.
  • Ferner ist die Steuerschnittstelle 420 innerhalb der Netzwerkelemente 400 vollkommen asynchron gestaltet, um jede Art von Zusammenschaltungstechnologie zur Zusammenschaltung der Steuer- und Datenebenen zu unterstützen. Steuerebenen und Datenebenen können unter Einsatz von Netzwerktechnologien wie dem Ethernet, Kabelleitungen, einem Bus oder Lichtfasern miteinander verbunden werden. Desgleichen könnte die Verbindung zwischen Steuerebene und Datenebene durch Bustechnologie wie kompakte PCI (Peripheral Component Interconnect – Periphere Komponentenzusammenschaltung) verwirklicht werden, oder die Steuer- und Datenebenen könnten zusammengelegt und über Interprozeßkommunikationen miteinander verbunden werden. Im Folgenden sollen prozeßtechnische Verfahren zur Implementierung von Ausführungsformen der vorliegenden Erfindung beschrieben werden.
  • Arbeitsweise
  • In 6 ist ein Ablaufdiagramm für ein Verfahren 600 zum Konfigurieren des Datenebenenverhaltens auf den Netzwerkweiterleitungselementen von, zum Beispiel, Netzwerkelement 400 in 4 gemäß einer erfindungsgemäßen Ausführungsform dargestellt. Bei Verfahrensblock 602 wird die Protokoll-konfigurationsinformation, die einer Protokollanwendung entnommen wurde, innerhalb einer Netzwerkelement-Steuerebene empfangen. In einer Ausführungsform implementiert die Protokollanwendung ein Netzwerk-/Routingprotokoll unter Einsatz einer Protokollanwendungs-Programmierschnittstelle (API), die für die Entnahme der Protokollkonfigurationsinformation verantwortlich ist.
  • In einer Ausführungsform unterstützt die Protokoll-API Netzwerkprotokolle wie zum Beispiel das DiffServ-Netzwerkprotokoll, das MPLS-Netzwerkprotokoll sowie die IPv4- und IPv6-Routingprotokolle. Demgemäß ist die Implementierung des entsprechenden Protokolls, das von der Protokollkonfigurationsinformation empfangen wurde, für den Anwendungsprogrammierer nicht sichtbar. Nach Empfang der Protokollkonfigurationsinformations-Anwendung wird bei Verfahrensblock 604 die empfangene Protokollkonfigurationsinformation verarbeitet, wobei eine Steuerschnittstelle zum Einsatz kommt, die dem Protokoll entspricht, das von der empfangenen Protokollanwendung implementiert wurde.
  • Zum Beispiel besteht, wie in 4 dargestellt, die Steuerschnittstelle 420 aus den Steuerschnittstellen IPv4, IPv6, MPLS und DiffServ. Daraus folgt, daß die Steuerschnittstelle 420 eine entsprechende Protokollschnittstelle zur Verarbeitung der Anwendung bestimmt, die zum Beispiel von einem Drittpartei-Entwickler empfangen wurde. Es werden also nach der Auswahl bei Verfahrensblock 620 ein oder mehrere Datenebenen-Weiterleitungselemente des Netzwerkelements gemäß der Protokollkonfigurationsinformation programmiert, die der Protokollanwendung nach beispielsweise 4 entnommen wurde.
  • In 7 ist ein Ablaufdiagramm eines Verfahrens 606 zur Verarbeitung von empfangener Protokollkonfigurationsinformation bei Verfahrensblock 604 nach 6 dargestellt, das einer erfindungsgemäßen Ausführungsform entspricht. Bei Verfahrensblock 608 wählt die Steuerschnittstelle ein Weiterleitungselement innerhalb der Datenebene aus, um das Netzwerk-Routing- oder Nichtrouting-Protokoll zu implementieren, das mit der empfangenen Protokollkonfiguration-information verknüpft ist. Zum Beispiel könnte die Steuerschnittstelle 420 das Weiterleitungselement 440 auswählen, um das IPv6-Routings-Protokoll zu implementieren.
  • Als nächstes werden bei Verfahrensblock 610 eine oder mehrere schnittstellenspezifischen Tabellen bestimmt, die innerhalb des ausgewählten Weiterleitungselements gebildet werden müssen. Nach Bestimmung bei Verfahrensblock 612 werden ein oder mehrere Einträge innerhalb der schnittstellenspezifischen (oder protokollspezifischen) Tabellen von der Steuerschnittstelle gemäß der Protokollkonfigurationsinformation bestimmt. Demnach trifft ein Weiterleitungselement, das die schnittstellenspezifischen Tabellen enthält, Routing-Entscheidungen aufgrund der Einträge in den schnittstellenspezifischen Tabellen. Zum Beispiel werden Einträge 1–3 der MPLS-Tabelle 450 zusätzlich zu den Einträgen 1 und 2 der IPv6-Tabelle 460 bestimmt.
  • In 8 ist ein Ablaufdiagramm des Verfahrens 622 zur Programmierung der Datenebenen-Weiterleitungselemente von Verfahrensblock 620 nach 6 dargestellt, das einer erfindungsgemäßen Ausführungsform entspricht. Bei Verfahrensblock 624 wird nach Abfrage der von der Datenebene bereitgestellten Protokoll-Ressource das von der Protokollkonfigurationsinformation angegebene Netzwerkprotokoll bei der Datenebene beim Hochfahren des Geräts angemeldet, um den Empfang von Ereignissen von der Datenebene zu ermöglichen. In anderen Worten, während der verschiedenen Verarbeitungsabläufe innerhalb des Weiterleitungselements kann das implementierte Protokoll ein Ereignis auslösen, das die Kommunikation mit der Steuerebene erfordert, um das nachfolgende Verarbeitungsverhalten innerhalb der Datenebene zu bestimmen.
  • Bei Verfahrensblock 626 wählt die Steuerschnittstelle das Weiterleitungselement aus einem oder mehreren Weiterleitungselementen der Netzwerkdatenebene, wie zum Beispiel das Weiterleitungselement 440 (4), aus. Als nächstes werden bei Verfahrensblock 628 eine oder mehrere schnittstellenspezifischen Tabellen, die innerhalb des ausgewählten Weiterleitungselements beim Hochfahren des Geräts erzeugt wurden, ausgewählt. Nach Auswahl bei Verfahrensblock 630 erzeugt die Steuerschnittstelle einen oder mehrere Einträge in den schnittstellenspezifischen Tabellen des ausgewählten Weiterleitungselements, wie von der Protokollkonfiguration-information bestimmt, die einer empfangenen Protokollanwendung durch eine entsprechende Protokoll-API entnommen wurde.
  • In 9 ist ein Ablaufdiagramm des Verfahrens 632 zur Programmierung des Datenebenenverhaltens von Verfahrensblock 620 nach 6 dargestellt, um ein IPv4-Routingprotokoll in Übereinstimmung mit einer erfindungsgemäßen Ausführungsform zu implementieren. Bei Verfahrensblock 634 wird das IPv4-Routingprotokoll bei der Netzwerkelement-Datenebene beim Hochfahren des Geräts angemeldet, um den Empfang von Ereignissen von der Datenebene zu ermöglichen. Bei Verfahrensblock 636 wird eine IPv4 Weiterleitungstabelle innerhalb des ausgewählten Weiterleitungselements beim Hochfahren des Geräts erzeugt. Bei Verfahrensblock 638 wird eine ARP-Tabelle (Address Resolution – Adressenermittlung) innerhalb des ausgewählten Weiterleitungselements beim Hochfahren des Geräts erzeugt.
  • Als nächstes wird bei Verfahrensblock 640 ein Weiterleitungselement innerhalb der Datenebene ausgewählt, um ein IPv4-Routingprotokoll zu implementieren. Bei Verfahrensblock 642 wird bestimmt, ob eine Anforderung von der Protokollanwendung empfangen wurde, die Routen- und ARP-Aktualisierungsanforderungen enthalten kann. Bei Empfang einer Routen-Anforderung werden bei Verfahrensblock 644, je nach empfangener Aktualisierungsanforderung, IPv4-Routing-Einträge entweder zur Weiterleitungstabelle hinzugefügt oder aus ihr gelöscht. Bei Empfang einer ARP-Anforderung werden bei Verfahrensblock 646, je nach empfangener Anforderung, IPv4-Einträge entweder zur Adressenermittlungstabelle (Address Resolution) hinzugefügt oder aus ihr gelöscht. Dementsprechend werden Verfahrensblöcke 642646 so lange wiederholt, bis die Programmierung der Weiterleitungselemente abgeschlossen ist.
  • In 10 ist ein Ablaufdiagramm eines Verfahren 650 zur Programmierung der Datenebene von Verfahrensblock 620 nach 6 dargestellt, um ein IPv6-Routingprotokoll in Übereinstimmung mit einer erfindungsgemäßen Ausführungsform zu implementieren. Bei Verfahrensblock 652 wird das IPv6-Routingprotokoll bei der Datenebene während des Hochfahrens des Geräts angemeldet, um den Empfang von Ereignissen von der Datenebene, wie oben angegeben, zu ermöglichen. Bei Verfahrensblock 654 wird eine IPv6-Weiterleitungstabelle innerhalb des ausgewählten Weiterleitungselements während des Hochfahrens des Geräts erzeugt. Nach Auswahl bei Verfahrensblock 656 wird innerhalb des ausgewählten Weiterleitungselements während des Hochfahrens des Geräts eine IPv6-Nachbartabelle erzeugt.
  • Als nächstes wird bei Verfahrensblock 658 ein Weiterleitungselement aus der Netzwerkelement-Datenebene ausgewählt. Bei Verfahrensblock 660 wird bestimmt, ob eine Anforderung von der Protokollanwendung empfangen wurde, die Routen- und Nachbartabellen-Aktualisierungsanforderungen enthalten kann. Bei Empfang einer Routen-Anforderung werden bei Verfahrensblock 662, je nach empfangener Anforderung, IPv6-Routing-Einträge entweder zur Weiterleitungstabelle hinzugefügt oder aus ihr gelöscht. Bei Empfang einer Nachbartabellen-Aktualisierungsanforderung werden bei Verfahrensblock 664, je nach empfangener Anforderung, IPv6-Einträge entweder zur Nachbartabelle hinzugefügt oder aus ihr gelöscht. Dementsprechend werden Verfahrensblöcke 660664 so lange wiederholt, bis die Programmierung der Weiterleitungselemente abgeschlossen ist.
  • In 11 ist ein Ablaufdiagramm eines Verfahrens 670 zur Programmierung von Weiterleitungselementen der Datenebene bei Verfahrensblock 620 nach 6 dargestellt, um ein MPLS-Netzwerkprotokoll in Übereinstimmung mit einer erfindungsgemäßen Ausführungsform zu implementieren. Bei Verfahrensblock 672 wird eine FTN-Tabelle innerhalb eines ausgewählten Weiterleitungselements während des Hochfahrens des Geräts erzeugt, um das MPLS-Vermittlungsprotokoll zu implementieren. Bei Verfahrensblock 674 wird eine ILM-Tabelle innerhalb des ausgewählten Weiterleitungselements während des Hochfahrens des Geräts erzeugt. Als nächstes wird bei Verfahrensblock 676 eine FTN-DiffServ-Kontexttabelle innerhalb des ausgewählten Weiterleitungselements während des Hochfahrens des Geräts erzeugt.
  • Nach ihrer Erstellung wird bei Verfahrensblock 678 eine ILM-DiffServ-Kontexttabelle innerhalb des ausgewählten Weiterleitungselements während des Hochfahrens des Geräts erzeugt. Nach ihrer Erstellung wird bei Verfahrensblock 680 bestimmt, ob eine Protokoll-Anwendungsanforderung erhalten wurde. Wenn eine FTN-Anforderung empfangen wurde, werden Verfahrensblöcke 682 und 684 ausgeführt. Wenn jedoch eine ILM-Anforderung empfangen wurde, werden Verfahrensblöcke 686 und 688 ausgeführt. Andernfalls kehrt der Steuerfluß zu Verfahrensblock 620 (6) zurück, was allgemein dann erfolgt, wenn die Programmierung der Datenebenen-Weiterleitungselemente abgeschlossen ist, nachdem Verfahrensblöcke 680688 für jede Protokoll-Anwendungsanforderung wiederholt werden.
  • Dementsprechend werden bei Verfahrensblock 682 MPLS FTN Einträge nach Erhalt einer MPLS FTN Eintragsanforderung entweder zur FTN-Tabelle hinzugefügt oder aus ihr gelöscht. Desgleichen werden bei Verfahrensblock 684 bei Erhalt einer MPLS-E-LSP Konfigurationseintragsanforderung MPLS E-LSP (Explicit Route Label Switch Path) Konfigurationseinträge entweder zu den FTN DiffServ-Kontextabellen hinzugefügt oder aus diesen gelöscht. Andernfalls werden bei Verfahrensblock 686 bei Empfang einer MPLS ILM Eintragsanforderung MPLS ILM Einträge entweder zur ILM-Tabelle hinzugefügt oder aus ihr gelöscht. Desgleichen werden bei Verfahrensblock 686 bei Erhalt einer MPLS E-LSP Vorkonfigurations-Eintragsanforderung MPLS E-LSP-Vorkonfigurationseinträge zur ILM DiffServ Kontexttabelle hinzugefügt oder aus dieser gelöscht.
  • In 12 ist ein Ablaufdiagramm eines Verfahrens 690 zur Programmierung von Datenebenen-Weiterleitungselementen von Verfahrensblock 620 nach 6 dargestellt, um ein DiffServ-Netzwerkprotokoll in Übereinstimmung mit einer erfindungsgemäßen Ausführungsform zu implementieren. Bei Verfahrensblock 692 wird eine Mehrzahl von DiffServ-Tabellen innerhalb des ausgewählten Weiterleitungselements erzeugt, um während des Hochfahrens des Geräts das DiffServ-Routingprotokoll, zum Beispiel DiffServ DPE, zu implementieren. In einer Ausführungsform kann jeder Aufruf (Protokollanwendungsanforderung) Einträge eines der folgenden Typen beinhalten: Filter, Meter (Meßgerät), Marker (Markierung), Warteschlange oder Scheduler. Bei Verfahrensblock 694 werden Filtereinträge in einer DiffServ Klassifizierungstabelle entweder hinzugefügt oder gelöscht, wenn eine Klassifizierungstabellen-Eintragsanforderung wird. Bei Verfahrensblock 696 werden Meter-Einträge entweder zu einer DiffServ Meter Tabelle hinzugefügt, oder in dieser geändert oder gelöscht, wenn eine Meter-Eintragsanforderung empfangen wird.
  • Ferner werden bei Verfahrensblock 698 Markierungseinträge zu einer DiffServ-Markierungstabelle hinzugefügt, geändert oder aus dieser gelöscht, wenn eine Markierungstabellen-Eintragsanforderung empfangen wird. Bei Verfahrensblock 700 werden Dropper-Einträge (Ablegereinträge) zu einer innerhalb des ausgewählten Weiterleitungselements erzeugten algorythmischen DiffServ-Dropper-Tabelle hinzugefügt, in dieser geändert oder gelöscht, wenn eine Dropper-Eintragsanforderung erhalten wird. Bei Verfahrensblock 702 werden Abfrageeinträge zu einer DiffServ-Warteschlange hinzugefügt, in dieser geändert oder gelöscht, wenn eine Warteschlangen-Eintragsanforderung erhalten wird. Schließlich werden bei Verfahrensblock 704 Scheduler-Einträge zu einer DiffServ-Scheduler-Tabelle entweder hinzugefügt, in dieser geändert oder gelöscht, wenn eine Schedulerrabellen-Eintragsanforderung erhalten wird.
  • Schließlich ist in 13 ein Ablaufdiagramm eines Verfahrens 710 für das Verhalten, beispielsweise eines Netzwerkelements, dargestellt, welches eine Steuerschnittstelle in Übereinstimmung mit einer erfindungsgemäßen Ausführungsform implementiert. Bei Verfahrensblock 712 wird bestimmt, ob ein Paket empfangen wurde. Nach Empfang bei Verfahrensblock 714 wird bestimmt, ob ein Ereignis, wie zum Beispiel ein „Protokoll-nichtunterstützt” Ereignis von dem empfangenen Paket ausgelöst wurde. Wenn ein Ereignis ausgelöst wurde, wird Verfahrensblock 716 ausgeführt. Bei Verfahrensblock 716 wird eine Weiterleitungselement-Anwendung, die das Netzwerkprotokoll entsprechend des empfangenen Pakets implementiert, von dem Ereignis benachrichtigt. In einer Ausführungsform kann die Benachrichtigung das Weiterleiten des empfangenen Pakets an ein verantwortliches Weiterleitungselement beinhalten.
  • Andernfalls wird bei Verfahrensblock 718 ein Weiterleitungselement bestimmt, das mit einer oder mehreren schnittstellenspezifischen Tabellen entsprechend dem mit dem Paket verknüpften Netzwerkprotokoll programmiert wurde. Nach der Bestimmung wird bei Verfahrensblock 720 bestimmt, ob das Nachschlagen in einer Nachschlagetabelle ein Ereignis, wie zum Beispiel „fehlender Eintrag/kein Eintrag gefunden” ausgelöst hat. Wenn ein Ereignis ausgelöst wurde, wird Verfahrensblock 722 ausgeführt. Bei Verfahrensblock 722 wird eine Weiterleitungselement-Anwendung, die das Netzwerkprotokoll entsprechend dem empfangenen Paket implementiert, von dem Ereignis benachrichtigt. In einer Ausführungsform könnte ein „kein-Eintrag-gefunden” Ereignis eine DROP-Aktion des empfangenen Pakets durch das Weiterleitungselement auslösen.
  • Andernfalls wird bei Verfahrensblock 724 das Paket durch das Weiterleitungselement gemäß des schnittstellenspezifischen Tabelleneintrags verarbeitet, der dem mit dem Paket verknüpften Netzwerkprotokoll entspricht und aufgrund der Protokollkonfigurationsinformation erstellt wurde. In einer Ausführungsform kann die Kommunikation zwischen der Steuerebene und der Datenebene zum Beispiel durch ein Zusammenschaltungs-Meldungsprotokoll bereitgestellt werden, wie aus der Technik bekannt. In anderen Ausführungsformen können Meldungs- oder Kommunikationsprotokolle zwischen der Steuerebene und der Datenebene genutzt werden.
  • Demgemäß kann bei Einsatz von Ausführungsformen der vorliegenden Erfindung die Entwicklung von Drittpartei-Protokollanwendungen für zum Beispiel Netzwerkprozessoren implementiert werden, ohne die Lieferantenquelle der Steuerebenen- oder Datenebenenelemente der Weiterleitungselemente, wie eines Netzwerkprozessors, berücksichtigen zu müssen. In anderen Worten, der Einsatz von Steuerschnittstellen und entsprechenden APIs gemäß Ausführungsformen der vorliegenden Erfindung gestattet die Zusammenarbeit zwischen Bauteilen mehrerer Lieferanten zur Implementierung von Netzwerkelementen, um einer Mehrzahl von variierenden Netzwerkverkehrsflüssen eine verbesserte sowie variierende Dienstgüte (QoS) bereitstellen zu können.
  • Wenn demzufolge Netzwerk-/Routingprotokollimplementierungen in Datenebenen isoliert werden, die von Entwicklern von Drittpartei-Protokollanwendungen stammen, wird Plattform-Unabhängigkeit erzielt, die zu einer verkürzten Zeitspanne bis zur Vermarktung von Produkten, einer verbesserten Leistung und zu geringeren Kosten und größeren Innovationsmöglichkeiten führt. Des weiteren ist die bereitgestellte Steuerschnittstelle vollkommen asynchron gestaltet, um jede Art von Internet-Zusammenschaltungs-Technologie zwischen der Steuer- und Datenebene zu unterstützen. Demzufolge können Steuer- und Datenebenen mit Hilfe von Netzwerktechnologien wie zum Beispiel Ethernet-Faser verbunden werden.
  • Desgleichen kann die Verbindung (Zusammenschaltungs-Link) zwischen den Steuer- und Datenebenen mit Hilfe von Bustechnologie wie kompakte PCI hergestellt werden, oder die Steuer- und Datenebenen können zusammengelegt und über Interprozeßkommunikationen miteinander verbunden werden. Ferner stellen die Steuerschnittstellen eine benutzerfreundliche, skalierbare und robuste Schnittstelle zur Konfigurierung des IPv4/IPv6/MPLS/DiffServ Verhaltens in einer Netzwerkprozessor-Datenebene bereit. In einer Ausführungsform wurde zum Beispiel ein Netzwerkprozessor, wie ihn die Intel Corporation in Santa Clare, Kalifornien, herstellt, für Managementanwendungen und Routing/MPLS/QoS Anwendungen eingesetzt, die auf der Steuerebene laufen. Ferner ist es leicht, die Integration von Drittpartei-Routing-Stapeln und Managementanwendungen zu implementieren, wenn eine Steuerschnittstelle in Übereinstimmung mit Ausführungsformen der vorliegenden Erfindung eingesetzt wird.
  • Andere Ausführungsformen
  • Mehrere Aspekte einer Implementierung der Steuerschnittstelle und API zur Konfigurierung des Verhaltens mehrerer Datenebenen wurden beschrieben. Verschiedene Implementierungen der Steuerschnittstelle und API stellen jedoch zahlreiche Merkmale wie die Komplementierung, Ergänzung und/oder den Ersatz der oben beschriebenen Merkmale bereit. Merkmale können in verschiedenen Ausführungen als Teil der Steuerebene oder als Teil eines Netzwerkelements implementiert werden. Außerdem wurde in der vorangegangenen Beschreibung zum Zwecke der Erklärung ein spezifisches Benennungssystem verwendet, um ein gründliches Verständnis der erfindungsgemäßen Ausführungsformen zu ermöglichen. Für den Fachmann ist jedoch erkenntlich, daß die spezifischen Details nicht erforderlich sind, um die Ausführungsformen der Erfindung zu praktizieren.
  • Außerdem, obwohl sich eine hier beschriebene Ausführungsform auf eine Steuerschnittstelle und APIs für ein Netzwerkelement bezieht, wird der Fachmann erkennen, daß die Ausführungsformen der vorliegenden Erfindung auch auf andere Systeme angewandt werden können. In der Tat werden Systeme, die verschiedene Netzwerkprotokolle mit einem Netzwerkelement unterstützen, werden durch die Ausführungsformen der vorliegenden Erfindung abgedeckt, wie in den beigefügten Ansprüchen definiert. Die oben beschriebenen Ausführungsformen wurden ausgewählt und beschrieben, um die Prinzipien der Ausführungsformen der Erfindung und ihre praktischen Anwendungen auf bestmögliche Weise zu erklären. Diese Ausführungsformen wurden ausgewählt, um anderen Fachleuten zu ermöglichen, die Erfindung und verschiedene Ausführungsformen mit verschiedenen Modifikationen optimal entsprechend ihrer jeweiligen geplanten Einsatzes auszunutzen.
  • Es versteht sich, daß diese Offenbarung lediglich zur Veranschaulichung dient, auch wenn zahlreiche Merkmale und Vorteile verschiedener Ausführungsformen der vorliegenden Erfindung in der obigen Beschreibung zusammen mit Einzelheiten der Struktur und der Funktion verschiedener Ausführungsformen der Erfindung angeführt wurden. In manchen Fällen wurden bestimmte Unterbaugruppen im Detail ausschließlich mit Bezug auf eine solche Ausführungsform beschrieben. Trotzdem wird erkannt und beabsichtigt, solche Unterbaugruppen in anderen Ausführungsformen der Erfindung zu verwenden. Im Detail können, insbesondere an der Struktur und dem Management von Teilen, Änderungen vorgenommen werden, die innerhalb der Prinzipien der erfindungsgemäßen Ausführungsformen liegen, und die sich über das volle Ausmaß der breiten allgemeinen Bedeutung der in den beigefügten Ansprüchen verwendeten Ausdrücke erstrecken können.
  • Da die beispielhaften Ausführungsformen und ihre optimale Verwendungsart offenbart wurden, können Modifikationen und Änderungen an den offenbarten Ausführungsformen vorgenommen werden, ohne vom Geltungsbereich der erfindungsgemäßen Ausführungsformen, wie in den folgenden Ansprüchen definiert, abzuweichen.

Claims (35)

  1. Ein Verfahren, das umfaßt: Empfangen, innerhalb einer Netzwerkelement-Steuerebene, einer Protokollkonfigurationsinformation, die einer Protokollanwendung entnommen wird, die eine Netzwerkprotokollanwendungs-Programmierschnittstelle (API) verwendet; Verarbeiten der empfangenen Protokollkonfigurationsinformation unter Einsatz einer Steuerschnittstelle entsprechend einem Netzwerkprotokoll, das von der empfangenen Protokollkonfigurationsinformation angegeben wird; und Konfigurieren, durch die Steuerschnittstelle, eines oder mehrerer Datenebenen-Weiterleitungselemente des Netzwerkelements gemäß der empfangenen Protokollkonfigurationsinformation.
  2. Verfahren nach Anspruch 1, wobei die Verarbeitung der empfangenen Protokollkonfigurationsinformation weiterhin umfaßt: Auswählen eines Weiterleitungselements innerhalb der Datenebene, um das von der Protokollkonfigurationsinformation angegebene Netzwerkprotokoll zu implementieren; Bestimmen einer oder mehrerer schnittstellenspezifischer Tabellen, die innerhalb des ausgewählten Weiterleitungselements gemäß der Protokollkonfigurationsinformation gebildet werden sollen; und Bestimmen eines oder mehrerer Einträge innerhalb der schnittstellenspezifischen Tabellen derart, daß ein die schnittstellenspezifischen Tabellen enthaltendes Weiterleitungselement Entscheidungen aufgrund der Einträge in den schnittstellenspezifischen Tabellen trifft.
  3. Verfahren nach Anspruch 1, wobei das Konfigurieren eines oder mehrerer Datenebenen-Weiterleitungselemente weiterhin umfaßt: Anmelden des von der Protokollkonfigurationsinformation angegebenen Netzwerkprotokolls bei der Datenebene, um den Empfang von Ereignissen von der Datenebene zu ermöglichen; Auswählen eines Weiterleitungselements aus einem oder mehrereren Weiterleitungselementen einer Netzwerkelement-Datenebene; Abfragen des ausgewählten Weiterleitungselements mit Bezug auf eine oder mehrere schnittstellenspezifischen Tabellen innerhalb des ausgewählten Weiterleitungselements gemäß der Protokollkonfigurationsinformation; und Erzeugen und Erstellen eines oder mehrerer Einträge in den schnittstellenspezifischen Tabellen des ausgewählten Weiterleitungselements, um das Datenebenenverhalten zu steuern, wenn Pakete entsprechend dem von der Protokollanwendung implementierten Netzwerkprotokoll verarbeitet werden.
  4. Verfahren nach Anspruch 3, wobei das Erzeugen weiterhin umfaßt: Abfragen des ausgewählten Weiterleitungselements, um die erzeugten schnittstellenspezifischen Tabellen zu bestimmen; und Ausfüllen der erzeugten schnittstellenspezifischen Tabellen gemäß der empfangenen Protokollkonfigurationsinformation.
  5. Verfahren nach Anspruch 1, wobei das Konfigurieren der Datenebenenelemente weiterhin umfaßt: Anmelden des Netzwerkprotokolls bei der Netzwerkelement-Datenebene, um den Empfang von Ereignissen von der Datenebene während des Hochfahrens zu ermöglichen; Auswählen eines Weiterleitungselements innerhalb der Datenebene des Netzwerkelements, um ein IPv4-Routingprotokoll gemäß der empfangenen Protokollkonfigurationsinformation zu implementieren; Abfragen des ausgewählten Weiterleitungselements mit Bezug auf eine innerhalb des ausgewählten Weiterleitungselements während des Hochfahrens erzeugte Weiterleitungstabelle; Abfragen des ausgewählten Weiterleitungselements mit Bezug auf eine innerhalb des ausgewählten Weiterleitungselements während des Hochfahrens erzeugte Adressenermittlungstabelle; Hinzufügen/Löschen von IPv4-Routing-Einträgen innerhalb der Weiterleitungstabelle, wenn eine Aktualisierungsanforderung für eine Protokollanwendungsroute empfangen wird; und Hinzufügen/Löschen von IPv4 Einträgen innerhalb der Adressenermittlungstabelle, wenn eine Aktualisierungsanforderung für eine Protokollanwendungsadressenermittlungstabelle empfangen wird.
  6. Verfahren nach Anspruch 1, wobei das Konfigurieren eines oder mehrerer Datenebenen-Weiterleitungselemente weiterhin umfaßt: Anmelden des Netzwerkprotokolls bei der Datenebene während des Hochfahrens, um den Empfang von Ereignissen von der Datenebene zu ermöglichen; Auswählen eines Weiterleitungselements der Datenebene des Netzwerkelements, um ein IPv6-Routingprotokoll gemäß der empfangenen Protokollkonfigurationsinformation zu implementieren; Abfragen des ausgewählten Weiterleitungselements mit Bezug auf eine innerhalb des ausgewählten Weiterleitungselements während des Hochfahrens erzeugte IPv6-Weiterleitungstabelle; Abfragen des ausgewählten Weiterleitungselements mit Bezug auf eine innerhalb des ausgewählten Weiterleitungselements während des Hochfahrens erzeugte IPv6-Nachbartabelle; Hinzufügen/Löschen von IPv6-Routing-Einträgen innerhalb der Weiterleitungstabelle, wenn eine Aktualisierungsanforderung für eine Protokollanwendungsroute empfangen wird; und Hinzufügen/Löschen von IPv6-Nachbareinträgen innerhalb der Nachbartabelle, wenn eine Aktualisierungsanforderung für eine Protokollanwendungsnachbartabelle empfangen wird.
  7. Verfahren nach Anspruch 1, wobei das Konfigurieren eines oder mehrerer Weiterleitungselemente der Datenebene weiterhin umfaßt: Erzeugen einer FTN-Tabelle während des Hochfahrens innerhalb eines Weiterleitungselements, die zur Implementierung eines MPLS-Protokolls ausgewählt wurde; Erzeugen einer ILM-Tabelle innerhalb des ausgewählten Weiterleitungselements während des Hochfahrens; Erzeugen einer FTN DiffServ Kontexttabelle innerhalb des ausgewählten Weiterleitungselements während des Hochfahrens; Erzeugen einer ILM DiffServ Kontexttabelle innerhalb des ausgewählten Weiterleitungselements während des Hochfahrens; Hinzufügen/Löschen von MPLS FTN Einträgen in der FTN Tabelle, wenn eine Aktualisierungsanforderung für eine Protokollanwendungs-FTN-Tabelle empfangen wird; Hinzufügen/Löschen von MPLS ILM Einträgen in der ILM Tabelle, wenn eine Aktualisierungsanforderung für eine Protokollanwendungs-ILM-Tabelle empfangen wird; Hinzufügen/Löschen von MPLS E-LSP Konfigurationseinträgen in der FTN DiffServ Kontexttabelle, wenn eine Aktualisierungsanforderung für eine Protokollanwendungs-MPLS E-LSP-Konfiguration empfangen wird; und Hinzufügen/Löschen von MPLS E-LSP Vorkonfigurationseinträgen in der ILM DiffServ Kontexttabelle, wenn eine Aktualisierungsanforderung für eine Protokollanwendungs-MPLS E-LSP-Vorkonfiguration empfangen wird.
  8. Verfahren nach Anspruch 1, wobei das Konfigurieren eines oder mehrerer Weiterleitungselemente der Datenebene weiterhin umfaßt: Erzeugen einer Mehrzahl von DiffServ Tabellen innerhalb eines Weiterleitungselements während des Hochfahrens, das zur Implementierung des DiffServ Netzwerkprotokolls ausgewählt wurde; Hinzufügen/Löschen von Filtereinträgen in einer DiffServ Classifier-Tabelle, die innerhalb des ausgewählten Weiterleitungselements erzeugt wurde, wenn eine Aktualisierungs-anforderung für einen Protokollanwendung-Classifier empfangen wurde; Hinzufügen/Löschen von „Meter”-Einträgen in einer DiffServ Meter-Tabelle, die innerhalb des ausgewählten Weiterleitungselements erzeugt wurde, wenn eine Aktualisierungsanforderung für ein Protokollanwendungs-Meter empfangen wurde; Hinzufügen/Löschen von „Marker”-Einträgen in einer DiffServ Marker-Tabelle, die innerhalb des ausgewählten Weiterleitungselements erzeugt wurde, wenn eine Aktualisierungsanforderung für einen Protokollanwendungs-Marker empfangen wurde; Hinzufügen/Löschen von „Dropper”-Einträgen in einer algorithmischen DiffServ „Dropper”-Tabelle, die innerhalb des ausgewählten Weiterleitungselements erzeugt wurde, wenn eine Aktualisierungsanforderung für einen Protokollanwendungs-Dropper empfangen wurde; Hinzufügen/Löschen von Abfrageeinträgen in einer DiffServ Warteschlangentabelle, die innerhalb des ausgewählten Weiterleitungselements erzeugt wurde, wenn eine Aktualisierungs-anforderung für eine Protokollanwendungswarteschlange empfangen wurde; und Hinzufügen/Löschen von Scheduler-Einträgen in einer DiffServ Scheduler-Tabelle, die innerhalb des ausgewählten Weiterleitungselements erzeugt wurde, wenn eine Aktualisierungs-anforderung für einen Protokollanwendungs-Scheduler empfangen wurde.
  9. Verfahren nach Anspruch 1, weiterhin umfassend: Empfangen eines Pakets innerhalb der Datenebene; Benachrichtigen, beim Auslösen eines Ereignisses, einer Protokollanwendung, die ein dem empfangenen Paket entsprechendes Netzwerkprotokoll implementiert; andernfalls Bestimmen eines Weiterleitungselements, das mit einem oder mehreren schnittstellenspezifischen Tabellen programmiert wurde, die einem mit dem empfangenen Paket verknüpften Netzwerkprotokoll entsprechen; Benachrichtigen, beim Auslösen eines Ereignisses, einer Protokollanwendung, die ein dem empfangenen Paket entsprechendes Netzwerkprotokoll implementiert; und andernfalls Verarbeitung des empfangenen Pakets gemäß eines von der Steuerschnittstelle erzeugten schnittstellenspezifischen Tabelleneintrags entsprechend der Protokollkonfigurationsinformation und verknüpft mit dem empfangenen Paket.
  10. Verfahren nach Anspruch 1, wobei das Netzwerkprotokoll API ein Routingprotokoll API, ein Vermittlungsprotokoll API oder ein QoS(quality-of-service)-Protokoll API ist.
  11. Verfahren nach Anspruch 10, wobei das Routingprotokoll API ein IPv4- oder ein IPv6-Protokoll ist.
  12. Verfahren nach Anspruch 10, wobei das Vermittlungsprotokoll API ein MPLS-Protokoll API ist.
  13. Verfahren nach Anspruch 10, wobei das QoS-Protokoll API ein DiffServ-Protokoll API ist.
  14. Verfahren nach Anspruch 1, wobei das Netzwerkprotokoll API Dienstgutemöglichkeiten umfaßt, um zu ermöglichen, Pakete eines bestimmten Verkehrsflusses mit einer gewünschten speziellen Handhabung zu verknüpfen.
  15. Verfahren nach Anspruch 14, wobei die gewünschte spezielle Handhabung mindestens einen Echtzeitdienst oder eine nicht standardmäßige („non-default”) Dienstgüte umfaßt.
  16. Ein computer-lesbares Speichermedium einschließlich Programmanweisungen an einen Computer, bei Ausführung durch einen Prozessor ein Verfahren durchzuführen, welches umfaßt: Empfangen, innerhalb einer Netzwerkelement-Steuerebene, einer Protokollkonfigurationsinformation, die einer Protokollanwendung entnommen wird, die eine Netzwerkprotokollanwendungs-Programmierschnittstelle (API) verwendet; Verarbeiten der empfangenen Protokollkonfigurationsinformation unter Einsatz einer Steuerschnittstelle entsprechend einem Netzwerkprotokoll, das von der empfangenen Protokollkonfigurationsinformation angegeben wird; und Konfigurieren, durch die Steuerschnittstelle, eines oder mehrerer Datenebenen-Weiterleitungselemente des Netzwerkelements gemäß der empfangenen Protokollkonfigurationsinformation.
  17. Computer-lesbares Speichermedium nach Anspruch 16, wobei das Verarbeiten der empfangenen Software ferner umfaßt: Auswählen eines Weiterleitungselements innerhalb der Datenebene zur Implementierung des von der Protokollkonfigurationsinformation angegebenen Netzwerkprotokolls; Bestimmen einer oder mehrerer innerhalb des ausgewählten Weiterleitungselements zu bildender schnittstellenspezifischer Tabellen gemäß der Protokollkonfigurationsinformation; und Bestimmen eines oder mehrerer Einträge innerhalb der schnittstellenspezifischen Tabellen derart, daß ein die schnittstellenspezifischen Tabellen enthaltendes Weiterleitungselement Entscheidungen entsprechend den Einträgen innerhalb der schnittstellenspezifischen Tabellen trifft.
  18. Computer-lesbares Speichermedium nach Anspruch 16, wobei das Konfigurieren eines oder mehrerer der Datenebenen-Weiterleitungselemente ferner umfaßt: Anmelden des von der Protokollkonfigurationsinformation angegebenen Netzwerkprotokolls bei der Datenebene, um den Empfang von Ereignisse von der Datenebene während des Hochfahrens zu ermöglichen; Auswählen eines Weiterleitungselements aus einem oder mehreren Weiterleitungselementen einer Netzwerkelement-Datenebene; Abfragen des ausgewählten Weiterleitungselements mit Bezug auf eine oder mehrere schnittstellenspezifischen Tabellen innerhalb des ausgewählten Weiterleitungselements entsprechend der Protokollkonfigurationsinformation; und Erzeugen und Erstellen eines oder mehrerer Einträge innerhalb der schnittstellenspezifischen Tabellen des ausgewählten Weiterleitungselements, um das Datenebenenverhalten zu steuern, wenn Pakete entsprechend dem von der Protokollanwendung implementierten Netzwerkprotokoll verarbeitet werden.
  19. Computer-lesbares Speichermedium nach Anspruch 16, wobei das Verfahren ferner umfaßt: Empfangen eines Pakets innerhalb der Datenebene; Benachrichtigen, beim Auslösen eines Ereignisses, einer Protokollanwendung, die ein dem empfangenen Paket entsprechendes Netzwerkprotokoll implementiert; andernfalls Bestimmen eines Weiterleitungselements, das mit einem oder mehreren schnittstellenspezifischen Tabellen programmiert wurde, die einem mit dem empfangenen Paket verknüpften Netzwerkprotokoll entsprechen; Benachrichtigen, beim Auslösen eines Ereignisses, einer Protokollanwendung, die ein dem empfangenen Paket entsprechendes Netzwerkprotokoll implementiert; und andernfalls Verarbeitung des empfangenen Pakets gemäß eines von der Steuerschnittstelle erzeugten schnittstellenspezifischen Tabelleneintrags entsprechend der Protokollkonfigurationsinformation und verknüpft mit dem empfangenen Paket.
  20. Verfahren nach Anspruch 16, wobei das Netzwerkprotokoll API ein Routingprotokoll API ein Vermittlungsprotokoll API oder ein QoS(quality-of-service)-Protokoll API ist.
  21. Verfahren nach Anspruch 20, wobei das Routingprotokoll API ein IPv4- oder ein IPv6-Protokoll ist.
  22. Verfahren nach Anspruch 20, wobei das Vermittlungsprotokoll API ein MPLS-Protokoll API ist.
  23. Verfahren nach Anspruch 20, wobei das QoS-Protokoll API ein DiffServ-Protokoll API ist.
  24. Verfahren nach Anspruch 16, wobei das Netzwerkprotokoll API Dienstgütemöglichkeiten umfaßt, um zu ermöglichen, Pakete eines bestimmten Verkehrsflusses mit einer gewünschten speziellen Handhabung zu verknüpfen.
  25. Verfahren nach Anspruch 24, wobei die gewünschte spezielle Handhabung mindestens einen Echtzeit-Dienst oder eine nicht standardmäßige („non-default”) Dienstgüte umfaßt.
  26. Ein Netzwerkelement, umfassend: eine Datenebene einschließlich eines oder mehrerer Weiterleitungselemente, um Pakete gemäß einer entsprechenden schnittstellenspezifischen Tabelle innerhalb eines entsprechenden Weiterleitungselements zu verarbeiten; eine Steuerebene, die mit der Datenebene über eine Zusammenschaltungs-Link verbunden ist, wobei die Steuerebene eine oder mehrere Protokollanwendungen enthält, die mit Hilfe einer Programmierschnittstelle (API) einer Netzwerkprotokollanwendung Netzwerkprotokolle implementieren; und eine Steuerschnittstelle, die zum Erzeugen und Konfigurieren von schnittstellenspezifischen Tabellen innerhalb der Datenebene entsprechend der Protokollkonfigurationsinformation, die den Protokollanwendungen der Steuerebene durch eine entsprechende Protokoll API entnommen wird, verwendet wird.
  27. Netzwerkelement nach Anspruch 26, wobei die Steuerschnittstelle ferner veranlaßt: die Auswahl eines Weiterleitungselements innerhalb der Datenebene, um das von der Protokollkonfigurationsinformation angegebene Netzwerkprotokoll zu implementieren; die Bestimmung einer oder mehrerer schnittstellenspezifischen Tabellen, die innerhalb des ausgewählten Weiterleitungselements gemäß der Protokollkonfigurationsinformation zu bilden sind; und die Bestimmung, gemäß der Protokollkonfigurationsinformation, von einem oder mehreren Einträgen innerhalb der schnittstellenspezifischen Tabellen, derart, daß ein die schnittstellenspezifischen Tabellen enthaltendes Weiterleitungselement Protokollentscheidungen gemäß den Einträgen innerhalb der schnittstellenspezifischen Tabellen trifft.
  28. Netzwerkelement nach Anspruch 26, wobei die Steuerschnittstelle ferner veranlaßt: Anmelden des von der Protokollkonfigurationsinformation angegebenen Netzwerkprotokolls bei der Datenebene, um den Empfang von Ereignissen von der Datenebene während des Hochfahrens zu ermöglichen; Auswählen eines Weiterleitungselements aus einem oder mehreren Weiterleitungselementen einer Netzwerkelement-Datenebene; Abfragen des ausgewählten Weiterleitungselements mit Bezug auf eine oder mehrere schnittstellenspezifischen Tabellen, die während des Hochfahrens innerhalb des ausgewählten Weiterleitungselements erzeugt werden; und Erzeugen und Erstellen eines oder mehrerer Einträge innerhalb der schnittstellenspezifischen Tabellen des ausgewählten Weiterleitungselements entsprechend der entnommenen Protokollkonfigurationsinformation.
  29. Netzwerkelement nach Anspruch 26, wobei die Steuerschnittstelle ferner veranlaßt: den Empfang eines Pakets innerhalb der Datenebene; die Bestimmung eines Weiterleitungselements, das mit einer oder mehreren schnittstellenspezifischen Tabellen programmiert wurde, die einem mit dem Paket verknüpften Netzwerkprotokoll entsprechen; die Verarbeitung des Pakets gemäß eines von der Steuerschnittstelle erzeugten schnittstellenspezifischen Tabelleneintrags entsprechend der empfangenen Protokollkonfigurationsinformation; und bei Auslösung eines Ereignisses das Benachrichtigen der Protokollanwendung, die ein mit dem Paket verknüpftes Netzwerkprotokoll implementiert.
  30. Netzwerkelement nach Anspruch 26, wobei die Zusammenschaltungs-Link ein Bus, ein Kabel, eine optische Faser oder eine Ethernet-Link ist.
  31. Ein System umfaßt: ein Netzwerk mit einer Mehrzahl von gekoppelten Netzwerkelementen, umfassend: eine Datenebene mit einem oder mehreren Weiterleitungselementen, um das empfangene Paket gemäß einer entsprechenden schnittstellenspezifischen Tabelle innerhalb eines entsprechenden Weiterleitungselements zu verarbeiten; eine Steuerebene, die über eine Zusammenschaltungs-Link mit der Datenebene gekoppelt ist, wobei die Steuerebene eine oder mehrere Protokollanwendungen umfaßt, die Netzwerkprotokolle mit Hilfe einer Programmierschnittstelle (API) von Netzwerkprotokollanwendungen implementieren; und eine Steuerschnittstelle, die zum Erzeugen und Konfigurieren der schnittstellenspezifischen Tabellen innerhalb der Datenebene entsprechend der Protokollkonfigurationsinformation verwendet wird, die den Protokollanwendungen der Steuerebene durch ein entsprechendes Protokoll API entnommen wird.
  32. System nach Anspruch 31, wobei die Steuerschnittstelle ferner veranlaßt: die Auswahl eines Weiterleitungselements innerhalb der Datenebene, um das von der Protokollkonfigurationsinformation angegebene Netzwerkprotokoll zu implementieren; die Bestimmung einer oder mehrerer schnittstellenspezifischer Tabellen, die innerhalb des ausgewählten Weiterleitungselements entsprechend der Protokollkonfigurationsinformation zu bilden sind; und die Bestimmung, gemäß der Protokollkonfigurationsinformation, von einem oder mehreren Einträgen innerhalb der schnittstellenspezifischen Tabellen, derart, daß ein die schnittstellenspezifischen Tabellen enthaltendes Weiterleitungselement Protokollentscheidungen gemäß den Einträgen innerhalb der schnittstellenspezifischen Tabellen trifft.
  33. Netzwerkelement nach Anspruch 31, wobei die Steuerschnittstelle ferner veranlaßt: das Anmelden des von der Protokollkonfigurationsinformation angegebenen Netzwerkprotokolls bei der Datenebene, um den Empfang von Ereignissen von der Datenebene während des Hochfahrens zu ermöglichen; das Auswählen eines Weiterleitungselements aus einem oder mehreren Weiterleitungselementen einer Netzwerkelement-Datenebene; das Abfragen des ausgewählten Weiterleitungselements mit Bezug auf eine oder mehrere schnittstellenspezifischen Tabellen, die während des Hochfahrens innerhalb des ausgewählten Weiterleitungselements erzeugt werden; und das Erzeugen und Erstellen eines oder mehrerer Einträge innerhalb der schnittstellenspezifischen Tabellen des ausgewählten Weiterleitungselements gemäß der entnommenen Protokollkonfigurationsinformation.
  34. Netzwerkelement nach Anspruch 31, wobei die Steuerschnittstelle ferner veranlaßt: den Empfang eines Pakets innerhalb der Datenebene; die Bestimmung eines Weiterleitungselements, das mit einer oder mehreren schnittstellenspezifischen Tabellen entsprechend einem mit dem Paket verknüpften Netzwerkprotokoll programmiert wurde; die Verarbeitung des Pakets gemäß eines von der Steuerschnittstelle erzeugten schnittstellenspezifischen Tabelleneintrags entsprechend der empfangenen Protokollkonfigurationsinformation; und bei Auslösung eines Ereignisses das Benachrichtigen der Protokollanwendung, die ein mit dem Paket verknüpftes Netzwerkprotokoll implementiert.
  35. Netzwerkelement nach Anspruch 26, wobei die Zusammenschaltungs-Link ein Bus, ein Kabel, eine optische Faser oder eine Ethernet-Link ist.
DE112004000122T 2003-01-07 2004-01-02 Vorrichtung und Verfahren zum Konfigurieren des Datenebenenverhaltens auf Netzwerkweiterleitungselementen Withdrawn DE112004000122T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/338,291 2003-01-07
US10/338,291 US7646759B2 (en) 2003-01-07 2003-01-07 Apparatus and method for configuring data plane behavior on network forwarding elements
PCT/US2004/000094 WO2004064309A2 (en) 2003-01-07 2004-01-02 An apparatus and method for configuring data plane behavior on network forwarding elements

Publications (1)

Publication Number Publication Date
DE112004000122T5 true DE112004000122T5 (de) 2013-01-17

Family

ID=32681414

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112004000122T Withdrawn DE112004000122T5 (de) 2003-01-07 2004-01-02 Vorrichtung und Verfahren zum Konfigurieren des Datenebenenverhaltens auf Netzwerkweiterleitungselementen

Country Status (7)

Country Link
US (1) US7646759B2 (de)
JP (2) JP2006515499A (de)
KR (1) KR100747181B1 (de)
CN (1) CN100401254C (de)
DE (1) DE112004000122T5 (de)
GB (1) GB2413032B (de)
WO (1) WO2004064309A2 (de)

Families Citing this family (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7983239B1 (en) 2003-01-07 2011-07-19 Raytheon Bbn Technologies Corp. Systems and methods for constructing a virtual model of a multi-hop, multi-access network
US7415028B1 (en) * 2003-02-11 2008-08-19 Network Equipment Technologies, Inc. Method and system for optimizing routing table changes due to ARP cache invalidation in routers with split plane architecture
US7397778B2 (en) * 2003-04-21 2008-07-08 Avaya Technology Corp. Method and apparatus for predicting the quality of packet data communications
US7881229B2 (en) * 2003-08-08 2011-02-01 Raytheon Bbn Technologies Corp. Systems and methods for forming an adjacency graph for exchanging network routing data
US7606927B2 (en) * 2003-08-27 2009-10-20 Bbn Technologies Corp Systems and methods for forwarding data units in a communications network
US7606140B2 (en) * 2003-08-28 2009-10-20 Alcatel Lucent Distributed and disjoint forwarding and routing system and method
US8166204B2 (en) * 2003-08-29 2012-04-24 Raytheon Bbn Technologies Corp. Systems and methods for automatically placing nodes in an ad hoc network
US20050265234A1 (en) * 2004-05-13 2005-12-01 Marconi Communications, Inc. Diffserv path object for network management
FI117587B (fi) * 2004-06-18 2006-11-30 Nethawk Oyj Menetelmä, laite ja tietokoneohjelmatuote tiedonsiirtoyhteyksien monitorointiin
US8953432B2 (en) * 2004-11-01 2015-02-10 Alcatel Lucent Softrouter dynamic binding protocol
US8068408B2 (en) * 2004-11-01 2011-11-29 Alcatel Lucent Softrouter protocol disaggregation
US8996722B2 (en) * 2004-11-01 2015-03-31 Alcatel Lucent Softrouter feature server
US9014181B2 (en) * 2004-11-01 2015-04-21 Alcatel Lucent Softrouter separate control network
US9100266B2 (en) * 2004-11-01 2015-08-04 Alcatel Lucent SoftRouter protocol failovers
US7941512B2 (en) * 2004-12-13 2011-05-10 Cisco Technology, Inc. Use of IPv6 in access networks
CN100505684C (zh) * 2005-03-29 2009-06-24 国际商业机器公司 网络系统,流量均衡方法,网络监视设备和主机
CN1842051A (zh) * 2005-03-30 2006-10-04 国际商业机器公司 流量均衡设备和方法以及使用它们的网络转发设备和方法
US7870565B2 (en) * 2005-06-30 2011-01-11 Intel Corporation Systems and methods for secure host resource management
US7742477B1 (en) * 2006-02-03 2010-06-22 Cisco Technology, Inc. Interconnectivity between autonomous systems
US20070233885A1 (en) * 2006-03-31 2007-10-04 Buskens Richard W Architectures for assuring the inter-domain transport of QoS sensitive information
JP4714081B2 (ja) * 2006-06-01 2011-06-29 アラクサラネットワークス株式会社 ネットワーク接続装置
US8279885B2 (en) * 2007-09-25 2012-10-02 Packeteer, Inc. Lockless processing of command operations in multiprocessor systems
US8059532B2 (en) * 2007-06-21 2011-11-15 Packeteer, Inc. Data and control plane architecture including server-side triggered flow policy mechanism
US9419867B2 (en) * 2007-03-30 2016-08-16 Blue Coat Systems, Inc. Data and control plane architecture for network application traffic management device
US8111707B2 (en) * 2007-12-20 2012-02-07 Packeteer, Inc. Compression mechanisms for control plane—data plane processing architectures
TWI423622B (zh) * 2007-11-26 2014-01-11 Ind Tech Res Inst 路由系統、控制元件、路由方法及交換表和轉送表的產生方法
US8199750B1 (en) * 2007-12-18 2012-06-12 World Wide Packets, Inc. Communicating with a control plane using a forwarding information format and control plane processing of packets devoid of a virtual switch identifier
US8428021B2 (en) * 2009-05-14 2013-04-23 Avaya, Inc. Architecture using inexpensive, managed wireless switching points to deliver large scale WLAN
US9531716B1 (en) * 2009-08-07 2016-12-27 Cisco Technology, Inc. Service enabled network
US9054943B2 (en) * 2009-12-23 2015-06-09 Citrix Systems, Inc. Systems and methods for mixed mode handling of IPv6 and IPv4 traffic by a virtual server
US8804720B1 (en) 2010-12-22 2014-08-12 Juniper Networks, Inc. Pass-through multicast admission control signaling
CN102148764B (zh) * 2011-05-09 2013-12-11 杭州华三通信技术有限公司 一种基于QoS业务的数据处理方法和设备
CN103748841B (zh) * 2011-08-18 2017-03-15 瑞典爱立信有限公司 用于控制数据包流的数据面流的方法和中央控制实体
US8930604B2 (en) 2012-07-17 2015-01-06 Lsi Corporation Reliable notification of interrupts in a network processor by prioritization and policing of interrupts
CN103986660B (zh) * 2014-05-30 2018-01-23 华为技术有限公司 加载微码的装置以及加载微码的方法
US9450866B2 (en) * 2014-07-11 2016-09-20 Telefonaktiebolaget L M Ericsson (Publ) Forwarding table performance control in SDN
US10219522B2 (en) * 2015-02-06 2019-03-05 Naturex S.A. Antimicrobial compositions
US10721206B2 (en) 2015-02-27 2020-07-21 Arista Networks, Inc. System and method of persistent address resolution synchronization
US10587468B2 (en) 2015-04-27 2020-03-10 Arista Networks, Inc. System and method of a graceful reboot of a network controller
WO2017184112A1 (en) * 2016-04-18 2017-10-26 Arista Networks, Inc. System and method of a graceful reboot of a network controller
US10530692B2 (en) * 2015-09-04 2020-01-07 Arista Networks, Inc. Software FIB ARP FEC encoding
US10075567B1 (en) * 2016-02-08 2018-09-11 Barefoot Networks, Inc. Packet generation in the data plane of a forwarding element
US10848420B2 (en) 2018-02-12 2020-11-24 Cisco Technology, Inc. Dynamic forwarding features in network elements
CN112558935B (zh) * 2020-12-10 2023-05-30 中盈优创资讯科技有限公司 一种基于编排控制流程业务开通的网元控制引擎模块
CN113282296B (zh) * 2021-05-31 2022-12-13 河南信大网御科技有限公司 基于数据面编程的数据转发方法及装置
CN114157461B (zh) * 2021-11-22 2023-08-01 绿盟科技集团股份有限公司 工控协议数据流处理方法、装置、设备及存储介质

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06197111A (ja) * 1992-10-26 1994-07-15 Hitachi Ltd インタネットワーク装置
US5537417A (en) * 1993-01-29 1996-07-16 International Business Machines Corporation Kernel socket structure for concurrent multiple protocol access
US5699350A (en) * 1995-10-06 1997-12-16 Canon Kabushiki Kaisha Reconfiguration of protocol stacks and/or frame type assignments in a network interface device
US6393496B1 (en) * 1995-11-09 2002-05-21 Curtis A. Schwaderer Operating system and network independent application program interface for use in an intelligent communication device
US5987517A (en) * 1996-03-27 1999-11-16 Microsoft Corporation System having a library of protocol independent reentrant network interface functions for providing common calling interface for communication and application protocols
US6185566B1 (en) * 1998-05-05 2001-02-06 Robert A. Adams Network management system having an embedded network database
JP3645733B2 (ja) * 1999-02-24 2005-05-11 株式会社日立製作所 ネットワーク中継装置及びネットワーク中継方法
US6532241B1 (en) * 1999-05-20 2003-03-11 Cisco Technology, Inc. Method and apparatus for determining SNA sessions using various protocols for transport based on filter criteria
US7203740B1 (en) * 1999-12-22 2007-04-10 Intel Corporation Method and apparatus for allowing proprietary forwarding elements to interoperate with standard control elements in an open architecture for network devices
KR100454674B1 (ko) * 2000-08-28 2004-11-03 엘지전자 주식회사 라우터의 자동 설정 장치 및 방법
US6681262B1 (en) * 2002-05-06 2004-01-20 Infinicon Systems Network data flow optimization

Also Published As

Publication number Publication date
GB0513407D0 (en) 2005-08-03
WO2004064309A2 (en) 2004-07-29
US7646759B2 (en) 2010-01-12
GB2413032B (en) 2006-05-17
GB2413032A (en) 2005-10-12
JP2006515499A (ja) 2006-05-25
JP5160214B2 (ja) 2013-03-13
KR20050095841A (ko) 2005-10-04
JP2008125116A (ja) 2008-05-29
CN1723439A (zh) 2006-01-18
CN100401254C (zh) 2008-07-09
US20040131079A1 (en) 2004-07-08
KR100747181B1 (ko) 2007-08-07
WO2004064309A3 (en) 2004-12-23

Similar Documents

Publication Publication Date Title
DE112004000122T5 (de) Vorrichtung und Verfahren zum Konfigurieren des Datenebenenverhaltens auf Netzwerkweiterleitungselementen
DE60024228T2 (de) Dynamische zuweisung verkehrsklassen an einer prioritätswarteschlange in einer paketbeförderungsvorrichtung
JP4025569B2 (ja) ポリシーベースネットワーク制御方法
DE60216221T2 (de) Verfahren und Vorrichtung zur automatischen Erkennung von logischen Verbindungen zwischen Netzvorrichtungen
EP1439663B1 (de) Verfahren für eine Klassifizierung von Netzwerk-Komponenten eines paket-orientierten Netzwerks
DE60318651T2 (de) Verfahren und Vorrichtung zur dynamischen Konfigurationsverwaltung
DE69832354T2 (de) Netzwerkverwaltungsrahmenwerk
DE112012002998B4 (de) Virtuelle Netzwerküberlagerungen
DE60120847T2 (de) Mehrprotokollvermittler und Verfahren dazu
DE60102367T2 (de) Netzoptimierungsmethode
DE69430276T2 (de) Socketstruktur für gleichzeitigen Mehrfach-Protokollzugriff
DE60032018T2 (de) Verfahren und vorrichtung zur weiterleitung der proprietären daten in einer offenen architektur für netzwerkgeräte
DE60201682T2 (de) Anordnung zur erzeugung mehrerer virtueller warteschlangenpaare aus einer komprimierten warteschlange auf der basis gemeinsamer attribute
DE112008002550B4 (de) Verfahren und System für virtuelle Schnittstellenkommunikation
DE69928408T2 (de) Virtuelle transportschicht-schnittstelle und nachrichten untersystem für hochgeschwindigkeit-datenübertragung zwischen heterogenen computersystemen
DE60120321T2 (de) Dienstqualitätenanpassung und -bereitstellung für einen Datenkommunikationsschalter und zugehöriges Verfahren
DE69913176T2 (de) Verfahren und system zum eingeben von äusserem inhalt in interaktiven netzsitzungen
DE60029879T2 (de) System zur mehrschichtigen Bereitstellung in Computernetzwerken
DE60214386T2 (de) Busprotokoll
DE102014117461A1 (de) Hybrider SDN-Controller
DE10205108A1 (de) System und Verfahren zum Zugreifen auf Softwarekomponenten in einer verteilten Netzwerkumgebung
DE60222656T2 (de) Vorrichtung und verfahren für effizientes multicasting von datenpaketen
DE60311800T2 (de) Verfahren und vorrichtung zur verbesserung der netzwerkleitweglenkung
Boros Policy-based network management with SNMP
DE102015108145A1 (de) Lokale Dienstverkettung mit virtuellen Maschinen und virtualisierten Behältern in software-definierter Vernetzung

Legal Events

Date Code Title Description
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee
R409 Internal rectification of the legal status completed
R074 Re-establishment allowed
R409 Internal rectification of the legal status completed
R016 Response to examination communication
R016 Response to examination communication
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee