man > tc-gate(8)

GATE(8)                                         Linux                                        GATE(8)

NAME
       gate - Stream Gate Action

SYNOPSIS
       tc  ...  action gate
               [ base-time BASETIME ] [ clockid CLOCKID ]
               sched-entry <gate state> <interval 1> [ <internal priority> <max octets> ]
               sched-entry <gate state> <interval 2> [ <internal priority> <max octets> ]
               sched-entry <gate state> <interval 3> [ <internal priority> <max octets> ]
               ......
               sched-entry <gate state> <interval N> [ <internal priority> <max octets> ]


DESCRIPTION
       GATE  action  allows  specified  ingress  frames  can  be passed at specific time slot, or be
       dropped at specific time slot. Tc filter filters the ingress  frames,  then  tc  gate  action
       would  specify  which  time  slot and how many bytes these frames can be passed to device and
       which time slot frames would be dropped.  Gate action also assign a base-time  to  tell  when
       the  entry list start.  Then gate action would start to repeat the gate entry list cyclically
       at the start base-time.  For the software simulation, gate action requires  the  user  assign
       reference time clock type.


PARAMETERS
       base-time
              Specifies  the  instant in nanoseconds, defining the time when the schedule starts. If
              'base-time' is a time in the past, the schedule will start at

              base-time + (N * cycle-time)

              where N is the smallest integer so the resulting time is greater than "now", and  "cy‐
              cle-time"  is  the  sum  of  all the intervals of the entries in the schedule. Without
              base-time specified, will default to be 0.


       clockid
              Specifies the clock to be used by qdisc's internal timer for measuring time and sched‐
              uling events. Not valid if gate action is used for offloading filter.  For example, tc
              filter command with skip_sw parameter.


       sched-entry
              There may multiple sched-entry parameters in a single schedule. Each one has the  for‐
              mat:

              sched-entry <gate state> <interval> [ <internal priority> <max octets> ]

              <gate state> means gate states. 'open' keep gate open, 'close' keep gate close.
              <interval> means how much nano seconds for this time slot.
              <internal  priority>  means internal priority value. Present of the internal receiving
              queue for this stream. "-1" means wildcard.  <internal priority> and <max octets>  can
              be omit default to be "-1" which both
               value to be "-1" for this <sched-entry>.
              <max octets> means how many octets size could pass in this time slot. Dropped if over‐
              limited.  "-1" means wildcard. <max octets> can be omit default to be "-1" which value
              to be "-1" for this <sched-entry>.
              Note that <internal priority> and <max octets> are nothing meaning for gate  state  is
              "close"  in  a  "sched-entry".  All frames are dropped when "sched-entry" with "close"
              state.


EXAMPLES
       The following example shows tc filter frames source ip match to the  192.168.0.20  will  keep
       the gate open for 200ms and limit the traffic to 8MB in this sched-entry. Then keep the traf‐
       fic  gate  to  be close for 100ms.  Frames arrived at gate close state would be dropped. Then
       the cycle would run the gate entries periodically. The schedule will start at instant  200.0s
       using  the  reference  CLOCK_TAI. The schedule is composed of two entries each of 300ms dura‐
       tion.

       # tc qdisc add dev eth0 ingress
       # tc filter add dev eth0 parent ffff: protocol ip \
                  flower skip_hw src_ip 192.168.0.20 \
                  action gate index 2 clockid CLOCK_TAI \
                  base-time 200000000000ns \
                  sched-entry open 200000000ns -1 8000000b \
                  sched-entry close 100000000ns


       Following commands is an example to filter a stream source mac match to the 10:00:80:00:00:00
       icmp frames will be dropped at any time with cycle 200ms.  With  a  default  basetime  0  and
       clockid is CLOCK_TAI as default.

       # tc qdisc add dev eth0 ingress
       # tc filter add dev eth0 parent ffff:  protocol ip \
            flower ip_proto icmp dst_mac 10:00:80:00:00:00 \
            action gate index 12 sched-entry close 200000000ns



AUTHORS
       Po Liu <Po.Liu AT nxp.com>

iproute2                                     12 Mar 2020                                     GATE(8)
tc-gate(8) □✕
NAME SYNOPSIS
tc ... action gate
DESCRIPTION PARAMETERS EXAMPLES AUTHORS

Generated by phpman v4.11.2-35-gf98a251 · Markdown · JSON · MCP Author: Che Dong Under GNU General Public License
2026-10-07 13:13 @216.73.217.162
CrawledBy Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
Valid XHTML 1.0 Transitional!Valid CSS!

^_top_^