WO2015096362A1 - 一种流量整形中添加令牌的方法及装置 - Google Patents

一种流量整形中添加令牌的方法及装置 Download PDF

Info

Publication number
WO2015096362A1
WO2015096362A1 PCT/CN2014/077926 CN2014077926W WO2015096362A1 WO 2015096362 A1 WO2015096362 A1 WO 2015096362A1 CN 2014077926 W CN2014077926 W CN 2014077926W WO 2015096362 A1 WO2015096362 A1 WO 2015096362A1
Authority
WO
WIPO (PCT)
Prior art keywords
token
scheduler
weight
data flow
tokens
Prior art date
Application number
PCT/CN2014/077926
Other languages
English (en)
French (fr)
Inventor
蔡学全
曾敏
夏刚
袁开心
Original Assignee
深圳市中兴微电子技术有限公司
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 深圳市中兴微电子技术有限公司 filed Critical 深圳市中兴微电子技术有限公司
Priority to US15/107,771 priority Critical patent/US10205671B2/en
Priority to EP14873941.0A priority patent/EP3089413A4/en
Publication of WO2015096362A1 publication Critical patent/WO2015096362A1/zh

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/52Queue scheduling by attributing bandwidth to queues
    • H04L47/527Quantum based scheduling, e.g. credit or deficit based scheduling or token bank
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/64Hybrid switching systems
    • H04L12/6418Hybrid transport
    • 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/22Traffic shaping
    • 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
    • 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/629Ensuring fair share of resources, e.g. weighted fair queuing [WFQ]

