1SKBPRIO(8)                           Linux                          SKBPRIO(8)
2
3
4

NAME

6       skbprio - SKB Priority Queue
7
8

SYNOPSIS

10       tc qdisc ... add skbprio [ limit packets ]
11
12

DESCRIPTION

14       SKB  Priority Queue is a queueing discipline intended to prioritize the
15       most important packets during a denial-of-service ( DoS )  attack.  The
16       priority  of  a packet is given by skb->priority , where a higher value
17       places the packet closer to the exit of the queue. When  the  queue  is
18       full,  the  lowest priority packet in the queue is dropped to make room
19       for the packet to be added if it has higher priority. If the packet  to
20       be  added  has  lower  priority  than  all  packets in the queue, it is
21       dropped.
22
23       Without SKB priority queue, queue length  limits  must  be  imposed  on
24       individual sub-queues, and there is no straightforward way to enforce a
25       global queue length limit across all priorities. SKBprio queue enforces
26       a  global queue length limit while not restricting the lengths of indi‐
27       vidual sub-queues.
28
29       While SKB Priority Queue is agnostic to how skb->priority is  assigned.
30       A typical use case is to copy the 6-bit DS field of IPv4 and IPv6 pack‐
31       ets using tc-skbedit(8).  If skb->priority is greater or equal  to  64,
32       the priority is assumed to be 63.  Priorities less than 64 are taken at
33       face value.
34
35       SKB Priority Queue enables routers to locally decide which  packets  to
36       drop under a DoS attack.  Priorities should be assigned to packets such
37       that the higher the priority,  the  more  expected  behavior  a  source
38       shows.  So sources have an incentive to play by the rules.
39
40

ALGORITHM

42       Skbprio maintains 64 lists (priorities go from 0 to 63).  When a packet
43       is enqueued, it gets inserted at the tail of its priority list. When  a
44       packet  needs  to be sent out to the network, it is taken from the head
45       of the highest priority list. When the queue is full, the packet at the
46       tail of the lowest priority list is dropped to serve the ingress packet
47       - if it is of higher priority, otherwise the ingress packet is dropped.
48       This algorithm allocates as much bandwidth as possible to high priority
49       packets, while only servicing low priority packets when there is enough
50       bandwidth.
51
52

PARAMETERS

54       limit  Maximum queue size specified in packets. It defaults to 64.  The
55              range for this parameter is [0, UINT32_MAX].
56
57

SEE ALSO

59       tc-prio(8), tc-skbedit(8)
60
61

AUTHORS

63       Nishanth Devarajan  <devarajn@uci.edu>,  Michel  Machado  <michel@digi‐
64       rati.com.br>
65
66       This manpage maintained by Bert Hubert <ahu@ds9a.nl>
67
68
69
70iproute2                        13 August 2018                      SKBPRIO(8)
Impressum