[go: up one dir, main page]

DE102021202661A1 - TDMA NETWORK WITH COMMODITY NIC / SWITCH - Google Patents

TDMA NETWORK WITH COMMODITY NIC / SWITCH Download PDF

Info

Publication number
DE102021202661A1
DE102021202661A1 DE102021202661.3A DE102021202661A DE102021202661A1 DE 102021202661 A1 DE102021202661 A1 DE 102021202661A1 DE 102021202661 A DE102021202661 A DE 102021202661A DE 102021202661 A1 DE102021202661 A1 DE 102021202661A1
Authority
DE
Germany
Prior art keywords
network
time
packets
packet
communication network
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
DE102021202661.3A
Other languages
German (de)
Inventor
Dotan David Levi
Avi Urman
Lior Narkis
Liron Mula
Paraskevas BAKOPOULOS
Ariel Almog
Roee Moyal
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.)
Mellanox Technologies Ltd
Original Assignee
Mellanox Technologies Ltd
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
Priority claimed from US16/921,993 external-priority patent/US11476928B2/en
Application filed by Mellanox Technologies Ltd filed Critical Mellanox Technologies Ltd
Publication of DE102021202661A1 publication Critical patent/DE102021202661A1/en
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/2416Real-time traffic
    • 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/28Flow control; Congestion control in relation to timing considerations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04JMULTIPLEX COMMUNICATION
    • H04J3/00Time-division multiplex systems
    • H04J3/02Details
    • H04J3/06Synchronising arrangements
    • H04J3/0635Clock or time synchronisation in a network
    • H04J3/0638Clock or time synchronisation among nodes; Internode synchronisation
    • H04J3/0658Clock or time synchronisation among packet nodes
    • H04J3/0661Clock or time synchronisation among packet nodes using timestamps
    • H04J3/0667Bidirectional timestamps, e.g. NTP or PTP for compensation of clock drift and for compensation of propagation delays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04JMULTIPLEX COMMUNICATION
    • H04J3/00Time-division multiplex systems
    • H04J3/02Details
    • H04J3/06Synchronising arrangements
    • H04J3/0635Clock or time synchronisation in a network
    • H04J3/0685Clock or time synchronisation in a node; Intranode synchronisation
    • H04J3/0697Synchronisation in a packet node

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)
  • Time-Division Multiplex Systems (AREA)

Abstract

Ein Netzwerkelement das einen oder mehrere Netzwerk-Ports, eine Netzwerkzeitschaltung und eine Paketverarbeitungsschaltung umfasst. Die Netzwerk-Ports sind für die Kommunikation mit einem Kommunikationsnetzwerk konfiguriert. Die Netzwerkzeitschaltung ist dafür konfiguriert, eine im Kommunikationsnetzwerk definierte Netzwerkzeit zu verfolgen. In einigen Ausführungsformen ist die Paketverarbeitungsschaltung dafür konfiguriert, eine Definition von einem oder mehreren Zeitschlitzen zu empfangen, die mit der Netzwerkzeit synchronisiert sind, und ausgehende Pakete in Abhängigkeit von den Zeitschlitzen an das Kommunikationsnetzwerk zu senden. In einigen Ausführungsformen ist die Paketverarbeitungsschaltung dafür konfiguriert, eingehende Pakete, die von dem Kommunikationsnetz empfangen werden, abhängig von den Zeitschlitzen zu verarbeiten.

Figure DE102021202661A1_0000
A network element that includes one or more network ports, a network timing circuit, and a packet processing circuit. The network ports are configured to communicate with a communication network. The network time switch is configured to track a network time defined in the communication network. In some embodiments, the packet processing circuit is configured to receive a definition of one or more time slots that are synchronized with the network time and to send outgoing packets to the communication network depending on the time slots. In some embodiments, the packet processing circuit is configured to process incoming packets received from the communication network depending on the time slots.
Figure DE102021202661A1_0000

Description

GEBIET DER ERFINDUNGFIELD OF THE INVENTION

Die vorliegende Erfindung bezieht sich allgemein auf Computernetzwerke und insbesondere auf die Zeitmultiplex-(Time-Division-Multiplexing, TDM) und Zeitmultiplex-Mehrfachzugriff- (Time-Division-Multiple-Access, TDMA) Kommunikation über Netzwerke.The present invention relates generally to computer networks and, more particularly, to time division multiplexing (TDM) and time division multiple access (TDMA) communications over networks.

HINTERGRUND DER ERFINDUNGBACKGROUND OF THE INVENTION

Im Stand der Technik sind verschiedene Techniken zum Erzwingen der Zeitmultiplex-(TDM)-Disziplin in Netzwerken wie Ethernet bekannt. Zum Beispiel beschreibt „Practical TDMA for Datacenter Ethernet“, veröffentlicht vom Department of Computer Science and Engineering, University of California, San Diego, April 2012, Vattikonda et al. , ein Design und eine Implementierung einer TDMA-Medienzugriffssteuerungsschicht (Medium Access Control, MAC) für handelsübliche Ethernet-Hardware, die es Endhosts ermöglicht, auf die Zuverlässigkeit und Überlastungssteuerung von TCP zu verzichten.Various techniques are known in the art for enforcing the Time Division Multiplexing (TDM) discipline in networks such as Ethernet. For example, describes "Practical TDMA for Datacenter Ethernet" published by Department of Computer Science and Engineering, University of California, San Diego, April 2012, Vattikonda et al. , A design and implementation of a TDMA Medium Access Control (MAC) layer for off-the-shelf Ethernet hardware that allows end hosts to forego the reliability and congestion control of TCP.

In einem anderen Beispiel beschreibt die US-Patentanmeldungsveröffentlichung 2019/0319730 Techniken zum Betreiben eines Zeitmultiplex- (TDM) MAC-Moduls, und umfasst Beispiele für die Ermöglichung der Nutzung gemeinsam genutzter Ressourcen, die Ports einer Netzwerkschnittstelle auf der Grundlage eines Zeitschlitzmechanismus zugewiesen sind, wobei die gemeinsam genutzten Ressourcen Paketdaten zugewiesen werden, die über die Ports der Netzwerkschnittstelle empfangen oder gesendet werden.In another example, US patent application publication describes 2019/0319730 Techniques for operating a time division multiplexed (TDM) MAC module, and includes examples of enabling the use of shared resources assigned to ports of a network interface based on a timeslot mechanism, the shared resources being assigned to packet data transmitted through the ports received or sent via the network interface.

ZUSAMMENFASSUNG DER ERFINDUNGSUMMARY OF THE INVENTION

Die Erfindung wird durch die Ansprüche definiert. Um die Erfindung zu veranschaulichen, werden hier Aspekte und Ausführungsformen beschrieben, die in den Umfang der Ansprüche fallen können oder nicht.The invention is defined by the claims. To illustrate the invention, aspects and embodiments are described herein which may or may not fall within the scope of the claims.

Eine hier beschriebene Ausführungsform der vorliegenden Erfindung stellt ein Netzwerkelement bereit, das einen oder mehrere Netzwerk-Ports, eine Netzwerkzeitschaltung und eine Paketverarbeitungsschaltung umfasst. Die Netzwerk-Ports sind für die Kommunikation mit einem Kommunikationsnetzwerk konfiguriert. Die Netzwerkzeitschaltung ist dafür konfiguriert, eine im Kommunikationsnetzwerk definierte Netzwerkzeit zu verfolgen. Die Paketverarbeitungsschaltung ist dafür konfiguriert, eine Definition von einem oder mehreren Zeitschlitzen zu empfangen, die mit der Netzwerkzeit synchronisiert sind, und ausgehende Pakete in Abhängigkeit von den Zeitschlitzen an das Kommunikationsnetzwerk zu senden.An embodiment of the present invention described herein provides a network element that includes one or more network ports, a network timing circuit, and a packet processing circuit. The network ports are configured to communicate with a communication network. The network time switch is configured to track a network time defined in the communication network. The packet processing circuit is configured to receive a definition of one or more time slots that are synchronized with the network time and to send outgoing packets to the communication network depending on the time slots.

In einigen Ausführungsformen umfassen der eine oder die mehreren Zeitschlitze mehrere Zeitschlitze, die dem Netzwerkelement in einem periodischen Zeitplan zugewiesen sind, der mit der Netzwerkzeit synchronisiert ist. In einer Ausführungsform ist die Paketverarbeitungsschaltung dafür konfiguriert, die ausgehenden Pakete nur während des einen oder der mehreren Zeitschlitze zu senden. In einer anderen Ausführungsform ist die Paketverarbeitungsschaltung dafür konfiguriert, eine Reihe von Dummy-Paketen zu erzeugen, um Netzwerkzeiten entsprechend dem Austritt der Dummy-Pakete aufzuzeichnen, und die ausgehenden Pakete in Abhängigkeit von einem oder mehreren Zeitschlitzen und den aufgezeichneten Netzwerkzeiten an das Kommunikationsnetz zu senden.In some embodiments, the one or more time slots include multiple time slots assigned to the network element in a periodic schedule that is synchronized with the network time. In one embodiment, the packet processing circuit is configured to send the outgoing packets only during the one or more time slots. In another embodiment, the packet processing circuit is configured to generate a series of dummy packets to record network times corresponding to the exit of the dummy packets and to send the outgoing packets to the communication network depending on one or more time slots and the recorded network times .

In einigen Ausführungsformen sind die Netzwerk-Ports dafür konfiguriert, die ausgehenden Pakete an ein drahtloses Netzwerk zu senden, das im Zeitmultiplex-Mehrfachzugriff (TDMA) arbeitet. In anderen Ausführungsformen sind die Netzwerk-Ports dafür konfiguriert, die ausgehenden Pakete an ein optisches Switching-Netzwerk zu senden, das im TDMA arbeitet. In einigen Ausführungsformen ist die Paketverarbeitungsschaltung zusätzlich zum Senden der ausgehenden Pakete in Abhängigkeit von den Zeitschlitzen dafür konfiguriert, zusätzliche Pakete unabhängig von den Zeitschlitzen an das Kommunikationsnetz zu senden. In einigen Ausführungsformen umfassen die ausgehenden Pakete Ethernet-Pakete oder Infiniband-Pakete.In some embodiments, the network ports are configured to send the outbound packets to a wireless network that uses time division multiple access (TDMA). In other embodiments, the network ports are configured to send the outgoing packets to an optical switching network that operates in TDMA. In some embodiments, in addition to sending the outgoing packets depending on the time slots, the packet processing circuit is configured to send additional packets to the communication network independently of the time slots. In some embodiments, the outbound packets include Ethernet packets or Infiniband packets.

Gemäß einer Ausführungsform der vorliegenden Erfindung wird zusätzlich ein Netzwerkelement bereitgestellt, das einen oder mehrere Netzwerk-Ports, eine Netzwerkzeitschaltung und eine Paketverarbeitungsschaltung umfasst. Die Netzwerk-Ports sind für die Kommunikation mit einem Kommunikationsnetzwerk konfiguriert. Die Netzwerkzeitschaltung ist dafür konfiguriert, eine im Kommunikationsnetzwerk definierte Netzwerkzeit zu verfolgen. Die Paketverarbeitungsschaltung ist dafür konfiguriert, eine Definition von einem oder mehreren Zeitschlitzen zu empfangen, die mit der Netzwerkzeit synchronisiert sind, und eingehende Pakete, die von dem Kommunikationsnetz empfangen werden, abhängig von den Zeitschlitzen zu verarbeiten.According to one embodiment of the present invention, a network element is additionally provided which comprises one or more network ports, a network timing circuit and a packet processing circuit. The network ports are configured to communicate with a communication network. The network time switch is configured to track a network time defined in the communication network. The packet processing circuit is configured to receive a definition of one or more time slots that are synchronized with the network time and to process incoming packets received from the communication network depending on the time slots.

In einer beispielhaften Ausführungsform ist die Paketverarbeitungsschaltung dafür konfiguriert, ein eingehendes Paket nur dann zu verarbeiten, wenn eine Ankunftszeit des eingehenden Pakets während des einen oder der mehreren Zeitschlitze liegt.In an exemplary embodiment, the packet processing circuit is configured to process an incoming packet only when an arrival time of the incoming packet is during the one or more time slots.

Gemäß einer Ausführungsform der vorliegenden Erfindung wird ebenfalls ein Netzwerkelement bereitgestellt, das einen oder mehrere Netzwerk-Ports, eine Netzwerkzeitschaltung und eine Paketverarbeitungsschaltung umfasst. Die Netzwerk-Ports sind für die Kommunikation mit einem Kommunikationsnetzwerk konfiguriert. Die Netzwerkzeitschaltung ist dafür konfiguriert, eine im Kommunikationsnetzwerk definierte Netzwerkzeit zu verfolgen. Die Paketverarbeitungsschaltung ist dafür konfiguriert, ausgehende Pakete in eine oder mehrere Warteschlangen einzureihen, um den Warteschlangen Kredite in Abhängigkeit von der Netzwerkzeit zuzuweisen und die ausgehenden Pakete gemäß den zugewiesenen Krediten an das Kommunikationsnetz zu übertragen.According to an embodiment of the present invention, a network element is also provided which has one or more network ports, a network timer and a Includes packet processing circuitry. The network ports are configured to communicate with a communication network. The network time switch is configured to track a network time defined in the communication network. The packet processing circuit is configured to put outgoing packets in one or more queues in order to assign credits to the queues depending on the network time and to transmit the outgoing packets to the communication network according to the assigned credits.

Gemäß einer Ausführungsform der vorliegenden Erfindung wird ferner ein Netzwerkelement bereitgestellt, das einen oder mehrere Netzwerk-Ports, eine Netzwerkzeitschaltung und eine Paketverarbeitungsschaltung umfasst. Die Netzwerk-Ports sind für die Kommunikation mit einem Kommunikationsnetzwerk konfiguriert. Die Netzwerkzeitschaltung ist dafür konfiguriert, eine im Kommunikationsnetzwerk definierte Netzwerkzeit zu verfolgen. Die Paketverarbeitungsschaltung ist dafür konfiguriert, ausgehende Pakete in eine Warteschlange einzureihen, die zur Übertragung an das Kommunikationsnetzwerk anstehen, und ein anstehendes ausgehendes Paket synchron mit einem Ereignis, das gemäß der Netzwerkzeit definiert ist, an das Kommunikationsnetz zu übertragen.According to an embodiment of the present invention, a network element is further provided which comprises one or more network ports, a network timing circuit and a packet processing circuit. The network ports are configured to communicate with a communication network. The network time switch is configured to track a network time defined in the communication network. The packet processing circuit is configured to queue outgoing packets pending transmission to the communication network and to transmit a pending outgoing packet to the communication network in synchronization with an event defined according to the network time.

Gemäß einer Ausführungsform der vorliegenden Erfindung wird darüber hinaus ein Netzwerkelement bereitgestellt, das einen oder mehrere Netzwerk-Ports, eine Netzwerkzeitschaltung und eine Paketverarbeitungsschaltung umfasst. Die Netzwerk-Ports sind für die Kommunikation mit einem Kommunikationsnetzwerk konfiguriert. Die Netzwerkzeitschaltung ist dafür konfiguriert, eine im Kommunikationsnetzwerk definierte Netzwerkzeit zu verfolgen. Die Paketverarbeitungsschaltung ist dafür konfiguriert, ausgehende Pakete an das Kommunikationsnetzwerk zu übertragen und die Übertragung eines ausgehenden Pakets zu einer bestimmten Zeit gemäß der Netzwerkzeit zu stoppen.According to one embodiment of the present invention, a network element is also provided which comprises one or more network ports, a network timing circuit and a packet processing circuit. The network ports are configured to communicate with a communication network. The network time switch is configured to track a network time defined in the communication network. The packet processing circuit is configured to transmit outbound packets to the communication network and stop the transmission of an outbound packet at a specified time according to the network time.

