Virtual memory protocol segmentation offloading

US9319490B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9319490-B2
Application numberUS-201414568499-A
CountryUS
Kind codeB2
Filing dateDec 12, 2014
Priority dateJun 9, 2008
Publication dateApr 19, 2016
Grant dateApr 19, 2016

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

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.

First claim

Opening claim text (preview).

What is claimed is: 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. 2. The method of claim 1 , wherein the buffer descriptor further contains information indicative of a virtual memory base address of a page directory and wherein said performing direct virtual memory addressing of a user memory space further comprises using a directory entry of the page directory identified by the starting address to translate the starting address to a physical address within the user memory space associated with the payload buffer. 3. The method of claim 1 , wherein the payload buffer is distributed among a plurality of payload buffers stored in noncontiguous physical locations of the system memory. 4. The method of claim 3 , wherein said performing direct virtual memory addressing of the user memory space further includes a scatter-gather process in which the payload data is retrieved from the plurality of payload buffers. 5. The method of claim 1 , wherein the buffer descriptor further contains information indicative of whether the starting address is a virtual address or a physical address within the user address space. 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. 7. The non-transitory program storage device of claim 6 , wherein the buffer descriptor further contains information indicative of a virtual memory base address of a page directory and wherein said performing direct virtual memory addressing of a user memory space further comprises using a directory entry of the page directory identified by the starting address to translate the starting address to a physical address within the user memory space associated with the payload buffer. 8. The non-transitory program storage device of claim 6 , wherein the payload buffer is distributed among a plurality of payload buffers stored in noncontiguous physical locations of the system memory. 9. The non-transitory program storage device of claim 8 , wherein said performing direct virtual memory addressing of the user memory space further includes a scatter-gather process in which the payload data is retrieved from the plurality of payload buffers. 10. The non-transitory program storage device of claim 6 , wherein the buffer descriptor further contains information indicative of whether the starting address is a virtual address or a physical address within the user address space. 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. 12. The method of claim 11 , wherein the plurality of buffer descriptors further contain information indicative of a virtual memory base address of a page directory and wherein said performing direct virtual memory addressing of a user memory space further comprises using directory entries of the page directory identified by the first starting address and the second starting address, respectively, to translate the starting address to a first physical address within the user memory space associated with the first payload buffer and a second physical address within the user memory space associated with the second payload buffer. 13. The method of claim 11 , wherein the first payload buffer and the second payload buffer are stored in noncontiguous physical locations of the system memory. 14. The method of claim 13 , wherein said performing direct virtual memory addressing of the user memory space further includes a scatter-gather process in which the payload data is retrieved from the plurality of payload buffers. 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 a

Assignees

Inventors

Classifications

  • for peripheral access to main memory, e.g. direct memory access [DMA] · CPC title

  • characterised by scheduling criteria · CPC title

  • H04L69/166Primary

    IP fragmentation; TCP segmentation · CPC title

  • Virtual queuing · CPC title

  • Multi-level translation tables · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9319490B2 cover?
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 pro…
Who is the assignee on this patent?
Fortinet Inc
What technology area does this patent fall under?
Primary CPC classification G06F12/1081. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Apr 19 2016 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 1 related publication on this page (citations in our corpus or others sharing the same primary CPC).