DE102019105288A1 - Technologien zur Paketweiterleitung bei Eingangswarteschlangenüberlauf - Google Patents

Technologien zur Paketweiterleitung bei Eingangswarteschlangenüberlauf Download PDF

Info

Publication number
DE102019105288A1
DE102019105288A1 DE102019105288.2A DE102019105288A DE102019105288A1 DE 102019105288 A1 DE102019105288 A1 DE 102019105288A1 DE 102019105288 A DE102019105288 A DE 102019105288A DE 102019105288 A1 DE102019105288 A1 DE 102019105288A1
Authority
DE
Germany
Prior art keywords
nic
computing device
response
determination
network packet
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.)
Pending
Application number
DE102019105288.2A
Other languages
English (en)
Inventor
Andrey Chilikin
Vadim Sukhomlinov
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 DE102019105288A1 publication Critical patent/DE102019105288A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9084Reactions to storage capacity overflow
    • H04L49/9089Reactions to storage capacity overflow replacing packets in a storage arrangement, e.g. pushout
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2441Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/33Flow control; Congestion control using forward notification
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9036Common buffer combined with individual queues
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9063Intermediate storage in different physical parts of a node or terminal
    • H04L49/9068Intermediate storage in different physical parts of a node or terminal in the network interface card

Abstract

Technologien für die Paketweiterleitung unter Eingangswarteschlangenüberlaufbedingungen umfassen eine Rechenvorrichtung, die dazu ausgelegt ist, ein Netzpaket von einer anderen Rechenvorrichtungen zu empfangen, zu bestimmen, ob ein globaler Paketpuffer des NIC voll ist, und als Antwort auf eine Bestimmung, dass der globale Paketpuffer voll ist, zu bestimmen, ob alle globalen Paketpuffereinträge weitergeleitet werden sollen. Die Rechenvorrichtung ist zudem dazu ausgelegt, als Antwort auf eine Bestimmung, nicht alle globalen Paketpuffereinträge weiterzuleiten, einen Auswahlfilter mit einer oder mehreren Eigenschaften des empfangenen Netzpakets zu vergleichen und als Antwort auf eine Bestimmung, dass das Auswahlfilter mit der einen oder den mehreren Eigenschaften des empfangenen Netzpakets übereinstimmt, das empfangene Netzpaket an einen vordefinierten Ausgang weiterzuleiten. Andere Ausführungsformen werden hierin beschrieben.

