Patents Assigned to Level 5 Networks, Inc.
-
Patent number: 7496699Abstract: 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.Type: GrantFiled: June 17, 2005Date of Patent: February 24, 2009Assignee: Level 5 Networks, Inc.Inventors: Steve L. Pope, Derek Roberts, David Riddoch, Ching Yu, John Mingyung Chiang, Der-Ren Chu
-
Publication number: 20070183418Abstract: Roughly described, incoming data packets are delivered by the NIC directly to at least two user level endpoints. In an aspect, only filters that cannot be ambiguous are created in the NIC. In another aspect, the NIC maintains a filter table supporting direct delivery of incoming unicast and multicast data packets to one user level endpoint. Additional requests to join the same multicast group cause replacement of the NIC filter with one in the kernel. In another aspect, a NIC has limited capacity to maintain multicast group memberships. In response to a new multicast filter request, the kernel establishes it in the NIC only if the NIC still has sufficient capacity; otherwise it is established in the kernel.Type: ApplicationFiled: February 8, 2006Publication date: August 9, 2007Applicant: Level 5 Networks, Inc.Inventors: David Riddoch, Martin Porter, Steven Pope
-
Publication number: 20070174511Abstract: 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.Type: ApplicationFiled: January 11, 2006Publication date: July 26, 2007Applicant: Level 5 Networks, Inc.Inventors: Ching Yu, David Riddoch, Steve Pope, John Chiang, Alok Singh, Derek Roberts
-
Publication number: 20070162609Abstract: A method of transmitting data according to a data transmission protocol wherein the data is transmitted as a plurality of data frames and each data frame includes an error checking field comprising at least two sub-fields, the data of the first sub-field being formed by a first error checking method performed on data of the frame and the data of the second sub-field being formed by a second error checking method performed on the said data of the frame, the first and second methods being such that the data of the first sub-field has different error checking properties from those of the data of the second sub-field.Type: ApplicationFiled: March 3, 2004Publication date: July 12, 2007Applicant: Level 5 Network, Inc.Inventors: Steve Pope, Derek Roberts, David Riddoch, David Clarke
-
Publication number: 20070115982Abstract: Roughly described, a network interface device is assigned a maximum extent-of-search. A hash function is applied to the header information of each incoming packet, to generate a hash code for the packet. The hash code designates a particular subset of the table within which the particular header information should be found, and an iterative search is made within that subset. If the search locates a matching entry before the search limit is exceeded, then the incoming data packet is delivered to the receive queue identified in the matching entry. But if the search reaches the search limit before a matching entry is located, then device delivers the packet to a default queue, such as a kernel queue, in the host computer system. The kernel is then responsible for delivering the packet to the correct endpoint.Type: ApplicationFiled: October 20, 2005Publication date: May 24, 2007Applicant: Level 5 Networks, Inc.Inventors: Steve Pope, Derek Roberts, David Riddoch, Ching Yu, John Chiang, Der-Ren Chu
-
Publication number: 20070022206Abstract: A method for forming data received from a data source into frames for transmission over a data link according to a protocol in which data is carried as data frames and in which once transmission of the data frame begun the entirety of the data frame must be transmitted at no less than a pre-set data rate, the method comprising: including in a frame traffic data formed from data received for transmission from the data source, and if insufficient data received for transmission from the data source is available to transmit the frame at the pre-set data rate, including in the frame padding data, the padding data being of a predetermined format distinguishable from the traffic data.Type: ApplicationFiled: March 3, 2004Publication date: January 25, 2007Applicant: Level 5 Networks, Inc.Inventors: Steve Pope, Derek Roberts, David Riddoch, David Clarke
-
Publication number: 20060288129Abstract: 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.Type: ApplicationFiled: June 17, 2005Publication date: December 21, 2006Applicant: Level 5 Networks, Inc.Inventors: Steve Pope, Derek Roberts, David Riddoch, Ching Yu, John Chiang, Der-Ren Chu
-
Publication number: 20060248234Abstract: 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.Type: ApplicationFiled: April 27, 2005Publication date: November 2, 2006Applicant: Level 5 Networks, Inc.Inventors: Steve Pope, David Riddoch, Ching Yu, Derek Roberts
-
Publication number: 20060173970Abstract: Roughly described, method for managing data transmission between a host subsystem and a network interface device, in which the host writes data buffer descriptors into a DMA descriptor queue, and the network interface device writes completion events to notify the host when it has completed processing of data buffers. Each of the completion event descriptors notify the host of completion of data transfer between the NIC and one or more of the data buffers, and can also embed a queue empty notification inside the completion event.Type: ApplicationFiled: February 3, 2005Publication date: August 3, 2006Applicant: Level 5 Networks, Inc.Inventors: Steve Pope, David Riddoch, Ching Yu, Derek Roberts
-
Publication number: 20060174251Abstract: Method for managing a data transmit queue, for use with a host and a network interface device. Roughly described, the host writes data buffer descriptors into a transmit descriptor queue, and the network interface device writes events to notify the host when it has completed processing of a transmit data buffer. Each of the transmit completion event descriptors notify the host of completion of a plurality of the transmit data buffers.Type: ApplicationFiled: February 3, 2005Publication date: August 3, 2006Applicant: Level 5 Networks, Inc.Inventors: Steve Pope, David Riddoch, Ching Yu, Derek Roberts, John Chiang
-
Publication number: 20050226165Abstract: A method for transmitting data by means of a data processing system, the system being capable of supporting an operating system-and at least one application and having access to a memory and a network interface device capable of supporting a communication link over a network with another network interface device, the method comprising the steps of: forming by means of the application data to be transmitted; requesting by means of the application a non-operating-system functionality of the data processing system to send the data to be transmitted; responsive to that request: writing the data to be transmitted to an area of the memory; and initiating by means of direct communication between the non- operating-system functionality and the network interface device a transmission operation of at least some of the data over the network; and subsequently accessing the memory by means of the operating system and performing at least part of a transmission operation of at least some of the data over the network by meanType: ApplicationFiled: April 21, 2005Publication date: October 13, 2005Applicant: Level 5 Networks, Inc.Inventors: Steve Pope, David Riddoch
-
Publication number: 20050183093Abstract: Method of managing interaction between a host subsystem and a peripheral device. Roughly described, the peripheral device writes an event into an individual event queue, and in conjunction therewith, also writes a wakeup event into an intermediary event queue. The wakeup event identifies the individual event queue. The host subsystem, in response to retrieval of the wakeup event from the intermediary event queue, activates an individual event handler to consume events from the individual event queue.Type: ApplicationFiled: February 3, 2005Publication date: August 18, 2005Applicant: Level 5 Networks, Inc.Inventors: Steve Pope, David Riddoch, Ching Yu, Derek Roberts
-
Publication number: 20050177657Abstract: 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.Type: ApplicationFiled: February 3, 2005Publication date: August 11, 2005Applicant: Level 5 Networks, Inc.Inventors: Steve Pope, David Riddoch, Ching Yu, Derek Roberts