@@ -15,6 +15,7 @@ const throttleCurrentValues = {
15
15
{
16
16
rate ?: number
17
17
delay ?: number
18
+ delayJitter ?: number
18
19
loss ?: number
19
20
lossBurst ?: number
20
21
queue ?: number
@@ -25,6 +26,7 @@ const throttleCurrentValues = {
25
26
{
26
27
rate ?: number
27
28
delay ?: number
29
+ delayJitter ?: number
28
30
loss ?: number
29
31
lossBurst ?: number
30
32
queue ?: number
@@ -75,6 +77,8 @@ export type ThrottleRule = {
75
77
rate ?: number
76
78
/** The one-way delay (ms). */
77
79
delay ?: number
80
+ /** The one-way delay jitter (ms). */
81
+ delayJitter ?: number
78
82
/** The packet loss percentage. */
79
83
loss ?: number
80
84
/** The packet loss burst. */
@@ -135,7 +139,7 @@ async function applyRules(
135
139
} )
136
140
137
141
for ( const [ i , rule ] of rules . entries ( ) ) {
138
- const { rate, delay, loss, lossBurst, queue, at } = rule
142
+ const { rate, delay, delayJitter , loss, lossBurst, queue, at } = rule
139
143
const limit = queue ?? calculateBufferedPackets ( rate || 0 , delay || 0 )
140
144
const mark = index + 1
141
145
const handle = index + 2
@@ -175,6 +179,14 @@ sudo -n tc filter add dev ${device} \
175
179
}
176
180
177
181
const timeoutId = setTimeout ( async ( ) => {
182
+ let delayDesc = ''
183
+ if ( delay && delay > 0 ) {
184
+ delayDesc = ` delay ${ delay } ms`
185
+ if ( delayJitter && delayJitter > 0 ) {
186
+ delayDesc += ` ${ delayJitter } ms`
187
+ }
188
+ }
189
+
178
190
let lossDesc = ''
179
191
if ( loss && loss > 0 ) {
180
192
if ( lossBurst && lossBurst > 0 ) {
@@ -188,7 +200,7 @@ sudo -n tc filter add dev ${device} \
188
200
189
201
const desc = `\
190
202
${ rate && rate > 0 ? `rate ${ rate } kbit` : '' } \
191
- ${ delay && delay >= 0 ? ` delay ${ delay } ms` : '' } \
203
+ ${ delayDesc } \
192
204
${ lossDesc } \
193
205
${ limit && limit >= 0 ? ` limit ${ limit } ` : '' } `
194
206
0 commit comments