mirror_iproute2/man/man8
Maxim Mikityanskiy b8b8b6d4c9 tc/htb: Hierarchical QoS hardware offload
This commit adds support for configuring HTB in offload mode. HTB
offload eliminates the single qdisc lock in the datapath and offloads
the algorithm to the NIC. The new 'offload' parameter is added to
enable this mode:

    # tc qdisc replace dev eth0 root handle 1: htb offload

Classes are created as usual, but filters should be moved to clsact for
lock-free classification (filters attached to HTB itself are not
supported in the offload mode):

    # tc filter add dev eth0 egress protocol ip flower dst_port 80
    action skbedit priority 1:10

tc qdisc show and tc class show will indicate whether the offload is
enabled. Example output:

$ tc qdisc show dev eth1
qdisc htb 1: root offloaded r2q 10 default 0 direct_packets_stat 0 direct_qlen 1000 offload
qdisc pfifo 0: parent 1: limit 1000p
qdisc pfifo 0: parent 1: limit 1000p
qdisc pfifo 0: parent 1: limit 1000p
qdisc pfifo 0: parent 1: limit 1000p
qdisc pfifo 0: parent 1: limit 1000p
qdisc pfifo 0: parent 1: limit 1000p
qdisc pfifo 0: parent 1: limit 1000p
qdisc pfifo 0: parent 1: limit 1000p
$ tc class show dev eth1
class htb 1:101 parent 1:1 prio 0 rate 4Gbit ceil 4Gbit burst 1000b cburst 1000b  offload
class htb 1:1 root rate 100Gbit ceil 100Gbit burst 0b cburst 0b  offload
class htb 1:103 parent 1:1 prio 0 rate 4Gbit ceil 4Gbit burst 1000b cburst 1000b  offload
class htb 1:102 parent 1:1 prio 0 rate 4Gbit ceil 4Gbit burst 1000b cburst 1000b  offload
class htb 1:105 parent 1:1 prio 0 rate 4Gbit ceil 4Gbit burst 1000b cburst 1000b  offload
class htb 1:104 parent 1:1 prio 0 rate 4Gbit ceil 4Gbit burst 1000b cburst 1000b  offload
class htb 1:107 parent 1:1 prio 0 rate 4Gbit ceil 4Gbit burst 1000b cburst 1000b  offload
class htb 1:106 parent 1:1 prio 0 rate 4Gbit ceil 4Gbit burst 1000b cburst 1000b  offload
class htb 1:108 parent 1:1 prio 0 rate 4Gbit ceil 4Gbit burst 1000b cburst 1000b  offload
$ tc -j qdisc show dev eth1
[{"kind":"htb","handle":"1:","root":true,"offloaded":true,"options":{"r2q":10,"default":"0","direct_packets_stat":0,"direct_qlen":1000,"offload":null}},{"kind":"pfifo","handle":"0:","parent":"1:","options":{"limit":1000}},{"kind":"pfifo","handle":"0:","parent":"1:","options":{"limit":1000}},{"kind":"pfifo","handle":"0:","parent":"1:","options":{"limit":1000}},{"kind":"pfifo","handle":"0:","parent":"1:","options":{"limit":1000}},{"kind":"pfifo","handle":"0:","parent":"1:","options":{"limit":1000}},{"kind":"pfifo","handle":"0:","parent":"1:","options":{"limit":1000}},{"kind":"pfifo","handle":"0:","parent":"1:","options":{"limit":1000}},{"kind":"pfifo","handle":"0:","parent":"1:","options":{"limit":1000}}]

