Optimization #2218 » 0001-Leave-TSO-enabled-for-Linux-AF_PACKET-runmode.patch
src/util-ioctl.c | ||
---|---|---|
}
|
||
if (other) {
|
||
const char *lro = "unset", *gro = "unset", *tso = "unset", *gso = "unset";
|
||
const char *lro = "unset", *gro = "unset", *gso = "unset";
|
||
const char *sg = "unset";
|
||
int other_ret = 0;
|
||
#ifdef ETHTOOL_GGRO
|
||
... | ... | |
other_ret = 1;
|
||
}
|
||
#endif
|
||
#ifdef ETHTOOL_GTSO
|
||
if (GetEthtoolValue(dev, ETHTOOL_GTSO, &value) == 0 && value != 0) {
|
||
tso = "SET";
|
||
other_ret = 1;
|
||
}
|
||
#endif
|
||
#ifdef ETHTOOL_GGSO
|
||
if (GetEthtoolValue(dev, ETHTOOL_GGSO, &value) == 0 && value != 0) {
|
||
gso = "SET";
|
||
... | ... | |
#endif
|
||
if (other_ret == 0) {
|
||
SCLogPerf("NIC offloading on %s: SG: %s, GRO: %s, LRO: %s, "
|
||
"TSO: %s, GSO: %s", dev, sg, gro, lro, tso, gso);
|
||
"GSO: %s", dev, sg, gro, lro, gso);
|
||
} else {
|
||
SCLogWarning(SC_ERR_NIC_OFFLOADING, "NIC offloading on %s: SG: %s, "
|
||
" GRO: %s, LRO: %s, TSO: %s, GSO: %s. Run: "
|
||
"ethtool -K %s sg off gro off lro off tso off gso off",
|
||
dev, sg, gro, lro, tso, gso, dev);
|
||
" GRO: %s, LRO: %s, GSO: %s. Run: "
|
||
"ethtool -K %s sg off gro off lro off gso off",
|
||
dev, sg, gro, lro, gso, dev);
|
||
ret = 1;
|
||
}
|
||
}
|
||
... | ... | |
ldev->offload_orig |= OFFLOAD_FLAG_GRO;
|
||
}
|
||
#endif
|
||
#ifdef ETHTOOL_GTSO
|
||
if (GetEthtoolValue(dev, ETHTOOL_GTSO, &value) == 0 && value != 0) {
|
||
SCLogPerf("%s: disabling tso offloading", dev);
|
||
SetEthtoolValue(dev, ETHTOOL_STSO, 0);
|
||
ldev->offload_orig |= OFFLOAD_FLAG_TSO;
|
||
}
|
||
#endif
|
||
#ifdef ETHTOOL_GGSO
|
||
if (GetEthtoolValue(dev, ETHTOOL_GGSO, &value) == 0 && value != 0) {
|
||
SCLogPerf("%s: disabling gso offloading", dev);
|
||
... | ... | |
SetEthtoolValue(dev, ETHTOOL_SGRO, 1);
|
||
}
|
||
#endif
|
||
#ifdef ETHTOOL_GTSO
|
||
if (ldev->offload_orig & OFFLOAD_FLAG_TSO) {
|
||
SCLogPerf("%s: restoring tso offloading", dev);
|
||
SetEthtoolValue(dev, ETHTOOL_STSO, 1);
|
||
}
|
||
#endif
|
||
#ifdef ETHTOOL_GGSO
|
||
if (ldev->offload_orig & OFFLOAD_FLAG_GSO) {
|
||
SCLogPerf("%s: restoring gso offloading", dev);
|
||
... | ... | |
*
|
||
* \param Name of link
|
||
* \param csum check if checksums are offloaded
|
||
* \param other check if other things are offloaded: TSO, GRO, etc.
|
||
* \param other check if other things are offloaded: LRO, GRO, etc.
|
||
* \retval -1 in case of error, 0 if none, 1 if some
|
||
*/
|
||
int GetIfaceOffloading(const char *dev, int csum, int other)
|