Definitions

  • the present invention relates to the field of mobile communications, and in particular, to a method and an apparatus for adding a token in traffic shaping. Background technique
  • the service level of a connection can be defined in terms of the validity of the connection, the delay of the connection, and the bandwidth of the connection; these three aspects determine the quality of service.
  • Traffic management systems play an important role in controlling the latency and bandwidth of the connection, which affects the quality of service (QoS) of the connection.
  • QoS quality of service
  • An important way to ensure quality of service is through traffic management systems for traffic management.
  • the functions of the traffic management system mainly include: classification, traffic policing, traffic shaping, scheduling, and statistics.
  • the traffic shaping is performed on the data packet at a preset rate, and is forwarded to comply with the agreement with the downstream device, smoothing the output of the traffic, and congestion of the low downlink.
  • traffic shaping the addition of tokens for a large number of different data streams is a key factor affecting the traffic shaping effect.
  • the method of weighted fair queuing is generally used for traffic shaping, which is specifically: setting a weight corresponding to a maximum rate, thereby converting the shaping rate of each data stream configuration into a corresponding weight, The remaining weights are allocated to a spare stream to occupy the remaining bandwidth.
  • WFQ weighted fair queuing
  • the embodiments of the present invention provide a method and a device for adding a token in traffic shaping, which can improve the utilization of system bandwidth by uniformly issuing a token.
  • An embodiment of the present invention provides a method for adding a token in traffic shaping, where the method includes: configuring weights of respective data flows, and adding the respective data flows to corresponding token scheduling according to weights of the respective data flows.
  • the token schedulers are sequentially added to the corresponding token scheduler group, and all token scheduler groups are aggregated into a token scheduler of the total data stream;
  • the top-level token scheduler Assigning a token to the token scheduler of the total data stream in the top-level token scheduler according to a preset period, the top-level token scheduler delivering the assigned token to each token scheduler group , or issue a token to each data stream.
  • the embodiment of the present invention further provides an apparatus for adding a token in traffic shaping, where the apparatus includes: a configuration module, a bandwidth allocation module, a distribution module, and an information storage module;
  • the configuration module is configured to configure weights of the respective data flows, and add the respective data flows to the corresponding token scheduler according to weights of the respective data flows; according to the weights of the respective token schedulers, sequentially Each token scheduler is added to the corresponding token scheduler group, aggregates all token scheduler groups into a token scheduler of the total data stream; adds the token scheduler of the total data stream to the top-level token scheduler And saving the weights of the respective data streams to the information storage module;
  • the bandwidth allocation module is configured to allocate a token to the token scheduler of the total data stream in the top-level token scheduler according to a preset period, and send the allocated token to the distribution module;
  • the distribution module is configured to deliver the token to each token scheduler group, or deliver the token to each data stream;
  • the information storage module is configured to save weights of the respective data streams.
  • the method and device for adding a token in traffic shaping can configure corresponding shaping rate and shaping weight for different data streams, and summarize the total data stream;
  • the token scheduler distributes and performs fair scheduling, so that tokens are sent off. Therefore, the system can implement shaping of multiple data streams by using the tokens issued by the hooks to improve the bandwidth utilization.
  • FIG. 1 is a schematic flowchart 1 of a method for adding a token in traffic shaping according to an embodiment of the present invention
  • FIG. 3 is a schematic flowchart 2 of a method for adding a token in traffic shaping according to an embodiment of the present invention
  • FIG. 4 is a schematic structural diagram of a device for adding a token in traffic shaping according to an embodiment of the present invention
  • FIG. 5-1 is a storage content and format of a spare stream information according to an embodiment of the present invention
  • 5-2 is a storage content and format of total data stream information according to an embodiment of the present invention.
  • FIG. 6-1 is a storage content and format of scheduler information in an information storage module according to an embodiment of the present invention
  • FIG. 6-2 is a storage content and format of data stream information in an information storage module according to an embodiment of the present invention
  • FIG. 8 is a flow chart of token distribution of the token distribution module in the present invention. detailed description
  • An embodiment of the present invention provides a method for adding a token in traffic shaping. As shown in FIG. 1, the method includes:
  • Step 101 Configure weights of the respective data streams, and add the respective data streams to the corresponding token scheduler according to the weights of the respective data streams.
  • Step 102 Add the respective token schedulers to the corresponding token scheduler group according to the weights of the token schedulers, and aggregate all token scheduler groups into a token scheduler of the total data stream.
  • Step 103 Add the token scheduler of the total data stream to the top level token scheduler.
  • Step 104 Assign a token to the token scheduler of the total data stream in the top-level token scheduler according to a preset period, where the top-level token scheduler delivers the assigned token to each token. scheduler Group, or issue tokens to individual data streams.
  • the configuring the weight of each data stream includes: configuring a shaping rate of each data stream, and converting the shaping rate into a weight corresponding to each data stream.
  • the method of conversion is prior art and is not mentioned here.
  • the method before performing step 101, the method further includes: configuring a shaping rate of the current vacant stream as a maximum rate, and converting the shaping rate of the vacant stream into a weight.
  • the method may further include: preset a number of layers of the token scheduler group, for example, may be two layers, that is, directly adding the data stream to the token scheduler of the total data stream; or, set to three layers, That is, add an intermediate group to add data streams within a certain weight range to the group.
  • each token scheduler is added to the corresponding token scheduler group according to the weight of each token scheduler, and the weight of each token scheduler is also calculated; The sum of the weights of all data streams hooked by each token scheduler, or the sum of the weights of all token schedulers hooked by each token scheduler.
  • the method further includes: calculating a weight of the total data stream, and a weight of the spare stream; wherein, the calculating The weight of the total data stream is: the sum of the weights of all attached token scheduler groups, or data streams.
  • the top-level token scheduler may send the token to each token scheduler group or send the token to each data stream according to a preset period, and may further include: adjusting the total data stream.
  • the weight is determined by: determining whether the weight of the total data stream is greater than or equal to a preset maximum weight of the system, and if yes, increasing the number of tokens issued in each period by a specified value, and obtaining each adjusted period
  • the number of tokens to be sent internally, and the weight adjustment coefficient of the total data stream is calculated according to the number of tokens sent in each period, and the weight adjustment coefficient is compared with the weight of the original total data stream. Multiply, the adjusted weight of the total data stream is obtained.
  • the number of the tokens to be sent in each period is increased by a specified value, and the number of tokens sent in each period is adjusted, including: adding the number of tokens issued in each period.
  • the number of tokens issued in each cycle after adjustment is N+1;
  • the coefficient includes: a ratio of the number N of tokens issued in each period to the number of tokens N+1 issued in each of the adjusted periods as the weight adjustment coefficient.
  • the period length may be preset.
  • Adding the token scheduler of the total data stream to the top-level token scheduler includes: a token scheduler of the total data stream, and a spare according to the weight of the total data stream and the weight of the spare stream The stream's token scheduler is added to the top-level token scheduler.
  • the scheduler has N scheduling queues and one rotating clock according to the precision, and the data flow that joins the scheduler for the first time (0 time) is added to the corresponding queue according to its own weight; the scheduler corresponds to each service time.
  • a scheduling queue all the flows in the scheduling queue of the current service time (when there are multiple levels, the scheduler group is also equivalent to the flow in the upper layer), after the service is completed, the scheduler will exist according to the current service time and the system.
  • the scheduling queue of the flow calculates the next service time; after jumping to the next service time, it starts to serve the scheduling queue corresponding to the next time.
  • the flow in the scheduling queue after each service is completed, calculates the next available flow of the flow according to its own weight and the current service time, and then connects the flow to the corresponding scheduling queue.
  • the token is sent to each data stream, and may be: the number of tokens obtained by each data stream, determined by the weight of the data stream.
  • the system allocates the corresponding scheduling queue according to the scheduling time, and each data stream is added to the corresponding scheduling queue according to its own weight; the data flow with high weight is highly serviced.
  • the WFQ scheduling algorithm in completing one round of scheduling, each data is completed.
  • the proportion of tokens obtained by the stream is equal to its weight ratio.
  • the WFQ scheduling algorithm is prior art, and is not mentioned here.
  • the top-level token scheduler delivers the token to each token scheduler group or delivers the token to each data stream according to a preset period, including: The top-level token scheduler determines according to the service period pointer The token is sent to the idle stream or the total data stream in the current period, and if it is a free stream, the next service period pointer of the spare stream is calculated according to the weight of the spare stream;
  • the scheduler determines whether the current layer scheduler is connected to the data stream, and if so, adds a corresponding number of tokens to the token bucket of the data stream, according to the weight of the data stream, Calculate it A service period pointer completes the token distribution; otherwise, the next service period pointer is calculated according to the weight of the current layer token scheduler.
  • the top-level token scheduler delivers the token to each token scheduler group or sends the token to each data stream according to a preset period
  • the method further includes: when any one After the data stream is obtained by the token, the number of shaping bytes corresponding to the data stream is determined according to the number of shaping bytes corresponding to the token.
  • the traffic shaping system cooperates with the external system to calculate the total bandwidth of the system according to the clock cycle and the number of bytes of each distribution, so the system determines the total bandwidth and the clock cycle of each distribution at the beginning of the design. , which determines the correspondence between the number of tokens distributed each time and the number of shaped bytes.
  • the method further includes: generating a token according to a preset period.
  • the WFQ scheduling mode is used to configure the corresponding shaping rate and shaping weight for different data streams, and is aggregated into a total data stream.
  • the bandwidth is first extended according to the needs of the top layer. The sum and the vacant flow are fairly scheduled, so that the tokens are uniformly distributed, and the data stream tokens of each group of bandwidths in the middle layer WFQ can be selected to be uniform again, thereby realizing shaping of multiple data streams, and obtaining good effects. .
  • the token is distributed to the data stream IDLE
  • the token is distributed to the data stream IDLE
  • the token is distributed to the data stream A;
  • the token is distributed to the spare stream IDLE
  • the token is distributed to the data stream IDLE
  • the token is distributed to data stream B;
  • the token is distributed to the data stream IDLE
  • the token is distributed to the data stream IDLE
  • the token is distributed to the data stream C;
  • the token is distributed to the data stream IDLE; Similarly, with 10T as a cycle, according to the above steps, the token is distributed, so that data stream A gets one tenth of the token, and the data token A obtains the shaping token as IGbps, and the same data stream B, C is obtained.
  • the shaping tokens are all IGbps, and the spare stream consumes 7 Gbps shaping tokens; when the invention is not used, the data stream and the vacant stream acquire the tokens at a relatively concentrated time, and with the present invention, the data stream and the vacant stream acquire tokens. The moment is relatively uniform.
  • the token generation period interval T can be adjusted according to the bandwidth and clock frequency of the traffic management system.
  • the same traffic management system bandwidth and clock frequency, different intervals T, each shaped token can represent a different number of token bytes. .
  • Embodiment 2 After the top layer expands the bandwidth, it can also break through the processing capacity of the traffic management system, and distribute the configured number of tokens for each data stream to enhance the bandwidth utilization of the system.
  • Embodiment 2 After the top layer expands the bandwidth, it can also break through the processing capacity of the traffic management system, and distribute the configured number of tokens for each data stream to enhance the bandwidth utilization of the system.
  • FIG. 3 is a flowchart of a method for implementing an integer shaping token for each data stream in the present invention, wherein the main implementation process is:
  • Step 300 Initialize each layer of WFQ, and set the weight of each WFQ and total data stream to 0.
  • Step 301 After configuring the shaping rate of the vacant stream as a maximum value, and converting the shaping rate of the vacant stream into a weight, adding the vacant stream to the top-level token scheduler.
  • Step 302 Determine whether all current data flows have been configured. If yes, go to step 307; otherwise, go to step 303.
  • Step 303 Select any one of the data streams that are not configured with the shaping rate as the current data stream, configure a shaping rate of the current data stream, and convert the shaping rate of the current data stream to the current data stream. Weights.
  • Step 304 Add the current data stream to the corresponding WFQ token scheduler group according to the weight of the current data stream; or, schedule the WFQ token according to the weight of the WFQ token scheduler. Add to the corresponding token scheduler group.
  • Step 305 Add the weight of the WFQ token scheduler group and the weight of the current data stream to obtain the updated weight of the WFQ token scheduler group.
  • Step 306 Determine whether the WFQ token scheduler group is a total data stream, and if yes, go to step 302; otherwise, go to step 304.
  • Step 307 Determine whether the weight of the current total data stream is greater than or equal to the preset system maximum weight, and if yes, perform step 308; otherwise, perform step 310.
  • Step 308 Add the number of tokens N issued in each period to 1, and obtain the number of tokens issued in each period of the adjustment, N+l.
  • Step 309 Adjust the total data stream weight to N/N+1 times of the current weight, obtain the adjusted total data stream weight, and go to step 307.
  • Step 310 Subtract the weight of the current total data stream from the maximum weight of the system, and obtain the weight of the updated residual stream.
  • Step 311 Add the total data flow WFQ token scheduler to the top-level token scheduler token scheduler.
  • Step 312 Enable the bandwidth allocation module to distribute the token for the total data stream or the spare stream of the top-level token scheduler.
  • Step 313 Waiting for the arrival of the token to be sent, the top-level token scheduler determines that the current token is a null stream token or a total stream token. If it is a vacant stream, step 314 is performed; Then step 315 is performed.
  • the token obtained by the top-level token scheduler is obtained according to the WFQ scheduling algorithm.
  • the scheduler selects the first flow of the service scheduling queue according to the current scheduling time, and the top-level scheduling only has the total data stream or the spare stream.
  • the two streams may be in the same scheduling queue at a certain time, and only one queue is served at a time, and then the served queues are transferred and added to other scheduling queues.
  • Step 314 Calculate the next service time according to the weight of the vacant flow, transfer the vacant flow to the corresponding scheduling queue, and go to step 313.
  • the calculation may be performed according to the WFQ scheduling algorithm. For example, after a certain data stream is served, the data is calculated according to the current time and the weight of the data stream corresponding to the scheduler where the data stream is located. The next service moment of the flow, and then the flow is added to the corresponding scheduling queue at that moment.
  • Step 315 Calculate the next service time according to the weight of the total data stream.
  • Step 316 Send the token to the underlying data stream or scheduler.
  • the lower layer is a data stream
  • the current system token value is directly added to the data stream
  • the scheduler is required to distribute the token according to the WFQ scheduling algorithm, and finally the token is added to the lowest layer to be served.
  • the data stream in the scheduling cycle from the topmost layer to the bottommost data stream, only one data stream will eventually get the token.
  • Step 317 Determine whether the current level (lower layer described in step 316) is a scheduler, and if so, issue a token to the scheduler of the current level.
  • Step 318 Determine whether the token scheduler of the current level is connected to the data stream. If yes, go to step 320; otherwise, go to step 319.
  • Step 319 Calculate the next service time according to the weight of the token scheduler, and go to step 316.
  • Step 320 Add a corresponding number of tokens to the token bucket of the data stream.
  • Step 321 Calculate a next service time of the data flow according to the weight of the data flow, and complete the token distribution.
  • the embodiment of the present invention further provides an apparatus for implementing a traffic shaping token.
  • the apparatus includes: a configuration module 401, a bandwidth allocation module 402, a distribution module 403, and Information storage module 404; wherein
  • the configuration module 401 is configured to configure weights of the respective data flows, and add the respective data flows to the corresponding token scheduler according to the weights of the respective data flows, and then according to the weights of the respective token schedulers, Adding each of the token schedulers to a corresponding token scheduler group, aggregating all token scheduler groups into a token scheduler of the total data stream; adding the token scheduler of the total data stream to the top layer a token scheduler; and storing the weights of the respective data streams to the information storage module 404;
  • the bandwidth allocation module 402 is configured to allocate a token to the token scheduler of the total data stream in the top-level token scheduler according to a preset period, and send the allocated token to the distribution module 403.
  • the distribution module 403 is configured to deliver the token to each token scheduler group, or deliver the token to each data stream;
  • the information storage module 404 is configured to save weights of the respective data streams.
  • the configuration module 401 is configured to configure a shaping rate of each data stream, and convert the shaping rate into a weight corresponding to each data stream.
  • the apparatus further includes: a vacant stream module 405 configured to configure a shaping rate of the current vacant stream as a maximum rate, and convert the shaping rate of the vacant stream into a weight.
  • a vacant stream module 405 configured to configure a shaping rate of the current vacant stream as a maximum rate, and convert the shaping rate of the vacant stream into a weight.
  • the configuration module 401 is configured to determine whether the weight of the total data stream is greater than or equal to a preset maximum weight of the system, and if yes, increase the number of tokens sent in each period by a specified value, and obtain the adjusted value.
  • the number of tokens sent in each period, and the weight adjustment coefficient of the total data stream is calculated according to the number of tokens sent in each period, and the weight adjustment coefficient is compared with the original total data stream. The weights are multiplied to obtain the weight of the adjusted total data stream; otherwise, no adjustment is made.
  • the configuration module is configured to increase the number N of tokens issued in each period by one, and obtain the number N+1 of tokens delivered in each period after the adjustment; and each of the The ratio of the number N of tokens issued in the period to the number of tokens N+1 issued in each of the adjusted periods is used as the weight adjustment coefficient; N is an order issued by the system each time. The number of cards.
  • the bandwidth allocation module 402 is configured to determine, according to the service period pointer of the top-level token scheduler, that the token is sent to the idle stream or the total data stream in the current period, and if it is a null stream, according to the weight of the spare stream Calculating a next service period pointer of the vacant stream; if it is a total data stream, calculating a next service period pointer corresponding to the total data stream according to the weight of the total data stream, and sending the token to the distribution module 403
  • the distribution module 403 is configured to use the lower layer scheduler of the total data stream as a current layer scheduler, and determine whether the current layer scheduler is connected to a data stream, and if yes, the data is Adding a corresponding token to the token bucket of the stream, calculating a next service period pointer according to the weight of the data stream, completing the token distribution; otherwise, calculating the weight according to the weight of the current layer token scheduler A service cycle pointer.
  • the device further includes: a token generating module 406, configured to generate a token according to a preset period, and send the token value bandwidth allocation module 402; correspondingly, the bandwidth allocation module 402 is configured to receive the order The token is generated by the card generation module 406.
  • the configuration module 401 is configured to configure a shaping rate for each data stream and convert it into a shaping weight, store it in the information storage module 404, and add each data stream to the order according to the shaping weight of the data stream.
  • the vacant stream module 405 is configured to, when receiving the data stream shaping weight configured by the configuration module 401, add the current total data stream weight to the shaping weight of the new data stream to obtain a new total data stream weight, when the total data is When the flow weight is greater than the maximum weight, a certain proportion of the weight is adjusted to obtain a new total stream weight.
  • the maximum weight of the system is subtracted from the total stream shaping weight to obtain a new residual stream shaping weight, which is added according to the shaping weight of the spare stream and the total stream.
  • the bandwidth allocation module 402 is configured to distribute tokens for the vacant stream or distribute tokens for the token distribution module 403 based on the weight of the total data stream or the vacant stream.
  • the token distribution module 403 is configured to pass the weight of the set token scheduler or the data stream, and finally distribute the token for each data stream.
  • the information storage module 404 is configured to store the weights of the total data stream and the vacant stream, the number of tokens N delivered each time, the weight information of each data stream and the intermediate layer WFQ, and the linked list information, and the storage of each data stream is received. The number of tokens arrived.
  • the apparatus also includes a token generation module 406 configured to periodically generate a token at a pre-set interval based on the processing capabilities of the traffic management system to communicate the token to the bandwidth allocation module 402.
  • the vacant stream module 405 is configured to configure the total data stream shaping weight to 0 after the system is powered on, and configure the shaping weight of the vacant stream to a maximum value.
  • the configuration module 401 is configured to convert the shaping rate of the newly added data stream into a shaping weight, and the weight of each data stream is stored in the information storage module 404, and the newly added data stream is calculated according to its weight, and then added The data stream is added to the distribution module 403, and the shaping weight of the newly added data stream is notified to the vacant stream module 405;
  • the vacant stream module 405 is configured to configure the shaping weight of the vacant stream to a maximum value after the system is powered on, and configure the shaping weight of the total data stream to be 0.
  • the current total data stream shaping weight plus the data stream shaping weight is used to obtain a new total data stream shaping weight, and is scaled when the maximum weight is exceeded, to obtain a new total data stream shaping weight, and the system maximum weight is subtracted from the current
  • the total data stream shaping weight is obtained by the new vacant stream shaping weight, and the module also stores the WFQ scheduling list of the number of tokens, the total data stream and the vacant stream that are delivered each time. Lower pointer information;
  • the token generation module 406 is configured to periodically generate a token according to a processing capability of the traffic management system according to a preset interval, and deliver the token to the bandwidth allocation module 402 to implement further token distribution;
  • the bandwidth allocation module 402 is configured to allocate a token to the vacant stream or deliver the token to the distribution module 403 according to the weight of the total data stream or the vacant stream, and the module manages the total data stream and the vacant stream in a linked list manner;
  • the distribution module 403 is configured to deliver the tokens according to the weights of the configured layer token schedulers and the respective data streams, and distribute the tokens for each data stream, and the module manages each token scheduler and the data stream in a linked list manner;
  • the information storage module 404 is configured to store weight information and linked list information of each token scheduler and the data stream, so that the distribution module 403 can perform service according to the linked list, and perform jump according to the weight, and store the data according to the weights. The number of tokens received by each data stream.
  • each scheduler or data stream is connected to each other through a linked list.
  • the configuration module 401, the bandwidth allocation module 402, the distribution module 403, the vacant stream module 405, and the token generation module 406 can all be implemented by hardware such as a DSP or a CPU; and the information storage module 404 can be implemented by a memory such as a ROM or a RAM.
  • Figure 5-1 shows the information storage content and format of the vacant stream in the vacant stream module 405.
  • the information of the vacant stream includes the following flag (NextFlag). When the flag is 1, it indicates that the token should be received immediately after the vacant stream.
  • the data stream, when marked as 0, indicates that it is followed by a vacant stream; the information of the vacant stream further includes an IDLE Weight, and the vacant stream shaping weight is used by the bandwidth allocation module 402 to calculate the time when the vacant stream is next served.
  • Figure 5-2 shows the information storage content and format of the total data stream in the vacant stream module 405.
  • the information of the total data stream includes the following flag (NextFlag), and when the flag is 1, it indicates that the token should be received immediately after the total data stream.
  • the total data stream is also marked as 0.
  • the information of the total data stream also includes the total data stream shaping weight (SUM Weight), and the total data stream shaping weight is calculated by the bandwidth allocation module 402.
  • the time at which the data stream is serviced next time; the information of the total data stream further includes the number of tokens (Token), which is used for the number of tokens added to the data stream each time in the token distribution module 403.
  • Figure 6-1 shows the storage content and format of the intermediate layer token scheduler in the information storage module 404405.
  • the information of the scheduler includes a lower pointer (NextPtr), which stores the sequence number of the scheduler, and is used to indicate the token.
  • NextPtr lower pointer
  • the scheduler number of the token should be received immediately after the scheduler stream
  • the scheduler information further includes a scheduler weight (SCH Weight), which is used by the calculation scheduler in the token distribution module 403 to obtain the next time.
  • SCH Weight scheduler weight
  • the 6-2 is a storage content and format of data stream information in the information storage module 404405.
  • the data stream information includes a lower pointer (NextPtr), where the parameter stores a sequence number of the data stream, and is used to indicate the data stream token distribution.
  • the data stream number of the token should be received immediately after the data stream;
  • the data stream information further includes a data flow shaping weight (Flow Weight), and the parameter is used by the token distribution module 403 to calculate the time when the data stream is next served;
  • the flow information also includes a data flow token (Flow Token) for storing the number of tokens received by the data stream.
  • Embodiment 4 Embodiment 4
  • FIG. 7 is a flowchart of a token distribution module performing token distribution according to an embodiment of the present invention, including: Step 700: Enable a token generation module to perform token distribution according to a preset interval.
  • Step 701 Determine whether the top-level token scheduler receives the token, and if yes, execute step 702; otherwise, continue to wait.
  • Step 702 Obtain a current pointer of the top-level token scheduler scheduler.
  • Step 703 Determine whether the current pointer points to a free flow, and if yes, execute step 704; otherwise, go to step 707.
  • Step 704 Take the weight of the residual stream.
  • Step 705 Calculate the next service time according to the weight of the spare stream.
  • Step 706 According to the next service time of the vacant flow, connect it to the scheduling queue corresponding to the next service time, and perform step 711;
  • Step 707 Send the token to the token distribution module 403.
  • Step 708 Obtain the weight of the total data stream.
  • Step 709 Calculate the next service time according to the weight of the total data stream.
  • Step 710 According to the next service moment of the total data stream, connect it to the corresponding location, and perform step 711.
  • Step 711 Update the current pointer of the top-level token scheduler, and go to step 701. Embodiment 5
  • FIG. 8 is a flowchart of token distribution of a token distribution module according to an embodiment of the present invention, including:
  • Step 800 Get the current pointer of the current layer WFQ.
  • Step 801 Determine whether the current pointer points to a data stream. If yes, execute step 802; otherwise, go to step 807.
  • the data stream here is a concept corresponding to the scheduler. If it is a data stream, the data stream directly gets the token. If it is a scheduler, it needs to continue to distribute until the underlying data stream acquires the token.
  • the intermediate layer WFQ scheduler group should not be too much, otherwise it will affect the system efficiency.
  • the simplest implementation can be without the intermediate layer WFQ, that is, the total data stream is directly the data stream.
  • Step 802 Distribute the token for the data stream pointed to by the current pointer.
  • Step 803 Take the weight of the current corresponding data stream.
  • Step 804 Calculate the next service moment according to the weight of the data stream.
  • Step 805 Connect the data stream to a lower pointer of a data stream according to a next service moment of the data stream.
  • the lower pointer of the certain data stream is the lower pointer of the last data stream of the scheduling queue corresponding to the next service time of the data stream.
  • the data stored in each data stream contains a lower pointer.
  • the dispatch queue service After the dispatch queue service completes a data stream, it will point the current pointer of the dispatch queue to the lower pointer of the data stream, and then the data stream itself is based on the current schedule. The time and its own weight, calculate its next service time, and transfer to the corresponding scheduling queue.
  • Step 806 Update the current pointer of the current layer WFQ.
  • Step 807 Obtain the weight of the scheduler of the current group
  • Step 808 Calculate, according to the weight of the scheduler of the current group, a next service time of the scheduler.
  • the calculation method is consistent with the foregoing data flow calculation method: ⁇ according to the weight of the scheduler, and the current service time of the upper scheduler where the scheduler is located, calculating the next service time of the scheduler, and transferring Go to the corresponding dispatch queue and link to the next pointer of the last scheduler of the dispatch queue.
  • Step 809 Connect the next pointer to the scheduler to the next pointer of a certain scheduler.
  • Step 810 Update the current pointer of the layer WFQ.
  • Step 811 Continue to distribute the token to the lower layer WFQ, go to 800.