Gemäß einer Ausführungsform der vorliegenden Erfindung wird zusätzlich ein Netzwerkelement bereitgestellt, das einen oder mehrere Netzwerk-Ports, eine Netzwerkzeitschaltung und eine Paketverarbeitungsschaltung umfasst. Die Netzwerk-Ports sind für die Kommunikation mit einem Kommunikationsnetzwerk konfiguriert. Die Netzwerkzeitschaltung ist dafür konfiguriert, eine im Kommunikationsnetzwerk definierte Netzwerkzeit zu verfolgen. Die Paketverarbeitungsschaltung ist dafür konfiguriert, eingehende Pakete von dem Kommunikationsnetzwerk zu empfangen, um Ankunftszeiten der eingehenden Pakete gemäß der Netzwerkzeit zu bestimmen und die eingehenden Pakete basierend auf den Ankunftszeiten auf mehrere Warteschlangen zu verteilen.According to one embodiment of the present invention, a network element is additionally provided which comprises one or more network ports, a network timing circuit and a packet processing circuit. The network ports are configured to communicate with a communication network. The network time switch is configured to track a network time defined in the communication network. The packet processing circuit is configured to receive incoming packets from the communication network to determine arrival times of the incoming packets according to the network time and to distribute the incoming packets to a plurality of queues based on the arrival times.

Gemäß einer Ausführungsform der vorliegenden Erfindung wird ebenfalls ein Verfahren zur Kommunikation bereitgestellt, das in einem Netzwerkelement, das mit einem Kommunikationsnetz verbunden ist, das Verfolgen einer Netzwerkzeit umfasst, die in dem Kommunikationsnetz definiert ist. Es wird eine Definition von einem oder mehreren Zeitschlitzen empfangen, die auf die Netzwerkzeit synchronisiert sind. Ausgehende Pakete werden abhängig von den Zeitschlitzen vom Netzwerkelement an das Kommunikationsnetz gesendet.According to an embodiment of the present invention, a method for communication is also provided which, in a network element that is connected to a communication network, comprises tracking a network time which is defined in the communication network. A definition of one or more time slots that are synchronized to the network time is received. Outgoing packets are sent from the network element to the communication network depending on the time slots.

Gemäß einer Ausführungsform der vorliegenden Erfindung wird zusätzlich ein Verfahren zur Kommunikation bereitgestellt, das in einem Netzwerkelement, das mit einem Kommunikationsnetz verbunden ist, das Verfolgen einer Netzwerkzeit umfasst, die in dem Kommunikationsnetz definiert ist. Es wird eine Definition von einem oder mehreren Zeitschlitzen empfangen, die auf die Netzwerkzeit synchronisiert sind. Eingehende Pakete, die von dem Kommunikationsnetz empfangen werden, werden abhängig von den Zeitschlitzen verarbeitet.According to one embodiment of the present invention, a method for communication is additionally provided which, in a network element which is connected to a communication network, comprises tracking a network time which is defined in the communication network. A definition of one or more time slots that are synchronized to the network time is received. Incoming packets received from the communication network are processed depending on the time slots.

Gemäß einer Ausführungsform der vorliegenden Erfindung wird zusätzlich ein Verfahren zur Kommunikation bereitgestellt, das in einem Netzwerkelement, das mit einem Kommunikationsnetz verbunden ist, das Verfolgen einer Netzwerkzeit umfasst, die in dem Kommunikationsnetz definiert ist. Ausgehende Pakete werden in eine oder mehrere Warteschlangen eingereiht. Kredite werden den Warteschlangen abhängig von der Netzwerkzeit zugewiesen. Die ausgehenden Pakete werden entsprechend den zugewiesenen Kredite vom Netzwerkelement an das Kommunikationsnetz übertragen.According to one embodiment of the present invention, a method for communication is additionally provided which, in a network element which is connected to a communication network, comprises tracking a network time which is defined in the communication network. Outgoing packets are placed in one or more queues. Credits are assigned to the queues based on the network time. The outgoing packets are transmitted from the network element to the communication network according to the allocated credits.

Gemäß einer Ausführungsform der vorliegenden Erfindung wird ferner ein Verfahren zur Kommunikation bereitgestellt, das in einem Netzwerkelement, das mit einem Kommunikationsnetz verbunden ist, das Verfolgen einer Netzwerkzeit umfasst, die in dem Kommunikationsnetz definiert ist. Ausgehende Pakete, die zur Übertragung an das Kommunikationsnetz anstehen, werden in die Warteschlange eingereiht. Ein anstehendes ausgehendes Paket wird synchron mit einem Ereignis, das gemäß der Netzwerkzeit definiert ist, von dem Netzwerkelement an das Kommunikationsnetz übertragen.According to one embodiment of the present invention, a method for communication is also provided which, in a network element that is connected to a communication network, comprises tracking a network time that is defined in the communication network. Outgoing packets that are waiting for transmission to the communication network are placed in the queue. A pending outgoing packet is transmitted from the network element to the communication network synchronously with an event which is defined according to the network time.

Gemäß einer Ausführungsform der vorliegenden Erfindung wird zusätzlich ein Verfahren zur Kommunikation bereitgestellt, das in einem Netzwerkelement, das mit einem Kommunikationsnetz verbunden ist, das Verfolgen einer Netzwerkzeit umfasst, die in dem Kommunikationsnetz definiert ist. Ausgehende Pakete werden von dem Netzwerkelement an das Kommunikationsnetz übertragen. Die Übertragung eines ausgehenden Pakets wird zu einer bestimmten Zeit entsprechend der Netzwerkzeit gestoppt.According to one embodiment of the present invention, a method for communication is additionally provided which, in a network element that is connected to a communication network, comprises tracking a network time that is defined in the communication network. Outgoing packets are transmitted from the network element to the communication network. The transmission of an outgoing packet becomes a stopped for a certain time according to the network time.

Gemäß einer Ausführungsform der vorliegenden Erfindung wird ebenfalls ein Verfahren zur Kommunikation bereitgestellt, das in einem Netzwerkelement, das mit einem Kommunikationsnetz verbunden ist, das Verfolgen einer Netzwerkzeit umfasst, die in dem Kommunikationsnetz definiert ist. Ankommende Pakete werden im Netzwerkelement von dem Kommunikationsnetz empfangen. Ankunftszeiten der eingehenden Pakete werden entsprechend der Netzwerkzeit bestimmt. Die eingehenden Pakete werden basierend auf den Ankunftszeiten an mehrere Warteschlangen verteilt.According to an embodiment of the present invention, a method for communication is also provided which, in a network element that is connected to a communication network, comprises tracking a network time which is defined in the communication network. Incoming packets are received in the network element from the communication network. Arrival times of the incoming packets are determined according to the network time. Incoming packets are distributed to multiple queues based on arrival times.

Jedes Merkmal eines Aspekts oder einer Ausführungsform kann in jeder geeigneten Kombination auf andere Aspekte oder Ausführungsformen angewendet werden. Insbesondere kann jedes Merkmal eines Verfahrensaspekts oder einer Ausführungsform auf einen Vorrichtungsaspekt oder eine Ausführungsform angewendet werden und umgekehrt.Any feature of an aspect or embodiment can be applied to other aspects or embodiments in any suitable combination. In particular, each feature of a method aspect or an embodiment can be applied to a device aspect or an embodiment and vice versa.

Die vorliegende Erfindung wird aus der folgenden detaillierten Beschreibung ihrer Ausführungsformen zusammen mit den Zeichnungen besser verstanden, in denen:The present invention will be better understood from the following detailed description of its embodiments, together with the drawings, in which:

FigurenlisteFigure list

  • 1 ein Blockdiagramm ist, das schematisch einen Zeitmultiplex-Mehrfachzugriffs-(TDM) Knoten in einem Funkzugangsnetz gemäß einer Ausführungsform der vorliegenden Erfindung veranschaulicht; 1 Figure 3 is a block diagram schematically illustrating a time division multiple access (TDM) node in a radio access network according to an embodiment of the present invention;
  • 2 ein Blockdiagramm ist, das schematisch die Präzisionszeitprotokoll- (Precision Time Protocol, PTP) Unterstützungsschaltungen 200 gemäß einer Ausführungsform der vorliegenden Erfindung veranschaulicht; 2 Figure 3 is a block diagram schematically illustrating Precision Time Protocol (PTP) support circuitry 200 in accordance with an embodiment of the present invention;
  • 3 ein Diagramm ist, das Werte von PTP-Zählern gemäß einer Ausführungsform der vorliegenden Erfindung schematisch darstellt; 3 Figure 13 is a diagram schematically illustrating values of PTP counters according to an embodiment of the present invention;
  • 4 ein Blockdiagramm ist, das schematisch die zeitbasierte Eingangspaketverarbeitung in einem Netzwerkadapter gemäß Ausführungsformen der vorliegenden Erfindung veranschaulicht; 4th Figure 3 is a block diagram schematically illustrating time-based input packet processing in a network adapter in accordance with embodiments of the present invention;
  • 5 ein Blockdiagramm ist, das die zeitlich abgestimmte Übertragung von Paketen von einem Netzwerkadapter gemäß Ausführungsformen der vorliegenden Erfindung schematisch darstellt; und 5 Figure 3 is a block diagram schematically illustrating the timed transmission of packets from a network adapter in accordance with embodiments of the present invention; and
  • 6 ein Blockdiagramm ist, das schematisch ein optisches Switching-System gemäß einer Ausführungsform der vorliegenden Erfindung veranschaulicht. 6th Figure 13 is a block diagram schematically illustrating an optical switching system according to an embodiment of the present invention.

DETAILLIERTE BESCHREIBUNG DER AUSFÜHRUNGSFORMENDETAILED DESCRIPTION OF THE EMBODIMENTS

ÜBERBLICKOVERVIEW

Kommunikationsnetzwerke wie die erweiterte allgemeine öffentliche Funkschnittstelle (Enhanced Common Public Radio Interface, eCPRI), das optische Datenzentrumsnetzwerk (Optical Data Center Network, ODCN), Video over IP (z. B. Society of Motion Picture and Television Engineers (SMPTE) 2110 ) und andere verwenden Zeitmultiplex (TDM) oder manchmal Zeitmultiplex-Mehrfachzugriff (TDMA) für die Kommunikation zwischen Endpunkten, wobei sich mehrere Datenquellen während verschiedener Zeitintervalle, die als Zeitschlitze bezeichnet werden, dasselbe physikalische Medium teilen.Communication networks such as the Enhanced Common Public Radio Interface (eCPRI), the Optical Data Center Network (ODCN), Video over IP (e.g. Society of Motion Picture and Television Engineers (SMPTE) 2110 ) and others use time division multiple access (TDM) or sometimes time division multiple access (TDMA) for communication between endpoints, where multiple data sources share the same physical medium during different time intervals called time slots.

eCPRI wird beispielsweise in der eCPRI Specification V2.0 (2019-05-10) von Ericsson AB, Huawei Technologies Co. Ltd, NEC Corporation und Nokia beschrieben. Optische Rechenzentrumsnetzwerke werden beispielsweise in „NEPHELE: an end-to-end scalable and dynamically reconfigurable optical architecture for application-aware SDN cloud datacenters“, IEEE Communications Magazine (Band: 56, Ausgabe: 2, Feb. 2018. DOI: 10.1109/MCOM.2018.1600804) , von Paraskevas Bakopoulos et al. beschrieben.eCPRI is described, for example, in the eCPRI Specification V2.0 (2019-05-10) by Ericsson AB, Huawei Technologies Co. Ltd, NEC Corporation and Nokia. Optical data center networks are used, for example, in "NEPHELE: an end-to-end scalable and dynamically reconfigurable optical architecture for application-aware SDN cloud datacenters", IEEE Communications Magazine (Volume: 56, Issue: 2, Feb. 2018. DOI: 10.1109 / MCOM.2018.1600804) , by Paraskevas Bakopoulos et al. described.

TDMA-Multiplexing in Hochleistungsnetzwerken erfordert eine gute Synchronisation zwischen den Endpunkten, die normalerweise durch hochpräzise Zeitbasen erreicht wird. Spezielle Schaltungen, wie sie in der Xilinx RoE Framer IP-Dokumentation (Xilinx PB056 (v2.1) 30. Oktober 2019) beschrieben sind, können auch zum Senden und Empfangen von Daten im TDM-Netzwerk verwendet werden; solche spezialisierten Schaltkreise können jedoch teuer und unflexibel sein.TDMA multiplexing in high-performance networks requires good synchronization between the endpoints, which is normally achieved using high-precision time bases. Special circuits as described in the Xilinx RoE Framer IP documentation (Xilinx PB056 (v2.1) October 30, 2019) can also be used to send and receive data in the TDM network; however, such specialized circuitry can be expensive and inflexible.

Hierin offenbarte Ausführungsformen der vorliegenden Erfindung stellen netzwerkzeitabhängige Netzwerkkommunikationen unter Verwendung von Netzwerkelementen bereit, die kostengünstige Netzwerkadapter wie Network Interface Controller (NICs) im Kontext von Ethernet□ oder Host Channel Adapters (HCAs) im Kontext von InfiniBand umfassen. Obwohl sich die nachstehende Beschreibung hauptsächlich auf Netzwerkadapter bezieht, sind die offenbarten Techniken nicht auf Netzwerkadapter beschränkt und können mit beliebigen geeigneten Netzwerkelementen, einschließlich beispielsweise Switches und Routern, verwendet werden.Embodiments of the present invention disclosed herein provide network time-dependent network communications using network elements that include inexpensive network adapters such as network interface controllers (NICs) in the context of Ethernet or host channel adapters (HCAs) in the context of InfiniBand. Although the description below relates primarily to network adapters, the disclosed techniques are not limited to network adapters and can be used with any suitable network elements including, for example, switches and routers.

In einigen hier beschriebenen Ausführungsformen umfasst ein Netzwerkelement (z. B. Netzwerkadapter, Switch, Router oder dergleichen) einen oder mehrere Netzwerk-Ports zum Kommunizieren mit einem Kommunikationsnetzwerk, Netzwerkzeitschaltkreisen und Paketverarbeitungsschaltkreisen. Die Netzwerkzeitschaltung ist dafür konfiguriert, eine im Kommunikationsnetzwerk definierte Netzwerkzeit zu verfolgen.In some embodiments described herein, a network element (e.g., network adapter, switch, router, or the like) includes one or more network ports for communicating with a communications network, network timing circuitry, and packet processing circuitry. The network time switch is configured to track a network time defined in the communication network.

In einigen Ausführungsformen ist die Paketverarbeitungsschaltung dafür konfiguriert, eine Definition von einem oder mehreren Zeitschlitzen zu empfangen, die mit der Netzwerkzeit synchronisiert sind, und ausgehende Pakete an das Kommunikationsnetz zu senden oder eingehende Pakete, die von dem Kommunikationsnetz empfangen werden, abhängig von den Zeitschlitzen zu verarbeiten.In some embodiments, the packet processing circuit is configured to receive a definition of one or more time slots that are synchronized with the network time and to send outgoing packets to the communication network or to send incoming packets received from the communication network depending on the time slots to process.

In einer beispielhaften Ausführungsform ist die Paketverarbeitungsschaltung dafür konfiguriert, ausgehende Pakete in eine oder mehrere Warteschlangen einzureihen, um den Warteschlangen Kredite in Abhängigkeit von der Netzwerkzeit zuzuweisen und die ausgehenden Pakete gemäß den zugewiesenen Krediten an das Kommunikationsnetz zu übertragen.In an exemplary embodiment, the packet processing circuit is configured to enqueue outgoing packets in one or more queues to assign credits to the queues based on the network time and to transmit the outgoing packets to the communication network according to the assigned credits.

In einer anderen beispielhaften Ausführungsform ist die Paketverarbeitungsschaltung dafür konfiguriert, ein anhängiges ausgehendes Paket synchron mit einem Ereignis, das gemäß der Netzwerkzeit definiert ist, an das Kommunikationsnetzwerk zu übertragen.In another exemplary embodiment, the packet processing circuit is configured to transmit a pending outbound packet to the communication network in synchronism with an event defined according to the network time.

In noch einer anderen Ausführungsform ist die Paketverarbeitungsschaltung dafür konfiguriert, die Übertragung eines ausgehenden Pakets zu einer bestimmten Zeit gemäß der Netzwerkzeit zu stoppen.In yet another embodiment, the packet processing circuit is configured to stop the transmission of an outgoing packet at a specified time according to the network time.

In einigen Ausführungsformen ist die Paketverarbeitungsschaltung dafür konfiguriert, eingehende Pakete von dem Kommunikationsnetzwerk zu empfangen, um Ankunftszeiten der eingehenden Pakete gemäß der Netzwerkzeit zu bestimmen und die eingehenden Pakete basierend auf den Ankunftszeiten auf mehrere Warteschlangen zu verteilen.In some embodiments, the packet processing circuit is configured to receive incoming packets from the communication network to determine arrival times of the incoming packets according to the network time and to distribute the incoming packets to multiple queues based on the arrival times.

