
Solarflare
Server
Adapter
User
Guide
Solarflare
Adapters
on
Linux
Issue
20
©
Solarflare
Communications
2017
108
NOTE:
It
has
been
observed
that
as
RHEL6
boots
the
libvirtd
daemon
changes
the
default
forwarding
setting
such
that
LRO
is
disabled
on
all
network
interfaces.
This
behavior
is
undesirable
as
it
will
potentially
lower
bandwidth
and
increase
CPU
utilization
‐
especially
for
high
bandwidth
streaming
applications.
To
determine
if
LRO
is
enabled
on
an
interface:
ethtool
‐
k
ethX
If
IP
forwarding
is
not
required
on
the
server,
Solarflare
recommends
either:
–
Disabling
the
libvirtd
service
(if
this
is
not
being
used),
–
Or,
as
root
before
loading
the
Solarflare
driver:
sysctl
‐
w
net.ipv4.conf.default.forwarding=0
(This
command
can
be
loaded
into
/etc/rc.local
),
–
Or,
after
loading
the
Solarflare
driver,
turn
off
forwarding
for
only
the
Solarflare
interfaces
and
re
‐
enable
LRO:
sysctl
‐
w
net.ipv4.conf.ethX.forwarding=0
ethtool
‐
K
eth
X
lro
on
(where
X
is
the
id
of
the
Solarflare
interface).
Disabling
the
libvirtd
service
is
a
permanent
solution,
whereas
the
other
recommendations
are
temporary
and
will
not
persist
over
reboot.
LRO
should
not
be
enabled
if
IP
forwarding
is
being
used
on
the
same
interface
as
this
could
result
in
incorrect
IP
and
TCP
operation.
LRO
can
be
controlled
using
the
module
parameter
lro
.
Add
the
following
line
to
/
etc/modprobe.conf
or
add
the
options
line
to
a
file
under
the
/etc/modprobe.d
directory
to
disable
LRO:
options
sfc
lro=0
Then
reload
the
driver
so
it
picks
up
this
option:
rmmod
sfc
modprobe
sfc
The
current
value
of
this
parameter
can
be
found
by
running:
cat
/sys/module/sfc/parameters/lro
LRO
can
also
be
controlled
on
a
per
‐
adapter
basis
by
writing
to
this
file
in
sysfs
:
/sys/class/net/ethX/device/lro
•
To
disable
LRO:
echo
0
>
/sys/class/net/ethX/device/lro
•
To
enable
LRO:
echo
1
>
/sys/class/net/ethX/device/lro