Virtual memory protocol segmentation offloading
First Claim
Patent Images
1. A method of performing segmentation offloading, the method comprising:
- fetching, by an interface of a computer system, payload data originated by a user process running on a host processor of the computer system by performing direct virtual memory addressing of a user memory space of a system memory of the computer system on behalf of a network processor of the computer system, wherein said direct virtual memory addressing maps a physical address of the payload data to a virtual address;
segmenting, by the network processor, the payload data across one or more packets, wherein said segmenting comprises creating one or more Transmission Control Protocol (TCP) packets by performing TCP segmentation; and
storing a buffer descriptor in the system memory, the buffer descriptor containing (i) information indicative of a starting address of a payload buffer in the system memory containing at least a portion of the payload data and (ii) information indicative of whether the starting address is virtual or physical.
0 Assignments
0 Petitions
Accused Products
Abstract
Methods and systems for a more efficient transmission of network traffic are provided. According to one embodiment, payload data originated by a user process running on a host processor of the computer system is fetched by an interface of the computer system by performing direct virtual memory addressing of a user memory space of a system memory of the computer system on behalf of a network processor of the computer system. The direct virtual memory addressing maps a physical address of the payload data to a virtual address. The payload data is segmented by the network processor across one or more packets.
24 Citations
18 Claims
-
1. A method of performing segmentation offloading, the method comprising:
-
fetching, by an interface of a computer system, payload data originated by a user process running on a host processor of the computer system by performing direct virtual memory addressing of a user memory space of a system memory of the computer system on behalf of a network processor of the computer system, wherein said direct virtual memory addressing maps a physical address of the payload data to a virtual address; segmenting, by the network processor, the payload data across one or more packets, wherein said segmenting comprises creating one or more Transmission Control Protocol (TCP) packets by performing TCP segmentation; and storing a buffer descriptor in the system memory, the buffer descriptor containing (i) information indicative of a starting address of a payload buffer in the system memory containing at least a portion of the payload data and (ii) information indicative of whether the starting address is virtual or physical. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A non-transitory program storage device readable by one or more processors of a computer system, embodying a program of instructions executable by the one or more processors to perform a method of segmentation offloading, the method comprising:
-
fetching, by an interface of the computer system, payload data originated by a user process running on a host processor of the computer system by performing direct virtual memory addressing of a user memory space of a system memory of the computer system on behalf of a network processor of the computer system, wherein said direct virtual memory addressing maps a physical address of the payload data to a virtual address; segmenting, by the network processor, the payload data across one or more packets, wherein said segmenting comprises creating one or more Transmission Control Protocol (TCP) packets by performing TCP segmentation; and storing a buffer descriptor in system memory, the buffer descriptor containing (i) information indicative of a starting address of a payload buffer in the system memory containing at least a portion of the payload data and (ii) information indicative of whether the starting address is virtual or physical. - View Dependent Claims (7, 8, 9, 10)
-
-
11. A method comprising:
-
fetching, by an interface of a computer system, payload data originated by a user process running on a host processor of the computer system by performing direct virtual memory addressing of a user memory space of a system memory of the computer system on behalf of a network processor of the computer system, wherein said direct virtual memory addressing maps a physical address of the payload data to a virtual address; segmenting, by the network processor, the payload data across one or more packets, wherein said segmenting comprises creating one or more Transmission Control Protocol (TCP) packets by performing TCP segmentation; and storing a plurality of buffer descriptors in the system memory, wherein the plurality of buffer descriptors include; a first buffer descriptor of the plurality of buffer descriptors containing (i) information indicative of a first starting address of a first payload buffer in the system memory containing a first portion of the payload data and (ii) information indicative of whether the first starting address is virtual or physical; and a second buffer descriptor of the plurality of buffer descriptors containing (i) information indicative of a second starting address of a second payload buffer in the system memory containing a second portion of the payload data and (ii) information indicative of whether the second starting address is virtual or physical. - View Dependent Claims (12, 13, 14)
-
-
15. A non-transitory program storage device readable by one or more processors of a computer system, embodying a program of instructions executable by the one or more processors to perform a method of segmentation offloading, the method comprising:
-
fetching, by an interface of the computer system, payload data originated by a user process running on a host processor of the computer system by performing direct virtual memory addressing of a user memory space of a system memory of the computer system on behalf of a network processor of the computer system, wherein said direct virtual memory addressing maps a physical address of the payload data to a virtual address; segmenting, by the network processor, the payload data across one or more packets, wherein said segmenting comprises creating one or more Transmission Control Protocol (TCP) packets by performing TCP segmentation; and storing a plurality of buffer descriptors in the system memory, wherein the plurality of buffer descriptors include; a first buffer descriptor of the plurality of buffer descriptors containing (i) information indicative of a first starting address of a first payload buffer in the system memory containing a first portion of the payload data and (ii) information indicative of whether the first starting address is virtual or physical; and a second buffer descriptor of the plurality of buffer descriptors containing (i) information indicative of a second starting address of a second payload buffer in the system memory containing a second portion of the payload data and (ii) information indicative of whether the second starting address is virtual or physical. - View Dependent Claims (16, 17, 18)
-
Specification