Description

  • Hintergrund
  • Moderne Rechenvorrichtungen sind zu allgegenwärtigen Werkzeugen für den persönlichen, geschäftlichen und sozialen Gebrauch geworden. Als solche können viele modern Rechenvorrichtungen eine Verbindung zu verschiedenen Datennetzen einschließlich des Internets herzustellen, um Datenkommunikation über die verschiedenen Datennetze mit unterschiedlichen Geschwindigkeitsraten zu senden und zu empfangen. Um die Kommunikation zwischen Rechenvorrichtungen zu erleichtern, enthalten die Datennetze typischerweise eine oder mehrere Netzrechenvorrichtungen (z. B. Computerserver, Speicherserver usw.), um Kommunikation zu leiten (z. B. über Switches, Router usw.), die bei einem Netz eingeht/ausgeht (z. B. Nord-Süd-Netzverkehr) und zwischen Netzrechenvorrichtungen in dem Netz stattfindet (z. B. Ost-West-Netzverkehr). Bei aktuellen paketvermittelten Netzarchitekturen werden Daten in Form von Netzpaketen zwischen vernetzten Rechenvorrichtungen übertragen. Auf einer hohen Ebene werden Daten an einer Quellrechenvorrichtung in ein Netzpaket paketiert, das dann an eine Sendekomponente (z. B. einen Netzschnittstellencontroller (NIC) der jeweiligen Quellrechenvorrichtung) gesendet wird, die für das Absenden des Netzpakets an eine Zielrechenvorrichtung über ein Netz zuständig ist.
  • Bei Empfang der Netzpakete führt die Zielrechenvorrichtung typischerweise eine oder mehrere Operationen aus, um mindestens einen Teil jedes Netzpakets zu verarbeiten. Solche Operationen können Sicherheitsoperationen, Inhaltsüberprüfungsoperationen, Netzpaketeigenschafts-Identifizierungsoperationen, Rechenoperationen usw. sein. Unter bestimmten Bedingungen können jedoch Netzpakete von einer oder sogar mehreren Quellrechenvorrichtungen mit einer hohen Nachrichtenrate empfangen werden, was die Betriebsmittel der Zielrechenvorrichtung überlasten kann und zu einem Überlauf führen kann. Solche Überlaufbedingungen führen normalerweise dazu, dass Netzpakete verworfen werden, was aufgrund von Zeitüberschreitungen und Neuübertragungen zu einer Verlangsamung des Netzes führen kann sowie die Sicherheit beeinträchtigen kann. Um diese Probleme zu beheben, wurden verschiedene Techniken implementiert, wie z. B. die Ethernet-Flusssteuerung 802.3x und die prioritätsbasierte Flusssteuerung (PFC), um die Paketabsendung an den Quellrechenvorrichtungen zu verlangsamen, sowie Watchdogs und Softwareüberwachungsagenten, die die Ansprechbarkeit einer Anwendungs- oder Überwachungssoftware prüfen, und/oder Hardware-Telemetrie. Solche Implementierungen können jedoch nachteilige Nebenwirkungen haben. Derzeitige PFC-Lösungen können beispielsweise die Gesamtbandbreite reduzieren, was dazu führen kann, dass Betriebsmittel nicht ausgelastet werden. Außerdem können solche Implementierungen das Verstreichen einer gewissen Zeitdauer erfordern, um einen nachteiligen Zustand zu überprüfen, was dazu führen kann, dass eine beträchtliche Anzahl von Netzpaketen während dieser verstrichenen Zeitdauer verworfen wird.
  • Figurenliste
  • Die hierin beschriebenen Konzepte sind beispielhaft und nicht einschränkend in den beigefügten Figuren dargestellt. Zur Vereinfachung und Verdeutlichung der Darstellung sind Elemente, die in den Figuren dargestellt sind, nicht notwendigerweise maßstabsgetreu gezeichnet. Wo es angemessen erschien, wurden Bezugszeichen unter den Figuren wiederholt, um entsprechende oder analoge Elemente anzugeben.
    • 1 ist ein vereinfachtes Blockschaltbild mindestens einer Ausführungsform eines Systems zur Paketweiterleitung, das eine Quellrechenvorrichtung enthält, die kommunikationstechnisch mit einer Netzcomputervorrichtung gekoppelt ist, unter Eingangswarteschlangenüberlaufbedingungen;
    • 2 ist ein vereinfachtes Blockdiagramm mindestens einer Ausführungsform der Netzrechenvorrichtung des Systems von 1;
    • 3 ist ein vereinfachtes Blockdiagramm mindestens einer Ausführungsform einer Umgebung der Netzrechenvorrichtung des Systems von 1;
    • 4A-4C sind ein vereinfachtes Blockdiagramm mindestens einer Ausführungsform eines Verfahrens zur Paketweiterleitung unter Eingangswarteschlangenüberlaufbedingungen, das von der Netzrechenvorrichtung von 1-3 ausgeführt werden kann;
    • 5 ist ein vereinfachtes Blockdiagramm mindestens einer veranschaulichenden Ausführungsform der Netzrechenvorrichtung von 1-3, die einen Netzschnittstellencontroller (NIC) enthält, auf dem die physischen und virtuellen Elemente für die Paketweiterleitung unter Eingangswarteschlangenüberlaufbedingungen integriert sind; und
    • 6 ist ein vereinfachtes Blockdiagramm mindestens einer Ausführungsform der Netzrechenvorrichtung von 1-3, die ein Ein-Chip-System (SoC) umfasst, dass einen Switch und einen NIC, auf dem die physischen und virtuellen Elemente für die Paketweiterleitung unter Eingangswarteschlangenüberlaufbedingungen integriert sind, enthält.
  • Genaue Beschreibung der Zeichnungen
  • Obwohl die Konzepte der vorliegenden Offenbarung für verschiedene Abwandlungen und alternative Formen geeignet sind, sind spezifische Ausführungsformen davon beispielhaft in den Zeichnungen gezeigt und werden hier im Einzelnen beschrieben. Es sollte jedoch verstanden werden, dass die Konzepte der vorliegenden Offenbarung nicht auf die speziellen offenbarten Formen beschränkt sein sollen, sondern im Gegenteil alle Abwandlungen, Äquivalente und Alternativen abdecken sollen, die mit der vorliegenden Offenbarung und den beigefügten Ansprüchen konsistent sind.
  • Verweise in der Beschreibung auf „eine Ausführungsform“, „eine veranschaulichende Ausführungsform“ usw. geben an, dass die beschriebene Ausführungsform ein bestimmtes Merkmal, eine bestimmte Struktur oder eine bestimmte Eigenschaft enthalten kann, aber es muss nicht notwendigerweise jede Ausführungsform das bestimmte Merkmal, die bestimmte Struktur oder die bestimmte Eigenschaft aufweisen. Darüber hinaus beziehen sich solche Ausdrücke nicht notwendigerweise auf dieselbe Ausführungsform. Wenn ein bestimmtes Merkmal, eine bestimmte Struktur oder eine bestimmte Eigenschaft in Verbindung mit einer Ausführungsform beschrieben ist, haben Fachleute die Kenntnisse, um ein solches Merkmal, eine solche Struktur oder eine solche Eigenschaft in Verbindung mit anderen Ausführungsformen auszuführen, unabhängig davon, ob dies explizit beschrieben ist oder nicht. Darüber hinaus sollte erkannt werden, dass dann, wenn Elemente in einer Liste in der Form von „mindestens eines von A, B und C“ enthalten sind, dies (A); (B) ; (C); (A und B); (A und C); (B und C); oder (A, B und C) bedeuten kann. In ähnlicher Weise kann ein Auflisten von Elementen in der Form „mindestens eines von A, B oder C“ (A); (B) ; (C); (A und B); (A und C); (B und C); oder (A, B und C) bedeuten.
  • Die offenbarten Ausführungsformen können in einigen Fällen in Hardware, Firmware, Software oder einer beliebigen Kombination davon implementiert sein. Die offenbarten Ausführungsformen können auch als Befehle implementiert sein, die von einem oder mehreren transitorischen oder nicht transitorischen maschinenlesbaren (z. B. computerlesbaren) Speichermedien getragen werden oder auf diesen gespeichert sein und die von einem oder mehreren Prozessoren gelesen und ausgeführt werden können. Ein maschinenlesbares Speichermedium kann als eine beliebige Speichervorrichtung, ein beliebiger Mechanismus oder eine beliebige andere physische Struktur zum Speichern oder Übertragen von Informationen in einer von einer Maschine lesbaren Form (z. B. einem flüchtigen oder nichtflüchtigen Speicher, einer Medienplatte oder anderen Medienvorrichtung) ausgeführt sein.
  • In den Zeichnungen können einige Struktur- oder Verfahrensmerkmale in spezifischen Anordnungen und/oder Reihenfolgen gezeigt sein. Es sollte jedoch beachtet werden, dass solche spezifischen Anordnungen und/oder Reihenfolgen nicht erforderlich sein können. Vielmehr können solche Merkmale in einigen Ausführungsformen in einer anderen Art und/oder Reihenfolge angeordnet sein als in den veranschaulichenden Figuren gezeigt. Darüber hinaus soll die Aufnahme eines Struktur- oder Verfahrensmerkmals in eine bestimmte Figur nicht bedeuten, dass ein solches Merkmal in allen Ausführungsformen erforderlich ist, und es kann in einigen Ausführungsformen nicht enthalten sein oder mit anderen Merkmalen kombiniert sein.
  • Unter Bezugnahme auf 1 umfasst ein System 100 zur Paketweiterleitung unter Eingangswarteschlangenüberlaufbedingungen in einer beispielhaften Ausführungsform eine Quellrechenvorrichtung 102, die über ein Netz 104 kommunikationstechnisch mit einer Netzrechenvorrichtungen 106 gekoppelt ist. Im Einsatz empfängt und verarbeitet die Netzrechenvorrichtungen 106 Netzpakete (z. B. Nachrichten, Ethernet-Rahmen usw.), die von der Quellrechenvorrichtung 102 empfangen werden. Obwohl eine einzelne Quellrechenvorrichtung 102 dargestellt ist, sollte verstanden werden, dass die Netzrechenvorrichtungen 106 zu jedem Zeitpunkt Netzpakete von mehreren Quellrechenvorrichtungen 102 empfangen kann. Unter bestimmten Bedingungen wie beispielsweise Betriebsmittelauslastung kann die Netzrechenvorrichtung 106 Netzpakete mit einer Leitungsrate empfangen, die schneller ist als die Netzrechenvorrichtung 106 diese verarbeiten kann, was zu einem Überlaufzustand führen kann.
  • Unter solchen Bedingungen ist die Netzrechenvorrichtung 106 dazu ausgelegt, zu detektieren, dass ein Überlaufzustand bevorsteht (z. B. durch Überwachen von Eingangspaketpufferwarteschlangen) und die Netzpakete an ein anderes Ziel leiten. Wenn die Netzrechenvorrichtung 106 beispielsweise detektiert, dass die beabsichtigte virtuelle Funktion nicht aktiv ist (z. B. keine Netzpaketwarteschlangen abfragt, eine Empfangsnetzpaketpuffer-Schwelle erreicht wurde, keine Empfangsdeskriptoren verfügbar usw.), ist die Netzrechenvorrichtung 106 dazu ausgelegt, das Netzpaket umzuleiten. In Abhängigkeit von den derzeit verfügbaren Betriebsmitteln und/oder Konfigurationseinstellungen kann die Netzrechenvorrichtung 106 dazu ausgelegt sein, das Netzpaket intern umzuleiten (z. B. an eine andere physische/virtuelle Funktion), das Netzpaket extern umzuleiten (z. B. an eine andere Netzrechenvorrichtung, eine Bereitschaftsrechenvorrichtung usw.) oder das Paket vollkommen zu verwerfen.
  • Dementsprechend kann die Netzrechenvorrichtung einen feinkörnigen Grad an weitergeleitetem Verkehr bieten, im Vergleich zu dem bestehenden Schließen bei Fehler/Öffnen bei Fehler pro Port. Beispielsweise würde nur der Verkehr für spezifische Warteschlangen oder virtuelle Switch-Schnittstellen weitergeleitet. Ferner kann dies darauf erweitert werden, dass nur bestimmte Verkehrsklassen, Ethertypen oder IP-Protokolle weitergeleitet werden. In einem veranschaulichenden Beispiel, in dem Steuer- und Anwenderebenenpakete mit derselben virtuellen Funktion verarbeitet werden, werden nur die Steuerpakete an das konfigurierte Ziel weitergeleitet. Solche Steuerpakete können durch einen bestimmten Ethertyp, Erkennung mit Punkt-zu-Punkt-Protokolls über Ethernet (PPPoE), ein bestimmtes IP-Protokoll, ein Streamsteuerübertragungsprotokoll (SCTP), ein virtuelles lokales Netz (VLAN)/Multiprotokoll-Kennsatzvermittlung (MPLS) usw. detektiert werden
  • Die Quellrechenvorrichtung 102 kann als beliebige Art von Rechen- oder Computervorrichtung ausgeführt sein, die die hier beschriebenen Funktionen ausführen kann, was ohne Einschränkung darauf eine tragbare Rechenvorrichtung (z. B. Smartphone, Tablet, Laptop, Notebook, am Körper tragbare Vorrichtung usw.), die mobile Hardware (z. B. Prozessor, Speicher, Ablagespeicher, drahtlose Kommunikationsschaltungsanordnung usw.) und Software (z. B. ein Betriebssystem) zur Unterstützung von mobiler Architektur und Portabilität, einen Computer, einen Server (z. B. eigenständig, im Rack montiert, Blade usw.), ein Netzgerät (z. B. physisch oder virtuell), ein Webgerät, ein verteiltes Rechensystem, ein prozessorbasiertes System und/oder ein Mehrprozessorsystem umfassen kann. Die Zielrechenvorrichtung 106 kann als beliebige Art von Rechen- oder Computervorrichtung ausgeführt sein, die die hier beschriebenen Funktionen ausführen kann, was ohne Einschränkung darauf einen Server (z. B. eigenständig, im Rack montiert, Blade, Schlitten usw.), einen Switch (z. B. einen disaggregierten Switch, einen im Rack montierten Switch, einen eigenständigen Switch, einen vollständig verwalteten Switch, einen teilweise verwalteten Switch, einen Vollduplex-Switch und/oder einen zu einem Halbduplex-Kommunikationsmodus fähigen Switch), einen Router, ein Gateway, ein Netzgerät (z. B. physisch oder virtuell), ein Webgerät, ein verteiltes Rechensystem, ein prozessorbasiertes System und/oder ein Mehrprozessorsystem umfassen kann.
  • Unter Bezugnahme auf 2 umfasst eine beispielhafte Zielrechenvorrichtung 106 eine Rechenmaschine 200, ein E/A-Untersystem 206, eine oder mehrere Datenspeichervorrichtungen 208, eine Kommunikationsschaltungsanordnung 210 und in einigen Ausführungsformen eine oder mehrere Peripherievorrichtungen 214. Es sollte beachtet werden dass die Zielrechenvorrichtung 106 in anderen Ausführungsformen andere oder zusätzliche Komponenten enthalten kann, wie sie üblicherweise in einer typischen Rechenvorrichtungen zu finden sind (z. B. verschiedene Eingabe-/Ausgabevorrichtungen und/oder andere Komponenten). Zudem können in einigen Ausführungsformen eine oder mehrere der veranschaulichenden Komponenten in einer anderen Komponente enthalten sein oder einen anderweitig einen Teil von dieser bilden.
  • Die Rechenmaschine 200 kann als ein beliebiger Typ von Vorrichtung oder Menge von Vorrichtungen ausgeführt sein, die die verschiedenen hier beschriebenen Rechenfunktionen ausführen kann. In einigen Ausführungsformen kann die Rechenmaschine 200 als eine einzelne Vorrichtung verkörpert sein, wie beispielsweise eine integrierte Schaltung, ein eingebettetes System, eine feldprogrammierbare Gatteranordnung (FPGA), ein Ein-Chip-System (SOC), eine anwendungsspezifische integrierte Schaltung (ASIC), umkonfigurierbare Hardware oder Hardwareschaltungen oder andere spezialisierte Hardware zum Ermöglichen der Durchführung der hierin beschriebenen Funktionen. Zudem kann die Rechenmaschine 200 in einigen Ausführungsformen einen oder mehrere Prozessoren 202 (d. h. eine oder mehrere zentrale Verarbeitungseinheiten (CPUs)) und einen Speicher 204 umfassen oder als diese verkörpert sein.
  • Der oder die Prozessoren 202 können als ein beliebiger Typ von Prozessor ausgeführt sein, der die hier beschriebenen Funktionen durchführen kann. Zum Beispiel können der oder die Prozessoren 202 als ein oder mehrere Einkernprozessoren, ein oder mehrere Mehrkernprozessoren, ein Digitalsignalprozessor, ein Mikrocontroller oder ein anderer Prozessor oder eine oder mehrere Verarbeitungs-/Steuerschaltungen ausgeführt sein. In einigen Ausführungsformen können der oder die Prozessoren 202 als feldprogrammierbare Gatteranordnung (FPGA), anwendungsspezifische integrierte Schaltung (ASIC), umkonfigurierbare Hardware oder Hardwareschaltungen oder andere spezialisierte Hardware ausgeführt sein, als diese verkörpert sein oder anderweitig mit diesen gekoppelt sein, um die Durchführung der hier beschriebenen Funktionen zu ermöglichen.
  • Der Speicher 204 kann als beliebiger Typ eines flüchtigen Speichers (z. B. dynamischer Direktzugriffsspeicher (DRAM) usw.) oder eines nichtflüchtigen Speichers oder Datenspeichers ausgeführt sein, der die hier beschriebenen Funktionen ausführen kann. Es ist zu beachten, dass der Speicher 204 einen Hauptspeicher (d. h. einen Primärspeicher) und/oder einen Zwischenspeicher (d. h. einen Speicher, auf den schneller als auf den Hauptspeicher zugegriffen werden kann) umfassen kann. Ein flüchtiger Speicher kann ein Speichermedium sein, das Leistung benötigt, um den Zustand der von dem Medium gespeicherten Daten aufrechtzuerhalten. Nicht einschränkende Beispiele für flüchtige Speicher können verschiedene Arten von Direktzugriffsspeicher (RAM) wie dynamischen Direktzugriffsspeicher (DRAM) oder statischen Direktzugriffsspeicher (SRAM) umfassen.
  • Die Rechenmaschine 200 ist über das E/A-Untersystem 206, das als Schaltungsanordnung und/oder Komponenten zum Ermöglichen von Eingabe-/Ausgabeoperationen mit dem Prozessor 202, dem Speicher 204 und anderen Komponenten der Zielrechenvorrichtung 106 ausgeführt sein kann, kommunikationstechnisch mit anderen Komponenten der Zielrechenvorrichtung 106 gekoppelt. Das E/A-Untersystem 206 kann beispielsweise als Speichercontroller-Hubs, Eingabe-/Ausgabesteuerungs-Hubs, Hubs für integrierte Sensoren, Firmwarevorrichtungen, Kommunikationsverbindungen (z. B. Punkt-zu-Punkt-Verbindungen, Busverbindungen, Drähte, Kabel, Lichtleiter, Leiterplattenbahnen usw.) und/oder andere Komponente und Untersystemen zum Ermöglichen der Eingabe-/Ausgabeoperationen verkörpert sein oder diese umfassen. In einigen Ausführungsformen kann das E/A-Untersystem 206 einen Abschnitt eines Ein-Chip-Systems (SoC) bilden und zusammen mit dem Prozessor 202, dem Speicher 204 und/oder anderen Komponenten der Zielrechenvorrichtung 106 auf einem einzelnen integrierten Schaltungschip installiert sein.
  • Die eine oder die mehreren Datenspeichervorrichtungen 208 können als ein beliebiger Typ von Speichervorrichtung(en), der zur kurzzeitigen oder langfristigen Speicherung von Daten ausgelegt ist, ausgeführt sein, wie beispielsweise Speichervorrichtungen und -schaltungen, Speicherkarten, Festplattenlaufwerke, Festkörperlaufwerke oder andere Datenspeichervorrichtungen. Jede Datenspeichervorrichtung 208 kann eine Systempartition enthalten, die Daten und Firmwarecode für die Datenspeichervorrichtung 208 speichert. Jede Datenspeichervorrichtung 208 kann auch eine Betriebssystempartition enthalten, die datenbezogene und ausführbare Dateien für ein Betriebssystem speichert.
  • Die Kommunikationsschaltungsanordnung 210 kann als eine beliebige Kommunikationsschaltung, Kommunikationsvorrichtung oder Menge davon, die in der Lage ist, Kommunikation zwischen der Zielrechenvorrichtung 106 und anderen Rechenvorrichtungen zu ermöglichen, sowie beliebige Netzkommunikation ermöglichende Vorrichtungen wie etwa ein Gateway, ein Zugangspunkt, ein Netz-Switch/Router usw. zum Ermöglichen einer Kommunikation über das Netz 104 ausgebildet sein. Dementsprechend kann die Kommunikationsschaltungsanordnung 210 dazu ausgelegt sein, eine oder mehrere Kommunikationstechnologien (z. B. drahtlose oder drahtgebundene Kommunikationstechnologien) und zugehörige Protokolle (z. B. Ethernet, Bluetooth0, Wi-Fi®, WiMAX, LTE, 5G usw.) zum Durchführen einer solchen Kommunikation zu verwenden.
  • Es ist zu beachten, dass die Kommunikationsschaltungsanordnung 210 in einigen Ausführungsformen eine spezielle Schaltungsanordnung, Hardware oder eine Kombination davon umfassen kann, um eine Pipeline-Logik (z. B. Hardwarealgorithmen) zum Ausführen der hierin beschriebenen Funktionen einschließlich des Verarbeitens von Netzpaketen (z. B. Parsen empfangener Netzpakete, Bestimmen von Zielrechenvorrichtungen für jedes empfangene Netzpaket, Weiterleiten der Netzpakete an eine bestimmte Pufferwarteschlange eines jeweiligen Hostpuffers der Zielrechenvorrichtung 106 usw.), des Ausführens von Rechenfunktionen usw. durchzuführen.
  • In einigen Ausführungsformen kann die Durchführung einer oder mehrerer der Funktionen der Kommunikationsschaltungsanordnung 210, wie sie hierin beschrieben sind, durch eine spezialisierte Schaltungsanordnung, Hardware oder eine Kombination davon der Kommunikationsschaltungsanordnung 210 durchgeführt werden, die als Ein-Chip-System (SoC) ausgeführt sein kann oder anderweitig einen Teil eines SoC der Zielrechenvorrichtung 106 (z. B. zusammen mit einem Prozessor 202, dem Speicher 204 und/oder anderen Komponenten der Zielrechenvorrichtung 106 auf einem einzelnen integrierten Schaltungschip installiert) bilden kann. Alternativ können in einigen Ausführungsformen die spezialisierte Schaltungsanordnung, Hardware oder eine Kombination davon als eine oder mehrere diskrete Verarbeitungseinheiten der Zielrechenvorrichtung 106 ausgeführt sein, von denen jede dazu fähig sein kann, eine oder mehrere der hierin beschriebenen Funktionen durchzuführen.
  • Die beispielhafte Kommunikationsschaltungsanordnung 210 umfasst einen Netzschnittstellencontroller (NIC) 212, der in einigen Ausführungsformen (z. B. Hochleistungsrechenumgebungen (HPC-Umgebungen)) auch als Host-Fabric-Schnittstelle (HFI) bezeichnet werden kann. Der NIC 212 kann als eine oder mehrere Zusatzplatinen, Tochterkarten, Netzschnittstellenkarten, Controllerchips, Chipsätze oder andere Vorrichtungen ausgeführt sein, die von der Zielrechenvorrichtung 106 verwendet werden können. In einigen Ausführungsformen kann der NIC 212 als Teil eines Ein-Chip-Systems (SoC), das einen oder mehrere Prozessoren enthält, ausgeführt sein oder in einer Mehrchipbaugruppe enthalten sein, die auch einen oder mehrere Prozessoren enthält. In einigen Ausführungsformen kann der NIC 212 einen lokalen Prozessor (nicht gezeigt) und/oder einen lokalen Speicher (nicht gezeigt) umfassen, die beide für den NIC 212 lokal sind. In solchen Ausführungsformen kann der lokale Prozessor des NIC 212 dazu fähig sein, eine oder mehrere der Funktionen eines hierin beschriebenen Prozessors 202 durchzuführen.
  • Zusätzlich oder alternativ kann in solchen Ausführungsformen der lokale Speicher des NIC 212 in eine oder mehrere Komponenten der Zielrechenvorrichtung 106 auf der Platinenebene, Sockelebene, Chipebene und/oder anderen Ebenen integriert sein. In einigen Ausführungsformen kann der NIC 212 beispielsweise in den Prozessor 202 integriert sein, als Erweiterungskarte ausgeführt sein, die über einen Erweiterungsbus (z. B. PCI Express) mit dem E/A-Untersystem 204 gekoppelt ist, Teil eines SoC sein, das einen oder mehrere Prozessoren enthält, oder in einer Mehrchipbaugruppe enthalten sein, die auch einen oder mehrere Prozessoren enthält. Zusätzlich oder alternativ kann die Funktionalität des NIC 212 in einigen Ausführungsformen in eine oder mehrere Komponenten der Zielcomputervorrichtung 106 auf der Platinenebene, Sockelebene, Chipebene und/oder anderen Ebenen integriert sein.
  • Die eine oder die mehreren Peripherievorrichtungen 214 können einen beliebigen Vorrichtungstyp umfassen, der zum Eingeben von Informationen in die Quellrechenvorrichtung 102 verwendet werden kann. Die Peripherievorrichtungen 214 können als eine beliebige Hilfsvorrichtung ausgeführt sein, die zum Eingeben von Informationen in die Quellrechenvorrichtung 102 verwendbar ist, wie z. B. eine Tastatur, eine Maus, ein Mikrofons, ein Strichcodeleser, ein Bildscanner usw., oder zum Ausgeben von Informationen aus der Quellrechenvorrichtung 102 verwendbar ist, z. B. eine Anzeige, ein Lautsprecher, eine Grafikschaltung, ein Drucker, ein Projektor usw. Es sollte beachtet werden, dass in einigen Ausführungsformen eine oder mehrere der Peripherievorrichtungen 214 sowohl als Eingabevorrichtung als auch als Ausgabevorrichtung (z. B. als Berührungsbildschirmanzeige, Digitalisierer oben auf einem Anzeigeschirm usw.) fungieren können. Es sollte ferner beachtet werden, dass die Arten von Peripherievorrichtungen 214, die mit der Quellrechenvorrichtung 102 verbunden sind, beispielsweise von dem Typ und/oder der beabsichtigten Verwendung der Quellrechenvorrichtung 102 abhängen können. Zusätzlich oder alternativ können die Peripherievorrichtungen 214 in einigen Ausführungsformen einen oder mehrere Anschlüsse wie beispielsweise einen USB-Anschluss zum Verbinden externer Peripherievorrichtungen mit der Quellrechenvorrichtung 102 umfassen.
  • Unter erneuter Bezugnahme auf 1 kann das Netz 104 als ein beliebiger Typ eines drahtgebundenen oder drahtlosen Kommunikationsnetzes verkörpert sein, was ohne Einschränkung darauf ein drahtloses lokales Netz (WLAN), ein drahtloses Personenbereichsnetz (WPAN), ein zellenbasiertes Netz (z. B. globales System für mobile Kommunikation (GSM), Langzeitentwicklung (LTE) usw.), ein Telefonnetz, ein digitales Teilnehmerleitungsnetz (DSL-Netz), ein Kabelnetz, ein lokales Netz (LAN), ein Weitbereichsnetz (WAN), ein globales Netz (z. B. das Internet) oder eine Kombination davon umfassen kann. Es ist zu beachten, dass in solchen Ausführungsformen das Netz 104 als ein zentralisiertes Netz dienen kann und in einigen Ausführungsformen kommunikationstechnisch mit einem anderen Netz (z. B. dem Internet) gekoppelt sein kann. Dementsprechend kann das Netz 104 eine Vielzahl anderer virtueller und/oder physischer Netzrechenvorrichtungen (z. B. Router, Switches, Netz-Hubs, Server, Speichervorrichtungen, Rechenvorrichtungen, (Hochgeschwindigkeits-) Zwischenverbindungen usw.) umfassen, wenn dies erforderlich ist, um die Kommunikation zwischen der Quellrechenvorrichtung 102 und der Netzrechenvorrichtung 106 zu ermöglichen, die nicht gezeigt sind, um die Klarheit der Beschreibung zu bewahren.
  • Unter Bezugnahme auf 3 stellt die Netzrechenvorrichtung 106 während des Betriebs eine Umgebung 300 her. Die beispielhafte Umgebung 300 umfasst einen Netzpaketvermittlungsmanager 310, einen Betriebsmittelüberwacher 318, einen Warteschlangenelementmanager 320, einen Warteschlangenpegelmonitor 322 und einen Alarmmanager 324. Die verschiedenen Komponenten der Umgebung 300 können als Hardware, Firmware, Software oder einer Kombination davon ausgeführt sein. So können in einigen Ausführungsformen eine oder mehrere der Komponenten der Umgebung 300 als Schaltungen oder als Menge elektrischer Vorrichtungen (z. B. Netzpaketvermittlungs-Managementschaltungsanordnung 310, Betriebsmittelüberwachungsschaltungsanordnung 318, Warteschlangenelement-Managementschaltungsanordnung 320, Warteschlangenpegel-Überwachungsschaltungsanordnung 322, Alarmmanagementschaltungsanordnung 324 usw.) ausgeführt sein.
  • Es ist zu beachten, dass in solchen Ausführungsformen die Netzpaketvermittlungs-Managementschaltungsanordnung 310, die Betriebsmittelüberwachungsschaltungsanordnung 318, die Warteschlangenelement-Managementschaltungsanordnung 320, die Warteschlangenpegel-Überwachungsschaltungsanordnung 322 und/oder die Alarmmanagementschaltungsanordnung 324 einen Teil der Rechenmaschine 200, des E/A-Untersystems 206, der Kommunikationsschaltungsanordnung 210 (z. B. des NIC 212 der Kommunikationsschaltungsanordnung 210, wie es veranschaulichend gezeigt ist) und/oder anderer Komponenten der Zielrechenvorrichtung 106 bilden können. Zudem können in einigen Ausführungsformen eine oder mehrere der veranschaulichenden Komponenten einen Teil einer anderen Komponente bilden und/oder eine oder mehrere der veranschaulichenden Komponenten können unabhängig voneinander sein. Ferner können in einigen Ausführungsformen eine oder mehrere der Komponenten der Umgebung 300 als virtualisierte Hardwarekomponenten oder emulierte Architektur ausgeführt sein, die von der Rechenmaschine 200, der Kommunikationsschaltungsanordnung 210 und/oder anderen Komponenten der Zielrechenvorrichtung 106 eingerichtet und gepflegt werden können. Es sollte beachtet werden, dass die Zielrechenvorrichtung 106 andere Komponenten, Unterkomponenten, Module, Untermodule, Logik, Unterlogik und/oder Vorrichtungen, die üblicherweise in einer Rechenvorrichtung zu finden sind, umfassen kann, die zur Verdeutlichung der Beschreibung nicht in 3 dargestellt sind.
  • In der beispielhaften Umgebung 300 umfasst die Zielrechenvorrichtung 106 zusätzlich Warteschlangendaten 302, Alarmdaten 304 und Auswahlfilterdaten 306, auf die jeweils von den verschiedenen Komponenten und/oder Unterkomponenten der Zielrechenvorrichtung 106 zugegriffen werden kann. Es versteht sich zudem, dass in einigen Ausführungsformen mindestens ein Teil der Daten, die in den Warteschlangendaten 302, den Alarmdaten 304 und den Auswahlfilterdaten 306 gespeichert sind oder auf andere Weise durch diese repräsentiert sind, an zusätzlichen oder alternativen Speicherorten gespeichert werden können (z. B. Host-Speicher der Zielrechenvorrichtung 106). Obwohl die verschiedenen Daten, die von der Zielrechenvorrichtung 106 verwendet werden, hierin als bestimmte diskrete Daten beschrieben sind, können solche Daten also in anderen Ausführungsformen zu einem oder mehreren Datensätzen einschließlich duplizierender Kopien kombiniert oder zusammengefasst sein und/oder auf andere Weise Teile davon bilden.
  • Der Netzpaketvermittlungsmanager 310, der wie oben erörtert als Hardware, Firmware, Software, virtualisierte Hardware, emulierte Architektur und/oder eine Kombination davon ausgeführt sein kann, ist dazu ausgelegt, eingehende Daten zu empfangen und ausgehenden Netzverkehr zu leiten/senden. Zu diesem Zweck umfasst der beispielhafte Netzpaketvermittlungsmanager 310 einen Netzverkehr-Eingangs-/Ausgangs-Manager 312, einen Netzpaketklassifizierer 314 und einen Auswahlfiltermanager 316. Der Netzverkehr-Eingangs-/Ausgangs-Manager 304 ist dazu ausgelegt, eingehende/ausgehende Netzkommunikation (z. B. Netzverkehr, Netzpakete, Netzflüsse usw.) zu und von der Zielrechenvorrichtung 106 zu ermöglichen. Zum Beispiel ist der Netzverkehr-Eingangs-/Ausgangs-Manager 304 dazu ausgelegt, Verbindungen zu physischen und virtuellen Netzports (d. h. virtuellen Netzschnittstellen) der Zielrechenvorrichtung 106 (z. B. über die Kommunikationsschaltungsanordnung 210) sowie die zugehörigen Eingangs-/Ausgangs-Puffer/Warteschlangen zu verwalten (z. B. erstellen, modifizieren, löschen usw.). In einigen Ausführungsformen können Informationen, die dem/n Kopfstück(en) und/oder den Nutzdaten der Netzkommunikation (z. B. Nachrichten, Daten usw.) zugeordnet sind, in den Nachrichtendaten 302 gespeichert werden.
  • Der Netzpaketklassifizierer 314 ist dazu ausgelegt, die empfangenen Netzpakete zu klassifizieren, um zu identifizieren, wie Nutzdaten des Netzpakets verarbeitet werden sollen und/oder wie/wohin das Netzpaket weitergeleitet werden soll. Zu diesem Zweck ist der Netzpaketklassifizierer 314 dazu ausgelegt, mindestens einen Teil eines Kopfstücks und/oder der Nutzdaten des Netzpakets zu parsen, um ein identifizierendes Merkmal zu bestimmen, mittels dessen identifiziert werden kann, welche Dienste daran ausgeführt werden sollen und/oder wie das empfangene Netzpaket weitergeleitet werden soll (z. B. der entsprechende Tunnel, der Ausgangsport, die Ziel-Medienzugriffssteuerungsadresse (Ziel-MAC) usw.). Das identifizierende Merkmal kann ein beliebiger Typ von Daten sein, der zum Identifizieren eines Flusses, einer Arbeitslast, eines Datentyps usw. des Netzpakets verwendet werden kann, wie beispielsweise eine MAC-Adresse, eine Quell-Internetprotokolladresse (Quell-IP-Adresse), eine Ziel-IP-Adresse, eine Quellportnummer, eine Zielportnummer, ein Protokoll usw.).
  • Der Auswahlfiltermanager 316 ist dazu ausgelegt, zu bestimmen, ob ein Netzpaket ein vorbestimmtes Kriterium oder einen vorbestimmten Satz von Kriterien erfüllt, um im Falle einer Überlaufbedingung oder der Detektion einer bevorstehenden Überlaufbedingung weitergeleitet zu werden. Zu diesem Zweck ist der Auswahlfiltermanager 316 dazu ausgelegt, eine oder mehrere Eigenschaften des Netzpakets mit dem vorbestimmten Kriterium oder Satz von Kriterien zu vergleichen. Zum Beispiel kann der Auswahlfiltermanager 316 dazu ausgelegt sein, das eine oder die mehreren Kriterien als eine Funktion der Klassifizierung des empfangenen Netzpakets zu bestimmen, wie sie beispielsweise durch den Netzpaketklassifizierer 314 bestimmt werden kann. In einigen Ausführungsformen kann das eine oder die mehreren Kriterien in den Auswahlfilterdaten 306 gespeichert sein.
  • Der Betriebsmittelüberwacher 318, der wie oben erläutert als Hardware, Firmware, Software, virtualisierte Hardware, emulierte Architektur und/oder eine Kombination davon verkörpert sein kann, ist dazu ausgelegt, die Betriebsmittel des NIC 212 zu überwachen. Zu diesem Zweck ist der Betriebsmittelüberwacher 318 dazu ausgelegt, beliebige Telemetriedaten des NIC 212 zu überwachen. Außerdem ist der Betriebsmittelüberwacher 318 dazu ausgelegt, zugewiesene und verfügbare, physische und/oder virtuelle, Betriebsmittel des NIC 212 zu überwachen. Es ist zu beachten, dass in einigen Ausführungsformen der Betriebsmittelüberwacher 318 zusätzlich dazu ausgelegt sein kann, Host-Betriebsmittelmetriken von einem Betriebsmittelüberwacher der Netzrechenvorrichtung 106 zu empfangen (z. B. über den Überwachungsagenten 512 von 5 und 6).
  • Der Warteschlangenelementmanager 320, der wie oben erörtert als Hardware, Firmware, Software, virtualisierte Hardware, emulierte Architektur und/oder eine Kombination davon ausgeführt sein kann, ist zum Verwalten der Warteschlangen für empfangene Netzpakete ausgelegt. Zu diesem Zweck ist der Warteschlangenelementmanager 320 dazu ausgelegt, zu identifizieren, welche physische/virtuelle Funktion einem empfangenen Netzpaket entspricht, wie sie beispielsweise basierend auf der Klassifizierung (z. B. durch den Netzpaketklassifizierer 314) oder einer anderen Eigenschaft des empfangenen Netzpakets identifiziert werden kann. Es ist zu beachten, dass in einigen Ausführungsformen zumindest ein Teil einer oder mehrerer der hier beschriebenen Funktionen, die von dem Warteschlangenelementmanager 320 ausgeführt werden, von dem Netzverkehr-Eingangs-/Ausgangs-Manager 312 ausgeführt werden kann oder umgekehrt. In einigen Ausführungsformen können die Warteschlangeninformationen (z. B. Kopfstück/Endstück-Informationen, Elementinformationen usw.) in den Warteschlangendaten 302 gespeichert werden.
  • Der Warteschlangenpegelüberwacher 322, der wie oben erörtert als Hardware, Firmware, Software, virtualisierte Hardware, emulierte Architektur und/oder eine Kombination davon ausgeführt sein kann, ist dazu ausgelegt, die aktuellen Pegel der Netzpaketwarteschlangen des NIC 212 zu überwachen. Zum Beispiel kann der Warteschlangenpegelüberwacher 322 dazu ausgelegt sein, einen aktuellen Warteschlangenpegel eines globalen Paketpuffers des NIC 212 und/oder einer Zielwarteschlange des NIC 212 (z. B. einer Warteschlange für virtuelle Funktionen, einer Warteschlange virtueller Switch-Schnittstellen usw.) zu bestimmen. Zu diesem Zweck kann der Warteschlangenpegelüberwacher 322 dazu ausgelegt sein, die Warteschlangenpegel zu aktualisieren, indem er jede der Warteschlangen abfragt und/oder eine Angabe eines aktuellen Warteschlangenpegels von jeder der Warteschlangen empfängt, die als Antwort auf einen Zeitgeber oder ein auslösendes Ereignis (z. B. ein Element, das der Warteschlange hinzugefügt oder daraus entfernt wird) empfangen werden kann.
  • Der empfangen werden kann 322 ist zudem dazu ausgelegt, zu detektieren, ob eine Warteschlange voll ist oder eine vorkonfigurierte Schwelle für diese Warteschlange erreicht ist, die angibt, dass die Warteschlange voll ist. Zu diesem Zweck ist der Warteschlangenpegelüberwacher 322 dazu ausgelegt, einen aktuellen Pegel der Warteschlange mit seinem entsprechenden Schwellenpegel zu vergleichen. Zum Beispiel kann der Warteschlangenpegelüberwacher 322 eine Angabe (z. B. von Software in dem Host) empfangen, die eine Schwelle für eine bestimmte Warteschlange angibt. Nachdem bestimmt worden ist, dass die Warteschlange voll ist oder die Schwelle für diese Warteschlange erreicht ist, kann der Warteschlangenpegelüberwacher 322 in einigen Ausführungsformen dazu ausgelegt sein, einen der Warteschlange zugeordneten Merker (z. B. einen Überlaufbedingungsmerker) zu aktualisieren, der geprüft werden kann (z. B. nachdem ein Paket empfangen worden ist), um zu bestimmen, ob die Warteschlange voll ist oder die Schwelle für diese Warteschlange erreicht ist.
  • In einem veranschaulichenden Beispiel, in dem der NIC 212 ein Netzpaket (z. B. aus der Leitung) empfangen hat, ist der Warteschlangenpegelüberwacher 322 dazu ausgelegt, einen Warteschlangenpegel der entsprechenden Empfangswarteschlange (z. B. des globalen Paketpuffers, einer Zielwarteschlange usw.), in der das Empfangsnetzpaket gepuffert worden ist, zu bestimmen und zu speichern. Nachdem ein weiteres Netzpaket empfangen worden ist, das in derselben Empfangswarteschlange eingereiht werden soll, ist der Warteschlangenpegelüberwacher 322 ferner so dazu ausgelegt, zu prüfen, ob eine entsprechende Schwelle (z. B. eine Empfangswarteschlangenschwelle) erreicht worden ist. In einigen Ausführungsformen können die Warteschlangenpegeldaten (z. B. Warteschlangenpegel, Schwellen, Merker usw.) in den Warteschlangendaten 302 gespeichert werden.
  • Der Alarmmanager 324, der wie oben erörtert als Hardware, Firmware, Software, virtualisierte Hardware, die emulierte Architektur und/oder eine Kombination davon ausgeführt sein kann, ist dazu ausgelegt, die Alarme zu verwalten, die ausgegeben werden sollen, wie sie beispielsweise bei der Detektion einer Überlaufbedingung oder des Erwartung einer Überlaufbedingung ausgegeben werden können, die beispielsweise von dem Warteschlangenpegelüberwacher 322 detektiert werden können. In Fortsetzung des vorherigen veranschaulichenden Beispiels kann der Alarmmanager 324 eine Bedingung (z. B. eine Überlaufbedingung, eine bevorstehende Überlaufbedingung usw.) detektieren, beispielsweise durch Abfragen des jeweiligen Überlaufbedingungsmerkers oder Empfangen einer Angabe (z. B. von dem Warteschlangenpegelüberwacher 322), dass eine Alarmauslösebedingung detektiert worden ist. Der Alarmmanager 324 ist außerdem dazu ausgelegt, Alarmmerker (z. B. einen Merker für einmaliges Senden des Alarms) zu setzen und zu prüfen, um zu identifizieren, ob zuvor ein Alarm für eine bestimmte Bedingung gesendet worden ist, und/oder um zu bestimmen, ob in dem Fall, in dem eine Auslösebedingung detektiert worden ist, ein Alarm ausgelöst werden soll (z. B. basierend auf einer oder mehreren Konfigurationseinstellungen des zutreffenden Alarms).
  • Unter Bezugnahme auf 4A-4C ist ein Verfahren 400 zur Paketweiterleitung unter Eingangswarteschlangenüberlaufbedingungen gezeigt, das von einer Rechenvorrichtung (z. B. der Netzrechenvorrichtung 106 von 1-3) oder insbesondere von einem NIC der Rechenvorrichtung (z. B. dem beispielhaften NIC 212 von 3) ausgeführt werden kann. Das Verfahren 400 beginnt mit Block 402, in dem der NIC 212 bestimmt, ob ein Netzpaket empfangen worden ist. Wenn dies der Fall ist, geht das Verfahren 400 zu Block 404 über, in dem der NIC 212 bestimmt, ob ein globaler Paketpuffer des NIC 212 voll ist oder eine vorkonfigurierte Schwelle für diese Warteschlange erreicht ist, die angibt, dass die Warteschlange voll ist. Wenn der globale Paketpuffer des NIC 212 voll ist, verzweigt das Verfahren 400 zu Block 412, der in 4B gezeigt ist und nachstehend beschrieben ist; ansonsten verzweigt das Verfahren 400 zu Block 406. In Block 406 führt der NIC 212 eine interne Klassifizierung und eine Vermittlung durch, um eine lokale Zielwarteschlange (d. h. eine Standard-Ziel-/Ausgabewarteschlange auf dem Host, die einer virtuellen oder physischen Funktion zugewiesen werden kann) zu identifizieren, die dem empfangenen Netzpaket entspricht. In Block 408 bestimmt der NIC 212, ob die identifizierte lokale Zielwarteschlange voll ist. Wenn ja, verzweigt das Verfahren 400 zu Block 430, der in 4C gezeigt ist und nachstehend beschrieben ist; andernfalls, wenn die identifizierte lokale Zielwarteschlange nicht voll ist, verzweigt das Verfahren 400 zu Block 410. In Block 410 reiht die NIC 212 das empfangene Netzpaket in die identifizierte lokale Zielwarteschlange ein.
  • Unter erneuter Bezugnahme auf Block 404 verzweigt das Verfahren 400 wie zuvor beschrieben zu Block 412 von 4B, wenn der NIC 212 bestimmt, dass der globale Paketpuffer des NIC 212 voll ist. In Block 412 bestimmt der NIC 212, ob ein globaler Alarm konfiguriert worden ist. Wenn nicht, springt das Verfahren 400 zu Block 420, in dem der NIC 212 bestimmt, ob der gesamte globale Paketpuffer von empfangenen Nachrichten weitergeleitet werden soll; andernfalls, wenn der globale Alarm konfiguriert worden ist, geht das Verfahren 400 zu Block 414 über, um zu bestimmen, ob ein Merker gesetzt worden ist, der den NIC 212 anweist, den globalen Alarm nur einmal zu senden (d. h. Merker für einmaliges Senden des globalen Alarms). Wenn der Merker für einmaliges Senden des globalen Alarms gesetzt ist, geht das Verfahren 400 zu Block 416 über; ansonsten springt das Verfahren 400 zu Block 418. In Block 416 bestimmt der NIC 212, ob der globale Alarm bereits gesendet worden ist, und wenn dies der Fall ist, springt das Verfahren 400 zu Block 420; ansonsten geht das Verfahren 400 zu Block 418 über. In Block 418 sendet der NIC 212 einen globalen Paketpufferalarm an eine Standardadresse. Es versteht sich, dass die Standardadresse Teil der Daten/Einstellungen ist (z. B. in den Alarmdaten 304 von 3 gespeichert ist), die während der Konfiguration durch Software bereitgestellt werden (z. B. über den Alarmmanager 324 von 3).
  • In Block 420 bestimmt der NIC 212 basierend auf Auswahlfilterdaten, ob alle globalen Paketpuffereinträge weitergeleitet werden sollen. Wenn dies der Fall ist, verzweigt das Verfahren 400 zu Block 422, in dem der NIC 212 jeden der globalen Paketpuffereinträge an entsprechende vordefinierte Ausgänge (z. B. vordefinierte Ports, MAC-Adressen, Tunnel usw.) weiterleitet. Es versteht sich, dass der NIC 212 ferner dazu ausgelegt sein kann, einen internen Zustand des globalen Paketpuffers in einen Weiterleitungszustand zu ändern, während der globale Paketpuffer geleert wird, so dass dann, wenn ein weiteres Netzpaket an dem NIC 212 empfangen wird, dieses dann an eine Zielrechenvorrichtung weitergeleitet werden kann. In Block 424 leitet der NIC 212 das empfangene Netzpaket an einen vordefinierten Ausgang (z. B. einen vordefinierten Port, eine MAC-Adresse, einen Tunnel usw.) weiter.
  • Unter erneuter Bezugnahme auf Block 420 verzweigt das Verfahren 400 dann, wenn der NIC 212 bestimmt, nicht alle Einträge des globalen Paketpuffers weitergeleitet werden sollen, zu Block 426, in dem der NIC 212 bestimmt, ob eine oder mehrere Eigenschaften des empfangenen Netzpakets mit entsprechenden Werten eines Auswahlfilters übereinstimmen. Wenn dies der Fall ist, verzweigt das Verfahren 400 zu Block 424, in dem der NIC 212 das empfangene Netzpaket an den vordefinierten Ausgang weiterleitet. Wenn der NIC 212 andernfalls bestimmt, dass die eine oder die mehreren Eigenschaften des empfangenen Netzpakets nicht mit den entsprechenden Werten des Auswahlfilters übereinstimmen, verzweigt das Verfahren 400 zu Block 428, in dem der NIC 212 das empfangene Netzpaket verwirft. Mit anderen Worten wird das empfangene Netzpaket dann, wenn irgendwelche Auswahlfilter gesetzt sind, nur weitergeleitet, wenn mindestens einer der Auswahlfilter zutrifft; andernfalls werden dann, wenn keine Filter gesetzt sind, alle Netzpakete der globalen Paketpuffereinträge weitergeleitet.
  • Unter erneuter Bezugnahme auf Block 408 von 4A verzweigt das Verfahren 400 wie zuvor beschrieben dann, wenn der NIC 212 bestimmt, dass die identifizierte lokale Zielwarteschlange voll ist, zu Block 430 von 4C. In Block 430 bestimmt der NIC 212, ob ein virtueller Alarm konfiguriert worden ist. Wenn nicht, springt das Verfahren 400 zu Block 438, in dem der NIC 212 bestimmt, ob die gesamte Zielwarteschlange von empfangenen Nachrichten weitergeleitet werden soll; andernfalls, wenn der virtuelle Alarm konfiguriert worden ist, geht das Verfahren 400 zu Block 432 über, um zu bestimmen, ob ein Merker gesetzt worden ist, der den NIC 212 anweist, den virtuellen Alarm nur einmal zu senden (d. h. ein Merker für einmaliges Senden des virtuellen Alarms). Wenn der Merker für einmaliges Senden des virtuellen Alarms gesetzt ist, geht das Verfahren 400 zu Block 434 über; ansonsten springt das Verfahren 400 zu Block 436. In Block 434 bestimmt der NIC 212, ob der virtuelle Alarm bereits gesendet worden ist, und wenn dies der Fall ist, springt das Verfahren 400 zu Block 438; ansonsten geht das Verfahren 400 zu Block 436 über. In Block 436 sendet der NIC 212 einen Zielwarteschlangenalarm an eine Standardadresse, falls diese zuvor bereitgestellt wurde (z. B. durch Software).
  • In Block 438 bestimmt der NIC 212, ob alle Zielwarteschlangeneinträge weitergeleitet werden sollen. Wenn dies der Fall ist, verzweigt das Verfahren 400 zu Block 440, in dem der NIC 212 jeden der Zielwarteschlangeneinträge an entsprechende vordefinierte Ausgänge (z. B. vordefinierte Ports, MAC-Adressen, Tunnel usw.) weiterleitet. In Block 442 leitet der NIC 212 das empfangene Netzpaket an einen vordefinierten Ausgang (z. B. einen vordefinierten Port, eine MAC-Adresse, einen Tunnel usw.) weiter. Unter erneuter Bezugnahme auf Block 438 verzweigt das Verfahren 400 dann, wenn der NIC 212 bestimmt, dass nicht alle Einträge der Zielwarteschlange weitergeleitet werden sollen, zu Block 444, in dem der NIC 212 bestimmt, ob eine oder mehrere Eigenschaften des empfangenen Netzpakets mit entsprechenden Werten eines Auswahlfilters übereinstimmen. Wenn dies der Fall ist, verzweigt das Verfahren 400 zu Block 442, in dem der NIC 212 das empfangene Netzpaket an den vordefinierten Ausgang weiterleitet. Wenn der NIC 212 andernfalls bestimmt, dass die eine oder die mehreren Eigenschaften des empfangenen Netzpakets nicht mit den entsprechenden Werten des Auswahlfilters übereinstimmen, verzweigt das Verfahren 400 zu Block 446, in dem der NIC 212 das empfangene Netzpaket verwirft.
  • Unter Bezugnahme auf 5 erstellt die Netzrechenvorrichtungen 106 während des Betriebs eine Umgebung 500. Die beispielhafte Umgebung 500 umfasst mehrere Ports 508 eines eingebetteten Switches 506 des beispielhaften NIC 212. Die beispielhaften mehreren Ports 508 umfassen einen ersten Port 508, der als Port (1) 508a bezeichnet wird, einen zweiten Port 508, der als Port (2) 508b bezeichnet wird, und einen dritten Port 508, der als Port (N) 508c bezeichnet wird (wobei Port (N) 508c nämlich den „N-ten“ Port 508 bezeichnet und „N“ eine positive ganze Zahl ist). Die Umgebung 500 umfasst zusätzlich mehrere physische Funktionen 504, von denen jede kommunikationstechnisch mit einem zugewiesenen Port 508 und mehreren virtuellen Funktionen 502 gekoppelt ist. Wie dargestellt umfassen die physischen Funktionen 504 eine erste physische Funktion 504, die als physische Funktion (1) 504a bezeichnet wird, eine zweite physische Funktion 504, die als physische Funktion (2) 504b bezeichnet wird, und eine dritte physische Funktion 504, die als physische Funktion (N) 504c bezeichnet wird (wobei die physische Funktion (N) 504c nämlich die „N-te“ physische Funktion 504 bezeichnet und „N“ eine positive ganze Zahl ist). Es ist zu beachten, dass jede physische Funktion 504 kommunikationstechnisch mit einem bestimmten Port 508 gekoppelt ist. Beispielsweise ist Port (1) 508a kommunikationstechnisch mit der physischen Funktion (1) 504a gekoppelt, Port (2) 508b ist kommunikationstechnisch mit der physischen Funktion (2) 504b gekoppelt und Port (N) 508c ist kommunikationstechnisch mit der physischen Funktion (N) 504c gekoppelt.
  • Außerdem ist jede physische Funktion 504 ferner kommunikationstechnisch mit einer oder mehreren virtuellen Funktionen gekoppelt. Beispielsweise ist die physische Funktion (1) 504a kommunikationstechnisch mit dem Port (1) 508a und mit mehreren virtuellen Funktionen 502 gekoppelt. Es ist zu beachten, dass die Bezeichnung jeder der virtuellen Funktionen 502 eine Zuordnungsreferenz zu der zugeordneten physischen Funktion 504 und die jeweilige Instanz der virtuellen Funktion selbst enthält. Beispielsweise gibt eine als virtuelle Funktion (X.Y) bestimmte virtuelle Funktion 502 an, dass die virtuelle Funktion 502 die „Y-te“ virtuelle Funktionsinstanz ist, die der „X-ten“ physischen Funktion 504 zugeordnet ist (wobei „X“ und „Y“ positive ganze Zahlen sind).
  • Wie es veranschaulichend gezeigt ist, umfassen die der physischen Funktion (1) 504a zugeordneten virtuellen Funktionen 502 eine erste virtuelle Funktion, die als virtuelle Funktion (1.1) 502a bezeichnet wird, eine zweite virtuelle Funktion, die als virtuelle Funktion (1.2) 502b bezeichnet wird, und eine dritte virtuelle Funktion, die als virtuelle Funktion (l.N) 502c bezeichnet wird. In ähnlicher Weise umfassen die beispielhaften virtuellen Funktionen 502, die der physischen Funktion (2) 504b zugeordnet sind, eine erste virtuelle Funktion, die als virtuelle Funktion (2.1) 502d bezeichnet wird, eine zweite virtuelle Funktion, die als virtuelle Funktion (2.2) 502e bezeichnet wird, und eine dritte virtuelle Funktion, die als virtuelle Funktion (2.N) 502f bezeichnet wird. Schließlich umfassen die beispielhaften virtuellen Funktionen 502, die der physischen Funktion (N) 504c zugeordnet sind, eine erste virtuelle Funktion, die als virtuelle Funktion (N.1) 502g bezeichnet wird, eine zweite virtuelle Funktion, die als virtuelle Funktion (N.2) 502h bezeichnet wird, und eine dritte virtuelle Funktion, die als virtuelle Funktion (N.N) 502i bezeichnet wird.
  • Wie zuvor beschrieben arbeiten die virtuellen Funktionen 502 unter der jeweiligen physischen Funktion 504 an demselben NIC-Port 508. Daher haben sie keinen Zugriff auf die globalen Betriebsmittel des NIC 212, die von anderen Funktionen für denselben NIC-Port 508 mitgenutzt werden. Es ist ferner zu beachten, dass jede virtuelle Funktion 502 einen grundlegenden Zugriff auf die Warteschlangenbetriebsmittel und Steuerungsstrukturen der ihr zugewiesenen Warteschlangen hat. Mit anderen Worten sendet eine virtuelle Funktion 502 für einen globalen Betriebsmittelzugriff eine Anfrage an die physische Funktion 504 für diesen Port 508 und die physische Funktion 504 arbeitet im Auftrag der virtuellen Funktion 502 mit den globalen Betriebsmitteln. In einigen Ausführungsformen wie beispielsweise einem SR-IOV-fähigen NIC stellt der NIC 212 einen Speicherpuffer für jede virtuelle Funktion 502 bereit (z. B. unter Verwendung von bandexterner Kommunikation).
  • Dementsprechend umfasst die beispielhafte Umgebung 500 zusätzlich einen optionalen Überwachungsagenten 512 der Netzrechenvorrichtung 106, der kommunikationstechnisch mit einem eingebetteten Mikrocontroller 510 des eingebetteten Switches 506 auf dem NIC 212 gekoppelt ist. Der Überwachungsagent 512 ist dazu ausgelegt, Betriebsmittel (z. B. Speicher, Datenverarbeitung, Gesundheitszustand usw.) der Netzrechenvorrichtung 106 zu überwachen und Metriken, die sich auf die überwachten Betriebsmittel beziehen, an den eingebetteten Mikrocontroller 510 zu liefern, so dass der eingebettete Mikrocontroller 510 Vermittlungsentscheidungen treffen kann, die zumindest teilweise auf den Host-Betriebsmittelmetriken basieren.
  • Wie zuvor beschrieben empfängt ein Port 508 im Einsatz Netzpakete (d. h. aus der Leitung) und der eingebettete Switch 506 führt eine Klassifizierung des empfangenen Netzpakets durch und bestimmt (z. B. basierend auf Konfigurationsinformationen, die von dem eingebetteten Mikrocontroller 510 empfangen/verwaltet werden) die geeignete virtuelle Funktion 502 zum Verarbeiten des empfangene Netzpakets. Wie ebenfalls zuvor beschrieben kann die Klassifizierung auf einem bestimmten Merkmal oder einer bestimmten Eigenschaft des empfangenen Netzpakets basieren. Beim Durchführen der Klassifizierung leitet der eingebettete Switch 506 jedes empfangene Netzpaket über eine entsprechende physische Funktion 504 an eine virtuelle Funktion 502 zur Verarbeitung mindestens eines Teils des empfangenen Netzpakets.
  • In einem veranschaulichenden Beispiel wird ein Netzpaket an Port (1) 508a empfangen. Unter normalen Bedingungen ist der eingebettete Switch 506 dazu ausgelegt, das empfangene Netzpaket über die physische Funktion (1) 504a an die virtuelle Funktion (1.1) 502a zu leiten. Basierend auf bestimmten Bedingungen kann der eingebettete Mikrocontroller 510 jedoch den eingebetteten Switch 506 umkonfigurieren, um das Netzpaket zu einer anderen virtuellen Funktion (z. B. virtuelle Funktion (2.2) 502e über physische Funktion (2) 504b) umzuleiten. Solche Umkonfigurationsbedingungen können auf Warteschlangeninformationen der Empfangswarteschlange, die der virtuellen Funktion (1.1) 502a zugeordnet ist, basieren, die von dem NIC 212 gesammelt werden (z. B. über den Warteschlangenpegelüberwacher 322 von 3) und angeben, dass die virtuelle Funktion (1.1) 502a keine Netzpaketwarteschlangen mehr abfragt oder anderweitig nicht aktiv ist (z. B. wenn eine Überlaufbedingung vorliegt, ein Warteschlangenschwellenpegel erreicht ist, keine Empfangsdeskriptoren verfügbar sind usw.). Alternativ kann der eingebettete Mikrocontroller 510 den eingebetteten Switch 506 umkonfigurieren, um das Netzpaket an eine andere Netzrechenvorrichtung 106 (z. B. eine Bereitschaftsrechenvorrichtung) umzuleiten.
  • Unter Bezugnahme auf 6 erstellt die Netzrechenvorrichtung 106 während des Betriebs eine Umgebung 600. Ähnlich zu der beispielhaften Umgebung 500 von 5 umfasst die beispielhafte Umgebung 600 mehrere Ports 508 eines eingebetteten Switches 506 des beispielhaften NIC 212 sowie die zuvor beschriebenen physischen Funktionen 504 und virtuellen Funktionen 502. Die beispielhafte Umgebung 600 umfasst jedoch zusätzlich einen integrierten Switch 604, der einen SoC 602 bildet, der den NIC 212 enthält. Wie dargestellt umfasst der integrierte Switch 604 mehrere Eingangsports 606, die zum Empfangen der Netzpakete aus der Leitung ausgelegt sind und kommunikationstechnisch mit einem entsprechenden Port 508 des eingebetteten Switches 506 des NIC 212 verbunden sind.
  • BEISPIELE
  • Nachstehend sind erläuternde Beispiele der hierin offenbarten Technologien bereitgestellt. Eine Ausführungsform der Technologien kann eine oder mehrere der unten beschriebenen Beispiele und eine beliebige Kombination davon umfassen.
  • Beispiel 1 umfasst eine Rechenvorrichtung zur Paketweiterleitung unter Eingangswarteschlangenüberlaufbedingungen, wobei die Rechenvorrichtung umfasst: eine Rechenmaschine; und einen Netzschnittstellencontroller (NIC) für Folgendes: Empfangen eines Netzpakets von einer anderen Rechenvorrichtung; Bestimmen, ob ein globaler Paketpuffer des NIC voll ist; als Antwort auf eine Bestimmung, dass der globale Paketpuffer voll ist, Bestimmen, ob alle globalen Paketpuffereinträge weitergeleitet werden sollen; als Antwort auf eine Bestimmung, dass nicht alle globalen Paketpuffereinträge weitergeleitet werden sollen, Vergleichen eines Auswahlfilters mit einer oder mehreren Eigenschaften des empfangenen Netzpakets; und als Antwort auf eine Bestimmung, dass das Auswahlfilter mit der einen oder den mehreren Eigenschaften des empfangenen Netzpakets übereinstimmt, Weiterleiten des empfangenen Netzpakets an einen vordefinierte Ausgang.
  • Beispiel 2 umfasst den Gegenstand von Beispiel 1, wobei der NIC ferner zu Folgendem ausgelegt ist: als Antwort auf eine Bestimmung, dass der globale Paketpuffer voll ist, Bestimmen, ob ein globaler Paketpufferalarm gesendet werden soll; und als Antwort auf eine Bestimmung, den globalen Paketpufferalarm zu senden, Senden des globalen Paketpufferalarms an eine standardmäßig konfigurierte Adresse.
  • Beispiel 3 umfasst den Gegenstand eines der Beispiele 1 und 2, wobei der NIC ferner zu Folgendem ausgelegt ist: als Antwort auf ein Ergebnis des Vergleichs, das angibt, dass das Auswahlfilter nicht mit der einen oder den mehreren Eigenschaften des empfangenen Netzpakets übereinstimmt, Verwerfen des empfangenen Netzpakets.
  • Beispiel 4 umfasst den Gegenstand eines der Beispiele 1-3, wobei der NIC ferner zu Folgendem ausgelegt ist: als Antwort auf eine Bestimmung, dass der globale Paketpuffer nicht voll ist, Durchführen einer internen Klassifizierung als Funktion der einen oder der mehreren Eigenschaften des empfangenen Netzpakets; und Identifizieren einer lokalen Zielwarteschlange, die dem empfangenen Netzpaket zugeordnet ist, als Funktion der internen Klassifizierung.
  • Beispiel 5 umfasst den Gegenstand eines der Beispiele 1-4, wobei der NIC ferner zu Folgendem ausgelegt ist: Bestimmen, ob die identifizierte lokale Zielwarteschlange voll ist; als Antwort auf eine Bestimmung, dass die lokale Zielwarteschlange nicht voll ist, Bestimmen, ob alle lokalen Zielwarteschlangeneinträge weitergeleitet werden sollen; als Antwort auf eine Bestimmung, dass nicht alle lokalen Zielwarteschlangeneinträge weitergeleitet werden sollen, Vergleichen des Auswahlfilters mit der einen oder den mehreren Eigenschaften des empfangenen Netzpakets; und als Antwort auf ein Ergebnis des Vergleichs, das angibt, dass das Auswahlfilter mit der einen oder den mehreren Eigenschaften des empfangenen Netzpakets übereinstimmt, Weiterleiten des empfangenen Netzpakets an den vordefinierten Ausgang.
  • Beispiel 6 umfasst den Gegenstand eines der Beispiele 1-5, wobei der NIC ferner zu Folgendem ausgelegt ist: als Antwort auf eine Bestimmung, dass der globale Paketpuffer voll ist, Bestimmen, ob ein Zielwarteschlangenalarm gesendet werden soll; und als Antwort auf eine Bestimmung, dass der Zielwarteschlangenalarm gesendet werden soll, Senden des Zielwarteschlangenalarms an eine Standardadresse.
  • Beispiel 7 umfasst den Gegenstand eines der Beispiele 1-6, wobei das Bestimmen, ob der Zielwarteschlangenalarm gesendet werden soll, ein Bestimmen als Funktion einer Einstellung eines Merkers für einmaligen virtuellen Alarm, ob der Zielwarteschlangenalarm gesendet werden soll, und eine Bestimmung, ob der Zielwarteschlangenalarm bereits gesendet worden ist, umfasst, wobei die Einstellung des Merkers für einmaligen virtuellen Alarm angibt, ob der Zielwarteschlangenalarm nur einmal gesendet werden soll.
  • Beispiel 8 umfasst den Gegenstand eines der Beispiele 1-7, wobei der NIC ferner zu Folgendem ausgelegt ist: als Antwort auf ein Ergebnis des Vergleichs, das angibt, dass das Auswahlfilter nicht mit der einen oder den mehreren Eigenschaften des empfangenen Netzpakets übereinstimmt, Verwerfen des empfangenen Netzpakets.
  • Beispiel 9 umfasst den Gegenstand eines der Beispiele 1-8, wobei der NIC ferner zu Folgendem ausgelegt ist: als Antwort auf eine Bestimmung, dass die lokale Zielwarteschlange voll ist, Einreihen des empfangenen Netzpakets in die identifizierte lokale Zielwarteschlange.
  • Beispiel 10 umfasst den Gegenstand eines der Beispiele 1-9, wobei der vordefinierte Ausgang einen von einem vordefinierten Port, einer vordefinierten Medienzugriffssteuerungsadresse (MAC-Adresse) oder einem vordefinierten Tunnel umfasst.
  • Beispiel 11 umfasst den Gegenstand eines der Beispiele 1-10, wobei der NIC ferner zu Folgendem ausgelegt ist: nach einer Bestimmung, alle globalen Warteschlangeneinträge weiterzuleiten, Ändern eines internen Zustands des globalen Paketpuffers zu einem Weiterleitungszustand; Empfangen eines anderen Netzpakets von der anderen Rechenvorrichtung; und nach einer Bestimmung, dass sich der interne Zustand des globalen Paketpuffers in dem Weiterleitungszustand befindet, Weiterleiten des empfangenen anderen Pakets an eine Zielrechenvorrichtung.
  • Beispiel 12 umfasst ein oder mehrere maschinenlesbare Speichermedien, das mehrere darauf gespeicherte Befehle enthält, die als Antwort auf ihre Ausführung eine Rechenvorrichtung zu Folgendem veranlassen: Empfangen eines Netzpakets von einer anderen Rechenvorrichtung durch einen Netzschnittstellencontroller (NIC) der Rechenvorrichtung; Bestimmen, ob ein globaler Paketpuffer des NIC voll ist, durch den NIC; als Antwort auf eine Bestimmung, dass der globale Paketpuffer voll ist, Bestimmen, ob alle globalen Paketpuffereinträge weitergeleitet werden sollen, durch den NIC; als Antwort auf eine Bestimmung, dass nicht alle globalen Paketpuffereinträge weitergeleitet werden sollen, Vergleichen eines Auswahlfilters mit einer oder mehreren Eigenschaften des empfangenen Netzpakets durch den NIC; und als Antwort auf eine Bestimmung, dass das Auswahlfilter mit der einen oder den mehreren Eigenschaften des empfangenen Netzpakets übereinstimmt, Weiterleiten des empfangenen Netzpakets an einen vordefinierte Ausgang durch den NIC.
  • Beispiel 13 umfasst den Gegenstand von Beispiel 12, wobei die mehreren Befehle die Rechenvorrichtung ferner zu Folgendem veranlassen: als Antwort auf eine Bestimmung, dass der globale Paketpuffer voll ist, Bestimmen, ob ein globaler Paketpufferalarm gesendet werden soll, durch den NIC; und als Antwort auf eine Bestimmung, den globalen Paketpufferalarm zu senden, Senden des globalen Paketpufferalarms an eine standardmäßig konfigurierte Adresse durch den NIC.
  • Beispiel 14 umfasst den Gegenstand von einem der Beispiele 12 und 13, wobei die mehreren Befehle die Rechenvorrichtung ferner zu Folgendem veranlassen: als Antwort auf ein Ergebnis des Vergleichs, das angibt, dass das Auswahlfilter nicht mit der einen oder den mehreren Eigenschaften des empfangenen Netzpakets übereinstimmt, Verwerfen des empfangenen Netzpakets durch den NIC.
  • Beispiel 15 umfasst den Gegenstand eines der Beispiele 12-14, wobei die mehreren Befehle die Rechenvorrichtung ferner zu Folgendem veranlassen: als Antwort auf eine Bestimmung, dass der globale Paketpuffer nicht voll ist, Durchführen einer internen Klassifizierung als Funktion der einen oder der mehreren Eigenschaften des empfangenen Netzpakets durch den NIC; und Identifizieren einer lokalen Zielwarteschlange, die dem empfangenen Netzpaket zugeordnet ist, als Funktion der internen Klassifizierung durch den NIC.
  • Beispiel 16 umfasst den Gegenstand eines der Beispiele 12-15, wobei die mehreren Befehle die Rechenvorrichtung ferner zu Folgendem veranlassen: Bestimmen, ob die identifizierte lokale Zielwarteschlange voll ist, durch die NiC; als Antwort auf eine Bestimmung, dass die lokale Zielwarteschlange nicht voll ist, Bestimmen, ob alle lokalen Zielwarteschlangeneinträge weitergeleitet werden sollen, durch den NIC; als Antwort auf eine Bestimmung, dass nicht alle lokalen Zielwarteschlangeneinträge weitergeleitet werden sollen, Vergleichen des Auswahlfilters mit der einen oder den mehreren Eigenschaften des empfangenen Netzpakets durch den NIC; und als Antwort auf ein Ergebnis des Vergleichs, das angibt, dass das Auswahlfilter mit der einen oder den mehreren Eigenschaften des empfangenen Netzpakets übereinstimmt, Weiterleiten des empfangenen Netzpakets an den vordefinierten Ausgang durch den NIC.
  • Beispiel 17 umfasst den Gegenstand eines der Beispiele 12-16, wobei die mehreren Befehle die Rechenvorrichtung ferner zu Folgendem veranlassen: als Antwort auf eine Bestimmung, dass der globale Paketpuffer voll ist, Bestimmen, ob ein Zielwarteschlangenalarm gesendet werden soll, durch den NIC; und als Antwort auf eine Bestimmung, dass der Zielwarteschlangenalarm gesendet werden soll, Senden des Zielwarteschlangenalarms an eine Standardadresse durch den NIC.
  • Beispiel 18 umfasst den Gegenstand eines der Beispiele 12-17, wobei das Bestimmen, ob der Zielwarteschlangenalarm gesendet werden soll, ein Bestimmen als Funktion einer Einstellung eines Merkers für einmaligen virtuellen Alarm, ob der Zielwarteschlangenalarm gesendet werden soll, und eine Bestimmung, ob der Zielwarteschlangenalarm bereits gesendet worden ist, umfasst, wobei die Einstellung des Merkers für einmaligen virtuellen Alarm angibt, ob der Zielwarteschlangenalarm nur einmal gesendet werden soll.
  • Beispiel 19 umfasst den Gegenstand eines der Beispiele 12-18, wobei die mehreren Befehle die Rechenvorrichtung ferner zu Folgendem veranlassen: als Antwort auf ein Ergebnis des Vergleichs, das angibt, dass das Auswahlfilter nicht mit der einen oder den mehreren Eigenschaften des empfangenen Netzpakets übereinstimmt, Verwerfen des empfangenen Netzpakets durch den NIC.
  • Beispiel 20 umfasst den Gegenstand eines der Beispiele 12-19, wobei die mehreren Befehle die Rechenvorrichtung ferner zu Folgendem veranlassen: als Antwort auf eine Bestimmung, dass die lokale Zielwarteschlange voll ist, Einreihen des empfangenen Netzpakets in die identifizierte lokale Zielwarteschlange durch den NIC.
  • Beispiel 21 umfasst den Gegenstand eines der Beispiele 12-20, wobei der vordefinierte Ausgang einen von einem vordefinierten Port, einer vordefinierten Medienzugriffssteuerungsadresse (MAC-Adresse) oder einem vordefinierten Tunnel umfasst.
  • Beispiel 22 umfasst den Gegenstand eines der Beispiele 12-21, wobei die mehreren Befehle die Rechenvorrichtung ferner zu Folgendem veranlassen: nach einer Bestimmung, alle globalen Warteschlangeneinträge weiterzuleiten, Ändern eines internen Zustands des globalen Paketpuffers zu einem Weiterleitungszustand durch den NIC; Empfangen eines anderen Netzpakets von der anderen Rechenvorrichtung durch den NIC; und nach einer Bestimmung, dass sich der interne Zustand des globalen Paketpuffers in dem Weiterleitungszustand befindet, Weiterleiten des empfangenen anderen Pakets an eine Zielrechenvorrichtung durch den NIC.
  • Das Beispiel 23 umfasst eine Rechenvorrichtung zur Paketweiterleitung unter Eingangswarteschlangenüberlaufbedingungen, wobei die Rechenvorrichtung umfasst: eine Schaltungsanordnung zum Empfangen eines Netzpakets von einer anderen Rechenvorrichtung; Mittel zum Bestimmen, ob ein globaler Paketpuffer des NIC voll ist; Mittel zum Bestimmen, ob alle globalen Paketpuffereinträge weitergeleitet werden sollen, als Antwort auf eine Bestimmung, dass der globale Paketpuffer voll ist; Mittel zum Vergleichen eines Auswahlfilters mit einer oder mehreren Eigenschaften des empfangenen Netzpakets als Antwort auf eine Bestimmung, dass nicht alle globalen Paketpuffereinträge weitergeleitet werden sollen; und Mittel zum Weiterleiten des empfangenen Netzpakets an einen vordefinierte Ausgang als Antwort auf eine Bestimmung, dass das Auswahlfilter mit der einen oder den mehreren Eigenschaften des empfangenen Netzpakets übereinstimmt.
  • Beispiel 24 umfasst den Gegenstand von Beispiel 23, wobei die Rechenvorrichtung ferner umfasst: Mittel zum Bestimmen, ob ein globaler Paketpufferalarm gesendet werden soll, als Antwort auf eine Bestimmung, dass der globale Paketpuffer voll ist; und Mittel zum Senden des globalen Paketpufferalarms an eine standardmäßig konfigurierte Adresse als Antwort auf eine Bestimmung, den globalen Paketpufferalarm zu senden.
  • Beispiel 25 umfasst den Gegenstand von einem der Beispiele 23 und 24, wobei die Rechenvorrichtung ferner Folgendes umfasst: Mittel zum Durchführen einer internen Klassifizierung als Funktion der einen oder der mehreren Eigenschaften des empfangenen Netzpakets; Mittel zum Identifizieren einer lokalen Zielwarteschlange, die dem empfangenen Netzpaket zugeordnet ist, als Funktion der internen Klassifizierung; Mittel zum Bestimmen, ob die identifizierte lokale Zielwarteschlange voll ist; Mittel zum Bestimmen, ob alle lokalen Zielwarteschlangeneinträge weitergeleitet werden sollen, als Antwort auf eine Bestimmung, dass die lokale Zielwarteschlange nicht voll ist; Mittel zum Vergleichen des Auswahlfilters mit der einen oder den mehreren Eigenschaften des empfangenen Netzpakets als Antwort auf eine Bestimmung, dass nicht alle lokalen Zielwarteschlangeneinträge weitergeleitet werden sollen; und eine Schaltungsanordnung zum Weiterleiten des empfangenen Netzpakets an den vordefinierten Ausgang als Antwort auf ein Ergebnis des Vergleichs, das angibt, dass das Auswahlfilter mit der einen oder den mehreren Eigenschaften des empfangenen Netzpakets übereinstimmt.

