Method to integrate co-processors with a protocol processing pipeline
Summary by NHIP
Co-processor Integration Method
The method operates an interface device that offloads multi-layer protocol processing from a local device while generating internal configuration messages. These messages use a distinct local protocol to indicate whether specific data should be directed to at least one coprocessor within the interface device.
Claim Score by NHIP
Abstract
A network adaptor (or NIC) is equipped with multi-level protocol processing capability and is implemented with a protocol processing pipeline that has multiple tap points to enable the integration of co-processors to operate with the NIC. The capability leverages the protocol processing pipeline and all the existing NIC software while at the same time enabling the integration of value added co-processors to customize and enhance the NIC capabilities.

Term
12.7 yearsleft in the term
Expires 1 June 2039, including 1,412 days of term adjustment.
- Priority and filed
- Granted
- Today
- Expires
18 claims: 2 independent, 16 dependent
- 1A method of operating an interface device configured for communication with a local device via a local bus of the local device, wherein the interface device is further configured to offload from the local device protocol processing of messages communicated among the local device and peer devices via a network according to a first multi-layer communication protocol, to handle protocol processing among the local device and the peer devices according to the first multi-layer communication protocol, the method comprising:by the interface device, offloading the protocol processing from the local device by performing, on behalf of the local device, operations according to the first communication protocol;within the interface device, generating configuration messages regarding intra-device communication among a plurality of portions of the interface device, the various portions of the interface device collectively performing operations to handle the protocol processing on behalf of the local device according to the first multi-layer communication protocol;and wherein the configuration messages are communicated among the plurality of portions of the interface device according to a local protocol that is different from the first multi-layer communication protocol;and the configuration messages include at least an indication, for each of at least some of the configuration messages, of whether a message associated with that configuration message is to be directed to at least one coprocessor in the interface device;processing the indications and, based thereon, selectively providing messages to the at least one coprocessor in the interface device.
- 10Broadest claimClaim Score 46, average(NHIP)An interface device configured for communication with a local device via a local bus of the local device, wherein the interface device is further configured to offload from the local device protocol processing of messages communicated among the local device and peer devices via a network according to a firstmulti-layer communication protocol, to handle protocol processing among the local device and the peer devices according to the first multi-layer communication protocol, the interface device configured to:offload the protocol processing from the local device by performing, on behalf of the local device, operations according to the first communication protocol;within the interface device, generate configuration messages regarding intra-device communication among a plurality of portions of the interface device, the various portions of the interface device collectively performing operations to handle the protocol processing on behalf of the local device according to the first multi-layer communication protocol;and wherein the configuration messages are communicated among the plurality of portions of the interface device according to a local protocol that is different from the first multi-layer communication protocol;and the configuration messages include at least an indication, for each of at least some of the configuration messages, of whether a message associated with that configuration message is to be directed to at least one coprocessor in the interface device;process the indications and, based thereon, selectively provide messages to the at least one coprocessor in the interface device.
Independent claims2
33 paragraphs in 5 sections, as filed
TECHNICAL FIELD
0001The present invention relates to the integration of co-processors and a protocol processing pipeline that may operate at Layer 1 to Layer 7 of the OSI reference model.
BACKGROUND
0002A network adaptor (e.g., a Network Interface Controller (NIC)) may be, for example, network interface circuitry, such as on a PCI card connected to a host computer or other local device, an ASIC or an FPGA, via a host bus (such as a PCI bus or ARM ACE bus) or an IP block within an SoC (System On a Chip) that is connected to the system bus via a host bus. The network adaptor is typically used to couple the host CPU to a packet network through at least one interface, called a port. NIC circuitry has been an area of rapid development as advanced packet processing functionality and protocol offload have become requirements for so called “smart NICs”. In a previous U.S. Pat. No. 7,945,705 we have described how a co-processor is inserted into a protocol offload NIC processing pipeline using a dedicated SPI4.2 interconnect bus. We refer to this type of co-processor insertion as a data-path TAP point. Advantages of using such TAP points include being able to leverage the software that is available with the NIC while increasing flexibility and including value-added features.
0003Commercially, a NIC provider typically also provides a complete suite of software that has been included into the software release on different operating systems such as Linux, FreeBSD, or Microsoft Windows. Value added and extensibility features such as virtualization, deep packet inspection, access control and intrusion detection and prevention (ACL/IDS/IPS), encapsulation and de-capsulation, management interfaces, de-duplication, compression/de-compression, encryption/decryption can be inserted into the NIC processing pipeline while preserving the software investment and can be inserted without affecting the released software.
0004TAP points also allow separating the control path from the data path, and operating on one or the other independently, e.g. processing the control plane in the co-processor while transferring payload through the system bus.
SUMMARY
0005A network adaptor (or NIC) is equipped with multi-level protocol processing capability and is implemented with a protocol processing pipeline that has multiple tap points to enable the integration of co-processors to operate with the NIC. The capability leverages the protocol processing pipeline and all the existing NIC software while at the same time enabling the integration of value added co-processors to customize and enhance the NIC capabilities.
BRIEF DESCRIPTION OF FIGURES
0006<figref idref="DRAWINGS">FIG. 1</figref> is an example SoC with the protocol offload NIC IP with TAP points.
0007<figref idref="DRAWINGS">FIG. 2</figref> illustrates two examples of connecting the SoC NIC IP to the SoC system bus.
0008<figref idref="DRAWINGS">FIGS. 3 and 3-1</figref> are a block diagram illustrating the egress pipeline.
0009<figref idref="DRAWINGS">FIGS. 4 and 4-1</figref> are block diagrams illustrating the ingress pipeline.
0010<figref idref="DRAWINGS">FIG. 5</figref> is a block diagram illustrating TAP points at each pipeline stage.
0011<figref idref="DRAWINGS">FIG. 6</figref> illustrates an example switch block for exit/entry into the protocol processing pipeline.
0012<figref idref="DRAWINGS">FIG. 7</figref> illustrates an example switch block configuration.
DETAILED DESCRIPTION
0013With the advent of SoC IP configurations of a protocol offload NIC there is an opportunity to generalize the TAP points as described in U.S. Pat. No. 7,945,705 and to enable different TAP points at different layers of the network protocol stack, e.g. optionally add L5-L7 processing in addition to the above application enabled by U.S. Pat. No. 7,945,705.
0014In the following detailed description of the preferred embodiments, reference is made to the accompanying drawings which form a part hereof, and in which is shown by way of illustration specific embodiments in which the invention may be practiced. It is to be understood that other embodiments may be utilized and structural changes may be made without departing from the scope of the present invention.
0015In U.S. Pat. No. 7,945,705, it is described how protocol encapsulation (therein, denoted as CPL for “Chelsio Protocol Language”) is used to direct messages to the co-processor via the SPI4.2 bus and how the CPL encapsulation is used to steer the messages injected from the co-processor. In accordance with the present invention, the mechanism is generalized so that data and control messages can exit and enter the protocol processing pipeline at various generalized TAP points. The TAP points can be at any of the layers L2-L7 of the ISO reference protocol stack, and the data-flow allowed includes, for example, ingress-to-ingress loopback, ingress-to-egress pass-through, egress-to-egress loopback, and egress-to-ingress pass-through. Unicast of the CPL messages, multi-cast, and broadcast may be supported. This means that a CPL message arriving at a TAP point may be switched to one, to many, or to all possible destinations of the particular TAP point.
0016The CPL messages include control plane messages and data plane messages, where the control plane messages configure the hardware, indicate progress, and indicate completions of tasks. The CPL data plane messages are used to carry payload. A TAP point can be configured such that all CPL data plane messages that arrive at the TAP point are switched to the co-processor before being injected by the co-processor back into the processing pipeline, while all the control plane messages are switched to the next stage in the processing pipeline, thereby bypassing the co-processor. This separation has the advantage of simplifying the co-processor design and implementation, as the co-processor may only need to know how to process the subset of CPL messages that carry payload and the co-processor only needs to handle the traffic load generated by payload carrying messages. In a similar manner a TAP point can be configured such that all the control plane messages are switched to the co-processor while all the data plane messages are switched to the next stage in the processing pipeline and do not go through the co-processor. This has the advantage of being able to move the control processing from the host computer to a co-processor, thereby potentially simplifying the host computer or being able to replace the host computer with a different type of devices, for example an ASIC, an FPGA, or other type of programmable logic device that is well suited to data plane processing while it might not be as well suited for control plane processing. The co-processor in this case might employ a conventional host processor.
0017Refer now to <figref idref="DRAWINGS">FIG. 1</figref> that shows an example SoC with the NIC IP referred to as the CIM+Transport Processor <b>100</b> with the TAP points connecting to value added features referred to as custom features <b>110</b>. The example SoC includes two quad core Cortex A15 ARM processors <b>130</b> and <b>131</b> connected together over the ARM CoreLink™ CCN network <b>140</b> and the processors are also connected via the CoreLink™ to DRAM <b>181</b> and to SATA/SAS controllers <b>150</b><b>170</b>. The DRAMs <b>181</b> are connected to the CoreLink™ via DMC-<b>520</b> controllers <b>180</b>. The SATA/SAS controllers <b>151</b> and <b>171</b> are typically connected to the CoreLink™ via an ACE Lite controller <b>150</b> and <b>170</b>. Finally, the NIC is connected to CoreLink™ either via a PCIe endpoint/root, or via an ACE or ACE Lite controller <b>180</b>. The NIC has custom features integrated via TAP Points <b>111</b>, and finally the NIC is connected via Ethernet MAC to the interface of the SoC where it is connected to Ethernet <b>120</b>.
0018Refer now to <figref idref="DRAWINGS">FIG. 2</figref> that shows two options for coupling the NIC IP to the CoreLink™ system network. The first example is via a PCI Endpoint <b>201</b> and PCI root <b>200</b> and the second example is via an ACE bus or ACE Lite bus interface module <b>202</b>. The Chelsio Transport Processor communicates with the system network using DMA, PIO, and memory access MEM <b>210</b>. The Control uP <b>230</b> implements the control plane processing required by the IP and the Edge Switch <b>240</b> is a switch that is integrated with the IP. The P<b>0</b><b>250</b> and P<b>1</b><b>260</b> blocks are two Ethernet MAC interfaces. Finally the TAP Points <b>270</b> are connected to the IP at different stages of the processing pipeline to the Edge Switch and between the Edge Switch and MAC.
0019Refer now to <figref idref="DRAWINGS">FIGS. 3 and 3-1</figref> that show the egress processing pipeline with TAP points inserted at different layers of the protocol stack. The TAP points are individually optional and one or more can be included depending on the desired custom features in the SoC. When a particular co-processor is not required, it is not included in the pipeline, and when a particular TAP point is not required it is replaced with a point to point connection. For example when the L5-L7 TAP point <b>105</b> is not required the CPL message entry point <b>104</b><i>a </i>is directly connected to the ulp <b>106</b>. When CPL messages (i.e., a payload encapsulated by a CPL header) arrive from the SoC system via the PCIe bus or ACE interface module <b>104</b><i>a</i>, the CPL messages are optionally switched to the L5-L7 co-processor <b>130</b> before proceeding into the processing pipeline <b>102</b>. For offloaded TCP connections (i.e., the NIC is handling TCP protocol processing rather than a TCP protocol stack that is part of the host CPU operating system), the CPL messages carry TCP payload and no L2, L3 or L4 headers, since the L2, L3 and L4 headers are formed on the NIC as part of the offloaded protocol processing. This is therefore an opportune point in the pipeline to operate on the application payload, e.g. perform ACL/IDS/IPS, de-duplications, compression/de-compression, encryption/decryption, etc.
0020The packet next proceeds into PDU encapsulation block ulp <b>106</b>—e.g., TLS and/or iSCSI and/or iWARP and the L4+ TAP point <b>132</b> is an opportune point to operate on the Protocol Data Unit (PDU). For example, the PDU header can be audited for ACL/IPS/IPS purposes, the PDU can be encrypted, and the header can be transformed, for example, translating from one format to a different format.
0021The packet is processed and an Ethernet encapsulated TCP packet is formed <b>120</b> and the L4 TAP <b>111</b> is an opportune time to process layer L4 packet in co-processor <b>132</b>. An example of Layer 4 processing that may be performed by co-processor <b>132</b> is TLS encryption where the L4 payload is encrypted.
0022The packet then proceeds to the L3 TAP <b>113</b> and examples of Layer 3 processing in co-processor <b>134</b> include NAT and IPsec encryption.
0023The packet then proceeds through the L2 switch and to the L2 TAP <b>116</b>. Examples of Layer 2 processing in co-processor <b>133</b> include encapsulations such as VXLAN, GENEVE, and NVGRE.
0024Refer now to <figref idref="DRAWINGS">FIGS. 4 and 4-1</figref> that show the steps performed by a NIC processing pipeline for an ingress packet with TAP points inserted at different layers of the protocol stack. When Ethernet packets arrive <b>140</b>, they optionally go to the L2 TAP point <b>150</b> before going to the L2 switch <b>160</b>. The co-processor connected to this TAP point <b>150</b> can for example remove VXLAN, GENEVE, NVGRE encapsulation.
0025The packets then proceed to the Ethernet TCP/UDP/IP packet parser <b>170</b> before optionally proceeding to the L3 TAP <b>180</b>. The co-processor <b>190</b> connected to this TAP point <b>180</b> can, for example, perform IPsec decryption and/or NAT processing.
0026The packets then are injected into the processing pipeline <b>104</b><i>c </i>and proceed to the L4 TAP <b>115</b>. The co-processor <b>121</b> connected to this TAP point <b>115</b> can for example perform TLS decryption.
0027When L4 carries a PDU in the payload, the PDU's are recovered next in the processing pipeline and the L4+ TAP point <b>116</b> is where it is opportune to inject PDU header auditing co-processing, performed by co-processor <b>122</b> for ACL/IPS/IPS purposes, PDU decryption and the header transformation for example translating from one format to a different format.
0028The packets then are injected into the L5-L7 TAP <b>117</b> and are then injected into system memory via the PCIe bus or ACE interface module. The L5-L7 TAP co-processor <b>123</b> is for co-processors that operate on application payload, e.g. perform ACL/IDS/IPS, de-duplications, compression/de-compression, encryption/decryption.
0029Refer now to <figref idref="DRAWINGS">FIG. 5</figref> that summarizes the relationship of the pipeline steps and the TAP points. The co-processors CP(0), CP(1), . . . , CP(9) are optional as are the TAP points that are connected to them. A particular co-processor is instantiated in an SoC only when it is required, and the TAP point is only instantiated when it is required, and when neither is required the TAP point is replaced with a point-to-point connection between processing stages. The egress TAP points and co-coprocessors from <figref idref="DRAWINGS">FIG. 3</figref> are shown again as CP(0)-CP(4) <b>500</b>, <b>501</b>, <b>502</b>, <b>503</b> and <b>504</b>. The ingress TAP points and co-processors from <figref idref="DRAWINGS">FIG. 4</figref> are shown again as CP(5)-CP(9) <b>510</b>, <b>511</b>, <b>512</b>, <b>513</b>, and <b>514</b>.
0030Refer now to <figref idref="DRAWINGS">FIG. 6</figref> that shows the port number convention used to switch messages into and out of TAP points. A TAP point has 4 ports numbered 1-4, and CPL packets can arrive on each of the ports and packets can leave on each of the ports; the ports are bi-directional. The ports are numbered in clockwise fashion starting at the top port. A CPL message going in the egress direction and going to the next stage in the pipeline will arrive on port E=4 and proceed out of port 2 to the next stage in the egress pipeline. A CPL message that goes to CP(0) will instead be switched to port 1 and enter CP(0). A CPL message coming from CP(0) and arriving on port 1 can be switched to port 2 or 3. A CPL message coming from CP(0) or E=4 and looping around will be switched to port 3 in TAP point marked A in the Figure and will be switched to port 4 in the TAP point marked B in the Figure.
0031Refer now to <figref idref="DRAWINGS">FIGS. 7A to 7C</figref> that show an example switch box configuration for the TAP point switch box shown in <figref idref="DRAWINGS">FIG. 6</figref>. The message type is encoded as 8-bits in this example and the switching action is determined by looking up, in a per-port table, the port destination for the arriving message type. The port destination is a bit vector and a copy of a message is sent to each of the ports with a value 1 in the bit vector. Three switching table fragments are shown in the Figure. In <figref idref="DRAWINGS">FIG. 7A</figref>, the CPL_TX_DATA message with type 0x0C is switched to port 2, because bit 2 is set in the bit-vector, when it arrives on port 4 in TAP A. The CPL_TX2RX_DATA message with type 0x31 is switched to port 1 in TAP A which is CP(0). We assume that when this message type comes back from CP(0) on port 1 it is still encoded as CPL_TX2RX_DATA and based on the <figref idref="DRAWINGS">FIG. 7B</figref>, it is therefore switched to port 3 in TAP A., Finally when it arrives on port 1 in TAP B, based on <figref idref="DRAWINGS">FIG. 7C</figref>, it is switched to port 4, and thereby it completing the egress-to-egress loopback action with CP(0) getting an opportunity to process the payload while the CPL message is looped back.
0032Each of tap points in <figref idref="DRAWINGS">FIG. 5</figref> that are used can be configured in the manner shown in <figref idref="DRAWINGS">FIGS. 7A to 7C</figref> and can be used as a flexible framework to extend the operation of the basic protocol offload egress and ingress pipelines while retaining software NIC compatibility. The configuration can, for example, proceed in similar fashion to the one described in the U.S. Pat. No. 7,945,705 that uses PIO accesses or it can use CPL messages that have the effect of writing per-port switching tables in in the different TAP points being used.
0033We have thus described a generalization of TAP points for an interface device that offloads protocol processing, including advantageously enabling of different TAP points at different layers of the network protocol stack.
Contents5
12 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6 Sheet 7 Sheet 8 Sheet 9 Sheet 10 Sheet 11 Sheet 12
Every citation, both ways
| Document | Relation | Office | Cited during |
|---|---|---|---|
| US2025173301A1 | Cited by | United States of America | Search report |
| US12282809B2 | Cited by | United States of America | Search report |
| US2023099093A1 | Cited by | United States of America | Search report |
| US2004042487A1 | Cites | United States of America | Applicant |
| US2004165592A1 | Cites | United States of America | Applicant |
| US2005147126A1 | Cites | United States of America | Applicant |
| US2005190787A1 | Cites | United States of America | Applicant |
| US2005216597A1 | Cites | United States of America | Applicant |
| US2005259678A1 | Cites | United States of America | Applicant |
| US2006174012A1 | Cites | United States of America | Search report |
| US2008263323A1 | Cites | United States of America | Search report |
| US2010158026A1 | Cites | United States of America | Search report |
| US6078733A | Cites | United States of America | Search report |
| US6708223B1 | Cites | United States of America | Applicant |
| US7050039B1 | Cites | United States of America | Search report |
| US7133914B1 | Cites | United States of America | Applicant |
| US7945705B1 | Cites | United States of America | Applicant |
| US20040042487A1 | Cites | United States of America | Applicant |
| US20040165592A1 | Cites | United States of America | Applicant |
| US20050147126A1 | Cites | United States of America | Applicant |
| US20050190787A1 | Cites | United States of America | Applicant |
| US20050216597A1 | Cites | United States of America | Applicant |
| US20050259678A1 | Cites | United States of America | Applicant |
| US20060174012A1 | Cites | United States of America | Search report |
| US20080263323A1 | Cites | United States of America | Search report |
| US20100158026A1 | Cites | United States of America | Search report |
1 member in 1 office; this record represents the family
Members1
| Document | Office | Kind | |
|---|---|---|---|
| US11025752B1This record | United States of America | B1 |
95 transactions on the USPTO file
Allowed after 1 non-final rejection, 1 final rejection and 1 appeal.
- Non-final rejections
- 1
- Final rejections
- 1
- RCEs
- 0
- Appeals
- 1
Over time
Point at a mark for the transactionTransactions
| Event | Code | |
|---|---|---|
| Entity Status Set To Undiscounted (Initial Default Setting or Status Change)BIG. | BIG. | |
| Petition for delayed maintenance fee payment, 2 years or lessM2558 | M2558 | |
| Payment of Maintenance Fee, 4th Yr, Small EntityM2551 | M2551 | |
| Mail-Petition Decision - Accept Late Payment of Maintenance Fees - GrantedMPMFG | MPMFG | |
| Petition Decision - Accept Late Payment of Maintenance Fees - GrantedPMFG | PMFG | |
| Petition to Accept Late Payment of Maintenance Fee Payment FiledPMFP | PMFP | |
| Expire PatentEXP. | EXP. | |
| Maintenance Fee Reminder MailedREM. | REM. | |
| Recordation of Patent Grant MailedPGM/ | PGM/ | |
| Application ready for PDX access by participating foreign officesCCRDY | CCRDY | |
| Patent Issue Date Used in PTA CalculationAllowedPTAC | PTAC | |
| Email NotificationEML_NTR | EML_NTR | |
| Issue Notification MailedAllowedWPIR | WPIR | |
| Dispatch to FDCD1935 | D1935 | |
| Application Is Considered Ready for IssuePILS | PILS | |
| Issue Fee Payment VerifiedN084 | N084 | |
| Issue Fee Payment ReceivedIFEE | IFEE | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Notice of AllowanceAllowedMN/=. | MN/=. | |
| Notice of Allowance Data Verification CompletedAllowedN/=. | N/=. | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail PTAB Decision on Appeal - ReversedMAPDR | MAPDR | |
| PTAB Decision - Examiner ReversedAPDR | APDR | |
| Email NotificationEML_NTR | EML_NTR | |
| Change in Power of Attorney (May Include Associate POA)PA.. | PA.. | |
| Email NotificationEML_NTR | EML_NTR | |
| Docketing Notice Mailed to AppellantAP_DK_M | AP_DK_M | |
| Assignment of Appeal NumberAPAS | APAS | |
| Appeal Awaiting PTAB DocketingAPWD | APWD | |
| Appeal ready for PAC reviewARBP | ARBP | |
| Fee Payment Recorded (fees filed separately e.g. not with original papers, etc).FEE. | FEE. | |
| Reply Brief FiledAPRB | APRB | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Examiner's AnswerMAPEA | MAPEA | |
| Exam. Ans. Review CompletePACC | PACC | |
| Examiner's Answer to Appeal BriefAPEA | APEA | |
| Appeal Brief Review CompleteAPBR | APBR | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| track 1 OFFT1OFF | T1OFF | |
| Appeal Brief FiledAP.B | AP.B | |
| Email NotificationEML_NTR | EML_NTR | |
| Mail Appeals conf. Proceed to PTABMAPCP | MAPCP | |
| Pre-Appeal Conference Decision - Proceed to PTABAPCP | APCP | |
| Request for Pre-Appeal Conference FiledAP.C | AP.C | |
| Notice of Appeal FiledN/AP | N/AP | |
| Request for Extension of Time - GrantedXT/G | XT/G | |
| Email NotificationEML_NTR | EML_NTR | |
| Mail Advisory Action (PTOL - 303)MCTAV | MCTAV | |
| Advisory Action (PTOL-303)CTAV | CTAV | |
| Mail Interview Summary - Applicant Initiated - TelephonicMEXAT | MEXAT | |
| Interview Summary - Applicant Initiated - TelephonicEXAT | EXAT | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Response after Final ActionA.NE | A.NE | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Final Rejection (PTOL - 326)Final rejectionMCTFR | MCTFR | |
| Final RejectionFinal rejectionCTFR | CTFR | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Response after Non-Final ActionA... | A... | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Non-Final RejectionNon-final rejectionMCTNF | MCTNF | |
| Non-Final RejectionNon-final rejectionCTNF | CTNF | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Close TICLTI | CLTI | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Transfer Inquiry to GAUTI1050 | TI1050 | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Email NotificationEML_NTR | EML_NTR | |
| Change in Power of Attorney (May Include Associate POA)PA.. | PA.. | |
| Application Dispatched from OIPEOIPE | OIPE | |
| Email NotificationEML_NTR | EML_NTR | |
| Email NotificationEML_NTR | EML_NTR | |
| Change in Power of Attorney (May Include Associate POA)PA.. | PA.. | |
| Application Is Now CompleteCOMP | COMP | |
| Filing ReceiptFLRCPT.O | FLRCPT.O | |
| Sent to Classification ContractorPGPC | PGPC | |
| FITF set to YES - revise initial settingFTFS | FTFS | |
| Applicant Has Filed a Verified Statement of Small Entity Status in Compliance with 37 CFR 1.27SMAL | SMAL | |
| Cleared by OIPE CSRL194 | L194 | |
| Reference capture on IDSRCAP | RCAP | |
| Information Disclosure Statement (IDS) FiledM844 | M844 | |
| Patent Term Adjustment - Ready for ExaminationPTA.RFE | PTA.RFE | |
| PGPubs nonPub RequestNPRQ | NPRQ | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| IFW Scan & PACR Auto Security ReviewSCAN | SCAN | |
| Entity Status Set To Undiscounted (Initial Default Setting or Status Change)BIG. | BIG. | |
| Initial Exam Team nnIEXX | IEXX |
11 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| Fee payment procedureSURCHARGE, PETITION TO ACCEPT PYMT AFTER EXP, UNINTENTIONAL. (ORIGINAL EVENT CODE: M2558); ENTITY STATUS OF PATENT OWNER: SMALL ENTITYFEPP | FEPP | |
| Fee payment procedurePETITION RELATED TO MAINTENANCE FEES GRANTED (ORIGINAL EVENT CODE: PMFG); ENTITY STATUS OF PATENT OWNER: SMALL ENTITYFEPP | FEPP | |
| Fee payment procedurePETITION RELATED TO MAINTENANCE FEES FILED (ORIGINAL EVENT CODE: PMFP); ENTITY STATUS OF PATENT OWNER: SMALL ENTITYFEPP | FEPP | |
| Maintenance fee paymentMAFP | MAFP | |
| Information on status: patent grantGrantedPATENTED CASESTCF | STCF | |
| Patent reinstated due to the acceptance of a late maintenance feePRDP | PRDP | |
| Lapsed due to failure to pay maintenance feeLapsedFP | FP | |
| Lapse for failure to pay maintenance feesLapsedPATENT EXPIRED FOR FAILURE TO PAY MAINTENANCE FEES (ORIGINAL EVENT CODE: EXP.); ENTITY STATUS OF PATENT OWNER: SMALL ENTITYLAPS | LAPS | |
| Information on status: patent discontinuationPATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362STCH | STCH | |
| Fee payment procedureMAINTENANCE FEE REMINDER MAILED (ORIGINAL EVENT CODE: REM.); ENTITY STATUS OF PATENT OWNER: SMALL ENTITYFEPP | FEPP | |
| Information on status: patent grantGrantedPATENTED CASESTCF | STCF |
Numbers
- Publication
- 11025752
- Application
- 14804007
Titles
- English
- Method to integrate co-processors with a protocol processing pipeline
Patent term adjustment
- A delay
- +820 daysthe office missed an examination deadline
- B delay
- +502 dayspendency past three years
- C delay
- +545 daysinterference, secrecy order or appeal
- Overlap
- −421 daysdelays counted once
- Applicant delay
- −34 days
- Net adjustment
- 1,412 days
Classification
- CPC, 2
- H04L69/08
- H04L69/321
- IPC, 3
- H04L29 06
- H04L29 08
- H04L69 08