History log of /freebsd-10-stable/sys/dev/sfxge/sfxge_rx.c
Revision Date Author Comments
# 342475 26-Dec-2018 arybchik

MFC r312867

sfxge(4): cleanup: remvoe trailing tab

Sponsored by: Solarflare Communications, Inc.


# 311088 02-Jan-2017 arybchik

MFC r310760

sfxge(4): fix typo in pseudo header accessor function names

Sponsored by: Solarflare Communications, Inc.


# 311086 02-Jan-2017 arybchik

MFC r310756

sfxge(4): do not use enum type when values are bitmask

ICC complains that enumerated type mixed with another type.

Found by DPDK upstream build sanity check.

Sponsored by: Solarflare Communications, Inc.


# 311083 02-Jan-2017 arybchik

MFC r310752

sfxge(4): allow to have no NIC handle on Rx datapath in DPDK PMD

It is required to minimize RxQ context in the driver or avoid chaising
for the NIC handle in adapter (global per-interface) structure.

Sponsored by: Solarflare Communications, Inc.


# 310830 30-Dec-2016 arybchik

MFC r310627

sfxge(4): do not limit driver RSS table to RSS channels max

Specification of entire RSS table in the driver allows to spread traffic
more equally across CPUs/RSS channels if number of RSS channels is not
power of 2.

Sponsored by: Solarflare Communications, Inc.


# 301388 04-Jun-2016 arybchik

MFC r300607

sfxge(4): cleanup: update copyright to 2016

Sponsored by: Solarflare Communications, Inc.


# 301384 04-Jun-2016 arybchik

MFC r300135

sfxge(4): cleanup: remove trailing whitespaces

Sponsored by: Solarflare Communications, Inc.


# 301315 04-Jun-2016 arybchik

MFC r301105

sfxge(4): cope with code duplication on SW events composition

Sponsored by: Solarflare Communications, Inc.


# 301314 04-Jun-2016 arybchik

MFC r301075

sfxge(4): avoid code duplication in SW events definition

Sponsored by: Solarflare Communications, Inc.


# 301312 04-Jun-2016 arybchik

MFC r301065

sfxge(4): zero should be used as RxQ label in SW event

The buggy code was using the rxq index but should use the evq label
associated with the rxq. It was missed in r298735.

Sponsored by: Solarflare Communications, Inc.


# 298836 30-Apr-2016 arybchik

MFC r298735

sfxge(4): do not use RxQ index as label

Labels are limitted by 32 on EF10. It is not sufficient on powerful hosts.
Since only one RxQ is running over each EvQ, zero label may be used.

Reviewed by: gnn
Sponsored by: Solarflare Communications, Inc.
PR: 208267
Differential Revision: https://reviews.freebsd.org/D6121


# 284555 18-Jun-2015 arybchik

MFC: r283514

sfxge: add 7xxx NICs family support

Support 7xxx adapters including firmware-assisted TSO and VLAN tagging:

- Solarflare Flareon Ultra 7000 series 10/40G adapters:
- Solarflare SFN7042Q QSFP+ Server Adapter
- Solarflare SFN7142Q QSFP+ Server Adapter

- Solarflare Flareon Ultra 7000 series 10G adapters:
- Solarflare SFN7022F SFP+ Server Adapter
- Solarflare SFN7122F SFP+ Server Adapter
- Solarflare SFN7322F Precision Time Synchronization Server Adapter

- Solarflare Flareon 7000 series 10G adapters:
- Solarflare SFN7002F SFP+ Server Adapter

Support utilities to configure adapters and update firmware.

The work is done by Solarflare developers
(Andy Moreton, Andrew Lee and many others),
Artem V. Andreev <Artem.Andreev at oktetlabs.ru> and me.

Sponsored by: Solarflare Communications, Inc.


# 283209 21-May-2015 arybchik

MFC: r282996

sfxge: support Rx checksum offloads disabling

We can't disable it in HW, but we can ignore result.
Discard Rx descriptor checksum flags if Rx checksum offload is off.

