Intelligent network adaptor with end-to-end flow control
원문보기
IPC분류정보
국가/구분
United States(US) Patent
등록
국제특허분류(IPC7판)
G06F-015/16
G06F-015/167
출원번호
US-0249077
(2011-09-29)
등록번호
US-8356112
(2013-01-15)
발명자
/ 주소
Michailidis, Dimitrios
Noureddine, Wael
Marti, Felix A.
Eiriksson, Asgeir Thor
출원인 / 주소
Chelsio Communications, Inc.
인용정보
피인용 횟수 :
0인용 특허 :
116
초록▼
A host is coupled to a network via an intelligent network adaptor. The host is executing an application configured to receive application data from a peer via the network and the intelligent network adaptor using a stateful connection according to a connection-oriented protocol. The intelligent netw
A host is coupled to a network via an intelligent network adaptor. The host is executing an application configured to receive application data from a peer via the network and the intelligent network adaptor using a stateful connection according to a connection-oriented protocol. The intelligent network adaptor performs protocol processing of the connection. Application data is copied from host memory not configured for access by the application (possibly OS-associated host memory) to host memory associated with the application (application-associated host memory). The application data is received from the peer by the intelligent network adaptor and copied to host memory not configured for access by the application. The operating system selectively provides, to the intelligent network adaptor, information of the memory associated with the application. At least one portion of the application data for the connection is provided directly from the intelligent network adaptor to the memory associated with the application.
대표청구항▼
1. A method of operating a stateful connection between a host and a peer via a network, the host executing an application configured to receive data packets, including application data, from the peer via the network using the stateful connection between the host and the peer according to a connectio
1. A method of operating a stateful connection between a host and a peer via a network, the host executing an application configured to receive data packets, including application data, from the peer via the network using the stateful connection between the host and the peer according to a connection-oriented protocol, the method comprising: performing protocol processing for the connection with the peer to, at least in part, obtain the application data from the data packets received from the peer, including indicating a receive window to the peer;placing the obtained application data to host memory application buffer associated with the application, the host memory application buffer not being associated with a host operating system;causing the indicated receive window to be increased based on the host memory application buffer becoming available due to the application consuming application data from the application buffer; andproviding flow control by generating the receive window indication, including maintaining an indication of receive window credits based on an amount of the application data placed to the host memory application buffer and further based on the application data in the host memory application buffer being consumed by the application. 2. The method of claim 1, further comprising: causing the indicated receive window to be reduced based on the application data being placed in the host memory application buffer by an intelligent network adaptor that couples the host to a peer a network to operate the stateful connection between the host and the peer via the network. 3. A method of operating an intelligent network adaptor that couples a host to a network, the host executing an application configured to receive data packets, including application data from a peer via the network and the intelligent network adaptor using a stateful connection between the host and the peer according to a connection-oriented protocol, the method comprising: by the intelligent network adaptor, receiving, from the host, a plurality of indications that the application has consumed application data from a host memory application buffer associated with the application, the host memory application buffer not being associated with a host operating system; andby the intelligent network adaptor, generating a receive window indication based at least in part on the received indications of consumption of the application data from the host memory application buffer;the host memory application buffer is larger than an amount of memory allowed by the connection-oriented protocol for flow control; andthe host is configured to expose, for use by protocol processing of the connection at any particular time, a portion of the host memory application buffer that is no larger than the amount of memory allowed by the connection-oriented protocol for flow controlthe host maintains the host memory application buffer as a plurality of overlapping windows into the host memory application buffer, each window no larger than the amount of memory allowed by the connection-oriented protocol for flow control; andthe host selectively exposes to the protocol processing one of the windows at any particular time. 4. The method of claim 3, wherein: the host maintains the host memory application buffer as a ring structure. 5. The method of claim 3, wherein: maintaining the host memory application buffer as a plurality of overlapping windows includes maintaining the host memory application buffer as a ring structure, including maintaining producer and consumer pointers into a currently-exposed window, including advancing the producer pointer based on in-order application data being placed in the host memory application buffer and advancing the consumer pointer based on application data being consumed by the application from the host memory application buffer. 6. The method of claim 5, wherein: maintaining the host memory application buffer as a plurality of overlapping windows includes, as the consumer pointer is advanced based on consumption of application data by the application, releasing credits corresponding to the connection from the host to the intelligent network adaptor; andthe intelligent network adaptor generates the receive window for the connection based at least in part on the released credits. 7. The method of claim 6, wherein: releasing credits corresponding to the connection from the host to the intelligent network adaptor includes accumulating credits corresponding to the connection and bunching the release of accumulated credits from the host to the intelligent network adaptor. 8. The method of claim 5, wherein: advancing the producer pointer based on in-order application data being placed in the host memory application buffer includes the intelligent network adaptor accumulating notifications to the host of application data being placed in the host memory application buffer to moderate the notifications being provided to the host. 9. The method of claim 3, wherein: maintaining the producer and consumer pointers into the currently-exposed window includes constraining the producer pointer from being advanced only as far as the one-window's worth of memory away from the consumer pointer. 10. The method of claim 5, wherein: maintaining the host memory application buffer as a plurality of overlapping windows includes, as the producer pointer is advanced based on placing of application data by the intelligent network adaptor, decrementing receive windows credits corresponding to the connection; andthe intelligent network adaptor generates the receive window based at least in part on receive window credits corresponding to the connection. 11. An intelligent network adaptor that couples a host to a network, the host executing an application configured to receive data packets, including application data, from a peer via the network and the intelligent network adaptor using a stateful connection between the host and the peer according to a connection-oriented protocol, wherein the intelligent network adaptor performs protocol processing of the connection, the intelligent network adaptor comprising hardware configured to: perform protocol processing for the connection with the peer to, at least in part, obtain the application data from the data packets received from the peer, including indicating a receive window to the peer;place application data, received from the peer via the stateful connection, from the intelligent network adaptor directly to host memory application buffer associated with the application without the application data being first provided from the intelligent network adaptor to host memory buffer associated with a host operating system and not specifically with the application;cause the indicated receive window to be increased based on the application buffer becoming available due to the application consuming application data from the application buffer; andprovide flow control by generating the receive window indication, including maintaining an indication of receive window credits based on an amount of the application data placed from the intelligent network adaptor to host memory application buffer and further based on the application data in the host memory application buffer being consumed by the application. 12. The intelligent network adaptor of claim 11, further configured to: cause the indicated receive window to be reduced based on the application data being placed in the host memory application buffer by the intelligent network adaptor. 13. The intelligent network adaptor of claim 11, further configured to: place application data, received from the peer via the stateful connection, from the intelligent network adaptor to the host memory buffer associated with the operating system and not specifically with the application and, based thereon, causing the indicated receive window to be reduced. 14. An intelligent network adaptor that couples a host to a network, the host executing an application configured to receive data packets, including application data from a peer via the network and the intelligent network adaptor using a stateful connection between the host and the peer according to a connection-oriented protocol, wherein the intelligent network adaptor performs protocol processing of the connection, the intelligent network adaptor comprising hardware configured to: perform protocol processing for the connection with the peer to, at least in part, obtain the application data from the data packets received from the peer, including providing a receive window to the peerplace application data, received from the peer via the stateful connection, from the intelligent network adaptor directly to host memory application buffer associated with the application without the application data being first provided from the intelligent network adaptor to host memory buffer associated with a host operating system and not specifically with the application; andreceive, from the host, an indication that the application has consumed application data from the host memory application buffer associated with the application; andgenerate the receive window based at least in part on the received indications of consumption of the application data from the host memory application buffer, whereinthe host memory application buffer is larger than an amount of memory allowed by the connection-oriented protocol for flow control;the host is configured to expose to the interface adaptor, for use with the connection at any particular time, a portion of the host memory application buffer that is no larger than the amount of memory allowed by the connection-oriented protocol for flow control;the host maintains the host memory application buffer as a plurality of overlapping windows into the host memory application buffer, each window no larger than the amount of memory allowed by the connection-oriented protocol for flow control; and the host selectively exposes to the protocol processing one of the windows at any particular time.
연구과제 타임라인
LOADING...
LOADING...
LOADING...
LOADING...
LOADING...
이 특허에 인용된 특허 (116)
Wang, Yi-Min; Hunt, Galen C.; Forin, Alessandro, Accelerating a distributed component architecture over a network using a modified RPC communication.
Freimuth,Douglas Morgan; Hu,Elbert C.; Mraz,Ronald; Nahum,Erich M.; Pradhan,Prashant; Sahu,Sambit; Tracey,John Michael, Apparatus and method for supporting received data processing in an offload of network protocol processing.
Philbrick,Clive M.; Boucher,Laurence B.; Starr,Daryl D., Data communication apparatus for computer intelligent network interface card which transfers data between a network and a storage device according designated uniform datagram protocol socket.
Boucher, Laurence B.; Blightman, Stephen E. J.; Craft, Peter K.; Higgen, David A.; Philbrick, Clive M.; Starr, Daryl D., Fast-path apparatus for receiving data corresponding to a TCP connection.
Boucher,Laurence B.; Blightman,Stephen E. J.; Craft,Peter K.; Higgen,David A.; Philbrick,Clive M.; Starr,Daryl D., Fast-path apparatus for receiving data corresponding to a TCP connection.
Boucher,Laurence B.; Blightman,Stephen E. J.; Craft,Peter K.; Higgen,David A.; Philbrick,Clive M.; Starr,Daryl D., Fast-path processing for receiving data on TCP connection offload devices.
Michailidis, Dimitrios; Noureddine, Wael; Marti, Felix A.; Eiriksson, Asgeir Thor, Intelligent network adaptor with adaptive direct data placement scheme.
Laurence B. Boucher ; Stephen E. J. Blightman ; Peter K. Craft ; David A. Higgen ; Clive M. Philbrick ; Daryl D. Starr, Intelligent network interface device and system for accelerated communication.
Boucher, Laurence B.; Philbrick, Clive M.; Starr, Daryl D.; Blightman, Stephen E. J.; Craft, Peter K.; Higgen, David A., Intelligent network interface system and method for accelerated protocol processing.
Boucher Laurence B. ; Blightman Stephen E. J. ; Craft Peter K. ; Higgen David A. ; Philbrick Clive M. ; Starr Daryl D., Intelligent network interface system method for protocol processing.
Laurence B. Boucher ; Stephen E. J. Blightman ; Peter K. Craft ; David A. Higgen ; Clive M. Philbrick ; Daryl D. Starr, Intelligent network interfaced device and system for accelerated communication.
Blackmore,Robert S.; Gildea,Kevin J.; Govindaraju,Rama K.; Shah,Gautam H., Mechanisms for efficient message passing with copy avoidance in a distributed system using advanced network devices.
Hussain, Muhammad R.; Kessler, Richard E.; Masood, Faisal; Sanzone, Robert A.; Badr, Imran, Method and apparatus for reducing host overhead in a socket server implementation.
Hussain, Muhammad R.; Kessler, Richard E.; Masood, Faisal; Sanzone, Robert A.; Badr, Imran, Method and apparatus for reducing host overhead in a socket server implementation.
Sin,Jin hyun; Mun,Byung in; Cho,Song yean; Yoo,Hyuck; Yoo,See hwan; Choi,Jin hee, Method for adjusting a transmission rate to obtain the optimum transmission rate in a mobile ad hoc network environment.
Freimuth, Douglas Morgan; Hu, Elbert C.; Mraz, Ronald; Nahum, Erich M.; Pradhan, Prashant; Sahu, Sambit, Method for supporting connection establishment in an offload of network protocol processing.
Eiriksson, Asgeir Thor; Chen, Shenze; Kaplan, Patricio Fernando; Smith, George E., Method for using a protocol language to avoid separate channels for control messages involving encapsulated payload data messages.
Hariguchi, Yoichi; Panigrahy, Rina; Sharma, Samar; Nagaraj, Ashwath, Methods and apparatus for mapping ranges of values into unique values of particular use for range matching operations using an associative memory.
Pandya, Mihir A.; Whisenhunt, Gary L., Microprocessor having a content addressable memory (CAM) device as a functional unit therein and method of operation.
Griswold,Doug; Bexten,Ron, Mobile data communications apparatus, methods and computer program products implementing cellular wireless data communications via a wireless local area network.
Blightman,Stephen E. J.; Starr,Daryl D.; Philbrick,Clive M., Network interface device for error detection using partial CRCS of variable length message portions.
Boucher, Laurence B.; Blightman, Stephen E. J.; Craft, Peter K.; Higgen, David A.; Philbrick, Clive M.; Starr, Daryl D., Obtaining a destination address so that a network interface device can write network data without headers directly into host memory.
Boucher Laurence B. ; Blightman Stephen E. J. ; Craft Peter K. ; Higgen David A. ; Philbrick Clive M. ; Starr Daryl D., Passing a communication control block from host to a local device such that a message is processed on the device.
Boucher Laurence B. ; Blightman Stephen E. J. ; Craft Peter K. ; Higgen David A. ; Philbrick Clive M. ; Starr Daryl D., Passing a communication control block from host to a local device such that a message is processed on the device.
Laurence B. Boucher ; Stephen E. J. Blightman ; Peter K. Craft ; David A. Higgen ; Clive M. Philbrick ; Daryl D. Starr, Passing a communication control block to a local device such that a message is processed on the device.
Charles E. Narad ; Kevin Fall ; Neil MacAvoy ; Pradip Shankar ; Leonard M. Rand ; Jerry J. Hall, Platform permitting execution of multiple network infrastructure applications.
Craft, Peter K.; Philbrick, Clive M.; Boucher, Laurence B.; Starr, Daryl D.; Blightman, Stephen E. J.; Higgen, David A., Port aggregation for network connections that are offloaded to network interface devices.
Craft, Peter K.; Philbrick, Clive M.; Boucher, Laurence B.; Higgen, David A., Protocol processing stack for use with intelligent network interface device.
Craft, Peter K.; Philbrick, Clive M.; Boucher, Laurence B.; Higgen, David A., Protocol processing stack for use with intelligent network interface device.
Peter K. Craft ; Olive M. Philbrick ; Laurence B. Boucher ; David A. Higgen, Protocol processing stack for use with intelligent network interface device.
Beach Robert (Los Altos CA) Bryers Mark (San Jose CA) Cox Casey (Palo Alto CA) Fall Richard (Palo Alto CA) Finn Norman (San Jose CA) Laird Douglas (San Jose CA), Protocol processor.
Blightman,Stephen E. J.; Boucher,Laurence B.; Craft,Peter K.; Higgen,David A.; Philbrick,Clive M.; Starr,Daryl D., Reducing delays associated with inserting a checksum into a network message.
Eiriksson, Asgeir Thor; Chen, Shenze; Kaplan, Patricio Fernando; Smith, George E., Scalable direct memory access using validation of host and scatter gather engine (SGE) generation indications.
Cross, Patricia C.; Connery, Glenn W.; Duguay, Christopher J., System and method for operating a network adapter when an associated network computing system is in a low-power state.
Anand Sanjay ; Brandon Kyle ; Srinavas Nk ; Hyder Jameel, System for querying a peripheral device to determine its processing capabilities and then offloading specific processing tasks from a host to the peripheral device when needed.
Jolitz William Frederick ; Lawson Matthew Todd ; Jolitz Lynne Greer, TCP/IP network accelerator system and method which identifies classes of packet traffic for predictable protocols.
Philbrick,Clive M.; Boucher,Laurence B.; Blightman,Stephen E. J.; Craft,Peter K.; Higgen,David A.; Starr,Daryl D., TCP/IP offload device with fast-path TCP ACK generating and transmitting mechanism.
Laurence B. Boucher ; Stephen E. J. Blightman ; Peter K. Craft ; David A. Higgen ; Clive M. Philbrick ; Daryl D. Starr, TCP/IP offload network interface device.
Boucher, Laurence B.; Blightman, Stephen E. J.; Craft, Peter K.; Higgen, David A.; Philbrick, Clive M.; Starr, Daryl D., Transmit fast-path processing on TCP/IP offload network interface device.
Ramaswamy, Kumar; Lin, Cher-Wen; Rettberg, Randall David; Rahman, Mizanur Mohammed, User-level dedicated interface for IP applications in a data packet switching and load balancing system.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.