Patent ID: 7620054
Filing Date: 2009-11-17
Classification: H04L

Abstract:
1. A network switching device for transferring packets among a plurality of networks, comprising: a plurality of buffers located for each of the networks to which the packets are to be transferred; a priority determining circuit for determining a priority class of each of the packets received by the device; and a buffer controller for creating in each of the buffers a transmit queue in which the packets of plural priority classes are to be registered, writing each of the received packets in the corresponding buffer with the information of the received packet, and registering the received packet so that the received packet may be reserved for transmission next to the last registered one of the packets of the same priority class registered in the corresponding transmit queue based on the determined result of the priority determining circuit; and a usage monitor for determining if the usage of each of the transmit queues reaches a predetermined threshold value, wherein if the usage of the corresponding transmit queue is determined to reach the threshold value by the usage monitor, when registering the received packet in the transmit queue, the buffer controller discards the last registered packet of the lowest priority class of the packets registered in the transmit queue, wherein the buffer controller manages the link among the packets registered in each of the transmit queues in the linked list structure formed on the write location of each of the packets in each of the buffers, further comprising: a pointer stack for holding pointers, each of which points a write location of each of the packets in each of the buffers, wherein the buffer controller pops up the pointer from the corresponding pointer stack for obtaining the pointer when writing the packet to the buffer and manages the link among the packets in the transmit queue created in each of the buffers with the obtained pointer, and wherein the buffer controller writes the pointers for pointing the write locations of the just preceding packet and the just following packet in each of the transmit queue as accessory data in the buffer together with the received packet, wherein the buffer controller is equipped with a tail pointer holder for holding the pointer for pointing the last registered one of the packets of the same priority class in each of the transmit queues, the tail pointer holder being located for each of the priority classes, and when registering a new one of the received packet, the buffer controller rewrites the pointer for pointing the following packet of the accessory data of the packet pointed by the pointer held in the tail pointer holder for the priority class of the received packet into the pointer for pointing the received packet, writes the pointer held in the tail pointer holder for the priority class of the received packet as the pointer for pointing the just preceding packet in the accessory data of the received packet, and rewrites the pointer held in the tail pointer holder for the priority class of the received packet into the pointer for pointing the received packet.