Sponsored by: Solarflare Communications, Inc.


# 283206 21-May-2015 arybchik

MFC: r282940

sfxge: LRO may be done only if checksums are OK

Also it is cheaper to check Rx descriptor flags than TCP protocol in IP
header.

Sponsored by: Solarflare Communications, Inc.


# 283203 21-May-2015 arybchik

MFC: r282899

sfxge: add local variable with Rx descriptor flags

Sponsored by: Solarflare Communications, Inc.


# 281955 24-Apr-2015 hiren

MFC r275358 r275483 r276982 - Removing M_FLOWID by hps@

r275358:
Start process of removing the use of the deprecated "M_FLOWID" flag
from the FreeBSD network code. The flag is still kept around in the
"sys/mbuf.h" header file, but does no longer have any users. Instead
the "m_pkthdr.rsstype" field in the mbuf structure is now used to
decide the meaning of the "m_pkthdr.flowid" field. To modify the
"m_pkthdr.rsstype" field please use the existing "M_HASHTYPE_XXX"
macros as defined in the "sys/mbuf.h" header file.

This patch introduces new behaviour in the transmit direction.
Previously network drivers checked if "M_FLOWID" was set in "m_flags"
before using the "m_pkthdr.flowid" field. This check has now now been
replaced by checking if "M_HASHTYPE_GET(m)" is different from
"M_HASHTYPE_NONE". In the future more hashtypes will be added, for
example hashtypes for hardware dedicated flows.

"M_HASHTYPE_OPAQUE" indicates that the "m_pkthdr.flowid" value is
valid and has no particular type. This change removes the need for an
"if" statement in TCP transmit code checking for the presence of a
valid flowid value. The "if" statement mentioned above is now a direct
variable assignment which is then later checked by the respective
network drivers like before.

r275483:
Remove M_FLOWID from SCTP code.

r276982:
Remove no longer used "M_FLOWID" flag from mbuf.h and update the netisr
manpage.

Note: The FreeBSD version has been bumped.

Reviewed by: hps, tuexen
Sponsored by: Limelight Networks


# 280615 25-Mar-2015 arybchik

MFC: 279398

sfxge: compile out LRO if kernel is compiled without IPv4 and IPv6

Sponsored by: Solarflare Communications, Inc.
Approved by: gnn (mentor)

MFC: 279411

Unbreak 'make depend' with sfxge by removing debugging code activated in the
INET || INET6 case

X-MFC with: r279398
Pointyhat to: arybchik


# 280606 25-Mar-2015 arybchik

MFC: 280376

sfxge: remove obsolete Tx non-multi queue support

Tx multi queue is added in FreeBSD 8.0. So, the changeset drops earlier
versions support.

Sponsored by: Solarflare Communications, Inc.
Original Differential Revision: https://reviews.freebsd.org/D2081


# 280599 25-Mar-2015 arybchik

MFC: 280160

sfxge: add tunables to control LRO parameters on driver load time

Sponsored by: Solarflare Communications, Inc.
Approved by: gnn (mentor)


# 280596 25-Mar-2015 arybchik

MFC: 279351

sfxge: expect required init_state on data path and in periodic calls

With the patch applied the number of instruction events is 1% less and
number of mispredicted branch events is 5% less under multistream TCP
traffic load close to line rate.

Sponsored by: Solarflare Communications, Inc.
Approved by: gnn (mentor)


# 280585 25-Mar-2015 arybchik

MFC: 279179

sfxge: DMA allocated memory is set to zeros because of BUS_DMA_ZERO flag

It is not required to set it to zeros once again.

Sponsored by: Solarflare Communications, Inc.
Approved by: gnn (mentor)


# 280553 25-Mar-2015 arybchik

MFC: 279077

sfxge: style fixes

Use nitem() to get number of array elements.
Remove unused define.
Use TAB to indent.

Sponsored by: Solarflare Communications, Inc.
Approved by: gnn (mentor)


# 280539 25-Mar-2015 arybchik

