Optimization #2218 » 0001-Leave-SG-enabled-for-Linux-AF_PACKET-runmode.patch
src/util-ioctl.c | ||
---|---|---|
if (other) {
|
||
const char *lro = "unset", *gro = "unset", *gso = "unset";
|
||
const char *sg = "unset";
|
||
int other_ret = 0;
|
||
#ifdef ETHTOOL_GGRO
|
||
if (GetEthtoolValue(dev, ETHTOOL_GGRO, &value) == 0 && value != 0) {
|
||
... | ... | |
other_ret = 1;
|
||
}
|
||
#endif
|
||
#ifdef ETHTOOL_GSG
|
||
if (GetEthtoolValue(dev, ETHTOOL_GSG, &value) == 0 && value != 0) {
|
||
sg = "SET";
|
||
other_ret = 1;
|
||
}
|
||
#endif
|
||
#ifdef ETHTOOL_GFLAGS
|
||
if (GetEthtoolValue(dev, ETHTOOL_GFLAGS, &value) == 0) {
|
||
if (value & ETH_FLAG_LRO) {
|
||
... | ... | |
}
|
||
#endif
|
||
if (other_ret == 0) {
|
||
SCLogPerf("NIC offloading on %s: SG: %s, GRO: %s, LRO: %s, "
|
||
"GSO: %s", dev, sg, gro, lro, gso);
|
||
SCLogPerf("NIC offloading on %s: GRO: %s, LRO: %s, "
|
||
"GSO: %s", dev, gro, lro, gso);
|
||
} else {
|
||
SCLogWarning(SC_ERR_NIC_OFFLOADING, "NIC offloading on %s: SG: %s, "
|
||
SCLogWarning(SC_ERR_NIC_OFFLOADING, "NIC offloading on %s: "
|
||
" GRO: %s, LRO: %s, GSO: %s. Run: "
|
||
"ethtool -K %s sg off gro off lro off gso off",
|
||
dev, sg, gro, lro, gso, dev);
|
||
"ethtool -K %s gro off lro off gso off",
|
||
dev, gro, lro, gso, dev);
|
||
ret = 1;
|
||
}
|
||
}
|
||
... | ... | |
ldev->offload_orig |= OFFLOAD_FLAG_GSO;
|
||
}
|
||
#endif
|
||
#ifdef ETHTOOL_GSG
|
||
if (GetEthtoolValue(dev, ETHTOOL_GSG, &value) == 0 && value != 0) {
|
||
SCLogPerf("%s: disabling sg offloading", dev);
|
||
SetEthtoolValue(dev, ETHTOOL_SSG, 0);
|
||
ldev->offload_orig |= OFFLOAD_FLAG_SG;
|
||
}
|
||
#endif
|
||
#ifdef ETHTOOL_GFLAGS
|
||
if (GetEthtoolValue(dev, ETHTOOL_GFLAGS, &value) == 0) {
|
||
if (value & ETH_FLAG_LRO) {
|
||
... | ... | |
SetEthtoolValue(dev, ETHTOOL_SGSO, 1);
|
||
}
|
||
#endif
|
||
#ifdef ETHTOOL_GSG
|
||
if (ldev->offload_orig & OFFLOAD_FLAG_SG) {
|
||
SCLogPerf("%s: restoring sg offloading", dev);
|
||
SetEthtoolValue(dev, ETHTOOL_SSG, 1);
|
||
}
|
||
#endif
|
||
#ifdef ETHTOOL_GFLAGS
|
||
if (ldev->offload_orig & OFFLOAD_FLAG_LRO) {
|
||
uint32_t value = 0;
|
- « Previous
- 1
- 2
- Next »