Abstract:
A system and a method to avoid packet traffic congestion in a shared memory switch core, while dramatically reducing the amount of shared memory in the switch core and the associated egress buffers and handling unicast as well as multicast traffic. According to the invention, the virtual output queuing (VOQ) of all ingress adapters of a packet switch fabric are collapsed into its central switch core to allow an efficient flow control. The transmission of data packets from an ingress buffer to the switch core is subject to a mechanism of request/acknowledgment. Therefore, a packet is transmitted from a virtual output queue to the memory shared switch core only if the switch core can send it to the corresponding egress buffer. A token based mechanism allows the switch core to determine the egress buffer's level of occupation. Therefore, since the switch core knows the states of the input and output adapters, it is able to optimize packet switching and to avoid packet congestion. Furthermore, since a packet is admitted in the switch core only if it can be transmitted to the corresponding egress buffer, the shared memory is reduced.
Abstract:
There is disclosed a method and controller for controlling an information flow in an acyclic data transmission system including receiving a plurality of data packets, and allocating a priority level for each data packet including a class of loss for the data packet and a class of urgency of service for the data packet. The method and controller also include servicing the data packets in accordance with the priority levels and outputting the data packets at a configured rate.
Abstract:
An improved buffer management process is disclosed wherein the buffer is shared among a plurality of packet queues. The improved buffer management process comprises computing a common queue threshold value based upon the aggregate size of the plurality of packet queues and a predetermined buffer threshold value. The common queue threshold value is then used to manage the size of each of the plurality of packet queues and thereby manage the buffer.
Abstract:
A device to create, receive, and transmit packets of data in a packet switching network. This device employs a direct memory access packet controller which would interface between memory contained within a computer system and a packet switched network. This direct memory access packet controller would utilize one or more micro-engines that would dynamically allocate buffer space to process received packets of data. This direct memory access packet controller would further utilize a transmit cell FIFO circuit to allocate buffer space to packets being transmitted. In addition, a sequencer would act to control the workflow of packets being received and transmitted.
Abstract:
A packet forwarding apparatus provided with a plurality of line interface units, comprises a routing processing unit for referring to a routing table, based on header information of received packet to specify one of output lines to output the received packet, a flow detection unit for referring to an entry table, in which a plurality of entries with flow conditions and control information are registered, to retrieve control information defined by the entry with a flow condition which coincides with that of the header information of the received packet, and a packet forwarding unit for transferring the received packet to one of the line interface units connected to the output line specified by the routing processing unit. The entry table id divided into a plurality of subtables corresponding to the values of flow attributes associated with the received packets and the flow detection unit retrieves the control information from one of said subtables specified by the value of the flow attribute corresponding to the received packet.
Abstract:
Methods and apparatus for providing a network data switch and buffer system are disclosed. In a switch having a memory associated therewith, the memory including a general memory and a plurality of dedicated memory segments, the general memory being available to a plurality of users associated with one or more network devices and each one of the plurality of dedicated memory segments being associated with one of the plurality of users, a method of storing data includes receiving data from a source network device connected to the switch. The data is then stored in a data buffer so that a portion of one of the plurality of dedicated memory segments is allocated when the general memory has been depleted.
Abstract:
The present invention provides systems for improved quality of service and traffic management in network routers and other devices. This is achieved, according to one aspect of the invention, by coupling a plurality of queue processors to a plurality of input interfaces that receive data from one or more respective network connections. Each queue processor, in coordination with an associated scheduler that schedules dequeing of data from one or more queues, maintains the quality of service levels with respect to throughput, and delivers the data for a particular output context based on priority to a respective output interface. The output interface is coupled to the plurality of queue processors and transfers the data to one or more respective network connections. In addition, a plurality of output interfaces can be coupled to respective pluralities of queue processors for transferring data therefrom to one or more destination network connections. Packets, cell, datagrams and so forth passing through the router are disassembled and marked with one or more priority levels. Prior to exiting the router they re reassembled (based on those priorities, inter alia) into their constituent forms for continued routing on the network.
Abstract:
The present invention relates to a method and system for supporting in a router a plurality of data flows using a ternary content addressable memory (TCAM) in which the number of accesses to write to the TCAM is optimized to improve efficiency of updating and subsequent look up. To accommodate the plurality of data flows, the TCAM is partitioned into at least two partitions in which a first portion includes indices having a higher priority and a second portion includes indices having a lower priority. For example, multiple protocol label switching (MPLS) flows and IP-Virtual Private Network (VPN) can be added to the first partition and policy based routing flows can be added to the second partition. During subsequent TCAM look-up of a prefix of an incoming packet the MPLS or IP-VPN flow will subsume any matching policy based routing flow, such as flows classified by an access control list or traffic manager flows.
Abstract:
The present invention is directed to the provision of a packet transmission apparatus and, more particularly, to a packet transmission apparatus achieving high-speed processing capability and enhanced relay quality for multicast packets. The packet transmission apparatus comprises: a non-copy packet arbiter which selects one of the non-copy packets by a prescribed algorithm, and requests transmission of the selected non-copy packet; a copy packet arbiter which selects one of the copy packets by a prescribed algorithm, and requests transmission of the selected copy packet; and a final arbiter which selects either one of the transmit requests, the transmit request from the non-copy packet arbiter or the transmit request from the copy packet arbiter, by a prescribed algorithm, and requests transmission of the selected packet, and wherein: the packet transmission apparatus transmits the packet requested by the final arbiter for transmission.
Abstract:
A data processor and a method for processing data is disclosed. The processor has an input port for receiving packets of data to be processed. A master controller acts to analyse the packets and to provide a header including a list processes to perform on the packet of data and am ordering thereof. The master controller is programmed with process related data relating to the overall processing function of the processor. The header is appended to the packet of data. The packet with the appended header information is stored within a buffer. A buffer controller acts to determine for each packet stored within the buffer based on the header within the packet a next processor to process the packet. The controller then provides the packet to the determined processor for processing. The processed packet is returned with some indication that the processing is done. For example, the process may be deleted from the list of processes. The buffer controller repeatedly makes a determination of a next process until there is not next process for a packet at which time it is provided to an output port.