cxgbetool.8 (59daefd7eb0de158f06f8a4bb3af6d8ba3c487c0) cxgbetool.8 (1131c927c4c388c75c728d443cab7ff0482a1c50)
1.\" Copyright (c) 2015, Chelsio Inc
2.\" All rights reserved.
3.\"
4.\" Redistribution and use in source and binary forms, with or without
5.\" modification, are permitted provided that the following conditions are met:
6.\"
7.\" 1. Redistributions of source code must retain the above copyright notice,
8.\" this list of conditions and the following disclaimer.

--- 17 unchanged lines hidden (view full) ---

26.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
27.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
28.\" POSSIBILITY OF SUCH DAMAGE.
29.\"
30.\" * Other names and brands may be claimed as the property of others.
31.\"
32.\" $FreeBSD$
33.\"
1.\" Copyright (c) 2015, Chelsio Inc
2.\" All rights reserved.
3.\"
4.\" Redistribution and use in source and binary forms, with or without
5.\" modification, are permitted provided that the following conditions are met:
6.\"
7.\" 1. Redistributions of source code must retain the above copyright notice,
8.\" this list of conditions and the following disclaimer.

--- 17 unchanged lines hidden (view full) ---

26.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
27.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
28.\" POSSIBILITY OF SUCH DAMAGE.
29.\"
30.\" * Other names and brands may be claimed as the property of others.
31.\"
32.\" $FreeBSD$
33.\"
34.Dd March 6, 2017
34.Dd April 13, 2018
35.Dt CXGBETOOL 8
36.Os
37.Sh NAME
38.Nm cxgbetool
39.Nd Userspace companion to
40.Xr cxgbe 4
41.Sh SYNOPSIS
42.Bl -item -compact

--- 16 unchanged lines hidden (view full) ---

59.Nm Ar nexus Cm loadcfg Ar fw-config.txt
60.It
61.Nm Ar nexus Cm loadcfg clear
62.It
63.Nm Ar nexus Cm loadfw Ar fw-image.bin
64.It
65.Nm Ar nexus Cm memdump Ar addr len
66.It
35.Dt CXGBETOOL 8
36.Os
37.Sh NAME
38.Nm cxgbetool
39.Nd Userspace companion to
40.Xr cxgbe 4
41.Sh SYNOPSIS
42.Bl -item -compact

--- 16 unchanged lines hidden (view full) ---

59.Nm Ar nexus Cm loadcfg Ar fw-config.txt
60.It
61.Nm Ar nexus Cm loadcfg clear
62.It
63.Nm Ar nexus Cm loadfw Ar fw-image.bin
64.It
65.Nm Ar nexus Cm memdump Ar addr len
66.It
67.Nm Ar nexus Cm policy Ar cop.txt
68.It
69.Nm Ar nexus Cm policy clear
70.It
67.Nm Ar nexus Bro Cm reg | reg64 Brc Ar addr Ns Op Ar =val
68.It
69.Nm Ar nexus Cm regdump Op Ar register-block ...
70.It
71.Nm Ar nexus Cm sched-class Ar sub-command Op Ar param Ar value
72.It
73.Nm Ar nexus Cm sched-queue Ar port Ar queue Ar class
74.It

--- 298 unchanged lines hidden (view full) ---

373to the card.
374.It Cm memdump Ar addr len
375Display
376.Ar len
377bytes of data of the card's memory starting at
378.Ar addr Ns .
379The card's memory map is available in
380.Va dev.t4nex.%d.misc.meminfo Ns .
71.Nm Ar nexus Bro Cm reg | reg64 Brc Ar addr Ns Op Ar =val
72.It
73.Nm Ar nexus Cm regdump Op Ar register-block ...
74.It
75.Nm Ar nexus Cm sched-class Ar sub-command Op Ar param Ar value
76.It
77.Nm Ar nexus Cm sched-queue Ar port Ar queue Ar class
78.It

--- 298 unchanged lines hidden (view full) ---

