Patents by Inventor Francesco R. DiMambro
Francesco R. DiMambro has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).
-
Patent number: 11606302Abstract: Techniques are provided for managing a user space protocol stack are disclosed herein. A nexus in a kernel space can receive a packet from a packet pool, and extract information from the packet to generate a flow key indicating a particular flow for the packet. The nexus can further look up the flow key in a flow table to determine whether there is an existing flow key stored in the flow table matching the flow key of the packet, and store the packet into a batch of packets of the existing flow when the existing flow key matches the flow key of the packet. When a release condition being met, the nexus can release the batch of packets of the existing flow to a user space protocol stack within a user space application through a channel communicatively coupled to the nexus and the user space protocol stack.Type: GrantFiled: June 11, 2021Date of Patent: March 14, 2023Assignee: Apple Inc.Inventors: Wei Shen, Sandeep Nair, Vidhi Goel, Francesco R. Dimambro, Eric Tsz Leung Cheng, Cahya Adiansyah Masputra
-
Publication number: 20210392080Abstract: Techniques are provided for managing a user space protocol stack are disclosed herein. A nexus in a kernel space can receive a packet from a packet pool, and extract information from the packet to generate a flow key indicating a particular flow for the packet. The nexus can further look up the flow key in a flow table to determine whether there is an existing flow key stored in the flow table matching the flow key of the packet, and store the packet into a batch of packets of the existing flow when the existing flow key matches the flow key of the packet. When a release condition being met, the nexus can release the batch of packets of the existing flow to a user space protocol stack within a user space application through a channel communicatively coupled to the nexus and the user space protocol stack.Type: ApplicationFiled: June 11, 2021Publication date: December 16, 2021Applicant: Apple Inc.Inventors: Wei SHEN, Sandeep NAIR, Vidhi GOEL, Francesco R. DIMAMBRO, Eric Tsz Leung CHENG, Cayha Adiansyah MASPUTRA
-
Patent number: 7512128Abstract: A kernel data transfer method and system for transmitting multiple packets of data in a single block of data presented by application programs to the kernel's network subsystem for processing in accordance with data transfer parameters set by the application program. The multi-packet transmit system includes logic that allows header information of the multiple packets of data to be generated in a single buffer and appended to a second buffer containing the data packets to be transmitted through the network stack. The multi-data transmit system allows a device driver to amortize the input/output memory management related overhead across a number of packets. With some assistance from the network stack, the device driver needs to only perform the necessary IOMMU operations on two contiguous memory blocks representing the header information and the data payload of multiple packets during each transmit call.Type: GrantFiled: May 9, 2003Date of Patent: March 31, 2009Assignee: Sun Microsystems, Inc.Inventors: Francesco R. DiMambro, Cahya Adi Masputra
-
Patent number: 7463595Abstract: A configuration state of a networked system is automatically adjusted to achieve optimal performance. The networked system is defined by a plurality of data exchange entities having one or more tunable parameters. Networked system performance is monitored and performance metrics are stored to a database. The performance metrics are analyzed along with network and system rules and constraints, and the particular configuration of the networked system. The tunable parameters are automatically adjusted to achieve optimal networked system performance.Type: GrantFiled: June 29, 2004Date of Patent: December 9, 2008Assignee: Sun Microsystems, Inc.Inventors: Prafull Singhal, Francesco R. Dimambro
-
Patent number: 7379453Abstract: A method and apparatus for facilitating transfer of packets from communication hardware to a host computing device or software. After receiving s set of packets at a communication interface, the system writes in a hybrid buffer a type II completion line configured to identify a payload buffer in which payloads of packets are stored. For each packet, the system writes a type I completion line configured to indicate the length of a packet's header in the hybrid buffer and the length and/or offset of the packet's payload in the payload buffer. A type 0 completion line indicates that no more packets are stored in the payload buffer. The system then signals the host computing device by configuring a single completion descriptor to identify the hybrid buffer in which the completion lines are stored. The host computing device reads the single completion descriptor to process the packets.Type: GrantFiled: March 29, 2004Date of Patent: May 27, 2008Assignee: Sun Microsystems, Inc.Inventor: Francesco R. DiMambro
-
Patent number: 7356039Abstract: A system and method for describing multiple packets to a communication module or device without requiring descriptors for each packet. A device driver for the communication apparatus receives a set of packet headers and a set of packet payloads from an upper layer protocol. The headers may be received in a header buffer, and the payloads may be received in a separate data buffer. Or, the packets may be received, in assembled form, in a single buffer. The device driver configures a single descriptor to describe the multiple packets to the communication apparatus. The descriptor includes base address(es) of the buffer(s) in which the headers, payloads or assembled packets are stored, and the lengths of the individual headers, payloads or assembled packets. If the buffer contents are not packed, the descriptor may also include offsets of the headers, payloads or packets.Type: GrantFiled: September 22, 2003Date of Patent: April 8, 2008Assignee: Sun Microsystems, Inc.Inventor: Francesco R. DiMambro
-
Patent number: 7187676Abstract: An apparatus and method for expeditiously steering a received communication (e.g., packet, cell, frame) to one or more communication streams. When a new communication stream is opened on a network interface circuit or other Primary Point of Attachment (PPA), the protocol to which the stream is bound is used as a Service Access Point (SAP). A hierarchy of SAP nodes (e.g., a binary tree) is constructed, with each node corresponding to a unique SAP. Each node includes its corresponding SAP value, a count of the number of communication streams bound to the associated protocol, and a reference to those streams. When a communication is received, its SAP is extracted and the hierarchy is searched for a matching node. The communication is then forwarded to each referenced stream.Type: GrantFiled: June 4, 2002Date of Patent: March 6, 2007Assignee: Sun Microsystems, Inc.Inventor: Francesco R. DiMambro
-
Patent number: 7149820Abstract: An enhanced VPD structure includes a type field to indicate whether a particular property is a general property to be associated with an interface card or other computer system component, or a device- or function-specific property to be associated with one or more devices or functions. The enhanced VPD structure also includes fields for identifying the device(s) and/or function(s) to which a device- or function-specific property applies, along with the value of the property, a data type and length of the property, and a meaningful name of the property. The enhanced VPD structure may be accessed during system boot, during hot-swapping of an interface card or other component, or at other times.Type: GrantFiled: July 30, 2002Date of Patent: December 12, 2006Assignee: Sun Microsystems, Inc.Inventors: Asif H. Haswarey, Francesco R. DiMambro, Sumanth R. Kamatala, Anil Umarshi Visariya, David M. Kahn
-
Patent number: 7100038Abstract: A system and method for persisting device operating parameters through different phases of the boot process of a computer system. A boot command is entered to boot from a remote (or local) source through a boot device (e.g., a network interface, a disk controller), and is accompanied by one or more operating parameters (e.g., speed, duplex, link-clock). The parameters are converted to properties of the boot device and saved. Subsequently, one or more communication connections are established using the boot device properties. Using an initial boot program, the system may establish a first connection to access and load a secondary boot program, and another connection to load an operating system kernel. The boot device properties are thus used to establish communication connections at different times in the boot process, while the system is controlled by different programs (e.g., open boot PROM, secondary boot program, operating system kernel).Type: GrantFiled: March 13, 2003Date of Patent: August 29, 2006Assignee: Sun Microsystems, Inc.Inventors: Asif H. Haswarey, Francesco R. DiMambro, Anil Umarshi Visariya
-
Patent number: 7076545Abstract: A system and method for distributing a portion of the processing of a received packet among a plurality of service threads. When an ISR or similar process retrieves a packet from a communication interface via a receive descriptor ring, it places the packet on one of a plurality of service queues. Each queue has an associated service thread or process that initiates upper layer protocol processing for queued packets. The ISR may select a particular service queue based on the packet's communication flow or connection. Alternatively, the ISR may use a processor identifier provided by the communication interface to select a queue (e.g., in a multi-processor computer system). Or, other information provided by the interface may be used.Type: GrantFiled: July 31, 2002Date of Patent: July 11, 2006Assignee: Sun Microsystems, Inc.Inventor: Francesco R. DiMambro
-
Publication number: 20040181658Abstract: A system and method for persisting device operating parameters through different phases of the boot process of a computer system. A boot command is entered to boot from a remote (or local) source through a boot device (e.g., a network interface, a disk controller), and is accompanied by one or more operating parameters (e.g., speed, duplex, link-clock). The parameters are converted to properties of the boot device and saved. Subsequently, one or more communication connections are established using the boot device properties. Using an initial boot program, the system may establish a first connection to access and load a secondary boot program, and another connection to load an operating system kernel. The boot device properties are thus used to establish communication connections at different times in the boot process, while the system is controlled by different programs (e.g., open boot PROM, secondary boot program, operating system kernel).Type: ApplicationFiled: March 13, 2003Publication date: September 16, 2004Inventors: Asif H. Haswarey, Francesco R. DiMambro, Anil Umarshi Visariya
-
Publication number: 20040024873Abstract: A system and method for distributing a portion of the processing of a received packet among a plurality of service threads. When an ISR or similar process retrieves a packet from a communication interface via a receive descriptor ring, it places the packet on one of a plurality of service queues. Each queue has an associated service thread or process that initiates upper layer protocol processing for queued packets. The ISR may select a particular service queue based on the packet's communication flow or connection. Alternatively, the ISR may use a processor identifier provided by the communication interface to select a queue (e.g., in a multi-processor computer system). Or, other information provided by the interface may be used.Type: ApplicationFiled: July 31, 2002Publication date: February 5, 2004Inventor: Francesco R. DiMambro
-
Publication number: 20040025089Abstract: An enhanced VPD structure includes a type field to indicate whether a particular property is a general property to be associated with an interface card or other computer system component, or a device- or function-specific property to be associated with one or more devices or functions. The enhanced VPD structure also includes fields for identifying the device(s) and/or function(s) to which a device- or function-specific property applies, along with the value of the property, a data type and length of the property, and a meaningful name of the property. The enhanced VPD structure may be accessed during system boot, during hot-swapping of an interface card or other component, or at other times.Type: ApplicationFiled: July 30, 2002Publication date: February 5, 2004Inventors: Asif H. Haswarey, Francesco R. DiMambro, Sumanth R. Kamatala, Anil Umarshi Visariya, David M. Kahn
-
Publication number: 20040024904Abstract: A system and method are provided for using multiple transmit descriptor rings to transmit packets from a computer system. A device driver for a communication interface (e.g., a NIC) receives a packet (e.g., from an upper layer protocol), selects one of the multiple rings and places the packet on the ring. Because the rings are managed in a mutually exclusive manner, packets can be placed on more than one ring at the same time (e.g., by different processors), thus allowing them to be populated in parallel, rather than serially. To select a ring, a packet's destination address, destination port or other characteristic may be hashed, or a modulo of that characteristic over the number of rings may be calculated. Illustratively, all packets in one connection or flow are transmitted through the same ring.Type: ApplicationFiled: July 31, 2002Publication date: February 5, 2004Inventor: Francesco R. DiMambro
-
Publication number: 20030231659Abstract: A kernel data transfer method and system for transmitting multiple packets of data in a single block of data presented by application programs to the kernel's network subsystem for processing in accordance with data transfer parameters set by the application program. The multi-packet transmit system includes logic that allows header information of the multiple packets of data to be generated in a single buffer and appended to a second buffer containing the data packets to be transmitted through the network stack. The multi-data transmit system allows a device driver to amortize the input/output memory management related overhead across a number of packets. With some assistance from the network stack, the device driver needs to only perform the necessary IOMMU operations on two contiguous memory blocks representing the header information and the data payload of multiple packets during each transmit call.Type: ApplicationFiled: May 9, 2003Publication date: December 18, 2003Inventors: Francesco R. DiMambro, Cahya Adi Masputra
-
Publication number: 20030223456Abstract: An apparatus and method for expeditiously steering a received communication (e.g., packet, cell, frame) to one or more communication streams. When a new communication stream is opened on a network interface circuit or other Primary Point of Attachment (PPA), the protocol to which the stream is bound is used as a Service Access Point (SAP). A hierarchy of SAP nodes (e.g., a binary tree) is constructed, with each node corresponding to a unique SAP. Each node includes its corresponding SAP value, a count of the number of communication streams bound to the associated protocol, and a reference to those streams. When a communication is received, its SAP is extracted and the hierarchy is searched for a matching node. The communication is then forwarded to each referenced stream.Type: ApplicationFiled: June 4, 2002Publication date: December 4, 2003Inventor: Francesco R. DiMambro