Claims (25)

  1. Rechenvorrichtung zur Paketweiterleitung unter Eingangswarteschlangenüberlaufbedingungen, wobei die Rechenvorrichtung Folgendes umfasst: eine Rechenmaschine; und einen Netzschnittstellencontroller (NIC) für Folgendes: Empfangen eines Netzpakets von einer anderen Rechenvorrichtung; Bestimmen, ob ein globaler Paketpuffer des NIC voll ist; als Antwort auf eine Bestimmung, dass der globale Paketpuffer voll ist, Bestimmen, ob alle globalen Paketpuffereinträge weitergeleitet werden sollen; als Antwort auf eine Bestimmung, dass nicht alle globalen Paketpuffereinträge weitergeleitet werden sollen, Vergleichen eines Auswahlfilters mit einer oder mehreren Eigenschaften des empfangenen Netzpakets; und als Antwort auf eine Bestimmung, dass das Auswahlfilter mit der einen oder den mehreren Eigenschaften des empfangenen Netzpakets übereinstimmt, Weiterleiten des empfangenen Netzpakets an einen vordefinierten Ausgang.
  2. Rechenvorrichtung nach Anspruch 1, wobei der NIC ferner zu Folgendem ausgelegt ist: als Antwort auf eine Bestimmung, dass der globale Paketpuffer voll ist, Bestimmen, ob ein globaler Paketpufferalarm gesendet werden soll; und als Antwort auf eine Bestimmung, den globalen Paketpufferalarm zu senden, Senden des globalen Paketpufferalarms an eine standardmäßig konfigurierte Adresse.
  3. Rechenvorrichtung nach Anspruch 1, wobei der NIC ferner zu Folgendem ausgelegt ist: als Antwort auf ein Ergebnis des Vergleichs, das angibt, dass das Auswahlfilter nicht mit der einen oder den mehreren Eigenschaften des empfangenen Netzpakets übereinstimmt, Verwerfen des empfangenen Netzpakets.
  4. Rechenvorrichtung nach Anspruch 1, wobei der NIC ferner zu Folgendem ausgelegt ist: als Antwort auf eine Bestimmung, dass der globale Paketpuffer nicht voll ist, Durchführen einer internen Klassifizierung als Funktion der einen oder der mehreren Eigenschaften des empfangenen Netzpakets; und Identifizieren einer lokalen Zielwarteschlange, die dem empfangenen Netzpaket zugeordnet ist, als Funktion der internen Klassifizierung.
  5. Rechenvorrichtung nach Anspruch 4, wobei der NIC ferner zu Folgendem ausgelegt ist: Bestimmen, ob die identifizierte lokale Zielwarteschlange voll ist; als Antwort auf eine Bestimmung, dass die lokale Zielwarteschlange nicht voll ist, Bestimmen, ob alle lokalen Zielwarteschlangeneinträge weitergeleitet werden sollen; als Antwort auf eine Bestimmung, dass nicht alle lokalen Zielwarteschlangeneinträge weitergeleitet werden sollen, Vergleichen des Auswahlfilters mit der einen oder den mehreren Eigenschaften des empfangenen Netzpakets; und als Antwort auf ein Ergebnis des Vergleichs, das angibt, dass das Auswahlfilter mit der einen oder den mehreren Eigenschaften des empfangenen Netzpakets übereinstimmt, Weiterleiten des empfangenen Netzpakets an den vordefinierten Ausgang.
  6. Rechenvorrichtung nach Anspruch 5, wobei der NIC ferner zu Folgendem ausgelegt ist: als Antwort auf eine Bestimmung, dass der globale Paketpuffer voll ist, Bestimmen, ob ein Zielwarteschlangenalarm gesendet werden soll; und als Antwort auf eine Bestimmung, dass der Zielwarteschlangenalarm gesendet werden soll, Senden des Zielwarteschlangenalarms an eine Standardadresse.
  7. Rechenvorrichtung nach Anspruch 6, wobei das Bestimmen, ob der Zielwarteschlangenalarm gesendet werden soll, ein Bestimmen als Funktion einer Einstellung eines Merkers für einmaligen virtuellen Alarm, ob der Zielwarteschlangenalarm gesendet werden soll, und eine Bestimmung, ob der Zielwarteschlangenalarm bereits gesendet worden ist, umfasst, wobei die Einstellung des Merkers für einmaligen virtuellen Alarm angibt, ob der Zielwarteschlangenalarm nur einmal gesendet werden soll.
  8. Rechenvorrichtung nach Anspruch 5, wobei der NIC ferner zu Folgendem ausgelegt ist: als Antwort auf ein Ergebnis des Vergleichs, das angibt, dass das Auswahlfilter nicht mit der einen oder den mehreren Eigenschaften des empfangenen Netzpakets übereinstimmt, Verwerfen des empfangenen Netzpakets.
  9. Rechenvorrichtung nach Anspruch 4, wobei der NIC ferner zu Folgendem ausgelegt ist: als Antwort auf eine Bestimmung, dass die lokale Zielwarteschlange voll ist, Einreihen des empfangenen Netzpakets in die identifizierte lokale Zielwarteschlange.
  10. Rechenvorrichtung nach Anspruch 1, wobei der vordefinierte Ausgang einen von einem vordefinierten Port, einer vordefinierten Medienzugriffssteuerungsadresse (MAC-Adresse) oder einem vordefinierten Tunnel umfasst.
  11. Rechenvorrichtung nach Anspruch 1, wobei der NIC ferner zu Folgendem ausgelegt ist: nach einer Bestimmung, alle globalen Warteschlangeneinträge weiterzuleiten, Ändern eines internen Zustands des globalen Paketpuffers zu einem Weiterleitungszustand; Empfangen eines anderen Netzpakets von der anderen Rechenvorrichtung; und nach einer Bestimmung, dass sich der interne Zustand des globalen Paketpuffers in dem Weiterleitungszustand befindet, Weiterleiten des empfangenen anderen Pakets an eine Zielrechenvorrichtung.
  12. Ein oder mehrere maschinenlesbare Speichermedien, die mehrere darauf gespeicherte Befehle enthalten, die als Antwort auf ihre Ausführung eine Rechenvorrichtung zu Folgendem veranlassen: Empfangen eines Netzpakets von einer anderen Rechenvorrichtung durch einen Netzschnittstellencontroller (NIC) der Rechenvorrichtung; Bestimmen, ob ein globaler Paketpuffer des NIC voll ist, durch den NIC; als Antwort auf eine Bestimmung, dass der globale Paketpuffer voll ist, Bestimmen, ob alle globalen Paketpuffereinträge weitergeleitet werden sollen, durch den NIC; als Antwort auf eine Bestimmung, dass nicht alle globalen Paketpuffereinträge weitergeleitet werden sollen, Vergleichen eines Auswahlfilters mit einer oder mehreren Eigenschaften des empfangenen Netzpakets durch den NIC; und als Antwort auf eine Bestimmung, dass das Auswahlfilter mit der einen oder den mehreren Eigenschaften des empfangenen Netzpakets übereinstimmt, Weiterleiten des empfangenen Netzpakets an einen vordefinierten Ausgang durch den NIC.
  13. Ein oder mehrere maschinenlesbare Speichermedien nach Anspruch 12, wobei die mehreren Befehle die Rechenvorrichtung ferner zu Folgendem veranlassen: als Antwort auf eine Bestimmung, dass der globale Paketpuffer voll ist, Bestimmen, ob ein globaler Paketpufferalarm gesendet werden soll, durch den NIC; und als Antwort auf eine Bestimmung, den globalen Paketpufferalarm zu senden, Senden des globalen Paketpufferalarms an eine standardmäßig konfigurierte Adresse durch den NIC.
  14. Ein oder mehrere maschinenlesbare Speichermedien nach Anspruch 12, wobei die mehreren Befehle die Rechenvorrichtung ferner zu Folgendem veranlassen: als Antwort auf ein Ergebnis des Vergleichs, das angibt, dass das Auswahlfilter nicht mit der einen oder den mehreren Eigenschaften des empfangenen Netzpakets übereinstimmt, Verwerfen des empfangenen Netzpakets durch den NIC.
  15. Ein oder mehrere maschinenlesbare Speichermedien nach Anspruch 12, wobei die mehreren Befehle die Rechenvorrichtung ferner zu Folgendem veranlassen: als Antwort auf eine Bestimmung, dass der globale Paketpuffer nicht voll ist, Durchführen einer internen Klassifizierung als Funktion der einen oder der mehreren Eigenschaften des empfangenen Netzpakets durch den NIC; und Identifizieren einer lokalen Zielwarteschlange, die dem empfangenen Netzpaket zugeordnet ist, als Funktion der internen Klassifizierung durch den NIC.
  16. Ein oder mehrere maschinenlesbare Speichermedien nach Anspruch 15, wobei die mehreren Befehle die Rechenvorrichtung ferner zu Folgendem veranlassen: Bestimmen, ob die identifizierte lokale Zielwarteschlange voll ist durch den NiC; als Antwort auf eine Bestimmung, dass die lokale Zielwarteschlange nicht voll ist, Bestimmen, ob alle lokalen Zielwarteschlangeneinträge weitergeleitet werden sollen, durch den NIC; als Antwort auf eine Bestimmung, dass nicht alle lokalen Zielwarteschlangeneinträge weitergeleitet werden sollen, Vergleichen des Auswahlfilters mit der einen oder den mehreren Eigenschaften des empfangenen Netzpakets durch den NIC; und als Antwort auf ein Ergebnis des Vergleichs, das angibt, dass das Auswahlfilter mit der einen oder den mehreren Eigenschaften des empfangenen Netzpakets übereinstimmt, Weiterleiten des empfangenen Netzpakets an den vordefinierten Ausgang durch den NIC.
  17. Ein oder mehrere maschinenlesbare Speichermedien nach Anspruch 16, wobei die mehreren Befehle die Rechenvorrichtung ferner zu Folgendem veranlassen: als Antwort auf eine Bestimmung, dass der globale Paketpuffer voll ist, Bestimmen, ob ein Zielwarteschlangenalarm gesendet werden soll, durch den NIC; und als Antwort auf eine Bestimmung, dass der Zielwarteschlangenalarm gesendet werden soll, Senden des Zielwarteschlangenalarms an eine Standardadresse durch den NIC.
  18. Ein oder mehrere maschinenlesbare Speichermedien nach Anspruch 17, wobei das Bestimmen, ob der Zielwarteschlangenalarm gesendet werden soll, ein Bestimmen als Funktion einer Einstellung eines Merkers für einmaligen virtuellen Alarm, ob der Zielwarteschlangenalarm gesendet werden soll, und eine Bestimmung, ob der Zielwarteschlangenalarm bereits gesendet worden ist, umfasst, wobei die Einstellung des Merkers für einmaligen virtuellen Alarm angibt, ob der Zielwarteschlangenalarm nur einmal gesendet werden soll.
  19. Ein oder mehrere maschinenlesbare Speichermedien nach Anspruch 16, wobei die mehreren Befehle die Rechenvorrichtung ferner zu Folgendem veranlassen: als Antwort auf ein Ergebnis des Vergleichs, das angibt, dass das Auswahlfilter nicht mit der einen oder den mehreren Eigenschaften des empfangenen Netzpakets übereinstimmt, Verwerfen des empfangenen Netzpakets durch den NIC.
  20. Ein oder mehrere maschinenlesbare Speichermedien nach Anspruch 15, wobei die mehreren Befehle die Rechenvorrichtung ferner zu Folgendem veranlassen: als Antwort auf eine Bestimmung, dass die lokale Zielwarteschlange voll ist, Einreihen des empfangenen Netzpakets in die identifizierte lokale Zielwarteschlange durch den NIC.
  21. Ein oder mehrere maschinenlesbare Speichermedien nach Anspruch 12, wobei der vordefinierte Ausgang einen von einem vordefinierten Port, einer vordefinierten Medienzugriffssteuerungsadresse (MAC-Adresse) oder einem vordefinierten Tunnel umfasst.
  22. Ein oder mehrere maschinenlesbare Speichermedien nach Anspruch 12, wobei die mehreren Befehle die Rechenvorrichtung ferner zu Folgendem veranlassen: nach einer Bestimmung, alle globalen Warteschlangeneinträge weiterzuleiten, Ändern eines internen Zustands des globalen Paketpuffers zu einem Weiterleitungszustand durch den NIC; Empfangen eines anderen Netzpakets von der anderen Rechenvorrichtung durch den NIC; und nach einer Bestimmung, dass sich der interne Zustand des globalen Paketpuffers in dem Weiterleitungszustand befindet, Weiterleiten des empfangenen anderen Pakets an eine Zielrechenvorrichtung durch den NIC.
  23. Rechenvorrichtung zur Paketweiterleitung unter Eingangswarteschlangenüberlaufbedingungen, wobei die Rechenvorrichtung Folgendes umfasst: eine Schaltungsanordnung zum Empfangen eines Netzpakets von einer anderen Rechenvorrichtung; Mittel zum Bestimmen, ob ein globaler Paketpuffer des NIC voll ist; Mittel zum Bestimmen, ob alle globalen Paketpuffereinträge weitergeleitet werden sollen, als Antwort auf eine Bestimmung, dass der globale Paketpuffer voll ist; Mittel zum Vergleichen eines Auswahlfilters mit einer oder mehreren Eigenschaften des empfangenen Netzpakets als Antwort auf eine Bestimmung, dass nicht alle globalen Paketpuffereinträge weitergeleitet werden sollen; und eine Schaltungsanordnung zum Weiterleiten des empfangenen Netzpakets an einen vordefinierten Ausgang als Antwort auf eine Bestimmung, dass das Auswahlfilter mit der einen oder den mehreren Eigenschaften des empfangenen Netzpakets übereinstimmt.
  24. Rechenvorrichtung nach Anspruch 23, wobei die Rechenvorrichtung ferner umfasst: Mittel zum Bestimmen, ob ein globaler Paketpufferalarm gesendet werden soll, als Antwort auf eine Bestimmung, dass der globale Paketpuffer voll ist; und Mittel zum Senden des globalen Paketpufferalarms an eine standardmäßig konfigurierte Adresse als Antwort auf eine Bestimmung, den globalen Paketpufferalarm zu senden.
  25. Rechenvorrichtung nach Anspruch 23, wobei die Rechenvorrichtung ferner Folgendes umfasst: Mittel zum Durchführen einer internen Klassifizierung als Funktion der einen oder der mehreren Eigenschaften des empfangenen Netzpakets; Mittel zum Identifizieren einer lokalen Zielwarteschlange, die dem empfangenen Netzpaket zugeordnet ist, als Funktion der internen Klassifizierung; Mittel zum Bestimmen, ob die identifizierte lokale Zielwarteschlange voll ist; Mittel zum Bestimmen, ob alle lokalen Zielwarteschlangeneinträge weitergeleitet werden sollen, als Antwort auf eine Bestimmung, dass die lokale Zielwarteschlange nicht voll ist; Mittel zum Vergleichen des Auswahlfilters mit der einen oder den mehreren Eigenschaften des empfangenen Netzpakets als Antwort auf eine Bestimmung, dass nicht alle lokalen Zielwarteschlangeneinträge weitergeleitet werden sollen; und eine Schaltungsanordnung zum Weiterleiten des empfangenen Netzpakets an den vordefinierten Ausgang als Antwort auf ein Ergebnis des Vergleichs, das angibt, dass das Auswahlfilter mit der einen oder den mehreren Eigenschaften des empfangenen Netzpakets übereinstimmt.
