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 »