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