STANNIX Community


Manual: tc-gate

GATE(8)							    Linux						     GATE(8)

NAME
       gate - Stream Gate Action

SYNOPSIS
       tc  ...	action gate
	       [ base-time BASETIME ] [ clockid CLOCKID ]
	       sched-entry   [   ]
	       sched-entry   [   ]
	       sched-entry   [   ]
	       ......
	       sched-entry   [   ]

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 "cycle-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 scheduling 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 format:

	      sched-entry   [   ]

	       means gate states. 'open' keep gate open, 'close' keep gate close.
	       means how much nano seconds for this time slot.
	        means  internal priority value. Present of the internal receiving queue for this stream.
	      "-1" means wildcard.   and  can be omit default to be "-1" which both
	       value to be "-1" for this .
	       means how many octets size could pass in this time slot. Dropped if overlimited. "-1" means wildโ€
	      card.  can be omit default to be "-1" which value to be "-1" for this .
	      Note that  and  are nothing meaning for gate state is "close" in  a  "sched-enโ€
	      try". 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 traffic 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 duration.

       # 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 

iproute2						 12 Mar 2020						     GATE(8)