In einer anderen beispielhaften Ausführungsform ist die Paketverarbeitungsschaltung dafür konfiguriert, eine oder mehrere Zeitschlitzzuweisungen zu empfangen, die dem Netzwerkelement in einem TDM-Plan zugewiesen sind, der mit der Netzwerkzeit synchronisiert ist. Die Paketverarbeitungsschaltung sendet ausgehende Pakete an das Kommunikationsnetzwerk und/oder verarbeitet eingehende Pakete, die von dem Kommunikationsnetzwerk empfangen werden, nur während der dem Netzwerkelement zugewiesenen Zeitschlitzzuweisungen.In another exemplary embodiment, the packet processing circuit is configured to receive one or more time slot assignments assigned to the network element in a TDM schedule that is synchronized with the network time. The packet processing circuit sends outgoing packets to the communication network and / or processes incoming packets received from the communication network only during the time slot assignments assigned to the network element.

Mit anderen Worten wird in einigen Ausführungsformen ein bestimmter TDM-Plan in zumindest einem Teil des Kommunikationsnetzwerks definiert. Im Rahmen dieses TDM-Plans werden einem bestimmten Netzwerkelement bestimmte Zeitschlitze zugewiesen. In einigen Ausführungsformen darf das Netzwerkelement nur während der zugewiesenen Zeitschlitze Pakete an das Netzwerk (oft an ein vorab zugewiesenes Ziel) senden. Zusätzlich oder alternativ ist es dem Netzwerkelement in einigen Ausführungsformen erlaubt, empfangene Pakete nur dann zu verarbeiten, wenn die Paketankunftszeiten mit den zugewiesenen Zeitschlitzen übereinstimmen. Dieser Mechanismus ist beispielsweise für die Interaktion mit einem drahtlosen oder optischen Switching-Netzwerk nützlich, das in TDMA arbeitet. Beispiele für solche Anwendungsfälle werden im Folgenden beschrieben.In other words, in some embodiments, a particular TDM plan is defined in at least a portion of the communication network. As part of this TDM plan, specific time slots are assigned to a specific network element. In some embodiments, the network element is only allowed to send packets to the network (often to a pre-assigned destination) during the assigned time slots. Additionally or alternatively, in some embodiments the network element is allowed to process received packets only if the packet arrival times match the assigned time slots. This mechanism is useful, for example, for interacting with a wireless or optical switching network that operates in TDMA. Examples of such use cases are described below.

In einigen Ausführungsformen kann das Netzwerkelement das Paket als Reaktion auf die Zeit, in der das Netzwerkelement das Paket empfängt, an eine spezifische Softwareeinheit senden, wie beispielsweise eine Warteschlange.In some embodiments, the network element may send the packet to a specific software entity, such as a queue, in response to the time the network element receives the packet.

Gemäß einer beispielhaften Ausführungsform umfasst ein Netzwerkadapter einen oder mehrere Eingangs-Ports, die TDM-Übertragungen über ein Ethernet-Netzwerk empfangen; der Netzwerkadapter erzeugt Zeitstempel, die der Ankunftszeit der eingehenden Pakete entsprechen, klassifiziert die Pakete gemäß den Zeitstempeln und anderen Paketinformationen (wie verschiedene Kopfzeilen) und leitet als Reaktion auf die Klassifizierung Pakete an einen Host-Prozessor weiter, der an den Netzwerkadapter angeschlossen ist (im Folgenden als „der Prozessor“ oder „der Host“ bezeichnet).According to an exemplary embodiment, a network adapter includes one or more input ports that receive TDM transmissions over an Ethernet network; the network adapter generates time stamps corresponding to the arrival time of the incoming packets, classifies the packets according to the time stamps and other packet information (such as various headers) and, in response to the classification, forwards packets to a host processor connected to the network adapter (in the Hereinafter referred to as “the processor” or “the host”).

Gemäß Ausführungsformen kann der Netzwerkadapter ferner einen oder mehrere Ausgangs-Ports umfassen; der Netzwerkadapter empfängt Pakete von dem Prozessor und sendet die Pakete in vordefinierten Zeitschlitzen an die Ausgangs-Ports.According to embodiments, the network adapter can further include one or more output ports; the network adapter receives packets from the processor and sends the packets to the output ports in predefined time slots.

In einigen Ausführungsformen erfordern der Empfang und/oder das Senden von TDM-basierten Paketen eine präzise Zeitbasis, die von einem hochpräzisen Taktgeber abgeleitet wird, den der Netzwerkadapter umfasst. In einer Ausführungsform umfasst der Netzwerkadapter einen Taktgeber, der mit der Netzwerkzeitleiste frequenz- und phasenverriegelt ist, und der Prozessor umfasst einen Haupttaktgeber („Wanduhr“), der dafür konfiguriert ist, den Taktgeber des Netzwerkadapters zu verfolgen. Dies reduziert die Echtzeit-Auslastung des Prozessors.In some embodiments, the receipt and / or transmission of TDM-based packets require a precise time base derived from a high-precision clock included in the network adapter. In one embodiment, the network adapter includes a clock that is frequency and phase locked to the network timeline, and the processor includes a master clock ("wall clock") configured to keep track of the network adapter's clock. This reduces the real-time load on the processor.

In einer Ausführungsform umfasst der Netzwerkadapter einen Präzisionszeitprotokoll-, PTP, Taktgeber, der sich mit der Netzwerkzeitleiste synchronisiert und Befehle wie „Zeit anpassen“ und „Zeit einstellen“ unterstützt, wie im Open-Source-PTP-Daemon der Linux-Community - PTP41 implementiert und beispielsweise in „Standard for a Precision Clock Synchronization Protocol for Networked Measurement and Control Systems“ (IEEE 1588-2008) definiert. In einigen Ausführungsformen umfasst der Netzwerkadapter ferner eine Syntonisierungsschaltung, die die Frequenzquelle des Netzwerkadapters kontinuierlich an die Frequenzquelle der Zeitbasis des Netzwerks anpasst und Befehle wie „Frequenz anpassen“ und „Frequenz einstellen“ unterstützt. Bestimmte Aspekte von Netzwerkadaptern mit integrierten PTP-Taktgebern werden beispielsweise in der US-Patentanmeldung 16/779,611 , eingereicht am 2. Februar 2020, und in der US-Patentanmeldung 16/782,075 , eingereicht am 5. Februar 2020, angesprochen, die beide auf den Rechtsnachfolger der vorliegenden Patentanmeldung übertragen wurden und deren Offenbarungen hier durch Bezugnahme aufgenommen werden.In one embodiment, the network adapter includes a precision time protocol, PTP, clock that synchronizes with the network timeline and commands such as "adjust time" and "time." set ”, as implemented in the open source PTP daemon of the Linux community - PTP41 and defined, for example, in the“ Standard for a Precision Clock Synchronization Protocol for Networked Measurement and Control Systems ”(IEEE 1588-2008). In some embodiments, the network adapter further comprises a syntonization circuit that continuously adjusts the frequency source of the network adapter to the frequency source of the time base of the network and supports commands such as “adjust frequency” and “set frequency”. For example, certain aspects of network adapters with built-in PTP clocks are described in the U.S. Patent Application 16 / 779,611 , filed on February 2, 2020, and in the U.S. Patent Application 16 / 782,075 , filed February 5, 2020, both assigned to the assignee of the present patent application, the disclosures of which are incorporated herein by reference.

Gemäß einigen Ausführungsformen sendet der Netzwerkadapter, um Pakete zu genau vordefinierten Zeitschlitzen zu senden, eine gleichmäßig beabstandete unendliche Folge von Dummy-Paketen (die typischerweise den Netzwerkadapter nicht verlassen). Immer wenn ein Paket gesendet wird, sendet der Netzwerkadapter einen Abschlusswarteschlangeneintrag (Completion Queue Entry, CQE) , der aus einem Zeitstempel (der von dem oben beschriebenen hochpräzisen Taktgeber abgeleitet werden kann) und einem Produzentenindex (PI) besteht, an den Prozessor und an eine Loop-Back-Schaltung, die verwendet wird, um ausgehende Pakete zeitlich abzustimmen. Jeder PI entspricht direkt einer anderen Zeit und kann verwendet werden, um eine genaue Zeit anzugeben. Der Prozessor sendet zu übertragende Pakete an verschiedene Warteschlangen innerhalb des Netzwerkadapters (z. B. sendet jede virtuelle Maschine im Prozessor Pakete an eine andere Warteschlange) und fügt den Paketen „Warten auf PI“-Nachrichten hinzu; somit steuert der Prozessor genau den Zeitschlitz, in dem der Netzwerkadapter das Paket von dem Ausgangs-Port sendet. In einigen Ausführungsformen umfasst das Netzwerkelement ferner eine zeitbasierte Schaltung, die jedes Paket blockiert, das die Ausgangsschaltung möglicherweise außerhalb des zugewiesenen Zeitschlitzes an das Netzwerk zu senden versucht (zum Beispiel aufgrund eines Softwarefehlers oder Gegendrucks aus dem Netzwerk oder aus anderen Gründen).According to some embodiments, in order to send packets at precisely predefined time slots, the network adapter sends an evenly spaced infinite sequence of dummy packets (which typically do not leave the network adapter). Whenever a packet is sent, the network adapter sends a completion queue entry (CQE) consisting of a timestamp (which can be derived from the high-precision clock described above) and a producer index (PI) to the processor and to a Loop-back circuit used to synchronize outgoing packets. Each PI corresponds directly to a different time and can be used to give an accurate time. The processor sends packets to be transmitted to various queues within the network adapter (for example, each virtual machine in the processor sends packets to a different queue) and adds "waiting for PI" messages to the packets; thus the processor precisely controls the time slot in which the network adapter sends the packet from the output port. In some embodiments, the network element further comprises a time-based circuit that blocks any packet that the output circuit may attempt to send to the network outside of the assigned time slot (for example due to a software error or back pressure from the network or for other reasons).

Gemäß einer Ausführungsform umfasst der Netzwerkadapter eine Paketsteuerungsschaltung, die dafür konfiguriert ist, Pakete durch Anpassen eines Parametersatzes an vordefinierte Werte zu steuern, wobei der Parametersatz einen Ankunftszeitparameter umfasst. Um ein Paket in einem vordefinierten Zeitschlitz zu empfangen, stempelt der Netzwerkadapter die eingehenden Pakete mit einem Zeitstempel (zum Beispiel unter Verwendung der oben beschriebenen hochpräzisen Taktgeber). Der Prozessor steuert dann die Paketsteuerungsschaltung, um einen Zeitsteuerungsparameter anzupassen, der dem zugewiesenen Zeitschlitz von TDM-Paketen entspricht. In einigen Ausführungsformen ist die Paketsteuerungsschaltung dafür konfiguriert, den Zeitleistenwert an einen Wertebereich anzupassen.According to one embodiment, the network adapter comprises a packet control circuit which is configured to control packets by adapting a parameter set to predefined values, the parameter set comprising a time of arrival parameter. In order to receive a packet in a predefined time slot, the network adapter stamps the incoming packets with a time stamp (for example using the high-precision clocks described above). The processor then controls the packet control circuitry to adjust a timing parameter corresponding to the assigned time slot of TDM packets. In some embodiments, the packet control circuit is configured to adjust the timeline value to a range of values.

Es wird darauf hingewiesen, dass jede der offenbarten zeitabhängigen Techniken auf alle Pakete oder auf eine ausgewählte Teilmenge von Paketen, z. B. Pakete, die einem oder mehreren spezifizierten Ports oder Datenflüssen zugeordnet sind, angewendet werden kann.It should be noted that any of the disclosed time-dependent techniques apply to all packets or to a selected subset of packets, e.g. B. packets that are assigned to one or more specified ports or data flows can be applied.

SYSTEMBESCHREIBUNGSYSTEM DESCRIPTION

1 ist ein Blockdiagramm, das schematisch einen Zeitmultiplex- (TDM) Knoten 100 in einem Funkzugangsnetz gemäß einer Ausführungsform der vorliegenden Erfindung veranschaulicht. Der Knoten 100 umfasst einen Netzwerkadapter, der mit einem TDM-Netzwerk 104, einem Prozessor 106, einer Funkschaltung 108 und einer Mobilfunkantenne (oder Antennengruppe) 110 kommuniziert. Die Funkschaltung 108 kommuniziert drahtlos über die Antenne 110 mit mehreren Mobilfunkgeräten (nicht gezeigt) und ist mit dem Prozessor 106 verbunden. Der Prozessor 106 ist dafür konfiguriert, die Funkschaltung zu steuern und Daten zwischen der Antenne und, über den Netzwerkadapter 102, dem TDM-Netzwerk zu übertragen. Der Prozessor 106 ist ferner dafür konfiguriert, eine Zeitschlitzzuweisung zum Senden und Empfangen von Paketen zu oder von dem Netzwerk zu empfangen. Die Zeitschlitzzuweisung kann von einem nicht gezeigten Prozessor, über den Netzwerkadapter oder auf andere Weise empfangen werden; in einigen Ausführungsformen wird die Zeitschlitzzuweisung durch den Prozessor 106 erzeugt, der Zeitschlitzzuweisungen an andere Knoten des TDM-Netzwerks senden kann; in anderen Ausführungsformen erzeugt jeder Prozessor des Netzwerks die Zeitschlitzzuweisung unabhängig. Die Zeitschlitze umfassen typischerweise Sendezeitschlitze und Empfangszeitschlitze zum Senden bzw. Empfangen von Paketen. 1 Figure 3 is a block diagram schematically showing a time division multiplexed (TDM) node 100 illustrated in a radio access network according to an embodiment of the present invention. The knot 100 includes a network adapter that connects to a TDM network 104 , a processor 106 , a radio circuit 108 and a cellular antenna (or antenna array) 110. The radio circuit 108 communicates wirelessly via the antenna 110 with multiple cellular devices (not shown) and is connected to the processor 106 tied together. The processor 106 is configured to control the radio circuit and data between the antenna and, through the network adapter 102 to broadcast to the TDM network. The processor 106 is further configured to receive a time slot assignment for sending and receiving packets to or from the network. The time slot assignment can be received from a processor (not shown), via the network adapter, or in some other way; in some embodiments, the time slot allocation is done by the processor 106 which can send time slot assignments to other nodes of the TDM network; in other embodiments, each processor on the network generates the time slot assignment independently. The time slots typically include transmission time slots and reception time slots for sending and receiving packets, respectively.

Der Netzwerkadapter 102 umfasst einen Eingangs-Port 112, der dafür konfiguriert ist, Pakete von dem Netzwerk zu empfangen; einen Ausgangs-Port 114, der dafür konfiguriert ist, Pakete über das Netzwerk zu senden; eine zeitbasierte Paketsteuerungseinheit 118 (die auch als „Paketverarbeitungsschaltung“ bezeichnet wird); und eine Warteschlange 120 für zeitgesteuertes Senden.The network adapter 102 includes an input port 112 configured to receive packets from the network; an output port 114 configured to send packets over the network; a time-based packet control unit 118 (also known as a "packet processing circuit"); and a queue 120 for time-controlled sending.

Der Eingangs-Port 112 empfängt Pakete von dem TDM-Netzwerk 104 und sendet die Pakete an die zeitbasierte Paketsteuerung 118. Die zeitbasierte Paketsteuerung steuert die Pakete gemäß Regeln, die Bedingungen umfassen, die der Paketprozessor prüfen soll, und Aktionen, die der Paketprozessor ausführen soll, wenn die Bedingungen erfüllt sind. Die Bedingungen können einen Zeitbereich und optional einige andere Bedingungen umfassen, die beispielsweise von den Kopfzeilen des Pakets abgeleitet werden; die Aktion kann beispielsweise darin bestehen, das Paket an den Prozessor 106 weiterzuleiten oder das Paket zu verwerfen und eine geeignete Benachrichtigung an den Prozessor zu senden.The input port 112 receives packets from the TDM network 104 and sends the packets to the time-based packet control 118 . the Time-based packet control controls the packets according to rules that include conditions that the packet processor should check and actions that the packet processor take when the conditions are met. The conditions may include a range of time and optionally some other conditions derived, for example, from the headers of the packet; for example, the action can be to send the packet to the processor 106 forward or discard the packet and send an appropriate notification to the processor.

