Method and apparatus for automatic rate adaptation in a DOCSIS upstream
First Claim
1. A process for automatically altering the data rate on a logical channel with changing noise conditions, comprising:
- 1) resetting a flawed packet counter for said logical channel;
2) resetting a total packets received counter for said logical channel;
3) receiving a packet on said logical channel, and incrementing the total packet received counter;
4) processing error detection data in said packet to determine if there is an error in the packet, and, if so, incrementing said flawed packet counter;
5) comparing the count in said total packet counter to a number representing the desired number of packets to be received before a determination of packet loss percentage is made;
6) if the number of packets received is less than the desired number, returning to step 3;
7) if the number of packets received is equal to or exceeds the desired number of packets received, calculating a packet loss percentage by dividing the number of flawed packets by the total number of packets received and comparing the packet loss percentage to one or more packet loss thresholds wherein the comparison includesA) first comparing said packet loss percentage to a first threshold and calculating said first threshold by evaluating the expression;
packet_loss_required*(1+TH1)where packet_loss_required is a programmable number representing the desired maximum packet loss percentage and TH1 is a constant representing a first hysteresis threshold;
B) if said packet loss percentage is greater than or equal to said first threshold, making the determination that a reduction in data rate is required and proceeding to step 9;
C) if said packet loss percentage is not greater than or equal to said first threshold, comparing said packet loss percentage to a second threshold and calculating said second threshold by evaluating the expression;
packet_loss_required*(1+TH2)where packet_loss_required is a programmable number representing the desired maximum packet loss percentage and TH2 is a constant representing a second hysteresis threshold;
D) if said packet loss percentage is less than or equal to said second threshold, making the determination that an increase in data rate is required and proceeding to step 9;
8) determining if a change in data rate throughput is required based upon the comparison of the packet loss percentage to the one or more packet loss thresholds; and
9) if a change in data rate throughput is required, generating a signal indicating the need for a change in data rate for said logical channel.
5 Assignments
0 Petitions
Accused Products
Abstract
A process for automatically monitoring the packet error rate of a logical channel in a cable television DOCSIS data transmission system and automatically altering the bit rate on the channel or sending a message to a cable operator recommending a change in burst profile and bit rate. The preferred embodiment of the process comprises determining the dominant noise type and SNR of the channel and selecting a set of burst profiles best adapted for the dominant noise type and selecting an initial burst profile based upon the SNR. Then the packet error rate of the channel is monitored and compared to one or more thresholds to decide whether a change in bit rate is required to bring the packet error rate within limits. If a change is bit rate is indicated, automatically selecting a new burst profile with an appropriately changed bit rate and automatically generating and sending a UCD message defining the channel'"'"'s new burst profile.
-
Citations
25 Claims
-
1. A process for automatically altering the data rate on a logical channel with changing noise conditions, comprising:
-
1) resetting a flawed packet counter for said logical channel; 2) resetting a total packets received counter for said logical channel; 3) receiving a packet on said logical channel, and incrementing the total packet received counter; 4) processing error detection data in said packet to determine if there is an error in the packet, and, if so, incrementing said flawed packet counter; 5) comparing the count in said total packet counter to a number representing the desired number of packets to be received before a determination of packet loss percentage is made; 6) if the number of packets received is less than the desired number, returning to step 3; 7) if the number of packets received is equal to or exceeds the desired number of packets received, calculating a packet loss percentage by dividing the number of flawed packets by the total number of packets received and comparing the packet loss percentage to one or more packet loss thresholds wherein the comparison includes A) first comparing said packet loss percentage to a first threshold and calculating said first threshold by evaluating the expression;
packet_loss_required*(1+TH1)where packet_loss_required is a programmable number representing the desired maximum packet loss percentage and TH1 is a constant representing a first hysteresis threshold; B) if said packet loss percentage is greater than or equal to said first threshold, making the determination that a reduction in data rate is required and proceeding to step 9; C) if said packet loss percentage is not greater than or equal to said first threshold, comparing said packet loss percentage to a second threshold and calculating said second threshold by evaluating the expression;
packet_loss_required*(1+TH2)where packet_loss_required is a programmable number representing the desired maximum packet loss percentage and TH2 is a constant representing a second hysteresis threshold; D) if said packet loss percentage is less than or equal to said second threshold, making the determination that an increase in data rate is required and proceeding to step 9; 8) determining if a change in data rate throughput is required based upon the comparison of the packet loss percentage to the one or more packet loss thresholds; and 9) if a change in data rate throughput is required, generating a signal indicating the need for a change in data rate for said logical channel. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A process for automatically altering the data rate on a logical channel with changing noise conditions, comprising:
-
1) resetting an average noise filter or accumulator or memory location for said logical channel; 2) resetting a total packets received counter for said logical channel; 3) receiving a packet on said logical channel, and incrementing the total packet received counter if said packet is not transmitted in response to a contention grant and discarding said packet if it is transmitted in response to a contention grant; 4) processing a received packet to determine the average noise if the packet has not been discarded and updating a running average noise value using the average noise in the packet; 5) comparing the count in said total packet counter to a number representing the desired number of packets to be received before a determination of channel signal-to-noise ratio is made; 6) if the number of packets received is less than the desired number, returning to step 3; and 7) if the number of packets received is equal to or exceeds the desired number of packets received, determining the SNR of the logical channel, determining if the SNR of the logical channel is less than the value SNR_REQUIRED*(1−
TH1) where SNIR_REQUIRED is a desired SNR for the logical channel and TH1 is a burst profile in use representing a first SNIR threshold, reducing the data rate of the logical channel if the SNR of the logical channel is lower than or equal to the value SNR_REQUIRED*(1−
TH1), and increasing the data rate of the logical channel if the SNR of the logical channel is greater than SNR_REQUIRED*(1−
TH2). - View Dependent Claims (9, 10, 11)
-
-
12. A process for automatically altering the data rate on a logical channel with changing noise conditions comprising:
-
1) resetting a total uncorrectable codeword count for said logical channel for an interval; 2) resetting a total codewords received count for said logical channel for said interval; 3) receiving a burst on said logical channel, and adding the total codewords received in the burst to the running total of codewords received for said interval; 4) receiving information regarding the number of uncorrectable codewords in said received burst and adding said number of uncorrectable codewords to a running total of uncorrectable codewords for the logical channel over said interval; 5) determining in any way whether said interval has been completed; 6) if said interval has not been completed, returning to step 3; 7) if said interval has been completed, calculating a byte error rate of said logical channel and comparing the byte error rate to one or more byte error rate thresholds, the byte error rate calculated by evaluating the expression
ByteErrorRate=[(T+1)*n_error]/[(k+2T)*n_total]where T is the number of maximum correctable bytes in an Reed-Solomon (hereafter R-S) codeword n_error is the total number of uncorrectable R-S codewords for said interval from predetermined interval usage code (IUC) burst type(s), n_total is the total number of received R-S codewords from predetermined IUC burst type(s) received within said time interval, k is the number of information bytes in an R-S codeword of a specific IUC; and
(k+2T) stands for;
the R-S codeword length in bytes;8) determining if a change in data rate throughput is required based upon the comparison of the byte error rate to the one or more byte error rate thresholds; and 9) if a change in data rate throughput is required, generating a signal indicating a need for a change in the data rate of said logical channel. - View Dependent Claims (13, 14, 15)
-
-
16. A process for automatically altering the data rate on a logical channel with changing noise conditions comprising:
-
1) resetting a total uncorrectable codeword count for said logical channel for an interval; 2) resetting a total codewords received count for said logical channel for said interval; 3) receiving a burst on said logical channel, and adding the total codewords received in the burst to the running total of codewords received for said interval; 4) receiving information regarding the number of uncorrectable codewords in said received burst and adding said number of uncorrectable codewords to a running total of uncorrectable codewords for the logical channel over said interval; 5) determining in any way whether said interval has been completed; 6) if said interval has not been completed, returning to step 3; 7) if said interval has been completed, calculating a bit error rate of said logical channel and comparing the bit error rate to one or more bit error rate thresholds, the bit error rate calculated by evaluating the expression
BER=[0.5*(T+1)*n_error]/[(k+2T)*n_total]where T is the number of maximum correctable bytes in an Reed-Solomon (hereafter R-S) codeword, n_error is the total number of uncorrectable R-S codewords for said interval from predetermined interval usage code (IUC) burst type(s), n total is the total number of received R-S codewords from predetermined IUC burst type(s) received within said time interval, k is the number of information bytes in an R-S codeword of a specific IUC; and
(k+2t) stands for;
the R-S codeword length in bytes;8) determining if a change in data rate throughput is required based upon the comparison of the bit error rate to the one or more byte error rate thresholds; and 9) if a change in data rate throughput is required, generating a signal indicating a need for a change in the data rate of said logical channel. - View Dependent Claims (17, 18, 19)
-
-
20. A process carried out in a cable modem termination system comprising the steps:
-
(1) powering up and measuring the signal-to-noise ratio (SNR) on a channel prior to transmitting any downstream grant messages authorizing cable modems to transmit on said channel; (2) selecting an initial burst profile from a table of burst profiles appropriate to said channel based upon a mode of operation of said channel, said selection based upon said SNR of said channel; (3) monitoring SNR of said channel and a rate that impulse noise is detected on said channel; (4) comparing the amount of impulse noise erasures to one or more erasure thresholds and deciding whether said logical channel is dominated by Average White Gaussian Noise (AWGN) or impulse noise, and selecting an appropriate set of burst profiles for said channel based upon the dominant noise type; (5) after cable modems start transmitting on said channel, determining a packet error rate for packets transmitted on said channel; (6) comparing the packet error rate to one or more thresholds and deciding whether a change in bit rate on said channel is advisable to bring said packet error rate within predetermined limits; (7) if a change is bit rate is indicated by step (6), automatically picking a new burst profile with an appropriately changed bit rate from said set of burst profiles selected in step 4. - View Dependent Claims (21, 22, 23, 24, 25)
-
Specification