iproute2/tc
Dave Taht abf70ef494 tc: support conversions to or from 64 bit nanosecond-based time
Using a 32 bit field to represent time in nanoseconds results in a
maximum value of about 4.3 seconds, which is well below many observed
delays in WiFi and LTE, and barely in the ballpark for a trip past the
Earth's moon, Luna.

Using 64 bit time fields in nanoseconds allows us to simulate
network diameters of several hundred light-years. However, only
conversions to and from ns, us, ms, and seconds are provided.

The iproute2 64 bit api uses signed values for time. Being able to
represent positive or negative time allows us to calculate +/- deltas
between, for example, the CLOCK_TAI and CLOCK_REALTIME clocks.

Time related utility functions in tc_util.c are moved to lib/utils.c.

Signed-off-by: Yousuk Seung <ysseung@google.com>
Signed-off-by: Dave Taht <dave.taht@gmail.com>
Signed-off-by: Neal Cardwell <ncardwell@google.com>
Signed-off-by: David Ahern <dsahern@gmail.com>
2018-08-30 11:04:38 -07:00
..
.gitignore Add ignore files to make using git easier 2006-08-08 12:04:38 -07:00
Makefile Add SKB Priority qdisc support in tc(8) 2018-08-14 07:06:43 -07:00
e_bpf.c bpf: make tc's bpf loader generic and move into lib 2016-11-29 12:35:32 -08:00
em_canid.c drop unneeded include of syslog.h 2017-11-12 16:22:36 -08:00
em_cmp.c drop unneeded include of syslog.h 2017-11-12 16:22:36 -08:00
em_ipset.c Convert the obvious cases to strlcpy() 2017-09-01 12:10:54 -07:00
em_ipt.c tc: Fix compilation error with old iptables 2018-03-27 06:38:52 -07:00
em_meta.c drop unneeded include of syslog.h 2017-11-12 16:22:36 -08:00
em_nbyte.c drop unneeded include of syslog.h 2017-11-12 16:22:36 -08:00
em_u32.c drop unneeded include of syslog.h 2017-11-12 16:22:36 -08:00
emp_ematch.l tc/lexer: let quotes actually start strings 2018-01-24 08:49:10 -08:00
emp_ematch.y tc: remove extra whitespace 2015-10-23 15:43:28 -07:00
f_basic.c drop unneeded include of syslog.h 2017-11-12 16:22:36 -08:00
f_bpf.c f_bpf: communicate ifindex for eBPF offload 2017-11-26 11:57:57 -08:00
f_cgroup.c tc actions: Improved batching and time filtered dumping 2017-08-04 13:16:51 -07:00
f_flow.c treewide: Use addattr_nest()/addattr_nest_end() to handle nested attributes 2018-02-02 15:01:09 -08:00
f_flower.c tc: fix bugs for tcp_flags and ip_attr hex output 2018-08-12 14:04:00 -07:00
f_fw.c treewide: Use addattr_nest()/addattr_nest_end() to handle nested attributes 2018-02-02 15:01:09 -08:00
f_matchall.c tc: jsonify matchall filter 2017-11-26 12:20:51 -08:00
f_route.c treewide: Use addattr_nest()/addattr_nest_end() to handle nested attributes 2018-02-02 15:01:09 -08:00
f_rsvp.c treewide: Use addattr_nest()/addattr_nest_end() to handle nested attributes 2018-02-02 15:01:09 -08:00
f_tcindex.c treewide: Use addattr_nest()/addattr_nest_end() to handle nested attributes 2018-02-02 15:01:09 -08:00
f_u32.c ip: Use single variable to represent -pretty 2018-02-16 08:13:36 -08:00
m_action.c tc: Correct json output for actions 2018-04-04 16:41:36 -07:00
m_bpf.c Merge branch 'iproute2-master' into iproute2-next 2018-03-13 17:48:10 -07:00
m_connmark.c tc: jsonify connmark action 2018-04-08 10:52:32 -07:00
m_csum.c tc: add json support in csum action 2018-06-05 15:30:30 -07:00
m_ematch.c iproute: make clang happy 2018-08-30 07:58:09 -07:00
m_ematch.h iproute: make clang happy 2018-08-30 07:58:09 -07:00
m_estimator.c drop unneeded include of syslog.h 2017-11-12 16:22:36 -08:00
m_gact.c Merge branch 'iproute2-master' into iproute2-next 2018-03-13 17:48:10 -07:00
m_ife.c tc: add missing space symbol in ife output 2018-05-18 09:10:48 -07:00
m_ipt.c treewide: Use addattr_nest()/addattr_nest_end() to handle nested attributes 2018-02-02 15:01:09 -08:00
m_mirred.c Merge branch 'iproute2-master' into iproute2-next 2018-03-13 17:48:10 -07:00
m_nat.c tc: jsonify nat action 2018-06-20 10:20:34 -07:00
m_pedit.c Merge branch 'iproute2-master' into iproute2-next 2018-04-02 10:47:34 -07:00
m_pedit.h tc: drop extern from function prototypes 2018-08-20 16:01:31 -07:00
m_police.c Merge branch 'iproute2-master' into iproute2-next 2018-03-13 17:48:10 -07:00
m_sample.c tc: jsonify sample action 2018-04-01 08:44:31 -07:00
m_simple.c treewide: Use addattr_nest()/addattr_nest_end() to handle nested attributes 2018-02-02 15:01:09 -08:00
m_skbedit.c net:sched: add action inheritdsfield to skbedit 2018-07-19 09:17:56 -07:00
m_skbmod.c Merge branch 'iproute2-master' into iproute2-next 2018-03-13 17:48:10 -07:00
m_tunnel_key.c tc/act_tunnel_key: Enable setup of tos and ttl 2018-07-20 08:58:31 -07:00
m_vlan.c Merge branch 'iproute2-master' into iproute2-next 2018-03-13 17:48:10 -07:00
m_xt.c treewide: Use addattr_nest()/addattr_nest_end() to handle nested attributes 2018-02-02 15:01:09 -08:00
m_xt_old.c treewide: Use addattr_nest()/addattr_nest_end() to handle nested attributes 2018-02-02 15:01:09 -08:00
p_eth.c drop unneeded include of syslog.h 2017-11-12 16:22:36 -08:00
p_icmp.c drop unneeded include of syslog.h 2017-11-12 16:22:36 -08:00
p_ip.c drop unneeded include of syslog.h 2017-11-12 16:22:36 -08:00
p_ip6.c drop unneeded include of syslog.h 2017-11-12 16:22:36 -08:00
p_tcp.c drop unneeded include of syslog.h 2017-11-12 16:22:36 -08:00
p_udp.c drop unneeded include of syslog.h 2017-11-12 16:22:36 -08:00
q_atm.c treewide: Use addattr_nest()/addattr_nest_end() to handle nested attributes 2018-02-02 15:01:09 -08:00
q_cake.c sch_cake: Make gso-splitting configurable 2018-08-13 07:41:44 -07:00
q_cbq.c treewide: Use addattr_nest()/addattr_nest_end() to handle nested attributes 2018-02-02 15:01:09 -08:00
q_cbs.c treewide: Use addattr_nest()/addattr_nest_end() to handle nested attributes 2018-02-02 15:01:09 -08:00
q_choke.c treewide: Use addattr_nest()/addattr_nest_end() to handle nested attributes 2018-02-02 15:01:09 -08:00
q_clsact.c SPDX license identifiers 2017-11-24 12:21:35 -08:00
q_codel.c treewide: Use addattr_nest()/addattr_nest_end() to handle nested attributes 2018-02-02 15:01:09 -08:00
q_drr.c treewide: Use addattr_nest()/addattr_nest_end() to handle nested attributes 2018-02-02 15:01:09 -08:00
q_dsmark.c treewide: Use addattr_nest()/addattr_nest_end() to handle nested attributes 2018-02-02 15:01:09 -08:00
q_etf.c tc: Add support for the ETF Qdisc 2018-07-11 17:50:10 -07:00
q_fifo.c tc: break long lines 2017-11-24 11:31:36 -08:00
q_fq.c treewide: Use addattr_nest()/addattr_nest_end() to handle nested attributes 2018-02-02 15:01:09 -08:00
q_fq_codel.c tc: Add JSON output of fq_codel stats 2018-03-13 18:05:40 -07:00
q_gred.c treewide: Use addattr_nest()/addattr_nest_end() to handle nested attributes 2018-02-02 15:01:09 -08:00
q_hfsc.c treewide: Use addattr_nest()/addattr_nest_end() to handle nested attributes 2018-02-02 15:01:09 -08:00
q_hhf.c treewide: Use addattr_nest()/addattr_nest_end() to handle nested attributes 2018-02-02 15:01:09 -08:00
q_htb.c tc/htb: remove unused variable 2018-08-30 08:00:45 -07:00
q_ingress.c ingress: Don't break JSON output 2018-04-25 11:08:39 -07:00
q_mqprio.c tc: Do not use addattr_nest_compat on mqprio and netem 2018-07-19 15:50:07 -07:00
q_multiq.c tc: B.W limits can now be specified in %. 2017-11-24 11:22:13 -08:00
q_netem.c tc: Do not use addattr_nest_compat on mqprio and netem 2018-07-19 15:50:07 -07:00
q_pie.c treewide: Use addattr_nest()/addattr_nest_end() to handle nested attributes 2018-02-02 15:01:09 -08:00
q_prio.c tc: prio: JSON-ify prio output 2018-01-26 13:00:18 -08:00
q_qfq.c treewide: Use addattr_nest()/addattr_nest_end() to handle nested attributes 2018-02-02 15:01:09 -08:00
q_red.c treewide: Use addattr_nest()/addattr_nest_end() to handle nested attributes 2018-02-02 15:01:09 -08:00
q_rr.c tc: B.W limits can now be specified in %. 2017-11-24 11:22:13 -08:00
q_sfb.c treewide: Use addattr_nest()/addattr_nest_end() to handle nested attributes 2018-02-02 15:01:09 -08:00
q_sfq.c tc: B.W limits can now be specified in %. 2017-11-24 11:22:13 -08:00
q_skbprio.c Add SKB Priority qdisc support in tc(8) 2018-08-14 07:06:43 -07:00
q_tbf.c treewide: Use addattr_nest()/addattr_nest_end() to handle nested attributes 2018-02-02 15:01:09 -08:00
static-syms.c SPDX license identifiers 2017-11-24 12:21:35 -08:00
tc.c Make colored output configurable 2018-08-20 08:54:06 -07:00
tc_cbq.c tc: support conversions to or from 64 bit nanosecond-based time 2018-08-30 11:04:38 -07:00
tc_cbq.h SPDX license identifiers 2017-11-24 12:21:35 -08:00
tc_class.c Merge branch 'iproute2-master' into iproute2-next 2018-04-02 10:47:34 -07:00
tc_common.h tc: drop extern from function prototypes 2018-08-20 16:01:31 -07:00
tc_core.c tc: support conversions to or from 64 bit nanosecond-based time 2018-08-30 11:04:38 -07:00
tc_core.h tc: support conversions to or from 64 bit nanosecond-based time 2018-08-30 11:04:38 -07:00
tc_estimator.c tc: support conversions to or from 64 bit nanosecond-based time 2018-08-30 11:04:38 -07:00
tc_exec.c tc: replace magic constant 16 with #define 2017-11-24 11:19:18 -08:00
tc_filter.c tc: introduce support for chain templates 2018-07-25 10:00:28 -07:00
tc_monitor.c tc: introduce support for chain templates 2018-07-25 10:00:28 -07:00
tc_qdisc.c utils: Introduce and use nodev() helper routine 2018-03-11 17:58:36 -07:00
tc_red.c tc: red: allow setting th_min and th_max to the same value 2018-01-19 12:35:23 -08:00
tc_red.h tc: drop extern from function prototypes 2018-08-20 16:01:31 -07:00
tc_stab.c drop unneeded include of syslog.h 2017-11-12 16:22:36 -08:00
tc_util.c tc: support conversions to or from 64 bit nanosecond-based time 2018-08-30 11:04:38 -07:00
tc_util.h tc: support conversions to or from 64 bit nanosecond-based time 2018-08-30 11:04:38 -07:00