@@ -40,6 +40,7 @@ gt_path_print_status(struct mud_path *path, int term)
40
40
" rtt: %.3f ms\n"
41
41
" rttvar: %.3f ms\n"
42
42
" rate: %s\n"
43
+ " losslim: %u\n"
43
44
" beat: %" PRIu64 " ms\n"
44
45
" tx:\n"
45
46
" rate: %" PRIu64 " bytes/sec\n"
@@ -52,7 +53,7 @@ gt_path_print_status(struct mud_path *path, int term)
52
53
: "path %s %s"
53
54
" %s %" PRIu16 " %s %" PRIu16 " %s %" PRIu16
54
55
" %zu %.3f %.3f"
55
- " %s"
56
+ " %s %u "
56
57
" %" PRIu64
57
58
" %" PRIu64 " %" PRIu64 " %" PRIu64
58
59
" %" PRIu64 " %" PRIu64 " %" PRIu64
@@ -69,6 +70,7 @@ gt_path_print_status(struct mud_path *path, int term)
69
70
(double )path -> rtt .val / 1e3 ,
70
71
(double )path -> rtt .var / 1e3 ,
71
72
path -> conf .fixed_rate ? "fixed" : "auto" ,
73
+ path -> conf .loss_limit * 100 / 255 ,
72
74
path -> conf .beat / 1000 ,
73
75
path -> tx .rate ,
74
76
path -> tx .loss * 100 / 255 ,
145
147
gt_path (int argc , char * * argv )
146
148
{
147
149
const char * dev = NULL ;
150
+ unsigned int loss_limit = 0 ;
148
151
149
152
struct ctl_msg req = {
150
153
.type = CTL_STATE ,
@@ -165,6 +168,7 @@ gt_path(int argc, char **argv)
165
168
{"up|backup|down" , NULL , NULL , argz_option },
166
169
{"rate" , NULL , & ratez , argz_option },
167
170
{"beat" , "SECONDS" , & req .path .beat , argz_time },
171
+ {"losslimit" , "PERCENT" , & loss_limit , argz_percent },
168
172
{NULL }};
169
173
170
174
if (argz (pathz , argc , argv ))
@@ -190,7 +194,8 @@ gt_path(int argc, char **argv)
190
194
}
191
195
192
196
int set = argz_is_set (pathz , "rate" )
193
- || argz_is_set (pathz , "beat" );
197
+ || argz_is_set (pathz , "beat" )
198
+ || argz_is_set (pathz , "losslimit" );
194
199
195
200
if (set && !req .path .addr .ss_family ) {
196
201
gt_log ("please specify a path\n" );
@@ -205,6 +210,9 @@ gt_path(int argc, char **argv)
205
210
req .path .state = MUD_DOWN ;
206
211
}
207
212
213
+ if (loss_limit )
214
+ req .path .loss_limit = loss_limit * 255 / 100 ;
215
+
208
216
if (argz_is_set (ratez , "fixed" )) {
209
217
req .path .fixed_rate = 3 ;
210
218
} else if (argz_is_set (ratez , "auto" )) {
0 commit comments