Method of modifying packets to a generic format for enabling programmable modifications and an apparatus thereof

US9961167B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9961167-B2
Application numberUS-201414309603-A
CountryUS
Kind codeB2
Filing dateJun 19, 2014
Priority dateJun 19, 2014
Publication dateMay 1, 2018
Grant dateMay 1, 2018

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.

Embodiments of the apparatus for modifying packet headers relate to a rewrite engine that represents each protocol header of packets in a generic format specific to that protocol to enable programmable modifications of packets, resulting in hardware and software flexibility in modifying packet headers. Software programs generic formats in a hardware table for various protocols. The rewrite engine is able to detect missing fields from a protocol header and is able to expand the protocol header to a maximum size such that the protocol header contains all possible fields of that protocol. Each of the fields has the same offset irrespective of which variation of the protocol the protocol header corresponds to. In a bit vector, all newly added fields are marked invalid (represented by 0), and all existing fields are marked valid (represented by 1). Software modification commands allow data to be replaced, removed and inserted.

First claim

Opening claim text (preview).

We claim: 1. A method for protocol layer expansion using a rewrite engine of a network switch, the method comprising: receiving a protocol layer of a header of an incoming packet with the network switch, the protocol layer formatted according to a header layer protocol having one or more supported fields; detecting any of the one or more supported fields that are missing from the protocol layer with the network switch; and based on the any of the one or more supported fields that are detected as being missing, expanding the protocol layer to a generic format of the header layer protocol with the network switch such that the expanded protocol layer of the header includes the any of the one or more supported fields that are missing filled with generic data, wherein the generic data is independent of the incoming packet. 2. The method of claim 1 , wherein the generic format includes all fields supported by the header layer protocol, wherein each of the fields has the same offset irrespective of which variation of the header layer protocol the protocol layer corresponds to. 3. The method of claim 1 , wherein expanding the protocol layer comprises: maintaining a bit vector for the expanded protocol layer, wherein the bit vector includes a bit per subsection for each of a plurality of subsections of the expanded protocol layer; marking a bit as available for each subsection of each valid field, wherein each valid field is a field existing in the protocol layer of the incoming packet; and marking a bit as unavailable for each subsection of each invalid field, wherein each invalid field is a field that did not exist in the protocol layer of the incoming packet. 4. The method of claim 1 , wherein detecting missing fields and, based on the detection, expanding the protocol layer are performed for each protocol layer of the incoming packet. 5. A method for a rewrite engine, the method comprising: converting each of one or more protocol layers of a header of a packet into a generic format with the rewrite engine, wherein each of the one or more protocol layers is formatted according to one of a plurality of header layer protocols, and further wherein for each one of the one or more protocol layers, the generic format of the one of the protocol layers includes all fields supported by the header layer protocol according to which the one of the protocol layers is formatted; maintaining a bit vector for each converted protocol layer with the rewrite engine, wherein the bit vector includes a bit per subsection for each of a plurality of subsections of the converted protocol layer; marking each bit of the bit vector based on validity of each subsection of every field of the converted protocol layer with the rewrite engine; modifying the converted protocol layer with the rewrite engine; and updating the bit vector based on the modification of the converted protocol layer with the rewrite engine. 6. The method of claim 5 , wherein expanding each protocol layer includes referencing a set of software-defined mappings of generic formats of protocols. 7. The method of claim 5 , wherein updating the bit vector includes marking each bit of the updated bit vector based on validity of each subsection of every field of the modified protocol layer. 8. The method of claim 5 , wherein the generic format allows use of commands which are agnostic to specific fields within the protocol layer. 9. A method for a network switch, the method comprising: receiving a packet having a header including a protocol layer at an incoming port of the network switch, wherein the protocol layer is formatted according to a protocol, wherein the protocol supports one or more supported fields; generalizing the protocol layer of the header of the packet according to a generic format corresponding to the protocol by adding one or more fields of the supported fields that are missing from the protocol layer to the protocol layer thereby forming a generalized protocol layer; modifying the generalized protocol layer by applying at least one command to the generalized protocol layer; removing all subsections of the modified protocol layer that were added to form the one or more of the supported fields that were missing to form a new header; and sending out the packet with the new header via an outgoing port of the network switch. 10. The method of claim 9 , wherein the network switch includes a rewrite engine configured to generalize the protocol layer. 11. The method of claim 10 , wherein generalizing a protocol layer includes: the rewrite engine detecting the one or more of the supported fields that were missing from the protocol layer of the packet; and based on the detection, the rewrite engine expanding the protocol layer to the generic format. 12. The method of claim 9 , wherein modifying the protocol layer includes, based on egress portType of the outgoing port, indexing to a command table to determine the at least one command. 13. The method of claim 9 , further comprising, prior to receiving an incoming packet: allowing for software-defined mappings of generic formats of the protocol and one or more additional protocols; and storing the software-defined mappings in a memory of the network switch. 14. A method for a network switch, the method comprising: configuring the network switch to include software-defined mappings of generic formats of protocols; receiving a packet at an incoming port of the network switch, the packet having a header including a protocol layer that is formatted according to one of the protocols; generalizing the protocol layer of the packet based on one of the software-defined mappings by adding one or more fields to the protocol layer thereby forming a generalized protocol layer, wherein the one or more fields that are added to the protocol layer are a subset of one or more fields that are supported by the one of the protocols and that were missing from the packet as received; and maintaining a bit vector for the generalized protocol layer, wherein the bit vector includes a bit per subsection for each of a plurality of subsections of the generalized protocol layer. 15. The method of claim 14 , wherein the software-defined mappings are stored in a memory of the network switch. 16. A network switch comprising: an input port and an output port for receiving and sending packets, wherein each of the packets includes a header having one or more protocol layers and each of the protocol layers is formatted according to one of a plurality of protocols; a memory to store a set of software-defined mappings of generic formats of the protocols; and a rewrite engine that performs a header generalization process on the packets to generalize each of the protocol layers of each of the packets based on the protocol according to which the protocol layer is formatted, wherein the header generalization process comprises expanding each of the protocol layers of each of the packets to a generic size including all fields supported by the protocol according to which the protocol layer is formatted. 17. The network switch of claim 16 , wherein the header generalization process is used on different variations of a protocol of the protocols. 18. The network switch of claim 16 , wherein the header generalization process is used on different protocols of the protocols. 19. The network switch of claim 16 , wherein after each of the packets is processed by the rewrite engine, the packet includes canonicalized protocol layers. 20. The network switch

Assignees

Inventors

Classifications

  • Adaptation or special uses of UDP protocol · CPC title

  • Parsing or analysis of headers · CPC title

  • Services for handling of emergency or hazardous situations, e.g. earthquake and tsunami warning systems [ETWS] · CPC title

  • H04L49/309Primary

    Header conversion, routing tables or routing tags · CPC title

  • Header conversion, routing tables or routing tags · 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 US9961167B2 cover?
Embodiments of the apparatus for modifying packet headers relate to a rewrite engine that represents each protocol header of packets in a generic format specific to that protocol to enable programmable modifications of packets, resulting in hardware and software flexibility in modifying packet headers. Software programs generic formats in a hardware table for various protocols. The rewrite engi…
Who is the assignee on this patent?
Cavium Inc
What technology area does this patent fall under?
Primary CPC classification H04L49/309. Mapped technology areas include Electricity.
When was this patent published?
Publication date Tue May 01 2018 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 5 related publications on this page (citations in our corpus or others sharing the same primary CPC).