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 .
1. Claims 26 and 28-50 are currently pending in this application.
Claims 26, 28, 30, 33-36, 39-44, 46, and 48 are amended as filed on 07/02/2025.
Claim 27 is canceled as filed on 07/02/2025.
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.
Claim(s) 26 and 28-50 are rejected under 35 U.S.C. 103 as being unpatentable over Herberg et al. (Pre-Grant Publication No. US 2013/028704 A1), hereinafter Herberg, in view of Slupik et al. (Pre-Grant Publication No. US 2016/0119572 A1), hereinafter Slupik, and in further view of Kommula et al. (Patent No. US 9,806,895 B1), hereinafter Kommula.
2. With respect to claim 26, Herberg taught a system for reducing data traffic for redundant data streams (title), the method comprising: receiving, via a first network controller, a first packet of data packets (0033-0034, nodes 102); receiving, via a second network controller, a second packet redundant to the first packet (0033-0034, nodes 104); determining, by the first network controller and using a value of an identifier of a received packet of the first packet, that a corresponding packet of the second packet having the value of the identifier has not already been received (0038, the packet ID); outputting, by the first network controller, the first data packet in response to the determining (0038), determining, by the second network controller and using a value of an identifier of a second packet, that the first data packet has already been received (0038); and dropping, by the second network controller, the second packet in response to the determining (0040).
However, while it could be argued that Herberg taught a stream of packets under broadest reasonable interpretation, for a more explicit showing, it is contended that Herberg did not explicitly state that the first and second packets were from a respective first and second stream of data packets. On the other hand, Slupik did teach that the first and second packets were from a respective first and second stream of data packets (0019 & 0054). Both of the systems of Herberg and Slupik are directed towards duplicate data packet suppression and therefore, it would have been obvious to a person having ordinary skill in the art, at the time of the effective filing of the invention, to modify the teachings of Herberg in order to perform redundancy protection against a stream of packets, as taught by Slupik, in order to provide an efficient system for data redundancy protections. Furthermore, Herberg undoubtedly perform said function but it is simply, not explicitly stated.
However, Herberg did not explicitly state a plurality of network interface controllers configured to concurrently receive duplicate streams from a source, the duplicate streams including a first stream of data packets redundant to a second stream of data packets; in response to the determining that the corresponding packet of the second stream of data packets having the value of the identifier has not already been received, outputting the first data packet to a memory shared by the first and second network interface controllers; and wherein a second network interface controller comprises one or more hardware processors and one or more memories, storing instructions, which when executed, cause the one or more hardware processors to perform second operations comprising: receiving the second stream of data packets concurrently as the first stream of data packets is received by the first network interface controller; determining, using a value of an identifier of the corresponding packet of the second stream of data packets, that the first data packet has already been received by the first network interface controller; and dropping the corresponding packet in response to the determining that the first data packet has already been received by the first network interface controller. On the other hand, Kommula did teach a plurality of network interface controllers configured to concurrently receive duplicate streams from a source, the duplicate streams including a first stream of data packets redundant to a second stream of data packets (5:64 to 6:8); in response to the determining that the corresponding packet of the second stream of data packets having the value of the identifier has not already been received, outputting the first data packet to a memory shared by the first and second network interface controllers (1:60 to 2:2); and wherein a second network interface controller comprises one or more hardware processors and one or more memories, storing instructions, which when executed, cause the one or more hardware processors to perform second operations comprising: receiving the second stream of data packets concurrently as the first stream of data packets is received by the first network interface controller (1:60 to 2:2 & 5:64 to 6:8); determining, using a value of an identifier of the corresponding packet of the second stream of data packets, that the first data packet has already been received by the first network interface controller; and dropping the corresponding packet in response to the determining that the first data packet has already been received by the first network interface controller (1:60 to 2:2 & 5:64 to 6:8). Both of the systems of Herberg and Kommula are directed towards duplicate data packet suppression and therefore, it would have been obvious to a person having ordinary skill in the art, at the time of the effective filing of the invention, to modify the teachings of Herberg in order to perform redundancy protection against a stream of packets, as taught by Kommula, in order to provide an efficient system for data redundancy protections.
2. With respect to claims 43 and 34, Herberg a method for reducing data traffic for redundant data packets (title), the method comprising: receiving, via a first network controller, a first packet of data packets (0033-0034, nodes 102); receiving, via a second network controller, a second packet redundant to the first packet (0033-0034, nodes 104); determining, by the first network controller and using a value of an identifier of a received packet of the first packet, that a corresponding packet of the second packet having the value of the identifier has not already been received (0038, the packet ID); outputting, by the first network controller, the first data packet in response to the determining (0038), determining, by the second network controller and using a value of an identifier of a second packet, that the first data packet has already been received (0038); and dropping, by the second network controller, the second packet in response to the determining (0040).
However, while it could be argued that Herberg taught a stream of packets under broadest reasonable interpretation, for a more explicit showing, it is contended that Herberg did not explicitly state that the first and second packets were from a respective first and second stream of data packets. On the other hand, Slupik did teach that the first and second packets were from a respective first and second stream of data packets (0019 & 0054). Both of the systems of Herberg and Slupik are directed towards duplicate data packet suppression and therefore, it would have been obvious to a person having ordinary skill in the art, at the time of the effective filing of the invention, to modify the teachings of Herberg in order to perform redundancy protection against a stream of packets, as taught by Slupik, in order to provide an efficient system for data redundancy protections. Furthermore, Herberg undoubtedly perform said function but it is simply, not explicitly stated.
However, Herberg did not explicitly state through the use of a first and second network interface controller, determining that the corresponding packet of the second stream of data packets has not already been received, outputting the first data packet to a memory shared by the first and second network interface controllers. On the other hand, Kommula did teach through the use of a first and second network interface controller, determining that the corresponding packet of the second stream of data packets has not already been received, outputting the first data packet to a memory shared by the first and second network interface controllers (1:60 to 2:2 & 5:64 to 6:8). Both of the systems of Herberg and Kommula are directed towards duplicate data packet suppression and therefore, it would have been obvious to a person having ordinary skill in the art, at the time of the effective filing of the invention, to modify the teachings of Herberg in order to perform redundancy protection against a stream of packets, as taught by Kommula, in order to provide an efficient system for data redundancy protections.
3. With respect to claim 39, Herberg taught a non-transitory machine-readable medium including instructions that, when executed by a network interface controller of a plurality of network interface controllers (claim 1, the network interface), cause the network interface controller to perform operations comprising: receiving a first packet of data packets redundant to a second packet of data packets (0033-0034, nodes 102 & 104); determining, using a value of an identifier of a received packet of the second packet of data packets, that a corresponding packet of the first packet of data packets having the value of the identifier has already been received (0038); and dropping the received packet in response to the determining that the corresponding packet of the first packet of data packets has already been received (0040).
However, while it could be argued that Herberg taught a stream of packets under broadest reasonable interpretation, for a more explicit showing, it is contended that Herberg did not explicitly state that the first and second packets were from a respective first and second stream of data packets. On the other hand, Slupik did teach that the first and second packets were from a respective first and second stream of data packets (0019 & 0054). Both of the systems of Herberg and Slupik are directed towards duplicate data packet suppression and therefore, it would have been obvious to a person having ordinary skill in the art, at the time of the effective filing of the invention, to modify the teachings of Herberg in order to perform redundancy protection against a stream of packets, as taught by Slupik, in order to provide an efficient system for data redundancy protections. Furthermore, Herberg undoubtedly perform said function but it is simply, not explicitly stated.
However, Herberg did not explicitly state performing the redundancy check through the use of a first and second network interface controller installed on a compute node. On the other hand, Kommula did teach performing the redundancy check through the use of a first and second network interface controller installed on a compute node (1:60 to 2:2 & 5:64 to 6:8). Both of the systems of Herberg and Kommula are directed towards duplicate data packet suppression and therefore, it would have been obvious to a person having ordinary skill in the art, at the time of the effective filing of the invention, to modify the teachings of Herberg in order to perform redundancy protection against a stream of packets, as taught by Kommula, in order to provide an efficient system for data redundancy protections.
5. As for claims 28, 35, and 44, they are rejected on the same basis as claims 26, 34, and 43 (respectively). In addition, Slupik taught wherein determining that the corresponding packet of the second stream of data packets having the value of the identifier has not already been received comprises: indexing into a lookup table using the value of the identifier (0049, where semaphores are locked by numerical values greater than zero); and determining that the packet of the second stream of data packets having the value of the identifier has not already been received using an entry of the lookup table corresponding to the value of the identifier (0049, where semaphores are locked by numerical values greater than zero).
6. As for claims 29, 41, and 45, they are rejected on the same basis as claims 28, 40, and 44 (respectively). In addition, Slupik taught wherein setting the stored value corresponding to the identifier comprises incrementing the entry of the lookup table corresponding to the identifier using an atomic count operation, and wherein determining that the first data packet has already been received comprises: indexing into the lookup table using the value of the identifier (0049, where semaphores are atomic locks); and determining that the first data packet has already been received based on the entry of the lookup table corresponding to the identifier being non-zero (0049, where semaphores are locked by numerical values greater than zero).
7. As for claims 30, 36, 42, and 46, they are rejected on the same basis as claims 27, 34, 39, and 43 (respectively). In addition, Slupik taught wherein determining, using the identifier of the first packet of the first stream of data packets, that the packet of the second stream of data packets has not already been received having the identifier comprises: identifying memory location for an output buffer for the data stream (0049, where the memory location for the semaphore is given); indexing into the memory location using the value of the identifier; and determining that the first data packet has already been received based on an entry at the memory location (0049, where semaphores are locked by numerical values greater than zero).
8. As for claims 31 and 47, they are rejected on the same basis as claims 30 and 46 (respectively). In addition, Slupik taught wherein determining that the first data packet has already been received based on the entry at the memory location comprises: reading a value for the entry at the memory location; and determining that the first data packet has already been received based on the value of the entry at the memory location being non-zero (0049, where reading the semaphore lock value is given).
9. As for claims 32, 37, and 48, they are rejected on the same basis as claims 31, 36, and 47 (respectively). In addition, Slupik taught wherein the second operations further comprise incrementing the value of the entry at the memory location in response to determining that the first data packet has already been received (0049, where semaphores are incremented when the post function is applied).
10. As for claims 33, it is rejected on the same basis as claim 26. In addition, Herberg taught wherein outputting the first data packet comprises transmitting the first data packet to a central processing unit on a data bus, and wherein the first network interface controller and the second network interface controller are separate circuits each connected to communicate on the data bus (0033-0034 & figure 1, items 102 & 104, where the node contains a CPU in accordance with 0046).
11. As for claims 38, it is rejected on the same basis as claim 37. In addition, Herberg taught wherein the operation of outputting the first data packet comprises transmitting the first data packet to a central processing unit on a data bus (0033-0034 & figure 1, items 102 & 104, where the node contains a CPU in accordance with 0046).
12. As for claims 49, it is rejected on the same basis as claim 43. In addition, Herberg taught wherein outputting the first data packet comprises transmitting the first data packet to a central processing unit on a data bus (0033-0034 & figure 1, items 102 & 104, where the node contains a CPU in accordance with 0046).
13. As for claims 50, it is rejected on the same basis as claim 49. In addition, Herberg taught wherein the first network controller and the second network controller are separate circuits each connected to communicate on the data bus (0033-0034 & figure 1, items 102 & 104, where the node contains a CPU in accordance with 0046).
Response to Arguments
Applicant’s arguments with respect to the claim(s) have been considered but are moot because the new ground of rejection does not rely on any reference applied in the prior rejection of record for any teaching or matter specifically challenged in the argument.
Conclusion
Applicant's amendment necessitated the new ground(s) of rejection presented in this Office action. Accordingly, THIS ACTION IS MADE FINAL. See MPEP § 706.07(a). Applicant is reminded of the extension of time policy as set forth in 37 CFR 1.136(a).
A shortened statutory period for reply to this final action is set to expire THREE MONTHS from the mailing date of this action. In the event a first reply is filed within TWO MONTHS of the mailing date of this final action and the advisory action is not mailed until after the end of the THREE-MONTH shortened statutory period, then the shortened statutory period will expire on the date the advisory action is mailed, and any nonprovisional extension fee (37 CFR 1.17(a)) pursuant to 37 CFR 1.136(a) will be calculated from the mailing date of the advisory action. In no event, however, will the statutory period for reply expire later than SIX MONTHS from the mailing date of this final action.
Any inquiry concerning this communication or earlier communications from the examiner should be directed to JOSEPH L GREENE whose telephone number is (571)270-3730. The examiner can normally be reached Monday - Thursday, 10:00am - 4:00pm.
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, Nicholas R. Taylor can be reached at 571 272-3889. 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.
/JOSEPH L GREENE/Primary Examiner, Art Unit 2443