In einer Ausführungsform wird die Zeitbereichsbedingung als Reaktion auf die Empfangszeitschlitzzuweisung eingestellt, die der Prozessor 106 an den Netzwerkadapter sendet. Wenn beispielsweise die Empfangszeitschlitzzuweisung anzeigt, dass Pakete, die für den aktuellen TDM-Knoten 100 bestimmt sind, in den ersten 50 Mikrosekunden jedes 1-Millisekunden-Zyklus empfangen werden, berechnet der Netzwerkadapter (oder in einigen Ausführungsformen der Prozessor 106) in jedem Zyklus die Startzeit und die Endzeit, während der das Paket empfangen werden kann. Die zeitbasierte Paketsteuerung 118 kann somit nur Pakete an den Prozessor weiterleiten, die innerhalb der zugewiesenen Zeitschlitze empfangen werden (da keine für den Prozessor 106 bestimmten Pakete außerhalb des zugewiesenen Eingangszeitschlitzes empfangen werden sollten, prüft die Paketsteuerung 118 in einigen Ausführungsformen nicht, ob das Paket an dem zugewiesenen Eingangszeitschlitz ankommt). Aspekte der zeitbewussten Paketsteuerung werden auch in der oben zitierten US-Patentanmeldung 16/782.075 , eingereicht am 5. Februar 2020, angesprochen.In one embodiment, the time domain condition is set in response to the receive time slot assignment that the processor 106 sends to the network adapter. For example, if the receive time slot allocation indicates that packets are destined for the current TDM node 100 are determined to be received in the first 50 microseconds of every 1 millisecond cycle is calculated by the network adapter (or in some embodiments, the processor 106 ) in each cycle the start time and the end time during which the packet can be received. The time-based package control 118 can only forward packets to the processor that are received within the assigned time slots (since none for the processor 106 If certain packets should be received outside of the assigned incoming time slot, the packet control checks 118 in some embodiments, not whether the packet arrives at the assigned input timeslot). Aspects of time-conscious packet control are also cited in the above U.S. Patent Application 16 / 782,075 , filed on February 5, 2020.

Die Warteschlange 120 für zeitgesteuertes Senden ist dafür konfiguriert, Pakete über das TDM-Netzwerk 104 durch den Ausgangs-Port 114 gemäß der Sendezeitschlitzzuweisung, die der Prozessor 106 empfängt, zu senden. In einer Ausführungsform kann die Warteschlange 120 für zeitgesteuertes Senden mehrere Warteschlangen für verschiedene Paketflüsse umfassen (beispielsweise kann jede Warteschlange einer separaten virtuellen Maschine innerhalb des Prozessors 106 zugewiesen sein) und jedem Datenfluss kann ein Unterzeitschlitz innerhalb des Zeitschlitzes zugewiesen werden, der dem TDM-Knoten 100 zugewiesen ist. Der Netzwerkadapter übersetzt die Zeitschlitzzuweisung in eine Netzwerkzeit für den zugewiesenen Zeitschlitz, und die Warteschlange für zeitgesteuertes Senden (Timed-Transmit-Queue) sendet ein Paket von einer der separaten Warteschlangen über den Ausgangs-Port 114 an das Netzwerk.The queue 120 Timed Sending is configured to send packets over the TDM network 104 through the output port 114 according to the transmission time slot allocation that the processor 106 receive, send. In one embodiment, the queue 120 include multiple queues for different packet flows for scheduled sending (for example, each queue can be a separate virtual machine within the processor 106 assigned) and each data flow can be assigned a sub-timeslot within the timeslot assigned to the TDM node 100 assigned. The network adapter translates the time slot assignment into a network time for the assigned time slot, and the Timed-Transmit-Queue sends a packet from one of the separate queues over the outgoing port 114 to the network.

Der Netzwerkadapter 102 umfasst ferner eine zeitbasierte Sendeblockiereinheit 122 , die dafür konfiguriert ist, die Übertragung von Paketen außerhalb des zugewiesenen Zeitschlitzes zu blockieren. In einigen Ausführungsformen hängt der Prozessor 106 einen Startzeit- und einen Endzeitindikator an einige oder alle ausgehende Pakete an; die zeitbasierte Sendeblockiereinheit vergleicht die Startzeit- und Endzeitangaben mit der aktuellen Zeit, und blockiert die Übertragung von Paketen vor oder nach dem zugewiesenen Zeitschlitz.The network adapter 102 furthermore comprises a time-based transmission blocking unit 122 configured to block the transmission of packets outside the assigned time slot. In some embodiments, the processor hangs 106 display a start time and an end time indicator to some or all of the outgoing packets; the time-based transmission blocking unit compares the start and end times with the current time, and blocks the transmission of packets before or after the assigned time slot.

In einigen Ausführungsformen umfasst der Netzwerkadapter 102 ferner eine Netzwerkzeitschaltung (nicht gezeigt), wie beispielsweise einen Präzisionszeittaktgeber (Precision Time Clock, PTP), der verwendet wird, um die TDM-Zeitschlitze zeitlich genau zu steuern. Die Netzwerkzeitschaltung wird im Folgenden beschrieben.In some embodiments, the network adapter comprises 102 also a network timing circuit (not shown), such as a Precision Time Clock (PTP), which is used to precisely time the TDM time slots. The network timing is described below.

Somit kann ein TDM-Netzwerk, wie es für die Front-Strecke von eCPRI spezifiziert ist, unter Verwendung eines an einen Prozessor angeschlossenen Netzwerkadapters implementiert werden; eingehende Pakete, die an vordefinierten Empfangszeitschlitzen empfangen werden, werden an die Funkschaltung geleitet, und Daten von der Funkschaltung werden paketiert und über das Netzwerk in vordefinierten Sendezeitschlitzen gesendet. In Ausführungsformen gemäß der vorliegenden Erfindung werden Zeitschlitze durch Hardware überprüft und daher muss der Prozessor Zeitschlitze nicht durch Abfragen überprüfen, was beträchtliche Rechenressourcen verbrauchen würde und eine genaue Synchronisierung der Prozesse erzwingen würde.Thus, a TDM network as specified for the front link by eCPRI can be implemented using a network adapter connected to a processor; Incoming packets received at predefined receive time slots are routed to the radio circuit, and data from the radio circuit are packetized and sent over the network in predefined transmit time slots. In embodiments according to the present invention, time slots are checked by hardware and therefore the processor does not need to check time slots by polling, which would consume considerable computing resources and would force an accurate synchronization of the processes.

Obwohl sich die obige Beschreibung (und weitere Beschreibungen hierin unten) auf Netzwerkadapter beziehen, können andere Arten von Netzwerkelementen in alternativen Ausführungsformen verwendet werden, wie beispielsweise Switches, Router und dergleichen.Although the above description (and further descriptions herein below) relates to network adapters, other types of network elements may be used in alternative embodiments, such as switches, routers, and the like.

Es versteht sich, dass die Konfiguration des TDM-Knotens 100 einschließlich des Netzwerkadapters 102 beispielhafte Konfigurationen sind, die nur der konzeptionellen Klarheit halber dargestellt sind. Andere geeignete Konfigurationen können in alternativen Ausführungsformen der vorliegenden Erfindung verwendet werden. Zum Beispiel können mehr Netzwerk-Ports verwendet werden, die eine Verbindung zu demselben TDM-Netzwerk, zu anderen TDM-Netzwerken und/oder zu Nicht-TDM-Netzwerken herstellen. In einigen Ausführungsformen wird ein einzelner Port implementiert. In anderen Ausführungsformen werden bidirektionale Eingangs-/Ausgangs-Ports verwendet.It goes without saying that the configuration of the TDM node 100 including the network adapter 102 are exemplary configurations presented for conceptual clarity only. Other suitable configurations can be used in alternative embodiments of the present invention. For example, more network ports connecting to the same TDM network, other TDM networks, and / or non-TDM networks can be used. In some embodiments, a single port is implemented. In other embodiments, bidirectional input / output ports are used.

In einer Ausführungsform berechnet der Netzwerkadapter Netzwerkzeitleistenwerte, die der Start- und Stoppzeit von Zeitschlitzen in einem ersten TDM-Zyklus entsprechen, und berechnet dann Zeitleistenwerte, die der Start- und Stoppzeit weiterer TDM-Zyklen entsprechen, indem die Zeitdauer eines TDM-Zyklus wiederholt zu den Start- und Stoppzeitwerten addiert wird (es ist zu beachten, dass Nicht-TDM-Warteschlangen mit den oben beschriebenen TDM-Warteschlangen koexistieren können).In one embodiment, the network adapter calculates network timeline values that correspond to the start and stop times of time slots in a first TDM cycle, and then calculates timeline values that correspond to the start and stop times of further TDM cycles by adding the duration of a TDM cycle is repeatedly added to the start and stop time values (note that non-TDM queues can coexist with the TDM queues described above).

ZEITSYNCHRONISIERUNGTIME SYNCHRONIZATION

In einigen Ausführungsformen gemäß der vorliegenden Erfindung umfasst der Netzwerkadapter eine Präzisionszeittaktgeber, PTP. PTP ist im IEEE 1588-2008 „Standard for a Precision Clock Synchronization Protocol for Networked Measurement and Control Systems“ (im Folgenden „1588“) definiert und umfasst eine hierarchische Master-Slave-Architektur zur Taktgeberverteilung. Bei dieser Architektur besteht ein Zeitleistenverteilungssystem aus einem oder mehreren Kommunikationsmedien (Netzwerksegmenten) und einem oder mehreren Taktgebern, die ständig miteinander synchronisiert werden. Somit kann der PTP-Zeitleistenwert an die Netzwerkzeitleiste angepasst werden. Der PTP-Zeitleistenwert ist normalerweise eine 80-Bit-Ganzzahl, bestehend aus einem Tagesfeld (Tage ab dem 1. Januar 1970, Mitternacht) und einem Nanosekundenfeld.In some embodiments according to the present invention, the network adapter comprises a precision time clock, PTP. PTP is defined in IEEE 1588-2008 "Standard for a Precision Clock Synchronization Protocol for Networked Measurement and Control Systems" (hereinafter "1588") and comprises a hierarchical master-slave architecture for clock distribution. In this architecture, a timeline distribution system consists of one or more communication media (network segments) and one or more clocks that are constantly synchronized with one another. Thus, the PTP timeline value can be adapted to the network timeline. The PTP timeline value is usually an 80-bit integer consisting of a day field (days from January 1, 1970, midnight) and a nanosecond field.

In Ausführungsformen betreibt ein Software-PTP-Client, der typischerweise auf dem Prozessor läuft, eine „Wandtuhr“, indem er kontinuierlich die Netzwerkzeitleiste von dem Netzwerkadapter liest. Der PTP-Client kann Befehle wie „Zeit anpassen“, „Zeit einstellen“ und „Zeit lesen“ an die PTP-Schaltung senden. Die PTP-Schaltung umfasst einen einstellbaren Oszillator, einen Zähler und Synchronisationsschaltungen, um solche Befehle zu unterstützen.In embodiments, a software PTP client, typically running on the processor, operates a "wall clock" by continuously reading the network timeline from the network adapter. The PTP client can send commands such as “adjust time”, “set time” and “read time” to the PTP circuit. The PTP circuit includes an adjustable oscillator, counter and synchronization circuitry to support such commands.

Schwankungen des einstellbaren Oszillators werden gemessen, berechnet und dann durch Nachjustieren der Oszillatorfrequenz (z. B. durch Ändern der n- und m-Werte eines PLL und/oder durch Ändern des Spannungseingangs zu einem spannungsgesteuerten Oszillator (VCO)) abgeschwächt.Fluctuations in the adjustable oscillator are measured, calculated and then attenuated by readjusting the oscillator frequency (e.g. by changing the n and m values of a PLL and / or by changing the voltage input to a voltage controlled oscillator (VCO)).

In einigen Ausführungsformen umfasst der Netzwerkadapter ferner eine Schaltung, die Zeitstempel zu einem Zeitpunkt, wenn ein ausgehendes Paket den Netzwerkadapter verlässt, und zu einem Zeitpunkt, wenn ein eingehendes Paket in den Netzwerkadapter eintritt, erzeugt; der Netzwerkadapter sendet dann die Zeitstempel an den PTP-Client, der die Zeitstempel zur Berechnung der Netzwerkausbreitungsverzögerung von dem Netzwerkadapter zu einem Peer-Netzwerkelement verwendet, das die Netzwerkzeitleiste („Master-Zeitleiste“) umfasst.In some embodiments, the network adapter further comprises circuitry that generates time stamps at a time when an outgoing packet leaves the network adapter and at a time when an incoming packet enters the network adapter; the network adapter then sends the timestamps to the PTP client, which uses the timestamps to calculate the network propagation delay from the network adapter to a peer network element that includes the network timeline ("master timeline").

Um einen Taktgeber zu disziplinieren (d. h. ihn zu veranlassen, die Frequenz und Phase eines Haupttaktgebers zu verfolgen) , führt ein PTP-Client kontinuierlich Folgendes aus:

  • ■ Austauschen von Paketen mit einem Netzwerkelement, das den Haupttaktgeber umfasst;
  • ■ Extrahieren der Master-Zeitleiste aus den eingehenden Paketen;
  • ■ Messen der Netzwerkverzögerungen unter Verwendung von Zeitstempeln, die den ausgetauschten Paketen zugeordnet sind;
  • ■ Anpassen der Zeit gemäß der Master-Zeitleiste und den Verzögerungen, Berechnen der Abweichung der Oszillatorfrequenz (z. B. durch Teilen der Zeitabweichung durch die verstrichene Zeit seit der vorherigen Messung); und
  • ■ Anpassen des Oszillators, um die gemessene Frequenzdabweichung abzuschwächen.
To discipline a clock (that is, get it to track the frequency and phase of a master clock), a PTP client does the following continuously:
  • ■ exchanging packets with a network element comprising the master clock;
  • ■ Extract the master timeline from the incoming packets;
  • ■ measuring network delays using time stamps associated with the exchanged packets;
  • ■ Adjusting the time according to the master timeline and delays, calculating the deviation of the oscillator frequency (e.g. by dividing the time deviation by the time elapsed since the previous measurement); and
  • ■ Adjusting the oscillator in order to reduce the measured frequency deviation.

2 ist ein Blockdiagramm, das schematisch PTP-Unterstützungsschaltungen 200 gemäß einer Ausführungsform der vorliegenden Erfindung veranschaulicht. Die Unterstützungsschaltungen sind mit einem Eingangs-Port 112 und einem Ausgangs-Port 114 (1) verbunden, die mit dem Netzwerk kommunizieren. PTP-Unterstützungsschaltungen 200 umfassen einen Eingangszeitstempelgenerator 202, der dafür konfiguriert ist, genaue Zeitstempel zu erzeugen, wenn Pakete aus dem Netzwerk in den Netzwerkadapter eintreten, einen Ausgangs-Zeitstempelgenerator 204, der dafür konfiguriert ist, genaue Zeitstempel zu erzeugen, wenn Pakete von dem Netzwerkadapter an das Netzwerk ausgegeben werden, eine PTP-Client-Software 206 und eine PTP-Schaltung 208. Die PTP-Client-Software 206 läuft typischerweise auf dem Prozessor 106. Die Zeitstempelgeneratoren 202 und 204 und die PTP-Schaltung 208 sind typischerweise Teil des Netzwerkadapters 102 in 1. 2 Figure 3 is a block diagram schematically showing PTP support circuitry 200 illustrated in accordance with an embodiment of the present invention. The support circuits are with an input port 112 and an output port 114 ( 1 ) that communicate with the network. PTP support circuits 200 include an input timestamp generator 202 configured to generate accurate timestamps when packets from the network enter the network adapter, an output timestamp generator 204 configured to generate accurate timestamps when packets are output from the network adapter to the network, a PTP client software 206 and a PTP circuit 208 . The PTP client software 206 typically runs on the processor 106 . The timestamp generators 202 and 204 and the PTP circuit 208 are typically part of the network adapter 102 in 1 .

Die PTP-Schaltung 208 umfasst einen programmierbaren Oszillator 210 (z. B. einen hochpräzisen Phasenregelkreis (PLL), einen spannungsgesteuerten Oszillator (VCO) oder eine Kombination aus einem PLL und einem VCO) und einen Netzwerkzeitzähler 212, die die Oszillatorzyklen in Nanosekunden und Tagen zählt. In einer Ausführungsform umfasst der Zähler 80 Bits. Die PTP-Schaltung leitet den Zählerwert an den Eingangszeitstempelgenerator 202 und den Ausgangszeitstempelgenerator 204 weiter, um die Zeitstempel mit der Netzwerkzeitleiste zu synchronisieren.The PTP circuit 208 includes a programmable oscillator 210 (e.g. a high-precision phase locked loop (PLL), a voltage controlled oscillator (VCO) or a combination of a PLL and a VCO) and a network time counter 212 that counts the oscillator cycles in nanoseconds and days. In one embodiment, the counter comprises 80 Bits. The PTP circuit forwards the counter value to the input time stamp generator 202 and the output timestamp generator 204 to synchronize the timestamps with the network timeline.

