DETAILED ACTION
Notice of Pre-AIA or AIA Status
The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
Election/Restrictions
Claims 16-20 withdrawn from further consideration pursuant to 37 CFR 1.142(b) as being drawn to a nonelected Group II, there being no allowable generic or linking claim. Election was made without traverse in the reply filed on 03/31/2026.
Status of Claims
Claims 1-21 are pending in the current application. Claims 16-20 are withdrawn as being directed to a non-elected invention.
Claim Rejections - 35 USC § 101
35 U.S.C. 101 reads as follows:
Whoever invents or discovers any new and useful process, machine, manufacture, or composition of matter, or any new and useful improvement thereof, may obtain a patent therefor, subject to the conditions and requirements of this title.
Claim 21 is rejected under 35 U.S.C. 101 because the claimed invention is directed to non-statutory subject matter. The claim(s) does/do not fall within at least one of the four categories of patent eligible subject matter because the claimed invention is directed to non-statutory subject matter. Claim 21 recites a computer readable medium. The broadest reasonable interpretation of a claim drawn to a computer readable medium typically covers forms of non-transitory tangible media and transitory propagating signals per se in view of the ordinary and customary meaning of computer readable media, particularly when the specification is silent. See MPEP 211.01. When the broadest reasonable interpretation of a claim covers signal per se, the claim must be rejected under 35 USC 101 as covering non-statutory subject matter. As a result, claim 21 is rejected under 35 U.S.C. 101 for covering non-statutory subject matter.
The rejected claim(s) may be amended to narrow the claim to cover only the statutory embodiment to avoid the rejection under 35 USC 101 by adding the limitation “non-transitory” before “computer readable medium.”
Claim Rejections - 35 USC § 103
In the event the determination of the status of the application as subject to AIA 35 U.S.C. 102 and 103 (or as subject to pre-AIA 35 U.S.C. 102 and 103) is incorrect, any correction of the statutory basis (i.e., changing from AIA to pre-AIA ) for the rejection will not be considered a new ground of rejection if the prior art relied upon, and the rationale supporting the rejection, would be the same under either status.
The following is a quotation of 35 U.S.C. 103 which forms the basis for all obviousness rejections set forth in this Office action:
A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made.
The factual inquiries for establishing a background for determining obviousness under 35 U.S.C. 103 are summarized as follows:
1. Determining the scope and contents of the prior art.
2. Ascertaining the differences between the prior art and the claims at issue.
3. Resolving the level of ordinary skill in the pertinent art.
4. Considering objective evidence present in the application indicating obviousness or nonobviousness.
Claims 1-4, 9-10, 13, and 21 are rejected under 35 U.S.C. 103 as being unpatentable over Zhu et al. (US 2019/0281018 A1), hereinafter referred to as Zhu, in view of Chauhan (US 2011/0153861 A1).
Regarding claim 1, Zhu teaches an apparatus (Zhu – Paragraph [0010], note apparatus), comprising:
a queue assignment circuitry comprising first circuitry to select amongst multiple hash keys and second circuitry to hash content of a packet's header with the hash keys (Zhu – Fig. 3; Paragraph [0037], note the memory 303 may also store hash keys for generating hash values for data packets; Paragraph [0038], note the controller 301 may fetch hash keys stored in the memory 303, using the hash keys and the header in the data packets, the controller 301 may generate a hash value for each of the data packets using a hash function, based on the LSBs of the hash values of the data packets and the information on the indirection table 307, the controller 301 may select a destination queue 309a, 309b,… or 309n and a corresponding processor 207a, 207b,… or 207n to process each of the plurality of data packets).
Zhu does not teach selecting a key amongst multiple hash keys; and hashing content of a packet’s header with a selected one of the hash keys.
In an analogous art, Chauhan teaches selecting a key amongst multiple hash keys (Chauhan – Paragraph [0209], note the hash key may be selected from a predetermined list of hash keys); and
hashing content of a packet’s header with a selected one of the hash keys (Chauhan – Paragraph [0209], note the hash function may use a hash key; Paragraph [0210], note hash function may be used that provides an even distribution of hash result for different hash inputs and different hash types, including TCP/IPv4, TCP/IPv6, IPv4, and IPv6 headers).
Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the invention to incorporate the teachings of Chauhan into Zhu in order to allow flexible selection/generation of hash keys for use in receive-side-scaling (RSS) schemes (Chauhan – Paragraphs [0208]-[0209]).
Regarding claim 2, the combination of Zhu and Chauhan, specifically Zhu teaches wherein the first circuitry and the second circuitry are within a same stage of a packet processing pipeline (Zhu – Fig. 3; Paragraph [0038], note the controller 301 may fetch hash keys stored in the memory 303, using the hash keys and the header in the data packets, the controller 301 may generate a hash value for each of the data packets using a hash function).
Regarding claim 3, the combination of Zhu and Chauhan, specifically Zhu teaches wherein the stage is to assign packets to queues (Zhu – Fig. 3; Paragraph [0038], note based on the LSBs of the hash values of the data packets and the information on the indirection table 307, the controller 301 may select a destination queue 309a, 309b,… or 309n and a corresponding processor 207a, 207b,… or 207n to process each of the plurality of data packets).
Regarding claim 4, the combination of Zhu and Chauhan, specifically Zhu teaches wherein one of the hash keys is to implement receive side scaling so that packets from multiple flows are spread across multiple ones of the queues (Zhu – Fig. 7A; Paragraph [0006], note an NIC in a computing system implementing RSS may map data packets in a same TCP connection to different receive queues depending on the direction of the data packets; Paragraph [0053], note generating a hash key for a data packet, the controller 301 may input symmetry constraints that ensure symmetric RSS of the data packets to the hash key generator 709).
Regarding claim 9, Zhu teaches a system (Zhu – Fig. 1; Paragraph [0021], note a plurality of computing systems 101-115), comprising:
a plurality of processing cores (Zhu – Fig. 1; Paragraph [0021], note each of the computing systems 101-115 may comprise a plurality of processing cores);
memory to implement a plurality of queues, wherein, specific ones of the processing cores are fed with packets from specific ones of the queues (Zhu – Fig. 3; Paragraph [0035], note network interface card (NIC) 203 included in the computing system 101, the NIC 203 can assign a plurality of data packets to the processors 207a-207n, a plurality of destination queues 309a-309n; Paragraph [0037], note each of the destination queues corresponds to a processor, for example, destination queue 309a has a corresponding processor 207a);
a packet processing pipeline comprising first circuitry to select amongst multiple hash keys and second circuitry to hash content of a packet's header with the hash keys, wherein, one of the queues is to be identified for placement of the packet from a hash signature generated by the second circuitry (Zhu – Fig. 3; Paragraph [0037], note the memory 303 may also store hash keys for generating hash values for data packets; Paragraph [0038], note the controller 301 may fetch hash keys stored in the memory 303, using the hash keys and the header in the data packets, the controller 301 may generate a hash value for each of the data packets using a hash function, based on the LSBs of the hash values of the data packets and the information on the indirection table 307, the controller 301 may select a destination queue 309a, 309b,… or 309n and a corresponding processor 207a, 207b,… or 207n to process each of the plurality of data packets).
Zhu does not teach selecting a key amongst multiple hash keys; and hashing content of a packet’s header with a selected one of the hash keys.
In an analogous art, Chauhan teaches selecting a key amongst multiple hash keys (Chauhan – Paragraph [0209], note the hash key may be selected from a predetermined list of hash keys); and
hashing content of a packet’s header with a selected one of the hash keys (Chauhan – Paragraph [0209], note the hash function may use a hash key; Paragraph [0210], note hash function may be used that provides an even distribution of hash result for different hash inputs and different hash types, including TCP/IPv4, TCP/IPv6, IPv4, and IPv6 headers).
Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the invention to incorporate the teachings of Chauhan into Zhu in order to allow flexible selection/generation of hash keys for use in receive-side-scaling (RSS) schemes (Chauhan – Paragraphs [0208]-[0209]).
Regarding claim 10, the claim is interpreted and rejected for the same reason as claim 4 above.
Regarding claim 13, the combination of Zhu and Chauhan, specifically Zhu teaches wherein a first of the hash keys is to implement receive side scaling and a second of the hash keys is to direct packets having different header content to a same queue (Zhu – Fig. 3, Fig. 7A; Paragraph [0006], note an NIC in a computing system implementing RSS may map data packets in a same TCP connection to different receive queues depending on the direction of the data packets; Paragraph [0037], note the indirection table 307 may be preconfigured whose entries identify the processing cores or processors 207a-207n for processing the data packets stored in the load registers 305, the indirection table 307 may be indexed by LSBs of the hash value in preconfiguring of the indirection table 307, the indirection table 307 may direct the controller 301 of the NIC 203 to route each of the plurality of data packets to a destination queue 309a, 309b,… or 309n; Paragraph [0053], note generating a hash key for a data packet, the controller 301 may input symmetry constraints that ensure symmetric RSS of the data packets to the hash key generator 709).
Regarding claim 21, the claim is interpreted and rejected for the same reason as claim 9 above, except the claim is written in a non-transitory computer-readable medium (CRM) format, which is taught by Zhu (Zhu – Fig. 2; Paragraph [0028], note the set of operations may be defined as a computer program code comprising instructions for the operation of the processors 207a-207n and/or computing system 101 to perform specified functions stored in a computer readable storage medium e.g. a memory 205).
Claims 5-6 and 11-12 are rejected under 35 U.S.C. 103 as being unpatentable over Zhu in view of Chauhan as applied to claims 1 and 9 above, and further in view of Cai (US 2020/0092228 A1).
Regarding claim 5, the combination of Zhu and Chauhan does not teach wherein the queue assignment circuitry is integrated with circuitry of a packet processing pipeline that comprises a stage to generate an identifier of one of the hash keys from the packet's classification.
In an analogous art, Cai teaches wherein the queue assignment circuitry is integrated with circuitry of a packet processing pipeline that comprises a stage to generate an identifier of one of the hash keys from the packet's classification (Cai – Paragraph [0004], note classify the packet to a flow and a traffic class based on the packet header information, the egress IO device, and the egress port number, generate an equal cost multi-path forwarding (ECMP) hash key from a 5-Tuple of the packet header information using a hashing algorithm, identify a micro-flow for the ECMP hash key in a fabric ECMP hash of the IOSP of the IO device, generate a switch number of a corresponding Ethernet switch based on the micro-flow).
Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the invention to incorporate the teachings of Cai into the combination of Zhu and Chauhan in order to queue packets to different devices based on packet classification from packet header information, improving scalability through multi-path forwarding (Cai – Paragraphs [0004] and [0035]).
Regarding claim 6, the combination of Zhu and Chauhan does not teach wherein the queue assignment circuitry is integrated with circuitry of a packet processing pipeline that is to identify a type of flow of a packet from the packet's classification, where, which of the multiple keys is selected by the first circuity is based on the packet's type of flow.
In an analogous art, Cai teaches wherein the queue assignment circuitry is integrated with circuitry of a packet processing pipeline that is to identify a type of flow of a packet from the packet's classification, where, which of the multiple keys is selected by the first circuity is based on the packet's type of flow (Cai – Fig. 4B; Paragraph [0060], note IOSP 402-1 may classify IP packet 422-1 to a flow and a traffic class based on the packet header information, the egress IO device, and the egress port number, IOSP 402-1 may generate an ECMP forwarding HASH key from a 5-Tuple of the packet header information using a hashing algorithm).
Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the invention to incorporate the teachings of Cai into the combination of Zhu and Chauhan for the same reason as claim 5 above.
Regarding claim 11, the claim is interpreted and rejected for the same reason as claim 5 above.
Regarding claim 12, the claim is interpreted and rejected for the same reason as claim 6 above.
Claims 7-8 and 14 are rejected under 35 U.S.C. 103 as being unpatentable over Zhu in view of Chauhan as applied to claims 1 and 9 above, and further in view of Medvedkin et al. (US 2019/0334863 A1), hereinafter referred to as Medvedkin.
Regarding claim 7, the combination of Zhu and Chauhan, specifically Zhu teaches wherein a first of the hash keys is to implement receive side scaling and a second of the hash keys is to direct packets having different header values to a same queue (Zhu – Fig. 3, Fig. 7A; Paragraph [0006], note an NIC in a computing system implementing RSS may map data packets in a same TCP connection to different receive queues depending on the direction of the data packets; Paragraph [0037], note the indirection table 307 may be preconfigured whose entries identify the processing cores or processors 207a-207n for processing the data packets stored in the load registers 305, the indirection table 307 may be indexed by LSBs of the hash value in preconfiguring of the indirection table 307, the indirection table 307 may direct the controller 301 of the NIC 203 to route each of the plurality of data packets to a destination queue 309a, 309b,… or 309n; Paragraph [0053], note generating a hash key for a data packet, the controller 301 may input symmetry constraints that ensure symmetric RSS of the data packets to the hash key generator 709).
The combination of Zhu and Chauhan does not teach the same queue to feed a processor that is to perform network address translation on the packets having the different header values.
In an analogous art, Medvedkin teaches the same queue to feed a processor that is to perform network address translation on the packets having the different header values (Medvedkin – Fig. 2; Paragraph [0038], note network address translation (NAT) 153, packet header information 202 is input to hash function 212 which implements RSS hashing, hash function 212 produces first hash 214 based on the packet header information 202 from the first packet, the least significant bits (LSBs) of first hash 214 are masked by mask LSB 216 to produce an index 218 into HFRT 158, which is used to map the LSBs of a hash signature (hash value for particular tuple) to a queue number associated with a processing core).
Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the invention to incorporate the teachings of Medvedkin into the combination of Zhu and Chauhan in order to improve network address translation implementation in NIC using RSS hashing by reducing reliance on state data, thus improving scalability and performance (Medvedkin – Paragraphs [0004] and [0013]).
Regarding claim 8, the combination of Zhu, Chauhan, and Medvedkin, specifically Zhu teaches wherein the queue assignment circuitry is integrated with circuitry of a packet processing pipeline and the second hash key is specially constructed for the pipeline (Zhu – Fig. 3, Fig. 7A; Paragraph [0038], note based on the LSBs of the hash values of the data packets and the information on the indirection table 307, the controller 301 may select a destination queue 309a, 309b,… or 309n and a corresponding processor 207a, 207b,… or 207n to process each of the plurality of data packets; Paragraph [0053], note generating a hash key, the controller 301 may input symmetry constraints that ensure symmetric RSS of the data packets to the hash key generator 709, the hash key generator 709 outputs the secret hash key 403 with the bits of the generated random number adjusted to meet the symmetry constraints).
Regarding claim 14, the claim is interpreted and rejected for the same reason as claim 8 above.
Allowable Subject Matter
Claim 15 is objected to as being dependent upon a rejected base claim, but would be allowable if rewritten in independent form including all of the limitations of the base claim and any intervening claims.
The following is a statement of reasons for the indication of allowable subject matter:
Applicant’s dependent claim recites wherein one of the hash keys is used for packets belonging to a pass-through stateful bi-directional flow and another of the hash keys is used for packets belonging to a modified stateful bi-directional flow, which is neither taught nor suggested by the prior art.
Conclusion
The prior art made of record and not relied upon is considered pertinent to applicant's disclosure.
Baek et al. (US 2012/0254936 A1) discloses mapping classified packets to flows and applying hash keys to a hash function and mapping hash values to flows.
Rangaraman (US 2013/0336320 A1) discloses receive side scaling, calculating a hash based off of a packet or fragment header information and a randomly generated hash key.
Jain et al. (US 2015/0261556 A1) discloses queue assignment module for hashing packets and RSS module for distributing packets from NIC queues.
Any inquiry concerning this communication or earlier communications from the examiner should be directed to BAILOR C HSU whose telephone number is (571)272-1729. The examiner can normally be reached Mon-Fri. 9:00 am - 5:00 pm.
Examiner interviews are available via telephone, in-person, and video conferencing using a USPTO supplied web-based collaboration tool. To schedule an interview, applicant is encouraged to use the USPTO Automated Interview Request (AIR) at http://www.uspto.gov/interviewpractice.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, Huy Vu can be reached at (571)-272-3155. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300.
Information regarding the status of published or unpublished applications may be obtained from Patent Center. Unpublished application information in Patent Center is available to registered users. To file and manage patent submissions in Patent Center, visit: https://patentcenter.uspto.gov. Visit https://www.uspto.gov/patents/apply/patent-center for more information about Patent Center and https://www.uspto.gov/patents/docx for information about filing in DOCX format. For additional questions, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000.
/BAILOR C HSU/Primary Examiner, Art Unit 2461