Difference between revisions of "Element timeouts"

From nftables wiki
Jump to navigation Jump to search
(Create page with a very basic syntax reference to element timeouts.)
 
(complete description of timeout and expires in a set)
 
(2 intermediate revisions by 2 users not shown)
Line 1: Line 1:
The set infrastructure support establishing timeouts. A given set element which is given a timeout will be deleted from the set after the timeout expires.
The '''set''' infrastructure support establishing timeouts. A given timed '''set element''' has 2 attributes:
 
* '''timeout''': This time value, in seconds (10s), in minutes (12m), in hours (2h) or combination of all of them (2h12m10s), does not change and will be used to reset the '''expires''' value when required.
* '''expires''': This value is a countdown time counter which starts with the '''timeout''' value, and could be reset from the packet path or the element will be deleted when it reaches the 0 value.


Example, with per-element timeout:
Example, with per-element timeout:


<source lang="bash">
<source lang="bash">
% nft add table inet filter
% nft add table inet myfilter
% nft add set inet filter myset {type ipv4_addr\; flags timeout\; }
% nft add set inet myfilter myset {type ipv4_addr\; flags timeout\; }
% nft add element inet filter myset {10.0.0.1 timeout 10s }
% nft add element inet myfilter myset {10.0.0.1 timeout 10s }
% nft list ruleset
% nft list ruleset
table inet filter {
table inet myfilter {
set myset {
set myset {
type ipv4_addr
type ipv4_addr
Line 16: Line 19:
}
}
</source>
</source>
'''timeout''' and '''expires''' parameters cannot be modified in this case. The element should be recreated again if you need to reset them.
<source lang="bash">
% nft delete element inet myfilter myset { 10.0.0.1 }
% nft add element inet myfilter myset { 10.0.0.1 timeout 7s expires 5s }
</source>
In order to be able to reset it from packet path among other things you can use this feature by [[Updating sets from the packet path]].

Latest revision as of 10:06, 6 April 2020

The set infrastructure support establishing timeouts. A given timed set element has 2 attributes:

  • timeout: This time value, in seconds (10s), in minutes (12m), in hours (2h) or combination of all of them (2h12m10s), does not change and will be used to reset the expires value when required.
  • expires: This value is a countdown time counter which starts with the timeout value, and could be reset from the packet path or the element will be deleted when it reaches the 0 value.

Example, with per-element timeout:

% nft add table inet myfilter
% nft add set inet myfilter myset {type ipv4_addr\; flags timeout\; }
% nft add element inet myfilter myset {10.0.0.1 timeout 10s }
% nft list ruleset
table inet myfilter {
	set myset {
		type ipv4_addr
		flags timeout
		elements = { 10.0.0.1 timeout 10s expires 8s}
	}
}

timeout and expires parameters cannot be modified in this case. The element should be recreated again if you need to reset them.

% nft delete element inet myfilter myset { 10.0.0.1 }
% nft add element inet myfilter myset { 10.0.0.1 timeout 7s expires 5s }

In order to be able to reset it from packet path among other things you can use this feature by Updating sets from the packet path.