#
3611ec60 |
| 18-Aug-2018 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r337646 through r338014.
|
#
e7e08444 |
| 18-Aug-2018 |
Navdeep Parhar <np@FreeBSD.org> |
cxgbe(4): Replace T4_PKT_TIMESTAMP with something slightly less hackish.
|
#
37310a98 |
| 11-Aug-2018 |
Navdeep Parhar <np@FreeBSD.org> |
cxgbe(4): Move all control queues to the adapter.
There used to be one control queue per adapter (the mgmtq) that was initialized during adapter init and one per port that was initialized later duri
cxgbe(4): Move all control queues to the adapter.
There used to be one control queue per adapter (the mgmtq) that was initialized during adapter init and one per port that was initialized later during port init. This change moves all the control queues (one per port/channel) to the adapter so that they are initialized during adapter init and are available before any port is up. This allows the driver to issue ctrlq work requests over any channel without having to bring up any port.
MFH: 2 weeks Sponsored by: Chelsio Communications
show more ...
|
#
e0cee12e |
| 11-Aug-2018 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r336870 through r337615.
|
#
3098bcfc |
| 11-Aug-2018 |
Navdeep Parhar <np@FreeBSD.org> |
cxgbe(4): Create two variants of service_iq, one for queues with freelists and one for those without.
MFH: 3 weeks Sponsored by: Chelsio Communications
|
#
14b841d4 |
| 11-Aug-2018 |
Kyle Evans <kevans@FreeBSD.org> |
MFH @ r337607, in preparation for boarding
|
#
f9c0a512 |
| 10-Aug-2018 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r337286 through r337585.
|
#
518bca2c |
| 09-Aug-2018 |
Navdeep Parhar <np@FreeBSD.org> |
cxgbe(4): Set fl_pktshift to 0 by default.
Sponsored by: Chelsio Communications
|
#
5fc0f72f |
| 09-Aug-2018 |
Navdeep Parhar <np@FreeBSD.org> |
cxgbe(4): Add support for high priority filters on T6+. They have their own region in the TCAM starting with T6, unlike previous chips where they were in the same region as normal filters.
These fi
cxgbe(4): Add support for high priority filters on T6+. They have their own region in the TCAM starting with T6, unlike previous chips where they were in the same region as normal filters.
These filters "hit" before anything else in the LE's lookup. The exact order is: a) High priority filters b) TOE's active region (TCAM and/or hash) c) Servers (TOE hw listeners) d) Normal filters
MFC after: 1 week Sponsored by: Chelsio Communications
show more ...
|
#
1979b511 |
| 07-Aug-2018 |
Navdeep Parhar <np@FreeBSD.org> |
cxgbe(4): Allow user-configured and driver-configured traffic classes to be used simultaneously. Move sysctl_tc and sysctl_tc_params to t4_sched.c while here.
MFC after: 3 weeks Sponsored by: Chels
cxgbe(4): Allow user-configured and driver-configured traffic classes to be used simultaneously. Move sysctl_tc and sysctl_tc_params to t4_sched.c while here.
MFC after: 3 weeks Sponsored by: Chelsio Communications
show more ...
|
Revision tags: release/11.2.0 |
|
#
c3fce948 |
| 25-May-2018 |
Navdeep Parhar <np@FreeBSD.org> |
cxgbe(4): Suppress a warning about code that is used only with options RATELIMIT.
Reported by: mmacy@
|
#
786099de |
| 24-May-2018 |
Navdeep Parhar <np@FreeBSD.org> |
cxgbe(4): Data path for rate-limited tx.
This is hardware support for the SO_MAX_PACING_RATE sockopt (see setsockopt(2)), which is available in kernels built with "options RATELIMIT".
Relnotes: Yes
cxgbe(4): Data path for rate-limited tx.
This is hardware support for the SO_MAX_PACING_RATE sockopt (see setsockopt(2)), which is available in kernels built with "options RATELIMIT".
Relnotes: Yes Sponsored by: Chelsio Communications
show more ...
|
#
9c707b32 |
| 24-May-2018 |
Navdeep Parhar <np@FreeBSD.org> |
cxgbe(4): Make FW4_ACK a shared CPL. ETHOFLD in the base driver will use it for per-flow rate limiting.
Sponsored by: Chelsio Communications
|
#
a6a8ff35 |
| 24-May-2018 |
Navdeep Parhar <np@FreeBSD.org> |
cxgbe(4): Slightly simpler needs_<foo> functions.
|
#
2e09fe91 |
| 24-May-2018 |
Navdeep Parhar <np@FreeBSD.org> |
cxgbe(4): Make sure that the egress queue's cidx is updated periodically when the driver is writing WRs using start_wrq_wr/commit_wrq_wr all the time.
Sponsored by: Chelsio Communications
|
#
eff62dba |
| 17-May-2018 |
Navdeep Parhar <np@FreeBSD.org> |
cxgbe(4): Allocate offload Tx queues when a card has resources provisioned for NIC_ETHOFLD and the kernel has option RATELIMIT.
It is possible to use the chip's offload queues for normal NIC Tx and
cxgbe(4): Allocate offload Tx queues when a card has resources provisioned for NIC_ETHOFLD and the kernel has option RATELIMIT.
It is possible to use the chip's offload queues for normal NIC Tx and not just TOE Tx. The difference is that these queues support out of order processing of work requests and have a per-"flowid" mechanism for tracking credits between the driver and hardware. This allows Tx for any number of flows bound to different rate limits to be submitted to a single Tx queue and the work requests for slow flows won't cause HOL blocking for the rest.
Sponsored by: Chelsio Communications
show more ...
|
#
89f651e7 |
| 09-May-2018 |
Navdeep Parhar <np@FreeBSD.org> |
cxgbe(4): Add support for hash filters.
These filters reside in the card's memory instead of its TCAM and can be configured via a new "hashfilter" subcommand in cxgbetool. Hash and normal TCAM filt
cxgbe(4): Add support for hash filters.
These filters reside in the card's memory instead of its TCAM and can be configured via a new "hashfilter" subcommand in cxgbetool. Hash and normal TCAM filters can be used together. The hardware does an exact-match of packet fields for hash filters, unlike the masked match performed for TCAM filters. Any T5/T6 card with memory can support at least half a million hash filters. The sample config file with the driver configures 512K of these, it is possible to double this to 1 million+ in some cases.
The chip does an exact-match of fields of incoming datagrams with hash filters and performs the action configured for the filter if it matches. The fields to match are specified in a "filter mask" in the firmware config file. The filter mask always includes the 5-tuple (sip, dip, sport, dport, ipproto). It can, optionally, also include any subset of the filter mode (see filterMode and filterMask in the firmware config file).
For example: filterMode = fragmentation, mpshittype, protocol, vlan, port, fcoe filterMask = protocol, port, vlan
Exact values of the 5-tuple, the physical port, and VLAN tag would have to be provided while setting up a hash filter with the chip configuration above.
Hash filters support all actions supported by TCAM filters. A packet that hits a hash filter can be dropped, let through (with optional steering to a specific queue or RSS region), switched out of another port (with optional L2 rewrite of DMAC, SMAC, VLAN tag), or get NAT'ed. (Support for some of these will show up in the driver in a follow-up commit very shortly).
Sponsored by: Chelsio Communications
show more ...
|
#
111638bf |
| 30-Apr-2018 |
Navdeep Parhar <np@FreeBSD.org> |
cxgbe(4): Convert ACT_OPEN_RPL to a shared CPL.
Reserve 3b in the 14b atid to identify the owner and use it to dispatch the CPL. This allows all CPLs that use an atid to be used as shared CPLs, alt
cxgbe(4): Convert ACT_OPEN_RPL to a shared CPL.
Reserve 3b in the 14b atid to identify the owner and use it to dispatch the CPL. This allows all CPLs that use an atid to be used as shared CPLs, although ACT_OPEN_RPL is the only one being converted in this revision.
Sponsored by: Chelsio Communications
show more ...
|
#
4535e804 |
| 30-Apr-2018 |
Navdeep Parhar <np@FreeBSD.org> |
cxgbe(4): Use opaque cookies or tid range-checks to determine the intended recipient of a CPL when it can't be determined solely from the opcode. Retire the per-queue handlers for such CPLs in favor
cxgbe(4): Use opaque cookies or tid range-checks to determine the intended recipient of a CPL when it can't be determined solely from the opcode. Retire the per-queue handlers for such CPLs in favor of the new scheme.
Sponsored by: Chelsio Communications
show more ...
|
#
1131c927 |
| 14-Apr-2018 |
Navdeep Parhar <np@FreeBSD.org> |
cxgbe(4): Add support for Connection Offload Policy (aka COP).
COP allows fine-grained control on whether to offload a TCP connection using t4_tom, and what settings to apply to a connection selecte
cxgbe(4): Add support for Connection Offload Policy (aka COP).
COP allows fine-grained control on whether to offload a TCP connection using t4_tom, and what settings to apply to a connection selected for offload. t4_tom must still be loaded and IFCAP_TOE must still be enabled for full TCP offload to take place on an interface. The difference is that IFCAP_TOE used to be the only knob and would enable TOE for all new connections on the inteface, but now the driver will also consult the COP, if any, before offloading to the hardware TOE.
A policy is a plain text file with any number of rules, one per line. Each rule has a "match" part consisting of a socket-type (L = listen, A = active open, P = passive open, D = don't care) and a pcap-filter(7) expression, and a "settings" part that specifies whether to offload the connection or not and the parameters to use if so. The general format of a rule is: [socket-type] expr => settings
Example. See cxgbetool(8) for more information. [L] ip && port http => offload [L] port 443 => !offload [L] port ssh => offload [P] src net 192.168/16 && dst port ssh => offload !nagle !timestamp cong newreno [P] dst port ssh => offload !nagle ecn cong tahoe [P] dst port http => offload [A] dst port 443 => offload tls [A] dst net 192.168/16 => offload !timestamp cong highspeed
The driver processes the rules for each new listen, active open, or passive open and stops at the first match. There is an implicit rule at the end of every policy that prohibits offload when no rule in the policy matches: [D] all => !offload
This is a reworked and expanded version of a patch submitted by Krishnamraju Eraparaju @ Chelsio.
Sponsored by: Chelsio Communications
show more ...
|
#
c79126f2 |
| 12-Jan-2018 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r327624 through r327885.
|
#
f078ecf6 |
| 11-Jan-2018 |
Wojciech Macek <wma@FreeBSD.org> |
CXGBE: fix get_filt to be endianness-aware
Unconditional 32-bit shift is not endianness-safe. Modify the logic to work both on LE and BE.
Submitted by: Wojciech Macek <wma@freebsd.org> Rev
CXGBE: fix get_filt to be endianness-aware
Unconditional 32-bit shift is not endianness-safe. Modify the logic to work both on LE and BE.
Submitted by: Wojciech Macek <wma@freebsd.org> Reviewed by: np Obtained from: Semihalf Sponsored by: IBM, QCM Technologies Differential revision: https://reviews.freebsd.org/D13102
show more ...
|
#
4fc74049 |
| 29-Dec-2017 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r327169 through r327340.
|
#
348694da |
| 29-Dec-2017 |
Navdeep Parhar <np@FreeBSD.org> |
cxgbe(4): Reduce duplication by consolidating minor variations of the same code into a single routine.
Sponsored by: Chelsio Communications
|
#
54b4b13c |
| 24-Dec-2017 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r326936 through r327149.
|