linux/include/net
Jesper Dangaard Brouer 8a8e3d84b1 net_sched: restore "linklayer atm" handling
commit 56b765b79 ("htb: improved accuracy at high rates")
broke the "linklayer atm" handling.

 tc class add ... htb rate X ceil Y linklayer atm

The linklayer setting is implemented by modifying the rate table
which is send to the kernel.  No direct parameter were
transferred to the kernel indicating the linklayer setting.

The commit 56b765b79 ("htb: improved accuracy at high rates")
removed the use of the rate table system.

To keep compatible with older iproute2 utils, this patch detects
the linklayer by parsing the rate table.  It also supports future
versions of iproute2 to send this linklayer parameter to the
kernel directly. This is done by using the __reserved field in
struct tc_ratespec, to convey the choosen linklayer option, but
only using the lower 4 bits of this field.

Linklayer detection is limited to speeds below 100Mbit/s, because
at high rates the rtab is gets too inaccurate, so bad that
several fields contain the same values, this resembling the ATM
detect.  Fields even start to contain "0" time to send, e.g. at
1000Mbit/s sending a 96 bytes packet cost "0", thus the rtab have
been more broken than we first realized.

Signed-off-by: Jesper Dangaard Brouer <brouer@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2013-08-15 01:43:08 -07:00
..
9p 9P: Add cancelled() to the transport functions. 2013-07-07 22:18:18 -05:00
bluetooth Bluetooth: Remove unneeded flag 2013-06-23 00:23:53 +01:00
caif
irda
iucv
netfilter net_sched: add 64bit rate estimators 2013-06-11 02:51:03 -07:00
netns netfilter: {ipt,ebt}_ULOG: rise warning on deprecation 2013-05-23 14:23:16 +02:00
nfc NFC: netlink: Rename CMD_FW_UPLOAD to CMD_FW_DOWNLOAD 2013-07-31 01:19:43 +02:00
phonet
sctp net: sctp: prevent checksum.h from double inclusion 2013-07-02 00:23:57 -07:00
tc_act
act_api.h net_sched: add 64bit rate estimators 2013-06-11 02:51:03 -07:00
addrconf.h ipv6,mcast: always hold idev->lock before mca_lock 2013-07-01 23:39:21 -07:00
af_ieee802154.h
af_rxrpc.h
af_unix.h af_unix: fix a fatal race with bit fields 2013-05-01 15:13:49 -04:00
ah.h
arp.h
atmclip.h
ax25.h
ax88796.h
busy_poll.h net: rename busy poll MIB counter 2013-08-09 11:39:08 -07:00
cfg80211-wext.h
cfg80211.h cfg80211: require passing BSS struct back to cfg80211_assoc_timeout 2013-06-19 18:55:39 +02:00
checksum.h
cipso_ipv4.h
cls_cgroup.h
codel.h
compat.h
datalink.h
dcbevent.h
dcbnl.h
dn.h
dn_dev.h
dn_fib.h
dn_neigh.h
dn_nsp.h
dn_route.h
dsa.h
dsfield.h
dst.h
dst_ops.h
esp.h
ethoc.h
fib_rules.h
firewire.h
flow.h
flow_keys.h
garp.h
gen_stats.h net_sched: add 64bit rate estimators 2013-06-11 02:51:03 -07:00
genetlink.h
gre.h net: gre: move GSO functions to gre_offload 2013-07-03 14:37:39 -07:00
gro_cells.h
icmp.h
ieee80211_radiotap.h mac80211: add STBC flag for radiotap 2013-05-24 12:07:25 +02:00
ieee802154.h
ieee802154_netdev.h
if_inet6.h ipv6: resend MLD report if a link-local address completes DAD 2013-06-28 21:19:17 -07:00
inet6_connection_sock.h
inet6_hashtables.h
inet_common.h
inet_connection_sock.h
inet_ecn.h net: Correct comparisons and calculations using skb->tail and skb-transport_header 2013-05-28 23:49:07 -07:00
inet_frag.h net: frag, fix race conditions in LRU list maintenance 2013-05-06 11:06:51 -04:00
inet_hashtables.h
inet_sock.h ipv4: remove is_data also from ip_options documentation. 2013-06-12 03:13:50 -07:00
inet_timewait_sock.h
inetpeer.h
ip.h
ip6_checksum.h
ip6_fib.h ipv6: prevent fib6_run_gc() contention 2013-08-01 14:16:20 -07:00
ip6_route.h
ip6_tunnel.h
ip_fib.h ipv4: remove fib_update_nh_saddrs() declaration. 2013-07-02 00:33:52 -07:00
ip_tunnels.h ip_tunnel: Do not use inner ip-header-id for tunnel ip-header-id. 2013-08-13 16:52:50 -07:00
ip_vs.h ipvs: add sync_persist_mode flag 2013-06-26 18:01:46 +09:00
ipcomp.h
ipconfig.h
ipv6.h ipv6: Convert use of typedef ctl_table to struct ctl_table 2013-06-19 23:18:07 -07:00
ipx.h
iw_handler.h
lapb.h
lib80211.h
llc.h
llc_c_ac.h
llc_c_ev.h
llc_c_st.h
llc_conn.h
llc_if.h
llc_pdu.h
llc_s_ac.h
llc_s_ev.h
llc_s_st.h
llc_sap.h
mac80211.h mac80211: track AP's beacon rate and give it to the driver 2013-06-13 11:58:47 +02:00
mac802154.h
mip6.h
mld.h
mrp.h
ndisc.h ndisc: Add missing inline to ndisc_addr_option_pad 2013-07-31 15:18:17 -07:00
neighbour.h
net_namespace.h netns: exclude ipvs from struct net when IPVS disabled 2013-06-26 18:01:46 +09:00
net_ratelimit.h
netdma.h
netevent.h
netlabel.h
netlink.h
netprio_cgroup.h
netrom.h
nexthop.h
nl802154.h
p8022.h
ping.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2013-06-05 16:37:30 -07:00
pkt_cls.h
pkt_sched.h
protocol.h
psnap.h
raw.h
rawv6.h
red.h
regulatory.h
request_sock.h
rose.h
route.h
rtnetlink.h
sch_generic.h net_sched: restore "linklayer atm" handling 2013-08-15 01:43:08 -07:00
scm.h
secure_seq.h
slhc_vj.h
snmp.h
sock.h net: rename CONFIG_NET_LL_RX_POLL to CONFIG_NET_RX_BUSY_POLL 2013-08-01 15:11:17 -07:00
stp.h
tcp.h tcp: remove invalid __rcu annotation 2013-06-25 02:44:05 -07:00
tcp_memcontrol.h
tcp_states.h
timewait_sock.h
transp_v6.h transp_v6.h: style neatening 2013-06-04 16:43:42 -07:00
udp.h ipv6: call udp_push_pending_frames when uncorking a socket with AF_INET pending data 2013-07-02 12:44:18 -07:00
udplite.h
wext.h
wimax.h
wpan-phy.h
x25.h
x25device.h
xfrm.h xfrm: force a garbage collection after deleting a policy 2013-05-31 17:30:07 -07:00