DE102019105288.2A 2018-03-30 2019-03-01 Technologien zur Paketweiterleitung bei Eingangswarteschlangenüberlauf Pending DE102019105288A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/941,969 US11646980B2 (en) 2018-03-30 2018-03-30 Technologies for packet forwarding on ingress queue overflow
US15/941,969 2018-03-30

Publications (1)

Publication Number Publication Date
DE102019105288A1 true DE102019105288A1 (de) 2019-10-02

Family

ID=67910251

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102019105288.2A Pending DE102019105288A1 (de) 2018-03-30 2019-03-01 Technologien zur Paketweiterleitung bei Eingangswarteschlangenüberlauf

Country Status (2)

Country Link
US (1) US11646980B2 (de)
DE (1) DE102019105288A1 (de)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10862804B2 (en) * 2018-10-09 2020-12-08 Colotokens Inc. Redirecting data packets between overlay network and underlay network
US11212262B2 (en) * 2019-03-04 2021-12-28 Cyxtera Cybersecurity, Inc. Management of network access request based on source address of device
EP4335093A1 (de) * 2021-05-31 2024-03-13 Huawei Technologies Co., Ltd. Vorrichtung und verfahren für intelligente warteschlangenbildung
US11899984B1 (en) 2022-07-26 2024-02-13 Beijing Tenafe Electronic Technology Co., Ltd. Virtual queue for messages
US11907147B1 (en) 2022-07-28 2024-02-20 Beijing Tenafe Electronic Technology Co., Ltd. Programmable message inspection engine implemented in hardware that generates an output message using a content modification plan and a destination control plan
CN115145864B (zh) * 2022-09-05 2022-11-04 深圳比特微电子科技有限公司 数据处理方法、系统、电子设备和存储介质

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6760775B1 (en) 1999-03-05 2004-07-06 At&T Corp. System, method and apparatus for network service load and reliability management
US20050033809A1 (en) 2003-08-08 2005-02-10 Teamon Systems, Inc. Communications system providing server load balancing based upon weighted health metrics and related methods
US7499399B2 (en) 2003-12-12 2009-03-03 Intel Corporation Method and system to determine whether a circular queue is empty or full
US7443878B2 (en) 2005-04-04 2008-10-28 Sun Microsystems, Inc. System for scaling by parallelizing network workload
US20070268925A1 (en) * 2006-05-16 2007-11-22 Samsung Electronics Co., Ltd. Input buffer device and control method thereof
US20080263171A1 (en) 2007-04-19 2008-10-23 Alacritech, Inc. Peripheral device that DMAS the same data to different locations in a computer
GB0802126D0 (en) 2008-02-05 2008-03-12 Level 5 Networks Inc Scalable sockets
US9178839B2 (en) 2008-07-24 2015-11-03 International Business Machines Corporation Sharing buffer space in link aggregation configurations
US8478877B2 (en) 2010-02-24 2013-07-02 Oracle International Corporation Architecture-aware allocation of network buffers
US8762534B1 (en) 2011-05-11 2014-06-24 Juniper Networks, Inc. Server load balancing using a fair weighted hashing technique
US20120307641A1 (en) * 2011-05-31 2012-12-06 Cisco Technology, Inc. Dynamic Flow Segregation for Optimal Load Balancing Among Ports in an Etherchannel Group
US8937918B2 (en) * 2011-10-29 2015-01-20 Ofinno Technologies, Llc Efficient special subframe allocation
DE112011105868T5 (de) 2011-11-22 2014-08-28 Intel Corporation Netzwerkvorrichtungsauswahl
US9155046B2 (en) * 2012-09-12 2015-10-06 Intel Corporation Optimizing semi-active workloads
US9602437B1 (en) 2012-10-03 2017-03-21 Tracey M. Bernath System and method for accelerating network applications using an enhanced network interface and massively parallel distributed processing
US9178815B2 (en) 2013-03-05 2015-11-03 Intel Corporation NIC flow switching
US9621633B2 (en) 2013-03-15 2017-04-11 Intel Corporation Flow director-based low latency networking
KR102235175B1 (ko) * 2013-03-17 2021-04-02 엘지전자 주식회사 방송채널할당 방법 및 방송채널 신호 송수신방법과 이를 지원하는 장치
US10684973B2 (en) 2013-08-30 2020-06-16 Intel Corporation NUMA node peripheral switch
US9515823B2 (en) 2013-08-30 2016-12-06 L-3 Communications Corporation Cryptographic device with detachable data planes
JPWO2015141337A1 (ja) * 2014-03-19 2017-04-06 日本電気株式会社 受信パケット分散方法、キュー選択器、パケット処理装置、プログラム、およびネットワークインタフェースカード
US10454991B2 (en) * 2014-03-24 2019-10-22 Mellanox Technologies, Ltd. NIC with switching functionality between network ports
WO2016026131A1 (zh) 2014-08-22 2016-02-25 上海交通大学 一种基于 numa 高性能网络缓存资源亲和度的虚拟处理器的调度方法
US9558041B2 (en) 2014-09-05 2017-01-31 Telefonaktiebolaget L M Ericsson (Publ) Transparent non-uniform memory access (NUMA) awareness
US10721302B2 (en) 2014-12-05 2020-07-21 Foundation for Research and Technology—Hellas (FORTH) Network storage protocol and adaptive batching apparatuses, methods, and systems
US9858102B2 (en) * 2015-05-21 2018-01-02 Dell Products, L.P. Data path failover method for SR-IOV capable ethernet controller
US9678806B2 (en) 2015-06-26 2017-06-13 Advanced Micro Devices, Inc. Method and apparatus for distributing processing core workloads among processing cores
WO2017014758A1 (en) 2015-07-21 2017-01-26 Hewlett Packard Enterprise Development Lp Providing power to a server
US10079877B2 (en) 2016-02-04 2018-09-18 Citrix Systems, Inc. System and method for cloud aware application delivery controller
CN106506393A (zh) 2016-02-05 2017-03-15 华为技术有限公司 一种数据流处理方法、装置和系统
US10341241B2 (en) 2016-11-10 2019-07-02 Hughes Network Systems, Llc History-based classification of traffic into QoS class with self-update
US10511708B2 (en) 2017-03-15 2019-12-17 Citrix Systems, Inc. Systems and methods for quality of experience for interactive application in hybrid wan
US20180285151A1 (en) 2017-03-31 2018-10-04 Intel Corporation Dynamic load balancing in network interface cards for optimal system level performance

