public override void Stop()
{
_oco.IsActive = false;
Interlocked.Exchange(ref _running, 0);
_oco_trim_timer.TryCancel();
base.Stop();
List<TunnelEdge> tunnels = _tunnels;
foreach(Edge e in tunnels) {
try {
e.Close();
} catch { }
}
}