Die PTP-Client-Software ist für Folgendes konfiguriert:

  1. i. Kommunizieren von Paketen mit einem Peer-Netzwerkelement, das die Netzwerkzeitleiste umfasst;
  2. ii. Empfangen von Zeitstempeln von den Zeitstempelgeneratoren 202 und 204, die sich auf die genaue Eingangs- und Ausgangszeit der Pakete beziehen;
  3. iii. Berechnen der Oszillatorabweichung und entsprechendes Anpassen der programmierbaren Oszillatorfrequenz.
  4. iv. Messen/Berechnen der Ausbreitungsverzögerung;
  5. v. Berechnen der genauen Zeit und entsprechendes Einstellen des Zählers 212.
The PTP client software is configured to:
  1. i. Communicating packets with a peer network element comprising the network timeline;
  2. ii. Receiving timestamps from the timestamp generators 202 and 204 that focus on the Obtain precise arrival and departure times of parcels;
  3. iii. Calculate the oscillator deviation and adjust the programmable oscillator frequency accordingly.
  4. iv. Measuring / calculating the propagation delay;
  5. v. Calculate the exact time and set the counter accordingly 212 .

Um die PTP-Genauigkeit weiter zu erhöhen, kompensiert der Netzwerkadapter in Ausführungsformen interne Pipeline-Verzögerungen, wenn er die PTP-Zeitleiste verwendet. Dies kann erfolgen, indem die PTP-Zeit mit einer passenden Verzögerung durch eine Pipeline geleitet wird oder indem die Differenz der Pipeline-Verzögerung zum Zähler 212 addiert/subtrahiert wird.To further increase PTP accuracy, in embodiments the network adapter compensates for internal pipeline delays when using the PTP timeline. This can be done by passing the PTP time through a pipeline with an appropriate delay or by adding the difference in the pipeline delay to the counter 212 is added / subtracted.

Somit kann der Netzwerkadapter 102 gemäß der in 2 veranschaulichten beispielhaften Ausführungsform einen Zeitzähler mit einer entfernten Netzwerkzeitleiste synchronisiert halten.Thus, the network adapter 102 according to the in 2 The illustrated exemplary embodiment keeping a time counter synchronized with a remote network timeline.

Die Konfiguration der PTP-Unterstützungsschaltungen 200 , die in 2 gezeigt ist, ist eine beispielhafte Konfiguration, die nur aus Gründen der konzeptionellen Klarheit gezeigt wird. In alternativen Ausführungsformen können beliebige andere geeignete Konfigurationen verwendet werden. Der Netzwerkzeitzähler kann beispielsweise in anderen Auflösungen zählen oder in andere Felder unterteilt sein; die Gesamtheit oder ein Teil der Client-Softwarefunktionen kann in einer spezialisierten Schaltung implementiert sein (anstatt durch den Prozessor 102), der Zeitstempel, den der Eingangszeitstempelgenerator 202 erzeugt, kann mit dem entsprechenden eingehenden Paket verkettet werden (z. B. als Kopfzeilen) und die Frequenzabweichungsmessung und - einstellung kann in einen Grobteil und einen Feinteil aufgeteilt werden.The configuration of the PTP support circuits 200 , in the 2 is an exemplary configuration shown for conceptual clarity only. Any other suitable configurations may be used in alternative embodiments. The network time counter can, for example, count in other resolutions or be subdivided into other fields; all or part of the client software functions can be implemented in specialized circuitry (rather than by the processor 102 ), the timestamp that the input timestamp generator 202 generated, can be concatenated with the corresponding incoming packet (e.g. as headers) and the frequency deviation measurement and setting can be divided into a coarse part and a fine part.

3 ist ein Diagramm 300, das die Werte der PTP-Zähler gemäß einer Ausführungsform der vorliegenden Erfindung schematisch darstellt. Eine vertikale Zeitleiste 302 repräsentiert die Zeit am Netzwerkadapter („Slave“) und eine horizontale Zeitleiste 304 repräsentiert die Netzwerkzeitleiste („Master“). Ein 45-Grad-Diagramm 306 zeigt den Idealfall, bei dem der Slave-Taktgeber genau dem Master-Taktgeber folgt. Eine Kurve 308 stellt die Master-Slave-Beziehung dar, wenn keine Syntonisierung vorliegt - die Lücke zwischen dem Diagramm 306 und dem Diagramm 308 vergrößert sich kontinuierlich. Das Diagramm 310 repräsentiert die Master-Slave-Beziehung mit Synchronisation. Wie zu sehen ist, wird die Steigung des Diagramms 310 angepasst, wenn eine Abweichung erfasst wird; wenn die korrigierte Frequenz weiter abweicht, wird die Steigung wieder korrigiert, so dass eine gute Übereinstimmung erreicht wird. Wenn die Zeitabweichung gemessen wird, setzt der PTP-Client die PTP-Zeit nicht auf die Netzwerkzeit, die der PTP-Client berechnet (indem er die Ausbreitungsverzögerung von der empfangenen Netzwerkzeit abzieht), da solche Einstellungen eine Unstetigkeit in dem Diagramm 310 verursachen können; stattdessen wird die Steigung des Diagramms 310 modifiziert, so dass das Diagramm 310 das Diagramm 306 kreuzt. In alternativen Ausführungsformen kann der PTP-Client gelegentlich die Zeit einstellen. 3 is a diagram 300 , which schematically shows the values of the PTP counters according to an embodiment of the present invention. A vertical timeline 302 represents the time on the network adapter ("slave") and a horizontal timeline 304 represents the network timeline ("master"). A 45 degree diagram 306 shows the ideal case where the slave clock exactly follows the master clock. A curve 308 represents the master-slave relationship when there is no syntonization - the gap between the diagram 306 and the diagram 308 increases continuously. The diagram 310 represents the master-slave relationship with synchronization. As can be seen, the slope of the graph becomes 310 adjusted if a discrepancy is detected; if the corrected frequency deviates further, the slope is corrected again so that a good match is achieved. When the time deviation is measured, the PTP client does not set the PTP time to the network time that the PTP client calculates (by subtracting the propagation delay from the received network time) because such settings create a discontinuity in the diagram 310 can cause; instead it becomes the slope of the graph 310 modified so that the diagram 310 the diagram 306 crosses. In alternative embodiments, the PTP client may occasionally set the time.

4 ist ein Blockdiagramm, das schematisch die zeitbasierte Eingangspaketverarbeitung (auch als „Paketverarbeitungsschaltung“ bezeichnet) in einem Netzwerkadapter gemäß Ausführungsformen der vorliegenden Erfindung beschreibt. Die zeitbasierte Paketverarbeitung 118 (ebenfalls in 1 dargestellt) umfasst einen Eingangszeitstempelgenerator 202 (2), der dafür konfiguriert ist, genaue Zeitstempel zu erzeugen, wenn Pakete in den Netzwerkadapter eingegeben werden (entsprechend einer PTP-Zeiteingabe, die von der Netzwerkzeitschaltung erzeugt wird, die nicht gezeigt ist), einen Parser 404, der dafür konfiguriert ist, die Kopfzeilen der eingehenden Pakete zu extrahieren, eine Regelsuchmaschine 406; eine Suchtabelle 408 und eine Steuereinheit 416. 4th Figure 13 is a block diagram schematically describing time-based input packet processing (also referred to as “packet processing circuitry”) in a network adapter in accordance with embodiments of the present invention. The time-based packet processing 118 (also in 1 shown) includes an input timestamp generator 202 ( 2 ), which is configured to generate accurate timestamps when packets are entered into the network adapter (corresponding to a PTP time entry generated by the network timer, not shown), a parser 404 configured to extract the headers of incoming packets, a rule search engine 406 ; a look-up table 408 and a control unit 416 .

Die Suchtabelle 408 umfasst ein Zeitbereichsfeld 410, ein Kopfzeilenfeld 412 und ein Aktionsfeld 414. Jeder Eintrag der Suchtabelle 408 umfasst einen Zeitbereichseintrag, einen einzelnen Kopfzeileneintrag und einen einzelnen Aktionseintrag. Der Kopfzeileneintrag kann 1, 0 und X (gleichgültig) Bits umfassen. Das Zeitbereichsfeld kann beispielsweise eine Obergrenze und eine Untergrenze umfassen; und das Aktionsfeld umfasst Steuerinformationen für das Paket (und in einigen Ausführungsformen andere Aktionen, z. B. sicherheitsbezogen). In einigen Ausführungsformen wird die Tabelle 408 in einem ternären inhaltsadressierbaren Speicher (Ternary Content-Addressable memory, TCAM) gespeichert; in anderen Ausführungsformen wird die Tabelle unter Verwendung einer Hash-Funktion in einem Direktzugriffsspeicher (RAM) gespeichert; und in noch anderen Ausführungsformen wird die Tabelle 408 in einer Kombination aus RAM und TCAM gespeichert.The look-up table 408 includes a time range field 410 , a header field 412 and a field of action 414 . Each entry in the look-up table 408 includes a time range entry, a single header entry, and a single action entry. The header entry can contain 1, 0, and X (doesn't matter) bits. The time range field can include, for example, an upper limit and a lower limit; and the action field includes control information for the packet (and in some embodiments other actions, e.g., security related). In some embodiments, the table 408 is stored in a ternary content-addressable memory (TCAM); in other embodiments, the table is stored in random access memory (RAM) using a hash function; and in still other embodiments, table 408 is stored in a combination of RAM and TCAM.

Die Regelsuchmaschine 406 empfängt die Paketkopfzeile von dem Parser 404 und den Eingangszeitstempel von dem Eingangszeitstempelgenerator. Die Regelsuchmaschine kommuniziert mit der Regeltabelle 408 und sucht nach einer Übereinstimmung mit dem Zeitstempel und der Paketkopfzeile in der Tabelle. Die Regelsuchmaschine 406 kann eine endliche Zustandsmaschine, die in einem oder mehreren Taktzyklen nach einer Regelübereinstimmung sucht, oder eine Übereinstimmungsmaschine mit einem einzigen Zyklus umfassen.The rule search engine 406 receives the packet header from the parser 404 and the input timestamp from the input timestamp generator. The rule search engine communicates with the rule table 408 and looks for a match with the timestamp and packet header in the table. The rule search engine 406 can be a finite state machine that runs in one or more clock cycles after a Seek rules matching, or include a single cycle match engine.

Wenn die Regelsuchmaschine eine übereinstimmende Regel mit der Paketkopfzeile bzw. dem Zeitstempel findet, kann die Regelsuchmaschine Steuerinformationen für das Paket an die Steuereinheit 416 senden; wenn keine übereinstimmende Regel gefunden wird, kann die Regelsuchmaschine einen Verwerfungshinweis an die Steuereinheit senden, so dass ein Paket, das nicht im zugewiesenen Zeitschlitz empfangen wird, ignoriert wird. Wenn beispielsweise die Zeitschlitzzuweisung definiert, dass der Netzwerkadapter Pakete während eines vordefinierten Zeitschlitzes empfängt, kann die Regeltabelle 408 einen Eintrag, der einen zulässigen Zeitbereich entsprechend dem zugewiesenen Zeitschlitz definiert, und ein Aktionsfeld, das die Steuerungseinheit anweist, das Paket an eine vordefinierte virtuelle Maschine weiterzuleiten, umfassen.If the rule search engine finds a matching rule with the packet header or the time stamp, the rule search engine can send control information for the packet to the control unit 416 send; if no matching rule is found, the rule search engine can send a discard notice to the controller so that a packet that is not received in the assigned time slot is ignored. For example, if the time slot allocation defines that the network adapter receives packets during a predefined time slot, the rules table 408 an entry defining an allowable time range corresponding to the assigned time slot, and an action field instructing the control unit to forward the packet to a predefined virtual machine.

Die Steuereinheit 416 empfängt die eingehenden Pakete von dem Eingangs-Port und eine entsprechende Aktion von der Regelsuchmaschine 406 und führt die Aktion aus. Zum Beispiel kann die Steuereinheit 416 das Paket an eine von mehreren Ausgabewarteschlangen weiterleiten, wobei jede Ausgabewarteschlange einer separaten virtuellen Maschine zugeordnet ist. Wenn die durch den Zeitstempel angegebene Zeit nicht innerhalb des zugewiesenen Zeitschlitzes liegt, empfängt die Steuereinheit typischerweise eine Verwerfungsaktion für die Regelsuchmaschine und ignoriert das Paket; in einigen Ausführungsformen kann die Steuereinheit solche Pakete an eine Standardwarteschlange senden, die dafür konfiguriert ist, Nicht-TDM-Verkehr zu handhaben.The control unit 416 receives the incoming packets from the ingress port and takes appropriate action from the rule search engine 406 and performs the action. For example, the control unit 416 route the packet to one of multiple output queues, with each output queue associated with a separate virtual machine. If the time indicated by the timestamp is not within the assigned time slot, the control unit typically receives a discard action for the rule search engine and ignores the packet; in some embodiments, the controller can send such packets to a standard queue configured to handle non-TDM traffic.

In einigen Ausführungsformen kann die Paketsteuerungsoperation sequentiell sein und mehrere Zyklen verbrauchen, während denen verschiedene Teile der Paketkopfzeile geparst und nach verschiedenen Regeln gesucht wird. Zu diesem Zweck ist die Regelsuchmaschine 406 ferner dafür konfiguriert, den Parser 404 zu steuern, um verschiedene Kopfzeilenfelder in verschiedenen Zyklen zu parsen, und die Steuereinheit 406 ist ferner dafür konfiguriert, den Zugriff auf die Regeltabelle 408 zu steuern, um verschiedene Regeln an die Regelsuchmaschine zu senden.In some embodiments, the packet control operation may be sequential and consume multiple cycles during which different parts of the packet header are parsed and searched for different rules. This is the purpose of the rule search engine 406 also configured to use the parser 404 to control to parse different header fields in different cycles, and the control unit 406 is also configured to access the rules table 408 to control to send different rules to the rule search engine.

Somit empfängt gemäß der in 4 veranschaulichten beispielhaften Ausführungsform der Netzwerkadapter 102 TDMA-Kommunikation von dem Netzwerk; eine Regelsuchmaschine vergleicht den Zeitstempel, der generiert wird, wenn der Netzwerkadapter das Paket empfängt, mit einem Bereich, der dem zugewiesenen Zeitschlitz entspricht, und bestimmt eine geeignete Paketaktion - z. B. Ignorieren des Pakets, wenn der Zeitstempel nicht innerhalb des zugewiesenen Zeitschlitzes liegt, oder Steuern des Pakets an ein Ziel, das aus Feldern im Paketkopfzeilen abgeleitet wird.Thus, according to the in 4th illustrated exemplary embodiment of the network adapters 102 TDMA communication from the network; a rule search engine compares the timestamp generated when the network adapter receives the packet with a range corresponding to the assigned time slot and determines an appropriate packet action - e.g. B. Ignoring the packet if the timestamp is not within the assigned time slot, or directing the packet to a destination derived from fields in the packet headers.

Die Konfiguration der zeitbasierten Eingangspaketverarbeitung 118 , die in 4 gezeigt ist, ist eine beispielhafte Konfiguration, die nur aus Gründen der konzeptionellen Klarheit gezeigt wird. In alternativen Ausführungsformen können beliebige andere geeignete Konfigurationen verwendet werden. Zum Beispiel kann in einigen Ausführungsformen eine relative Zeit verwendet werden, um die Interaktionen mit dem Prozessor zu reduzieren: i) das Zeitbereichsfeld definiert eine relative Zeit gemessen von dem Beginn des TDMA-Zyklus; ii) der Netzwerkadapter umfasst ein TDMA-Startzeitregister, das die Netzwerkzeit des Starts des aktuellen TDMA-Zyklus speichert und in jedem TDMA-Zyklus um die Dauer des TDMA-Zyklus erhöht; und, iii) die Regelsuchmaschine subtrahiert den TDMA-Startzeitregisterwert von dem Zeitstempel und durchsucht die Regeltabelle mit der Differenz.The configuration of the time-based inbound packet processing 118 , in the 4th is an exemplary configuration shown for conceptual clarity only. Any other suitable configurations may be used in alternative embodiments. For example, in some embodiments, a relative time can be used to reduce interactions with the processor: i) the time domain field defines a relative time measured from the beginning of the TDMA cycle; ii) the network adapter comprises a TDMA start time register which stores the network time of the start of the current TDMA cycle and increases it in each TDMA cycle by the duration of the TDMA cycle; and, iii) the rule search engine subtracts the TDMA start time register value from the time stamp and searches the rule table with the difference.

