tc-skbprio

SKBPRIO(8)                           Linux                          SKBPRIO(8)

NAME
       skbprio - SKB Priority Queue

SYNOPSIS
       tc qdisc ... add skbprio [ limit packets ]

DESCRIPTION
       SKB  Priority Queue is a queueing discipline intended to prioritize the
       most important packets during a denial-of-service ( DoS )  attack.  The
       priority  of  a packet is given by skb->priority , where a higher value
       places the packet closer to the exit of the queue. When  the  queue  is
       full,  the  lowest priority packet in the queue is dropped to make room
       for the packet to be added if it has higher priority. If the packet  to
       be  added  has  lower  priority  than  all  packets in the queue, it is
       dropped.

       Without SKB priority queue, queue length limits must be imposed on  in-
       dividual  sub-queues,  and there is no straightforward way to enforce a
       global queue length limit across all priorities. SKBprio queue enforces
       a  global queue length limit while not restricting the lengths of indi-
       vidual sub-queues.

       While SKB Priority Queue is agnostic to how skb->priority is  assigned.
       A typical use case is to copy the 6-bit DS field of IPv4 and IPv6 pack-
       ets using tc-skbedit(8).  If skb->priority is greater or equal  to  64,
       the priority is assumed to be 63.  Priorities less than 64 are taken at
       face value.

       SKB Priority Queue enables routers to locally decide which  packets  to
       drop under a DoS attack.  Priorities should be assigned to packets such
       that the higher the priority,  the  more  expected  behavior  a  source
       shows.  So sources have an incentive to play by the rules.

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

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

SEE ALSO
       tc-prio(8), tc-skbedit(8)

AUTHORS
       Nishanth Devarajan  <devarajn@uci.edu>,  Michel  Machado  <michel@digi-
       rati.com.br>

       This manpage maintained by Bert Hubert <ahu@ds9a.nl>

iproute2                        13 August 2018                      SKBPRIO(8)
Man Pages Copyright Respective Owners. Site Copyright (C) 1994 - 2024 Hurricane Electric. All Rights Reserved.