Landscapes

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

Abstract

本发明公开了一种流量整形中添加令牌的方法及装置,其中方法为:配置各个数据流的权重,根据所述各个数据流的权重将所述各个数据流添加到对应的令牌调度器;根据各个令牌调度器的权重,依次将所述各个令牌调度器添加到对应的令牌调度器组,将全部令牌调度器组汇聚为总数据流的令牌调度器;将所述总数据流的令牌调度器添加到顶层令牌调度器;按照预设的周期为所述顶层令牌调度器中的所述总数据流的令牌调度器分配令牌,将分配的令牌下发至各个令牌调度器组、或将令牌下发至各个数据流。

Description

一种流量整形中添加令牌的方法及装置 技术领域
本发明涉及移动通信领域, 尤其涉及一种流量整形中添加令牌的方法及装 置。 背景技术
随着网络的发展, 共享介质的传输方式成为网络的主流。 一个连接的服务 等级可以从连接的有效性、 连接的时延、 连接的带宽这三个方面进行定义; 这 三个方面决定了服务质量。 而流量管理***则在控制连接的时延和带宽方面扮 演着重要的角色, 从而影响了连接的服务质量( QoS )。 确保服务质量的一个重 要方法是通过流量管理***进行流量管理。 所述流量管理***具有的功能主要 包括: 分类、 流量监管、 流量整形、 调度、 统计。 其中, 所述流量整形为数据 包在预设的速率上, 转发以遵守与下游设备的约定, 平滑流量的输出, 低下 游的拥塞。 在进行流量整形中, 为大量的不同的数据流实现令牌的添加是影响 到流量整形效果的关键因素。
目前, 通常会使用加权公平排队(WFQ, Weighted Fair Queuing ) 的方法 来进行流量整形, 具体为: 设置一个权重对应一个最大速率, 据此将各个数据 流配置的整形速率转化为相应地权重, 将剩余的权重分配给一个空余流以占用 剩余带宽。 但是, 上述 WFQ方法在为大量速率较小、 且速率相同的数据流添 加令牌时, 存在令牌在一段时间集中添加到空余流, 而没有数据流获取到令牌 的情形; 另外, WFQ的方法只能按比例分配带宽, 当对数据流整形的速率和大 于设置的最大权重时, 不存在空余流, 数据流只能按权重比例获取令牌, 每个 数据流可获取的令牌数量都达不到配置权重所应得的数量。 发明内容
有鉴于此, 本发明实施例提供一种流量整形中添加令牌的方法及装置, 能 通过均匀的下发令牌, 提高***带宽的利用率。
本发明实施例提供了一种流量整形中添加令牌的方法, 所述方法包括: 配置各个数据流的权重, 根据所述各个数据流的权重将所述各个数据流添 加到对应的令牌调度器;
根据各个令牌调度器的权重, 依次将所述各个令牌调度器添加到对应的令 牌调度器组, 将全部令牌调度器组汇聚为总数据流的令牌调度器;
将所述总数据流的令牌调度器添加到顶层令牌调度器;
按照预设的周期为所述顶层令牌调度器中的所述总数据流的令牌调度器分 配令牌, 所述顶层令牌调度器将分配的令牌下发至各个令牌调度器组、 或将令 牌下发至各个数据流。
本发明实施例还提供了一种流量整形中添加令牌的装置, 所述装置包括: 配置模块、 带宽分配模块、 分发模块及信息存储模块; 其中,
所述配置模块, 配置为配置各个数据流的权重, 根据所述各个数据流的权 重将所述各个数据流添加到对应的令牌调度器; 根据各个令牌调度器的权重, 依次将所述各个令牌调度器添加到对应的令牌调度器组, 将全部令牌调度器组 汇聚为总数据流的令牌调度器; 将所述总数据流的令牌调度器添加到顶层令牌 调度器; 以及将所述各个数据流的权重保存至信息存储模块;
所述带宽分配模块, 配置为按照预设的周期为所述顶层令牌调度器中的所 述总数据流的令牌调度器分配令牌, 将分配的令牌发送至分发模块;
所述分发模块, 配置为将令牌下发至各个令牌调度器组、 或将令牌下发至 各个数据流;
所述信息存储模块, 配置为保存所述各个数据流的权重。
本发明实施例所提供流量整形中添加令牌的方法及装置, 能为不同的数据 流配置相应的整形速率及整形权重, 并汇总成总数据流; 分发令牌时先在顶层 令牌调度器进行分发, 进行公平调度, 使令牌均勾下发。 从而通过均勾的下发 令牌, 使***实现对多个数据流进行整形, 提高带宽的利用率。 附图说明
图 1为本发明实施例流量整形中添加令牌的方法流程示意图一;
图 2为本发明实施例令牌分发过程的示例;
图 3为本发明实施例流量整形中添加令牌的方法流程示意图二;
图 4为本发明实施例流量整形中添加令牌的装置组成结构示意图; 图 5-1为本发明实施例空余流信息的存储内容及格式;
图 5-2为本发明实施例总数据流信息的存储内容及格式;
图 6-1为本发明实施例中信息存储模块中的调度器信息的存储内容及格式; 图 6-2为本发明实施例中信息存储模块中数据流信息的存储内容及格式; 图 7为本发明中带宽分配模块的带宽分配流程图;
图 8为本发明中令牌分发模块的令牌分发流程图。 具体实施方式
下面结合附图及具体实施例对本发明再作进一步详细的说明。
实施例一、
本发明实施例提供了一种流量整形中添加令牌的方法, 如图 1所示, 该方 法包括:
步骤 101 : 配置各个数据流的权重, 根据所述各个数据流的权重将所述各 个数据流添加到对应的令牌调度器。
步骤 102: 根据各个令牌调度器的权重, 依次将所述各个令牌调度器添加 到对应的令牌调度器组, 将全部令牌调度器组汇聚为总数据流的令牌调度器。
步骤 103: 将所述总数据流的令牌调度器添加到顶层令牌调度器。
步骤 104: 按照预设的周期为所述顶层令牌调度器中的所述总数据流的令 牌调度器分配令牌, 所述顶层令牌调度器将分配的令牌下发至各个令牌调度器 组、 或将令牌下发至各个数据流。
其中, 所述配置各个数据流的权重, 包括: 配置所述各个数据流的整形速 率, 并将所述整形速率转换为所述各个数据流对应的权重。 所述转换的方法为 现有技术, 这里不做赞述。
优选地, 执行步骤 101之前, 还包括: 将当前空余流的整形速率配置为最 大速率, 将所述空余流的整形速率转换为权重。
执行步骤 101之前, 还可以包括: 预设令牌调度器组的层数, 比如, 可以 为两层, 即将数据流直接添加到总数据流的令牌调度器中; 或者,设置为三层, 即增加一个中间组别, 将某一权重范围内的数据流添加到该组别中。
其中, 所述根据各个令牌调度器的权重, 依次将所述各个令牌调度器添加 到对应的令牌调度器组之前, 还会计算得到各个令牌调度器的权重; 所述计算 可以为每个令牌调度器挂接的全部数据流的权重之和、 或每个令牌调度器挂接 的全部令牌调度器的权重之和。
优选地, 所述将全部令牌调度器组汇聚为总数据流的令牌调度器时, 还可 以包括: 计算所述总数据流的权重、 以及空余流的权重; 其中, 所述计算所述 总数据流的权重为: 全部挂接的令牌调度器组、 或数据流的权重之和。
优选地, 所述顶层令牌调度器按照预设的周期, 将令牌下发至各个令牌调 度器组、或将令牌下发至各个数据流之前,还可以包括: 调整总数据流的权重; 具体为: 判断所述总数据流的权重是否大于或等于预设的***最大权重,若是, 则将每个周期内下发的令牌的数量增加指定数值, 得到调整后的每个周期内下 发的令牌的数量, 并根据每个周期内下发的令牌的数量计算得到所述总数据流 的权重调整系数, 将所述权重调整系数与原所述总数据流的权重相乘, 得到调 整后的所述总数据流的权重。
所述将每个周期内下发的令牌的数量增加指定数值 , 得到调整后的每个周 期内下发的令牌的数量, 包括: 将每个周期内下发的令牌的数量 N加一, 得到 调整后的每个周期内下发的令牌的数量 N+1;
所述根据每个周期内下发的令牌的数量计算得到所述总数据流的权重调整 系数, 包括: 将所述每个周期内下发的令牌的数量 N、 与所述调整后的每个周 期内下发的令牌的数量 N+1的比值, 作为所述权重调整系数。
其中, 所述周期长度可以预设。
所述将所述总数据流的令牌调度器添加到顶层令牌调度器, 包括: 根据所 述总数据流的权重、 以及空余流的权重, 将总数据流的令牌调度器、 以及空余 流的令牌调度器添加到顶层令牌调度器中。
具体的, 调度器根据精度拥有 N个调度队列和一个轮转的时钟, 第一次(0 时刻)加入调度器的数据流会根据本身的权重加入到相应的队列; 调度器每次 服务的时刻对应着一个调度队列, 当前服务时刻的调度队列中的所有流(有多 层次时, 调度器组在上层来看也相当于流)都完成服务后, 调度器会根据当前 的服务时刻和***中存在流的调度队列, 计算出下一个服务时刻; 跳转到下一 个服务时刻后, 开始服务下一个时刻所对应的调度队列。 而调度队列中的流, 在每次被服务完之后都会根据自身的权重和当前的服务时刻, 计算出流的下一 个可以被服务的时候, 将流挂接到相应的调度队列中。
所述将令牌下发至各个数据流, 可以为: 各个数据流得到的令牌个数, 由 所述数据流的权重决定。 ***根据调度时刻服务对应的调度队列, 而各个数据 流根据本身权重加入到对应的调度队列中; 权重高的数据流被服务的几率高, 根据 WFQ调度算法, 在完成一轮调度中, 各个数据流得到的令牌比例等于其 权重比例。 其中, 所述 WFQ调度算法为现有技术, 这里不做赞述。
所述顶层令牌调度器按照预设的周期, 将令牌下发至各个令牌调度器组、 或将令牌下发至各个数据流, 包括: 顶层令牌调度器根据服务周期指针, 判断 当前周期下发令牌至空余流或总数据流, 若为空余流, 则根据所述空余流的权 重计算得到所述空余流下一服务周期指针;
若为总数据流, 则根据所述总数据流的权重计算所述总数据流对应的下一 服务周期指针, 将所述令牌发至所述总数据流的下层调度器, 将所述下层调度 器作为当前层调度器, 判断所述当前层调度器挂接的是否为数据流, 若是, 则 为所述数据流的令牌桶添加对应的令牌数, 根据所述数据流的权重, 计算其下 一服务周期指针, 完成本次令牌分发; 否则, 根据所述当前层令牌调度器的权 重计算其下一服务周期指针。
优选地, 所述顶层令牌调度器按照预设的周期, 将令牌下发至各个令牌调 度器组、 或将令牌下发至各个数据流之后, 所述方法还包括: 当任意一个数据 流得到令牌后, 根据所述令牌对应的整形字节数, 确定所述数据流对应的整形 字节数。 具体的, 流量整形***和外部***合作, 根据每次分发的时钟周期和 字节数, 可以计算出***的总带宽, 所以***在一开始设计时, 确定了总带宽 和每次分发的时钟周期 , 也就决定了每次分发的令牌数与整形字节数的对应关 系。
所述按照预设的周期为所述顶层令牌调度器中的所述总数据流的令牌调度 器分配令牌之前, 所述方法还包括: 按照预设的周期产生令牌。
本发明实施例通过层次化 WFQ调度的方式, 为不同的数据流配置相应的 整形速率及整形权重, 并汇总成总数据流; 分发令牌时先在顶层根据需要扩展 带宽后, 让数据流的总和与空余流进行公平调度, 使令牌均匀下发, 还可选择 在中间层 WFQ对各组带宽的数据流令牌再次均匀, 实现了对多个数据流进行 整形, 且获得了良好的效果。
在采用本发明实施例后 , 令牌分发的过程可以如图 2所示:
在 1T时刻 , 将令牌分发给数据流 IDLE;
在 2T时刻, 将令牌分发给数据流 IDLE;
在 3T时刻, 将令牌分发给数据流 A;
在 4T时刻 , 将令牌分发给空余流 IDLE;
在 5T时刻, 将令牌分发给数据流 IDLE;
在 6T时刻, 将令牌分发给数据流 B;
在 7T时刻, 将令牌分发给数据流 IDLE;
在 8T时刻 , 将令牌分发给数据流 IDLE;
在 9T时刻, 将令牌分发给数据流 C;
在 10T时刻, 将令牌分发给数据流 IDLE; 同样地以 10T作为一个周期, 按照上述步骤, 重复令牌的分发, 这样数据 流 A得到十分之一的令牌, 数据流 A得到的整形令牌即为 IGbps, 同样数据流 B、 C得到的整形令牌都为 IGbps, 空余流消耗了 7Gbps的整形令牌; 未采用本 发明时, 数据流和空余流获取令牌的时刻比较集中, 而采用本发明, 数据流和 空余流获取令牌的时刻则相对均匀。
令牌产生周期间隔 T可才艮据流量管理***的带宽与时钟频率进行调整, 相 同的流量管理***带宽与时钟频率, 不同的间隔 T则每个整形令牌可代表不同 的令牌字节数。
顶层扩展了带宽后, 也可突破流量管理***的处理能力, 为各个数据流分 发配置的带宽相符合的令牌数, 增强***的带宽利用率。 实施例二、
图 3为本发明中实现对各个数据流分发整形令牌的方法的流程图, 其中主 要实现过程为:
步骤 300: 初始化各层 WFQ, 将各个 WFQ和总数据流的权重设置为 0。 步骤 301: 将空余流的整形速率配置为最大值, 并将所述空余流的整形速 率转换为权重后, 将所述空余流加入到顶层令牌调度器。
步骤 302:判断是否当前所有数据流均已配置完成,若是,则执行步骤 307; 否则, 执行步骤 303。
步骤 303: 从未配置整形速率的数据流中选取任意一个数据流作为当前数 据流, 配置所述当前数据流的整形速率, 并将所述当前数据流的整形速率转换 为所述当前数据流的权重。
步骤 304: 根据所述当前数据流的权重, 将所述当前数据流添加到对应的 WFQ令牌调度器组中; 或者, 根据所述 WFQ令牌调度器的权重, 将所述 WFQ 令牌调度器添加到对应的令牌调度器组中。
步驟 305: 将所述 WFQ令牌调度器组的权重、与所述当前数据流的权重相 加, 得到所述 WFQ令牌调度器组更新后的权重。 步驟 306: 判断所述 WFQ令牌调度器组是否为总数据流, 若是, 则转到步 骤 302; 否则, 执行步骤 304。
步骤 307: 判断当前总数据流的权重是否大于或等于预设的***最大权重, 若是, 则执行步骤 308; 否则, 执行步骤 310。
步骤 308: 将每个周期下发的令牌数 N加 1, 得到调整后的每个周期内下 发的令牌的数量 N+ l。
步骤 309: 将总数据流权重调整至当前权重的 N/N+1倍, 得到调整后的总 数据流权重, 转到步骤 307。
步骤 310: 将***的最大权重减去当前总数据流的权重, 得到更新后到的 空余流的权重。
步骤 311:将总数据流 WFQ令牌调度器加入到顶层令牌调度器令牌调度器。 步骤 312: 使能带宽分配模块, 为顶层令牌调度器的总数据流或空余流分 发令牌。
步骤 313: 等待到达令牌下发时刻, 顶层令牌调度器判断当前时刻接收令 牌为空余流令牌或总数据流令牌, 若为空余流, 则执行步骤 314; 若为总数据 流, 则执行步骤 315。
这里, 所述顶层令牌调度器获取到的令牌, 为根据 WFQ调度算法获取, 比如, 调度器会根据当前调度时刻选择服务的调度队列的第一个流, 顶层调度 只有总数据流或空余流这两个流, 可能某个时刻在同一调度队列下, 每次只服 务一个队列, 然后服务完的队列要转移, 加入到其他调度队列。
步骤 314: 根据所述空余流的权重计算下一服务时刻, 将空余流转移到相 应的调度队列中, 转到步骤 313。
其中, 所述计算可以为根据 WFQ调度算法进行计算, 比如, 某个数据流 被服务完后 ,会根据所述数据流的所在调度器对应的当前时刻和数据流的权重 , 计算出对该数据流的下一个服务时刻,然后将流加入到该时刻对应的调度队列。
步骤 315: 根据总数据流的权重计算其下一服务时刻。
步骤 316: 将令牌发往下层的数据流或调度器。 比如, 当下层为数据流时, 直接为数据流加上当前***的令牌值; 当下层为调度器时, 需要调度器根据 WFQ调度算法分发令牌, 最终把令 牌加到最底层被服务的数据流 ,每次从最顶层到最底层数据流这一调度周期里 , 只有一个数据流会最终得到令牌。
步骤 317: 判断当前层次 (步驟 316所述下层)是否为调度器, 若是, 开 始向当前层次的所述调度器下发令牌。
步骤 318: 判断当前层次的所述令牌调度器挂接的是否为数据流, 若是, 则执行步骤 320; 否则, 执行步骤 319。
步骤 319:根据所述令牌调度器的权重计算其下一服务时刻,转到步骤 316。 步骤 320: 为所述数据流的令牌桶添加对应的令牌数。
步骤 321: 根据所述数据流的权重, 计算所述数据流下一服务时刻, 完成 本次令牌分发。 实施例三、
相应于实施例二所述的方法, 本发明实施例进而提出了一种实现流量整形 令牌的装置, 如图 4所示, 该装置包括: 配置模块 401、 带宽分配模块 402、 分 发模块 403及信息存储模块 404; 其中,
所述配置模块 401 , 配置为配置各个数据流的权重, 根据所述各个数据流 的权重将所述各个数据流添加到对应的令牌调度器; 才艮据各个令牌调度器的权 重, 依次将所述各个令牌调度器添加到对应的令牌调度器组, 将全部令牌调度 器组汇聚为总数据流的令牌调度器; 将所述总数据流的令牌调度器添加到顶层 令牌调度器; 以及将所述各个数据流的权重保存至信息存储模块 404;
所述带宽分配模块 402, 配置为按照预设的周期为所述顶层令牌调度器中 的所述总数据流的令牌调度器分配令牌, 将分配的令牌发送至分发模块 403; 所述分发模块 403, 配置为将令牌下发至各个令牌调度器组、 或将令牌下 发至各个数据流;
所述信息存储模块 404, 配置为保存所述各个数据流的权重。 所述配置模块 401 , 配置为配置所述各个数据流的整形速率, 并将所述整 形速率转换为所述各个数据流对应的权重。
所述装置还包括: 空余流模块 405 , 配置为将当前空余流的整形速率配置 为最大速率, 将所述空余流的整形速率转换为权重。
所述配置模块 401, 配置为判断所述总数据流的权重是否大于或等于预设 的***最大权重, 若是, 则将每个周期内下发的令牌的数量增加指定数值, 得 到调整后的每个周期内下发的令牌的数量, 并根据每个周期内下发的令牌的数 量计算得到所述总数据流的权重调整系数, 将所述权重调整系数与原所述总数 据流的权重相乘, 得到调整后的所述总数据流的权重; 否则, 不做调整。
其中, 所述配置模块, 配置为将每个周期内下发的令牌的数量 N加一, 得 到调整后的每个周期内下发的令牌的数量 N+1 ; 以及将所述每个周期内下发的 令牌的数量 N、 与所述调整后的每个周期内下发的令牌的数量 N+1的比值, 作 为所述权重调整系数; N为***每次下发的令牌个数。
所述带宽分配模块 402,配置为根据所述顶层令牌调度器的服务周期指针, 判断当前周期下发令牌至空余流或总数据流, 若为空余流, 则根据所述空余流 的权重计算得到所述空余流下一服务周期指针; 若为总数据流, 则根据所述总 数据流的权重计算所述总数据流对应的下一服务周期指针, 将所述令牌发至分 发模块 403; 相应的, 所述分发模块 403, 配置为将所述总数据流的下层调度器 作为当前层调度器, 判断所述当前层调度器挂接的是否为数据流, 若是, 则为 所述数据流的令牌桶添加对应的令牌, 根据所述数据流的权重, 计算其下一服 务周期指针, 完成本次令牌分发; 否则, 根据所述当前层令牌调度器的权重计 算其下一服务周期指针。
所述装置还包括: 令牌产生模块 406, 配置为按照预设的周期产生令牌, 发送所述令牌值带宽分配模块 402; 相应的, 所述带宽分配模块 402, 配置为接 收所述令牌产生模块 406发来的令牌。
所述配置模块 401 , 配置为为每个数据流配置整形速率并转换为整形权重, 存储到信息存储模块 404, 根据所述数据流的整形权重将各个数据流添加到令 牌分发模块 403中。
所述空余流模块 405, 配置为当接收到配置模块 401所配置的数据流整形 权重时, 将当前的总数据流权重加上新数据流的整形权重得到新的总数据流权 重,当总数据流权重大于最大权重时进行一定比例调整得到新的总数据流权重, 将***最大权重减去总数据流整形权重得到新的空余流整形权重, 根据空余流 和总数据流的整形权重将其添加到带宽分配模块 402;
所述带宽分配模块 402, 配置为根据总数据流或者空余流的权重, 为空余 流分发令牌或者为令牌分发模块 403分发令牌。
所述令牌分发模块 403, 配置为根据设置的令牌调度器或数据流的权重往 下传递, 最终为各个数据流分发令牌。
所述信息存储模块 404, 配置为存储总数据流和空余流的权重, 每次下发 的令牌个数 N, 各数据流和中间层 WFQ的权重信息与链表信息, 存储各个数 据流所接收到的令牌个数。
该装置还包括令牌产生模块 406, 配置为根据流量管理***的处理能力, 按照预先设置的间隔周期性产生令牌, 将令牌传递给带宽分配模块 402。
所述空余流模块 405配置为在***上电后将总数据流整形权重配置为 0, 将空余流的整形权重配置为最大值。
配置模块 401 , 配置为将新添加的数据流的整形速率转换为整形权重, 各 个数据流的权重存储于信息存储模块 404, 将新增加的数据流根据其权重计算 其服务时刻, 然后将新增的数据流添加到分发模块 403, 同时将新增加的数据 流的整形权重通知空余流模块 405;
空余流模块 405, 配置为在***上电后将空余流的整形权重配置为最大值, 将总数据流的整形权重配置为 0, 当接收到配置模块 401所配置的数据流整形 权重时, 将当前的总数据流整形权重加上数据流整形权重得到新的总数据流整 形权重, 并在超过最大权重时进行按比例调整, 得到新的总数据流整形权重, 将***最大权重减去当前的总数据流整形权重得到新的空余流整形权重, 同时 该模块还存储了每次下发的令牌个数、 总数据流和空余流的 WFQ调度链表中 的下指针信息;
令牌产生模块 406, 配置为根据流量管理***的处理能力, 按照预先设置 的间隔周期性产生令牌, 将令牌传递给带宽分配模块 402以实现令牌的进一步 分发;
带宽分配模块 402, 配置为根据总数据流或者空余流的权重, 为空余流分 发令牌或将令牌传递给分发模块 403 , 该模块以链表的方式管理总数据流和空 余流;
分发模块 403, 配置为根据配置的各层令牌调度器和各个数据流的权重, 逐层传递, 为各个数据流分发令牌, 该模块以链表的方式管理各个令牌调度器 和数据流;
信息存储模块 404, 配置为存储各个令牌调度器和数据流的权重信息与链 表信息, 以使分发模块 403能够根据链表逐一对各个调度器或数据流进行服务 与根据权重进行跳转, 同时存储各个数据流所接收到的令牌个数。
在令牌分发的过程中, 各调度器或数据流是通过链表相互连接的。
配置模块 401、 带宽分配模块 402、 分发模块 403、 空余流模块 405、 令牌 产生模块 406均可以由 DSP或 CPU等硬件实现; 所述信息存储模块 404可以 由存储器, 比如 ROM或 RAM等。 图 5-1为空余流模块 405中的空余流的信息存储内容及格式, 空余流的信 息包括下标记(NextFlag ), 下标记为 1的时候表示紧接着空余流后应接收令牌 的为总数据流, 下标记为 0的时候表示紧接着还是空余流; 空余流的信息还包 括空余流整形权重 ( IDLE Weight ), 空余流整形权重用于带宽分配模块 402计 算空余流下一次得到服务的时刻。
图 5-2为空余流模块 405中的总数据流的信息存储内容及格式, 总数据流 的信息包括下标记(NextFlag ), 下标记为 1的时候表示紧接着总数据流后应接 收令牌的还是总数据流, 下标记为 0则为空余流; 总数据流的信息还包括总数 据流整形权重 ( SUM Weight ), 总数据流整形权重用带宽分配模块 402计算总 数据流下一次得到服务的时刻; 总数据流的信息还包括令牌数(Token ), 令牌 数用于令牌分发模块 403中每次为数据流添加的令牌数。 图 6-1为信息存储模块 404405中的中间层令牌调度器的存储内容及格式, 调度器的信息包括下指针(NextPtr ), 该参数存储的是调度器的序列号, 用于 指示令牌分发模块 403中, 紧接着此调度器流后应接收令牌的调度器编号; 调 度器信息还包括调度器权重(SCH Weight ),该参数用于令牌分发模块 403中计 算调度器下一次得到服务的时刻;
图 6-2为信息存储模块 404405中的数据流信息的存储内容及格式,数据流 的信息包括下指针(NextPtr ), 该参数存储的是数据流的序列号, 用于指示数 据流令牌分发中, 紧接着此数据流后应接收令牌的数据流编号; 数据流信息还 包括数据流整形权重 (Flow Weight ), 该参数用于令牌分发模块 403计算数据 流下一次得到服务的时刻; 数据流信息还包括数据流整形令牌 ( Flow Token ), 用于存储此数据流接收到的令牌个数。 实施例四、
图 7为本发明实施例中带宽分配模块进行令牌分发的流程图, 包括: 步骤 700: 使能令牌产生模块, 按照预设的间隔进行令牌分发。
步骤 701 : 判断顶层令牌调度器是否接收到令牌, 若是, 则执行步骤 702; 否则, 继续等待。
步骤 702: 获取顶层令牌调度器调度器的当前指针。
步骤 703: 判断所述当前指针是否指向空余流, 若是, 则执行步骤 704; 否 则, 执行步骤 707。
步骤 704: 取空余流的权重。
步骤 705: 根据所述空余流的权重计算其下一服务时刻。
步骤 706: 根据所述空余流的下一个服务时刻将其连接到所述下一服务时 刻对应的调度队列, 执行步驟 711 ; 步驟 707: 将令牌发送到令牌分发模块 403。
步骤 708: 获取总数据流的权重。
步骤 709: 根据所述总数据流的权重计算其下一个服务时刻。
步骤 710: 根据所述总数据流的所述下一个服务时刻, 将其连接到相应位 置, 执行步骤 711。
步骤 711 : 更新顶层令牌调度器的当前指针, 转到步骤 701。 实施例五、
图 8为本发明实施例中令牌分发模块的令牌分发流程图, 包括:
步骤 800: 获取当前层 WFQ的当前指针。
步骤 801 : 判断当前指针指向的是否为数据流, 若是, 则执行步骤 802; 否 则, 执行步骤 807。
此处的数据流, 是与调度器相对应的概念, 如果是数据流, 则数据流直接 得到令牌, 如果是调度器, 还需要继续往下分发, 直到底层的数据流获取令牌。
这里相当于一个递归操作的过程, 所以中间层 WFQ调度器组不宜过多, 否则影响***效率, 最简单的实施可以没有中间层 WFQ, 即总数据流下面就直 接是数据流。
步骤 802: 为当前指针指向的数据流分发令牌。
步骤 803: 取当前对应的数据流的权重。
步骤 804: 根据数据流的权重计算其下一个服务时刻。
步骤 805: 根据数据流的下一个服务时刻, 将所述数据流连接到某个数据 流的下指针。
其中, 所述某个数据流的下指针为数据流下一服务时刻所对应的调度队列 最后一个数据流的下指针。 比如, 图 6-2, 每个数据流存储的数据包含一个下指 针, 调度队列服务完成一个数据流后, 会将调度队列的当前指针, 指向数据流 的下指针, 然后数据流本身根据当前调度时刻和本身权重, 计算出它的下一服 务时刻, 并转移到所对应的调度队列。 步驟 806: 更新当前层 WFQ的当前指针。
步骤 807: 获取当前组的调度器的权重;
步骤 808: 根据所述当前组的调度器的权重, 计算得到所述调度器的下一 个服务时刻;
其中, 计算方法与前述的数据流计算方法一致: ^^据调度器的权重, 和所 述调度器所在的上层调度器的当前服务时刻, 计算出所述调度器的下一服务时 刻, 并转移到所对应的调度队列,链接到调度队列的最后一个调度器的下指针。
步骤 809: 根据所述调度器的下一个服务时刻, 将其连接到某个调度器的 下指针。
步骤 810: 更新本层 WFQ的当前指针。
步骤 811: 继续向下层 WFQ分发令牌, 转到 800。
以上所述, 仅为本发明的较佳实施例而已, 并非用于限定本发明的保护 范围。

Claims

权利要求书
1、 一种流量整形中添加令牌的方法, 所述方法包括:
配置各个数据流的权重, 根据所述权重将所述各个数据流添加到对应的令 牌调度器;
根据各个令牌调度器的权重, 依次将所述各个令牌调度器添加到对应的令 牌调度器组, 将全部令牌调度器组汇聚为总数据流的令牌调度器;
将所述总数据流的令牌调度器添加到顶层令牌调度器;
按照预设的周期为所述顶层令牌调度器中所述总数据流的令牌调度器分配 令牌, 所述顶层令牌调度器将分配的令牌下发至各个令牌调度器组、 或将令牌 下发至各个数据流。
2、 根据权利要求 1所述的方法, 其中, 所述配置各个数据流的权重, 包 括:
配置所述各个数据流的整形速率, 并将所述整形速率转换为所述各个数据 流对应的权重。
3、 根据权利要求 1所述的方法, 其中, 所述配置各个数据流的权重之前, 所述方法还包括:
将当前空余流的整形速率配置为最大速率, 将所述空余流的整形速率转换 为权重。
4、 根据权利要求 1-3任一项所述的方法, 其中, 所述按照预设的周期为所 述顶层令牌调度器中的所述总数据流的令牌调度器分配令牌, 所述顶层令牌调 度器将分配的令牌下发至各个令牌调度器组、或将令牌下发至各个数据流之前, 所述方法还包括:
判断所述总数据流的权重是否大于或等于预设的***最大权重, 若是, 则 将每个周期内下发的令牌的数量增加指定数值, 得到调整后的每个周期内下发 的令牌的数量, 并根据每个周期内下发的令牌的数量计算得到所述总数据流的 权重调整系数, 将所述权重调整系数与原所述总数据流的权重相乘, 得到调整 后的所述总数据流的权重。
5、 根据权利要求 4所述的方法, 其中, 所述将每个周期内下发的令牌的数 量增加指定数值, 得到调整后的每个周期内下发的令牌的数量, 包括:
将每个周期内下发的令牌的数量加一, 得到调整后的每个周期内下发的令 牌的数量;
相应的, 所述才艮据每个周期内下发的令牌的数量计算得到所述总数据流的 权重调整系数, 包括:
将所述每个周期内下发的令牌的数量、 与所述调整后的每个周期内下发的 令牌的数量的比值, 作为所述权重调整系数。
6、 根据权利要求 4所述的方法, 其中, 所述按照预设的周期为所述顶层 令牌调度器中的所述总数据流的令牌调度器分配令牌, 所述顶层令牌调度器将 分配的令牌下发至各个令牌调度器组、 或将令牌下发至各个数据流, 包括: 根据所述顶层令牌调度器的服务周期指针, 判断当前周期下发令牌至空余 流或总数据流, 若为空余流, 则根据所述空余流的权重计算得到所述空余流下 一服务周期指针;
若为总数据流, 则根据所述总数据流的权重计算所述总数据流对应的下一 服务周期指针, 将所述令牌发至所述总数据流的下层调度器, 将所述下层调度 器作为当前层调度器, 判断所述当前层调度器挂接的是否为数据流, 若是, 则 为所述数据流的令牌桶添加对应的令牌数, 根据所述数据流的权重, 计算所述 数据流的下一服务周期指针, 完成本次令牌分发; 否则, 根据所述当前层令牌 调度器的权重, 计算所述当前层令牌调度器的下一服务周期指针。
7、根据权利要求 1所述的方法, 其中, 所述按照预设的周期为所述顶层令 牌调度器中的所述总数据流的令牌调度器分配令牌之前, 所述方法还包括: 产 生令牌。
8、 一种流量整形中添加令牌的装置, 所述装置包括: 配置模块、 带宽分配 模块、 分发模块及信息存储模块; 其中,
所述配置模块, 配置为配置各个数据流的权重, 根据所述各个数据流的权 重将所述各个数据流添加到对应的令牌调度器; 根据各个令牌调度器的权重, 依次将所述各个令牌调度器添加到对应的令牌调度器组, 将全部令牌调度器组 汇聚为总数据流的令牌调度器; 将所述总数据流的令牌调度器添加到顶层令牌 调度器; 以及将所述各个数据流的权重保存至信息存储模块;
所述带宽分配模块, 配置为按照预设的周期为所述顶层令牌调度器中的所 述总数据流的令牌调度器分配令牌, 将分配的令牌发送至分发模块;
所述分发模块, 配置为将令牌下发至各个令牌调度器组、 或将令牌下发至 各个数据流;
所述信息存储模块, 配置为保存所述各个数据流的权重。
9、 根据权利要求 8所述的装置, 其中,
所述配置模块, 配置为配置所述各个数据流的整形速率, 并将所述整形速 率转换为所述各个数据流对应的权重。
10、 根据权利要求 8所述的装置, 其中, 所述装置还包括: 空余流模块, 配置为将当前空余流的整形速率配置为最大速率, 将所述空余流的整形速率转 换为权重。
11、 根据权利要求 8-10任一项所述的装置, 其中,
所述配置模块, 配置为判断所述总数据流的权重是否大于或等于预设的系 统最大权重, 若是, 则将每个周期内下发的令牌的数量增加指定数值, 得到调 整后的每个周期内下发的令牌的数量, 并根据每个周期内下发的令牌的数量计 算得到所述总数据流的权重调整系数, 将所述权重调整系数与原所述总数据流 的权重相乘, 得到调整后的所述总数据流的权重。
12、 根据权利要求 11所述的装置, 其中,
所述配置模块, 配置为将每个周期内下发的令牌的数量加一, 得到调整后 的每个周期内下发的令牌的数量;
以及将所述每个周期内下发的令牌的数量、 与所述调整后的每个周期内下 发的令牌的数量的比值, 作为所述权重调整系数。
13、 根据权利要求 11所述的装置, 其中, 所述带宽分配模块, 配置为根 据所述顶层令牌调度器的服务周期指针, 判断当前周期下发令牌至空余流或总 数据流, 若为空余流, 则根据所述空余流的权重计算得到所述空余流下一服务 周期指针; 若为总数据流, 则根据所述总数据流的权重计算所述总数据流对应 的下一服务周期指针, 将所述令牌发至分发模块;
相应的, 所述分发模块, 配置为将所述总数据流的下层调度器作为当前层 调度器, 判断所述当前层调度器挂接的是否为数据流, 若是, 则为所述数据流 的令牌桶添加对应的令牌, 根据所述数据流的权重, 计算所述数据流的下一服 务周期指针, 完成本次令牌分发; 否则, 根据所述当前层令牌调度器的权重, 计算所述当前层令牌调度器的下一服务周期指针。
14、根据权利要求 8所述的装置, 其中, 所述装置还包括: 令牌产生模块, 配置为产生令牌, 发送所述令牌值带宽分配模块;
相应的, 所述带宽分配模块, 配置为接收所述令牌产生模块发来的令牌。
PCT/CN2014/077926 2013-12-25 2014-05-20 一种流量整形中添加令牌的方法及装置 WO2015096362A1 (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US15/107,771 US10205671B2 (en) 2013-12-25 2014-05-20 Method and apparatus for adding token in traffic shaping
EP14873941.0A EP3089413A4 (en) 2013-12-25 2014-05-20 Method and apparatus for adding token in traffic shaping

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201310731611.9 2013-12-25
CN201310731611.9A CN104753809B (zh) 2013-12-25 2013-12-25 一种流量整形中添加令牌的方法及装置

Publications (1)

Publication Number Publication Date
WO2015096362A1 true WO2015096362A1 (zh) 2015-07-02

Family

ID=53477446

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2014/077926 WO2015096362A1 (zh) 2013-12-25 2014-05-20 一种流量整形中添加令牌的方法及装置

Country Status (4)

Country Link
US (1) US10205671B2 (zh)
EP (1) EP3089413A4 (zh)
CN (1) CN104753809B (zh)
WO (1) WO2015096362A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112583739A (zh) * 2019-09-30 2021-03-30 华为技术有限公司 调度方法和装置

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107204930B (zh) * 2016-03-17 2020-05-19 深圳市中兴微电子技术有限公司 令牌添加方法及装置
US10225620B1 (en) * 2017-08-25 2019-03-05 Telefonaktiebolaget Lm Ericsson (Publ) System and method for effectuating selective ABR segment delivery for ABR bandwidth control
CN112205058A (zh) * 2018-03-27 2021-01-08 诺基亚通信公司 基于一个或多个令牌计数器的网络切片
US10819646B2 (en) * 2018-10-18 2020-10-27 Ciena Corporation Systems and methods for distributing unused bandwidth of metered flows in an envelope based on weights
CN112805971B (zh) * 2019-01-07 2022-07-12 华为技术有限公司 一种流量整形方法及相关设备
CN112995058B (zh) * 2019-12-13 2023-11-24 深圳市中兴微电子技术有限公司 一种令牌的调整方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101599905A (zh) * 2009-06-30 2009-12-09 中兴通讯股份有限公司 一种实现流量整形令牌添加的方法、装置及***
CN101834786A (zh) * 2010-04-15 2010-09-15 华为技术有限公司 队列调度的方法和装置
CN102270104A (zh) * 2011-07-14 2011-12-07 华中科技大学 虚拟化环境中动态磁盘带宽分配方法
CN103259743A (zh) * 2012-02-15 2013-08-21 中兴通讯股份有限公司 基于令牌桶的输出流量控制的方法及装置

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7190684B2 (en) * 2000-11-22 2007-03-13 Lucent Technologies Inc. Method and system for UMTS packet transmission scheduling on shared downlink channels
WO2002088879A2 (en) * 2001-04-27 2002-11-07 Wanwall, Inc. Weighted fair queuing-based methods and apparatus for protecting against overload conditions on nodes of a distributed network
JP3705353B2 (ja) * 2001-05-22 2005-10-12 日本電気株式会社 パケットスケジューリング装置及び方法
US7545815B2 (en) * 2004-10-18 2009-06-09 At&T Intellectual Property Ii, L.P. Queueing technique for multiple sources and multiple priorities
CN101035389A (zh) * 2006-03-08 2007-09-12 上海交通大学 在无源光网络的远端设备内进行带宽分配的***和方法
WO2009130218A1 (en) * 2008-04-24 2009-10-29 Xelerated Ab A traffic manager and a method for a traffic manager
EP2432170A1 (en) * 2010-09-16 2012-03-21 Alcatel Lucent A token bucket based data packet traffic shapping device
US8693489B2 (en) * 2011-04-28 2014-04-08 Alcatel Lucent Hierarchical profiled scheduling and shaping
CN103026671B (zh) * 2011-08-01 2016-01-20 华为技术有限公司 一种流量整形的方法及设备
US8681616B2 (en) * 2011-08-12 2014-03-25 Telefonaktiebolaget L M Ericsson (Publ) Scheduling under congestion with traffic load-based scaling

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101599905A (zh) * 2009-06-30 2009-12-09 中兴通讯股份有限公司 一种实现流量整形令牌添加的方法、装置及***
CN101834786A (zh) * 2010-04-15 2010-09-15 华为技术有限公司 队列调度的方法和装置
CN102270104A (zh) * 2011-07-14 2011-12-07 华中科技大学 虚拟化环境中动态磁盘带宽分配方法
CN103259743A (zh) * 2012-02-15 2013-08-21 中兴通讯股份有限公司 基于令牌桶的输出流量控制的方法及装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112583739A (zh) * 2019-09-30 2021-03-30 华为技术有限公司 调度方法和装置

Also Published As

Publication number Publication date
EP3089413A1 (en) 2016-11-02
CN104753809B (zh) 2019-04-02
EP3089413A4 (en) 2017-04-19
US10205671B2 (en) 2019-02-12
US20160380903A1 (en) 2016-12-29
CN104753809A (zh) 2015-07-01

Similar Documents

Publication Publication Date Title
WO2015096362A1 (zh) 一种流量整形中添加令牌的方法及装置
CN107733689A (zh) 基于优先级的动态加权轮询调度策略方法
CN106793133B (zh) 一种电力无线通信***中保障多业务QoS的调度方法
US9042224B2 (en) Method and system for weighted fair queuing
US9112809B2 (en) Method and apparatus for controlling utilization in a horizontally scaled software application
CN104348751B (zh) 虚拟输出队列授权管理方法及装置
CN101414958B (zh) 一种业务调度方法及装置
CN101969409A (zh) 一种基于定时器和mdrr的队列调度方法
CN103179570B (zh) 应用在分散式分时多工***的资源分配方法与***
CN102387076A (zh) 一种结合整形的分级式队列调度方法
CN104009936A (zh) 一种基于动态权重计算的队列调度方法
CN108449160A (zh) 报文发送方法及装置
JP2005510957A (ja) トラフィックシェイピングのための階層的クレジットキューイング
CN113535393A (zh) 异构边缘计算中卸载dag任务的计算资源分配方法
CN100450076C (zh) 用于多输入单输出的网络流量整形和带宽分配的方法
WO2016000326A1 (zh) 一种用户队列调度的方法、装置及计算机存储介质
TW201044819A (en) Bandwidth distribution apparatus for network switch and the constribution method thereof
WO2014089779A1 (zh) 用户调度方法及其装置
US10742710B2 (en) Hierarchal maximum information rate enforcement
CN104079500B (zh) 一种队列调度方法和装置
Chang et al. Block-based fair queuing: an efficient network QoS provisioning algorithm for high-speed data transmission
CN106713172B (zh) 一种调度报文的方法和装置
Chakravarthy et al. Modified Opportunistic Deficit Round Robin Scheduling for improved QOS in IEEE 802.16 WBA networks
CN108011844A (zh) 一种应用于交换芯片的pwdrr方法
JP2013236124A (ja) パケットスケジューリング方法および通信装置

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 14873941

Country of ref document: EP

Kind code of ref document: A1

REEP Request for entry into the european phase

Ref document number: 2014873941

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 2014873941

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 15107771

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE