Prosecution Insights
Last updated: July 17, 2026
Application No. 18/883,872

QUEUE SCHEDULING METHOD AND APPARATUS

Non-Final OA §102§103§112
Filed
Sep 12, 2024
Priority
Mar 16, 2022 — CN 202210259483.1 +1 more
Examiner
GRADINARIU, LUCIA GHEORGHE
Art Unit
Tech Center
Assignee
Huawei Technologies Co., Ltd.
OA Round
1 (Non-Final)
36%
Grant Probability
At Risk
1-2
OA Rounds
10m
Est. Remaining
78%
With Interview

Examiner Intelligence

Grants only 36% of cases
36%
Career Allowance Rate
4 granted / 11 resolved
-23.6% vs TC avg
Strong +42% interview lift
Without
With
+41.7%
Interview Lift
resolved cases with interview
Typical timeline
2y 8m
Avg Prosecution
37 currently pending
Career history
67
Total Applications
across all art units

Statute-Specific Performance

§103
89.6%
+49.6% vs TC avg
§102
9.0%
-31.0% vs TC avg
§112
0.9%
-39.1% vs TC avg
Black line = Tech Center average estimate • Based on career data from 11 resolved cases

Office Action

§102 §103 §112
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 . Information Disclosure Statement The information disclosure statement (IDS) submitted on 06/27/2025 was filed after the mailing date of the present Application on 09/12/2024. Together with the IDS submitted on 09/12/2024, the submission is in compliance with the provisions of 37 CFR 1.97. Accordingly, the information disclosure statement is being considered by the examiner. Claim Objections Claims 1-2, 11-12 and 20 objected to because of the following informalities: the first occurrence of "first bandwidth" and "second bandwidth" should be "a first bandwidth" and “a second bandwidth,” respectively. Appropriate correction is required. Claim Rejections - 35 USC § 112(b) The following is a quotation of 35 U.S.C. 112(b): (b) CONCLUSION.—The specification shall conclude with one or more claims particularly pointing out and distinctly claiming the subject matter which the inventor or a joint inventor regards as the invention. Claim 7 is rejected under 35 U.S.C. 112(b) as being indefinite for failing to particularly point out and distinctly claim the subject matter which the inventor or a joint inventor, regards as the invention. A claim is indefinite when it contains words or phrases whose meaning is unclear. In re Packard, 751 F.3d 1307, 1314, 110 USPQ2d 1785, 1789 (Fed. Cir. 2014); or when it would be unclear as to what element the limitation was making reference – See MPEP § 2173.05(e). The failure to provide explicit antecedent basis for terms does not always render a claim indefinite, e.g., if the scope of a claim would be reasonably ascertainable by those skilled in the art – See id. Here, Claim 7 recites the limitation “determining, by the queue scheduling apparatus, the first scheduling parameter from a second candidate scheduling parameter set based on the second scheduling parameter.” However, it is unclear whether the “determining” is based on the second scheduling parameter or “a second candidate scheduling parameter set” is based on the second scheduling parameter. Applicant could amend the claim language to clarify the dependency on the second scheduling parameter. Therefore, Claim 7 is rejected under 35 U.S.C. §112(b) for indefiniteness. Claim Rejections - 35 USC § 102 The following is a quotation of the appropriate paragraphs of 35 U.S.C. 102 that form the basis for the rejections under this section made in this Office action: A person shall be entitled to a patent unless – (a)(2) the claimed invention was described in a patent issued under section 151, or in an application for patent published or deemed published under section 122(b), in which the patent or application, as the case may be, names another inventor and was effectively filed before the effective filing date of the claimed invention. Claims 1-6, 9-14, and 18-20 are rejected under 35 U.S.C. 102(a)(2) as being anticipated by Gunner, U.S. Patent Application Publication No. 2019/0158432 (hereinafter Gunner). Regarding Claim 1, Gunner teaches a method (“method of scheduling packets for transmission over a network via a gateway device” – See [¶0011]), wherein the method comprises: determining, by a queue scheduling apparatus (“a computing device configured with executable instructions to configure the computing device to queue received packets for transmission via a network interface” – See [¶0012] so that “[a] first queue of the first plurality of queues is selected into which to enqueue the first packet” – See [¶0011]), a first bandwidth, wherein the first bandwidth indicates a rate at which a packet on an outbound interface is dequeued (the “’ByteCount’ attribute of a QBlock is the count of bytes from all packets in the QBlock . . . updated in enqueue and dequeue” – See [¶0036], i.e., equivalent to different packet lengths, and “each QBlock 112a-n [is] assigned a different time interval which serves as a target "deadline" time to be dequeued by the WFQ scheduler 120” – See [¶0038] and Fig. 3 wherein “QBlock 112a at the head 316 of the CoS queue 110 is scheduled to be dequeued at current time "t," whereas the QBlock 112n at the tail 314 of the CoS queue 110 is scheduled to be dequeued at the current time plus "n" times the interval,” e.g., when “the interval between QBlocks ll0a-n as illustrated is one millisecond” – See id. the first bandwidth indicates, at time “t,” a rate of “ByteCount per 1ms” whereby if the QBlock at time “t” is “full to its normal ByteLimit” and is “the active head (316) for packet removal for output (called the CurrentActiveQBlock)” – See [¶0041] the first bandwidth indicates a rate of at least1 “ByteLimit per 1ms” and at most “’MaxDrainRate Rate’ attribute in bytes per second [that] may be used to indicate the line rate of the output port 160” – See [¶0044] and Fig. 1); determining, by the queue scheduling apparatus, a first scheduling parameter based on the first bandwidth and a first scheduling frequency, wherein the first scheduling frequency indicates a maximum quantity of scheduling times per unit of time (“Each CoS queue 110 includes multiple QBlocks 112” with “a first-in-first-out (FIFO) queue scheduled for availability to a Weighted Fair Queue (WFQ) scheduler 120 at a different time interval” – See [¶0031] and Fig. 3 whereby “[a] "StartTime" attribute of a QBlock may correspond to a clock time with a suitable resolution (e.g., 1 millisecond) at which this QBlock should start being processed” – See [¶0035] and Fig. 3 and “[e]ach CoS queue structure corresponds to an instance of a CoS queue attached to a WFQ instance” whereby “[t]he total span of time represented by the array of QBlocks is . . . a configurable parameter which may be, for example, 128 ms” and “[e]ach QBlock 112 represents an interval of transmit time, such as 1 ms of transmit time, when full to its normal ByteLimit” – See [¶0041] i.e., the first scheduling frequency is once every 1ms and indicates a maximum quantity of scheduling times per unit of time of once every 1ms, i.e., 1000 times per second; however, a real MaxRate smaller than the ’MaxDrainRate Rate’ attribute may be configured whereby “[t]he different rate shapers 550 may shape packet rates to accommodate different downstream packet rates after a packet is transmitted over a network via the port 160,” e.g., “bandwidth restrictions based on conditions of a network that the packet must traverse” and “need to shape the output traffic to control jitter to accommodate a downstream destination device's buffer capacity (e.g., the buffer capacity of a subscriber device), where the jitter is an expression of the variation in the packet rate to that destination” – See [¶0063]), and the first scheduling parameter indicates a length of a packet scheduled each time2 (a “’ByteCount’ attribute of a QBlock is the count of bytes from all packets in the QBlock . . . updated in enqueue and dequeue” – See [¶0036], i.e., each time; a “’ByteLimit’ attribute may be used to indicate the number of bytes which a QBlock 112 attached to this CoS queue 110 represents when it is full . . . derived from TimeQuantum*MaxDrainRate” – See [¶0042] whereby “’TimeQuantum’ attribute may be used to indicate the time it would take to transmit ByteLimit bytes at a line rate on the output port 160” – See [¶0043], i.e., the first scheduling parameter indicates the currently scheduled CurrentActiveQBlock for the length of the packet(s) of ByteCount to be currently dequeued, whereby the “’CurrentActiveQBlock’ attribute [is] used to provide an index (ordinal number) of the QBlock in the QBlockArray that is the currently active head” – See [¶0047] and Fig 3); and scheduling, by the queue scheduling apparatus based on the first scheduling parameter, to dequeue the packet on the outbound interface (“Since processing the CurrentActiveQBlock may lag behind the CurrentTimeQBlock because of congestion, it is always allowed to send from QBlocks that precede the CurrentTimeQblock as well as that QBlock itself,” i.e., “packets can be pulled from the intervening QBlocks as fast as allowed, and without further congestion the CurrentActiveQBlock will "catch up" to the CurrentTimeQblock” – See [¶0066] whereby a QBlock is equivalent to a packet of length ByteCount; in addition , “"Fastpath" connections have an interleaving depth of 1, which is to say that one packet is transmitted from the output port 160 at a time” and “uses a split processing model in which packet forwarding consists of an input processing method (FIG. 6) and an output processing method (FIG. 1, FIG. 5)” – See [¶0076]). Therefore, Claim 1 is anticipated by Gunner. Regarding Claim 2, dependent from Claim 1, Gunner further teaches the method according to claim 1, wherein before determining the first scheduling parameter, the method further comprises: determining, by the queue scheduling apparatus, that the first bandwidth matches a second bandwidth (“"CurrentTimeQBlock" attribute may be used to provide an index (ordinal number) of the QBlock in the QBlockArray whose time range overlaps current time. Because of congestion, the CurrentTimeQBlock may be later in future time sequence than the CurrentActiveQBlock” – See [¶0048] and “enqueue of packets is always to, or after, the CurrentTimeQblock since this preserves the token bucket rate shaping result,” whereby “[i]n the absence of congestion from other CoS queues sharing the output port, the flow does not end up with CurrentActiveQBlock lagging significantly behind CurrentTimeQblock” – See [¶0066], i.e., the first bandwidth matches second bandwidth when there is no congestion) wherein the second bandwidth is determined based on a second scheduling parameter and the first scheduling frequency, the second scheduling parameter is a length of a packet scheduled by the queue scheduling apparatus at a first moment each time (“The ByteCount is not used to track the actual remaining bytes in the QBlock” but “only increased as packets are enqueued” – See [¶0067], i.e., ByteCount represents the length of a packet or QBlock to be scheduled for dequeuing at each time t+n*1ms after the first moment “t”, and “1ms” corresponds to the first scheduling frequency explained in Regarding Claim 1 supra), the first moment is a moment at which the queue scheduling apparatus obtains the first bandwidth (“the input stage . . . computes Weighted Random Early Detection (WRED) (674) for each packet . . . computes a ‘future time’ (677) for each rate shaper applicable for packets that were not dropped by WRED” and “determines which QBlock 112 for the determined CoS the packet should be enqueued into (678) based on the largest computed future time, and enqueues the packet” – See [¶0069], whereby “[e]ach rate shaper may be structured as an extended variation on a "token bucket," with the bucket determining how much delay to impose on the packet before it may be dequeued from a QBlock” and “[t]he ‘future time’ delay of a packet corresponds to the depth of the bucket in bytes divided by the maximum rate in bytes-per-second” – See [¶0074] and “a QBlock 112 into which the packet will be enqueued is . . . in the CoS queue 110 that has a soonest scheduled dequeuing time before the future time” – See [¶0100] and Figs. 6 and 7, i.e., “the selected QBlock will have a scheduled time . . . closest to the determined future time, that is less than or equal to that future time . . . to achieve the packet rate upon which the future time was based” – See [¶0075], whereby the packet rate considered is the first bandwidth and, in general, “the improved queuing model may be used to limit the maximum rate of packets to a destination device, a dedicated rate shaper 550 may provide more robust jitter control, reducing timing variation between packets” – See [¶0064]) Therefore, Claim 2 is anticipated by Gunner. Regarding Claim 3, dependent from Claim 2, Gunner further teaches the method according to claim 2, wherein determining, by the queue scheduling apparatus, the first scheduling parameter based on the first bandwidth and the first scheduling frequency comprises: in response to the first bandwidth being less than the second bandwidth (e.g., “The CurrentActiveQBlock for a CoS queue 110 may not have any packets present, in which case that CoS queue is logically empty for current packet processing” and “subsequent QBlocks are non-empty. Only as time advances and a subsequent non-empty QBlock becomes the CurrentActiveQBlock does the CoS queue become logically non-empty for current packet processing” – See [¶0066] i.e., the first bandwidth is less than the second bandwidth because the first packet is empty) determining, by the queue scheduling apparatus, the first scheduling parameter based on a ratio of the first bandwidth to the first scheduling frequency (“If the current Time is greater than LastRecomputeTime plus RecomputeTimeDelta then a token bucket compute is performed. This avoids the token bucket state becoming stale when the throughput of packets (bytes) through the rate shaper is low” – See [¶0110], e.g., in response to first bandwidth is less than the second bandwidth, whereby the “’RecomputeTimeDelta,’ . . . is the maximum allowed time between token bucket computations. An example default value is currently 1 ms” – See [¶0106], i.e., the first scheduling frequency; furthermore, a “Token Bucket (TB) implementation having several configurable parameters” one being the “’BucketDepth’ . . . representing the depth of the token bucket in byte . . . synonymous with "BurstSize" and defines the limit on the amount of accumulated credit allowed. While credit is not exhausted in the token bucket, packets are sent without delay, such that the token bucket allows BucketDepth bytes to be sent at "line" rate as a burst” – See [¶0104], therefore when the bucket becomes stalled because of empty or small packets are transmitted, e.g., if first packet length is zero or a few bytes, the BurstSize is non-significative and can not be used to calculate the BucketDepth; however, another parameter is “FillRate” expressed “in bytes per second at which the token bucket fills with credits. This is synonymous with "MaxRate" which is a well-used broadband service term, for example, for the maximum sustained rate allowed for a subscriber's device. MaxRate is usually expressed in bits per second (bps)” or “may be converted to bytes per second (Bps)” – See [¶0105] whereby MaxRate is derived from the “"MaxDrainRate Rate" attribute in bytes per second [that] may be used to indicate the line rate of the output port 160,” e.g., “For a physical output port [] is the nominal line rate of the port, such as 1 Gbps (in bytes) or 10 Gbps (in bytes)” – See [¶0044] and Fig. 1, further policed by the rate shaper to support “the need to shape the output traffic to control jitter to accommodate a downstream destination device's buffer capacity (e.g., the buffer capacity of a subscriber device), where the jitter is an expression of the variation in the packet rate to that destination,” i.e., “[t]o control the jitter on the transmitted MaxRate” – See [¶0063]; therefore the first scheduling parameter –a scalar – may be determined from the FillRate of the token bucket which is MaxRate*RecomputeTimeDelta, i.e., the ratio between the line rate of the output port, e.g., 1Gbps, and the first scheduling frequency, e.g., 1/1ms) wherein the first scheduling parameter is less than the second scheduling parameter (“For per-packet processing, a value TB.AccumulatedByteCount is incremented by the packet length (bytes)” – See [¶0113] and while the “TB.Level is positive then the token bucket has credits to send within its BucketDepth burst size,” i.e., the packets are dequeued and transmitted at line rate supra – See [¶0112]; however, when the first packet is empty, the BucketDepth becomes stalled or cannot be calculated, as explained supra) Therefore, Claim 3 is anticipated by Gunner. Regarding Claim 4, dependent from Claim 3, further teaches the method according to claim 3, wherein determining, by the queue scheduling apparatus, the first scheduling parameter based on the ratio of the first bandwidth to the first scheduling frequency comprises: determining, by the queue scheduling apparatus, a third scheduling parameter based on the ratio of the first bandwidth to the first scheduling frequency (“each rate shaper token bucket may utilize some additional parameters,” e.g., the “’RecomputeByteThreshold’ is a value of accumulated byte count at which to trigger a token bucket's recomputation” and “may be computed from the FillRate,” i.e., the third parameter RecomputeByteThreshold is determined based on the FillRate which is computed based on the ratio of the first bandwidth to the first scheduling frequency as explained in Regarding Claim 3 supra, here the “intent is to minimize jitter in packet send times induced by the token bucket recomputation but balanced by maximizing the time between recomputes,” – See [¶0106]); and determining, by the queue scheduling apparatus, the first scheduling parameter from a first candidate scheduling parameter set based on the third scheduling parameter, wherein the first candidate scheduling parameter set comprises a plurality of first candidate scheduling parameters (e.g., when a small “packet size is 250 bytes, the default for maximum jitter is approximately 1 ms (this is derived from jitter sensitive voice data, where a 1 ms jitter per switching/routing hop is acceptable), and typical FillRates are 1 Mbps, 10 Mbps, 100 Mbps. A 1 ms maximum rate transfer at those rates is approximately 125 B, 1250 B, 12500 B . . . a reasonable tradeoff is to set the RecomputeByteThreshold to a minimum of 1000 B or 1 ms times the FillRate if that value is larger” –See [¶0106], i.e., there is a set of candidate packet sizes/lengths for preserving the 1ms jitter depending on the typical FillRates) and the first scheduling parameter is a first candidate scheduling parameter that is in the first candidate scheduling parameter set and that is not less than the third scheduling parameter (e.g., the first scheduling parameter is 1250 B). Therefore, Claim 4 is anticipated by Gunner. Regarding Claim 5, dependent from Claim 2, Gunner further teaches the method according to claim 2, wherein the first bandwidth is determined based on a length of a packet that is added to a first queue set (a “’ByteCount’ attribute of a QBlock is the count of bytes from all packets in the QBlock” – See [¶0036] whereby the QBlock may be equivalent to a packet of variable length ByteCount because “there is no specific delay for the dequeuing of packets from a QBlock 112 once it reaches the head 316 of the CoS queue 110 at time ‘t’ 490,” i.e., the entire QBlock is scheduled for dequeuing as one packet – See [¶0039] and Fig. 4, and may have one length “when full to its normal ByteLimit” but “QBlock may have higher than its ByteLimit packet data enqueued (i.e. it may be overcomemitted)” – See [¶0041] e.g., “up to the size of the QBlock ring buffer itself which is a separably configurable parameter” – See [¶0042] , whereby if “"TimeQuantum" attribute may be used to indicate the time it would take to transmit ByteLimit bytes at a line rate on the output port 160” – See [¶0043] then the first bandwidth may be determined based on the ByteLimit length of a packet that is added to a first queue set knowing that “the polling method for physical ports . . . simply attempts to transmit as fast as possible by queueing packets to the output port transmission ring buffer” – See [¶0062], then the first bandwidth is ByteLimit/TimeQuantum, i.e., the line rate of the output port 160 – See, e.g., Fig. 1) wherein the first queue set corresponds to the outbound interface (e.g., as shown in Fig. 1 wherein “[e]ach CoS queue structure corresponds to an instance of a CoS queue attached to a WFQ instance” with “multiple CoS queues 110 attached to each WFQ scheduler 120” – See [¶0041] whereby a “set of per-CoS queues 110a to 110d queue packets for a plurality of subscriber devices. Each CoS queue 110 includes multiple QBlocks 112” or packets, each one “scheduled for availability to a Weighted Fair Queue (WFQ) scheduler 120 at a different time interval. When a QBlock 112 reaches the head of its respective CoS queue 110, the WFQ scheduler 120 transfers one-or-more packets from the QBlock 112 for transmission via a network port 160,” i.e., the outbound interface – See [¶0031]), and wherein determining, by the queue scheduling apparatus, the first scheduling parameter based on the first bandwidth and the first scheduling frequency comprises: in response to the first bandwidth being not less than the second bandwidth (the WQF/output traffic shaper/ token bucket “"FillRate" is a parameter in bytes per second at which the token bucket fills with credits. This is synonymous with "MaxRate,"” i.e., “the maximum sustained rate allowed for a subscriber's device” – See [¶0105], e.g., “typical FillRates are 1 Mbps, 10 Mbps, 100 Mbps.” – See [¶0106], and assume 10 Mbps being the first bandwidth not less than the second bandwidth) determining, by the queue scheduling apparatus, the first scheduling parameter based on a ratio of the first bandwidth to the first scheduling frequency (the “1 ms maximum rate transfer at [10Mbps] is approximately . . . 1250 B,” i.e., the ratio of the first bandwidth to the first scheduling frequency yields a first packet length of around 1000B; therefore “a minimum of 1000 B or 1 ms times the FillRate if that value is larger” would assure “maximum jitter is approximately 1 ms (this is derived from jitter sensitive voice data” with “worse case jitter for low rate services of approximately 4 ms” – See [¶0106] which is not the case because the first bandwidth being not less than the second bandwidth). Therefore, Claim 5 is anticipated by Gunner. Regarding Claim 6, dependent from Claim 2, Gunner further teaches the method according to claim 2, wherein the first bandwidth is determined based on a length of the packet that is on the outbound interface and that is scheduled to be dequeued (“The QBlock 112a at the head 316 of the CoS queue 110 is scheduled to be dequeued at current time "t," whereas the QB!ock 112n at the tail 314 of the CoS queue 110 is scheduled to be dequeued at the current time plus "n" times the interval” – See [¶0037]; furthermore, because “[a] "ByteLimit" attribute may be used to indicate the number of bytes which a QBlock 112 attached to this CoS queue 110 represents when it is full” – See [¶0042] and “[a] "TimeQuantum" attribute may be used to indicate the time it would take to transmit ByteLimit bytes at a line rate on the output port 160” – See [¶0043] whereby “the improved scheduler by enqueuing a packet into a QBlock 112 . . . has an enforced delay time that will produce a target transmission rate” aligned with the “n” time intervals, e.g. of 1ms – See [¶0058] because “[e]ach QBlock 112 represents an interval of transmit time, such as 1 ms of transmit time, when full to its normal ByteLimit” – See [¶0041]; then the first scheduling frequency is every 1 ms as shown in Fig. 3, the TimeQuantum is 1ms, and the first bandwidth is ByteLimit/ TimeQuantum, i.e., determined based on the length of the packet that is on the outbound interface in a case where the packet fills the CurrentActiveQBlock to the BytesLimit – See [¶0048]), and wherein determining, by the queue scheduling apparatus, the first scheduling parameter based on the first bandwidth and the first scheduling frequency comprises: in response to the first bandwidth being not less than the second bandwidth ((“[i]n the absence of congestion from other CoS queues sharing the output port, the flow does not end up with CurrentActiveQBlock lagging significantly behind CurrentTimeQblock” – See [¶0066], i.e., the packet rate for the first packet that is the first bandwidth matches packet rate for the second packet that is the second bandwidth when there is no congestion), determining, by the queue scheduling apparatus, the first scheduling parameter based on the second scheduling parameter, wherein the first scheduling parameter is greater than the second scheduling parameter (“A "ByteCount" attribute of a QBlock is the count of bytes from all packets in the QBlock” – See [¶0036] and “ByteCount is only increased as packets are enqueued” and “[d]ecrementing the ByteCount as packets are dequeued is avoided for efficiency (and some of the algorithms, such as QBlock full handling, depend on this to avoid potential packet reordering)” – See [¶0067], i.e., when “[e]ach CoS queue 110 includes multiple QBlocks 112. Each QBlock within a CoS queue 110 is a first-in-first-out (FIFO) queue scheduled for availability to a Weighted Fair Queue (WFQ) scheduler 120 at a different time interval” when the “QBlock 112 reaches the head of its respective CoS queue 110” – See [¶0031] and Fig. 3, then if a second packet is assigned to a CurrentTimeQblock immediately subsequent to the CurrentActiveQBlock head block carrying the first packet it means that the first packet filled-up the head QBlock to ByteLimit, therefore, the first scheduling parameter is determined based on the second scheduling parameter being enqueued in the next in scheduling time QBlock and the first scheduling parameter is greater than the second scheduling parameter because the first packet filled the head block to its ByteLimit while the second packet might not have filled the next in scheduling time QBlock – See, e.g., [¶0101](“ the input enqueue operation finds that the selected QBlock is full then it iterates over subsequent QBlocks to find the first non-full QBlock and adds the packet to that QBlock queue”)). Therefore, Claim 6 is anticipated by Gunner. Regarding Claim 9, dependent from Claim 6, Gunner further teaches the method according to claim 6, wherein determining, by the queue scheduling apparatus, that the first bandwidth matches the second bandwidth (e.g., based on the calculated “future time” as explained in Regarding Claim 2 supra) comprises: determining, by the queue scheduling apparatus, that a second scheduling frequency is not less than a third scheduling frequency (e.g., when both the second and the third scheduling frequency are once every 10ms, i.e., 10 times slower than the first scheduling frequency) wherein the second scheduling frequency indicates an actual quantity of scheduling times of the queue scheduling apparatus per unit of time (“FIG. 14 illustrates an example of a process that may be periodically executed in association with each hybrid WFQ scheduler to define the period over which the weighted CoS queues share bandwidth,” hence each queue needs to be correspondingly prioritized, whereby “[t]o provide correct weighted processing results, a time quantum is used ( e.g., 10 ms) during which byte counts are maintained for each CoS queue 110 and for the WFQ instance itself. These counters record the number of bytes sent during the current time quantum” and “[t]he time quantum method ensures that bytes sent are measured over a sufficiently long period to ensure a fair weighted result” – See [¶0137], therefore the second scheduling frequency of once every 10m, indicates an actual quantity of scheduling times of the queue scheduling apparatus per unit of time), and the third scheduling frequency is determined based on the first scheduling frequency (e.g., the third scheduling frequency is for calculating “QoS over burst intervals” whereby “[a]s long as the QoS (maximum rate) for a device is achieved over a time span of the order 10 ms, then smaller time spans where the rate varies are judged to not matter” and “[t]he period of inaccuracy can be tuned by configuring the packet burst dequeue count as well as periodicity parameters within the method that determine how often WRED and rate shaper states are recomputed. That configuration represents a tradeoff between QoS accuracy over small intervals (QoS jitter) and throughput per-CPU (since less QoS jitter implies more CPU cycles spent doing recomputation and so less CPU cycles available for forwarding packets)” – See [¶0088], i.e., the third scheduling frequency of every 10ms is determined based on the first scheduling frequency of every 1ms). Therefore, Claim 9 is anticipated by Gunner. Regarding Claim 10, dependent from Claim 1, further teaches the method according to claim 1, wherein: the first bandwidth is determined based on a length of the packet that is on the outbound interface and that is scheduled to be dequeued (“A "ByteLimit" attribute may be used to indicate the number of bytes which a QBlock 112 attached to this CoS queue 110 represents when it is full” – See [¶0042] and “A "TimeQuantum" attribute may be used to indicate the time it would take to transmit ByteLimit bytes at a line rate on the output port 160” – See [¶0043] whereby “the improved scheduler by enqueuing a packet into a QBlock 112 . . . has an enforced delay time that will produce a target transmission rate” – See [¶0058], e.g., when the first scheduling frequency is every 1 ms as shown in Fig. 3, the TimeQuantum is 1ms, and the first bandwidth is ByteLimit/ TimeQuantum, i.e., determined based on the length of the packet that is on the outbound interface when the packet fills the CurrentActiveQBlock – See [¶0048]); or Regarding Claim 11, Gunner teaches an apparatus as shown in Fig.21, wherein the apparatus comprises: at least one non-transitory memory storing instructions; and at least one processor coupled to the at least one non-transitory memory (“The gateway 2100 may include one or more controllers/ processors 2104, that may each include a central processing unit (CPU) for processing data and computer-readable instructions, and a memory 2106 for storing data and instructions. The memory 2106 may include volatile random access memory (RAM), non-volatile read only memory (ROM), and/or other types of memory” – See [¶0150]), wherein the instructions (“Computer instructions for operating the gateway 2100 and its various components may be executed by the controller(s)/processor(s) 2104, using the memory 2106 as temporary "working" storage at runtime. The computer instructions may be stored in a non-transitory manner in non-volatile memory 2106, storage 2108, or an external device. Alternatively, some or all of the executable instructions may be embedded in hardware or firmware in addition to or instead of software” – See [¶0151] and Fig. 21), when executed by the at least one processor, cause the apparatus (“FIG. 21 is a block diagram conceptually illustrating example components of a system including a broadband gateway that includes a network scheduler executing the improved queueing model” – See [¶0148]) to: execute the steps of the method recited in Claim 1 using the same language. Because Claim 1 is anticipated by Gunner, Claim 11 is also anticipated by Gunner. Regarding Claims 12 -14, dependent from Claim 11, each claim recites the same limitations as in Claims 2-4, using the same language, only applied to the apparatus of Claim 11. Because each of the claims 2-4 and 11 are anticipated by Gunner, Claims 12-14 are anticipated by Gunner. Regarding Claims 18 and 19, dependent from Claims 12, and 11, respectively, they merely recite the same limitations as Claims 9, and 10, respectively, using the same language, only applied to the apparatus of Claims 12 and 11. Because each of the Claims 9-12 is anticipated by Gunner, Claims 18 and 19 are also anticipated by Gunner. Regarding Claim 20, teaches a non-transitory computer-readable storage medium, comprising instructions, a program, or code, wherein when the instructions, the program, or the code is executed on a computer, the computer is enabled to perform operations (“Computer instructions for operating the gateway 2100 and its various components may be executed by the controller(s)/processor(s) 2104, using the memory 2106 as temporary "working" storage at runtime. The computer instructions may be stored in a non-transitory manner in non-volatile memory 2106, storage 2108, or an external device. Alternatively, some or all of the executable instructions may be embedded in hardware or firmware in addition to or instead of software” – See [¶0151] and Fig. 21) comprising: the steps recited in Claim 1, using the same language. Because Claim 1 is anticipated by Gunner, Claim 20 is anticipated by Gunner. In sum, Claims 1-6, 9-14, and 18-20 are rejected under 35 U.S.C. §102(a)(2) as anticipated by Gunner. 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. 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. This application currently names joint inventors. In considering patentability of the claims the examiner presumes that the subject matter of the various claims was commonly owned as of the effective filing date of the claimed invention(s) absent any evidence to the contrary. Applicant is advised of the obligation under 37 CFR 1.56 to point out the inventor and effective filing dates of each claim that was not commonly owned as of the effective filing date of the later invention in order for the examiner to consider the applicability of 35 U.S.C. 102(b)(2)(C) for any potential 35 U.S.C. 102(a)(2) prior art against the later invention. Claims 7-8, and 15-17 are rejected under 35 U.S.C. 103 as being unpatentable over Gunner as applied to claims 6 and 12 above, and further in view of Amou et al., U.S. Patent Application Publication No. 2002/0097734 (hereinafter Amou). Regarding Claim 7, dependent from Claim 6, anticipated by Gunner, the method in Gunner, teaching that the first scheduling parameter not less than the second scheduling parameter, as explained in Regarding Claim 6 supra, does not further teach the method according to claim 6, wherein determining, by the queue scheduling apparatus, the first scheduling parameter based on the second scheduling parameter comprises: determining, by the queue scheduling apparatus, the first scheduling parameter from a second candidate scheduling parameter set based on the second scheduling parameter, wherein the second candidate scheduling parameter set3 comprises a plurality of second candidate scheduling parameters, and the first scheduling parameter is a second candidate scheduling parameter that is in the second candidate scheduling parameter set. Amou, like Gunner, teaches “a packet transferring apparatus to which the WFQ algorithm is applied” – See [¶0016] and Fig. 19, similar to Fig. 1 in Gunner, wherein “the scheduled output time of the head packet (packet to be outputted first) of each queue block (e.g., a value of Fi of the queue block 101-i) is calculated based on the following Equations (1) and (2), and a queue block holding a packet to be outputted at the highest priority is selected in accordance with the obtained scheduled output times of the head packets of respective queue blocks 101-1 to 101-n” – See [¶0010] wherein Fi are similar to the calculated “future time” in Gunner as “max{F'i, ti} means that a larger value (later time) is selected as a calculation reference from the scheduled output time F'i of the head packet last outputted from the queue block 101-i and the arrival time ti of a packet sequel to the head packet in the same queue block 101-I” depending on Li/ri, the “transfer time required when a packet with a packet length of Li is transmitted in the reserved bandwidth ri” – See [¶0012]. In addition, like the 1ms first scheduling frequency in Gunner, here, “Fi is subjected to an incrementing processing at every operation of packet selection” whereby “each time a single packet is selected and outputted to the network, calculation of Fi based on the new condition (using Equations (1) and (2)) is effected so as to carry out packet selection processing.” – See [¶0015], i.e., “the value of Fi is calculated from the scheduled output time F'i of a packet which was outputted in the preceding step” – See [¶0023]. Amou further teaches causes for which the deviation of the “future time,” Fi, in WFQ algorithm “becomes larger than a predetermined constant time, . . ., with the result that overflow can be brought about” – See [¶0017] resulting, e.g., in “the queue in which overflow is brought about is continuously selected with priority” – See [¶0019] and “other queue blocks are unreasonably restricted in assignment of a bandwidth utilized for packet transmission, with the result that it becomes impossible to guarantee the bandwidth reservation for all of the queue blocks” – See [¶0020]. Amou further teaches determining, by the queue scheduling apparatus, the first scheduling parameter from a second candidate scheduling parameter set based on the second scheduling parameter (“the packet length in terms of a calculation of the WFQ algorithm is intended not to include the length of the header below the certain layer” causing “disagreement between the data transmission speed in terms of estimation based on calculation and the real transmission speed, depending on which portion of the packet information is to be included in a target of transmission upon designating the reserved bandwidth or which portion of the real packet is to be included in an object of WFQ calculation as the packet length Li” – See [¶0027]; therefore “identification information such as a header (IP header, MAC header or the like), a preamble or the like is added to the packet, and a transmission speed of the packet is determined in accordance with the transferred data size including the header information” – See [¶0026], i.e., a second candidate scheduling parameter set comprising the additional possible headers, e.g., lower layer technology dependent, added to a packet length Li, i.e., the second scheduling parameter, represent a plurality of second candidate scheduling parameters to be considered as the first parameter in order to alleviate the deviation from the real time output rate and its queue overflow effect). Amou teaches other processing adjusting a packet length that affects the fairness of the WFQ algorithm (“an addition-deletion processing (transfer media converting processing, VLAN tag processing of Ethernet, a header processing to an option of IPv6) and so on are selectively effected depending on the necessity in the packet transferring apparatus” – See [¶0028]). Amou teaches the first scheduling parameter is a second candidate scheduling parameter that is in the second candidate scheduling parameter set and that is not less than the second scheduling parameter (“In expectation of the above header addition-deletion processing, the real transmission speed and the packet length determined by the reserved bandwidth may be estimated” although “estimation can result in increase of processing load. In particular, a trouble can be caused when the transmission speed of the packet is intended to be increased” – See id.; therefore, a person of ordinary skills in the art would choose the first scheduling parameter to be one of the header/processing length adjusted packet lengths in the candidate set to optimize for WFQ fairness and computation overload; furthermore, the Li used in Fi calculation can not be less than one of these candidates because of non-zero length of any header information and in expectation of possible increase in the transmission speed of the next packet). Thus, Gunner and Amou each discloses a scheduler applying the WFQ algorithm to determine a fair allocation of an enqueued packet to a queue so that dequeuing/output line transmission happens at a guaranteed packet rate. A person of ordinary skill in the art before the effective filing date of the claimed invention would have understood that the step of adjusting/increasing a packet length as a second scheduling parameter with its associated second candidate scheduling parameter set comprising possible lower layer headers and/or addition-deletion processing, as taught in Amou, and taking the increased packet length as the first scheduling parameter, i.e., the packet length used for computing scheduler parameters as taught in Gunner and in Amou, could be accomplished because both methods use the same WFQ algorithm for the packet scheduler. Furthermore, a person of ordinary skill in the art would have been able to carry out the combination through techniques known in the art. Finally, the combination achieves the predictable result of reducing queue overflow and respecting the guarantee of bandwidth reservation and bandwidth assignment in a fair manner, which are originally intended in the WFQ algorithm, as taught by Amou. Therefore, Claim 7 is obvious over Gunner in view of Amou. Regarding Claim 8, dependent from Claim 6, anticipated by Gunner, the method in Gunner does not further teach wherein determining, by the queue scheduling apparatus, the first scheduling parameter based on the second scheduling parameter comprises: determining, by the queue scheduling apparatus, the first scheduling parameter based on a sum of the second scheduling parameter and a preset step. Amou further teaches determining, by the queue scheduling apparatus, the first scheduling parameter based on a sum of the second scheduling parameter and a preset step (“one reason of the disagreement between an output link speed, R and the actual transmission speed of the network is that, when a value of the packet length utilized in the calculation based on the WFQ algorithm is handled, a value of a header length added in a layer lower than the IP layer or the ATM layer is sometimes not taken into account” – See [¶0025], therefore a person of ordinary skills in the art would add this header, i.e., a preset step, to the value of the packet length utilized in the calculation). Thus, Gunner and Amou each discloses a scheduler applying the WFQ algorithm to determine a fair allocation of an enqueued packet to a queue so that dequeuing/output line transmission happens at a guaranteed packet rate. A person of ordinary skill in the art before the effective filing date of the claimed invention would have understood that the step of adjusting the packet length by adding the header size to the packet length when determining the queue block allocation in order to minimize the deviation of the scheduled output time from the real time when output happens, as taught by Amou, could have been combined with the determination of the first scheduling parameter based on the second scheduling parameter taught in Gunner, because both methods use the same WFQ algorithm for the packet scheduler. Furthermore, a person of ordinary skill in the art would have been able to carry out the combination through techniques known in the art. Finally, the combination achieves the predictable result of reducing queue overflow and respecting the guarantee of bandwidth reservation and bandwidth assignment in a fair manner, which are originally intended in the WFQ algorithm, as taught by Amou. Therefore, Claim 8 is obvious over Gunner in view of Amou. Regarding Claim 15, dependent from Claim 12, anticipated by Gunner, Gunner in view of Amou further teaches the apparatus according to claim 12 (see also Fig. 15 of Amou), wherein the instructions, when executed by the at least one processor, further cause the apparatus to: in response to the first bandwidth being not less than the second bandwidth, determine the first scheduling parameter based on the second scheduling parameter, wherein the first scheduling parameter is greater than the second scheduling parameter, e.g., when the packet length used in calculating the “future time” as taught in Gunner, is adjusted by adding lower layer(s) header(s), as taught in Amou and explained supra. Therefore, Claim 15 is obvious over Gunner in view of Amou. Regarding Claims 16 and 17, dependent from Claim 15, each claim merely recites the same limitations as in Claims 7 and 8, only applied to the apparatus of Claim 15. Because each of Claims 7-8 and 15 is obvious over Gunner in view od Amou, Claims 16-17 are obvious over Gunner in view of Amou. In sum, Claims 7-8, and 15-17 are rejected under 35 U.S.C. §103 as obvious over Gunner in view of Amou. Conclusion The prior art made of record and not relied upon is considered pertinent to applicant's disclosure: An et al., China Patent Application Publication CN1518296 (same Assignee) describing integrated queue scheduling to support multiple services the speed at which the message in different class comes the queue relative to the first priority transmitted group is limited by the predefined first speed; Ruan et al., China Patent Application Publication CN 202111070148 discloses a scheduler for time sensitive networks Pathakota et al., U.S. Patent Application Publication No. 2016/0285777 discloses method and apparatus to selectively dequeue a packet from the input component, to be sent to an output component, based on whether the credit value for the output component satisfies a credit threshold; Zhang, U.S. Patent Publication No. 8,467,401 discloses packet scheduler for scheduling packets of variable length; Cheng, U.S. Patent Application Publication No. 2024/0214323 discloses receiving a packet sent by a second network device; forwarding, after buffering the received packet for a preset time duration, the received packet for deterministic transmission to the WAN; Patel et al., U.S. Patent Publication No. 10,547,561 discloses queuing system for network devices; Frink, U.S. Patent Application Publication No. 2020/0007454 discloses techniques for a queuing system for network devices; Benacer et al., "A High-Speed, Scalable, and Programmable Traffic Manager Architecture for Flow-Based Networking," in IEEE Access, vol. 7, pp. 2231-2243, 2019, doi: 10.1109/ACCESS.2018.2886230; Parekh et al., "A generalized processor sharing approach to flow control in integrated services networks: the single-node case," in IEEE/ACM Transactions on Networking, vol. 1, no. 3, pp. 344-357, June 1993, doi: 10.1109/90.234856. Any inquiry concerning this communication or earlier communications from the examiner should be directed to LUCIA GHEORGHE GRADINARIU whose telephone number is (571)272-1377. The examiner can normally be reached Monday-Friday 9:00am - 5:00pm EST. 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, Joseph AVELLINO can be reached at (571)272-3905. 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. /L.G.G./Examiner, Art Unit 2478 /JOSEPH E AVELLINO/Supervisory Patent Examiner, Art Unit 2478 1 Gunner further teaches a “rate shaper” in the downstream as a “virtual port” in Fig. 5, and that “the output processing algorithm may include computation of the aggregate rate shaper” whereby “the aggregate is used to represent a downstream bandwidth restriction and where that restriction point is a network element (a bridge/switch, router, etc.) which has limited packet buffering capability” – See [¶0060] and “the method is enhanced to police the MaxRate configured for the aggregate rate shaper” i.e., police the rate at which a packet on an outbound interface is dequeued, e.g., by “test[ing] whether each [shaper] is allowed to send based on its token bucket state” – See [¶0062] whereby “different rate shapers 550 may shape packet rates to accommodate different downstream packet rates after a packet is transmitted over a network via the port 160” e.g., “bandwidth restrictions based on conditions of a network that the packet must traverse” and “the need to shape the output traffic to control jitter to accommodate a downstream destination device's buffer capacity (e.g., the buffer capacity of a subscriber device), where the jitter is an expression of the variation in the packet rate to that destination” – See [¶0063]. 2 This limitation is interpreted in light of the Specification stating that the “first scheduling parameter indicates a length of a packet scheduled each time, namely, a maximum length of the packet that can be dequeued by the queue scheduling apparatus in each time of scheduling” – See [¶0006]; a maximum length of the packet that can be dequeued by the queue scheduling apparatus in each time of scheduling is equivalent to the ByteLimit of a QBlock polled/dequeued every 1ms schedule in Gunner, also stating that “[a]ttempting to poll from an empty QBlock is computationally inexpensive” – See [¶0067] i.e., dequeuing happens at the first scheduling frequency of once every 1ms. 3 The Specification states that “the second candidate scheduling parameter set and the first candidate scheduling parameter set may be a same set” – See [¶0089].
Read full office action

