Detailed Description
In order to make the objects, technical solutions and advantages of the present invention more apparent, the present invention will be described in detail with reference to the accompanying drawings and specific embodiments.
The method provided by the invention mainly comprises the following steps: acquiring cache state information of a switching network device; when the data frame congestion or overflow occurs in the buffer of the switching network device is determined according to the buffer state information, the data frame sending bandwidth used by each VOQ is adjusted according to the congestion or overflow condition.
Wherein the method may obtain one or more of the following cache state information: VOQ status information, FU buffer status information, and OQ status information. I.e. one or more of these status information is monitored.
The method can be divided into a centralized bandwidth control method and a distributed bandwidth control method according to different implementation bodies of the method, and the centralized bandwidth control method is described in detail first, and the structure form of the centralized bandwidth control method can be as shown in fig. 3, wherein a single-line arrow represents a signaling flow direction, and a double-line arrow represents a data flow direction.
First, a description is given of a case where the state of each VOQ is monitored: each FAU sends the state information of each VOQ set for the card connected with the FAU to a centralized scheduler, the centralized scheduler receives the state information of the VOQ sent by each FAU and monitors the state of each VOQ, and when the state information of a certain VOQ indicates that the length of a data frame queue in the VOQ exceeds a preset first length threshold value, the VOQ is determined to be congested.
When it is determined that the VOQ is congested, the following two adjustment methods may be adopted:
the first, centralized scheduler determines the OQ corresponding to the congested VOQ, and determines whether the output bandwidth of the OQ is left, that is, whether the standard configuration bandwidth of the OQ is greater than the data frame bandwidth currently used by the OQ; if the data frame transmission bandwidth is left, the difference value between the standard configuration bandwidth of the OQ and the data frame transmission bandwidth currently used by the OQ may be allocated to each VOQ corresponding to the OQ according to a preset allocation policy, and the adjustment information is provided to each VOQ corresponding to the OQ, and each VOQ adjusts its own data frame transmission bandwidth according to the adjustment information. The preset allocation policy may be an average allocation policy, a weighted average allocation policy, or the like.
The second, centralized scheduler determines the VOQs with residual transmission bandwidths among other VOQs corresponding to the same OQ as the congested VOQ, that is, the VOQs with standard configuration bandwidths larger than the currently used data frame transmission bandwidth, allocates the determined residual bandwidths of the VOQs to the congested VOQs, and provides the adjustment information to each VOQ corresponding to the OQ, and each VOQ adjusts its own data frame transmission bandwidth according to the adjustment information.
The two modes can also be used simultaneously, namely the congestion problem can not be solved after the first mode is adopted for distribution, and the second mode can be adopted again.
In the method, the adjustment of the transmission bandwidth of each VOQ can be realized by adopting a mode of setting a token bucket, each FAU injects tokens corresponding to the allocated transmission bandwidth into the token bucket of each VOQ according to the transmission bandwidth allocated to each VOQ, and each VOQ controls the transmission bandwidth according to the number of the tokens in the token bucket. The centralized scheduler may first send the scheduling information to the corresponding FAU, and each FAU adjusts the token injection rate to the token bucket of the VOQ according to the received scheduling information, thereby implementing adjustment of the transmission bandwidth of each VOQ. This manner can be adopted in the following embodiments, and is not described in detail.
When monitoring the buffer status of the FU, the FU sends the buffer status information of the FU to the centralized scheduler, and the centralized scheduler can judge whether the FU has buffer overflow according to the received buffer status information. Alternatively, each FAU may send the currently used data frame transmission bandwidth of each VOQ and the currently used data frame transmission bandwidth of each OQ to the centralized scheduler, determine a difference between the currently used data frame transmission bandwidth of each VOQ and the currently used data frame transmission bandwidth of each OQ, and determine that buffer overflow of the FU occurs if the determined difference is greater than the maximum buffer value of the FU.
When the centralized scheduler determines that FU buffer overflow occurs, the data frame sending bandwidth used by each VOQ is adjusted to 0, the adjustment information is provided for each VOQ, and each VOQ adjusts the data frame sending bandwidth of the VOQ according to the adjustment information. For example, when the centralized scheduler determines that FU buffer overflow occurs, a Close (Close) instruction may be sent to each FAU, each FAU stops injecting tokens into the token bucket, and each VOQ stops sending data frames. When the FU cache is recovered to be normal, the centralized scheduler sends an Open restart (Open) instruction to each FAU, each FAU injects tokens into the token bucket at the original token injection rate, and each VOQ recovers to send bandwidth.
In addition, the centralized scheduler may also adopt a hierarchical adjustment mode, if the centralized scheduler determines that the overflow degree of the FU buffer reaches the first standard, the transmission bandwidth of each VOQ is recovered when the transmission bandwidth of the data frame used by each VOQ is reduced to half of the transmission bandwidth of the currently used data frame and the FU buffer is recovered to be normal. And if the centralized scheduler determines that the overflow degree of the FU buffer memory reaches the second standard, adjusting the data frame sending bandwidth used by each VOQ to be 0, stopping sending the data frame of each VOQ, and recovering the sending bandwidth of each VOQ when the FU buffer memory is recovered to be normal. That is, when the FU buffer overflow condition is serious, the data frame transmission of each VOQ is stopped, and if the FU buffer condition is not serious, the data frame transmission bandwidth of each VOQ can be adjusted to half of the original bandwidth. Of course, the adjustment of 0 and the original half is merely an example, and other adjustment ratios may be used.
When the state of the OQ is monitored, each FAU sends state information of the OQ connected with each FAU to the centralized scheduler, the centralized scheduler receives the state information of the OQ, and when the state information of a certain OQ indicates that the queue length of the OQ is larger than a set second length threshold value, the situation that the data frame congestion occurs to the OQ is determined. In this case, the centralized scheduler may reduce the data frame transmission bandwidth of each VOQ corresponding to the OQ in which congestion is transmitted, and for example, the centralized scheduler may transmit a close command to each FAU corresponding to the OQ in which congestion occurs, and each FAU may stop the data frame transmission of the VOQ corresponding to the OQ. And when the OQ is recovered to be normal, an open instruction is sent to each FAU, and the sending bandwidth of each VOQ corresponding to the OQ is recovered.
The following describes the distributed bandwidth control method in detail, where the centralized bandwidth control method is to centralize the scheduling function on a centralized scheduler to be completed in a unified manner, and the distributed bandwidth control method is to distribute the scheduling function on each FAU to be completed. The distributed bandwidth control method can be divided into an out-band type and an in-band type according to different sending modes of the adjustment information, wherein the out-band type is used for transmitting the adjustment information through an additionally arranged signaling exchanger, the in-band type is used for transmitting the adjustment information through a multiplexing data channel, when the data channel is multiplexed, two queues are arranged in the data channel and are respectively used for transmitting signaling and data frames, the two queues can be subjected to priority setting, and a high-priority queue can be used for transmitting the signaling. The structure of the out-band type can be shown in fig. 4, and the structure of the in-band type can be shown in fig. 5, wherein the single-line arrows indicate the signaling flow direction, and the double-line arrows indicate the data flow direction.
First, a description is given of a case where the state of each VOQ is monitored: each FAU sends the state information of each VOQ set for the line card connected with the FAU to the FAU of the destination line card corresponding to each VOQ through a multiplexing data channel or a signaling exchanger, and receives the state information of the VOQ sent by the FAU taking the line card connected with the FAU as the destination line card. Each FAU monitors the received state information of each VOQ, and when the state information of a certain VOQ indicates that the length of a data frame queue in the VOQ exceeds a preset first length threshold value, the VOQ is determined to be congested.
When a certain FAU determines that the VOQ is congested, the following two adjustment methods can be adopted:
firstly, determining whether an output bandwidth of an OQ connected with an FAU, which is congested by the VOQ, is remained, namely judging whether a standard configuration bandwidth of the OQ is larger than a data frame bandwidth currently used by the OQ; if the data frame is left, the difference value between the standard configuration bandwidth of the OQ and the currently used data frame transmission bandwidth of the OQ can be allocated to each VOQ corresponding to the OQ according to a preset allocation strategy, and the adjustment information is provided to each VOQ corresponding to the OQ through a multiplexing data channel or a signaling exchanger; after each VOQ receives the adjustment information, the transmission bandwidth of the data frame of each VOQ is adjusted according to the adjustment information. The preset allocation policy may be an average allocation policy, a weighted average allocation policy, or the like.
And secondly, determining the FAU with the VOQ being congested, determining the VOQ with the standard configuration bandwidth larger than the currently used data frame sending bandwidth according to the state information of the received VOQ, allocating the difference value between the determined standard configuration bandwidth of the VOQ and the currently used data frame sending bandwidth of the VOQ to the VOQ with the congestion, multiplexing a data channel or a signaling exchanger, providing the adjustment information to each VOQ corresponding to the OQ, and adjusting the data frame sending bandwidth of each VOQ according to the received adjustment information.
The two modes can also be used simultaneously, namely the congestion problem can not be solved after the first mode is adopted for distribution, and the second mode can be adopted again.
In the method, the adjustment of the transmission bandwidth of each VOQ can be realized by adopting a mode of setting a token bucket, each FAU injects tokens corresponding to the allocated transmission bandwidth into the token bucket of each VOQ according to the transmission bandwidth allocated to each VOQ, and each VOQ controls the transmission bandwidth according to the number of the tokens in the token bucket. The centralized scheduler may first send the scheduling information to the corresponding FAU, and each FAU adjusts the token injection rate to the token bucket of the VOQ according to the received scheduling information, thereby implementing adjustment of the transmission bandwidth of each VOQ. This may be used in the following examples.
When monitoring the buffer status of the FU, the FU sends the buffer status information of the FU to each FAU, and each FAU can judge whether the FU has buffer overflow according to the received buffer information.
When each FAU determines that FU buffer overflow occurs, adjusting the data frame sending bandwidth used by each VOQ of the line card taking the connection line card connected with each FAU as the target line card to be 0, providing the adjustment information to each VOQ, and adjusting the data frame sending bandwidth of each VOQ according to the adjustment information. For example, when each FAU determines that FU buffer overflow occurs, it may send a Close (Close) command to the FAU of the line card that is the destination of the card connected to the FAU, each FAU stops injecting tokens into the token bucket, and each VOQ stops sending data frames. When FU cache is recovered to be normal, each FAU sends a restart (Open) instruction to each FAU of a line card which is connected with the FAU and serves as a target line card, each FAU injects tokens into a token bucket at the original token injection rate, and each VOQ recovers transmission bandwidth.
In addition, a hierarchical adjustment mode can be adopted, if each FAU determines that the overflow degree of the FU cache reaches the first standard, the data frame sending bandwidth used by each VOQ of the line card taking the connected line card as the target line card is reduced to be half of the currently used data frame sending bandwidth, and when the FU cache is recovered to be normal, the sending bandwidth of each VOQ of the line card taking the connected line card as the target line card is recovered. And if each FAU determines that the overflow degree of the FU cache reaches the second standard, adjusting the data frame sending bandwidth used by each VOQ of the line card taking the connecting line card of the FAU as the target line card to 0, stopping sending the data frame of each VOQ, and recovering the sending bandwidth of each VOQ when the FU cache is recovered to be normal. That is, when the FU buffer overflow condition is serious, the data frame transmission of each VOQ is stopped, and if the FU buffer condition is not serious, the data frame transmission bandwidth of each VOQ can be adjusted to half of the original bandwidth. Of course, the adjustment of 0 and the original half is merely an example, and other adjustment ratios may be used.
When the condition of the OQ is monitored, each FAU acquires the state information of the OQ connected with the FAU, and when the state information of the OQ indicates that the queue length of the OQ is greater than a set second length threshold, the data frame congestion of the OQ is determined. At this time, the FAU determining that the OQ is congested may reduce the data frame transmission bandwidth of each VOQ corresponding to the OQ in which congestion occurs, and provide the adjustment information to each VOQ corresponding to the OQ in which congestion occurs through the multiplexing data channel or the signaling switch, and each VOQ adjusts its own data frame transmission bandwidth according to the received adjustment information. For example, the FAU may transmit a close command to each FAU corresponding to the OQ transmitting congestion, and each FAU may stop transmitting the data frame of the VOQ corresponding to the OQ after receiving the close command. And when the OQ is recovered to be normal, an open instruction is sent to each FAU, and the sending bandwidth of each VOQ corresponding to the OQ is recovered.
In addition, each FAU can also send the currently used data frame sending bandwidth information of the VOQ connected with the FAU to the FAU corresponding to the target line card, and obtain the currently used data frame sending bandwidth information of the OQ connected with the FAU; and each FAU determines the difference value between the current data frame sending bandwidth used by the OQ connected with the FAU and the current data frame sending bandwidth used by each received VOQ, and when the determined difference value is greater than 0, the difference value is distributed to each VOQ corresponding to the OQ connected with the FAU. When the difference is greater than 0, that is, the data frame transmission bandwidth currently used by the OQ is greater than the sum of the data frame transmission bandwidths currently used by the corresponding VOQs, that is, the VOQs do not fully utilize the bandwidth, which causes bandwidth waste, so that the unused part can be redistributed, thereby fully utilizing the bandwidth.
The data frame transmission bandwidth currently used by the OQ may be a standard output bandwidth configured by the OQ, or an actual current transmission rate obtained by performing output speed measurement on the OQ set for the line card. If the PP has the linear speed processing capacity, the data frame transmission bandwidth currently used by the OQ can be kept constant no matter the packet size of the data frame output by the OQ, and the standard output bandwidth configured by the OQ is achieved; if the PP has no linear speed processing capability, the output bandwidth of the OQ is related to the packet size of the data frame, and therefore, the OQ needs to be output and speed-measured to obtain the actual current sending rate.
The present invention is not limited to a specific manner of initially allocating bandwidth of each VOQ, and a manner of allocating output bandwidth of an OQ to each VOQ corresponding to the OQ may be generally adopted, and a specific allocation may be an average allocation, a weighted average allocation, an on-demand allocation, or an allocation according to a priority, and is not described in detail herein.
The above is a detailed description of the method provided by the present invention, and the following is a detailed description of the system provided by the present invention. The system provided by the present invention can be divided into a centralized bandwidth control system and a distributed bandwidth control system, which are described below. Fig. 6 is a block diagram of a centralized bandwidth control system according to an embodiment of the present invention, in which a single-line arrow indicates a signaling flow direction, and a double-line arrow indicates a data frame flow direction. As shown in fig. 6, the system mainly includes: a centralized scheduler and a switched network device.
The centralized scheduler is used for acquiring the cache state information of the switching network device; when the data frame congestion or overflow occurs in the buffer of the switching network device is determined according to the buffer state information, the data frame sending bandwidth used by each VOQ in the switching network device is adjusted according to the congestion or overflow condition.
And the switching network device is used for providing self cache state information for the centralized scheduler.
The switching network device may include: FAU and VOQ set for each line card.
Each FAU is used for acquiring the state information of each VOQ set for the line card connected with the FAU and sending the acquired state information of the VOQ to the centralized scheduler.
And the VOQ is used for receiving the adjustment of the data frame transmission bandwidth of the VOQ by the centralized scheduler.
The switching network apparatus may further include: and the FU is used for sending the FU buffer state information to the centralized scheduler.
The FU may be provided with a physical interface, such as Peripheral Component Interface (PCI) or GE, providing the FU buffer status information to the centralized scheduler.
The switching network apparatus may further include: OQ set for each line card.
Each FAU may also be configured to obtain state information of the OQ set for the own connected line card and provide the state information of the OQ to the centralized scheduler.
The switching network apparatus may further include: a token bucket set for each VOQ for storing tokens allocated for each VOQ;
each FAU is further configured to adjust, according to the adjusted data frame transmission bandwidth of each VOQ, a rate of injecting tokens into the token bucket of each VOQ according to the token injection rate corresponding to the adjusted data frame transmission bandwidth of each VOQ.
Each VOQ transmits a data frame using a transmission bandwidth corresponding to the number of tokens in its token bucket.
That is to say, the process of providing the adjustment information to each VOQ by the centralized scheduler can be implemented in a token manner, that is, the centralized scheduler sends the adjustment information to the FAU corresponding to each VOQ, the FAU adjusts the rate of injecting tokens into the token bucket of each VOQ according to the token injection rate corresponding to the data frame sending bandwidth adjusted by each VOQ, and each VOQ sends a data frame using the sending bandwidth corresponding to the number of tokens in its token bucket, thereby implementing the adjustment of the sending bandwidth of the VOQ data frame.
As described in detail below for the centralized scheduler in the system, fig. 7 is a structure diagram of the centralized scheduler provided in the embodiment of the present invention, and as shown in fig. 7, the centralized scheduler includes: a status information acquisition unit 700, a monitoring unit 710 and an adjustment unit 720.
The state information obtaining unit 700 is configured to obtain the cache state information of the switching network device.
The monitoring unit 710 is configured to monitor the buffer status information, and send an adjustment notification to the adjusting unit 720 when it is determined that data frame congestion or overflow occurs in the buffer of the switching network device according to the buffer status information.
And an adjusting unit 720, configured to adjust, after receiving the adjustment notification, a data frame transmission bandwidth used by each VOQ according to the congestion or overflow condition.
Since the buffer status information of the switching network device acquired by the centralized scheduler may be one or any combination of the VOQ status information, the FU buffer status information, and the OQ status information, the centralized scheduler may also be one or any combination of the following three structures:
the first method comprises the following steps: when the buffer status information acquired by the status information acquiring unit 700 is status information of each VOQ, the monitoring unit 710 may include: a first judgment sub-unit 711 and a first notification transmission sub-unit 712.
The first determining subunit 711 is configured to determine, according to the received state information of the VOQ, whether the length of the data frame queue in the VOQ exceeds a preset first length threshold.
A first notification transmission subunit 712, configured to, when the determination result of the first determination subunit 711 is yes, determine that the VOQ is congested, and transmit a first adjustment notification to the adjustment unit 720.
Accordingly, the adjusting unit 720 may include: a first adjustment sub-unit 721, and a first adjustment information transmission sub-unit 722.
A first adjusting subunit 721, configured to, after receiving the first adjustment notification, determine an OQ corresponding to the congested VOQ, allocate a difference between a standard configuration bandwidth of the OQ and a data frame transmission bandwidth currently used by the OQ to each VOQ corresponding to the OQ, or determine a VOQ having a standard configuration bandwidth larger than a data frame transmission bandwidth currently used in other VOQs corresponding to the same OQ, and allocate a difference between the standard configuration bandwidth of the determined VOQ and the data frame transmission bandwidth currently used by the VOQ to the congested VOQ.
A first adjustment information sending subunit 722, configured to provide the adjustment information of the first adjustment subunit 721 to each VOQ corresponding to the OQ.
And the second method comprises the following steps: when the buffer status information acquired by the status information acquiring unit 700 is FU buffer status information, the monitoring unit 710 may include: a second judgment sub-unit 713 and a second notification transmission sub-unit 714.
The second determining subunit 713 is configured to determine whether FU buffer overflow occurs according to the received FU buffer status information.
A second notification transmission subunit 714, configured to, when the determination result of the second determination subunit 713 is yes, determine that buffer overflow of the FU occurs, and transmit a second adjustment notification to the adjustment unit 720; when the second judgment subunit 713 judges that the FU buffer is restored to normal, a restoration notification is sent to the adjustment unit 720.
Accordingly, the adjusting unit 720 may include: a second adjustment sub-unit 723 and a second adjustment information transmitting sub-unit 724.
A second adjusting subunit 723, configured to reduce a data frame sending bandwidth used by each VOQ after receiving the second adjustment notification; and after receiving the recovery notification, recovering the data frame transmission bandwidth of each VOQ.
A second adjustment information transmitting subunit 724 for providing the adjustment information of the second adjustment subunit 723 to each VOQ.
Thirdly, when the cache state information acquired by the state information acquiring unit 700 is OQ state information, the monitoring unit 710 may include: a third judging sub-unit 715 and a third notification transmitting sub-unit 716.
A third determining subunit 715, configured to determine, according to the received state information of the OQ, whether the length of the data frame queue in the OQ exceeds a preset second length threshold.
A third notification sending subunit 716, configured to, when the determination result of the third determining subunit 715 is yes, determine that data frame congestion occurs in the OQ, and send a third adjustment notification to the adjusting unit 720; when the third judging sub-unit 715 judges that the OQ is recovered to normal, a recovery notification is sent to the adjusting unit 720.
Accordingly, the adjusting unit 720 includes: a third adjustment sub-unit 725 and a third adjustment information transmission sub-unit 726.
A third adjusting subunit 725, configured to reduce, after receiving the third adjustment notification, a data frame transmission bandwidth of each VOQ corresponding to the congested OQ; and after receiving the recovery notification, recovering the data frame transmission bandwidth of each VOQ corresponding to the OQ.
A third adjustment information transmitting sub-unit 726 for providing the adjustment information of the third adjustment sub-unit 725 to the VOQs.
The centralized scheduler may be implemented by an FPGA or an Application Specific Integrated Circuit (ASIC).
Fig. 8 is a block diagram of a distributed bandwidth control system according to an embodiment of the present invention, in which a single-line arrow indicates a signaling flow direction, and a double-line arrow indicates a data frame flow direction. As shown in fig. 8, the system includes at least two FAUs provided for each line card.
Each FAU obtains the buffer state information of the switching network device where the FAU is located, and when the congestion or overflow of the data frame occurs in the buffer in the switching network, the data frame sending bandwidth of each VOQ of the line card which is connected with the FAU and serves as the target line card is adjusted according to the congestion or overflow condition.
The buffer status information of the switching network device acquired by each FAU may be one or any combination of VOQ status information, FU buffer status information, and OQ status information. The specific structure and operation of each FAU are described in detail in the structure shown in fig. 9.
The distributed bandwidth control system can be divided into an out-of-band type and an in-band type, and when an out-of-band type structure is adopted, the system can further comprise: and the signaling exchanger is used for sending the state information of each VOQ connected with each FAU to the FAU of the destination line card corresponding to each VOQ, and forwarding the information of each FAU for adjusting the data frame sending bandwidth of the VOQ to the corresponding VOQ.
When an in-band configuration is employed, the system may further comprise: the FU is used for sending the state information of each VOQ connected with each FAU to the FAU of the destination line card corresponding to each VOQ through a multiplexing data channel, and forwarding the information of each FAU for adjusting the data frame sending bandwidth of the VOQ to the corresponding VOQ; alternatively, FU buffer status information is provided to each FAU.
Similarly, the adjustment of the transmission bandwidth of each VOQ data frame may be performed by means of a token, in this case, the system may further include: and the token bucket is arranged aiming at each VOQ and used for storing the tokens distributed for each VOQ.
Each FAU is further configured to adjust, according to the adjusted data frame transmission bandwidth of each VOQ, a rate of injecting tokens into the token bucket of each VOQ according to the token injection rate corresponding to the adjusted data frame transmission bandwidth of each VOQ.
Each VOQ transmits a data frame using a transmission bandwidth corresponding to the number of tokens in its token bucket.
As described in detail below for the FAU structure in the distributed bandwidth control system, fig. 9 is a schematic structural diagram of the FAU provided in the embodiment of the present invention, and as shown in fig. 9, the FAU may include: a buffer information acquisition unit 900, a monitoring unit 910 and an adjustment unit 920.
A cache information obtaining unit 900, configured to obtain cache state information of the switching network device where the FAU is located.
The monitoring unit 910 is configured to monitor a buffer status of the switching network device according to the buffer status information, and send an adjustment notification to the adjusting unit 920 when it is determined that data frame congestion or overflow occurs in the buffer of the switching network device according to the buffer status information.
An adjusting unit 920, configured to adjust a data frame transmission bandwidth used by each VOQ according to a congestion or overflow condition after receiving the adjustment notification.
Also according to the difference of the obtained cache status information, the structure of the FAU may include one or any combination of the following three types:
the first method comprises the following steps: the cache information acquisition unit 900 includes: a first information sending sub-unit 901 and a first information acquiring sub-unit 902.
A first information sending subunit 901, configured to send status information of each VOQ connected to the FAU of the destination line card corresponding to each VOQ.
A first information obtaining subunit 902, configured to receive the state information of the VOQ sent by another FAU of the line card that is targeted by the line card connected to the FAU.
The monitoring unit 910 may include: a first judgment sub-unit 911 and a first notification sub-unit 912.
A first determining subunit 911, configured to determine, according to the received state information of the VOQ, whether the length of the data frame queue in the VOQ exceeds a preset first length threshold.
A first notification subunit 912, configured to, when the determination result of the first determination subunit 911 is yes, determine that the VOQ is congested, and send a first adjustment notification to the adjustment unit 920.
The adjusting unit 920 may include: a first adjustment sub-unit 921 and a first adjustment information transmission sub-unit 922.
A first adjusting subunit 921, configured to, after receiving the first adjustment notification, allocate a difference between a standard configuration bandwidth of the OQ connected to the FAU and a data frame transmission bandwidth currently used by the OQ to each VOQ corresponding to the OQ; or, determining a VOQ with a standard configuration bandwidth larger than the currently used data frame transmission bandwidth, and allocating the difference between the determined VOQ standard configuration bandwidth and the currently used data frame transmission bandwidth of the VOQ to the congested VOQ.
A first adjustment information sending subunit 922, configured to send the adjustment information of the first adjustment subunit 921 to each VOQ corresponding to the OQ.
And the second method comprises the following steps: the cache information acquisition unit 900 includes: and a second information obtaining subunit 903, configured to receive FU buffer status information sent by the FU.
The monitoring unit 910 may include: a second judging sub-unit 913 and a second notifying sub-unit 914.
The second determining subunit 913 is configured to determine whether FU buffer overflow occurs according to the FU buffer status information received by the second information obtaining subunit 903.
A second notification sub-unit 914 for sending a second adjustment notification to the adjustment unit 920 when the determination result of the second determination sub-unit 913 is yes; when the second judgment subunit 913 judges that the FU buffer is restored to normal, a restoration notification is sent to the adjustment unit 920.
The adjusting unit 920 includes: a second adjustment sub-unit 923 and a second adjustment information transmitting sub-unit 924.
A second adjusting subunit 923, configured to reduce a data frame transmission bandwidth of each VOQ of the line card using the line card connected to the FAU as a destination line card after receiving the second adjustment notification; and after receiving the recovery notification, recovering the data frame transmission bandwidth of each VOQ.
A second adjustment information sending subunit 924, configured to send the adjustment information of the second adjustment subunit 923 to each VOQ.
And the third is that: the cache information acquisition unit 900 includes: a third information obtaining subunit 904, configured to receive the state information of the OQ to which the FAU is connected.
The monitoring unit 910 includes: a third judging sub-unit 915 and a third notifying sub-unit 916.
A third determining subunit 915, configured to determine, according to the OQ status information acquired by the third information acquiring subunit 904, whether the queue length of the OQ is greater than a set second length threshold.
A third notification sub-unit 916 configured to send a third adjustment notification to the adjustment unit 920 when the determination result of the third determination sub-unit 915 is yes; when the third judgment sub-unit 915 judges that the state of the OQ returns to normal, a return notification is transmitted to the adjustment unit 920.
The adjusting unit 920 includes: a third adjustment sub-unit 925 and a third adjustment information transmission sub-unit 926.
A third adjusting subunit 925, configured to reduce, after receiving the third adjustment notification, a data frame transmission bandwidth of each VOQ corresponding to the congested OQ; and after receiving the recovery notification, recovering the data frame transmission bandwidth of each VOQ.
A third adjustment information transmitting sub-unit 926 configured to transmit the adjustment information of the third adjustment sub-unit 925 to each VOQ.
In addition, in the above three structures, the FAU may further include: a bandwidth information transmitting unit 931, a bandwidth information acquiring unit 932, and a remaining condition determining unit 933.
A bandwidth information sending unit 931, configured to send the data frame currently used by the VOQ connected to the FAU and send bandwidth information to the FAU corresponding to the destination line card.
A bandwidth information obtaining unit 932, configured to receive data frame transmission bandwidth information currently used by VOQs sent by other FAUs, and obtain data frame transmission bandwidth information currently used by an OQ connected to the FAU where the FAU is located.
A remaining status determining unit 933, configured to determine a difference between the transmission bandwidth information of the data frame currently used by the OQ and the transmission bandwidth sum of the data frame currently used by the VOQ received by the bandwidth information obtaining unit, and send a fourth adjustment notification to the adjusting unit 920 when the determined difference is greater than 0.
The adjusting unit 920 may further include: a fourth adjustment sub-unit 927 and a fourth adjustment information transmitting sub-unit 928.
A fourth adjusting subunit 927, configured to allocate the difference determined by the remaining condition determining unit 933 to each VOQ corresponding to the OQ connected to the FAU.
A fourth adjustment information transmitting subunit 928 is configured to transmit the adjustment information of the fourth adjustment subunit 927 to each VOQ.
In addition, the FAU may further include: a token injection unit 934, configured to adjust, according to the adjusted data frame sending bandwidth of the VOQ connected to the FAU, a rate of injecting tokens into the token bucket of each VOQ according to a token injection rate corresponding to the adjusted data frame sending bandwidth of each VOQ.
The FAU can be realized by adopting FPGA or ASIC. In addition, in specific implementation, the functions of the FAU may be integrated in the PP of the line card.
As can be seen from the above description, the method and system provided by the present invention monitor the cache of the switching network device by obtaining the cache state information of the switching network device, and when it is determined that data frame congestion or overflow occurs in the cache of the switching network device according to the cache state information, adjust the data frame transmission bandwidth used by each VOQ according to the congestion or overflow condition. Therefore, a mechanism is provided, in the process of data exchange, if data frame congestion or overflow occurs in the cache of the exchange network device, the data frame sending bandwidth used by each VOQ can be adjusted in time, the problem of data frame loss in the process of data exchange is effectively avoided, and the QoS of data exchange service is ensured.
Moreover, the method and the system provided by the invention respectively provide specific monitoring and adjusting schemes aiming at three specific situations which may occur in a switching network device, namely VOQ congestion, FU buffer overflow and OQ congestion, so that data frame loss caused by VOQ congestion, FU buffer overflow and OQ congestion is avoided.
In addition, the invention is essentially to superpose a control plane on the data exchange plane of the exchange network, thereby realizing the adjustment of the data frame sending bandwidth of each VOQ, and specifically provides two system structures, namely a centralized bandwidth control system and a distributed bandwidth control system.
The above description is only for the purpose of illustrating the preferred embodiments of the present invention and is not to be construed as limiting the invention, and any modifications, equivalents, improvements and the like made within the spirit and principle of the present invention should be included in the scope of the present invention.