MFC: 278939

sfxge: add driver context member with number of receive queues

Mainly to unify with similar member for transmit queues.

Sponsored by: Solarflare Communications, Inc.
Approved by: gnn (mentor)


# 280532 25-Mar-2015 arybchik

MFC: 278837

sfxge: remove inline specifiers

Now compiler does not need any help.
The patch does not change generated code.

Sponsored by: Solarflare Communications, Inc.
Approved by: gnn (mentor), glebius


# 280522 25-Mar-2015 arybchik

MFC: 278221

sfxge: Add macros to init, destroy, acquire, release and assert locks

Sponsored by: Solarflare Communications, Inc.
Approved by: gnn (mentor)


# 280502 25-Mar-2015 arybchik

MFC: 272328

Make size of Tx and Rx rings configurable

Required size of event queue is calculated now.

Submitted by: Andrew Rybchenko <arybchenko at solarflare.com>
Sponsored by: Solarflare Communications, Inc.


# 280501 25-Mar-2015 arybchik

MFC: 272325

cleanup: code style fixes

Remove trailing whitespaces and tabs.
Enclose value in return statements in parentheses.
Use tabs after #define.
Do not skip comparison with 0/NULL in boolean expressions.

Submitted by: Andrew Rybchenko <arybchenko at solarflare.com>
Sponsored by: Solarflare Communications, Inc.


# 284555 18-Jun-2015 arybchik

MFC: r283514

sfxge: add 7xxx NICs family support

Support 7xxx adapters including firmware-assisted TSO and VLAN tagging:

- Solarflare Flareon Ultra 7000 series 10/40G adapters:
- Solarflare SFN7042Q QSFP+ Server Adapter
- Solarflare SFN7142Q QSFP+ Server Adapter

- Solarflare Flareon Ultra 7000 series 10G adapters:
- Solarflare SFN7022F SFP+ Server Adapter
- Solarflare SFN7122F SFP+ Server Adapter
- Solarflare SFN7322F Precision Time Synchronization Server Adapter

- Solarflare Flareon 7000 series 10G adapters:
- Solarflare SFN7002F SFP+ Server Adapter

Support utilities to configure adapters and update firmware.

The work is done by Solarflare developers
(Andy Moreton, Andrew Lee and many others),
Artem V. Andreev <Artem.Andreev at oktetlabs.ru> and me.

Sponsored by: Solarflare Communications, Inc.


# 283209 21-May-2015 arybchik

MFC: r282996

sfxge: support Rx checksum offloads disabling

We can't disable it in HW, but we can ignore result.
Discard Rx descriptor checksum flags if Rx checksum offload is off.

Sponsored by: Solarflare Communications, Inc.


# 283206 21-May-2015 arybchik

MFC: r282940

sfxge: LRO may be done only if checksums are OK

Also it is cheaper to check Rx descriptor flags than TCP protocol in IP
header.

Sponsored by: Solarflare Communications, Inc.


# 283203 21-May-2015 arybchik

MFC: r282899

sfxge: add local variable with Rx descriptor flags

Sponsored by: Solarflare Communications, Inc.


# 281955 24-Apr-2015 hiren

MFC r275358 r275483 r276982 - Removing M_FLOWID by hps@

r275358:
Start process of removing the use of the deprecated "M_FLOWID" flag
from the FreeBSD network code. The flag is still kept around in the
"sys/mbuf.h" header file, but does no longer have any users. Instead
the "m_pkthdr.rsstype" field in the mbuf structure is now used to
decide the meaning of the "m_pkthdr.flowid" field. To modify the
"m_pkthdr.rsstype" field please use the existing "M_HASHTYPE_XXX"
macros as defined in the "sys/mbuf.h" header file.

This patch introduces new behaviour in the transmit direction.
Previously network drivers checked if "M_FLOWID" was set in "m_flags"
before using the "m_pkthdr.flowid" field. This check has now now been
replaced by checking if "M_HASHTYPE_GET(m)" is different from
"M_HASHTYPE_NONE". In the future more hashtypes will be added, for
example hashtypes for hardware dedicated flows.

