-
INANSPRUCHNAHME EINER PRIORITÄT
-
Diese Anmeldung beansprucht die Priorität der provisorischen
US-Patentanmeldung Nr. 62/360,848 , mit dem Titel „Multiple Core Software Forwarding“, die am 11. Juli 2016 eingereicht wurde und deren Offenbarung hiermit durch Bezugnahme vollinhaltlich in das vorliegende Dokument aufgenommen wird.
-
GEBIET DER ERFINDUNG
-
Ausführungsformen der Erfindung betreffen ein Durchführen aller Funktionen eines Forwarding von Downstream- und Upstream-Daten bei DOCSIS unter Verwendung von ausführbarer Software.
-
HINTERGRUND
-
Eine CCAP (Converged Cable Access Platform) ist ein von CableLabs geleitetes Vorhaben, das zwei Projekte technisch und operativ vereint: CMAP (Converged Multiservice Access Platform), unter der Leitung von Comcast Corp., und CESAR (Converged Edge Services Access Router), unter der Leitung von Time Warner Cable Inc.
-
DOCSIS (Data Over Cable Service Interface Specification) ist ein Telekommunikationsstandard, der verwendet wird, um einen Internetzugang über ein Kabelmodem bereitzustellen.
-
Derzeit ist es branchenübliche Praxis, ein Downstream-Forwarding in einer CCAP-Umgebung in Hardware zu implementieren, und zwar beispielsweise TCAMs (Ternary Content-Addressable Memory) für ein Klassifizieren und FPGAs (Field-Programmable Gate Arrays) für Scheduling und Replikation von Paketen.
-
Figurenliste
-
Ausführungsformen der Erfindung sind beispielhaft und nicht einschränkend in den Figuren der anliegenden Zeichnungen dargestellt, in denen gleiche Bezugszeichen ähnliche Elemente bezeichnen; in diesen sind:
- 1 eine Darstellung eines Downstream- und Upstream-Forwarding bei DOCSIS gemäß einer Ausführungsform der Erfindung;
- 2 ein Ablaufdiagramm, das die funktionalen Schritte eines Downstream-Forwarding bei DOCSIS gemäß einer Ausführungsform der Erfindung darstellt;
- 3 ein Ablaufdiagramm, das die funktionalen Schritte eines Upstream-Forwarding bei DOCSIS gemäß einer Ausführungsform der Erfindung darstellt; und
- 4 ein Blockdiagramm, das ein Computersystem darstellt, auf dem eine Ausführungsform der Erfindung implementiert sein kann.
-
DETAILLIERTE BESCHREIBUNG DER ERFINDUNG
-
Es werden hier Lösungsansätze für ein Durchführen aller Funktionen eines Forwarding von Downstream- und Upstream-Daten bei DOCSIS unter Verwendung von ausführbarer Software dargestellt. In der folgenden Beschreibung sind zu Erläuterungszwecken zahlreiche spezifische Details dargelegt, um für ein grundlegendes Verständnis der Ausführungsformen der hier beschriebenen Erfindung zu sorgen. Es versteht sich jedoch, dass die hier beschriebenen Ausführungsformen der Erfindung ohne diese spezifischen Details ausgeführt sein können. In anderen Fällen sind allgemein bekannte Strukturen und Vorrichtungen in Form eines Blockdiagramms dargestellt oder werden auf einer höheren Ebene erörtert, um zu vermeiden, dass die Lehren der Ausführungsformen der Erfindung unnötigerweise unklar werden.
-
Bei einer virtuellen CCAP (Converged Cable Access Platform) handelt es sich um Software, welche die Funktionen eines Hardware-basierten CCAP durchführt. Die virtuelle CCAP kann auf Hardware-Bauteilen ausgeführt werden, die einen COTS-Switch/Router (COTS = Commercial Off-the-Shelf = kommerzielle Produkte aus dem Regal/ „von der Stange“) und einen oder mehrere COTS-Compute-Server beinhalten. Ein kommerzielles Beispiel eines virtuellen CCAP ist CableOS, das von Harmonic, Inc. von San Jose, Kalifornien, bezogen werden kann.
-
Bei Ausführungsformen der Erfindung für eine softwarebasierte CCAP-Umgebung können rasch neue Merkmale hinzugefügt werden, z. B. ist die Einführung von hohe/niedrige Priorität aufweisenden Datenringen möglich.
-
Ausführungsformen der Erfindung zielen darauf ab, die Funktionen eines auf der MAC-Schicht erfolgenden Downstream-Forwarding bei DOCSIS zwischen mehreren Software-Cores eines COTS-Switch/Router (bei gewissen Ausführungsformen als CRE (Core Routing Engine) bezeichnet) einer virtuellen CCAP aufzuteilen. Bei gewissen Ausführungsformen wird das DPDK (Data Plane Development Kit) genutzt, das sich durch das Merkmal von Locking-freien Ringe zwischen den Cores auszeichnet. Derartige Locking-freie Ringe enthalten Zeiger, die auf gemeinsam genutzte DPDK-MBUFs zeigen (MBUFs = Message Buffers = Nachrichtenpuffer). Jedes MBUF weist einen Header, der eine DPDK-MBUF betreffende Bibliotheksinformation enthält, sowie eine Struktur auf, die sich zwischen dem Ende des MBUF-Header und dem Anfang der Paketdaten befindet und die als MBUF-„Headroom“ bezeichnet wird. Bei Ausführungsbeispielen wird ein Speichern von für ein DOCSIS-Forwarding nützlicher Information in dem MBUF-Headroom verlangt.
-
Bei Ausführungsformen der Erfindung werden „Ein-Erzeuger-Ein-Abnehmer“-Ringe von DPDK verwendet, um eine Synchronisierung von Threads zwischen mehreren Erzeugern oder mehreren Abnehmern zu vermeiden. Jeder Thread überprüft wiederholt die Verfügbarkeit jeglicher Pakete auf jedem der Ringe, die er empfängt. 1 ist eine Darstellung eines Downstream-Forwarding bei DOCSIS gemäß einer Ausführungsform der Erfindung. Der Verteiler-Thread 110 von 1 ist ein Thread, der verantwortlich dafür ist, alle ankommenden physischen Pakete von dem Trunk-Ethernetport zu empfangen, der an einen COTS-Switch/Router (welcher bei einer Ausführungsform einer CRE entsprechen kann) angeschlossen ist. Die von dem Verteiler-Thread 110 empfangenen ankommenden physischen Pakete beinhalten über das Internet transportierte Downstream-Pakete sowie Upstream-Pakete, die mittels Tunneling von einem Remote-PHY-Gerät (RPD) eingespeist wurden.
-
Obschon Ausführungsformen der Erfindung hauptsächlich in Bezug darauf beschrieben sind, dass der Verteiler-Thread 110 mittels Software implementiert ist, sei angemerkt, dass bei weiteren Ausführungsformen der Erfindung die Funktionen des Verteiler-Thread 110 in Form von Hardware ausgeführt sein können. Beispielsweise können gewisse Ausführungsformen eine Netzwerkkarte (NIC) verwenden, welche die dem Verteiler-Thread 110 zugewiesenen Funktionen durchführt. Ein derartiges Ausführungsbeispiel kann eine Verteiler-Komponente beinhalten, bei der es sich um ein Hardware-Bauteil handelt, beispielsweise, jedoch nicht eingeschränkt auf, eine NIC, wobei dieses konfiguriert ist, die dem Verteiler-Thread 110 zugewiesenen Funktionen durchzuführen, wie hier erörtert. Weitere Ausführungsformen der Erfindung können eine Verteiler-Komponente beinhalten, welche die dem Verteiler-Thread 110 zugewiesenen Funktionen wie hier erörtert teilweise mit einem Hardware-Bauteil und teilweise mittels Software durchführt.
-
Upstream-Pakete können in das L2TPv3-Protokoll gekapselt sein und werden an eine L2TPv3-LCCE (LCCE = Logical Control Connection Entity) adressiert, die auf einem COTS-Switch/Router (bei einem Ausführungsbeispiel z. B. eine CRE (Core Routing Engine)) implementiert ist. Bei einer Ausführungsform dieser Erfindung wird eine lokal verwaltete MAC-Adresse dem LCCE zugewiesen, und zwar von der Form 02:xx:xx:xx:xx:xx, so dass der Verteiler-Thread 110 ein mittels Tunneling übertragenes L2TPv3-Paket rasch erkennen kann und ein Forwarding dieses Paketes an den UsMac-Thread 112 durchführen kann, der eine Upstream-Verarbeitung durchführt. Der Verteiler-Thread 110 führt ein Forwarding aller anderen empfangenen Pakete an einen von einer Mehrzahl von DSPP-Threads 114 durch, bei denen es sich um Threads handelt, die für eine Downstream-Verarbeitung verantwortlich sind. Um dies zu bewerkstelligen, kann der Verteiler-Thread 110 ein Hashing der Quellen- und Ziel-MAC- und/oder -IP-Adressen durchführen, um eine Lastverteilung zwischen den DSPP-Threads 114 durchzuführen.
-
AUSFÜHRUNGSUMGEBUNGEN
-
Bevor die Funktionsweise von Downstream- und Upstream-Datenströmen erörtert wird, ist es hilfreich, die Beziehung zwischen den in 1 dargestellten operativen Stufen und den logischen Cores zu verstehen. Die in 1 dargestellten operativen Stufen entsprechen der Verteilerstufe (entsprechend der Verteiler-Komponente), der DSPP-Stufe (DSPP = Downstream-Paketverarbeitung) (entsprechend der Mehrzahl von DSPP-Threads 114), der DsEnc-Stufe (DsEnc = Downstream-Verschlüsselung) (entsprechend der Mehrzahl von DsEnc-Threads 116), der TM-Stufe (TM = Datenverkehrsverwalter) (entsprechend der Mehrzahl von TM-Threads 118), der DsMac-Stufe (DsMac = Downstream-Medienzugangssteuerung) (entsprechend der Mehrzahl von DsMac-Threads 120), der UsMac-Stufe (UsMac = Upstream-Medienzugangssteuerung) (entsprechend einem UsMac-Thread 112), und der USPP-Stufe (USPP = Upstream-Paketverarbeitung) (entsprechend einer UsMac-Komponente). Die funktionalen Komponenten in jeder dieser Stufen wird später noch detaillierter erläutert. Wie hier verwendet, beinhaltet ein logischer Core einen physischen CPU-Core, beispielsweise die Hyper-Threading-Technologie von Intel®, oder einen virtuellen CPU-Core.
-
Bei gewissen Ausführungsformen der Erfindung kann jede in 1 dargestellte operative Stufe auf separaten logischen Cores ausgeführt werden. Bei weiteren Ausführungsformen der Erfindung können zwei oder mehr in 1 dargestellte operative Stufen in einem einzelnen logischen Core ausgeführt werden.
-
Bei noch weiteren Ausführungsformen der Erfindung können alle in 1 dargestellten operativen Stufen in einem einzelnen logischen Core ausgeführt werden, und zwar entweder mittels eines manuellen Scheduling (z. B. Round-Robin) oder durch ein mittels Zeitscheiben erfolgenden nebenläufigen Scheduling der Stufen in dem einzelnen Core. Weitere Ausführungsformen der Erfindung können ermöglichen, dass ein Benutzer konfiguriert, welcher logische Core eine jeweilige operative Stufe ausführen sollte, und zwar ohne Einschränkung, derart, dass der Benutzer beispielsweise konfigurieren kann, dass ein einzelner logischer Core alle operativen Stufen ausführt oder eine Mehrzahl von logischen Cores jeweils eine unterschiedliche operative Stufe ausführen.
-
DOWNSTREAM-DATENFLÜSSE
-
2 ist ein Ablaufdiagramm, das die funktionalen Schritte eines Downstream-Forwarding bei DOCSIS gemäß einer Ausführungsform der Erfindung darstellt. Die Schritte von 2 werden nachfolgend mit Bezug auf 1 erläutert.
-
Bei Schritt 210 empfängt der Verteiler-Thread 110 ankommende physikalische Downstream-Pakete, z. B. durch das Internet transportierte Pakete.
-
Danach führt bei Schritt 220 der Verteiler-Thread 110 ein Forwarding der empfangenen Downstream-Pakete an einen von einer Mehrzahl von DSPP-Threads 114 durch. Ein DSPP-Thread 114 ist für ein Zuordnen eines Downstream-Paketes zu einem DOCSIS-Dienstdatenstrom verantwortlich. Alle DSPP-Threads 114 haben Zugang zu derselben Datenbank von Downstream-Klassifizierern. Ein DSPP-Thread 114 klassifiziert ein Paket unter Verwendung eines internen Index, der als TmFlowIndex (Datenverkehrsverwalter-Datenstromindex) bezeichnet wird. Alle DSPP-Threads 114 und alle TM-Threads 118 verwenden den gleichen TmFlowIndex. Ein DSPP-Thread 114 speichert den TmFlowIndex, zu dem er das Paket zugeordnet hat, in dem MBUF-Headroom-Feld.
-
In DOCSIS gehört jeder Downstream-Dienstdatenstrom zu einer einzelnen DOCSIS-„MAC-Domain“, die von Ausführungsformen der Erfindung durch eine MAC-Domain-ID identifiziert wird. Der DSPP-Thread 114 speichert auch die MAC-Domain-ID des Dienstdatenstroms eines Paketes in dem MBUF-Headroom. DOCSIS definiert auch das Konzept einer MD-DSSG (MD-DSSG = MAC-Domain downstream service group = MAC-Domain-Downstream-Dienstgruppe), die den Satz von Downstream-Kanälen in einer MAC-Domain beinhaltet, der ein einzelnes CM erreicht. Der DSPP-Thread 114 einer Ausführungsform platziert in einem MBUF-Headroom eine systemeindeutige Kennung der MD-DSSG, welche den Dienstdatenstrom des Paketes enthält. Die MAC-Domain-ID oder die MD-DSSG-Kennung werden verwendet, um auszuwählen, zu welchem TM-Thread durch DsEnc ein Forwarding eines Downstream-Paketes durchgeführt wird, das es von dem DSPP-Thread 114 empfängt.
-
Bei Schritt 230 führt einer von einer Mehrzahl von DsEnc-Threads 116 eine Verschlüsselung der Downstream-Pakete durch. Um dies zu bewerkstelligen, kann ein spezieller DsEnc-Thread 116 ein Downstream-Paket unter Verwendung eines gemeinsam genutzten Hardware-Bauteils verschlüsseln, beispielsweise des QuickAssist-Moduls von Intel®. Mehrere DsEnc-Threads 116 können sich lediglich eines oder zwei Hardware-Module teilen (z. B. eines oder zwei je COTS-Switch/ Router (der in einem Ausführungsbeispiel als „Core-Server“ (CS) bezeichnet werden kann). Demgemäß kann die Warteschlangenverzögerung des gemeinsam benutzten Verschlüsselungsmechanismus variabel sein. Um die Variabilität der Verzögerung von abgehenden Paketen nach einer Gesamtdurchsatz-Begrenzungsfunktion des Datenverkehrsverwalters zu verringern, erfolgt die Verschlüsselung durch den DsEnc-Thread 116, bevor ein Datenverkehrsverwaltungs-Scheduling erfolgt. Bei Ausführungsformen der Erfindung wird in vorteilhafter Weise eine Verschlüsselung durchgeführt, bevor das Scheduling von Paketen erfolgt. Bei aktuellen branchenüblichen CMTS-Implementierungen wird zunächst ein Scheduling von Paketen und danach eine Verschlüsselung in kommerziellen DOCSIS-Chips durchgeführt, beispielsweise, jedoch nicht eingeschränkt auf den Chip BCM3215 von Broadcom Corporation, der die Downstream-MAC-Funktionen durchführt.
-
Um das Auftreten von ,Fehlschlägen‘ des Cache („Cache Misses“) in DsEnc-Threads 116 zu verringern, wird jedem DOCSIS-Dienstdatenstrom ein einzelner DsEnc-Thread 116 zugeordnet. Somit wird die Tastungsinformation und Statistiken für einen Dienstdatenstrom in lediglich einem einzelnen DSPP-Core-L1-Cache vorgehalten. Der entsprechende DSPP-zu-DsEnc-Ring für jeden DSPP-Thread 114 wird an einen DSPP-Thread 114 übermittelt, wenn ein Dienstdatenstrom hinzugefügt wird.
-
Bei einem Ausführungsbeispiel kann die Funktionalität, die vorstehend mit Bezug auf die Mehrzahl von DsEnc-Threads beschrieben wurde, zumindest teilweise in Hardware anstatt ausschließlich mittels Software implementiert werden. Bei einem derartigen Ausführungsbeispiel kann die Funktionalität, die hier als einer Mehrzahl von DsEnc-Threads 116 zugeteilt oder durch diese durchgeführt beschrieben wurde, durch eines oder mehrere DsEnc-Hardware-Bauteile durchgeführt werden, die einer Hardware-Karte entsprechen können, welche die Operationen eines Verschlüsselns von Downstream-Paketen beschleunigt. Wie hier verwendet, beinhaltet der Begriff ,DsEnc-Komponente‘ sowohl eine Software-Implementierung als auch eine Hardware-Implementierung, sowie eine Implementierung, die sowohl Hardware als auch Software beinhaltet. Es werden zwar Ausführungsbeispiele hauptsächlich in Bezug darauf beschrieben, dass DsEnc-Threads 116 in Software implementiert sind, für Fachleute versteht es sich jedoch, dass weitere Ausführungsbeispiele verwendet werden können, bei denen DsEnc-Threads 116 teilweise oder vollständig mittels Hardware implementiert sind.
-
Danach verarbeitet bei Schritt 240 ein geeigneter TM-Thread 118 das Paket. Jede DOCSIS-MAC-Domain ist einem einzelnen TM-Thread 118 (TM = Datenverkehrsmanager) zugewiesen. Ein TM-Thread 118 führt ein Einreihen von Paketen in eine je Datenstrom vorhandene Warteschlange durch und führt ein Scheduling von Paketen für eine Übertragung unter Verwendung eines hierarchischen Mehrebenen-Paket-Schedulers durch. Jeder SF (Dienstdatenstrom), und somit jeder TmFlowIndex, gehört zu einer einzelnen MAC-Domain. Wenn die Steuerebene einen neuen TmFlowIndex einem DsEnc-Thread 116 hinzufügt, liefert die Steuerebene auch einen Zeiger auf den zutreffenden DsEnc-zu-TM-Ring, um den TM-Thread 118 zu erreichen, welcher der MAC-Domain des Dienstdatenstroms zugewiesen wurde.
-
Ausführungsbeispiele der Erfindung erfordern, dass MAC-Domains ein TM-Thread 118 zugewiesen wird. Dies ist dadurch begründet, dass die meisten MAC-Domains aus stark überlappenden DCSs (Downstream Channel Sets = Sätzen von Downstream-Kanälen) mit gemeinsam genutzten Downstream-Kanälen besteht. Dadurch, dass man das gesamte Scheduling von DCSs, die denselben Kanal benutzen, in demselben Kanalsatz gehalten wird, wird ein nebenläufiger Inter-Core-Zugriff auf Speicherdatenstrukturen vermieden. Ein TM-Thread 118 führt ein Scheduling eines jeweiligen Paketes auf einen speziellen Downstream-HF-Kanal durch.
-
Falls eine MAC-Domain aus disjunkten (d. h. nicht-überlappenden) SGs (Downstream-Dienstgruppen) besteht, dann können Ausführungsbeispiele die disjunkten Sätze von SGs unterschiedlichen TM-Threads 118 zuweisen und dabei weiterhin eine Inter-Core-Koordination einer je Paket vorhandenen Scheduling-Information vermeiden.
-
Bei Schritt 250 führt ein DsMac-Thread 120 eine Kapselung eines Paketes in einen L2TPv3-DEPI-Tunnel zu dem RPD (Remote-PHY-Gerät) durch, welches den Downstream-Kanal überträgt. Jeder Downstream-Kanal wird einem einzigen DsMac-Thread 120 zugewiesen. Ein einziger DsMac-Thread 120 kann für jeden Kanal verwendet werden, um einen Einzel-Core-Betrieb von je Paket vorhandenen Sequenznummern aufrechtzuerhalten. Derartige je Paket vorhandene Sequenznummern beinhalten eine MPEG-Sequenznummer oder eine PSP-Sequenznummer.
-
Nach dem Kapseln eines Paketes bei Schritt 260 sendet der DsMac-Thread 120 das Paket aus dem DPDK-Ethernet-Port eines Trunk-Ports an die CRE.
-
In vorteilhafter Weise teilen sich der Verteiler-Thread 110, die Mehrzahl von DSPP-Threads 114, die Mehrzahl von DsEnc-Threads 116, die Mehrzahl von TM-Threads 118 und die Mehrzahl von DsMac-Threads 120 alle dieselbe Multi-Core-CPU und denselben Hardware-Bus für Chip-Signale von der CPU an den Speicher.
-
UPSTREAM-DATENSTRÖME
-
3 ist ein Ablaufdiagramm, das die funktionalen Schritte eines Upstream-Forwarding bei DOCSIS gemäß einer Ausführungsform der Erfindung darstellt. Die Schritte von 3 werden nachfolgend mit Bezug auf 1 erläutert.
-
Bei Schritt 310 empfängt der Verteiler-Thread 110 ankommende Upstream-Pakete, z. B. Pakete, die mittels Tunneling von einem RPD (Remote-PHY-Gerät) eingespeist wurden.
-
Bei Schritt 320 führt der Verteiler-Thread 110, wenn er erkennt, dass ein empfangenes Paket ein Upstream-Paket ist, ein Forwarding des Upstream-Paketes an einen UsMac-Thread 112 zur Verarbeitung durch. Upstream-Pakete können in das L2TPv3-Protokoll gekapselt sein und werden an eine L2TPv3-LCCE (LCCE = Logical Control Connection Entity) adressiert, die auf einem COTS-Switch/Router (bei einem Ausführungsbeispiel z. B. eine CRE) implementiert ist. Bei einer Ausführungsform dieser Erfindung wird eine lokal verwaltete MAC-Adresse dem LCCE zugewiesen, und zwar von der Form 02:xx:xx:xx:xx:xx, so dass der Verteiler-Thread 110 ein mittels Tunneling übertragenes L2TPv3-Paket rasch erkennen kann und ein Forwarding dieses Paketes an den UsMac-Thread 112 durchführen kann, der eine Upstream-Verarbeitung durchführt.
-
Bei Schritt 330 empfängt der UsMac-Thread 110 Upstream-Pakete, die per Tunneling an eine LCCE-MAC-Adresse gesendet wurden. Der UsMac-Thread 112 setzt die Sequenzen von Upstream-Bursts von einem jeweiligen Upstream-Kanal wieder zusammen und trennt die Bursts in separate Upstream-Pakete auf, und zwar jeden in sein eigenes MBUF.
-
Danach sendet bei Schritt 340 der UsMac-Thread 112 die separaten Datenpakete an einen USPP-Thread 122. Der UsMac-Thread 112 führt ein separates Erkennen von Upstream-Bandbreitenanfrage-MMMs (MMMs = Mac Management Messages = MAC-Verwaltungsnachrichten) durch und leitet diese weiter an eine (nicht dargestellte) Scheduling-Software-Anwendung für ein Upstream-DOCSIS-Scheduling. Der UsMac-Thread 112 erkennt auch weitere Upstream-MAC-MMMs und leitet diese zur Bearbeitung an einen DOCSIS-Protokoll-Softwareprozess weiter.
-
Bei Schritt 350 führt der USPP-Thread 122 eine Quellenadressenprüfung für Upstream-IP-Pakete sowie jegliche VLAN-Kapselung durch, die für einen DOCSIS-L2VPN-Betrieb erforderlich ist.
-
Bei einem Ausführungsbeispiel kann die Funktionalität, die vorstehend mit Bezug auf den USPP-Thread 122 beschrieben wurde, zumindest teilweise in Hardware anstatt ausschließlich mittels Software implementiert werden. Bei einem derartigen Ausführungsbeispiel kann die Funktionalität, die hier als dem USPP-Thread 122 zugeteilt oder durch diesen durchgeführt beschrieben wurde, durch eines oder mehrere USPP-Hardware-Bauteile durchgeführt werden, die einer Hardware-Karte entsprechen können, welche die Operationen eines Verschlüsselns von Upstream-Paketen beschleunigt. Wie hier verwendet, beinhaltet der Begriff ,USSP-Komponente‘ und ,USSP-Stufe‘ sowohl eine Software-Implementierung als auch eine Hardware-Implementierung, sowie eine Implementierung, die sowohl Hardware als auch Software beinhaltet. Es werden zwar Ausführungsbeispiele hauptsächlich in Bezug darauf beschrieben, dass der USPP-Thread 122 in Software implementiert ist, für Fachleute versteht es sich jedoch, dass weitere Ausführungsbeispiele verwendet werden können, bei denen der USPP-Thread 122 teilweise oder vollständig mittels Hardware implementiert ist.
-
Bei Schritt 260 führt der USPP-Thread 122 ein Forwarding von Paketen direkt an den DPDK-Ethernet-Port für die Ethernet-Trunk-Schnittstelle an einem COTS-Switch/Router durch (wobei es sich bei diesem bei einem Ausführungsbeispiel um einen CRE handeln kann).
-
Es können mehrere Paare aus UsMac-Thread 122/ USPP-Thread 122 erzeugt werden, in welchem Fall in vorteilhafter Weise eine LCCE-IP-Adresse einem einzelnen UsMac-Thread 112 zugewiesen wird und der Verteiler-Thread 112 ein Forwarding von Upstream-Paketen an das geeignete Paar aus UsMac-Thread 122/ USPP-Thread 122 basierend auf der LCCE-IP-Zieladresse durchführt, wodurch ein Duplizieren von je CM ermittelter Upstream-Quellenadressen-Prüfungsinformation und einer je Dienstdatenstrom ermittelten Statistikinformation zwischen Cores vermieden wird, was die Wahrscheinlichkeit von Fehlschlägen des L1-Cache („L1 Cache Misses“) vermindert. Die Tatsache, dass bei Ausführungsbeispielen gewissen DOCSIS-Komponenten eine spezielle Instanz einer Verarbeitungsstufe in einem CPU-Core zugewiesen wird, ist einzigartig und stellt einen großen erfinderischen Schritt für die CMTS-Industriebranche dar. Der in der Softwarebranche üblicherweise verwendete Mechanismus, um eine Arbeit zwischen mehreren CPU-Cores aufzuteilen, besteht in symmetrischem Multiprocessing und einem Lastausgleich zwischen den Cores, bei geringer oder nicht vorhandener Kenntnis der Anwendungs-Domain der Softwareprozesse. Beispiele eines Zuweisens von DOCSIS-Komponenten an Verarbeitungsstufen beinhalten: Zuweisen eines DOCSIS-Dienstdatenstroms an eine einzelne DsEnc-Stufe, Zuweisen einer DOCSIS-MAC-Domain oder einer MAC-Domain-Downstream-Dienstgruppe zu einer einzelnen TM-Stufe, Zuweisen eines DOCSIS-Downstream-Kanals zu einer einzelnen DSMAC-Stufe, Zuweisen einer DOCSIS-LCCE zu einer einzelnen US MAC-Stufe, und Zuweisen eines DOSCIS-Dienstdatenstroms zu einer einzelnen USPP-Stufe.
-
HOHE UND NIEDRIGE PRIORITÄT AUFWEISENDE RINGE
-
Es ist möglich, dass während eines stark ausgelasteten Betriebs die Auslastung jeglicher Thread-Instanz zu groß ist, um mit ankommenden Paketen Schritt zu halten, was zu einem Stau und letztendlich einem Verlust von Daten von MBUFs auf den mit diesen Thread-Instanzen befassten Ringen führen kann. Gewisse Ausführungsbeispiele können Datenringe von variierendem Prioritätsgrad verwenden, so dass bei Datenverkehr geringerer Priorität eine Stauung a und dieser Drops erleidet, bevor dies bei Ringen höherer Priorität der Fall ist. Ausführungsformen können Datenringe von beliebiger Prioritätsgradzahl verwenden, z. B. können zwei Grade vorhanden sein, so dass Datenringen lediglich eine ,hohe‘ oder eine ,niedrige‘ Priorität zugewiesen werden kann, oder es können drei oder mehr Grade vorhanden sein, so dass ein beliebiger Grad an Granularität verwendet werden kann, um eine Rangfolge von Datenringen basierend auf Priorität herzustellen.
-
Ringe hoher Priorität können in vorteilhafter Weise für gewisse Datenverkehrsklassen verwendet werden. Beispielsweise werden bei einem Ausführungsbeispiel, in abnehmender Prioritätsrangfolge, Ringe hoher Priorität in vorteilhafter Weise für die folgenden Datenverkehrsklassen verwendet: Downstream-DOCSIS-MAPs und UCDs, Upstream-Bandbreitenanfragen, Downstream- und Upstream-Sprachnutzdaten, und schließlich alle anderen DOCSIS-MMMs (MMMs = Mac Management Messages = MAC-Verwaltungsnachrichten).
-
HARDWAREIMPLEMENTIERUNG
-
Bei einem Ausführungsbeispiel kann eine virtuelle CCAP (Converged Cable Access Platform), welche die Schritte von einer oder mehreren der 2 und 3 implementiert, durch ein Computersystem ausgeführt werden. 4 ist ein Blockdiagramm, das ein Computersystem 400 darstellt, auf dem eine Ausführungsform der Erfindung implementiert sein kann. Bei einer Ausführungsform beinhaltet das Computersystem 400 einen Prozessor 404, einen Hauptspeicher 406, einen ROM 408, eine Speichervorrichtung 410 und eine Kommunikationsschnittstelle 418. Das Computersystem 400 beinhaltet mindestens einen Prozessor 404 zum Verarbeiten von Information. Das Computersystem 400 beinhaltet auch einen Hauptspeicher 406, wie beispielsweise einen RAM (Random Access Memory = Direktzugriffspeicher) oder eine andere dynamische Speichervorrichtung zum Speichern von Informationen und Anweisungen, die durch den Prozessor 404 auszuführen sind. Der Hauptspeicher 406 kann auch für ein Speichern von temporären Variablen oder weiterer Zwischeninformation während eines Ausführens von durch den Prozessor 404 auszuführenden Anweisungen verwendet werden. Das Computersystem 400 beinhaltet einen ROM (Read Only Memory = Nur-LeseSpeicher) 408 oder eine andere statische Speichervorrichtung zum Speichern von statischer Information und Anweisungen für den Prozessor 404. Eine Speichervorrichtung 410, wie beispielsweise eine Magnetplatte oder eine optische Platte, ist für ein Speichern von Information und Anweisungen vorgesehen.
-
Ausführungsformen der Erfindung betreffen die Verwendung eines Computersystems 400 für ein Implementieren der hier beschriebenen Verfahren. Gemäß einer Ausführungsform der Erfindung werden diese Verfahren durch das Computersystem 400 ansprechend darauf durchgeführt, dass der Prozessor 404 eine oder mehrere Sequenzen von einer oder mehreren im Hauptspeicher 406 befindlichen Anweisungen ausführt. Derartige Anweisungen können in den Hauptspeicher 406 von einem anderen maschinenlesbaren Medium, wie beispielsweise der Speichervorrichtung 410, eingelesen werden. Ein Ausführen der im Hauptspeicher 406 enthaltenen Sequenzen von Anweisungen veranlasst den Prozessor 404, die hier beschriebenen Prozessschritte auszuführen. Bei alternativen Ausführungsformen kann ein fest verdrahteter Schaltkreis verwendet werden, anstelle oder in Kombination mit Softwareanweisungen, um Ausführungsformen der Erfindung zu implementieren. Somit sind Ausführungsformen der Erfindung nicht auf irgendeine spezifische Kombination aus Hardware-Schaltkreisen und Software eingeschränkt.
-
Der Begriff „nicht-transitorisches maschinenlesbares Speichermedium“, wie hier verwendet, bezieht sich auf jegliches körperlich greifbare Medium, das am Speichern von Anweisungen teilnimmt, die dem Prozessor 404 zum Ausführen geliefert werden können. Nicht-einschränkende, illustrierende Beispiele von maschinenlesbaren Medien beinhalten beispielsweise eine Floppy-Disk, eine flexible Disk, eine Festplatte, ein Magnetband oder ein beliebiges anderes magnetisches Medium, eine CD-ROM, ein beliebiges anderes optisches Medium, ein RAM, ein PROM, ein EPROM, ein FLASH-EPROM, einen beliebigen anderen Speicherchip oder -patrone oder ein beliebiges anderes Medium, von dem ein Computer lesen kann.
-
Verschiedene Formen von maschinenlesbaren Medien können daran beteiligt sein, eine oder mehrere Sequenzen aus einer oder mehreren Anweisungen an den Prozessor 404 zur Ausführung zu transportieren. Beispielsweise können sich die Anweisungen anfänglich auf einer Magnetplatte eines entfernt befindlichen Computers befinden. Der entfernte Computer kann die Anweisungen in seinen dynamischen Speicher laden und die Anweisungen über eine Netzwerkanbindung 420 zum Computersystem 400 senden.
-
Die Kommunikationsschnittstelle 418 stellt eine Zweiweg-Datenkommunikationsverbindung zu einer Netzwerkanbindung 420 bereit, die mit einem lokalen Netzwerk verbunden ist. Beispielsweise kann eine Kommunikationsschnittstelle 418 eine ISDN-Karte (ISDN = Integrated Services Digital Network = dienstintegrierendes digitales Netz) oder ein Modem sein, um eine Datenkommunikationsverbindung zu einem korrespondierenden Typ von Telefonleitung bereitzustellen. Als weiteres Beispiel kann eine Kommunikationsschnittstelle 418 eine LAN-Karte (LAN = Local Area Network = Lokales Netzwerk) sein, um eine Datenkommunikationsverbindung zu einem kompatiblen LAN bereitzustellen. Es können auch Funkanbindungen implementiert sein. Bei jeder derartigen Implementierung führt die Kommunikationsschnittstelle 418 ein Senden und Empfangen von elektrischen, elektromagnetischen oder optischen Signalen durch, die digitale Datenströme transportieren, welche verschiedene Typen von Information repräsentieren.
-
Die Netzwerkanbindung 420 stellt typischerweise eine Datenkommunikation über eines oder mehrere Netzwerke zu anderen Datengeräten bereit. Beispielsweise kann die Netzwerk-Anbindung 420 eine Verbindung über ein lokales Netzwerk zu einem Host-Computer oder zu Datenanlagen bereitstellen, die durch einen Internetdienstanbieter (ISP) betrieben werden.
-
Das Computersystem 400 kann Nachrichten senden und Daten, einschließlich Programmcode, empfangen, und zwar über das/die Netzwerk(e), die Netzwerkanbindung 420 und die die Kommunikationsschnittstelle 418. Beispielsweise könnte ein Server einen angeforderten Code für ein Anwendungsprogramm über das Internet, einen lokalen ISP, ein lokales Netzwerk, und danach an die Kommunikationsschnittstelle 418 übertragen. Der empfangene Code kann durch den Prozessor 404 bei Empfang ausgeführt werden, und/oder in einer Speichervorrichtung 410 oder einem anderen nicht-flüchtigen Speicher zur späteren Ausführung gespeichert werden.
-
In der vorhergehenden Beschreibung wurden Ausführungsformen der Erfindung mit Bezug auf zahlreiche spezifische Details beschrieben, die von Implementierung zu Implementierung variieren können. Somit ist der einzige und ausschließliche Indikator, was die Erfindung ist und was seitens der Anmelder als Erfindung beabsichtigt ist, der Satz der Ansprüche, die aus dieser Anmeldung hervorgehen, und zwar in der spezifischen Form, in welcher derartige Ansprüche zu erstellen sind, einschließlich jeglicher anschließender Korrekturen. Jegliche Definitionen, die für in derartigen Ansprüchen enthaltene Begriffe hier ausdrücklich dargelegt sind, sollen für die Bedeutung derartiger Begriffe wie in den Ansprüchen verwendet, maßgeblich sein. Somit sollte keine Einschränkung, Element, Eigenschaft, Merkmal, Vorteil oder Attribut, das in einem Anspruch nicht ausdrücklich dargelegt ist, den Schutzumfang dieses Anspruchs in irgendeiner Weise einschränken. Die Beschreibung und die Zeichnungen sind demgemäß in einem illustrierenden und nicht in einem einschränkenden Sinn zu verstehen.
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Patentliteratur
-