Some older Linuxes appear to have the ethtool ioctls but not define
ETHTOOL_GTSO, ETHTOOL_GUFO, or ETHTOOL_GGSO.
ret = iface_ethtool_ioctl(handle, ETHTOOL_GTSO, "ETHTOOL_GTSO");
if (ret == -1)
return -1;
if (ret)
return 1; /* TCP segmentation offloading on */
ret = iface_ethtool_ioctl(handle, ETHTOOL_GTSO, "ETHTOOL_GTSO");
if (ret == -1)
return -1;
if (ret)
return 1; /* TCP segmentation offloading on */
ret = iface_ethtool_ioctl(handle, ETHTOOL_GUFO, "ETHTOOL_GUFO");
if (ret == -1)
return -1;
if (ret)
return 1; /* UDP fragmentation offloading on */
ret = iface_ethtool_ioctl(handle, ETHTOOL_GUFO, "ETHTOOL_GUFO");
if (ret == -1)
return -1;
if (ret)
return 1; /* UDP fragmentation offloading on */
/*
* XXX - will this cause large unsegmented packets to be
* handed to PF_PACKET sockets on transmission? If not,
/*
* XXX - will this cause large unsegmented packets to be
* handed to PF_PACKET sockets on transmission? If not,
return -1;
if (ret)
return 1; /* generic segmentation offloading on */
return -1;
if (ret)
return 1; /* generic segmentation offloading on */
#ifdef ETHTOOL_GFLAGS
ret = iface_ethtool_ioctl(handle, ETHTOOL_GFLAGS, "ETHTOOL_GFLAGS");
#ifdef ETHTOOL_GFLAGS
ret = iface_ethtool_ioctl(handle, ETHTOOL_GFLAGS, "ETHTOOL_GFLAGS");