"M_HASHTYPE_OPAQUE" indicates that the "m_pkthdr.flowid" value is
valid and has no particular type. This change removes the need for an
"if" statement in TCP transmit code checking for the presence of a
valid flowid value. The "if" statement mentioned above is now a direct
variable assignment which is then later checked by the respective
network drivers like before.

r275483:
Remove M_FLOWID from SCTP code.

r276982:
Remove no longer used "M_FLOWID" flag from mbuf.h and update the netisr
manpage.

Note: The FreeBSD version has been bumped.

Reviewed by: hps, tuexen
Sponsored by: Limelight Networks


# 280615 25-Mar-2015 arybchik

MFC: 279398

sfxge: compile out LRO if kernel is compiled without IPv4 and IPv6

Sponsored by: Solarflare Communications, Inc.
Approved by: gnn (mentor)

MFC: 279411

Unbreak 'make depend' with sfxge by removing debugging code activated in the
INET || INET6 case

X-MFC with: r279398
Pointyhat to: arybchik


# 280606 25-Mar-2015 arybchik

MFC: 280376

sfxge: remove obsolete Tx non-multi queue support

Tx multi queue is added in FreeBSD 8.0. So, the changeset drops earlier
versions support.

Sponsored by: Solarflare Communications, Inc.
Original Differential Revision: https://reviews.freebsd.org/D2081


# 280599 25-Mar-2015 arybchik

MFC: 280160

sfxge: add tunables to control LRO parameters on driver load time

Sponsored by: Solarflare Communications, Inc.
Approved by: gnn (mentor)


# 280596 25-Mar-2015 arybchik

MFC: 279351

sfxge: expect required init_state on data path and in periodic calls

With the patch applied the number of instruction events is 1% less and
number of mispredicted branch events is 5% less under multistream TCP
traffic load close to line rate.

Sponsored by: Solarflare Communications, Inc.
Approved by: gnn (mentor)


# 280585 25-Mar-2015 arybchik

MFC: 279179

sfxge: DMA allocated memory is set to zeros because of BUS_DMA_ZERO flag

It is not required to set it to zeros once again.

Sponsored by: Solarflare Communications, Inc.
Approved by: gnn (mentor)


# 280553 25-Mar-2015 arybchik

MFC: 279077

sfxge: style fixes

Use nitem() to get number of array elements.
Remove unused define.
Use TAB to indent.

Sponsored by: Solarflare Communications, Inc.
Approved by: gnn (mentor)


# 280539 25-Mar-2015 arybchik

MFC: 278939

sfxge: add driver context member with number of receive queues

Mainly to unify with similar member for transmit queues.

Sponsored by: Solarflare Communications, Inc.
Approved by: gnn (mentor)


# 280532 25-Mar-2015 arybchik

MFC: 278837

sfxge: remove inline specifiers

Now compiler does not need any help.
The patch does not change generated code.

Sponsored by: Solarflare Communications, Inc.
Approved by: gnn (mentor), glebius


# 280522 25-Mar-2015 arybchik

MFC: 278221

sfxge: Add macros to init, destroy, acquire, release and assert locks

Sponsored by: Solarflare Communications, Inc.
Approved by: gnn (mentor)


# 280502 25-Mar-2015 arybchik

MFC: 272328

Make size of Tx and Rx rings configurable

Required size of event queue is calculated now.

Submitted by: Andrew Rybchenko <arybchenko at solarflare.com>
Sponsored by: Solarflare Communications, Inc.


# 280501 25-Mar-2015 arybchik

MFC: 272325

cleanup: code style fixes

Remove trailing whitespaces and tabs.
Enclose value in return statements in parentheses.
Use tabs after #define.
Do not skip comparison with 0/NULL in boolean expressions.

Submitted by: Andrew Rybchenko <arybchenko at solarflare.com>
Sponsored by: Solarflare Communications, Inc.