Signed-off-by: Maxim Mikityanskiy <maximmi@mellanox.com>
Reviewed-by: Tariq Toukan <tariqt@nvidia.com>
Signed-off-by: David Ahern <dsahern@kernel.org>
2021-02-04 21:54:13 -07:00
..
.gitignore man: add ip-netns(8) as generation target 2020-04-20 09:39:27 -07:00
arpd.8 docs: make spacing consistent 2015-04-07 08:41:36 -07:00
bridge.8 bridge: add support for L2 multicast groups 2020-11-29 20:54:02 +00:00
ctstat.8 iproute2 - Split up manual page installation 2012-04-12 09:47:19 -07:00
dcb-app.8 dcb: Add a subtool for the DCB APP object 2021-01-18 04:09:29 +00:00
dcb-buffer.8 dcb: Add a subtool for the DCB buffer object 2020-12-14 16:42:03 +00:00
dcb-dcbx.8 dcb: Add a subtool for the DCBX object 2021-01-18 04:09:29 +00:00
dcb-ets.8 man: dcb-ets: Remove an unnecessary empty line 2020-12-14 16:41:40 +00:00
dcb-maxrate.8 dcb: Add a subtool for the DCB maxrate object 2020-12-14 16:42:07 +00:00
dcb-pfc.8 dcb: Add a subtool for the DCB PFC object 2020-12-14 16:41:58 +00:00
dcb.8 dcb: Add a subtool for the DCB APP object 2021-01-18 04:09:29 +00:00
devlink-dev.8 devlink: Add devlink reload action and limit options 2020-12-09 02:40:00 +00:00
devlink-dpipe.8 man: add man page for devlink dpipe 2020-04-06 10:06:00 -07:00
devlink-health.8 devlink: Add health reporter test command support 2020-10-07 00:08:53 -06:00
devlink-monitor.8 devlink: Add devlink trap policer set and show commands 2020-03-31 23:24:35 +00:00
devlink-port.8 devlink: Support set of port function state 2021-02-02 02:06:48 +00:00
devlink-region.8 man: Fix unequal number of .RS and .RE macros 2019-12-04 11:13:12 -08:00
devlink-resource.8 man: Fix unequal number of .RS and .RE macros 2019-12-04 11:13:12 -08:00
devlink-sb.8 man: Fix unequal number of .RS and .RE macros 2019-12-04 11:13:12 -08:00
devlink-trap.8 devlink: Document zero policer identifier 2020-07-06 11:14:24 -07:00
devlink.8 devlink.8: Use a single-font macro for a single argument 2020-07-06 11:00:34 -07:00
genl.8 genl: add manpage 2015-11-03 16:27:39 -08:00
ifcfg.8 man: Spelling fixes 2015-11-23 15:39:25 -08:00
ifstat.8 man: ifstat.8: Document --json and --pretty options 2018-08-16 10:25:02 -07:00
ip-address.8.in iproute2: ip addr: Add support for setting 'optimistic' 2020-05-31 23:01:33 +00:00
ip-addrlabel.8 man: ip-*.8: drop any reference to generic ip options 2016-03-02 11:23:53 -08:00
ip-fou.8 ip fou: Support binding FOU ports 2019-04-22 11:42:54 -07:00
ip-gue.8 iproute2: Man pages for fou and gue 2014-11-06 16:17:34 -08:00
ip-l2tp.8 ip/l2tp: remove offset and peer-offset options 2018-04-04 16:41:11 -07:00
ip-link.8.in iplink:macvlan: Added bcqueuelen parameter 2020-12-16 04:02:07 +00:00
ip-macsec.8 man: fix spelling errors 2020-11-08 10:40:30 -08:00
ip-maddress.8 docs: make spacing consistent 2015-04-07 08:41:36 -07:00
ip-monitor.8 ipmonitor: Mention "nexthop" object in help and man page 2021-01-10 17:17:32 +00:00
ip-mptcp.8 man: ip.8: add reference to mptcp man-page 2020-04-29 17:36:14 +00:00
ip-mroute.8 man: ip-*.8: drop any reference to generic ip options 2016-03-02 11:23:53 -08:00
ip-neighbour.8 man: fix spelling errors 2020-11-08 10:40:30 -08:00
ip-netconf.8 man: update netconf manual for new attributes 2016-03-21 12:15:58 -07:00
ip-netns.8.in man: replace $(NETNS_ETC_DIR) and $(NETNS_RUN_DIR) in ip-netns(8) 2020-04-20 09:39:27 -07:00
ip-nexthop.8 ipnexthop: support for fdb nexthops 2020-06-11 15:52:29 +00:00
ip-ntable.8 man: ip-ntable.8: Review synopsis section 2016-03-02 11:23:52 -08:00
ip-route.8.in man: add reference to ip route add encap ... src 2019-10-08 20:18:15 -07:00
ip-rule.8 iprule: Add tun_id filed in the selector 2018-12-31 22:13:13 -08:00
ip-sr.8 man: add documentation for IPv6 SR commands 2017-04-16 10:21:43 -07:00
ip-tcp_metrics.8 iproute2: add support for tcp_metrics 2012-10-08 10:23:07 -07:00
ip-token.8 ip, token: add del command 2016-05-31 12:10:29 -07:00
ip-tunnel.8 doc/man: spelling fixes 2018-10-18 13:15:45 -07:00
ip-vrf.8 ip: do not drop capabilities if net_admin=i is set 2018-05-14 21:07:34 -07:00
ip-xfrm.8 ip xfrm: support setting XFRMA_SET_MARK_MASK attribute in states 2020-10-07 00:10:47 -06:00
ip.8 man: ip.8: add reference to mptcp man-page 2020-04-29 17:36:14 +00:00
lnstat.8 man: drop references to Debian-specific paths 2017-12-30 09:43:47 -08:00
Makefile man: replace $(NETNS_ETC_DIR) and $(NETNS_RUN_DIR) in ip-netns(8) 2020-04-20 09:39:27 -07:00
nstat.8 iproute2 - Split up manual page installation 2012-04-12 09:47:19 -07:00
rdma-dev.8 rdma: Document adaptive-moderation 2019-08-02 09:30:56 -07:00
rdma-link.8 rdma: Document counter statistic 2019-07-19 10:51:13 -07:00
rdma-resource.8 rdma: Add support to get QP in raw format 2020-07-05 18:11:00 +00:00
rdma-statistic.8 rdma: Document the new "pid" criteria for auto mode 2020-08-06 16:26:12 +00:00
rdma-system.8 rdma: Add man pages for rdma system commands 2019-05-31 15:10:31 -07:00
rdma.8 rdma: Add support to get QP in raw format 2020-07-05 18:11:00 +00:00
routef.8 iproute2 - Split up manual page installation 2012-04-12 09:47:19 -07:00
routel.8 man: routel/routef: don't mention filesystem paths 2017-12-30 09:43:47 -08:00
rtacct.8 misc: make the pattern matching case-insensitive 2020-07-20 13:29:55 -07:00
rtmon.8 man8: scrub trailing whitespace 2015-11-23 15:41:37 -08:00
rtpr.8 man: rtpr: Rename s/bash/shell/ 2018-12-18 10:52:35 -08:00
rtstat.8 iproute2 - Split up manual page installation 2012-04-12 09:47:19 -07:00
ss.8 man: fix spelling errors 2020-11-08 10:40:30 -08:00
tc-actions.8 man/tc-actions: fix formatting 2020-04-06 10:07:54 -07:00
tc-basic.8 tc: add a man page for basic filter 2015-10-23 15:37:26 -07:00
tc-bfifo.8 man8: scrub trailing whitespace 2015-11-23 15:41:37 -08:00
tc-bpf.8 Update tc-bpf.8 man page examples 2019-04-26 14:05:47 -07:00
tc-cake.8 man: fix spelling errors 2020-11-08 10:40:30 -08:00
tc-cbq-details.8 man8: scrub trailing whitespace 2015-11-23 15:41:37 -08:00
tc-cbq.8 man8: scrub trailing whitespace 2015-11-23 15:41:37 -08:00
tc-cbs.8 man: Fix typos on tc-cbs 2018-07-07 09:57:45 -07:00
tc-cgroup.8 tc: add a man page for cgroup filter 2015-10-23 15:37:26 -07:00
tc-choke.8 docs: make spacing consistent 2015-04-07 08:41:36 -07:00
tc-codel.8 tc: Add missing documentation for codel and fq_codel parameters 2018-03-13 18:05:35 -07:00
tc-connmark.8 tc: connmark, pedit: Rename BRANCH to CONTROL 2016-03-27 10:34:42 -07:00
tc-csum.8 man: tc-csum.8: Fix inconsistency in example description 2017-11-29 10:14:51 -08:00
tc-ct.8 man: fix spelling errors 2020-11-08 10:40:30 -08:00
tc-ctinfo.8 man: Fix unequal number of .RS and .RE macros 2019-12-04 11:13:12 -08:00
tc-drr.8 man8: scrub trailing whitespace 2015-11-23 15:41:37 -08:00
tc-ematch.8 man: tc-ematch.8: documented canid() ematch rule 2019-11-17 12:31:04 -08:00
tc-etf.8 tc: etf: Add documentation for skip_sock_check. 2019-07-18 15:47:02 -07:00
tc-ets.8 tc: Add support for ETS Qdisc 2020-01-18 21:54:12 +00:00
tc-flow.8 man/man8/tc-flow.8: minor corrections 2016-07-25 08:19:25 -07:00
tc-flower.8 tc: flower: add tc conntrack inv ct_state support 2021-01-23 18:16:35 +00:00
tc-fq_codel.8 tc: Add missing documentation for codel and fq_codel parameters 2018-03-13 18:05:35 -07:00
tc-fq_pie.8 tc: add support for FQ-PIE packet scheduler 2020-02-04 03:24:39 -08:00
tc-fq.8 tc: fq: add support for JSON output 2019-12-29 09:57:27 -08:00
tc-fw.8 tc: add a man page for fw filter 2015-10-23 15:37:26 -07:00
tc-gate.8 iproute2-next: add gate action man page 2020-05-13 02:20:12 +00:00
tc-hfsc.8 iproute2: unmangle netdev/my emails in man pages (hfsc, stab) 2016-07-06 21:07:23 -07:00
tc-htb.8 tc/htb: Hierarchical QoS hardware offload 2021-02-04 21:54:13 -07:00
tc-ife.8 man: tc-ife: add default type note 2017-08-30 08:26:46 -07:00
tc-matchall.8 man: fix spelling errors 2020-11-08 10:40:30 -08:00
tc-mirred.8 tc: m_mirred: Add support for ingress redirect/mirror 2016-10-26 11:20:47 -07:00
tc-mpls.8 tc-mpls: fix manpage example and help message string 2020-11-08 10:49:28 -08:00
tc-mqprio.8 man: Change numtc to num_tc 2018-09-10 11:47:11 -07:00
tc-nat.8 man: Add a man page for the nat action 2016-03-04 15:27:51 -08:00
tc-netem.8 man: tc-netem.8: fix URL for netem page 2019-07-02 17:44:51 -07:00
tc-pedit.8 man: tc-pedit: Drop the claim that pedit ex is only for IPv4 2020-04-09 14:39:59 +00:00
tc-pfifo_fast.8 man8: scrub trailing whitespace 2015-11-23 15:41:37 -08:00
tc-pfifo.8 iproute2 - Split up manual page installation 2012-04-12 09:47:19 -07:00
tc-pie.8 man: fix spelling errors 2020-11-08 10:40:30 -08:00
tc-police.8 man: Fix unequal number of .RS and .RE macros 2019-12-04 11:13:12 -08:00
tc-prio.8 man8: scrub trailing whitespace 2015-11-23 15:41:37 -08:00
tc-red.8 tc: q_red: Add support for qevents "mark" and "early_drop" 2020-07-05 15:37:49 +00:00
tc-route.8 tc: add a man page for route filter 2015-10-23 15:37:26 -07:00
tc-sample.8 man: Fix unequal number of .RS and .RE macros 2019-12-04 11:13:12 -08:00
tc-sfb.8 man: fix spelling errors 2020-11-08 10:40:30 -08:00
tc-sfq.8 man8: scrub trailing whitespace 2015-11-23 15:41:37 -08:00
tc-simple.8 man: Fix unequal number of .RS and .RE macros 2019-12-04 11:13:12 -08:00
tc-skbedit.8 tc: document 'mask' parameter in skbedit man page 2019-07-09 17:31:16 -07:00
tc-skbmod.8 man: Fix unequal number of .RS and .RE macros 2019-12-04 11:13:12 -08:00
tc-skbprio.8 Fix warning in tc-skbprio.8 manpage 2018-11-09 08:03:40 -08:00
tc-stab.8 iproute2: unmangle netdev/my emails in man pages (hfsc, stab) 2016-07-06 21:07:23 -07:00
tc-taprio.8 tc: taprio: Update documentation 2019-07-18 15:47:07 -07:00
tc-tbf.8 man8: scrub trailing whitespace 2015-11-23 15:41:37 -08:00
tc-tcindex.8 tc: fix typo in tc-tcindex man page 2017-09-20 18:01:02 -07:00
tc-tunnel_key.8 man: fix spelling errors 2020-11-08 10:40:30 -08:00
tc-u32.8 man: Fix unequal number of .RS and .RE macros 2019-12-04 11:13:12 -08:00
tc-vlan.8 m_mpls: add mac_push action 2020-10-20 08:57:08 -06:00
tc-xt.8 man: Add a man page for the xt action 2016-03-04 15:27:51 -08:00
tc.8 tc: implement support for action terse dump 2020-12-03 03:51:06 +00:00
tipc-bearer.8 tipc: add the ability to get UDP bearer options 2016-09-01 08:34:35 -07:00
tipc-link.8 tipc: add link broadcast man page 2019-03-26 16:09:21 -07:00
tipc-media.8 tipc: add peer remove functionality 2016-08-29 10:33:24 -07:00
tipc-nametable.8 tipc: JSON support for showing nametable 2018-06-13 20:45:38 -07:00
tipc-node.8 tipc: add peer remove functionality 2016-08-29 10:33:24 -07:00
tipc-peer.8 tipc: add peer remove functionality 2016-08-29 10:33:24 -07:00
tipc-socket.8 man: Syntax and warning fixes 2015-11-23 15:39:25 -08:00
tipc.8 tipc: JSON support for showing nametable 2018-06-13 20:45:38 -07:00