linux_dsm_epyc7002/net
Nishanth Devarajan aea5f654e6 net/sched: add skbprio scheduler
Skbprio (SKB Priority Queue) is a queueing discipline that prioritizes packets
according to their skb->priority field. Under congestion, already-enqueued lower
priority packets will be dropped to make space available for higher priority
packets. Skbprio was conceived as a solution for denial-of-service defenses that
need to route packets with different priorities as a means to overcome DoS
attacks.

v5
*Do not reference qdisc_dev(sch)->tx_queue_len for setting limit. Instead set
default sch->limit to 64.

v4
*Drop Documentation/networking/sch_skbprio.txt doc file to move it to tc man
page for Skbprio, in iproute2.

v3
*Drop max_limit parameter in struct skbprio_sched_data and instead use
sch->limit.

*Reference qdisc_dev(sch)->tx_queue_len only once, during initialisation for
qdisc (previously being referenced every time qdisc changes).

*Move qdisc's detailed description from in-code to Documentation/networking.

*When qdisc is saturated, enqueue incoming packet first before dequeueing
lowest priority packet in queue - improves usage of call stack registers.

*Introduce and use overlimit stat to keep track of number of dropped packets.

v2
*Use skb->priority field rather than DS field. Rename queueing discipline as
SKB Priority Queue (previously Gatekeeper Priority Queue).

*Queueing discipline is made classful to expose Skbprio's internal priority
queues.

Signed-off-by: Nishanth Devarajan <ndev2021@gmail.com>
Reviewed-by: Sachin Paryani <sachin.paryani@gmail.com>
Reviewed-by: Cody Doucette <doucette@bu.edu>
Reviewed-by: Michel Machado <michel@digirati.com.br>
Acked-by: Cong Wang <xiyou.wangcong@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2018-07-24 14:44:00 -07:00
..
6lowpan
9p net/9p/client.c: put refcount of trans_mod in error case in parse_opts() 2018-07-14 11:11:09 -07:00
802
8021q net: remove blank lines at end of file 2018-07-24 14:10:43 -07:00
appletalk
atm atm: remove blank lines at EOF 2018-07-24 14:10:42 -07:00
ax25 ax25: remove blank line at EOF 2018-07-24 14:10:42 -07:00
batman-adv Merge ra.kernel.org:/pub/scm/linux/kernel/git/torvalds/linux 2018-07-20 21:17:12 -07:00
bluetooth
bpf
bpfilter bpfilter: remove trailing newline 2018-07-24 14:10:42 -07:00
bridge net: bridge: add support for backup port 2018-07-23 09:32:15 -07:00
caif
can
ceph
core net: remove blank lines at end of file 2018-07-24 14:10:43 -07:00
dcb
dccp
decnet decnet: whitespace fixes 2018-07-24 14:10:42 -07:00
dns_resolver net: remove blank lines at end of file 2018-07-24 14:10:43 -07:00
dsa net: dsa: Remove VLA usage 2018-07-18 15:08:31 -07:00
ethernet
hsr
ieee802154 net: remove blank lines at end of file 2018-07-24 14:10:43 -07:00
ife
ipv4 net: remove blank lines at end of file 2018-07-24 14:10:43 -07:00
ipv6 net: remove blank lines at end of file 2018-07-24 14:10:43 -07:00
iucv net: remove blank lines at end of file 2018-07-24 14:10:43 -07:00
kcm net: remove blank lines at end of file 2018-07-24 14:10:43 -07:00
key
l2tp l2tp: remove trailing newline 2018-07-24 14:10:43 -07:00
l3mdev
lapb
llc llc: fix whitespace issues 2018-07-24 14:10:42 -07:00
mac80211 net: remove blank lines at end of file 2018-07-24 14:10:43 -07:00
mac802154
mpls mpls: remove trailing whitepace 2018-07-24 14:10:42 -07:00
ncsi
netfilter Merge git://git.kernel.org/pub/scm/linux/kernel/git/pablo/nf-next 2018-07-20 22:28:28 -07:00
netlabel
netlink netlink: do not store start function in netlink_cb 2018-07-24 10:04:49 -07:00
netrom
nfc net/nfc: Avoid stalls when nfc_alloc_send_skb() returned NULL. 2018-07-18 10:51:45 -07:00
nsh
openvswitch ipv6: remove dependency of nf_defrag_ipv6 on ipv6 module 2018-07-18 11:26:53 +02:00
packet Merge ra.kernel.org:/pub/scm/linux/kernel/git/torvalds/linux 2018-07-20 21:17:12 -07:00
phonet
psample
qrtr
rds rds: remove trailing whitespace and blank lines 2018-07-24 14:10:42 -07:00
rfkill
rose
rxrpc
sched net/sched: add skbprio scheduler 2018-07-24 14:44:00 -07:00
sctp sctp: whitespace fixes 2018-07-24 14:10:42 -07:00
smc net/smc: remove local variable page in smc_rx_splice() 2018-07-23 10:57:14 -07:00
strparser
sunrpc
switchdev
tipc tipc: make some functions static 2018-07-21 16:23:22 -07:00
tls Merge ra.kernel.org:/pub/scm/linux/kernel/git/torvalds/linux 2018-07-20 21:17:12 -07:00
unix
vmw_vsock
wimax wimax: remove blank lines at EOF 2018-07-24 14:10:42 -07:00
wireless wireless/lib80211: Convert from ahash to shash 2018-07-24 09:17:20 +02:00
x25 x25: remove blank lines at EOF 2018-07-24 14:10:42 -07:00
xdp xsk: do not return EMSGSIZE in copy mode for packets larger than MTU 2018-07-13 15:34:31 +02:00
xfrm xfrm: remove blank lines at EOF 2018-07-24 14:10:42 -07:00
compat.c
Kconfig net: remove blank lines at end of file 2018-07-24 14:10:43 -07:00
Makefile
socket.c
sysctl_net.c