#[repr(C)]pub struct NetTraversalStatsV2 {Show 13 fields
pub punches_attempted: u64,
pub punches_succeeded: u64,
pub punches_failed: u64,
pub relay_fallbacks: u64,
pub punch_timeouts: u64,
pub punch_rejections: u64,
pub rendezvous_no_relay: u64,
pub upgrades_attempted: u64,
pub upgrades_succeeded: u64,
pub upgrades_deferred_busy: u64,
pub port_mapping_renewals: u64,
pub port_mapping_active: u8,
pub port_mapping_external: [c_char; 64],
}Expand description
Full traversal-stats snapshot for net_mesh_traversal_stats_v2.
#[repr(C)] — field order, widths, and the 64-byte address
buffer are ABI; matched by net_traversal_stats_v2_t in
include/net.go.h. Extend only by appending a new versioned
struct + call, never by mutating this one.
Fields§
§punches_attempted: u64Punches whose PunchRequest was successfully mediated.
punches_succeeded: u64Mediated punches that produced a direct session.
punches_failed: u64Derived: punches_attempted - punches_succeeded (saturating).
relay_fallbacks: u64connect_direct calls that resolved on the routed path.
punch_timeouts: u64Punch flows that gave up on a deadline (cause counter).
punch_rejections: u64Punch flows refused by a typed PunchReject (cause counter).
rendezvous_no_relay: u64Punch-needing pairs skipped with no coordinator candidate.
upgrades_attempted: u64Background direct-path upgrades started (Stage 3).
upgrades_succeeded: u64Upgrades that replaced a relay session with a direct one.
upgrades_deferred_busy: u64Upgrades deferred by the C3 busy gate (retried; not failures).
port_mapping_renewals: u64Successful renewal ticks since the current mapping installed.
port_mapping_active: u81 when a port mapping is currently installed, else 0.
port_mapping_external: [c_char; 64]NUL-terminated "ip:port" of the mapped external address;
empty string when no mapping is active. 64 bytes covers the
longest textual form ([v6]:65535 ≤ 54 chars).