DETAILED ACTION
Continued Examination Under 37 CFR 1.114
A request for continued examination under 37 CFR 1.114, including the fee set forth in 37 CFR 1.17(e), was filed in this application after final rejection. Since this application is eligible for continued examination under 37 CFR 1.114, and the fee set forth in 37 CFR 1.17(e) has been timely paid, the finality of the previous Office action has been withdrawn pursuant to 37 CFR 1.114. Applicant's submission filed on June 23, 2026 has been entered.
Claim 1, 8, and 15 have been amended.
Claims 1-20 are pending.
Response to Arguments
35 U.S.C. 103 Rejections
Applicant’s arguments filed in the communications on 06/23/2026 have been fully considered but are moot because the arguments do not apply to the combination of references being used in the current rejection.
Claim Rejections - 35 USC § 103
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.
Claims 1-20 are rejected under 35 U.S.C. 103 as being unpatentable over Gale (USPGPub 2015/0138986) in view of Mandal et al. (US Patent 9,571,400).
As per claim 1, Gale teaches a system for egress port determination in a data network (Gale, see paragraph [0015], distribution of flows to egress ports in an AVB network) comprising:
at least one switch or router in one of different route layers to receive a communication from a host machine, the communication received by the at least one switch or router comprising at least a data packet and a hash header (Gale, see paragraph [0047], Input ports 302-1 to 302-N receive packets corresponding to different flows. Also see paragraph [0035], a packet 106 that includes a header 108 and a payload 110) the data packet for transmission to at least one receiving host machine through at least one of available egress ports of the at least one switch or router (Gale, see paragraph [0055], frame distributor 316 may compute a hash of the packet header and direct the packet to the egress port based on the output of the hash algorithm).
Gale doesn’t explicitly teach that a hash is used to determine available egress ports and that the at least one of the available egress ports determined based in part on a hash provided in the hash header.
In analogous art Mandal teaches a hash is used to determine available egress ports and that the at least one of the available egress ports determined based in part on a hash provided in the hash header (Mandal, see column 1 line 47-51, generating, by the data switch, a second hash value based on the header of the data packet and performing a lookup in the selected secondary ECMP table based on the second hash value to select an egress port of a plurality of egress ports of the data switch).
Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the invention to take the teaching of Mandal and apply them on the teaching of Gale in order to determine available egress ports. (Mandal, see column 1 line 47-51).
As per claim 2, Gale-Mandal teaches the system of claim 1, wherein the hash is determined on the host machine using a hash function applied to at least one of a plurality of addresses to be associated with the communication from the host machine or applied to a state associated with the host machine (Gale, see paragraph [0036], traffic through a LAG 118 is distributed using frame distributor 114 across the LAG's member links 116 according to a fixed hash of header 108 using hash function generator 112).
As per claim 3, Gale-Mandal teaches the system of claim 1, wherein the at least one switch or router is further configured to: determine the at least one available egress ports based in part on one of different portions of the hash, the different portions of the hash used to designate the different route layers beginning from the at least one of the available egress ports (Gale, see paragraph [0028], using aggregated links. In the case of ECMP, the aggregated link comprises an aggregation of network paths. Each path in a particular ECMP group may be configured towards the same destination via a different next hop) and transmit the data packet from the at least one switch or router to the at least one receiving host machine using the at least one of the available egress ports and using the one of the different route layers (Gale, see paragraph [0036], As a result of the different hash value, packets of different flows will be randomly assigned to different member links 116 for transmission).
As per claim 4, Gale-Mandal teaches the system of claim 1, further comprising: one or more processing units adapted with communication capabilities and to be installed in the host machine, the one or more processing units to perform a hash function based in part on addresses to be associated with the communication from the host machine (Gale, see paragraph [0036], all packets within a given flow (i.e. packets having the same packet header properties) to be allocated to the same member link 116. Such an allocation provides a traffic distribution based on probabilities since packets of different flows will have different header properties resulting in a different hash values generated by hash function generator 112) the communication capabilities to enable the communication from the one or more processing units with the hash from the hash function included in the hash header of the communication (Gale, see paragraph [0036], This distribution using a fixed hash of the header is performed in hardware (e.g. using hash function generator 112) without per-flow intervention of control plane software in devices 103).
As per claim 5, Gale-Mandal teaches the system of claim 1, wherein the system is further configured to: generate a new hash, based in part on the host machine providing new communication comprising a new hash in a new session associated with the receiving host machine, wherein the at least one switch or router is to determine a different one of the at least one of the available egress ports based in part on the new hash (Gale, see paragraph [0055], In some examples, if a mapping of a flow to a particular egress port is not provided by processor 306, or is not available in table 312, frame distributor 316 may compute a hash of the packet header (Note: this is new hash) and direct the packet to the egress port based on the output of the hash algorithm).
As per claim 6, Gale-Mandal teaches the system of claim 1, further comprising: a centralized controller to provide configuration information to the at least one switch or router, the configuration information to enable the at least one switch or router to use the hash in the hash header for the determination of the at least one of the available egress ports for the transmission of the data packet from the at least one switch or router (Gale, see paragraph [0050], Processor 306 also stores the link aggregation configurations of ports 304-1 to 304-N. In an embodiment, based on the bandwidth requirements of a flow, processor 306 assigns the flow, and as a result the packets corresponding to the flow, to a port 304 coupled to a link 305. As described above in FIG. 2B, if flow A requires a bandwidth of 50 Mbps, then it may be assigned to a link of 305 that can support the bandwidth requirements of flow A. Processor 306 programs table 312 in packet parsing unit 310 with the mapping of flows to ports 304).
As per claim 7, Gale-Mandal teaches the system of claim 1, further comprising: a software service of the host machine to enable a hash function to generate the hash for the hash header of the data packet (Gale, see paragraph [0045], …instead of using an output of a hash function, can make an explicit decision based on the bandwidth requirements of flows to optimally balance the flows across link members 206. Embodiments presented herein provide means for software to make an explicit allocation of a flow to a member link of a LAG based upon a load balancing calculation and characteristics of the flow).
As per claim 8, Gale teaches a method for egress port determination in a data network, (Gale, see paragraph [0015], distribution of flows to egress ports in an AVB network) the method comprising:
receiving a communication from a host machine in at least one switch or router of one of different route layers; (Gale, see paragraph [0047], Input ports 302-1 to 302-N receive packets corresponding to different flows. Also see paragraph [0035], a packet 106 that includes a header 108 and a payload 110) determining that the communication received in the at least one switch or router comprises a data packet and a hash header; (Gale, see paragraph [0047], Input ports 302-1 to 302-N receive packets corresponding to different flows. Also see paragraph [0035], a packet 106 that includes a header 108 and a payload 110) and determining at least one of available egress ports of the at least one switch or router for transmission of the data packet to at least one receiving host machine from the at least one switch or router, (Gale, see paragraph [0055], frame distributor 316 may compute a hash of the packet header and direct the packet to the egress port based on the output of the hash algorithm).
Gale doesn’t explicitly teach that a hash is used to determine available egress ports and that the at least one of the available egress ports determined based in part on a hash provided in the hash header.
In analogous art Mandal teaches a hash is used to determine available egress ports and that the at least one of the available egress ports determined based in part on a hash provided in the hash header (Mandal, see column 1 line 47-51, generating, by the data switch, a second hash value based on the header of the data packet and performing a lookup in the selected secondary ECMP table based on the second hash value to select an egress port of a plurality of egress ports of the data switch).
Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the invention to take the teaching of Mandal and apply them on the teaching of Gale in order to determine available egress ports. (Mandal, see column 1 line 47-51).
As per claim 9, Gale-Mandal teaches the method of claim 8, further comprising: determining, on the host machine, the hash to be provided in the hash header based on a hash function applied to at one of a plurality of addresses to be associated with the communication from the host machine or applied to a state associated with the host machine. (Gale, see paragraph [0036], traffic through a LAG 118 is distributed using frame distributor 114 across the LAG's member links 116 according to a fixed hash of header 108 using hash function generator 112).
As per claim 10, Gale-Mandal teaches the method of claim 8, further comprising: determining, by the at least one switch or router, the at least one available egress ports based in part on one of different portions of the hash, the different portions of the hash used to designate the different route layers beginning from the at least one of the available egress ports; (Gale, see paragraph [0028], using aggregated links. In the case of ECMP, the aggregated link comprises an aggregation of network paths. Each path in a particular ECMP group may be configured towards the same destination via a different next hop) and transmitting the data packet from the at least one switch or router to the at least one receiving host machine using the at least one of the available egress ports and using the one of the different route layers. (Gale, see paragraph [0036], As a result of the different hash value, packets of different flows will be randomly assigned to different member links 116 for transmission).
As per claim 11, Gale-Mandal teaches the method of claim 8, further comprising: providing one or more processing units with communication capabilities and installed in the host machine; performing, using the one or more processing units, a hash function based in part on addresses to be associated with the communication from the host machine(Gale, see paragraph [0036], all packets within a given flow (i.e. packets having the same packet header properties) to be allocated to the same member link 116. Such an allocation provides a traffic distribution based on probabilities since packets of different flows will have different header properties resulting in a different hash values generated by hash function generator 112) and enabling, using the communication capabilities, the communication from the one or more processing units with the hash from the hash function included in the hash header of the communication. (Gale, see paragraph [0036], This distribution using a fixed hash of the header is performed in hardware (e.g. using hash function generator 112) without per-flow intervention of control plane software in devices 103).
As per claim 12, Gale-Mandal teaches the method of claim 8, further comprising generating a new hash, based in part on the host machine providing new communication comprising a new hash in a new session associated with the receiving host machine, wherein the at least one switch or router is to determine a different one of the at least one of the available egress ports based in part on the new hash. (Gale, see paragraph [0055], In some examples, if a mapping of a flow to a particular egress port is not provided by processor 306, or is not available in table 312, frame distributor 316 may compute a hash of the packet header (Note: this is new hash) and direct the packet to the egress port based on the output of the hash algorithm).
As per claim 13, Gale-Mandal teaches the method of claim 8, further comprising: providing, using a centralized controller, configuration information to the at least one switch or router; and enabling, using the configuration information, the at least one switch or router to use the hash in the hash header for the determination of the at least one of the available egress ports for the transmission of the data packet from the at least one switch or router. (Gale, see paragraph [0050], Processor 306 also stores the link aggregation configurations of ports 304-1 to 304-N. In an embodiment, based on the bandwidth requirements of a flow, processor 306 assigns the flow, and as a result the packets corresponding to the flow, to a port 304 coupled to a link 305. As described above in FIG. 2B, if flow A requires a bandwidth of 50 Mbps, then it may be assigned to a link of 305 that can support the bandwidth requirements of flow A. Processor 306 programs table 312 in packet parsing unit 310 with the mapping of flows to ports 304).
As per claim 14, Gale-Mandal teaches the method of claim 8, further comprising: enabling, using a software service of the host machine, a hash function to generate the hash for the hash header of the data packet. (Gale, see paragraph [0045], …instead of using an output of a hash function, can make an explicit decision based on the bandwidth requirements of flows to optimally balance the flows across link members 206. Embodiments presented herein provide means for software to make an explicit allocation of a flow to a member link of a LAG based upon a load balancing calculation and characteristics of the flow).
As per claim 15, Gale teaches a system (Gale, see paragraph [0015], distribution of flows to egress ports in an AVB network) comprising:
one or more processing units to be associated with at least one switch or router of different route layers and to enable the at least one switch or router to receive a communication from a host machine, the communication received by the at least one switch or router comprising at least a data packet and a hash header (Gale, see paragraph [0047], Input ports 302-1 to 302-N receive packets corresponding to different flows. Also see paragraph [0035], a packet 106 that includes a header 108 and a payload 110) the data packet for transmission to other host machines through at least one of available egress ports of the at least one switch or router (Gale, see paragraph [0055], frame distributor 316 may compute a hash of the packet header and direct the packet to the egress port based on the output of the hash algorithm).
Gale doesn’t explicitly teach that a hash is used to determine available egress ports and that the at least one of the available egress ports determined based in part on a hash provided in the hash header.
In analogous art Mandal teaches a hash is used to determine available egress ports and that the at least one of the available egress ports determined based in part on a hash provided in the hash header (Mandal, see column 1 line 47-51, generating, by the data switch, a second hash value based on the header of the data packet and performing a lookup in the selected secondary ECMP table based on the second hash value to select an egress port of a plurality of egress ports of the data switch).
Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the invention to take the teaching of Mandal and apply them on the teaching of Gale in order to determine available egress ports. (Mandal, see column 1 line 47-51).
As per claim 16, Gale-Mandal teaches the system of claim 15, wherein the hash is determined on the host machine using a hash function applied to at least one of a plurality of addresses to be associated with the communication from the host machine or applied to a state associated with the host machine. (Gale, see paragraph [0036], traffic through a LAG 118 is distributed using frame distributor 114 across the LAG's member links 116 according to a fixed hash of header 108 using hash function generator 112).
As per claim 17, Gale-Mandal teaches the system of claim 15, wherein the one or more processing units is further configured to: determine the at least one available egress ports based in part on one of different portions of the hash, the different portions of the hash used to designate the different route layers beginning from the at least one of the available egress ports; (Gale, see paragraph [0028], using aggregated links. In the case of ECMP, the aggregated link comprises an aggregation of network paths. Each path in a particular ECMP group may be configured towards the same destination via a different next hop) and transmit the data packet from the at least one switch or router to the at least one receiving host machine using the at least one of the available egress ports and using the one of the different route layers. (Gale, see paragraph [0036], As a result of the different hash value, packets of different flows will be randomly assigned to different member links 116 for transmission).
As per claim 18, Gale-Mandal teaches the system of claim 15, wherein at least one of the one or more processing units are further adapted with communication capabilities and are further to be installed in the host machine, the at least one of the one or more processing units are further to perform a hash function based in part on addresses to be associated with the communication from the host machine, (Gale, see paragraph [0036], all packets within a given flow (i.e. packets having the same packet header properties) to be allocated to the same member link 116. Such an allocation provides a traffic distribution based on probabilities since packets of different flows will have different header properties resulting in a different hash values generated by hash function generator 112) the communication capabilities to enable the communication from the one or more processing units with the hash from the hash function included in the hash header of the communication. (Gale, see paragraph [0036], This distribution using a fixed hash of the header is performed in hardware (e.g. using hash function generator 112) without per-flow intervention of control plane software in devices 103).
As per claim 19, Gale-Mandal teaches the system of claim 15, wherein the one or more processing units are further configured to: update the hash to provide a new hash, based in part on the host machine providing new communication comprising the new hash in a new session associated with the receiving host machine; and update the at least one of the available egress ports, based in part on the new hash, to provide a different one of the available egress ports to transmit the new communication from the at least one switch or router to the receiving host machine. (Gale, see paragraph [0055], In some examples, if a mapping of a flow to a particular egress port is not provided by processor 306, or is not available in table 312, frame distributor 316 may compute a hash of the packet header (Note: this is new hash) and direct the packet to the egress port based on the output of the hash algorithm).
As per claim 20, Gale-Mandal teaches the system of claim 15, wherein the one or more processing units are further configured to comprise a centralized controller to provide configuration information to the at least one switch or router, the configuration information to enable the at least one switch or router to use the hash in the hash header for the determination of the at least one of the available egress ports for the transmission of the data packet from the at least one switch or router (Gale, see paragraph [0050], Processor 306 also stores the link aggregation configurations of ports 304-1 to 304-N. In an embodiment, based on the bandwidth requirements of a flow, processor 306 assigns the flow, and as a result the packets corresponding to the flow, to a port 304 coupled to a link 305. As described above in FIG. 2B, if flow A requires a bandwidth of 50 Mbps, then it may be assigned to a link of 305 that can support the bandwidth requirements of flow A. Processor 306 programs table 312 in packet parsing unit 310 with the mapping of flows to ports 304).
Conclusion
Any inquiry concerning this communication or earlier communications from the examiner should be directed to HERMON ASRES whose telephone number is (571)272-4257. The examiner can normally be reached Monday to Friday 9AM to 5PM.
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, Vivek Srivastava can be reached at (571)272-7304. 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.
/HERMON ASRES/Primary Examiner, Art Unit 2449