Also Published As

Publication number Publication date
US11646980B2 (en) 2023-05-09
US20190306088A1 (en) 2019-10-03

Similar Documents

Publication Publication Date Title
DE102019105288A1 (de) Technologien zur Paketweiterleitung bei Eingangswarteschlangenüberlauf
DE102020132078A1 (de) Ressourcenzuteilung basierend auf anwendbarem service level agreement
US20230412459A1 (en) Technologies for dynamically selecting resources for virtual switching
DE102018214776A1 (de) Technologien für die Verwaltung von Netz-Statistik-Zählern
DE102019105193A1 (de) Technologien zum beschleunigen von edge-vorrichtungsarbeitslasten
EP3275140B1 (de) Technik zur erreichung von niedriger latenz in datenzentrumsnetzwerkumgebungen
DE112013006417B4 (de) Verlustfreie Schalterstruktur mit niedriger Latenzzeit zum Gebrauch in einem Rechenzentrum
DE112020006828T5 (de) Verbessern einer Ende-zu-Ende-Überlastungsreaktion unter Verwendung von adaptivem Routing und Überlastungshinweis-basierter Drosselung für IP-geroutete Rechenzentrumsnetzwerke
US20130148513A1 (en) Creating packet traffic clustering models for profiling packet flows
DE102015119889A1 (de) Verfahren für Netzwerkvorrichtungsfluss-Look-up-Verwaltung
US9559960B2 (en) Network congestion management
DE102020113544A1 (de) Bedarfsgesteuerte paketwarteschlangen in einer netzwerkvorrichtung
DE102017122738A1 (de) Virtueller Router mit dynamischer Flussauslagerungsfähigkeit
DE112016005927T5 (de) Technologien zur Ablaufverfolgung der Seitenleistung im Netzwerkdatenverkehr
US20190045000A1 (en) Technologies for load-aware traffic steering
DE112017003324T5 (de) Technologien für adaptives Routing unter Verwendung aggregierter Überlastungsinformationen
EP3588856B1 (de) Technologien zum hot-swapping eines altgeräts mit einem netzwerkfunktionsvirtualisierungsgerät
DE102022121268A1 (de) Überlastungssteuerung auf basis von netzwerktelemetrie
DE102018004111A1 (de) Datencenter-Leistungsmanagement
DE112006002912T5 (de) Verwaltung von On-Chip-Warteschleifen in geschalteten Netzwerken
CN109120533A (zh) 一种报文发送方法及路由设备
DE112019003854T5 (de) Flusssteuerungssichtbarkeit
DE112019007502T5 (de) Zuordnen von nvme-over-fabric-paketen mithilfe von virtuellen ausgangswarteschlangen
DE102019103932A1 (de) Technologien für optimierte Dienstgütebeschleunigung
DE102022103981A1 (de) Flusssteuerungstechnologien

Legal Events

Date Code Title Description
R082 Change of representative

Representative=s name: MAUCHER JENKINS PATENTANWAELTE & RECHTSANWAELT, DE

R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: H04L0012861000

Ipc: H04L0049900000