CN115086238B - TSN network port output scheduling device - Google Patents

TSN network port output scheduling device Download PDF

Info

Publication number
CN115086238B
CN115086238B CN202211010674.0A CN202211010674A CN115086238B CN 115086238 B CN115086238 B CN 115086238B CN 202211010674 A CN202211010674 A CN 202211010674A CN 115086238 B CN115086238 B CN 115086238B
Authority
CN
China
Prior art keywords
scheduling
module
packet
submodule
enqueue
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.)
Active
Application number
CN202211010674.0A
Other languages
Chinese (zh)
Other versions
CN115086238A (en
Inventor
全巍
孙志刚
彭***
吴茂文
黄容
李韬
吕高锋
杨惠
刘汝霖
李存禄
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.)
National University of Defense Technology
Original Assignee
National University of Defense Technology
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by National University of Defense Technology filed Critical National University of Defense Technology
Priority to CN202211010674.0A priority Critical patent/CN115086238B/en
Publication of CN115086238A publication Critical patent/CN115086238A/en
Application granted granted Critical
Publication of CN115086238B publication Critical patent/CN115086238B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/215Flow control; Congestion control using token-bucket
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/625Queue scheduling characterised by scheduling criteria for service slots or service orders
    • H04L47/6275Queue scheduling characterised by scheduling criteria for service slots or service orders based on priority
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/72Admission control; Resource allocation using reservation actions during connection setup

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

The invention discloses a TSN network port output scheduling device, which comprises: the device comprises a port scheduling module and a packet centralized cache module; the packet centralized caching module is connected with the port scheduling module and is used for caching packets for the port scheduling module; the port scheduling module comprises an enqueue control module, a queue management module, a packet descriptor buffer module and a dequeue scheduling module; the enqueue control module is connected with the queue management module; the queue management module is respectively connected with the packet descriptor caching module and the dequeuing scheduling module; the packet descriptor buffer module is used for storing parameters required by scheduling. The device has simple structure, safety, effectiveness, reliability and simple and convenient operation, and can effectively improve the expansibility of TSN port scheduling.

Description

