Virtual memory protocol segmentation offloading
AssigneeFortinet, Inc.
InventorsXu Zhou, David Chen, Lin Huang, Guansong Zhang
Life of this patent
Estimating the term…
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.
Claims18
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.
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.
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.
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.
Dependencies are inferred from the claim text.