Abstract:
Method for managing a queue in host memory for use with a peripheral device. Roughly described, the host makes a determination of the availability of space in the queue for writing new entries, in dependence upon historical knowledge of the number of queue entries that the host has authorized the device to write, and the number of entries that the host has consumed. In dependence on that determination, the host authorizes the device to write a limited number of new entries into the queue. The device writes entries into the queue dependence upon the number authorized. The host maintains a read pointer into the queue but does not need to maintain a write pointer, and the peripheral device maintains a write pointer into the queue but does not need to maintain a read pointer.
Abstract:
A network switch having switch ports for communication of data packets with respective computer network nodes according to CSMA/CD protocol that resets a retry counter for counting data packet transmission attempts within any one of the respective switch ports if backpressure is asserted by that port. A retry limit value for the retry counter is modified to ensure that the total number of retrys does not exceed a maximum total number of allowable retrys. The resetting of the retry counter within a port after assertion of backpressure affords the port a greater probability of transmitting earlier under the CSMA/CD protocol, thus more quickly relieving congestion which may occur in the network switch. The modification of the retry limit value ensures that the number of retrys for the port does not exceed industry standards.
Abstract:
Network switch modules are cascaded in a prescribed sequence to support higher port requirements. The network switch modules may circulate a received frame indefinitely if the frame is not destined for any one of the output ports of the cascaded arrangement of network switch modules. Frame forwarding logic within each of the cascaded network switch modules is employed to determine when a network switch module should cease forwarding the received frame. Specifically, the frame forwarding logic takes the frame out of circulation based upon the sequence identifier of the network switch module and an embedded identifier associated with the frame.
Abstract:
A network switch configured for switching data packets across multiple ports uses an external memory to store data frames. A scheduler controls access to the external memory based on predetermined arbitration logic. When a data frame is transmitted to the external memory, a portion of the data frame is stored on the switch for processing by decision making logic to generate frame forwarding information. The data frame is then transmitted back to the switch for transmission through the appropriate port(s) on the switch.
Abstract:
A clock signal generator within an electronic device locally generates a reference clock signal having a reference frequency from a base clock signal having a base frequency. The base clock signal is from a base signal source that is external to the electronic device, and the base frequency of the base clock signal may vary depending on the base signal source. The present invention includes a plurality of frequency dividers which are coupled to the base signal source. Each of the frequency dividers outputs a divided clock signal having a respective frequency that is the base frequency divided by a respective factor. A multiplexer accepts the value of the base frequency of the base clock signal as stored within a storage device that is external to the electronic device. The multiplexer then selects as the reference clock signal a divided clock signal having a respective frequency that is closest to the reference frequency depending on the value of the base frequency. In this manner, a reference clock signal having a stable reference frequency is generated for the electronic device despite possible variations in the base frequency of the base clock signal. The present invention may be used to particular advantage when the electronic device is an Ethernet computer network peripheral device coupled between a computer host system and a computer network, and when the base signal source is from the computer host system.
Abstract:
A system and method for remotely waking up a device connected to a local area network (LAN) is disclosed. A special data packet is disclosed wherein the destination address of the packet is embedded at least 16 consecutive times within the data field of the packet. When this particular type of packet is transmitted on the LAN, it is first decoded by the I/O subsystem of the device to determine whether or not it is a remote wake-up packet. After determining that the packet received is a remote wake-up packet, a wake-up enable line is activated thereby taking the system out of its low power mode, for providing further processing of future received packets.
Abstract:
Roughly described, a network interface device receiving data packets from a computing device for transmission onto a network, the data packets having a certain characteristic, transmits the packet only if the sending queue has authority to send packets having that characteristic. The data packet characteristics can include transport protocol number, source and destination port numbers, source and destination IP addresses, for example. Authorizations can be programmed into the NIC by a kernel routine upon establishment of the transmit queue, based on the privilege level of the process for which the queue is being established. In this way, a user process can use an untrusted user-level protocol stack to initiate data transmission onto the network, while the NIC protects the remainder of the system or network from certain kinds of compromise.
Abstract:
System and method of a pace engine for governing the different transmission rates tailored for different connections by rate pacing a plurality of queues are described. Roughly described, the pace engine includes a binning controller for receiving queues from a transmit DMA queue manager and determines the earliest allowed time for a particular queue that is stored and paced in a Work Bin, a Fast Bin, or a Slow Bin. A pace table stores information about the minimum inter-packet-gap for each connection that is coupled to the transmit DMA queue manager. A timer is coupled to the binning controller with a multi-bit continuous counter that increments at a predetermined time unit and wraps around after a predetermined amount of time.
Abstract:
Method and apparatus for retrieving buffer descriptors from a host memory for use by a peripheral device. In an embodiment, a peripheral device such as a NIC includes a plurality of buffer descriptor caches each corresponding to a respective one of a plurality of host memory descriptor queues, and a plurality of queue descriptors each corresponding to a respective one of the host memory descriptor queues. Each of the queue descriptors includes a host memory read address pointer for the corresponding descriptor queue, and this same read pointer is used to derive algorithmically the descriptor cache write addresses at which to write buffer descriptors retrieved from the corresponding host memory descriptor queue.
Abstract:
Roughly described, a network interface device receiving data packets from a computing device for transmission onto a network, the data packets having a certain characteristic, transmits the packet only if the sending queue has authority to send packets having that characteristic. The data packet characteristics can include transport protocol number, source and destination port numbers, source and destination IP addresses, for example. Authorizations can be programmed into the NIC by a kernel routine upon establishment of the transmit queue, based on the privilege level of the process for which the queue is being established. In this way, a user process can use an untrusted user-level protocol stack to initiate data transmission onto the network, while the NIC protects the remainder of the system or network from certain kinds of compromise.