-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsender_node.py
More file actions
84 lines (64 loc) · 1.43 KB
/
Copy pathsender_node.py
File metadata and controls
84 lines (64 loc) · 1.43 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
from __future__ import annotations
import argparse
import logging
import os
import sys
from common import state_writer
logging.basicConfig(
level=logging.INFO,
format="%(asctime)s [%(levelname)s] %(name)s: %(message)s",
)
logger = logging.getLogger("sender")
import fountain
from sender.pipeline import run_sender
if __name__ == "__main__":
p = argparse.ArgumentParser(
description="Data Diode Sender"
)
p.add_argument(
"--file",
required=True,
help="File to transfer"
)
p.add_argument(
"--receiver-ip",
required=True,
help="Receiver IP address"
)
p.add_argument(
"--security",
default="standard",
help="standard/critical/classified"
)
p.add_argument(
"--pps",
default=50000,
type=int
)
p.add_argument(
"--loss",
default=0.0,
type=float
)
p.add_argument(
"--port",
default=20000,
type=int
)
args = p.parse_args()
state_writer.clear_state()
file_size = os.path.getsize(args.file)
logger.info(
f"Transferring: {args.file} "
f"({file_size/1024**2:.2f} MB) "
f"| security={args.security} "
f"| pps={args.pps}"
)
ok = run_sender(
args.file,
(args.receiver_ip, args.port),
args.security,
args.pps,
args.loss
)
sys.exit(0 if ok else 1)