In einer Ausführungsform umfasst der Netzwerkadapter separate Suchschaltungen für den Zeitstempel und für die Steuerregeln, die gleichzeitig oder seriell arbeiten können; in einer Ausführungsform werden die Suchen über eine Leitung geleitet.In one embodiment, the network adapter comprises separate search circuits for the time stamp and for the control rules, which can work simultaneously or serially; in one embodiment, searches are routed over a line.

In einigen Ausführungsformen kann der Netzwerkadapter zusätzlich oder alternativ Paketinhalte basierend auf der Ankunftszeit modifizieren.In some embodiments, the network adapter can additionally or alternatively modify packet contents based on the arrival time.

PAKETSTUFENSTEUERUNGPACKAGE LEVEL CONTROL

Aspekte von Paketstufensteuerungstechniken sind beispielsweise in der US-Patentanmeldung 16/430,457 beschrieben, eingereicht am 4. Juni 2019, die auf den Rechtsnachfolger der vorliegenden Patentanmeldung übertragen wurde und deren Offenbarung hier durch Bezugnahme aufgenommen wird. In einem typischen Paketstufensteuerungsmechanismus sendet eine Kreditzuweisungsschaltung mit einer Auflösung von Picosekunden Kredite, um Informationsbits an verschiedene Warteschlangen zu senden. Eine Warteschlange gibt ein anhängiges Paket nur dann aus, wenn die Anzahl der Kredite, die die Warteschlange hat, größer ist als die Gesamtzahl der Bits des anhängigen Pakets. Die Kreditzuweisungsschaltung sendet Kredite an die Warteschlangen gemäß den Bandbreiten, die den Warteschlangen zugewiesen sind, und gemäß der verstrichenen Zeit. Wenn beispielsweise die Kreditzuweisungsschaltung alle 10 Mikrosekunden aufgerufen wird und einer der Warteschlangen eine Bandbreite von 200 Mbit/s zugewiesen wird, wird die Kreditzuweisungsschaltung immer dann 2000 Kredite an die Warteschlange senden, wenn die Kreditzuweisungsschaltung aufgerufen wird.Aspects of packet level control techniques are, for example, in US Pat U.S. Patent Application 16 / 430,457 , filed June 4, 2019, assigned to the assignee of the present patent application, the disclosure of which is incorporated herein by reference. In a typical packet level control mechanism, a credit allocation circuit sends credits with picosecond resolution to send bits of information to various queues. A queue only issues a pending packet if the number of credits the queue has is greater than the total number of bits in the pending packet. The credit allocation circuit sends credits to the queues according to the bandwidths allocated to the queues and according to the elapsed time. For example, if the credit assignment circuit is called every 10 microseconds and one of the queues is assigned a bandwidth of 200 Mbps, the credit assignment circuit will send 2000 credits to the queue every time the credit assignment circuit is called.

In einer Ausführungsform ist die Kreditzuweisungsschaltung mit dem PTP-Takt des Netzwerkadapters gekoppelt und folgt somit eng dem Netzwerktaktgeber.In one embodiment, the credit allocation circuit is coupled to the PTP clock of the network adapter and thus closely follows the network clock.

Durch Senden von Dummy-Paketen mit gleichmäßigem Abstand und fester Dauer erzeugt der Netzwerkadapter gleichmäßig beabstandete Abschlusswarteschlangeneinträge (CQEs), die den Dummy-Paketen entsprechen und eindeutige Produzentenindizes (PIs) umfassen. Wenn der Prozessor beispielsweise 64-Byte-Dummy-Pakete mit einer kontinuierlich auf 128.000.000 Byte pro Sekunde angepassten Rate sendet, wird alle 500 Nanosekunden ein CQE generiert. Da jeder generierte CQE über einen entsprechenden PI verfügt, besteht eine Eins-zu-Eins-Entsprechung zwischen dem PI und der PTP-Zeit des Netzwerkadapters.By sending evenly spaced and fixed duration dummy packets, the network adapter creates equally spaced completion queue entries (CQEs) that correspond to the dummy packets and that include unique producer indexes (PIs). For example, if the processor sends 64-byte dummy packets at a rate that is continuously adjusted to 128,000,000 bytes per second, a CQE is generated every 500 nanoseconds. Since each generated CQE has a corresponding PI, there is a one-to-one correspondence between the PI and the PTP time of the network adapter.

5 ist ein Blockdiagramm, das die zeitlich abgestimmte Übertragung von Paketen von einem Netzwerkadapter gemäß Ausführungsformen der vorliegenden Erfindung schematisch darstellt. Die Warteschlange 120 für zeitgesteuertes Senden (1) umfasst Schreibwarteschlangeneintrags- (Write-Queue-Entry, WQE) Warteschlangen 122A bis 122D, eine Dummy-WQE 122E und Ratensteuereinheiten 124A bis 124E. Die Dummy-WQE 122E umfasst Dummy-Pakete, die nicht notwendigerweise von dem Netzwerkadapter ausgehen, sondern Abschlusswarteschlangeneinträge erzeugen, die an eine Dummy-CQE-Warteschlange 126 gesendet werden, die CQE-Einträge umfasst, wobei jeder CQE-Eintrag die Produzentenindex- (PI) Werte umfasst, die der Netzwerkadapter den Dummy-Paketen zuweist. Wie oben erläutert, sind die Länge der Dummy-Einträge und die gesteuerte Rate der Dummy-WQE 122E derart, dass Dummy-CQE-Einträge in gleichen Zeitintervallen erzeugt werden; da jedes CQE einen separaten PI umfasst, besteht eine Einszu-eins-Entsprechung zwischen dem PI und dem Zeitpunkt, zu dem die Dummy-Pakete den Netzwerkadapter verlassen würden (wie oben beschrieben, werden die Dummy-Pakete nicht an das Netzwerk gesendet). 5 Figure 13 is a block diagram schematically illustrating the timed transmission of packets from a network adapter in accordance with embodiments of the present invention. The queue 120 for time-controlled sending ( 1 ) includes Write-Queue-Entry (WQE) queues 122A until 122D , a dummy WQE 122E and rate controllers 124A until 124E . The dummy WQE 122E includes dummy packets that do not necessarily originate from the network adapter, but rather create completion queue entries that are sent to a dummy CQE queue 126 which includes CQE entries, each CQE entry including the producer index (PI) values that the network adapter assigns to the dummy packets. As explained above, the length of the dummy entries and the controlled rate are the dummy WQE 122E such that dummy CQE entries are generated at equal time intervals; since each CQE includes a separate PI, there is a one-to-one correspondence between the PI and when the dummy packets would leave the network adapter (as described above, the dummy packets are not sent to the network).

In den in 5 veranschaulichten beispielhaften Ausführungsformen umfasst jede WQE-Warteschlange 122A bis 122D zusätzlich zu den Warteschlangeneinträgen Wartebefehle, die die Warteschlange (oder genauer gesagt einen nicht angezeigten Selektor, der dafür konfiguriert ist, Einträge aus den WQE-Warteschlangen zu extrahieren und die entsprechenden Pakete zu senden), anweisen, zu warten, bis der aus der Dummy-CQE-Warteschlange extrahierte PI mit der Zeit des zugewiesenen Zeitschlitzes übereinstimmt. Die Wartebefehle können Zeitparameter oder einen PI-Wert umfassen.In the in 5 illustrated exemplary embodiments includes each WQE queue 122A until 122D in addition to the queue entries, commands that instruct the queue (or, more precisely, an undisplayed selector that is configured to extract entries from the WQE queues and send the appropriate packets) to wait until the one from the dummy PI extracted from the CQE queue matches the time of the assigned time slot. The wait commands can include time parameters or a PI value.

Der Zeitablauf 128 veranschaulicht den zeitlich festgelegten Austritt von Paketen von dem Netzwerkadapter. Gemäß der in 5 veranschaulichten beispielhaften Ausführungsform decken die dem Netzwerkelement 102 zugewiesenen Zeitschlitze den größten Teil des TDMA-Zyklus ab (wie offensichtlich ist, wird dies in typischen Ausführungsformen nicht der Fall sein). Der Netzwerkadapter sendet Pakete von WQE1 und WQE2 in ungeraden Zeitschlitzen und Pakete von WQE3 und WQE4 in geraden Zeitschlitzen. In einigen Ausführungsformen garantiert eine zusätzliche Schaltung der Warteschlange 120 für zeitgesteuertes Senden ferner, dass keine Pakete außerhalb des zugewiesenen Sendezeitschlitzes gesendet werden.The passage of time 128 illustrates the timed exit of packets from the network adapter. According to the in 5 The illustrated exemplary embodiment cover those of the network element 102 allocated time slots for most of the TDMA cycle (as will be apparent this will not be the case in typical embodiments). The network adapter sends packets from WQE1 and WQE2 in odd timeslots and packets from WQE3 and WQE4 in even timeslots. In some embodiments, additional switching guarantees the queue 120 for time-controlled transmission, furthermore, that no packets are sent outside the assigned transmission time slot.

Zusammenfassend umfasst die Warteschlange für zeitgesteuertes Senden des Netzwerkadapters 102 WQE-Warteschlangen zum Senden von Paketen über das Netzwerk, wobei die Warteschlangen WQE-Einträge und Warteeinträge umfassen. Eine zusätzliche Dummy-Paket-WQE-Warteschlange kann Dummy-Pakete mit gleichmäßigem Abstand senden und eine entsprechende CQE-Warteschlange mit gleichmäßigem Abstand, die PIs umfasst, empfangen. Die WQE-Warteschlangen senden die gespeicherten Pakete erst dann, wenn die Wartebefehle ausgeführt werden, d. h. bis ein PI empfangen wird, der der Zeit entspricht, die im Wartebefehl angegeben ist.In summary, the network adapter's scheduled send queue includes 102 WQE queues for sending packets over the network, where the queues include WQE entries and wait entries. An additional dummy packet WQE queue can send evenly spaced dummy packets and receive a corresponding equally spaced CQE queue comprising PIs. The WQE queues do not send the stored packets until the waiting commands are executed, that is, until a PI is received that corresponds to the time specified in the waiting command.

Es versteht sich, dass die Konfiguration der Warteschlange 120 für zeitgesteuertes Senden, die in 5 gezeigt ist, eine beispielhafte Konfiguration ist, die nur der konzeptionellen Klarheit halber gezeigt ist. In alternativen Ausführungsformen können beliebige andere geeignete Konfigurationen verwendet werden. Zum Beispiel sind in einigen Ausführungsformen die Wartebefehle nicht in WQE1 bis WQE4 eingebettet; vielmehr empfängt eine Schaltung in der Warteschlange für zeitgesteuertes Senden Warteparameter von dem Prozessor (einen pro Warteschlange oder einen für mehrere Warteschlangen), und deaktiviert die Ausgabe der entsprechenden Warteschlange, bis der Warteparameter mit dem PI übereinstimmt, den die Dummy-CQE ausgibt. Die Warteparameter können in Zeiteinheiten oder in PI-Einheiten angegeben werden; in einigen Ausführungsformen können eher inkrementelle als absolute PI- oder Zeitwerte verwendet werden. Die Anzahl der WQE-Warteschlangen kann variieren und einige oder alle Ratensteuereinheiten können aggregiert werden.It goes without saying that the configuration of the queue 120 for time-controlled sending, which are in 5 is an exemplary configuration shown for conceptual clarity only. Any other suitable configurations may be used in alternative embodiments. For example, in some embodiments the wait commands are not embedded in WQE1 through WQE4; rather, a circuit in the queue for timed send receives queue parameters from the processor (one per queue or one for multiple queues) and deactivates the output of the corresponding queue until the queue parameter matches the PI issued by the dummy CQE. The waiting parameters can be specified in time units or in PI units; in some embodiments, incremental rather than absolute PI or time values may be used. The number of WQE queues can vary and some or all of the rate controllers can be aggregated.

6 ist ein Blockdiagramm, das schematisch ein optisches Switching-System 600 gemäß einer Ausführungsform der vorliegenden Erfindung veranschaulicht. Das optische Switching-System kann beispielsweise ein Hochleistungsdatenzentrum sein, das mehrere Prozessoren umfasst, die durch ein schnelles optisches Switching-Netzwerk 602 miteinander verbunden sind. 6th Fig. 3 is a block diagram schematically showing an optical switching system 600 illustrated in accordance with an embodiment of the present invention. The optical switching system can be, for example, a high performance data center comprising multiple processors through a fast optical switching network 602 are connected to each other.

Typischerweise kann in optischen Switching-Netzwerken kein Routing basierend auf Paketkopfzeilen durchgeführt werden, da die Pakete im optischen Medium nicht analysiert werden (um optisch-elektrische Umwandlungs- und Verarbeitungsverzögerungen zu vermeiden). Stattdessen wird ein TDMA-Protokoll verwendet, und in jedem TDMA-Zeitschlitz stellt das optische Switching-Netzwerk optische Verbindungen von einem Satz von Eingangs-Ports zu einem Satz von Ausgangs-Ports her, z. B. baut es nach einem vordefinierten oder in Echtzeit berechneten Zeitplan im Zeitverlauf Leitungsverbindungen auf- und ab. (Dies unterscheidet sich von nicht-optischen Rechenzentrumsnetzwerken, die Paket-Switching statt Leitungs-Switching implementieren.)Typically, routing based on packet headers cannot be performed in optical switching networks because the packets are not analyzed in the optical medium (to avoid optical-to-electrical conversion and processing delays). Instead a TDMA protocol is used and in each TDMA time slot the optical switching network makes optical connections from a set of input ports to a set of output ports, e.g. B. it establishes and clears line connections over time according to a predefined or real-time calculated schedule. (This is different from non-optical data center networks that implement packet switching instead of line switching.)

Gemäß der in 6 veranschaulichten beispielhaften Ausführungsform umfasst das optische Switching-Netzwerk 602 mehrere optische Switches 604 (drei optische Switches 604A, 504B und 604C sind in der beispielhaften Ausführungsform von 6 dargestellt; jede andere geeignete Anzahl kann in alternativen Ausführungsformen verwendet werden). Die optischen Switches sind durch optische Verbindungen miteinander verbunden, die durch Paketdaten moduliertes Licht übertragen. Einige oder alle optischen Switches können auch an Prozessoren oder an zusätzliche optische Switching-Netzwerke gekoppelt sein.According to the in 6th The illustrated exemplary embodiment includes the optical switching network 602 multiple optical switches 604 (three optical switches 604A , 504B and 604C are in the exemplary embodiment of FIG 6th shown; any other suitable number may be used in alternative embodiments). The optical switches are interconnected by optical links that carry light modulated by packet data. Some or all of the optical switches can also be coupled to processors or additional optical switching networks.

Eine Steuereinheit 610 ist dafür konfiguriert, den optischen Switches und den gekoppelten Prozessoren Zeitschlitze gemäß einem voreingestellten Plan oder einem in Echtzeit berechneten Plan, der von einem Planer erzeugt wird, zuzuweisen; in einigen Ausführungsformen kann der Planer in die Steuereinheit eingebettet sein; in anderen Ausführungsformen befindet sich der Planer außerhalb der Steuereinheit, die sich in der Steuereinheit befinden kann oder nicht.A control unit 610 is configured to assign time slots to the optical switches and the coupled processors according to a preset schedule or a real-time calculated schedule generated by a scheduler; in some embodiments, the scheduler can be embedded in the control unit; in other embodiments, the scheduler is external to the control unit, which may or may not be in the control unit.

