Link Quality Report
# Link Quality Report

The Link Quality Report (LQR) protocol is a part of the Point-to-Point Protocol (PPP), which allows two computers to connect to each other. LQR allows peers at either end of the PPP link to assess the state and quality of the PPP link.

LQR only transmits counts of packets sent, received, and rejected with errors. It does not report on signal noise or attenuation.

In order to produce Link Quality Reports, a PPP peer has to implement Link Quality Monitoring. Link Quality Monitoring consists of maintaining a number of counters. These counters include:

* Packets Transmitted
* Packets received
* Octets (or bytes) transmitted
* Octets received
* Number of LQRs transmitted
* Number of LQRs received
* Number of Octets received without error.

The use of LQRs are negotiated when the PPP link is first established. Any peer that wants to receive LQR packets signals this by sending a PPP configuration Option with the following data:

* Type - always 4
* Length - always 8
* Quality Protocol - 0xC025 for Link Quality Reports
* Reporting period - the maximum time between LQR packets, in hundredths of seconds. The remote peer may send them more often. If set to zero, then the remote peer should send an LQR whenever it receives an LQR from the other peer.

An LQR is one packet containing the counters above, as well as:

* a Magic Number that is used to detect looping conditions
* the last transmitted count of LQRs, packets and Octets transmitted
* number of packets discarded
* Number of packets found to have errors.

In addition, the receiving peer will add the following fields to the LQR packet when it arrives:

* The number of LQRs that have been received.
* The number of Packets that have been received
* the number of received packets discarded
* The number of received packets found to have errors
* the number of received Octets.

These numbers come from the MIB database that the PPP receive logic maintains. They are saved for use in the next LQR packet that the peer sends.

## Problems with LQRs

A number of PPP implementations cause errors with LQR generation. Other implementations negotiate correctly for LQRs, but then fail to send them. This leads to the local peer determining that the PPP link has failed. This has led to most users using the less capable LCP echos to detect whether the link is still functioning. LCP echos cannot provide the information that LQR could provide.

