Patents by Inventor Kan Fan

Kan Fan 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: 8635388
    Abstract: Aspects of a method and system for an operating system (OS) virtualization-aware network interface card (NIC) are provided. A NIC may provide direct I/O capabilities for each of a plurality of concurrent guest operating systems (GOSs) in a host system. The NIC may comprise a GOS queue for each of the GOSs, where each GOS queue may comprise a transmit (TX) queue, a receive (RX) queue, and an event queue. The NIC may communicate data with a GOS via a corresponding TX queue and RX queue. The NIC may notify a GOS of events such as down link, up link, packet transmission, and packet reception via the corresponding event queue. The NIC may also support unicast, broadcast, and/or multicast communication between GOSs. The NIC may also validate a buffered address when the address corresponds to one of the GOSs operating in the host system.
    Type: Grant
    Filed: May 16, 2006
    Date of Patent: January 21, 2014
    Assignee: Broadcom Corporation
    Inventor: Kan Fan
  • Patent number: 8161197
    Abstract: Method and system for efficient buffer management for layer 2 through layer 5 network interface controller applications are provided. Aspects of the method may comprise determining whether an active NIC connection is an L2 type, an L4 type, or an L5 type. At least one buffer descriptor may be cached locally on a network interface controller (NIC) managed by a NIC application. The buffer descriptor is associated with the determined type of the active NIC connection. If the at least one active NIC connection is of the L2 or L4 type, the buffer descriptor may comprise at least one of a receive (RX) buffer descriptor and a transmit (TX) buffer descriptor. If the NIC connection is of the L5 type, the buffer descriptor may comprise at least one of a upper translation page table (TPT) entry and a lower TPT entry.
    Type: Grant
    Filed: October 22, 2004
    Date of Patent: April 17, 2012
    Assignee: Broadcom Corporation
    Inventors: Scott McDaniel, Kan Fan
  • Patent number: 8055895
    Abstract: Methods and associated systems provide secured data transmission over a data network. A security device provides security processing in the data path of a packet network. The device may include at least one network interface to send packets to and receive packets from a data network and at least one cryptographic engine for performing encryption, decryption and/or authentication operations. The device may be configured as an in-line security processor that processes packets that pass through the device as the packets are routed to/from the data network.
    Type: Grant
    Filed: August 31, 2009
    Date of Patent: November 8, 2011
    Assignee: Broadcom Corporation
    Inventors: Mark Buer, Scott S. McDaniel, Uri Elzur, Joseph J. Tardo, Kan Fan
  • Publication number: 20090319775
    Abstract: Methods and associated systems provide secured data transmission over a data network. A security device provides security processing in the data path of a packet network. The device may include at least one network interface to send packets to and receive packets from a data network and at least one cryptographic engine for performing encryption, decryption and/or authentication operations. The device may be configured as an in-line security processor that processes packets that pass through the device as the packets are routed to/from the data network.
    Type: Application
    Filed: August 31, 2009
    Publication date: December 24, 2009
    Applicant: Broadcom Corporation
    Inventors: Mark L. Buer, Scott S. McDaniel, Uri Elzur, Joseph J. Tardo, Kan Fan
  • Patent number: 7587587
    Abstract: Methods and associated systems provide secured data transmission over a data network. A security device provides security processing in the data path of a packet network. The device may include at least one network interface to send packets to and receive packets from a data network and at least one cryptographic engine for performing encryption, decryption and/or authentication operations. The device may be configured as an in-line security processor that processes packets that pass through the device as the packets are routed to/from the data network.
    Type: Grant
    Filed: December 4, 2003
    Date of Patent: September 8, 2009
    Assignee: Broadcom Corporation
    Inventors: Mark L. Buer, Scott S. McDaniel, Uri Elzur, Joseph J. Tardo, Kan Fan
  • Publication number: 20070263630
    Abstract: Systems and methods that provide fault tolerant transmission control protocol (TCP) offloading are provided. In one example, a method that provides fault tolerant TCP offloading is provided. The method may include one or more of the following steps: receiving TCP segment via a TCP offload engine (TOE); calculating a TCP sequence number; writing a receive sequence record based upon at least the calculated TCP sequence number to a TCP sequence update queue in a host; and updating a first host variable with a value from the written receive sequence record.
    Type: Application
    Filed: April 4, 2007
    Publication date: November 15, 2007
    Applicant: BROADCOM CORPORATION
    Inventor: Kan Fan
  • Publication number: 20070244972
    Abstract: Aspects of a method and system for an operating system (OS) virtualization-aware network interface card (NIC) are provided. A NIC may provide direct I/O capabilities for each of a plurality of concurrent guest operating systems (GOSs) in a host system. The NIC may comprise a GOS queue for each of the GOSs, where each GOS queue may comprise a transmit (TX) queue, a receive (RX) queue, and an event queue. The NIC may communicate data with a GOS via a corresponding TX queue and RX queue. The NIC may notify a GOS of events such as down link, up link, packet transmission, and packet reception via the corresponding event queue. The NIC may also support unicast, broadcast, and/or multicast communication between GOSs. The NIC may also validate a buffered address when the address corresponds to one of the GOSs operating in the host system.
    Type: Application
    Filed: May 16, 2006
    Publication date: October 18, 2007
    Inventor: Kan Fan
  • Publication number: 20070233886
    Abstract: Certain aspects of a method and system for a one bit TCP offload may comprise initiating offload processing of TCP data based on assertion of at least one bit without receiving TCP connection state information from a host. The asserted at least one bit of data may comprise at least one of: a synchronous (SYN) control bit and an acknowledgement (ACK) bit a received packet of data. A TCP passive connection lookup table (PCLT) may be checked utilizing at least one of: a source IP address, a destination IP address, a source TCP port, and a destination TCP port to determine whether the received packet of data comprising said asserted SYN control bit and said asserted ACK bit matches an entry in the PCLT.
    Type: Application
    Filed: May 16, 2006
    Publication date: October 4, 2007
    Inventor: Kan Fan
  • Publication number: 20070022212
    Abstract: Certain embodiments of the invention may be found in a method and system for transmission control protocol (TCP) large receive offload. A coalescer may be utilized to collect TCP segments in a network interface card (NIC) without transferring state information to a host system. The collected TCP segments may be buffered in the coalescer. The coalescer may verify that the network connection associated with the collected TCP segments has an entry in a connection lookup table (CLT). When the CLT is full, the coalescer may close a current entry and assign the network connection to the available entry. The coalescer may also update information in the CLT. When an event occurs that terminates the collection of TCP segments, the coalescer may generate a single coalesced TCP segment based on the collected TCP segments. The coalesced TCP segment and state information may be communicated to the host system for processing.
    Type: Application
    Filed: July 18, 2006
    Publication date: January 25, 2007
    Inventor: Kan Fan
  • Publication number: 20060218388
    Abstract: Certain aspects of a method for iSCSI boot may include loading boot BIOS code from a host bus adapter or a network interface controller (NIC) by an iSCSI client device. A connection may be established to an iSCSI target by the iSCSI client device after loading the boot BIOS code. The boot BIOS code may be chained to at least one interrupt handler over iSCSI protocol. An operating system may be remotely booted from the iSCSI target by the iSCSI client device based on chaining the interrupt handler. An Internet protocol (IP) address and/or location of the iSCSI target may be received. At least one iSCSI connection may be initiated to the iSCSI target based on chaining at least one interrupt handler. The iSCSI target may be booted in real mode if at least one master boot record is located in the memory.
    Type: Application
    Filed: March 27, 2006
    Publication date: September 28, 2006
    Inventors: Uri Zur, Kan Fan, Murali Rajagopal, Kevin Tran
  • Publication number: 20060015655
    Abstract: Certain embodiments of the invention may be found in a method and system for performing SCSI read operations with a CRC via a TCP offload engine. Aspects of the method may comprise receiving an iSCSI read command from an initiator. Data may be fetched from a buffer based on the received iSCSI read command. The fetched data may be zero copied from the buffer to the initiator and a TCP sequence may be retransmitted to the initiator. A digest value may be calculated, which may be communicated to the initiator. An accumulated digest value stored in a temporary buffer may be utilized to calculate a final digest value, if the buffer is posted. The retransmitted TCP sequence may be processed and the fetched data may be zero copied into an iSCSI buffer, if the buffer is posted. The calculated final digest value may be communicated to the initiator.
    Type: Application
    Filed: June 17, 2005
    Publication date: January 19, 2006
    Inventors: Uri Zur, Kan Fan, Scott McDaniel
  • Publication number: 20060007926
    Abstract: Aspects for providing pooling or dynamic allocation of connection context data may comprise receiving data associated with a first network protocol via a first network interface and receiving data associated with a second network protocol via a second network interface. The first and the second network interfaces are adapted to aggregate the received data. A single context memory may be shared and utilized for processing data associated with the first network protocol and data associated with the second network protocol. The first network interface may be coupled to a first connection and the second network interface may be coupled to a second connector. At least a portion of the received data associated with the first and/or second network protocols may be offloaded for processing using the single context memory. The received data associated with the first and/or second network protocols may comprise traffic different data and/or control data.
    Type: Application
    Filed: December 20, 2004
    Publication date: January 12, 2006
    Inventors: Uri Zur, Steven Lindsay, Kan Fan, Scott McDaniel
  • Publication number: 20050281262
    Abstract: Certain embodiments of the invention may be found in a method and system for performing a SCSI read operation via a TCP offload engine. Aspects of the method may comprise receiving an iSCSI read command from an initiator. Data may be fetched from a buffer based on the received iSCSI read command. The fetched data may be zero copied from the buffer to the initiator and a TCP sequence may be retransmitted to the initiator. The method may further comprise checking if the zero copied fetched data is a first frame in an iSCSI protocol data unit and if the buffer is posted. The retransmitted TCP sequence may be processed and the fetched data may be zero copied into an iSCSI buffer, if the buffer is posted.
    Type: Application
    Filed: June 17, 2005
    Publication date: December 22, 2005
    Inventors: Uri Zur, Kan Fan, Scott McDaniel
  • Publication number: 20050283545
    Abstract: A method and system is provided for handling data by a TCP offload engine. The TCP offload engine may be adapted to perform SCSI write operations and may comprise receiving an iSCSI write command from an iSCSI port driver. At least one buffer may be allocated for handling data associated with the received iSCSI write command from the iSCSI port driver. The received iSCSI write command may be formatted into at least one TCP segment. The at least one TCP segment may be transmitted to a target. A request to transmit (R2T) signal may be communicated from the target to an initiator. The write data may be zero copied from the allocated at least one buffer in a server to the initiator. A digest value may be calculated, which may be appended to the TCP segment communicated by the initiator to the target.
    Type: Application
    Filed: June 17, 2005
    Publication date: December 22, 2005
    Inventors: Uri Zur, Kan Fan, Scott McDaniel
  • Publication number: 20050281280
    Abstract: Certain aspects of a method and system for supporting hardware acceleration for iSCSI read and write operations via a TCP offload engine may comprise pre-registering at least one buffer with hardware. An iSCSI command may be received from an initiator. An initiator test tag value, a data sequence value and/or a buffer offset value of an iSCSI buffer may be compared with the pre-registered buffer. Data may be fetched from the pre-registered buffer based on comparing the initiator test tag value, the data sequence value and/or the buffer offset value of the iSCSI buffer with the pre-registered buffer. The fetched data may be zero copied from the pre-registered buffer to the initiator.
    Type: Application
    Filed: June 17, 2005
    Publication date: December 22, 2005
    Inventors: Uri Zur, Kan Fan, Scott McDaniel
  • Publication number: 20050281261
    Abstract: Certain embodiments of the invention may be found in a method and system for performing SCSI write operations via a TCP offload engine. Aspects of the method may comprise receiving an iSCSI write command from an initiator. At least one buffer may be allocated for handling data associated with the received iSCSI write command from the initiator. A request to transmit (R2T) signal may be received that may be transmitted by the initiator. The data may be zero copied from the allocated at least one buffer to the initiator.
    Type: Application
    Filed: June 17, 2005
    Publication date: December 22, 2005
    Inventors: Uri Zur, Kan Fan, Scott McDaniel
  • Publication number: 20050135415
    Abstract: A method and system for handling received out-of-order network data using generic buffers for non-posting TCP applications is disclosed. When incoming out-of-order data is received and there is no application buffer posted, a TCP data placement may notify a TCP reassembler to terminate a current generic buffer, allocate a new current generic buffer, and DMA the incoming data into the new current generic buffer. The TCP data placement may notify the TCP reassembler the starting TCP sequence number and the length of the new current generic buffer. Moreover, the TCP data placement may add entries into a TCP out-of-order table when the incoming data creates a new disjoint area. The TCP data placement may adjust an existing disjoint area to reflect any updates. When a TCP application allocates or posts a buffer, then the TCP reassembler may copy data from a linked list of generic buffers into posted buffers.
    Type: Application
    Filed: December 15, 2004
    Publication date: June 23, 2005
    Inventors: Kan Fan, Scott McDaniel
  • Publication number: 20050135412
    Abstract: Certain aspects of the present invention for transmission control protocol (TCP) retransmission processing may comprise receiving a request for packet retransmission to be processed by an offload network interface card (NIC). A remote peer, a retransmission timer, or a fast retransmission signal may initiate the request. The NIC processes the request information and sends notification to the host of the request. The host searches the TCP buffers of the TCP transmission window in host memory for the packet. Once the packet is located, the host may send the offload NIC the buffer descriptors containing data that locates the packet in host memory. The offload NIC may retrieve the packet from host memory and may retransmit the packet according to the request information. The offload NIC may send notification to the host that the packet has been retransmitted.
    Type: Application
    Filed: November 30, 2004
    Publication date: June 23, 2005
    Inventor: Kan Fan
  • Publication number: 20050135173
    Abstract: Systems and methods for remote direct memory access (RDMA) queue pair (QP) state split between a RDMA aware network interface card (RNIC) and a host software or application are provided. If a QP state associated with a specific QP comprises a RTS state, the QP state may be processed by an RNIC coupled to a host. If the QP state comprises an “idle” state, a “terminate” state, an “error” state, and/or a “closing” state, the QP state may be offloaded to the host for processing. If the QP state comprises a RTS state, ownership of the QP may be transferred from the host to the RNIC. If the QP state comprises an “idle” state, a “terminate” state, an “error” state, and/or a “closing” state, ownership of the QP may be transferred from the RNIC to the host.
    Type: Application
    Filed: December 2, 2004
    Publication date: June 23, 2005
    Inventor: Kan Fan
  • Publication number: 20050135417
    Abstract: Provided is a system and method for performing smart offloads between computer applications module and a network interfacing device within a data communications system. The method includes receiving data requests from the computer applications module and determining whether the received data requests require offloading. The received requests are forwarded along a first data path to the network interfacing device if offloading is required. If offloading is not required, the received data requests are forwarded along a secondary data path to a host protocol stack for processing. Next, the protocol processing is performed and the processed data requests are forwarded to the network interfacing device.
    Type: Application
    Filed: October 28, 2004
    Publication date: June 23, 2005
    Inventors: Kan Fan, Scott McDaniel