In der in 6 veranschaulichten beispielhaften Ausführungsform ist der optische Switch 604C über eine Optisch-Elektrisch-Schnittstelle 606 mit dem Eingangs-Port 112 des Netzwerkadapters 102 (1) und über eine Elektrisch-Optisch-Schnittstelle 608 mit dem Ausgangs-Port 114 gekoppelt. Der Prozessor 106 empfängt die Zuweisung von Eingangszeitschlitzen von der Steuereinheit 106 und stellt die zeitbasierte Paketsteuerung 118 ein, um Pakete an den zugewiesenen Zeitschlitzen zu empfangen (wie mit Bezug auf 4 beschrieben wurde). In ähnlicher Weise empfängt der Prozessor die Ausgangs-Zeitschlitzzuweisung von der Steuereinheit und stellt die zeitbasierte Warteschlange ein, um Pakete an den zugewiesenen Zeitschlitzen zu senden (wie mit Bezug auf 5 beschrieben).In the in 6th The exemplary embodiment illustrated is the optical switch 604C via an optical-electrical interface 606 with the input port 112 of the network adapter 102 ( 1 ) and via an electrical-optical interface 608 with the output port 114 coupled. The processor 106 receives the assignment of input timeslots from the control unit 106 and provides the time-based packet control 118 to receive packets at the assigned time slots (as with reference to FIG 4th has been described). Similarly, the processor receives the output timeslot assignment from the controller and sets the time-based queue to send packets on the assigned timeslots (as with reference to FIG 5 described).

Die in 6 gezeigte Konfiguration des optischen Switching-Systems 600 ist eine beispielhafte Konfiguration, die nur der konzeptionellen Klarheit halber gezeigt ist. In alternativen Ausführungsformen können beliebige andere geeignete Konfigurationen verwendet werden, einschließlich beispielsweise Systeme mit mehreren optischen Switching-Netzwerken und Hybridsysteme mit optischen und elektrischen Switching-Netzwerken. Die Steuereinheit 610 kann als ein Softwareprogramm implementiert sein, das auf einem Prozessor läuft (der zum Steuern des optischen Netzwerks bestimmt sein kann oder mit anderen Funktionen geteilt werden kann).In the 6th Configuration of the optical switching system shown 600 is an exemplary configuration shown for conceptual clarity only. In alternative embodiments, any other suitable configurations may be used, including, for example, systems with multiple optical switching networks and hybrid systems with optical and electrical switching networks. The control unit 610 can be implemented as a software program running on a processor (which can be dedicated to controlling the optical network or can be shared with other functions).

In einigen Ausführungsformen wird eine unidirektionale Kommunikation implementiert, der optische Switch 604C wird in zwei unidirektionale Switches aufgeteilt, wobei die Elektrisch-Optisch-Schnittstelle 608 mit einem optischen Ausgangs-Switch gekoppelt ist und die Optisch-Elektrisch-Schnittstelle 606 mit einem optischen Eingangs-Switch gekoppelt ist.In some embodiments, one-way communication is implemented, the optical switch 604C is divided into two unidirectional switches, with the electrical-optical interface 608 is coupled to an optical output switch and the optical-electrical interface 606 is coupled to an optical input switch.

In den obigen Beschreibungen wurden Techniken zum Implementieren von TDM- und TDMA-Netzwerken unter Verwendung von Netzwerkadaptern (oder im Allgemeinen Netzwerkelementen) offenbart; zwei Beispielanwendungen wurden demonstriert - eCPRI und optische Switching-Systeme. Es versteht sich, dass die offenbarten Techniken in keiner Weise auf eCPRI und optische Switching-Systeme beschränkt sind. In alternativen Ausführungsformen kann jede andere geeignete Anwendung verwendet werden, einschließlich beispielsweise Video-over-IP.In the above descriptions, techniques for implementing TDM and TDMA networks using network adapters (or, in general, network elements) have been disclosed; two sample applications were demonstrated - eCPRI and optical switching systems. It should be understood that the techniques disclosed are in no way limited to eCPRI and optical switching systems. In alternative embodiments, any other suitable application may be used, including, for example, video-over-IP.

Die verschiedenen Komponenten der hierin beschriebenen Netzwerkelemente, z. B. des Netzwerkadapters 102 (1 und 6), der PTP-Unterstützungsschaltungen 200 (2) und/oder der zeitbasierten Paketsteuerungseinheit 118 (4) können mit geeigneter Hardware realisiert werden, wie in einem oder mehreren anwendungsspezifischen integrierten Schaltkreisen (Application-Specific Integrated Circuits, ASICs) oder feldprogrammierbaren Gate-Arrays (Field-Programmable Gate Arrays, FPGAs), unter Verwendung von Software, unter Verwendung von Hardware oder unter Verwendung einer Kombination von Hardware- und Softwareelementen.The various components of the network elements described herein, e.g. B. the network adapter 102 ( 1 and 6th ), the PTP support circuits 200 ( 2 ) and / or the time-based packet control unit 118 ( 4th ) can be implemented with suitable hardware, such as in one or more application-specific integrated circuits (ASICs) or field-programmable gate arrays (FPGAs), using software, using hardware or using a combination of hardware and software elements.

In einigen Ausführungsformen umfasst der Prozessor 106 einen Allzweckprozessor, der in Software programmiert ist, um die hierin beschriebenen Funktionen auszuführen. Die Software kann zum Beispiel in elektronischer Form, über ein Netzwerk oder von einem Host auf den Prozessor heruntergeladen werden, oder kann alternativ oder zusätzlich bereitgestellt und/oder auf nichtflüchtigen materiellen Medien, wie einem magnetischen, optischen oder elektronischen Speicher, gespeichert werden.In some embodiments, the processor comprises 106 a general purpose processor programmed in software to perform the functions described herein. For example, the software can be downloaded to the processor in electronic form, over a network, or from a host, or can alternatively or additionally be provided and / or on non-volatile tangible material Media, such as magnetic, optical, or electronic storage.

Obwohl die hierin beschriebenen Ausführungsformen hauptsächlich Netzwerkadapter adressieren, können die hierin beschriebenen Verfahren und Systeme auch in anderen Anwendungen, wie beispielsweise in Netzwerkswitches, verwendet werden.Although the embodiments described herein primarily address network adapters, the methods and systems described herein can also be used in other applications, such as, for example, in network switches.

Es versteht sich daher, dass die oben beschriebenen Ausführungsformen beispielhaft angeführt sind und dass die vorliegende Erfindung nicht auf das beschränkt ist, was hierin oben besonders gezeigt und beschrieben wurde. Der Umfang der vorliegenden Erfindung umfasst vielmehr sowohl Kombinationen als auch Unterkombinationen der verschiedenen oben beschriebenen Merkmale sowie Variationen und Modifikationen davon, die Fachleuten beim Lesen der vorstehenden Beschreibung ersichtlich würden und die im Stand der Technik nicht offenbart sind. Dokumente, die durch Bezugnahme in die vorliegende Patentanmeldung aufgenommen werden, sind als integraler Bestandteil der Anmeldung zu betrachten, außer dass in dem Umfang, in dem Begriffe in diesen aufgenommenen Dokumenten in einer Weise definiert sind, die den in der vorliegenden Beschreibung explizit oder implizit gemachten Definitionen widerspricht, nur die Definitionen in der vorliegenden Spezifikation zu berücksichtigen sind.It is therefore to be understood that the embodiments described above are given by way of example and that the present invention is not limited to what has been particularly shown and described herein above. Rather, the scope of the present invention encompasses both combinations and sub-combinations of the various features described above, as well as variations and modifications thereof which would become apparent to those skilled in the art upon reading the above description and which are not disclosed in the prior art. Documents which are incorporated by reference into the present patent application are to be regarded as an integral part of the application, except that to the extent that terms in these incorporated documents are defined in a manner that is explicitly or implicitly made in the present description Definitions contradicts, only the definitions in the present specification are to be considered.

Es versteht sich, dass Aspekte und Ausführungsformen vorstehend lediglich beispielhaft beschrieben wurden und dass Detailänderungen innerhalb des Schutzumfangs der Ansprüche vorgenommen werden können.It goes without saying that aspects and embodiments have only been described above by way of example and that changes in details can be made within the scope of protection of the claims.

Jede Vorrichtung, jedes Verfahren und jedes Merkmal, die in der Beschreibung und (gegebenenfalls) den Ansprüchen und Zeichnungen offenbart sind, können unabhängig oder in jeder geeigneten Kombination bereitgestellt werden.Each apparatus, method, and feature disclosed in the description and claims and drawings (if any) may be provided independently or in any suitable combination.

In den Ansprüchen erscheinende Bezugszeichen dienen nur der Veranschaulichung und sollen den Umfang der Ansprüche nicht einschränken.Reference signs appearing in the claims are for illustrative purposes only and are not intended to limit the scope of the claims.

Die Offenbarung dieser Anmeldung umfasst auch die folgenden nummerierten Klauseln:

  1. 1. Netzwerkelement, das Folgendes umfasst:
    • einen oder mehrere Netzwerk-Ports, die dafür konfiguriert sind, mit einem Kommunikationsnetzwerk zu kommunizieren;
    • eine Netzwerkzeitschaltung, die dafür konfiguriert ist, eine in dem Kommunikationsnetzwerk definierte Netzwerkzeit zu verfolgen; und
    • eine Paketverarbeitungsschaltung, die für Folgendes konfiguriert ist:
      • Empfangen einer Definition von einem oder mehreren Zeitschlitzen, die mit der Netzwerkzeit synchronisiert sind; und
      • Senden ausgehender Pakete in Abhängigkeit von den Zeitschlitzen an das Kommunikationsnetzwerk.
  2. 2. Netzwerkelement nach Klausel 1, wobei der eine oder die mehreren Zeitschlitze mehrere Zeitschlitze umfassen, die dem Netzwerkelement in einem periodischen Zeitplan zugewiesen sind, der mit der Netzwerkzeit synchronisiert ist.
  3. 3. Netzwerkelement nach Klausel 1, wobei die Paketverarbeitungsschaltung dafür konfiguriert ist, die ausgehenden Pakete nur während des einen oder der mehreren Zeitschlitze zu senden.
  4. 4. Netzwerkelement nach Klausel 1, wobei die Paketverarbeitungsschaltung dafür konfiguriert ist, eine Reihe von Dummy-Paketen zu erzeugen, um Netzwerkzeiten entsprechend dem Austritt der Dummy-Pakete aufzuzeichnen, und die ausgehenden Pakete in Abhängigkeit von einem oder mehreren Zeitschlitzen und den aufgezeichneten Netzwerkzeiten an das Kommunikationsnetz zu senden.
  5. 5. Netzwerkelement nach Klausel 1, wobei die Netzwerk-Ports dafür konfiguriert sind, die ausgehenden Pakete an ein drahtloses Netzwerk zu senden, das im Zeitmultiplex-Mehrfachzugriff (TDMA) arbeitet.
  6. 6. Netzwerkelement nach Klausel 1, wobei die Netzwerk-Ports dafür konfiguriert sind, die ausgehenden Pakete an ein optisches Switching-Netzwerk zu senden, das im Zeitmultiplex-Mehrfachzugriff (TDMA) arbeitet.
  7. 7. Netzwerkelement nach Klausel 1, wobei die Paketverarbeitungsschaltung zusätzlich zum Senden der ausgehenden Pakete in Abhängigkeit von den Zeitschlitzen dafür konfiguriert ist, zusätzliche Pakete unabhängig von den Zeitschlitzen an das Kommunikationsnetz zu senden.
  8. 8. Netzwerkelement nach Klausel 1, wobei die ausgehenden Pakete Ethernet-Pakete oder Infiniband-Pakete umfassen.
  9. 9. Netzwerkelement, das Folgendes umfasst:
    • einen oder mehrere Netzwerk-Ports, die dafür konfiguriert sind, mit einem Kommunikationsnetzwerk zu kommunizieren;
    • eine Netzwerkzeitschaltung, die dafür konfiguriert ist, eine in dem Kommunikationsnetzwerk definierte Netzwerkzeit zu verfolgen; und
    • eine Paketverarbeitungsschaltung, die für Folgendes konfiguriert ist:
      • Empfangen einer Definition von einem oder mehreren Zeitschlitzen, die mit der Netzwerkzeit synchronisiert sind; und Verarbeiten eingehender Pakete, die von dem Kommunikationsnetz empfangen werden, abhängig von den Zeitschlitzen.
  10. 10. Netzwerkelement nach Klausel 1, wobei die Paketverarbeitungsschaltung dafür konfiguriert ist, ein eingehendes Paket nur dann zu verarbeiten, wenn eine Ankunftszeit des eingehenden Pakets während des einen oder der mehreren Zeitschlitze liegt.
  11. 11. Netzwerkelement, das Folgendes umfasst:
    • einen oder mehrere Netzwerk-Ports, die dafür konfiguriert sind, mit einem Kommunikationsnetzwerk zu kommunizieren;
    • eine Netzwerkzeitschaltung, die dafür konfiguriert ist, eine in dem Kommunikationsnetzwerk definierte Netzwerkzeit zu verfolgen; und
    • eine Paketverarbeitungsschaltung, die für Folgendes konfiguriert ist:
      • Einreihen ausgehender Pakete in eine oder mehrere Warteschlangen;
      • Zuweisen von Krediten zu den Warteschlangen abhängig von der Netzwerkzeit; und
      • Senden der ausgehenden Pakete gemäß den zugewiesenen Krediten an das Kommunikationsnetz.
  12. 12. Netzwerkelement, das Folgendes umfasst:
    • einen oder mehrere Netzwerk-Ports, die dafür konfiguriert sind, mit einem Kommunikationsnetzwerk zu kommunizieren;
    • eine Netzwerkzeitschaltung, die dafür konfiguriert ist, eine in dem Kommunikationsnetzwerk definierte Netzwerkzeit zu verfolgen; und
    • eine Paketverarbeitungsschaltung, die für Folgendes konfiguriert ist:
      • Einreihen ausgehender Pakete, die zur Übertragung an das Kommunikationsnetz anstehen, in die Warteschlange; und
      • Senden eines anstehenden ausgehenden Pakets synchron mit einem Ereignis, das gemäß der Netzwerkzeit definiert ist, an das Kommunikationsnetz.
  13. 13. Netzwerkelement, das Folgendes umfasst:
    • einen oder mehrere Netzwerk-Ports, die dafür konfiguriert sind, mit einem Kommunikationsnetzwerk zu kommunizieren;
    • eine Netzwerkzeitschaltung, die dafür konfiguriert ist, eine in dem Kommunikationsnetzwerk definierte Netzwerkzeit zu verfolgen; und
    • eine Paketverarbeitungsschaltung, die für Folgendes konfiguriert ist:
      • Senden ausgehender Pakete an das Kommunikationsnetz; und
      • Stoppen der Übertragung eines ausgehenden Pakets zu einer bestimmten Zeit in Übereinstimmung mit der Netzwerkzeit.
  14. 14. Netzwerkelement, das Folgendes umfasst:
    • einen oder mehrere Netzwerk-Ports, die dafür konfiguriert sind, mit einem Kommunikationsnetzwerk zu kommunizieren;
    • eine Netzwerkzeitschaltung, die dafür konfiguriert ist, eine in dem Kommunikationsnetzwerk definierte Netzwerkzeit zu verfolgen; und
    • eine Paketverarbeitungsschaltung, die für Folgendes konfiguriert ist:
      • Empfangen von eingehenden Paketen von dem Kommunikationsnetz;
      • Bestimmen von Ankunftszeiten der eingehenden Pakete gemäß der Netzwerkzeit; und
      • Verteilen der eingehenden Pakete basierend auf den Ankunftszeiten auf mehrere Warteschlangen.