TSN network port output scheduling device
Technical Field
The invention relates to the technical field of TSN network scheduling, in particular to a TSN network port output scheduling device.
Background
The Time Sensitive Network (TSN) technology enhances the real-Time and fault-tolerant aspects of the conventional ethernet by introducing functions of Time synchronization, deterministic packet forwarding, frame replication and elimination and the like on the basis of the standard ethernet, aims to provide deterministic and reliable services for Time Sensitive traffic, and has good application prospects in the fields of aerospace, 5G, high-end equipment manufacturing and the like.
There are three typical traffic types in a time sensitive network, namely time sensitive traffic with hard real-time requirements (ST stream), audio video type traffic with soft real-time requirements (AVB stream), and best effort traffic without real-time requirements (BE stream). The time-sensitive traffic is a periodic traffic which needs to meet the requirements of low delay and low jitter, and the traffic is the key for ensuring the real-time performance and the certainty of the time-sensitive network. Thus, time sensitive traffic is typically set to the highest priority in a TSN network, with the lowest priority of audio-video traffic having soft real-time requirements and best-effort traffic having no requirements for real-time. The service level can be distinguished by further prioritizing among the traffic. In order to guarantee real-time performance and certainty of time-sensitive traffic, on-chip storage resources are needed to cache packet data and packet descriptors of the traffic.
As the number of time-sensitive flows in various real-time application scenarios increases, for example, in a vehicle-mounted network, the number of time-sensitive flows in the network increases exponentially as the number of sensors on the vehicle increases exponentially. The increase of the flow number directly causes that on-chip storage resources become a bottleneck restricting the design of a time-sensitive network switching chip, and especially under the condition that chip resources are limited in an embedded application scene, the traditional distributed packet caching and scheduling method based on the port priority queue obviously wastes the limited on-chip storage resources greatly and is not beneficial to the expansion of TSN output scheduling capability.
The existing TSN switch usually uses a centralized packet buffer to implement sharing of multiple output processing modules, so as to improve the utilization rate of buffer resources, but its output scheduling still uses a mode of priority queues proposed by the standard, i.e. a buffer queue is separately set for each priority to buffer packet descriptors. In order to support the extreme switching processing situation, the depth required to be set by each priority queue is consistent with the number of packets which can be stored in the centralized buffer, so that a large amount of waste is still stored in the packet descriptor buffer of each port, and the expandability of TSN output scheduling is limited.
Therefore, it is an urgent problem to be solved by those skilled in the art to provide a highly scalable TSN network port output scheduler based on a shared buffer.
Disclosure of Invention
The invention aims to provide a TSN network port output scheduling device which is simple in structure, safe, effective, reliable and simple and convenient to operate and can effectively improve the expansibility of TSN port scheduling.
Based on the above purposes, the technical scheme provided by the invention is as follows:
a TSN network port output scheduler comprising: the device comprises a port scheduling module and a packet centralized cache module;
the packet centralized caching module is connected with the port scheduling module and is used for caching packets for the port scheduling module;
the port scheduling module comprises an enqueue control module, a queue management module, a packet descriptor caching module and an dequeue scheduling module;
the enqueue control module is connected with the queue management module;
the queue management module is respectively connected with the packet descriptor caching module and the dequeuing scheduling module;
the packet descriptor caching module is used for storing parameters required by scheduling.
Preferably, the method further comprises the following steps: the device comprises an input processing module and an output processing module;
the input processing module is connected with the enqueue control module and is used for inputting a packet descriptor to the enqueue control module;
the output processing module is respectively connected with the dequeue scheduling module and the packet centralized cache module.
Preferably, the packet descriptor includes: information required for packet scheduling;
the information required for packet scheduling includes: flow ID to which the packet belongs, packet centralized buffer ID, packet enqueue priority, packet enqueue flow gating ID, packet token bucket ID, packet arrival port time, and packet length.
Preferably, the method further comprises the following steps:
the packet descriptor caching module is used for storing the next packet centralized cache ID, the packet token bucket ID and the packet length;
the packet descriptor caching module and the packet centralized caching module have the same number of stored packets, and the packet descriptor caching module and the packet centralized caching module are in one-to-one correspondence.
Preferably, the enqueuing control module comprises: an ST enqueue control submodule, an AVB enqueue control submodule and a BE enqueue control submodule;
the ST enqueue control submodule, the AVB enqueue control submodule and the BE enqueue control submodule are all connected with the input processing module and are all used for processing the data with the grouping descriptors according to a preset rule.
Preferably, the enqueue control module further comprises: an enqueue gating table;
the ST enqueue control sub-module, the AVB enqueue control sub-module and the BE enqueue control sub-module are all connected with the queue management module;
the ST enqueue control submodule is used for searching the enqueue gate table according to the grouping enqueue flow gate control ID and the current scheduling time slot in the grouping descriptor, and judging whether to send ST grouping data to the queue management module to be stored according to the grouping enqueue priority according to a feedback result;
the AVB enqueue control submodule is used for directly sending AVB grouped data to the queue management module to be stored according to the grouped enqueue priority;
the BE enqueue control submodule is used for directly sending BE grouped data to the queue management module to BE stored according to the grouping enqueue priority.
Preferably, the queue management module includes: a plurality of grouped centralized buffer ID register pairs;
each group concentrated buffer ID register pair corresponds to each priority queue one by one;
and the group concentrated buffer ID register is used for identifying a head group concentrated buffer ID and a tail group concentrated buffer ID of a corresponding priority queue, and updating the group descriptor buffer module according to the group concentrated buffer ID, the group token bucket ID, the group length and the tail group buffer ID.
Preferably, the dequeue scheduling module includes: a dequeue gate control table, a token bucket information table and a polling scheduling submodule;
and the polling scheduling submodule is used for polling and scheduling the packet descriptors in each priority queue according to the idle information fed back by the output processing module, the states of a plurality of packet centralized cache ID register pairs in the queue management module, the dequeuing gate control table and the token bucket information table.
Preferably, the polling scheduling sub-module includes: the system comprises an ST scheduling sub-module, an AVB scheduling sub-module, a BE scheduling sub-module and a scheduling control sub-module;
the scheduling control submodule is respectively connected with the ST scheduling submodule, the AVB scheduling submodule and the BE scheduling submodule;
the scheduling control submodule is used for calling the ST scheduling submodule in an idle state and entering an ST scheduling state;
the ST scheduling submodule is used for executing ST scheduling after entering an ST state;
the scheduling control submodule is also used for calling the AVB scheduling submodule to enter an AVB scheduling state when a first preset condition is met;
the AVB scheduling submodule is used for executing AVB scheduling after entering an AVB scheduling state;
the scheduling control sub-module is also used for calling the BE scheduling sub-module when a second preset condition is met and entering a BE scheduling state;
and the BE scheduling sub-module is used for executing BE scheduling after entering a BE scheduling state.
Preferably, the method further comprises the following steps: and the output processing module is used for acquiring corresponding packet data output from the packet centralized buffer module according to the packet centralized buffer ID in the dequeue scheduling module and feeding back idle information to the dequeue scheduling module after the output is finished.
The TSN network port output scheduling device provided by the invention is provided with a port scheduling module and a packet centralized cache module; the packet scheduling module is provided with an enqueue control module, a queue management module, a packet descriptor buffer module and a dequeue scheduling module; the enqueue control module is connected with the queue management module, and the queue management module is respectively connected with the packet descriptor buffer module and the dequeue scheduling module, wherein the packet descriptor buffer module is used for storing parameters required by scheduling. In the working process, through the packet descriptors input to the enqueue control module, namely control information required by packet scheduling, the enqueue control module carries out distinguishing processing according to the packet enqueue priority in the packet descriptors, then the packet descriptors allowed to be enqueued and scheduled are input to the queue management module, the queue management module inputs the packet descriptors into the packet descriptor cache module, and the packet descriptor cache module stores parameters required by scheduling; the queue management module updates the parameters required by scheduling in the packet descriptor caching module and inputs the parameters required by scheduling into the dequeue scheduling module; and the dequeue scheduling module adopts different scheduling methods for the packet descriptors with different priorities according to parameters required by scheduling so as to ensure the real-time performance and the certainty of TSN scheduling and improve the utilization rate of network bandwidth. The set packet descriptor buffer module is a single unordered buffer queue, so that the sharing of multi-priority queue storage resources can be realized, a large amount of port priority queue resources can be saved, and the expandability of the output scheduling capability of the TSN port is improved.
Drawings
In order to more clearly illustrate the embodiments of the present application or the technical solutions in the prior art, the drawings used in the description of the embodiments or the prior art will be briefly described below, it is obvious that the drawings in the following description are only some embodiments of the present application, and for those skilled in the art, other drawings can be obtained according to the drawings without creative efforts.
Fig. 1 is a schematic structural diagram of a port output scheduling apparatus of a TSN network according to an embodiment of the present invention;
fig. 2 is a schematic structural diagram of a TSN network port output scheduling device according to an embodiment of the present invention;
fig. 3 is a schematic diagram of an operating state of a polling scheduling sub-module according to an embodiment of the present invention.
Detailed Description
The technical solutions in the embodiments of the present invention will be clearly and completely described below with reference to the drawings in the embodiments of the present invention, and it is obvious that the described embodiments are only a part of the embodiments of the present invention, and not all of the embodiments. All other embodiments, which can be derived by a person skilled in the art from the embodiments given herein without making any creative effort, shall fall within the protection scope of the present invention.
Embodiments of the present invention are written in a progressive manner.
The embodiment of the invention provides a TSN network port output scheduling device. The technical problem that port scheduling capability expandability is low due to port independent priority queue scheduling adopted by an existing TSN switch in the prior art is mainly solved.
A TSN network port output scheduler comprising: the device comprises a port scheduling module and a packet centralized cache module;
the packet centralized caching module is connected with the port scheduling module and is used for caching packets for the port scheduling module;
the port scheduling module comprises an enqueue control module, a queue management module, a packet descriptor buffer module and a dequeue scheduling module;
the enqueue control module is connected with the queue management module;
the queue management module is respectively connected with the packet descriptor caching module and the dequeuing scheduling module;
the packet descriptor buffer module is used for storing parameters required by scheduling.
The TSN network port output scheduling device provided by the invention is provided with a port scheduling module and a packet centralized cache module; the packet scheduling module is provided with an enqueue control module, a queue management module, a packet descriptor buffer module and a dequeue scheduling module; the enqueue control module is connected with the queue management module, and the queue management module is respectively connected with the packet descriptor caching module and the dequeue scheduling module, wherein the packet descriptor caching module is used for storing parameters required by scheduling. In the working process, through the packet descriptors input to the enqueue control module, namely control information required by packet scheduling, the enqueue control module carries out distinguishing processing according to the packet enqueue priority in the packet descriptors, then the packet descriptors allowed to be enqueued and scheduled are input to the queue management module, the queue management module inputs the packet descriptors into the packet descriptor cache module, and the packet descriptor cache module stores parameters required by scheduling; the queue management module updates parameters required by scheduling in the packet descriptor cache module and inputs the parameters required by scheduling into the dequeue scheduling module; and the dequeue scheduling module adopts different scheduling methods for the packet descriptors with different priorities according to parameters required by scheduling so as to ensure the real-time performance and the certainty of TSN scheduling and improve the utilization rate of network bandwidth. The set packet descriptor buffer module is a single unordered buffer queue, so that the sharing of multi-priority queue storage resources can be realized, a large amount of port priority queue resources can be saved, and the expandability of the output scheduling capability of the TSN port is improved.
Preferably, the method further comprises the following steps: the device comprises an input processing module and an output processing module;
the input processing module is connected with the enqueue control module and is used for inputting the packet descriptor to the enqueue control module;
the output processing module is respectively connected with the dequeue scheduling module and the packet centralized cache module.
In the actual application process, an input processing module and an output processing module are also arranged, the input processing module is connected with the enqueue control module, and a packet descriptor for recording input packet scheduling related control information is input into the enqueue control module from a packet received from a network interface through the input processing module (the packet is cached in a packet centralized cache corresponding to a packet centralized cache ID in the packet descriptor); the output processing module is connected with the dequeue scheduling module and the packet centralized buffer module, and the output processing module is used for reading and outputting the packet data corresponding to the packet centralized buffer ID in the scheduled packet descriptor from the packet centralized buffer. In the working process, a user inputs a packet descriptor to the enqueue control module through the input processing module; the enqueue control module processes the input packet descriptors and outputs the processed packet descriptors to the queue management module according to the parameters required by packet scheduling contained in the packet descriptors; the queue management module inputs parameters required by subsequent packet scheduling in the packet descriptor into the packet descriptor cache module for updating according to the organization form of the packet descriptor linked list; the queue management module outputs the maintained packet descriptor linked list information to the dequeue scheduling module; the dequeue scheduling module schedules according to the packet descriptor linked list organized by priority, reads packet data from the packet centralized cache according to the packet centralized cache ID contained in the packet descriptor after scheduling is finished, and outputs the packet data to the output processing module; and the output processing module outputs the scheduled data to the network interface.
Preferably, the packet descriptor includes: information required for packet scheduling;
the information required for packet scheduling includes: flow ID to which the packet belongs, packet centralized buffer ID, packet enqueue priority, packet enqueue flow gating ID, packet token bucket ID, packet arrival port time, and packet length.
In the actual application process, the packet descriptor needs to contain information required for packet scheduling, including a flow ID (FlowID) to which a packet belongs, a buffer ID (buffid) of the packet in a centralized buffer, a packet priority (QueueID, a priority field carried by a packet itself, such as a PCP field in a VLAN, or an internal priority IPV obtained by table lookup mapping in a switch, a packet enqueue flow gating ID (SGateID), a token bucket ID (buckettid) corresponding to packet shaping, an arivetime when the packet arrives at a receiving port, a packet length Len, and the like.
Preferably, the method further comprises the following steps:
the packet descriptor caching module is used for storing the next packet centralized cache ID, the packet token bucket ID and the packet length;
the packet descriptor caching module and the packet centralized caching module have the same number of stored packets, and the packet descriptor caching IDs correspond to the packet centralized caching IDs one by one.
In the actual application process, the packet descriptor caching module is specifically a single unordered caching queue. The single queue packet descriptor buffer module is used for storing packet buffer IDs required to be output and scheduled in ports and token bucket IDs required by output shaping (other control information required by scheduling, such as packet length len, can also be stored according to output scheduling requirements). As shown in table 1, the number of packet descriptors supported and stored by the queue is consistent with the number of packets that can be stored in the packet centralized buffer, so as to ensure an extreme switching situation from multi-port input to output of the same port, and simultaneously, a one-to-one correspondence between the packet descriptor buffer and the packet centralized buffer is established, so that the packet centralized buffer does not need to store the centralized buffer ID of the current packet, but stores the centralized buffer ID of the next packet after the packet.
TABLE 1
Figure 482170DEST_PATH_IMAGE001
Preferably, the enqueue control module includes: an ST enqueue control submodule, an AVB enqueue control submodule and a BE enqueue control submodule;
and the ST enqueue control submodule, the AVB enqueue control submodule and the BE enqueue control submodule are all connected with the input processing module and are all used for processing the grouping descriptors according to a preset rule.
In the practical application process, the enqueue control module is used for identifying and controlling enqueue of the packet aiming at the packet priority field in the packet descriptor, and comprises a time-Sensitive (ST) packet control sub-module, an audio/video (AVB) packet control sub-module and a Best Effort (BE) packet control sub-module. And respectively formulating preset rules for the control submodules, and processing the packet descriptors according to the corresponding preset rules.
Preferably, the enqueue control module further comprises: an enqueue gating table;
the ST enqueue control sub-module, the AVB enqueue control sub-module and the BE enqueue control sub-module are all connected with the queue management module;
the ST enqueue control submodule is used for searching an enqueue gate control table according to a packet enqueue flow gate control ID and a current scheduling time slot in the packet descriptor, and judging whether to send ST packet data to the queue management module to be stored according to a packet enqueue priority according to a feedback result;
the AVB enqueue control sub-module is used for directly sending the AVB grouped data to the queue management module to be stored according to the grouping enqueue priority;
the BE enqueue control submodule is used for directly sending BE grouped data to the queue management module to BE stored according to the packet enqueue priority.
In the actual application process, the preset rules of each control submodule are embodied as follows:
and the enqueue control of the ST packet filters the packet by judging whether the packet is in a legal input time window or not, if so, the ST packet is sent to a queue management module and stored in a queue chain table of a corresponding queue number queue ID, and otherwise, the ST packet is discarded. The judgment basis is to search the enqueue gating table according to the SGateID field in the ST packet descriptor and the scheduling time slot (TimeSlot) where the system is currently located, the format is shown in Table 2, if the returned Gatastate is 1, the packet is in a legal time window, and if the returned Gatastate is 0, the packet is not in the legal time window.
TABLE 2
Figure 527486DEST_PATH_IMAGE002
The AVB grouping enqueue control is to directly send the grouping to the queue management module to be stored in the queue chain table of the corresponding queue number QueueID
The enqueue control of the BE packet is to directly send the packet to a queue management module to BE stored in a queue chain table of a corresponding queue number QueueID.
Preferably, the queue management module comprises: a plurality of grouped centralized buffer ID register pairs;
each group concentrated buffer ID register pair corresponds to each priority queue one by one;
and the packet centralized buffer ID register pair is used for identifying a head group packet buffer ID and a tail group packet buffer ID of the corresponding priority queue, and updating the packet descriptor buffer module according to the packet centralized buffer ID, the packet token bucket ID, the packet length and the tail group packet buffer ID.
In the actual application process, a pair of packet centralized buffer ID registers is maintained for each priority queue, and the pair of packet centralized buffer ID registers is respectively used for identifying a head-of-queue packet centralized buffer ID (BufID _ H) and a tail-of-queue packet centralized buffer ID (BufID _ T) of the queue. And updating the content of the single-queue packet descriptor cache according to the BufID, the BucketID, the Len and the queue tail packet centralized cache ID (BufID _ T) in the priority queue corresponding to the QueueID in the enqueuing information provided by the enqueuing control module. The updating operation comprises storing the BufID into a BufID _ N field of a packet descriptor cache corresponding to the BufID _ T, and storing the BucketID and the Len into BucketID and Len fields of the packet descriptor cache corresponding to the BufID. And updating the BufID _ T in the priority queue register pair corresponding to the queue ID (namely the packet centralized cache ID register pair corresponding to the queue ID) into the BufID. And acquiring BufID _ N, bucketID and Len corresponding to the packet from the single-queue packet descriptor cache according to the output priority queue selected by the dequeue scheduling module on the dequeue scheduling side and the head packet cache ID (BufID _ H) in the priority queue register pair, transmitting the BufID _ H, the acquired BucketID and the acquired Len to the queue scheduling module, and updating the BufID _ H in the priority queue register pair into the acquired BufID _ N.
Preferably, the dequeue scheduling module includes: a dequeue gate control table, a token bucket information table and a polling scheduling submodule;
and the polling scheduling submodule is used for polling and scheduling the packet descriptors in each priority queue according to the idle information fed back by the output processing module, the states of a plurality of priority queues in the queue management module, the dequeuing gating table and the token bucket information table.
In the actual application process, the polling scheduling submodule in the dequeuing scheduling module is used for scheduling packet descriptors in each queue according to a link idle signal (triggered to be scheduled each time by the link idle signal) returned by the port output module, a priority queue state provided by the queue management module, a dequeuing gating table, a token bucket information table and other information.
Preferably, the polling scheduling sub-module includes: the system comprises an ST scheduling submodule, an AVB scheduling submodule, a BE scheduling submodule and a scheduling control submodule;
the scheduling control submodule is respectively connected with the ST scheduling submodule, the AVB scheduling submodule and the BE scheduling submodule;
the scheduling control submodule is used for calling the ST scheduling submodule in an idle state and entering an ST scheduling state;
the ST scheduling submodule is used for executing ST scheduling after entering the ST state;
the scheduling control sub-module is also used for calling the AVB scheduling sub-module when a first preset condition is met and entering an AVB scheduling state;
the AVB scheduling submodule is used for executing AVB scheduling after entering the AVB scheduling state;
the scheduling control submodule is also used for calling the BE scheduling submodule when a second preset condition is met and entering a BE scheduling state;
and the BE scheduling sub-module is used for executing BE scheduling after entering a BE scheduling state.
In the actual operation process, in the idle state, the dequeue scheduling module reads the gating state GCL of each queue corresponding to the next time slot from the dequeue gating table (the format is shown in table 3) according to the current time slot of the system, and the gating state GCL is used as the output gating configuration of each queue of the next scheduling time slot, and is kept in the idle state after the gating update of the new time slot is completed. And after receiving a new time slot starting signal in an idle state, entering an ST scheduling state, and sequentially reading the first packet descriptor of the ST queue with the gating state of on according to the gating state and the priority level of the output queue in the state until the first packet descriptor of the queue is empty, and then reading the first packet descriptor of the next priority queue with the gating state of on. The AVB scheduling state is entered when all ST queues gated on are no packets ready (i.e., the head-of-queue packet descriptor is empty).
TABLE 3
Figure 453854DEST_PATH_IMAGE003
The method comprises the steps of adopting a prefetching mechanism for AVB packet scheduling in an AVB scheduling state, reading out head descriptors of all AVB priority queues which are gated on and have non-empty queues from a queue management module, storing the head descriptors in corresponding prefetching registers, inquiring a token bucket information table (with the format shown in table 4) according to BucketID of each prefetched AVB packet descriptor to obtain state information of a token bucket, calculating the quantity of tokens accumulated between the last token bucket updating time and the current time according to the token bucket state information BucketState, judging whether corresponding packets are output enough (namely the quantity of tokens is more than or equal to the packet length) according to the total quantity of the tokens (the accumulated quantity of the tokens plus the original quantity of the remaining tokens), setting the prefetching registers of the corresponding packet descriptors as scheduling ready if signaling is enough, and updating the token bucket state information of the token bucket information table. And the scheduler schedules and outputs according to the priority of ready AVB packet descriptors and strict priority, judges whether an ST packet is ready after scheduling one AVB packet, and jumps to an ST packet scheduling state if the ST packet is ready. When a scheduling reset is received or a guard band slot is entered (a guard band is a free slot set at the end of the slot to avoid AVB and BE packets affecting the certainty of ST packet scheduling, typically a longest packet output time), the state machine jumps to the idle state. When all the prefetch registers have no ready packet descriptors, the state machine jumps to the BE scheduling state.
TABLE 4
Figure 596122DEST_PATH_IMAGE004
And in the BE scheduling state, a prefetching scheduling mode similar to the AVB scheduling state is also adopted, and the difference is that the BE packet does not need to further inquire a token bucket information table to judge whether the packet can BE output or not. The scheduler schedules the output at strict priority according to the priority of ready BE packet descriptors. After scheduling a BE packet, whether an ST or AVB packet is ready is judged, and if yes, the corresponding packet scheduling state is jumped to. And when the scheduling reset is received or the guard band time period is entered, the state machine jumps to an idle state.
Preferably, the method further comprises the following steps: the output processing module is used for acquiring corresponding grouped data output from the grouped centralized buffer module according to the grouped centralized buffer ID in the dequeue scheduling module and feeding back idle information to the dequeue scheduling module after the output is finished.
In the actual application process, the output processing module is used for reading corresponding packet data output from the packet centralized buffer according to the packet centralized buffer ID scheduled by the dequeue scheduling module, and returning a link idle signal to the dequeue scheduling module after the output is finished.
In the embodiments provided in the present application, it should be understood that the disclosed method and apparatus may be implemented in other ways. The above-described embodiments of the apparatus are merely illustrative, and for example, the division of the modules is only one division of logical functions, and other divisions may be realized in practice, such as: multiple modules or components may be combined, or may be integrated into another system, or some features may be omitted, or not implemented. In addition, the coupling, direct coupling or communication connection between the components shown or discussed may be through some interfaces, and the indirect coupling or communication connection between the devices or modules may be electrical, mechanical or other.
In addition, all functional modules in the embodiments of the present invention may be integrated into one processor, or each module may be separately used as one device, or two or more modules may be integrated into one device; each functional module in each embodiment of the present invention may be implemented in a form of hardware, or may be implemented in a form of hardware plus a software functional unit.
Those of ordinary skill in the art will understand that: all or part of the steps for implementing the method embodiments may be implemented by program instructions and related hardware, where the program instructions may be stored in a computer-readable storage medium, and when executed, the program instructions perform the steps including the method embodiments; and the aforementioned storage medium includes: various media that can store program codes, such as a removable Memory device, a Read Only Memory (ROM), a magnetic disk, or an optical disk.
It should be understood that the use of "system," "device," "unit," and/or "module" herein is merely one way to distinguish between different components, elements, components, parts, or assemblies of different levels. However, other words may be substituted by other expressions if they accomplish the same purpose.
It is also noted that, in this document, terms such as "comprises," "comprising," or any other variation thereof, are intended to cover a non-exclusive inclusion, such that an article or apparatus that comprises a list of elements does not include only those elements but may include other elements not expressly listed or inherent to such article or apparatus. Without further limitation, an element defined by the phrase "comprising a … …" does not exclude the presence of another identical element in an article or apparatus that comprises the element.
The TSN network port output scheduling apparatus provided by the present invention is described in detail above. The previous description of the disclosed embodiments is provided to enable any person skilled in the art to make or use the present invention. Various modifications to these embodiments will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other embodiments without departing from the spirit or scope of the invention. Thus, the present invention is not intended to be limited to the embodiments shown herein but is to be accorded the widest scope consistent with the principles and novel features disclosed herein.

Claims (6)

1. A TSN network port output scheduler, comprising: the device comprises a port scheduling module and a packet centralized cache module;
the packet centralized caching module is connected with the port scheduling module and is used for caching packets for the port scheduling module;
the port scheduling module comprises an enqueue control module, a queue management module, a packet descriptor cache module and a dequeue scheduling module;
the enqueue control module is connected with the queue management module;
the queue management module is respectively connected with the packet descriptor caching module and the dequeuing scheduling module;
the packet descriptor caching module is used for storing parameters required by scheduling;
further comprising: the device comprises an input processing module and an output processing module;
the input processing module is connected with the enqueue control module and is used for inputting a packet descriptor to the enqueue control module;
the output processing module is respectively connected with the dequeue scheduling module and the packet centralized cache module;
included within the packet descriptor are: information required for packet scheduling;
the information required for packet scheduling includes: the flow ID to which the packet belongs, the packet centralized cache ID, the packet enqueue priority, the packet enqueue flow gating ID, the packet token bucket ID, the packet arrival port time and the packet length;
further comprising:
the packet descriptor caching module is used for storing the next packet centralized cache ID, the packet token bucket ID and the packet length;
the packet descriptor cache module and the packet centralized cache module have the same number of stored packets and are in one-to-one correspondence;
the enqueue control module comprises: an ST enqueue control submodule, an AVB enqueue control submodule and a BE enqueue control submodule;
the ST enqueue control submodule, the AVB enqueue control submodule and the BE enqueue control submodule are all connected with the input processing module and are all used for processing the data with the grouping descriptors according to a preset rule.
2. The TSN network port output scheduler of claim 1, wherein the enqueue control module further comprises: an enqueue gating table;
the ST enqueue control submodule, the AVB enqueue control submodule and the BE enqueue control submodule are all connected with the queue management module;
the ST enqueuing control submodule is used for searching the enqueuing gate table according to the grouping enqueuing flow gate control ID and the current scheduling time slot in the grouping descriptor, and judging whether ST grouping data is sent to the queue management module to be stored according to the grouping enqueuing priority according to a feedback result;
the AVB enqueue control submodule is used for directly sending AVB grouped data to the queue management module to be stored according to the grouped enqueue priority;
the BE enqueue control sub-module is used for directly sending BE grouped data to the queue management module to BE stored according to the grouping enqueue priority.
3. The TSN network port output scheduler of claim 2, wherein the queue management module comprises: a plurality of grouped centralized buffer ID register pairs;
each group concentrated buffer ID register pair corresponds to each priority queue one by one;
and the group concentrated buffer ID register pair is used for identifying a head group concentrated buffer ID and a tail group concentrated buffer ID of a corresponding priority queue, and updating the group descriptor buffer module according to the group token bucket ID, the group length and the tail group concentrated buffer ID.
4. The TSN network port output scheduling device of claim 3, wherein the dequeue scheduling module comprises: a dequeue gate control table, a token bucket information table and a polling scheduling submodule;
and the polling scheduling submodule is used for polling and scheduling the packet descriptors in each priority queue according to the idle information fed back by the output processing module, the states of a plurality of packet centralized buffer ID register pairs in the queue management module, the dequeuing gating table and the token bucket information table.
5. The TSN network port output scheduler of claim 4, wherein the round-robin scheduling sub-module includes: the system comprises an ST scheduling submodule, an AVB scheduling submodule, a BE scheduling submodule and a scheduling control submodule;
the scheduling control submodule is respectively connected with the ST scheduling submodule, the AVB scheduling submodule and the BE scheduling submodule;
the scheduling control submodule is used for calling the ST scheduling submodule in an idle state and entering an ST scheduling state;
the ST scheduling submodule is used for executing ST scheduling after entering an ST state;
the scheduling control submodule is also used for calling the AVB scheduling submodule to enter an AVB scheduling state when a first preset condition is met;
the AVB scheduling submodule is used for executing AVB scheduling after entering an AVB scheduling state;
the scheduling control sub-module is also used for calling the BE scheduling sub-module to enter a BE scheduling state when a second preset condition is met;
and the BE scheduling sub-module is used for executing BE scheduling after entering a BE scheduling state.
6. The TSN network port output scheduler of claim 5, further comprising: and the output processing module is used for acquiring corresponding packet data output from the packet centralized buffer module according to the packet centralized buffer ID in the dequeue scheduling module and feeding back idle information to the dequeue scheduling module after the output is finished.
CN202211010674.0A 2022-08-23 2022-08-23 TSN network port output scheduling device Active CN115086238B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211010674.0A CN115086238B (en) 2022-08-23 2022-08-23 TSN network port output scheduling device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211010674.0A CN115086238B (en) 2022-08-23 2022-08-23 TSN network port output scheduling device

Publications (2)

Publication Number Publication Date
CN115086238A CN115086238A (en) 2022-09-20
CN115086238B true CN115086238B (en) 2022-11-22

Family

ID=83244219

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211010674.0A Active CN115086238B (en) 2022-08-23 2022-08-23 TSN network port output scheduling device

Country Status (1)

Country Link
CN (1) CN115086238B (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115914130A (en) * 2022-11-14 2023-04-04 天翼云科技有限公司 Data traffic processing method and device of intelligent network card

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111200846A (en) * 2018-11-19 2020-05-26 华为技术有限公司 Time delay sensitive network communication method and device thereof
CN111327540A (en) * 2020-02-25 2020-06-23 重庆邮电大学 Deterministic scheduling method for industrial time-sensitive network data
CN111786900A (en) * 2020-06-15 2020-10-16 北京交通大学 Time queue-based temporal sensing flow shaper
CN111865633A (en) * 2019-04-28 2020-10-30 华为技术有限公司 Communication method, device and system
CN111865830A (en) * 2019-04-29 2020-10-30 华为技术有限公司 Processing method, device and system for time delay sensitive network service TSN
CN112887226A (en) * 2021-01-26 2021-06-01 重庆邮电大学 Method for managing and scheduling satellite time-sensitive network queue with wired and wireless integration
CN113382442A (en) * 2020-03-09 2021-09-10 ***通信有限公司研究院 Message transmission method, device, network node and storage medium
CN114390000A (en) * 2022-01-17 2022-04-22 北京邮电大学 TSN traffic scheduling method based on enqueue shaping and related equipment

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107872403B (en) * 2017-11-10 2019-12-24 西安电子科技大学 Five-stage queue scheduling device and method for realizing hierarchical QoS
US20220021624A1 (en) * 2018-11-19 2022-01-20 Telefonaktiebolaget Lm Ericsson (Publ) Output pacing in a cellular communications system serving as a time-sensitive networking (tsn) node
CN112214337A (en) * 2020-10-21 2021-01-12 成都成电光信科技股份有限公司 TTFC network transmission cache design method, computer equipment and storage medium
CN113411270B (en) * 2021-06-07 2023-04-07 中国人民解放军国防科技大学 Message buffer management method for time-sensitive network
CN113821516B (en) * 2021-10-12 2023-09-05 上海交通大学 Time sensitive network switching system based on virtual queue

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111200846A (en) * 2018-11-19 2020-05-26 华为技术有限公司 Time delay sensitive network communication method and device thereof
CN111865633A (en) * 2019-04-28 2020-10-30 华为技术有限公司 Communication method, device and system
CN111865830A (en) * 2019-04-29 2020-10-30 华为技术有限公司 Processing method, device and system for time delay sensitive network service TSN
CN111327540A (en) * 2020-02-25 2020-06-23 重庆邮电大学 Deterministic scheduling method for industrial time-sensitive network data
CN113382442A (en) * 2020-03-09 2021-09-10 ***通信有限公司研究院 Message transmission method, device, network node and storage medium
CN111786900A (en) * 2020-06-15 2020-10-16 北京交通大学 Time queue-based temporal sensing flow shaper
CN112887226A (en) * 2021-01-26 2021-06-01 重庆邮电大学 Method for managing and scheduling satellite time-sensitive network queue with wired and wireless integration
CN114390000A (en) * 2022-01-17 2022-04-22 北京邮电大学 TSN traffic scheduling method based on enqueue shaping and related equipment

Also Published As

Publication number Publication date
CN115086238A (en) 2022-09-20

Similar Documents

Publication Publication Date Title
US7876763B2 (en) Pipeline scheduler including a hierarchy of schedulers and multiple scheduling lanes
US7529224B2 (en) Scheduler, network processor, and methods for weighted best effort scheduling
US7649901B2 (en) Method and apparatus for optimizing selection of available contexts for packet processing in multi-stream packet processing
CN111786900B (en) Time queue-based temporal sensing flow shaper
US7921241B2 (en) Instruction set for programmable queuing
US20030227925A1 (en) Packet processing device
CN101136854B (en) Method and apparatus for implementing data packet linear speed processing
US20060291495A1 (en) Hardware self-sorting scheduling queue
US20070153796A1 (en) Packet processing utilizing cached metadata to support forwarding and non-forwarding operations on parallel paths
WO2017206587A1 (en) Method and device for scheduling priority queue
CN113411270B (en) Message buffer management method for time-sensitive network
WO2020143308A1 (en) Multi-level scheduling method and device, network chip, and storage medium
CN115086238B (en) TSN network port output scheduling device
US20030179706A1 (en) Network processor having fast flow queue disable process
US8599694B2 (en) Cell copy count
US7474662B2 (en) Systems and methods for rate-limited weighted best effort scheduling
CN114531488A (en) High-efficiency cache management system facing Ethernet exchanger
CN115086239B (en) Shared TSN shaping scheduling device
US8879578B2 (en) Reducing store and forward delay in distributed systems
US7079545B1 (en) System and method for simultaneous deficit round robin prioritization
US6490629B1 (en) System and method for scheduling the transmission of packet objects having quality of service requirements
EP4336796A1 (en) Deterministic traffic transmission method and apparatus
WO2022174444A1 (en) Data stream transmission method and apparatus, and network device
JP4293703B2 (en) Queue control unit
CN110708253A (en) Message control method, flow table updating method and node equipment

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant