On 2019-11-08, Peter J. Philipp <p...@centroid.eu> wrote: > Hi, > > I have a Unifi Security Gateway that replaced an ER-8 because the latter > was too loud after all. I have a 100/40 VDSL connection and in tests with > pppoe and routing from cnmac0 to cnmac1 gets me ~90 Mbit/s download. I want > to claim that last 10% somehow and I have hacked the if_pppoe.c driver a > little > but that didn't give me much more performance. In fact I just was able to > get rid of an m_adj() which isn't all that much savings. > > It seems to me in the cnmac driver that there is 4 bits set for ipoffp1 which > is weirdly expressed as ETHER_HDR_LEN + 1 which I assume is 0xf or all bits > turned on in 4 bits. These 4 bits are then OR'ed in cn30xxpko_cmd_word0() at > bit 24, 25, 26 and 27. There is a gap before bit 31 starts making me hopeful > that perhaps there is functionality for IP offloading aka CSUM_IPv4? > > I would be willing to explore this if someone who knows where the datasheet > of the cnmac ethernet is, would tell me where to get it. Is it available? > > Also do you know why this is seemingly convoluted in the driver? It doesn't > make sense to put ETHER_HDR_LEN + 1 in there does it? But turning on bits > 1 through 4 does make sense to me somewhat. Is this practice common?
The chip does have some offloading, however I'm pretty sure it needs a closed source component to use it. Not sure where to find more info.