xref: /aosp_15_r20/external/iptables/extensions/libxt_time.man (revision a71a954618bbadd4a345637e5edcf36eec826889)
1*a71a9546SAutomerger Merge WorkerThis matches if the packet arrival time/date is within a given range. All
2*a71a9546SAutomerger Merge Workeroptions are optional, but are ANDed when specified. All times are interpreted
3*a71a9546SAutomerger Merge Workeras UTC by default.
4*a71a9546SAutomerger Merge Worker.TP
5*a71a9546SAutomerger Merge Worker\fB\-\-datestart\fP \fIYYYY\fP[\fB\-\fP\fIMM\fP[\fB\-\fP\fIDD\fP[\fBT\fP\fIhh\fP[\fB:\fP\fImm\fP[\fB:\fP\fIss\fP]]]]]
6*a71a9546SAutomerger Merge Worker.TP
7*a71a9546SAutomerger Merge Worker\fB\-\-datestop\fP \fIYYYY\fP[\fB\-\fP\fIMM\fP[\fB\-\fP\fIDD\fP[\fBT\fP\fIhh\fP[\fB:\fP\fImm\fP[\fB:\fP\fIss\fP]]]]]
8*a71a9546SAutomerger Merge WorkerOnly match during the given time, which must be in ISO 8601 "T" notation.
9*a71a9546SAutomerger Merge WorkerThe possible time range is 1970-01-01T00:00:00 to 2038-01-19T04:17:07.
10*a71a9546SAutomerger Merge Worker.IP
11*a71a9546SAutomerger Merge WorkerIf \-\-datestart or \-\-datestop are not specified, it will default to 1970-01-01
12*a71a9546SAutomerger Merge Workerand 2038-01-19, respectively.
13*a71a9546SAutomerger Merge Worker.TP
14*a71a9546SAutomerger Merge Worker\fB\-\-timestart\fP \fIhh\fP\fB:\fP\fImm\fP[\fB:\fP\fIss\fP]
15*a71a9546SAutomerger Merge Worker.TP
16*a71a9546SAutomerger Merge Worker\fB\-\-timestop\fP \fIhh\fP\fB:\fP\fImm\fP[\fB:\fP\fIss\fP]
17*a71a9546SAutomerger Merge WorkerOnly match during the given daytime. The possible time range is 00:00:00 to
18*a71a9546SAutomerger Merge Worker23:59:59. Leading zeroes are allowed (e.g. "06:03") and correctly interpreted
19*a71a9546SAutomerger Merge Workeras base-10.
20*a71a9546SAutomerger Merge Worker.TP
21*a71a9546SAutomerger Merge Worker[\fB!\fP] \fB\-\-monthdays\fP \fIday\fP[\fB,\fP\fIday\fP...]
22*a71a9546SAutomerger Merge WorkerOnly match on the given days of the month. Possible values are \fB1\fP
23*a71a9546SAutomerger Merge Workerto \fB31\fP. Note that specifying \fB31\fP will of course not match
24*a71a9546SAutomerger Merge Workeron months which do not have a 31st day; the same goes for 28- or 29-day
25*a71a9546SAutomerger Merge WorkerFebruary.
26*a71a9546SAutomerger Merge Worker.TP
27*a71a9546SAutomerger Merge Worker[\fB!\fP] \fB\-\-weekdays\fP \fIday\fP[\fB,\fP\fIday\fP...]
28*a71a9546SAutomerger Merge WorkerOnly match on the given weekdays. Possible values are \fBMon\fP, \fBTue\fP,
29*a71a9546SAutomerger Merge Worker\fBWed\fP, \fBThu\fP, \fBFri\fP, \fBSat\fP, \fBSun\fP, or values from \fB1\fP
30*a71a9546SAutomerger Merge Workerto \fB7\fP, respectively. You may also use two-character variants (\fBMo\fP,
31*a71a9546SAutomerger Merge Worker\fBTu\fP, etc.).
32*a71a9546SAutomerger Merge Worker.TP
33*a71a9546SAutomerger Merge Worker\fB\-\-contiguous\fP
34*a71a9546SAutomerger Merge WorkerWhen \fB\-\-timestop\fP is smaller than \fB\-\-timestart\fP value, match
35*a71a9546SAutomerger Merge Workerthis as a single time period instead distinct intervals.  See EXAMPLES.
36*a71a9546SAutomerger Merge Worker.TP
37*a71a9546SAutomerger Merge Worker\fB\-\-kerneltz\fP
38*a71a9546SAutomerger Merge WorkerUse the kernel timezone instead of UTC to determine whether a packet meets the
39*a71a9546SAutomerger Merge Workertime regulations.
40*a71a9546SAutomerger Merge Worker.PP
41*a71a9546SAutomerger Merge WorkerAbout kernel timezones: Linux keeps the system time in UTC, and always does so.
42*a71a9546SAutomerger Merge WorkerOn boot, system time is initialized from a referential time source. Where this
43*a71a9546SAutomerger Merge Workertime source has no timezone information, such as the x86 CMOS RTC, UTC will be
44*a71a9546SAutomerger Merge Workerassumed. If the time source is however not in UTC, userspace should provide the
45*a71a9546SAutomerger Merge Workercorrect system time and timezone to the kernel once it has the information.
46*a71a9546SAutomerger Merge Worker.PP
47*a71a9546SAutomerger Merge WorkerLocal time is a feature on top of the (timezone independent) system time. Each
48*a71a9546SAutomerger Merge Workerprocess has its own idea of local time, specified via the TZ environment
49*a71a9546SAutomerger Merge Workervariable. The kernel also has its own timezone offset variable. The TZ
50*a71a9546SAutomerger Merge Workeruserspace environment variable specifies how the UTC-based system time is
51*a71a9546SAutomerger Merge Workerdisplayed, e.g. when you run date(1), or what you see on your desktop clock.
52*a71a9546SAutomerger Merge WorkerThe TZ string may resolve to different offsets at different dates, which is
53*a71a9546SAutomerger Merge Workerwhat enables the automatic time-jumping in userspace. when DST changes. The
54*a71a9546SAutomerger Merge Workerkernel's timezone offset variable is used when it has to convert between
55*a71a9546SAutomerger Merge Workernon-UTC sources, such as FAT filesystems, to UTC (since the latter is what the
56*a71a9546SAutomerger Merge Workerrest of the system uses).
57*a71a9546SAutomerger Merge Worker.PP
58*a71a9546SAutomerger Merge WorkerThe caveat with the kernel timezone is that Linux distributions may ignore to
59*a71a9546SAutomerger Merge Workerset the kernel timezone, and instead only set the system time. Even if a
60*a71a9546SAutomerger Merge Workerparticular distribution does set the timezone at boot, it is usually does not
61*a71a9546SAutomerger Merge Workerkeep the kernel timezone offset - which is what changes on DST - up to date.
62*a71a9546SAutomerger Merge Workerntpd will not touch the kernel timezone, so running it will not resolve the
63*a71a9546SAutomerger Merge Workerissue. As such, one may encounter a timezone that is always +0000, or one that
64*a71a9546SAutomerger Merge Workeris wrong half of the time of the year. As such, \fBusing \-\-kerneltz is highly
65*a71a9546SAutomerger Merge Workerdiscouraged.\fP
66*a71a9546SAutomerger Merge Worker.PP
67*a71a9546SAutomerger Merge WorkerEXAMPLES. To match on weekends, use:
68*a71a9546SAutomerger Merge Worker.IP
69*a71a9546SAutomerger Merge Worker\-m time \-\-weekdays Sa,Su
70*a71a9546SAutomerger Merge Worker.PP
71*a71a9546SAutomerger Merge WorkerOr, to match (once) on a national holiday block:
72*a71a9546SAutomerger Merge Worker.IP
73*a71a9546SAutomerger Merge Worker\-m time \-\-datestart 2007\-12\-24 \-\-datestop 2007\-12\-27
74*a71a9546SAutomerger Merge Worker.PP
75*a71a9546SAutomerger Merge WorkerSince the stop time is actually inclusive, you would need the following stop
76*a71a9546SAutomerger Merge Workertime to not match the first second of the new day:
77*a71a9546SAutomerger Merge Worker.IP
78*a71a9546SAutomerger Merge Worker\-m time \-\-datestart 2007\-01\-01T17:00 \-\-datestop 2007\-01\-01T23:59:59
79*a71a9546SAutomerger Merge Worker.PP
80*a71a9546SAutomerger Merge WorkerDuring lunch hour:
81*a71a9546SAutomerger Merge Worker.IP
82*a71a9546SAutomerger Merge Worker\-m time \-\-timestart 12:30 \-\-timestop 13:30
83*a71a9546SAutomerger Merge Worker.PP
84*a71a9546SAutomerger Merge WorkerThe fourth Friday in the month:
85*a71a9546SAutomerger Merge Worker.IP
86*a71a9546SAutomerger Merge Worker\-m time \-\-weekdays Fr \-\-monthdays 22,23,24,25,26,27,28
87*a71a9546SAutomerger Merge Worker.PP
88*a71a9546SAutomerger Merge Worker(Note that this exploits a certain mathematical property. It is not possible to
89*a71a9546SAutomerger Merge Workersay "fourth Thursday OR fourth Friday" in one rule. It is possible with
90*a71a9546SAutomerger Merge Workermultiple rules, though.)
91*a71a9546SAutomerger Merge Worker.PP
92*a71a9546SAutomerger Merge WorkerMatching across days might not do what is expected.  For instance,
93*a71a9546SAutomerger Merge Worker.IP
94*a71a9546SAutomerger Merge Worker\-m time \-\-weekdays Mo \-\-timestart 23:00  \-\-timestop 01:00
95*a71a9546SAutomerger Merge WorkerWill match Monday, for one hour from midnight to 1 a.m., and then
96*a71a9546SAutomerger Merge Workeragain for another hour from 23:00 onwards.  If this is unwanted, e.g. if you
97*a71a9546SAutomerger Merge Workerwould like 'match for two hours from Montay 23:00 onwards' you need to also specify
98*a71a9546SAutomerger Merge Workerthe \-\-contiguous option in the example above.
99