Referring to the G.992.3 standard (and other DSL protocol specs), what determines the values of the DSL B and M framing parameters? - see table 7-6 in G.992.3.
I see that B (assuming for simplicity only one bearer) 0 ≤ B ≤ 254. So quite short, not long enough to take 1500 bytes. And then you must have some RS CRC bytes following that frame payload.
The value of L does not control the value of B - is that correct? Because when for example you’re transmitting data, passing it down to the lower layer, the lower layer can keep coming back multiple times sucking more bits from the upper layer until B+R (simplified) bytes have been sent. B clearly controls how often CRCs are appended into the data stream, so smaller B, more RS overhead and better error protection. You don’t want very large values of B because the link is vulnerable to corruption at all points in the longer run of data and the probability of a corrupt frame is higher.
My own framing parameters for modem #1:
Down Up
ADSL2 framing
Bearer 0
B: 18 78
M: 8 1
T: 5 1
R: 16 16
S: 1.7708 3.8579
L: 759 197
D: 1 8
So looking at the downstream, first column, every payload is M * ( B + 1) = 8 * ( 16 + 1 ) = 136 bytes and the CRC appended to that is R = 16 bytes, and for upstream: 79 bytes of payload and 16 bytes of CRC. Much more RS error correction capability for the upstream, possibly because of the fact that it’s running at a higher SNRM and possibly also due to the fact that there’s no upstream PhyR (ie ADSL2 L2ReTX), so it really needs more error correction capability.
But why isn’t M = 1 always? Why do we need it, as it seems that only the value of M * ( B + 1) matters?