Prosecution Timeline

Sep 12, 2024
Application Filed
Jul 07, 2026
Non-Final Rejection mailed — §102, §103, §112 (current)

Precedent Cases

Applications granted by this same examiner with similar technology

Patent 12610377
RESOURCE SELECTION FOR MULTIPLE HARQ PROCESSES
3y 5m to grant Granted Apr 21, 2026
Patent 12550075
ORTHOGONAL FREQUENCY DIVISION MULTIPLE ACCESS POWER CONTROL METHOD AND RELATED ACCESS POINT
2y 8m to grant Granted Feb 10, 2026
Patent 12425884
SYSTEM AND METHOD FOR CROSS-LAYER OPTIMIZATION OF UPLINK DETECTION THRESHOLDS
2y 3m to grant Granted Sep 23, 2025
Study what changed to get past this examiner. Based on 3 most recent grants.

Strategy Recommendation AI-generated — please review before filing

Get a prosecution strategy drawn from examiner precedents, rejection analysis, and claim mapping.
Typically takes 5-10 seconds — AI-generated, attorney review required before filing

Prosecution Projections

1-2
Expected OA Rounds
36%
Grant Probability
78%
With Interview (+41.7%)
2y 8m (~10m remaining)
Median Time to Grant
Low
PTA Risk
Based on 11 resolved cases by this examiner. Grant probability derived from career allowance rate.

Sign in with your work email

Enter your email to receive a magic link. No password needed.

Personal email addresses (Gmail, Yahoo, etc.) are not accepted.

Free tier: 3 strategy analyses per month