The disclosure of this application also includes the following numbered clauses:
  1. 1. Network element comprising:
    • one or more network ports configured to communicate with a communication network;
    • a network timing circuit configured to keep track of a network time defined in the communication network; and
    • a packet processing circuit configured to:
      • Receiving a definition of one or more time slots that are synchronized with the network time; and
      • Sending outgoing packets to the communication network depending on the time slots.
  2. 2. The network element of clause 1, wherein the one or more time slots comprise a plurality of time slots assigned to the network element in a periodic schedule that is synchronized with the network time.
  3. 3. The network element of clause 1, wherein the packet processing circuit is configured to send the outgoing packets only during the one or more time slots.
  4. 4. The network element of Clause 1, wherein the packet processing circuit is configured to generate a series of dummy packets to record network times according to the exit of the dummy packets and the outgoing packets depending on one or more time slots and the recorded network times to send the communication network.
  5. 5. The network element of clause 1, wherein the network ports are configured to send the outgoing packets to a wireless network using time division multiple access (TDMA).
  6. 6. The network element of clause 1, wherein the network ports are configured to send the outgoing packets to an optical switching network employing time division multiple access (TDMA).
  7. 7. The network element of clause 1, wherein the packet processing circuit, in addition to sending the outgoing packets depending on the time slots, is configured to send additional packets to the communication network independently of the time slots.
  8. 8. The network element of clause 1, wherein the outbound packets comprise Ethernet packets or Infiniband packets.
  9. 9. Network element comprising:
    • one or more network ports configured to communicate with a communication network;
    • a network timing circuit configured to keep track of a network time defined in the communication network; and
    • a packet processing circuit configured to:
      • Receiving a definition of one or more time slots that are synchronized with the network time; and processing incoming packets received from the communication network depending on the time slots.
  10. 10. The network element of clause 1, wherein the packet processing circuitry is configured to process an incoming packet only if an arrival time of the incoming packet is during the one or more time slots.
  11. 11. Network element comprising:
    • one or more network ports configured to communicate with a communication network;
    • a network timing circuit configured to keep track of a network time defined in the communication network; and
    • a packet processing circuit configured to:
      • Putting outgoing packets on one or more queues;
      • Assigning credits to the queues based on the network time; and
      • Sending the outgoing packets to the communication network according to the allocated credits.
  12. 12. Network element comprising:
    • one or more network ports configured to communicate with a communication network;
    • a network timing circuit configured to keep track of a network time defined in the communication network; and
    • a packet processing circuit configured to:
      • Queuing outgoing packets pending transmission to the communications network; and
      • Sending a pending outgoing packet to the communication network in synchronization with an event that is defined according to the network time.
  13. 13. Network element comprising:
    • one or more network ports configured to communicate with a communication network;
    • a network timing circuit configured to keep track of a network time defined in the communication network; and
    • a packet processing circuit configured to:
      • Sending outgoing packets to the communication network; and
      • Stop the transmission of an outgoing packet at a specified time according to the network time.
  14. 14. Network element comprising:
    • one or more network ports configured to communicate with a communication network;
    • a network timing circuit configured to keep track of a network time defined in the communication network; and
    • a packet processing circuit configured to:
      • Receiving incoming packets from the communication network;
      • Determining arrival times of the incoming packets according to the network time; and
      • Distribute incoming packets to multiple queues based on arrival times.

ZITATE ENTHALTEN IN DER BESCHREIBUNGQUOTES INCLUDED IN THE DESCRIPTION

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.This list of the documents listed by the applicant was generated automatically and is included solely for the better information of the reader. The list is not part of the German patent or utility model application. The DPMA assumes no liability for any errors or omissions.

Zitierte PatentliteraturPatent literature cited

  • US 2019/0319730 [0003]US 2019/0319730 [0003]
  • US 16779611 [0038]US 16779611 [0038]
  • US 16782075 [0038, 0045]US 16782075 [0038, 0045]
  • US 16430457 [0075]US 16430457 [0075]

Zitierte Nicht-PatentliteraturNon-patent literature cited

  • Department of Computer Science and Engineering, University of California, San Diego, April 2012, Vattikonda et al. [0002]Department of Computer Science and Engineering, University of California, San Diego, April 2012, Vattikonda et al. [0002]
  • Society of Motion Picture and Television Engineers (SMPTE) 2110 [0022]Society of Motion Picture and Television Engineers (SMPTE) 2110 [0022]
  • „NEPHELE: an end-to-end scalable and dynamically reconfigurable optical architecture for application-aware SDN cloud datacenters“, IEEE Communications Magazine (Band: 56, Ausgabe: 2, Feb. 2018. DOI: 10.1109/MCOM.2018.1600804) [0023]"NEPHELE: an end-to-end scalable and dynamically reconfigurable optical architecture for application-aware SDN cloud datacenters", IEEE Communications Magazine (Volume: 56, Issue: 2, Feb. 2018. DOI: 10.1109 / MCOM.2018.1600804) [0023 ]

Claims (15)

Netzwerkelement, das Folgendes umfasst: einen oder mehrere Netzwerk-Ports, die dafür konfiguriert sind, mit einem Kommunikationsnetzwerk zu kommunizieren; eine Netzwerkzeitschaltung, die dafür konfiguriert ist, eine in dem Kommunikationsnetzwerk definierte Netzwerkzeit zu verfolgen; und eine Paketverarbeitungsschaltung, die für Folgendes konfiguriert ist: Empfangen einer Definition von einem oder mehreren Zeitschlitzen, die mit der Netzwerkzeit synchronisiert sind; und Senden ausgehender Pakete in Abhängigkeit von den Zeitschlitzen an das Kommunikationsnetzwerk.Network element comprising: one or more network ports configured to communicate with a communication network; a network timing circuit configured to keep track of a network time defined in the communication network; and a packet processing circuit configured to: Receiving a definition of one or more time slots that are synchronized with the network time; and Sending outgoing packets to the communication network depending on the time slots. Netzwerkelement nach Anspruch 1, wobei der eine oder die mehreren Zeitschlitze mehrere Zeitschlitze umfassen, die dem Netzwerkelement in einem periodischen Zeitplan zugewiesen sind, der mit der Netzwerkzeit synchronisiert ist.Network element after Claim 1 wherein the one or more time slots comprise a plurality of time slots assigned to the network element in a periodic schedule that is synchronized with the network time. Netzwerkelement nach Anspruch 1 oder 2, wobei die Paketverarbeitungsschaltung dafür konfiguriert ist, die ausgehenden Pakete nur während des einen oder der mehreren Zeitschlitze zu senden.Network element after Claim 1 or 2 wherein the packet processing circuit is configured to send the outgoing packets only during the one or more time slots. Netzwerkelement nach einem vorhergehenden der Ansprüche, wobei die Paketverarbeitungsschaltung dafür konfiguriert ist, eine Reihe von Dummy-Paketen zu erzeugen, um Netzwerkzeiten entsprechend dem Austritt der Dummy-Pakete aufzuzeichnen, und die ausgehenden Pakete in Abhängigkeit von einem oder mehreren Zeitschlitzen und den aufgezeichneten Netzwerkzeiten an das Kommunikationsnetz zu senden.A network element according to any preceding claim, wherein the packet processing circuit is configured to generate a series of dummy packets to record network times corresponding to the exit of the dummy packets, and the outgoing packets depending on one or more time slots and the recorded network times to send the communication network. Netzwerkelement nach einem vorhergehenden der Ansprüche, wobei die Netzwerk-Ports dafür konfiguriert sind, die ausgehenden Pakete an ein drahtloses Netzwerk zu senden, das im Zeitmultiplex-Mehrfachzugriff (TDMA) arbeitet.A network element as claimed in any preceding claim, wherein the network ports are configured to send the outgoing packets to a wireless network using time division multiple access (TDMA). Netzwerkelement nach einem der Ansprüche 1 bis 4, wobei die Netzwerk-Ports dafür konfiguriert sind, die ausgehenden Pakete an ein optisches Switching-Netzwerk zu senden, das im Zeitmultiplex-Mehrfachzugriff (TDMA) arbeitet.Network element according to one of the Claims 1 until 4th wherein the network ports are configured to send the outgoing packets to an optical switching network that uses time division multiple access (TDMA). Netzwerkelement nach einem vorhergehenden der Ansprüche, wobei die Paketverarbeitungsschaltung zusätzlich zum Senden der ausgehenden Pakete in Abhängigkeit von den Zeitschlitzen dafür konfiguriert ist, zusätzliche Pakete unabhängig von den Zeitschlitzen an das Kommunikationsnetz zu senden.Network element according to one of the preceding claims, wherein the packet processing circuit, in addition to sending the outgoing packets as a function of the time slots, is configured to send additional packets to the communication network independently of the time slots. Netzwerkelement nach einem vorhergehenden der Ansprüche, wobei die ausgehenden Pakete Ethernet-Pakete oder Infiniband-Pakete umfassen.Network element according to one of the preceding claims, wherein the outgoing packets comprise Ethernet packets or Infiniband packets. Netzwerkelement nach einem vorhergehenden der Ansprüche, wobei die Verarbeitungsschaltung ferner für Folgendes konfiguriert ist: Einreihen ausgehender Pakete in eine oder mehrere Warteschlangen; Zuweisen von Krediten zu den Warteschlangen abhängig von der Netzwerkzeit; und Senden der ausgehenden Pakete gemäß den zugewiesenen Krediten an das Kommunikationsnetz.The network element of any preceding claim, wherein the processing circuitry is further configured to: Putting outgoing packets on one or more queues; Assigning credits to the queues based on the network time; and Sending the outgoing packets to the communication network according to the allocated credits. Netzwerkelement nach einem vorhergehenden der Ansprüche, wobei die Verarbeitungsschaltung ferner für Folgendes konfiguriert ist: Einreihen ausgehender Pakete, die zur Übertragung an das Kommunikationsnetz anstehen, in die Warteschlange; und Senden eines anstehenden ausgehenden Pakets synchron mit einem Ereignis, das gemäß der Netzwerkzeit definiert ist, an das Kommunikationsnetz.The network element of any preceding claim, wherein the processing circuitry is further configured to: Queuing outgoing packets pending transmission to the communications network; and Sending a pending outgoing packet to the communication network in synchronization with an event that is defined according to the network time. Netzwerkelement nach einem vorhergehenden der Ansprüche, wobei die Verarbeitungsschaltung ferner für Folgendes konfiguriert ist: Senden ausgehender Pakete an das Kommunikationsnetz; und Stoppen der Übertragung eines ausgehenden Pakets zu einer bestimmten Zeit in Übereinstimmung mit der Netzwerkzeit.The network element of any preceding claim, wherein the processing circuitry is further configured to: Sending outgoing packets to the communication network; and Stop the transmission of an outgoing packet at a specified time according to the network time. Netzwerkelement, das Folgendes umfasst: einen oder mehrere Netzwerk-Ports, die dafür konfiguriert sind, mit einem Kommunikationsnetzwerk zu kommunizieren; eine Netzwerkzeitschaltung, die dafür konfiguriert ist, eine in dem Kommunikationsnetzwerk definierte Netzwerkzeit zu verfolgen; und eine Paketverarbeitungsschaltung, die für Folgendes konfiguriert ist: Empfangen einer Definition von einem oder mehreren Zeitschlitzen, die mit der Netzwerkzeit synchronisiert sind; und Verarbeiten eingehender Pakete, die von dem Kommunikationsnetz empfangen werden, abhängig von den Zeitschlitzen.Network element comprising: one or more network ports configured to communicate with a communication network; a network timing circuit configured to keep track of a network time defined in the communication network; and a packet processing circuit configured to: Receiving a definition of one or more time slots that are synchronized with the network time; and Processing incoming packets received from the communication network depending on the time slots. Netzwerkelement nach Anspruch 12, wobei die Paketverarbeitungsschaltung dafür konfiguriert ist, ein eingehendes Paket nur dann zu verarbeiten, wenn eine Ankunftszeit des eingehenden Pakets während des einen oder der mehreren Zeitschlitze liegt.Network element after Claim 12 wherein the packet processing circuit is configured to process an incoming packet only when an arrival time of the incoming packet is during the one or more time slots. Netzwerkelement nach Anspruch 12 oder 13, wobei die Verarbeitungsschaltung ferner für Folgendes konfiguriert ist: Bestimmen von Ankunftszeiten der eingehenden Pakete gemäß der Netzwerkzeit; und Verteilen der eingehenden Pakete basierend auf den Ankunftszeiten auf mehrere Warteschlangen.Network element after Claim 12 or 13th wherein the processing circuit is further configured to: determine arrival times of the incoming packets according to the network time; and distributing the incoming packets to multiple queues based on the arrival times. Verfahren, das Folgendes umfasst: Verfolgen einer Netzwerkzeit, die in einem Kommunikationsnetzwerk definiert ist, in einer Netzwerkzeitschaltung; Empfangen einer Definition von einem oder mehreren Zeitschlitzen, die mit der Netzwerkzeit des Kommunikationsnetzwerks synchronisiert sind, an einer Paketverarbeitungsschaltung; und mindestens eines von: Senden ausgehender Pakete an das Kommunikationsnetz durch die Paketverarbeitungsschaltung in Abhängigkeit von den Zeitschlitzen; und Verarbeiten von eingehenden Paketen, die von dem Kommunikationsnetz empfangen werden, durch die Paketverarbeitungsschaltung in Abhängigkeit von den Zeitschlitzen.A method comprising: keeping a network time defined in a communication network in a network timing circuit; Receiving at a packet processing circuit a definition of one or more time slots synchronized with the network time of the communication network; and at least one of: the packet processing circuit sending outgoing packets to the communication network in dependence on the time slots; and processing incoming packets received from the communication network by the packet processing circuit depending on the time slots.
DE102021202661.3A 2020-03-18 2021-03-18 TDMA NETWORK WITH COMMODITY NIC / SWITCH Pending DE102021202661A1 (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
GR20200100141 2020-03-18
GR20200100141 2020-03-18
US16/921,993 US11476928B2 (en) 2020-03-18 2020-07-07 TDMA networking using commodity NIC/switch
US16/921,993 2020-07-07

Publications (1)

Publication Number Publication Date
DE102021202661A1 true DE102021202661A1 (en) 2021-09-23

Family

ID=77552818

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102021202661.3A Pending DE102021202661A1 (en) 2020-03-18 2021-03-18 TDMA NETWORK WITH COMMODITY NIC / SWITCH

Country Status (1)

Country Link
DE (1) DE102021202661A1 (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190319730A1 (en) 2019-06-25 2019-10-17 Intel Corporation Techniques to operate a time division mulitplexing(tdm) media access control (mac)

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190319730A1 (en) 2019-06-25 2019-10-17 Intel Corporation Techniques to operate a time division mulitplexing(tdm) media access control (mac)

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
„NEPHELE: an end-to-end scalable and dynamically reconfigurable optical architecture for application-aware SDN cloud datacenters", IEEE Communications Magazine (Band: 56, Ausgabe: 2, Feb. 2018. DOI: 10.1109/MCOM.2018.1600804)
Department of Computer Science and Engineering, University of California, San Diego, April 2012, Vattikonda et al.
Society of Motion Picture and Television Engineers (SMPTE) 2110

Similar Documents

Publication Publication Date Title
CN113497803B (en) Network element for TDMA networking using commodity NIC/switch
DE69533579T2 (en) Synchronization in a data communication network
EP1825620B1 (en) Synchronization module
DE602004013389T2 (en) Clock synchronization over a packet network
AT515452B1 (en) Time synchronization in a satellite network
DE60216647T2 (en) Method and system for generating a time difference with respect to the minislot clock and counter in headend devices
CN102484548B (en) Device, network component and method for periodic timestamp transmission
RU2598034C2 (en) Distribution of clock synchronization in optical communication network
DE102007044470A1 (en) Mechanism to make a delay of network elements transparent to IEEE 1588 protocols
CN111385048A (en) A time synchronization method and system
DE112018005252T5 (en) SYSTEM AND METHOD FOR CLASSIFYING AND STAMPING PACKAGES
DE112020006616T5 (en) SYSTEMS AND METHODS FOR TRANSPORTING CONSTANT BIT RATE CLIENT SIGNALS OVER A PACKET DATA NETWORK
EP1280373B1 (en) Networkelement for optical transport network signals
WO2018166576A1 (en) Method and device for time-controlled data transmission in a tsn
DE60221178T2 (en) Method and device for integrating Fast Ethernet packets into SONET containers via a radio system
CN106464606A (en) System and method for preventing frame transmission in a network device
DE102019219475B4 (en) Method for optimizing the time synchronization between network devices connected via a communication network
DE102006012466A1 (en) Systems and methods for synchronizing a time across networks
CN105959076A (en) Device and method for making passive optical network possess ability of supporting time synchronization
EP0408130B1 (en) Device for adapting the bit rate of two signals
DE112022001592T5 (en) SYSTEM AND METHOD FOR PERFORMING RATE ADAPTATION OF CONSTANT BIT RATE (CBR) CLIENT DATA WITH A VARIABLE NUMBER OF BLANKS FOR TRANSMISSION OVER A METRO TRANSPORT NETWORK (MTN)
WO2016155828A1 (en) A network node
EP1794910B1 (en) Overhead processing and generation techniques
EP0777351B1 (en) Synchronous digital transmission system
Ahmed et al. A survey on high-precision time synchronization techniques for optical datacenter networks and a zero-overhead microsecond-accuracy solution

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: H04L0012520000

Ipc: H04L0012841000

R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: H04L0012841000

Ipc: H04L0047280000