Abstract:
A communications queue controller for a communications network, the queue controller having a plurality of queue buffers of differing priorities. Each queue buffer has a flow control selector controllable by a programmable bit.

Description:
BACKGROUND 
       [0001]    1. Field of the Invention 
         [0002]    This invention relates to flow control in communications networks. 
         [0003]    2. Description of Related Art 
         [0004]    In communications networks, such as Ethernet networks, flow control is a mechanism to manage the data flow between two working devices. In Ethernet networks, the two devices will be Ethernet devices. The IEEE standard IEEE 802.3X proposes to use a pause control Media Access Control (MAC) frame for completely shutting down a link if that link becomes congested. Although the congested link is no longer an issue after shutdown, all data transmission over the link is prevented an undesirable result. Additionally, this solution is Ethernet-port based and cannot solve certain problems in networks that require queue-specific flow control. 
     
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0005]      FIG. 1  is an illustration of an exemplary embodiment of flow control in a communications network; 
           [0006]      FIG. 2  is an illustration of another exemplary embodiment of flow control in a communications network; 
           [0007]      FIG. 3  is an illustration of frame formats for use with the embodiment of  FIG. 2 ; and 
           [0008]      FIG. 4  is an illustration of an alternative frame format for use with the embodiment of  FIG. 2 . 
       
    
    
     DETAILED DESCRIPTION 
       [0009]    In order that the invention may be fully understood and readily put into practical effect there shall now be described by way of non-limitative example only exemplary embodiments of the present invention, the description being with reference to the accompanying illustrative drawings. 
         [0010]    Throughout the description like components have like reference numerals with the addition of a prefix number indicating the drawing figure number. 
         [0011]    Referring to  FIG. 1 , a part of a communications system such as an Ethernet system is shown. In the illustrated part of the communications system, a queue-based flow control system is utilized. In the exemplary illustration of  FIG. 1 , the part of the communications system includes a network termination type  1  (NT 1 ) and a network termination type  2  (NT 2 ). 
         [0012]    Network Termination type  1  (NT 1 ) represents a layer  1  device that hides the physical characteristics of the WAN (wide area network) interface for a network such as a home, office, educational institution or business network. Network Termination type  2  (NT 2 ) contains access control functions between the network and a public network. A fast Ethernet link  101  may be used to interface between NT 1  and NT 2 . For example, the fast Ethernet link  101  may be of the order of 100 Mb/s. 
         [0013]    The rate of the upstream access line  102  for NT 1  is usually less than the transmission rate of the fast Ethernet link  101 . Given the example above, if the link is 100 Mb/s then the rate for upstream  102  will be less than 100 Mb/s. Therefore, both NT 1  and NT 2  have priority queues generally designated as  110  and  120  respectively. The number of priority queues in  110  and  120  may be any suitable or required number. The number of queues  110 ,  120  in NT 1  and NT 2 , respectively, may be the same or different. However, both NT 1  and NT 2  may have, for example, at least two priority queues. As shown, both NT 1  and NT 2  have four queues  111 ,  112 ,  113  and  114  for NT 1 ; and  121 ,  122 ,  123  and  124  for NT 2 . 
         [0014]    The scheduling in the scheduler  125  of NT 2  according to embodiments of the present invention is at the packet level. To assure the low latency of high priority traffic over the low physical rate of NT 1 , scheduling in the scheduler  109  of NT 1  is segment based. As such, the flow control system between NT 1  and NT 2  preferably gives the maximum use of the rate of the upstream access line  102  and the lowest possible latency for high priority traffic. For example, it is preferably less than the segment size/access line rate; and no buffer overflow in NT 1 . 
         [0015]    The four queue buffers  111  to  114  of NT 1  are preferably of different priorities: high priority  111 , mid-priority queue  0   112 , mid-priority M- 1   113 , and low priority  114 . The four queue buffers  121  to  114  of NT 2  are preferably of different priorities: high priority  121 , mid-priority queue  0   122 , mid-priority M- 1   123 , and low priority  124 . Priority of received data frames may be determined by the type or category of data—voice, video, and so forth. 
         [0016]    Whenever any one or more of the queue buffers  111  to  114  are full, a standard pause frame is generated at pause frame generator  103 . The standard pause frame generated at generator  103  is added to the normal downstream traffic  104  of the downstream access line  105  and sent to NT 1  over the downstream Ethernet link  106 . At NT 2 , an extractor  126  extracts the standard pause frame from the normal downstream traffic  127 . 
         [0017]    In NT 2 , the flow control on/off (enable/disable) selectors  131 ,  132 ,  133  and  144  for the queue buffers  121  to  124  respectively is static and programmable by use of a programmable control bit  141 ,  142 ,  143  and  144  respectively contained in the queue scheduling block. There is one programmable bit  141  to  144  for each priority stream/queue buffer  121  to  124 . 
         [0018]    Upon receipt and extraction of the standard pause frame, the low priority queue(s)  124  are shut down. High priority queue(s)  121  continue to send data over the upstream link  101 . The programmable bit  141  will normally be set such that data transmission can continue as long as the rate of the high priority traffic  121  is less than the upstream access line  102  rate. As this is known at installation, the programmable bit  141  can be set ON to enable transmission. The programmable bit  144  of the low priority queue  124  is set such that when the standard stop frame is received, it immediately stops sending data. It will remain stopped until another standard pause frame is received allowing it to start sending data. The programmable bits  142  and  143  of the mid-priority queues  122  and  123  will be set according to the specifications of the system, particularly the respective line rates. In general, however, the lower the priority, the more likely the queue is to be shut down upon a standard pause fame being received. 
         [0019]    If the control bit  141  to  144  is set to ON, and the standard pause frame is received, the respective queue ignores the pause frame. As it is enabled it will continue to send data. If the control bit  141  to  144  is set to OFF, the respective queue will respond to the pause frame and stop sending data. When a standard pause frame is received, the respective queue is disabled and will be shut down, data no longer being sent by that queue. The shut down will remain until a further pause fame is received enabling the sending of data. Usually the peak and/or sustained rate of the high priority and latency sensitive stream  121  is less than the rate of the upstream access line  102 , so high priority queues (e.g.  121 ) that are not shut down by the standard pause frames won&#39;t cause buffer  111  to overflow in NT 1  devices. 
         [0020]    Another exemplary embodiment is illustrated in  FIGS. 2 to 4  where like components use like reference numerals but with the prefix number changed to reflect the number of the drawing figure. This exemplary embodiment does not use pause control frames. Flow control information is carried over the downstream Ethernet link  206  as before, but in this case the queue congestion status data is inserted into data frames or dummy data frames sent from NT 1  to NT 2 . The information is only one or several bytes. But as the queue congestion status data is smaller, and is sent in data frames or dummy data frames, the effect on bandwidth is reduced when the congestion status changes frequently. 
         [0021]    The queue congestion status data is handled in one or both of two ways: (a) using an appender  204  to append the congestion status information  260  to the end of every data frame; and (b) using a dummy frame generator  272  to generate and transmit a dummy data frame that includes the queue congestion status data  272 . 
         [0022]    For (a)—appending the queue congestion status data to the end of every data frame—the queue congestion status data  382  (1 byte) is appended to the end of frame  381 . As shown in  FIG. 3 , one bit  380  in the queue congestion status data  382  is used to indicate if the frame is a valid data frame ( FIG. 3(   a )) or a dummy data frame ( FIG. 3(   b )). In addition, there is one bit per queue ( 383  to  389  for queues  6  to  0  respectively) flagging to NT 2  to close or open the upstream data traffic from the associated one of queues  221 ,  222 ,  223  and  224 . If there are seven or fewer queues (as illustrated) only one byte is appended to the end of every downstream frame  382 . If there are more than seven queues, extra bytes are added to the end of the downstream data frames, as required. 
         [0023]    If the upstream congestion status changes and there is no downstream traffic, a dummy data frame ( FIG. 3(b) ) is generated by dummy data frame generator  272  and transmitted to NT 2 . The dummy data frame also includes the queue congestion status data. This is case (b) above. 
         [0024]    In both cases, the flow control byte  382  is extracted by extractor  226 , parsed, and NT 2  acts accordingly by switching on or off the traffic in each of the upstream queues  221 ,  222 ,  223  and  224 . In the case of the dummy data frame  381 , the frame is also extracted by extractor  226 . 
         [0025]    Alternatively, and as shown in  FIG. 4 , the queue congestion status data may be inserted into a data frame, or a dummy data frame is generated, and transmitted to NT 2  only when the queue congestion status data changes. To do this, a  4 -byte tag field  482  is inserted in the downstream data frames  481  ( FIG. 4(   a )) or a dummy data frame ( FIG. 4(   b )). The tag field  482  is preferably immediately following the MAC header  490 . The dummy data frame is again generated when there is no downstream traffic. As not all frames carry a special tag field, the tag type field  491  has a unique value so that the NT 2  device can recognise and extract the queue congestion status data. 
         [0026]    In an exemplary form, a software arrangement is provided on each of NT 1  and NT 2  that is operable on at least one processor in each of NT 1  and NT 2 . The software arrangement comprises a computer program that configures the at least one processor to control the data flow from NT 2  to NT 1 . 
         [0027]    Whilst there has been described in the foregoing description exemplary embodiments of the present invention, it will be understood by those skilled in the technology concerned that many variations in details of design, construction and/or operation may be made without departing from the present invention.