Search Patents
  • Publication number: 20040143781
    Abstract: A system and method for performing non-intrusive loopback testing in a communication device. When a loopback mode of testing is requested for the communication device (e.g., from a diagnostic application), and one or more communication streams are active or bound to the device, the streams are suspended instead of terminated. In a list of the active streams, maintained in the device's information data structure, a device driver or the application modifies each of the streams (e.g., by setting a flag). While a stream is suspended, any traffic for the stream is dropped. After the loopback testing is completed, the streams are reactivated.
    Type: Application
    Filed: January 21, 2003
    Publication date: July 22, 2004
    Inventors: Francesco DiMambro, Hongping Yuan
  • Publication number: 20040177164
    Abstract: A system and method for reclaiming descriptors in a separate process (e.g., thread) from one in which packets are posted to a descriptor ring. The packet-posting process need not be interrupted to reclaim used descriptors, thereby reducing the delay in transmitting packets through a communication interface. The descriptor reclamation process, which may execute on a separate processor from the packet-posting process, may remain quiescent as long as the ring is less than half full or there are no descriptors to reclaim. Then, both processes may operate in parallel.
    Type: Application
    Filed: February 25, 2003
    Publication date: September 9, 2004
    Inventors: Francesco DiMambro, Charles Suresh, Jian Huang
  • Publication number: 20040143780
    Abstract: A method and apparatus for determining a communication device's loopback capabilities by querying a device driver of the device. The device's loopback capabilities identify locations (e.g., internal modules, protocol layers) in the device, and/or data rates, at which loopback testing may be performed. Instead of embedding those capabilities in a diagnostic application and modifying the application every time a device changes or is upgraded, the application queries the device driver. The device driver sends the application a data structure or message identifying the capabilities, including identifiers. The application specifies a loopback capability to be exercised by returning a corresponding identifier to the driver.
    Type: Application
    Filed: January 21, 2003
    Publication date: July 22, 2004
    Inventors: Francesco DiMambro, Hongping Yuan
  • Publication number: 20110310892
    Abstract: Systems, devices and methods for improving network performance are disclosed. In particular, in one embodiment, a method of processing data packets in an electronic network is provided. The method includes receiving data packets at a receive stack of an electronic network device and creating a first packet from at least a portion of each of the set of data packets. The first packet includes an indicator that the first packet is a first packet type. The creation of the first packet includes saving a first header of the plurality of data packets, modifying the first header with information from each of the set of data packets, and concatenating the set of data packets.
    Type: Application
    Filed: June 17, 2010
    Publication date: December 22, 2011
    Applicant: Apple Inc.
    Inventor: Francesco DiMambro
  • Patent number: 8537815
    Abstract: Systems, devices and methods for improving network performance are disclosed. In particular, in one embodiment, a method of processing data packets in an electronic network is provided. The method includes receiving data packets at a receive stack of an electronic network device and creating a first packet from at least a portion of each of the set of data packets. The first packet includes an indicator that the first packet is a first packet type. The creation of the first packet includes saving a first header of the plurality of data packets, modifying the first header with information from each of the set of data packets, and concatenating the set of data packets.
    Type: Grant
    Filed: June 17, 2010
    Date of Patent: September 17, 2013
    Assignee: Apple Inc.
    Inventor: Francesco DiMambro
  • Publication number: 20150071290
    Abstract: Systems, devices and methods for improving network performance are disclosed. In particular, in one embodiment, a method of processing data packets in an electronic network is provided. The method includes receiving data packets at a receive stack of an electronic network device and creating a first packet from at least a portion of each of the set of data packets. The first packet includes an indicator that the first packet is a first packet type. Additionally, the method includes passing the first packet to one of a bridge and IP layer of the receive stack. A first packet inhibitor at the one of the bridge and IP layer is bypassed upon recognizing the first packet as a first packet type. The first packet is routed to a transmit stack of the electronic network device from the one of the bridge and IP layer.
    Type: Application
    Filed: September 18, 2014
    Publication date: March 12, 2015
    Inventor: Francesco DiMambro
  • Publication number: 20110085549
    Abstract: Systems, devices and methods for improving network performance are disclosed. In particular, in one embodiment, a method of processing data packets in an electronic network is provided. The method includes receiving data packets at a receive stack of an electronic network device and creating a first packet from at least a portion of each of the set of data packets. The first packet includes an indicator that the first packet is a first packet type. Additionally, the method includes passing the first packet to one of a bridge and IP layer of the receive stack. A first packet inhibitor at the one of the bridge and IP layer is bypassed upon recognizing the first packet as a first packet type. The first packet is routed to a transmit stack of the electronic network device from the one of the bridge and IP layer.
    Type: Application
    Filed: October 13, 2009
    Publication date: April 14, 2011
    Applicant: Apple Inc.
    Inventor: Francesco DiMambro
  • Patent number: 8848713
    Abstract: Systems, devices and methods for improving network performance are disclosed. In particular, in one embodiment, a method of processing data packets in an electronic network is provided. The method includes receiving data packets at a receive stack of an electronic network device and creating a first packet from at least a portion of each of the set of data packets. The first packet includes an indicator that the first packet is a first packet type. Additionally, the method includes passing the first packet to one of a bridge and IP layer of the receive stack. A first packet inhibitor at the one of the bridge and IP layer is bypassed upon recognizing the first packet as a first packet type. The first packet is routed to a transmit stack of the electronic network device from the one of the bridge and IP layer.
    Type: Grant
    Filed: October 13, 2009
    Date of Patent: September 30, 2014
    Assignee: Apple Inc.
    Inventor: Francesco DiMambro
  • Patent number: 9998373
    Abstract: Systems, devices and methods for improving network performance are disclosed. In particular, in one embodiment, a method of processing data packets in an electronic network is provided. The method includes receiving data packets at a receive stack of an electronic network device and creating a first packet from at least a portion of each of the set of data packets. The first packet includes an indicator that the first packet is a first packet type. Additionally, the method includes passing the first packet to one of a bridge and IP layer of the receive stack. A first packet inhibitor at the one of the bridge and IP layer is bypassed upon recognizing the first packet as a first packet type. The first packet is routed to a transmit stack of the electronic network device from the one of the bridge and IP layer.
    Type: Grant
    Filed: September 18, 2014
    Date of Patent: June 12, 2018
    Assignee: Apple Inc.
    Inventor: Francesco DiMambro
  • Patent number: 7689723
    Abstract: A system and method for virtualizing a hardware device node for a network interface circuit or other device. In a clone driver's configuration file, multiple virtual or clone nodes are defined. Their major numbers match the major number of the driver, but a virtual node's minor number for a Style 2 driver is calculated from the hardware driver's major number and the instance or port number of the corresponding hardware node. By creating multiple clone nodes, multiple paths through the protocol stack are created. Each one can be configured differently (e.g., for different MTU sizes), and each may be assigned a different address (e.g., MAC address). The separate addresses may be registered with hardware filters to filter incoming packets at the hardware level. A traffic classifier created in the device driver manages each virtual node's association with a hardware filter.
    Type: Grant
    Filed: November 8, 2004
    Date of Patent: March 30, 2010
    Assignee: Sun Microsystems, Inc.
    Inventor: Francesco DiMambro
  • Patent number: 7400650
    Abstract: A system and method for improving the efficiency with which data communications are passed through a protocol stack. Protocol layer modules within a protocol stack built upon the Streams framework are modified to establish tight embraces between adjacent modules. A tight embrace may be established by passing from one, upper, protocol layer module to its adjacent lower protocol layer module a pointer or reference to the upper module's functionality (e.g., rput) for reading a data communication into the upper module from the lower module. Similarly, the lower module passes the upper module a pointer or reference to its functionality (e.g., wput) for writing a data communication into the lower module from the upper module. After a tight embrace is established, the protocol layer modules can directly invoke each other's functionality, without incurring the overhead associated with the Streams framework's “canputnext” and “putnext” messages.
    Type: Grant
    Filed: January 31, 2005
    Date of Patent: July 15, 2008
    Assignee: Sun Microsystems, Inc.
    Inventor: Francesco DiMambro
  • Patent number: 7463595
    Abstract: 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: Grant
    Filed: June 29, 2004
    Date of Patent: December 9, 2008
    Assignee: Sun Microsystems, Inc.
    Inventors: Prafull Singhal, Francesco R. Dimambro
  • Publication number: 20040024873
    Abstract: 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: Application
    Filed: July 31, 2002
    Publication date: February 5, 2004
    Inventor: Francesco R. DiMambro
  • Publication number: 20030223456
    Abstract: 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: Application
    Filed: June 4, 2002
    Publication date: December 4, 2003
    Inventor: Francesco R. DiMambro
  • Publication number: 20040025089
    Abstract: 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: Application
    Filed: July 30, 2002
    Publication date: February 5, 2004
    Inventors: Asif H. Haswarey, Francesco R. DiMambro, Sumanth R. Kamatala, Anil Umarshi Visariya, David M. Kahn
  • Publication number: 20040024904
    Abstract: 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: Application
    Filed: July 31, 2002
    Publication date: February 5, 2004
    Inventor: Francesco R. DiMambro
  • Patent number: 7187676
    Abstract: 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: Grant
    Filed: June 4, 2002
    Date of Patent: March 6, 2007
    Assignee: Sun Microsystems, Inc.
    Inventor: Francesco R. DiMambro
  • Patent number: 7356039
    Abstract: 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: Grant
    Filed: September 22, 2003
    Date of Patent: April 8, 2008
    Assignee: Sun Microsystems, Inc.
    Inventor: Francesco R. DiMambro
  • Patent number: 7076545
    Abstract: 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: Grant
    Filed: July 31, 2002
    Date of Patent: July 11, 2006
    Assignee: Sun Microsystems, Inc.
    Inventor: Francesco R. DiMambro
  • Patent number: 7149820
    Abstract: 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: Grant
    Filed: July 30, 2002
    Date of Patent: December 12, 2006
    Assignee: Sun Microsystems, Inc.
    Inventors: Asif H. Haswarey, Francesco R. DiMambro, Sumanth R. Kamatala, Anil Umarshi Visariya, David M. Kahn
Narrow Results

Filter by US Classification