Hello,
I am using NICDrv to test my GLDv3 driver. I encountered an interesting issue.
In the load/unload test, there are some packets for transmission from OS look
very strange, they are big TCP packets but OS doesn't indicate that they
require doing LSO.
I am using the standard way to retrieve checksum and lso flags, I am wondering
how can this happen?
Tom
Apr 3 12:10:06 euclid qlge: WARNING: large IPv4 TCP packet 3154, but lso not
set! mtu 1500 mss 0 pflags 0h lso_flags 0h
Apr 3 12:10:06 euclid qlge: WARNING: large IPv4 TCP packet 3426, but lso not
set! mtu 1500 mss 0 pflags 0h lso_flags 0h
if(qlge->chksum_cap)
{
hcksum_retrieve(mp, NULL, NULL, NULL, NULL, NULL, NULL, &pflags);
if (pflags!=0)
{
lso_info_get(mp, &mss, &lso_flags);
use_lso= (lso_flags == HW_LSO);
}
}
......
if((total_len > 1514)&&((!mss) || (!lso_flags)))
{
if(pkt_is_tcp(bp))
{
cmn_err(CE_WARN,"large IPv4 TCP packet %d, but lso not set! mtu %d"
"mss %d pflags %xh lso_flags %xh\n", total_len,
mtu,mss, pflags, lso_flags);
}
}
--
This message posted from opensolaris.org