377to the card.
378.It Cm memdump Ar addr len
379Display
380.Ar len
381bytes of data of the card's memory starting at
382.Ar addr Ns .
383The card's memory map is available in
384.Va dev.t4nex.%d.misc.meminfo Ns .
385.It Cm policy Ar cop.txt
386Install the Connection Offload Policy (COP) in
387.Ar cop.txt Ns .
388A COP offers fine-grained control over which connections get offloaded and with
389what parameters.
390Set
391.Cm hw.cxgbe.cop_managed_offloading="1"
392in loader.conf to ensure that t4_tom will not offload any connection before a
393COP is installed.
394Note that t4_tom must be loaded and operational (IFCAP_TOE enabled) as always
395for any kind of offload based on the hardware TOE.
396.Bl -column -offset indent "COP installed" "cop_managed_offloading" "Behavior"
397.It Sy COP installed Ta Sy cop_managed_offloading Ta Sy Behavior
398.It NO Ta 0 Ta offload all [Default]
399.It NO Ta 1 Ta no offload
400.It YES Ta Don't Care Ta Rule based offload
401.El
402.Pp
403The policy file consists of empty lines, comments (lines begining with #) and
404any number of rules.
405Rules are applied in the order they appear in the file and processing stops at
406the first match.
407There is an implicit rule that disables offload for connections that do not
408match anything in the policy.
409.Pp
410Each rule consists of a filter part, which determines what connections the
411rule applies to, and a settings part, which determines whether whether matching
412connections will be offloaded and, if so, with what settings.
413The general form of a rule is
414.Bl -ohang -offset indent
415.It Cm \&[ Ar socket-type Cm \&] Ar pcap-filter Cm => Ar settings
416.Pp
417.Ar socket-type
418is one of the following.
419.Bl -tag -width "X" -compact
420.It Sy A
421Active open.
422Connection is being opened by this host.
423.It Sy P
424Passive open.
425Connection was requested by a peer.
426.It Sy L
427Listen called on a socket.
428Disabling offload in such a rule will prevent a hardware listener from being started.
429.It Sy D
430Don't care.
431Matches all of the above.
432.El
433.Pp
434.Ar pcap-filter
435is an expression that follows the
436.Xr pcap-filter 7
437syntax, or it is the keyword
438.Cm all
439that matches everything.
440.Pp
441.Ar settings
442determine whether connections matching
443.Ar socket-type
444and
445.Ar pcap-filter
446are offloaded and optionally sets some per-connection properties if they are.
447A combination of the following is allowed.
448.Bl -tag -width "timestamp" -compact
449.It Cm offload
450Connection should be offloaded.
451Use
452.Cm !offload
453or
454.Cm not offload
455to disable offload instead.
456.It Cm coalesce
457Enable rx payload coalescing.
458Negate to disable.
459.It Cm timestamp
460Enable TCP timestamp option.
461Negate to disable.
462.It Cm sack
463Enable TCP Selective Acknowledgements (SACK).
464Negate to disable.
465.It Cm nagle
466Enable Nagle's algorithm.
467Negate to disable.
468.It Cm ecn
469Enable Explicit Congestion Notification (ECN).
470Negate to disable.
471.It Cm ddp
472Use Direct Data Placement (zero copy receive) and zero copy transmit on the
473connection to service AIO requests on the socket.
474Negate to disable.
475.It Cm tls
476Set ULP mode to ULP_MODE_TLS.
477.It Cm cong Ar algo
478Use the specified congestion control algorithm.
479.Ar algo
480must be one of
481.Cm reno Ns , Cm tahoe Ns , Cm newreno Ns , or Cm highspeed Ns .
482.It Cm class Ar sc
483Bind the connection to the specified tx scheduling class.
484Valid range is 0 to 14 (for T4) and 0 to 15 (T5 onwards).
485.It Cm rxq Ar qid
486Use the specified offload rx queue.
487.Ar qid
488should be between 0 and nofldrxq for the ifnet.
489.It Cm txq Ar qnum
490Use the specified offload tx queue.
491.Ar qid
492should be between 0 and nofldtxq for the ifnet.
493.It Cm bind Ar qnum
494Shorthand for
495.Cm rxq Ar qnum Cm txq Ar qnum Ns .
496Use only when nofldrxq is the same as nofldtxq.
497.It Cm mss Ar val
498Set the advertised TCP MSS in the SYN for this connection to
499.Ar val
500(in bytes).
501The hardware MTU table must already have an entry that is suitable for the MSS.
502.El
503.Pp
504.It Example of a COP.
505Note that hardware listener for port 22 will be IPv4 only because the rule
506before it will prevent any IPv6 servers other than the first two. Also note
507that outgoing connections to 192.168/16 are the only outgoing connections that
508will get offloaded.
509.Bd -literal
510[L] port 80 => offload
511[L] port 443 => offload
512[L] ip6 => !offload
513[L] port 22 => offload
514[P] dst port 80 => offload cong highspeed !sack !ecn
515[P] dst port 443 => offload tls
516[A] dst net 192.168/16 => offload
517[A] all => !offload
518[D] port 22 => offload !nagle
519.Ed
520.El
521.It Cm policy clear
522Remove the Connection Offload Policy (COP) if one is in use.
381.It Bro Cm reg | reg64 Brc Ar addr Ns Op Ar =val
382.It Cm regdump Op Ar register-block ...
383Display contents of device registers.
384One or more
385.Ar register-block
386can be specified to limit the registers displayed.
387The default is to display registers for all blocks.
388Registers with read side effects are not read during a

--- 119 unchanged lines hidden ---
523.It Bro Cm reg | reg64 Brc Ar addr Ns Op Ar =val
524.It Cm regdump Op Ar register-block ...
525Display contents of device registers.
526One or more
527.Ar register-block
528can be specified to limit the registers displayed.
529The default is to display registers for all blocks.
530Registers with read side effects are not read during a

--- 119 unchanged lines hidden ---