METHOD AND APPARATUS FOR
CONTROLLING THE ADMISSION OF DATA
INTO A NETWORK ELEMENT
FIELD OF THE INVENTION 5
The invention relates to the field of communications. More specifically, the invention relates to controlling the admission of data into a network element.
BACKGROUND OF THE INVENTION
Within the field of communications, the need for highspeed transmission of data has continued to increase, as customers continue to need more bandwidth to satisfy the 15 growing needs. Moreover, in addition to the demand for higher bandwidth, there has also been an increased need for various types of services that employ different protocols. For example, certain customers (e.g., companies providing voice services) of high-speed networks want to operate on a Time 20 Division Multiplexing (TDM) Network, which combines different data streams, such as voice traffic, such that each data stream is assigned a time slot within the combined data stream. Moreover, other customers of high-speed networks may desire to transport data employing packet-based data 25 streams, which do not have dedicated timeslots to given packets. Examples of the types of packets that can be placed into such data streams can include Asynchronous Transfer Mode (ATM), Internet Protocol (IP), Frame Relay, voice over IP and Point-to-Point Protocol (PPP), Multi-Protocol 30 Label Switching (MPLS) or Ethernet.
Additionally, Quality of Service (QoS) requirements are now being employed to determine which data packets have higher priority for use of the data bandwidth within a network. In particular, QoS values are priority values 35 attached to the packets of data being transmitted across the network. Accordingly, in the event that data packets must be dropped, due for example to network congestion, those data packets having a lower QoS value are dropped before data packets having a higher QoS value. For example, data traffic 40 related to a business letter generated by a word processing application could have a higher priority than data traffic related to general Internet web browsing. Further, certain customers could pay to have their data traffic upgraded to a higher priority. 45
Disadvantageously in current systems, even though lower priority data traffic is eventually dropped during times of network congestion, such traffic still consumes network resources, such as memory and processors, in order to categorize and prioritize the data traffic being received 50 within a given network element. For example, in a typical system, a network element would attempt to receive and buffer all of the data packets into memory, perform full classification of the received packets and then drop those packets of lowest priority. 55
One problem with this type of system is that it may be subject to network attacks, which involves the transmitting of a large number of packets to the targeted network elements, thereby "bogging" the system as attempts are made to receive, buffer and classify all of the data packets. 60 While under a network attack, the network element may not have enough memory space to buffer all of these "attack" packets, thereby resulting in the loss of packets (including valid packets that are not related to the network attack). Moreover even absent a network attack, in such systems the 65 higher priority data traffic are subject to being lost if the lower priority data traffic consumes the network resources,
such as the memory buffer space, as data packets are dropped when the memory buffer space is exceeded.
SUMMARY OF THE INVENTION
A method and apparatus for controlling the admission of data packets into a network element is described. In an embodiment, a method for controlling admittance of a data packet into a memory buffer includes performing, prior to queuing the data packet for routing by a processor, the following: (1) receiving a data packet from one of at least two different ports, (2) determining a priority value within the data packet, and (3) determining an admittance group identifier for the data packet based on the priority value and the port the data packet was received. The method also comprises queuing the data packet from the memory buffer to one of a number of queues for routing by the processor upon determining that a number of data packets stored in the memory buffer and having the admittance group identifier is not greater than a threshold value.
In one embodiment, an apparatus comprises preclassification circuitry coupled to receive a number of data packets from a number of ports. The preclassification circuitry is to determine a priority value for each of the number of data packets. The apparatus also includes control circuitry coupled to the preclassification circuitry. Additionally, the apparatus comprises a memory buffer coupled to the control circuitry. The apparatus includes a number of queues coupled to a number of processors, wherein the control circuitry is to queue a data packet of the number of data packets into the number of queues from the memory buffer upon determining that a number of the data packets stored in the memory buffer, which are received on the port that the that the data packet is received and have a priority value that equals the priority value of the data packet, has not exceeded a threshold value.
BRIEF DESCRIPTION OF THE DRAWINGS
Embodiments of the invention may be best understood by referring to the following description and accompanying drawings which illustrate such embodiments. The numbering scheme for the Figures included herein are such that the leading number for a given element in a Figure is associated with the number of the Figure. For example, system 100 can be located in FIG. 1. However, element numbers are the same for those elements that are the same across different Figures.
In the drawings:
FIG. 1 is block diagram illustrating a system that incorporates embodiments of the present invention;
FIG. 2 illustrates portions of in-ring network elements 102-108, according to embodiments of the present invention;
FIG. 3 illustrates a block diagram of packet processing circuitry 212a—d /214a-d (hereinafter "packet processing circuitry 212"), according to embodiments of the present invention.
FIG. 4 illustrates a flow diagram of controlling admission of data packets into a network element, according to embodiments of the present invention.
FIG. 5 illustrates a flow diagram for determining the priority value for a data packet, according to embodiments of the present invention.
FIG. 6 illustrates the processing of bytes of a number of data packets by a number of instruction streams, according to embodiments of the present invention.