@@ -135,7 +135,7 @@ def remote_link_established(link):
135
135
136
136
def program_setup (configdir , dispall = False , verbosity = 0 , name_filter = None , json = False , astats = False ,
137
137
lstats = False , sorting = None , sort_reverse = False , remote = None , management_identity = None ,
138
- remote_timeout = RNS .Transport .PATH_REQUEST_TIMEOUT , must_exit = True , rns_instance = None ):
138
+ remote_timeout = RNS .Transport .PATH_REQUEST_TIMEOUT , must_exit = True , rns_instance = None , traffic_totals = False ):
139
139
140
140
if remote :
141
141
require_shared = False
@@ -228,6 +228,10 @@ def program_setup(configdir, dispall=False, verbosity=0, name_filter=None, json=
228
228
interfaces .sort (key = lambda i : i ["rxb" ], reverse = not sort_reverse )
229
229
if sorting == "tx" :
230
230
interfaces .sort (key = lambda i : i ["txb" ], reverse = not sort_reverse )
231
+ if sorting == "rxs" :
232
+ interfaces .sort (key = lambda i : i ["rxs" ], reverse = not sort_reverse )
233
+ if sorting == "txs" :
234
+ interfaces .sort (key = lambda i : i ["txs" ], reverse = not sort_reverse )
231
235
if sorting == "traffic" :
232
236
interfaces .sort (key = lambda i : i ["rxb" ]+ i ["txb" ], reverse = not sort_reverse )
233
237
if sorting == "announces" or sorting == "announce" :
@@ -364,7 +368,18 @@ def program_setup(configdir, dispall=False, verbosity=0, name_filter=None, json=
364
368
print (" Announces : {iaf}↑" .format (iaf = RNS .prettyfrequency (ifstat ["outgoing_announce_frequency" ])))
365
369
print (" {iaf}↓" .format (iaf = RNS .prettyfrequency (ifstat ["incoming_announce_frequency" ])))
366
370
367
- print (" Traffic : {txb}↑\n {rxb}↓" .format (rxb = size_str (ifstat ["rxb" ]), txb = size_str (ifstat ["txb" ])))
371
+ rxb_str = "↓" + RNS .prettysize (ifstat ["rxb" ])
372
+ txb_str = "↑" + RNS .prettysize (ifstat ["txb" ])
373
+ strdiff = len (rxb_str )- len (txb_str )
374
+ if strdiff > 0 :
375
+ txb_str += " " * strdiff
376
+ elif strdiff < 0 :
377
+ rxb_str += " " * - strdiff
378
+
379
+ rxstat = rxb_str + " " + RNS .prettyspeed (ifstat ["rxs" ])
380
+ txstat = txb_str + " " + RNS .prettyspeed (ifstat ["txs" ])
381
+
382
+ print (f" Traffic : { txstat } \n { rxstat } " )
368
383
369
384
lstr = ""
370
385
if link_count != None and lstats :
@@ -374,6 +389,19 @@ def program_setup(configdir, dispall=False, verbosity=0, name_filter=None, json=
374
389
else :
375
390
lstr = f" { link_count } entr{ ms } in link table"
376
391
392
+ if traffic_totals :
393
+ rxb_str = "↓" + RNS .prettysize (stats ["rxb" ])
394
+ txb_str = "↑" + RNS .prettysize (stats ["txb" ])
395
+ strdiff = len (rxb_str )- len (txb_str )
396
+ if strdiff > 0 :
397
+ txb_str += " " * strdiff
398
+ elif strdiff < 0 :
399
+ rxb_str += " " * - strdiff
400
+
401
+ rxstat = rxb_str + " " + RNS .prettyspeed (stats ["rxs" ])
402
+ txstat = txb_str + " " + RNS .prettyspeed (stats ["txs" ])
403
+ print (f"\n Totals : { txstat } \n { rxstat } " )
404
+
377
405
if "transport_id" in stats and stats ["transport_id" ] != None :
378
406
print ("\n Transport Instance " + RNS .prettyhexrep (stats ["transport_id" ])+ " running" )
379
407
if "probe_responder" in stats and stats ["probe_responder" ] != None :
@@ -426,11 +454,19 @@ def main(must_exit=True, rns_instance=None):
426
454
default = False ,
427
455
)
428
456
457
+ parser .add_argument (
458
+ "-t" ,
459
+ "--totals" ,
460
+ action = "store_true" ,
461
+ help = "display traffic totals" ,
462
+ default = False ,
463
+ )
464
+
429
465
parser .add_argument (
430
466
"-s" ,
431
467
"--sort" ,
432
468
action = "store" ,
433
- help = "sort interfaces by [rate, traffic, rx, tx, announces, arx, atx, held]" ,
469
+ help = "sort interfaces by [rate, traffic, rx, tx, rxs, txs, announces, arx, atx, held]" ,
434
470
default = None ,
435
471
type = str
436
472
)
@@ -504,6 +540,7 @@ def main(must_exit=True, rns_instance=None):
504
540
remote_timeout = args .w ,
505
541
must_exit = must_exit ,
506
542
rns_instance = rns_instance ,
543
+ traffic_totals = args .totals ,
507
544
)
508
545
509
546
except KeyboardInterrupt :
0 commit comments