
Solarflare
Server
Adapter
User
Guide
Solarflare
Adapters
on
FreeBSD
Issue
20
©
Solarflare
Communications
2017
309
The
FreeBSD
TCP/IP
stack
provides
a
large
TCP
segment
to
the
driver,
which
splits
the
data
into
MSS
size,
each
with
adjusted
sequence
space
and
a
hardware
calculated
checksum.
Enabling
TSO
will
reduce
CPU
utilization
on
the
transmit
side
of
a
TCP
connection
and
improve
peak
throughput,
if
the
CPU
is
fully
utilized.
Since
TSO
has
no
effect
on
latency,
it
can
be
enabled
at
all
times.
The
driver
has
TSO
enabled
by
default.
Therefore,
there
is
no
opportunity
to
improve
performance
from
the
default.
TSO
is
changed
dynamically
using
ifconfig
.
To
enable
TSO,
where
sfxge<n>
is
the
interface
name:
#
ifconfig
sfxge<n>
tso
To
disable
TSO:
#
ifconfig
sfxge<n>
‐
tso
Verification
of
the
TSO
setting
may
be
performed
by
running
ifconfig
with
no
options
and
checking
the
TSO
value
associated
with
the
interface.
The
change
in
TSO
can
be
made
to
persist
across
reboots
by
editing
the
/etc/rc.conf
file
and
adding
the
appropriate
parameter
to
the
single
line
of
interface
configuration
data.
For
example:
ifconfig_sfxge<n>="inet
<IPv4
address>
netmask
<netmask>
tso"
TCP
and
IP
checksum
offloads
must
be
enabled
for
TSO
to
work.
NOTE:
Solarflare
recommend
that
you
do
not
disable
this
setting.
TCP
Large
Receive
Offload
(LRO)
TCP
Large
Receive
Offload
(LRO)
is
a
feature
whereby
the
adapter
coalesces
multiple
packets
received
on
a
TCP
connection
into
a
single
larger
packet
before
passing
this
onto
the
network
stack
for
receive
processing.
This
reduces
CPU
utilization
and
improves
peak
throughput
when
the
CPU
is
fully
utilized.
The
effectiveness
of
LRO
is
bounded
by
the
interrupt
moderation
delay,
and
is
limited
if
interrupt
moderation
is
disabled
(see
).
Enabling
LRO
does
not
itself
negatively
impact
latency.
The
Solarflare
network
adapter
driver
enables
LRO
by
default.
LRO
is
changed
dynamically
using
ifconfig
.
To
enable
LRO,
where
sfxge<n>
is
the
interface
name:
#
ifconfig
sfxge<n>
lro
To
disable
LRO:
#
ifconfig
sfxge<n>
‐
lro
Verification
of
the
LRO
setting
may
be
performed
by
running
ifconfig
with
no
options
and
checking
the
LRO
value
associated
with
the
interface.
The
change
in
LRO
can
be
made
to
persist
across
reboots
by
editing
the
/etc/rc.conf
file
and
adding
the
appropriate
parameter
to
the
single
line
of
interface
configuration
data.
For
example: