Hi I've finally managed to get back to work on the bcm driver for Broadcom 440x chips. I think the RX packet loss/performance problem that people have with the driver from July is down to how I am accounting for a 30byte header that the chip prepends to an incoming packet.
At present, the driver preallocates a load of mbuf clusters for the chip to DMA into. The chip then loads the mbuf cluster with this 30byte header followed by the real packet. I then account for this header by doing an m_adj(m, 30) before if_input(). However, this doesn't seem to work all the time. Looking at the code for m_adj I don't think it is meant for use with mbuf clusters. Is there a tidy way of trimming this header off from the mbuf cluster? I'm going to first try manually copying stuff to confirm that this is the problem and then try m_pullup followed by m_adj. Thanks Duncan -- ________________________________________________________________________ Duncan Barclay | [EMAIL PROTECTED] | [EMAIL PROTECTED]| _______________________________________________ [EMAIL PROTECTED] mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-hackers To unsubscribe, send any mail to "[EMAIL PROTECTED]"

