SYMBOL INDEX (2068 symbols across 94 files) FILE: crates/trippy-core/src/builder.rs type Builder (line 39) | pub struct Builder { method new (line 116) | pub fn new(target_addr: IpAddr) -> Self { method source_addr (line 142) | pub fn source_addr(self, source_addr: Option) -> Self { method interface (line 170) | pub fn interface>(self, interface: Option) -> Self { method protocol (line 192) | pub fn protocol(self, protocol: Protocol) -> Self { method trace_identifier (line 211) | pub fn trace_identifier(self, trace_id: u16) -> Self { method privilege_mode (line 235) | pub fn privilege_mode(self, privilege_mode: PrivilegeMode) -> Self { method multipath_strategy (line 259) | pub fn multipath_strategy(self, multipath_strategy: MultipathStrategy)... method packet_size (line 281) | pub fn packet_size(self, packet_size: u16) -> Self { method payload_pattern (line 303) | pub fn payload_pattern(self, payload_pattern: u8) -> Self { method tos (line 325) | pub fn tos(self, tos: u8) -> Self { method icmp_extension_parse_mode (line 349) | pub fn icmp_extension_parse_mode( method read_timeout (line 377) | pub fn read_timeout(self, read_timeout: Duration) -> Self { method tcp_connect_timeout (line 402) | pub fn tcp_connect_timeout(self, tcp_connect_timeout: Duration) -> Self { method max_rounds (line 427) | pub fn max_rounds(self, max_rounds: Option) -> Self { method first_ttl (line 450) | pub fn first_ttl(self, first_ttl: u8) -> Self { method max_ttl (line 472) | pub fn max_ttl(self, max_ttl: u8) -> Self { method grace_duration (line 497) | pub fn grace_duration(self, grace_duration: Duration) -> Self { method max_inflight (line 519) | pub fn max_inflight(self, max_inflight: u8) -> Self { method initial_sequence (line 541) | pub fn initial_sequence(self, initial_sequence: u16) -> Self { method port_direction (line 565) | pub fn port_direction(self, port_direction: PortDirection) -> Self { method min_round_duration (line 590) | pub fn min_round_duration(self, min_round_duration: Duration) -> Self { method max_round_duration (line 615) | pub fn max_round_duration(self, max_round_duration: Duration) -> Self { method max_samples (line 637) | pub fn max_samples(self, max_samples: usize) -> Self { method max_flows (line 659) | pub fn max_flows(self, max_flows: usize) -> Self { method drop_privileges (line 678) | pub fn drop_privileges(self, drop_privileges: bool) -> Self { method build (line 703) | pub fn build(self) -> Result { method default (line 68) | fn default() -> Self { constant SOURCE_ADDR (line 773) | const SOURCE_ADDR: IpAddr = IpAddr::V4(Ipv4Addr::UNSPECIFIED); constant TARGET_ADDR (line 774) | const TARGET_ADDR: IpAddr = IpAddr::V4(Ipv4Addr::new(2, 2, 2, 2)); function test_builder_minimal (line 777) | fn test_builder_minimal() { function test_builder_full (line 839) | fn test_builder_full() { function test_zero_max_rounds (line 901) | fn test_zero_max_rounds() { function test_invalid_initial_sequence (line 910) | fn test_invalid_initial_sequence() { FILE: crates/trippy-core/src/config.rs constant DEFAULT_PRIVILEGE_MODE (line 17) | pub const DEFAULT_PRIVILEGE_MODE: PrivilegeMode = PrivilegeMode::Privile... constant DEFAULT_STRATEGY_PROTOCOL (line 20) | pub const DEFAULT_STRATEGY_PROTOCOL: Protocol = Protocol::Icmp; constant DEFAULT_STRATEGY_MULTIPATH (line 23) | pub const DEFAULT_STRATEGY_MULTIPATH: MultipathStrategy = MultipathStrat... constant DEFAULT_ICMP_EXTENSION_PARSE_MODE (line 26) | pub const DEFAULT_ICMP_EXTENSION_PARSE_MODE: IcmpExtensionParseMode = constant DEFAULT_STRATEGY_MAX_INFLIGHT (line 30) | pub const DEFAULT_STRATEGY_MAX_INFLIGHT: u8 = 24; constant DEFAULT_STRATEGY_FIRST_TTL (line 33) | pub const DEFAULT_STRATEGY_FIRST_TTL: u8 = 1; constant DEFAULT_STRATEGY_MAX_TTL (line 36) | pub const DEFAULT_STRATEGY_MAX_TTL: u8 = 64; constant DEFAULT_STRATEGY_PACKET_SIZE (line 39) | pub const DEFAULT_STRATEGY_PACKET_SIZE: u16 = 84; constant DEFAULT_STRATEGY_PAYLOAD_PATTERN (line 42) | pub const DEFAULT_STRATEGY_PAYLOAD_PATTERN: u8 = 0; constant DEFAULT_STRATEGY_MIN_ROUND_DURATION (line 45) | pub const DEFAULT_STRATEGY_MIN_ROUND_DURATION: Duration = Duration::from... constant DEFAULT_STRATEGY_MAX_ROUND_DURATION (line 48) | pub const DEFAULT_STRATEGY_MAX_ROUND_DURATION: Duration = Duration::from... constant DEFAULT_STRATEGY_INITIAL_SEQUENCE (line 51) | pub const DEFAULT_STRATEGY_INITIAL_SEQUENCE: u16 = 33434; constant DEFAULT_STRATEGY_TOS (line 54) | pub const DEFAULT_STRATEGY_TOS: u8 = 0; constant DEFAULT_STRATEGY_READ_TIMEOUT (line 57) | pub const DEFAULT_STRATEGY_READ_TIMEOUT: Duration = Duration::from_milli... constant DEFAULT_STRATEGY_GRACE_DURATION (line 60) | pub const DEFAULT_STRATEGY_GRACE_DURATION: Duration = Duration::from_mil... constant DEFAULT_STRATEGY_TCP_CONNECT_TIMEOUT (line 63) | pub const DEFAULT_STRATEGY_TCP_CONNECT_TIMEOUT: Duration = Duration::fro... constant DEFAULT_MAX_SAMPLES (line 66) | pub const DEFAULT_MAX_SAMPLES: usize = 256; constant DEFAULT_MAX_FLOWS (line 69) | pub const DEFAULT_MAX_FLOWS: usize = 64; type PrivilegeMode (line 74) | pub enum PrivilegeMode { method is_unprivileged (line 83) | pub const fn is_unprivileged(self) -> bool { method fmt (line 92) | fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { type IcmpExtensionParseMode (line 102) | pub enum IcmpExtensionParseMode { method is_enabled (line 111) | pub const fn is_enabled(self) -> bool { method fmt (line 120) | fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { type Protocol (line 130) | pub enum Protocol { method fmt (line 140) | fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { type MultipathStrategy (line 151) | pub enum MultipathStrategy { method fmt (line 184) | fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { type PortDirection (line 195) | pub enum PortDirection { method new_fixed_src (line 218) | pub const fn new_fixed_src(src: u16) -> Self { method new_fixed_dest (line 223) | pub const fn new_fixed_dest(dest: u16) -> Self { method new_fixed_both (line 228) | pub const fn new_fixed_both(src: u16, dest: u16) -> Self { method src (line 233) | pub const fn src(&self) -> Option { method dest (line 240) | pub const fn dest(&self) -> Option { type StateConfig (line 250) | pub struct StateConfig { method default (line 264) | fn default() -> Self { type ChannelConfig (line 274) | pub struct ChannelConfig { method default (line 289) | fn default() -> Self { type StrategyConfig (line 308) | pub struct StrategyConfig { method default (line 325) | fn default() -> Self { FILE: crates/trippy-core/src/constants.rs constant MAX_TTL (line 5) | pub const MAX_TTL: u8 = 254; constant MAX_SEQUENCE_PER_ROUND (line 12) | pub const MAX_SEQUENCE_PER_ROUND: u16 = 512; constant MAX_INITIAL_SEQUENCE (line 19) | pub const MAX_INITIAL_SEQUENCE: u16 = u16::MAX - (MAX_SEQUENCE_PER_ROUND... FILE: crates/trippy-core/src/error.rs type Result (line 7) | pub type Result = std::result::Result; type Error (line 11) | pub enum Error { type IoResult (line 39) | pub type IoResult = std::result::Result; type IoError (line 43) | pub enum IoError { method kind (line 56) | pub fn kind(&self) -> ErrorKind { type ErrorKind (line 69) | pub enum ErrorKind { type IoOperation (line 78) | pub enum IoOperation { method fmt (line 108) | fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { FILE: crates/trippy-core/src/flows.rs type FlowId (line 23) | pub struct FlowId(pub u64); method fmt (line 26) | fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { type FlowRegistry (line 33) | pub struct FlowRegistry { method new (line 42) | pub const fn new() -> Self { method register (line 62) | pub fn register(&mut self, flow: Flow) -> FlowId { method flows (line 83) | pub fn flows(&self) -> &[(Flow, FlowId)] { type Flow (line 90) | pub struct Flow { method from_hops (line 100) | pub fn from_hops(hops: impl IntoIterator>) -> Se... method check (line 129) | pub fn check(&self, flow: &Self) -> CheckStatus { method merge (line 149) | fn merge(&mut self, flow: &Self) { method fmt (line 167) | fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { type CheckStatus (line 174) | pub enum CheckStatus { type FlowEntry (line 185) | pub enum FlowEntry { method fmt (line 193) | fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { function test_single_flow (line 210) | fn test_single_flow() { function test_two_different_flows (line 222) | fn test_two_different_flows() { function test_two_same_flows (line 234) | fn test_two_same_flows() { function test_two_same_one_different_flows (line 246) | fn test_two_same_one_different_flows() { function test_merge_flow1 (line 261) | fn test_merge_flow1() { function test_merge_flow2 (line 281) | fn test_merge_flow2() { function test_merge_flow3 (line 298) | fn test_merge_flow3() { function test_subset (line 324) | fn test_subset() { function test_subset_any (line 335) | fn test_subset_any() { function test_superset (line 346) | fn test_superset() { function test_superset_any (line 357) | fn test_superset_any() { function test_start_any_then_same_flows (line 368) | fn test_start_any_then_same_flows() { function test_start_any_then_diff_flows (line 379) | fn test_start_any_then_diff_flows() { function addr (line 390) | fn addr(addr: &str) -> Option { FILE: crates/trippy-core/src/net.rs type Network (line 33) | pub trait Network { method send_probe (line 35) | fn send_probe(&mut self, probe: Probe) -> Result<()>; method recv_probe (line 40) | fn recv_probe(&mut self) -> Result>; FILE: crates/trippy-core/src/net/channel.rs constant MAX_PACKET_SIZE (line 13) | pub const MAX_PACKET_SIZE: usize = 1024; constant MAX_TCP_PROBES (line 16) | const MAX_TCP_PROBES: usize = 256; type Channel (line 19) | pub struct Channel { type FamilyConfig (line 30) | enum FamilyConfig { function connect (line 40) | pub fn connect(config: &ChannelConfig) -> Result { method send_probe (line 93) | fn send_probe(&mut self, probe: Probe) -> Result<()> { method recv_probe (line 102) | fn recv_probe(&mut self) -> Result> { function dispatch_icmp_probe (line 120) | fn dispatch_icmp_probe(&mut self, probe: &Probe) -> Result<()> { function dispatch_udp_probe (line 130) | fn dispatch_udp_probe(&mut self, probe: &Probe) -> Result<()> { function dispatch_tcp_probe (line 140) | fn dispatch_tcp_probe(&mut self, probe: &Probe) -> Result<()> { function recv_icmp_probe (line 156) | fn recv_icmp_probe(&mut self) -> Result> { function recv_tcp_sockets (line 172) | fn recv_tcp_sockets(&mut self) -> Result> { type TcpProbe (line 203) | struct TcpProbe { function new (line 211) | pub const fn new(socket: S, src_port: Port, dest_port: Port, start: Syst... function make_icmp_send_socket (line 223) | fn make_icmp_send_socket(addr: IpAddr, raw: bool) -> Result { function make_udp_send_socket (line 232) | fn make_udp_send_socket(addr: IpAddr, raw: bool) -> Result { function make_recv_socket (line 241) | fn make_recv_socket(addr: IpAddr, raw: bool) -> Result { FILE: crates/trippy-core/src/net/common.rs type ErrorMapper (line 6) | pub struct ErrorMapper; method in_progress (line 10) | pub fn in_progress(err: Error) -> Result<()> { method addr_in_use (line 22) | pub fn addr_in_use(err: Error, addr: SocketAddr) -> Error { method probe_failed (line 34) | pub fn probe_failed(err: Error, kind: ErrorKind) -> Error { constant ADDR (line 49) | const ADDR: SocketAddr = SocketAddr::V4(SocketAddrV4::new(Ipv4Addr::UNSP... function test_in_progress (line 52) | fn test_in_progress() { function test_not_in_progress (line 59) | fn test_not_in_progress() { function test_addr_in_use (line 66) | fn test_addr_in_use() { function test_not_addr_in_use (line 74) | fn test_not_addr_in_use() { function test_probe_failed (line 82) | fn test_probe_failed() { FILE: crates/trippy-core/src/net/extension.rs constant ICMP_EXTENSION_VERSION (line 10) | const ICMP_EXTENSION_VERSION: u8 = 2; type Error (line 13) | type Error = Error; method try_from (line 15) | fn try_from(value: &[u8]) -> Result { type Error (line 21) | type Error = Error; method try_from (line 23) | fn try_from(value: ExtensionsPacket<'_>) -> Result { method from (line 44) | fn from(value: MplsLabelStackPacket<'_>) -> Self { method from (line 56) | fn from(value: MplsLabelStackMemberPacket<'_>) -> Self { method from (line 67) | fn from(value: ExtensionObjectPacket<'_>) -> Self { function test_convert_mpls_extensions (line 82) | fn test_convert_mpls_extensions() { function test_convert_unknown_extensions (line 104) | fn test_convert_unknown_extensions() { function test_convert_unknown_version (line 123) | fn test_convert_unknown_version() { FILE: crates/trippy-core/src/net/ipv4.rs constant MAX_UDP_PACKET_BUF (line 29) | const MAX_UDP_PACKET_BUF: usize = MAX_PACKET_SIZE - Ipv4Packet::minimum_... constant MAX_UDP_PAYLOAD_BUF (line 32) | const MAX_UDP_PAYLOAD_BUF: usize = MAX_UDP_PACKET_BUF - UdpPacket::minim... constant MAX_ICMP_PACKET_BUF (line 35) | const MAX_ICMP_PACKET_BUF: usize = MAX_PACKET_SIZE - Ipv4Packet::minimum... constant MAX_ICMP_PAYLOAD_BUF (line 38) | const MAX_ICMP_PAYLOAD_BUF: usize = MAX_ICMP_PACKET_BUF - IcmpPacket::mi... constant MIN_PACKET_SIZE_ICMP (line 41) | const MIN_PACKET_SIZE_ICMP: usize = constant MIN_PACKET_SIZE_UDP (line 45) | const MIN_PACKET_SIZE_UDP: usize = constant DONT_FRAGMENT (line 51) | const DONT_FRAGMENT: u16 = 0x4000; type Ipv4 (line 55) | pub struct Ipv4 { method dispatch_icmp_probe (line 86) | pub fn dispatch_icmp_probe( method dispatch_udp_probe (line 122) | pub fn dispatch_udp_probe( method dispatch_udp_probe_raw (line 146) | fn dispatch_udp_probe_raw( method dispatch_udp_probe_non_raw (line 186) | fn dispatch_udp_probe_non_raw(&self, probe: &Probe, payload... method dispatch_tcp_probe (line 204) | pub fn dispatch_tcp_probe(&self, probe: &Probe) -> Result { method recv_icmp_probe (line 227) | pub fn recv_icmp_probe(&self, recv_socket: &mut S) -> Resul... method recv_tcp_socket (line 243) | pub fn recv_tcp_socket( method extract_probe_resp (line 288) | fn extract_probe_resp(&self, ipv4: &Ipv4Packet<'_>) -> Result) -> Result( method make_udp_packet (line 421) | fn make_udp_packet<'a>( method make_ipv4_packet (line 443) | fn make_ipv4_packet<'a>( method calc_udp_checksum (line 474) | pub fn calc_udp_checksum( method default (line 68) | fn default() -> Self { constant ADDR_NOT_AVAILABLE_KIND (line 488) | const ADDR_NOT_AVAILABLE_KIND: ErrorKind = ErrorKind::Std(io::ErrorKind:... constant INVALID_INPUT_KIND (line 489) | const INVALID_INPUT_KIND: ErrorKind = ErrorKind::Std(io::ErrorKind::Inva... function icmp_payload_size (line 491) | const fn icmp_payload_size(packet_size: usize) -> usize { function udp_payload_size (line 497) | const fn udp_payload_size(packet_size: usize) -> usize { function extract_echo_request (line 504) | fn extract_echo_request<'a>(ipv4: &'a Ipv4Packet<'a>) -> Result) -> Result<(u16, u16, u16, u... function extract_tcp_packet (line 533) | fn extract_tcp_packet(ipv4: &Ipv4Packet<'_>) -> Result<(u16, u16)> { function test_dispatch_icmp_probe_no_payload (line 561) | fn test_dispatch_icmp_probe_no_payload() -> anyhow::Result<()> { function test_dispatch_icmp_probe_with_payload (line 599) | fn test_dispatch_icmp_probe_with_payload() -> anyhow::Result<()> { function test_dispatch_icmp_probe_invalid_packet_size_low (line 638) | fn test_dispatch_icmp_probe_invalid_packet_size_low() -> anyhow::Result<... function test_dispatch_icmp_probe_invalid_packet_size_high (line 660) | fn test_dispatch_icmp_probe_invalid_packet_size_high() -> anyhow::Result... function test_dispatch_icmp_probe_with_tos (line 682) | fn test_dispatch_icmp_probe_with_tos() -> anyhow::Result<()> { function test_dispatch_udp_probe_classic_privileged_no_payload (line 722) | fn test_dispatch_udp_probe_classic_privileged_no_payload() -> anyhow::Re... function test_dispatch_udp_probe_classic_privileged_with_payload (line 762) | fn test_dispatch_udp_probe_classic_privileged_with_payload() -> anyhow::... function test_dispatch_udp_probe_paris_privileged (line 803) | fn test_dispatch_udp_probe_paris_privileged() -> anyhow::Result<()> { function test_dispatch_udp_probe_dublin_privileged (line 848) | fn test_dispatch_udp_probe_dublin_privileged() -> anyhow::Result<()> { function test_dispatch_udp_probe_classic_unprivileged_no_payload (line 893) | fn test_dispatch_udp_probe_classic_unprivileged_no_payload() -> anyhow::... function test_dispatch_udp_probe_classic_unprivileged_with_payload (line 956) | fn test_dispatch_udp_probe_classic_unprivileged_with_payload() -> anyhow... function test_dispatch_udp_probe_classic_privileged_with_tos (line 1019) | fn test_dispatch_udp_probe_classic_privileged_with_tos() -> anyhow::Resu... function test_dispatch_udp_probe_classic_unprivileged_with_tos (line 1061) | fn test_dispatch_udp_probe_classic_unprivileged_with_tos() -> anyhow::Re... function test_dispatch_udp_probe_invalid_packet_size_low (line 1126) | fn test_dispatch_udp_probe_invalid_packet_size_low() -> anyhow::Result<(... function test_dispatch_udp_probe_invalid_packet_size_high (line 1150) | fn test_dispatch_udp_probe_invalid_packet_size_high() -> anyhow::Result<... function test_dispatch_tcp_probe (line 1174) | fn test_dispatch_tcp_probe() -> anyhow::Result<()> { function test_recv_icmp_probe_echo_reply (line 1226) | fn test_recv_icmp_probe_echo_reply() -> anyhow::Result<()> { function test_recv_icmp_probe_time_exceeded_icmp_no_extensions (line 1274) | fn test_recv_icmp_probe_time_exceeded_icmp_no_extensions() -> anyhow::Re... function test_recv_icmp_probe_destination_unreachable_icmp_no_extensions (line 1325) | fn test_recv_icmp_probe_destination_unreachable_icmp_no_extensions() -> ... function test_recv_icmp_probe_time_exceeded_udp_no_extensions (line 1373) | fn test_recv_icmp_probe_time_exceeded_udp_no_extensions() -> anyhow::Res... function test_recv_icmp_probe_destination_unreachable_udp_no_extensions (line 1441) | fn test_recv_icmp_probe_destination_unreachable_udp_no_extensions() -> a... function test_recv_icmp_probe_time_exceeded_tcp_no_extensions (line 1506) | fn test_recv_icmp_probe_time_exceeded_tcp_no_extensions() -> anyhow::Res... function test_recv_icmp_probe_destination_unreachable_tcp_no_extensions (line 1561) | fn test_recv_icmp_probe_destination_unreachable_tcp_no_extensions() -> a... function test_recv_icmp_probe_wrong_icmp_original_datagram_type_ignored (line 1613) | fn test_recv_icmp_probe_wrong_icmp_original_datagram_type_ignored() -> a... function test_recv_icmp_probe_wrong_udp_original_datagram_type_ignored (line 1658) | fn test_recv_icmp_probe_wrong_udp_original_datagram_type_ignored() -> an... function test_recv_icmp_probe_wrong_tcp_original_datagram_type_ignored (line 1703) | fn test_recv_icmp_probe_wrong_tcp_original_datagram_type_ignored() -> an... function test_recv_tcp_socket_tcp_reply (line 1747) | fn test_recv_tcp_socket_tcp_reply() -> anyhow::Result<()> { function test_recv_tcp_socket_tcp_refused (line 1789) | fn test_recv_tcp_socket_tcp_refused() -> anyhow::Result<()> { function test_recv_tcp_socket_tcp_host_unreachable (line 1828) | fn test_recv_tcp_socket_tcp_host_unreachable() -> anyhow::Result<()> { function test_icmp_time_exceeded_fragment_reassembly_ignored (line 1882) | fn test_icmp_time_exceeded_fragment_reassembly_ignored() -> anyhow::Resu... function test_recv_icmp_probe_udp_wrong_payload_size (line 1918) | fn test_recv_icmp_probe_udp_wrong_payload_size() -> anyhow::Result<()> { function make_icmp_probe (line 1985) | fn make_icmp_probe() -> Probe { function make_udp_probe (line 1998) | fn make_udp_probe(src_port: u16, dest_port: u16) -> Probe { FILE: crates/trippy-core/src/net/ipv6.rs constant MAX_UDP_PACKET_BUF (line 28) | const MAX_UDP_PACKET_BUF: usize = MAX_PACKET_SIZE - Ipv6Packet::minimum_... constant MAX_UDP_PAYLOAD_BUF (line 31) | const MAX_UDP_PAYLOAD_BUF: usize = MAX_UDP_PACKET_BUF - UdpPacket::minim... constant MAX_ICMP_PACKET_BUF (line 34) | const MAX_ICMP_PACKET_BUF: usize = MAX_PACKET_SIZE - Ipv6Packet::minimum... constant MAX_ICMP_PAYLOAD_BUF (line 37) | const MAX_ICMP_PAYLOAD_BUF: usize = MAX_ICMP_PACKET_BUF - IcmpPacket::mi... constant MIN_PACKET_SIZE_ICMP (line 40) | const MIN_PACKET_SIZE_ICMP: usize = constant MIN_PACKET_SIZE_UDP (line 44) | const MIN_PACKET_SIZE_UDP: usize = constant MAGIC (line 48) | const MAGIC: &[u8] = b"trippy"; type Ipv6 (line 52) | pub struct Ipv6 { method dispatch_icmp_probe (line 83) | pub fn dispatch_icmp_probe( method dispatch_udp_probe (line 108) | pub fn dispatch_udp_probe( method dispatch_udp_probe_raw (line 128) | fn dispatch_udp_probe_raw( method dispatch_udp_probe_non_raw (line 165) | fn dispatch_udp_probe_non_raw(&self, probe: &Probe, payload... method dispatch_tcp_probe (line 182) | pub fn dispatch_tcp_probe(&self, probe: &Probe) -> Result { method recv_icmp_probe (line 203) | pub fn recv_icmp_probe(&self, recv_socket: &mut S) -> Resul... method recv_tcp_socket (line 223) | pub fn recv_tcp_socket( method extract_probe_resp (line 267) | fn extract_probe_resp( method extract_probe_proto_resp (line 339) | fn extract_probe_proto_resp(&self, ipv6: &Ipv6Packet<'_>) -> Result( method make_echo_request_icmp_packet (line 406) | fn make_echo_request_icmp_packet<'a>( method default (line 65) | fn default() -> Self { function icmp_payload_size (line 430) | const fn icmp_payload_size(packet_size: usize) -> usize { function udp_payload_size (line 436) | const fn udp_payload_size(packet_size: usize) -> usize { function extract_echo_request (line 442) | fn extract_echo_request(ipv6: &Ipv6Packet<'_>) -> Result<(u16, u16)> { function extract_udp_packet (line 450) | fn extract_udp_packet(ipv6: &Ipv6Packet<'_>) -> Result<(u16, u16, u16, u... function extract_tcp_packet (line 479) | fn extract_tcp_packet(ipv6: &Ipv6Packet<'_>) -> Result<(u16, u16)> { function udp_payload_has_magic_prefix (line 484) | fn udp_payload_has_magic_prefix(ipv6: &Ipv6Packet<'_>) -> Result { function test_dispatch_icmp_probe_no_payload (line 504) | fn test_dispatch_icmp_probe_no_payload() -> anyhow::Result<()> { function test_dispatch_icmp_probe_with_payload (line 544) | fn test_dispatch_icmp_probe_with_payload() -> anyhow::Result<()> { function test_dispatch_icmp_probe_invalid_packet_size_low (line 589) | fn test_dispatch_icmp_probe_invalid_packet_size_low() -> anyhow::Result<... function test_dispatch_icmp_probe_invalid_packet_size_high (line 609) | fn test_dispatch_icmp_probe_invalid_packet_size_high() -> anyhow::Result... function test_dispatch_udp_probe_classic_privileged_no_payload (line 629) | fn test_dispatch_udp_probe_classic_privileged_no_payload() -> anyhow::Re... function test_dispatch_udp_probe_classic_privileged_with_payload (line 674) | fn test_dispatch_udp_probe_classic_privileged_with_payload() -> anyhow::... function test_dispatch_udp_probe_paris_privileged (line 723) | fn test_dispatch_udp_probe_paris_privileged() -> anyhow::Result<()> { function test_dispatch_udp_probe_dublin_privileged (line 780) | fn test_dispatch_udp_probe_dublin_privileged() -> anyhow::Result<()> { function test_dispatch_udp_probe_classic_unprivileged_no_payload (line 837) | fn test_dispatch_udp_probe_classic_unprivileged_no_payload() -> anyhow::... function test_dispatch_udp_probe_classic_unprivileged_with_payload (line 900) | fn test_dispatch_udp_probe_classic_unprivileged_with_payload() -> anyhow... function test_dispatch_udp_probe_invalid_packet_size_low (line 963) | fn test_dispatch_udp_probe_invalid_packet_size_low() -> anyhow::Result<(... function test_dispatch_udp_probe_invalid_packet_size_high (line 987) | fn test_dispatch_udp_probe_invalid_packet_size_high() -> anyhow::Result<... function test_dispatch_tcp_probe (line 1011) | fn test_dispatch_tcp_probe() -> anyhow::Result<()> { function test_recv_icmp_probe_echo_reply (line 1060) | fn test_recv_icmp_probe_echo_reply() -> anyhow::Result<()> { function test_recv_icmp_probe_time_exceeded_icmp_no_extensions (line 1110) | fn test_recv_icmp_probe_time_exceeded_icmp_no_extensions() -> anyhow::Re... function test_recv_icmp_probe_destination_unreachable_icmp_no_extensions (line 1165) | fn test_recv_icmp_probe_destination_unreachable_icmp_no_extensions() -> ... function test_recv_icmp_probe_time_exceeded_udp_no_extensions (line 1220) | fn test_recv_icmp_probe_time_exceeded_udp_no_extensions() -> anyhow::Res... function test_recv_icmp_probe_destination_unreachable_udp_no_extensions (line 1287) | fn test_recv_icmp_probe_destination_unreachable_udp_no_extensions() -> a... function test_recv_icmp_probe_time_exceeded_udp_dublin_with_magic (line 1364) | fn test_recv_icmp_probe_time_exceeded_udp_dublin_with_magic() -> anyhow:... function test_recv_icmp_probe_time_exceeded_tcp_no_extensions (line 1433) | fn test_recv_icmp_probe_time_exceeded_tcp_no_extensions() -> anyhow::Res... function test_recv_icmp_probe_destination_unreachable_tcp_no_extensions (line 1493) | fn test_recv_icmp_probe_destination_unreachable_tcp_no_extensions() -> a... function test_recv_icmp_probe_wrong_icmp_original_datagram_type_ignored (line 1553) | fn test_recv_icmp_probe_wrong_icmp_original_datagram_type_ignored() -> a... function test_recv_icmp_probe_wrong_udp_original_datagram_type_ignored (line 1602) | fn test_recv_icmp_probe_wrong_udp_original_datagram_type_ignored() -> an... function test_recv_icmp_probe_wrong_tcp_original_datagram_type_ignored (line 1651) | fn test_recv_icmp_probe_wrong_tcp_original_datagram_type_ignored() -> an... function test_recv_tcp_socket_tcp_reply (line 1700) | fn test_recv_tcp_socket_tcp_reply() -> anyhow::Result<()> { function test_recv_tcp_socket_tcp_refused (line 1742) | fn test_recv_tcp_socket_tcp_refused() -> anyhow::Result<()> { function test_recv_tcp_socket_tcp_host_unreachable (line 1781) | fn test_recv_tcp_socket_tcp_host_unreachable() -> anyhow::Result<()> { function test_icmp_time_exceeded_fragment_reassembly_ignored (line 1835) | fn test_icmp_time_exceeded_fragment_reassembly_ignored() -> anyhow::Resu... function make_icmp_probe (line 1869) | fn make_icmp_probe() -> Probe { function make_udp_probe (line 1882) | fn make_udp_probe(src_port: u16, dest_port: u16) -> Probe { FILE: crates/trippy-core/src/net/platform.rs type Platform (line 21) | pub trait Platform { method byte_order_for_address (line 23) | fn byte_order_for_address(addr: IpAddr) -> Result; method lookup_interface_addr (line 29) | fn lookup_interface_addr(addr: IpAddr, name: &str) -> Result; method discover_local_addr (line 32) | fn discover_local_addr(target_addr: IpAddr, port: u16) -> Result; FILE: crates/trippy-core/src/net/platform/byte_order.rs type Ipv4ByteOrder (line 18) | pub enum Ipv4ByteOrder { method for_address (line 51) | pub fn for_address(addr: IpAddr) -> Result { method adjust_length (line 57) | pub const fn adjust_length(self, ipv4_total_length: u16) -> u16 { FILE: crates/trippy-core/src/net/platform/unix.rs type PlatformImpl (line 5) | pub struct PlatformImpl; method byte_order_for_address (line 8) | fn byte_order_for_address(addr: IpAddr) -> Result { method lookup_interface_addr (line 11) | fn lookup_interface_addr(addr: IpAddr, name: &str) -> Result { method discover_local_addr (line 14) | fn discover_local_addr(target_addr: IpAddr, port: u16) -> Result { constant TEST_PACKET_LENGTH (line 33) | const TEST_PACKET_LENGTH: u16 = 256; function for_address (line 42) | pub const fn for_address(_src_addr: IpAddr) -> Result { function for_address (line 48) | pub fn for_address(addr: IpAddr) -> Result { function test_send_local_ip4_packet (line 76) | fn test_send_local_ip4_packet(src_addr: Ipv4Addr, total_length: u16) -> ... function lookup_interface_addr (line 103) | pub fn lookup_interface_addr(addr: IpAddr, name: &str) -> Result { function lookup_interface_addr_ipv4 (line 111) | fn lookup_interface_addr_ipv4(name: &str) -> Result { function lookup_interface_addr_ipv6 (line 126) | fn lookup_interface_addr_ipv6(name: &str) -> Result { function discover_local_addr (line 142) | pub fn discover_local_addr(target_addr: IpAddr, port: u16) -> Result Result<()> { type SocketImpl (line 177) | pub struct SocketImpl { method new (line 182) | fn new(domain: Domain, ty: Type, protocol: Protocol) -> IoResult { method new_raw_ipv4 (line 189) | pub(super) fn new_raw_ipv4(protocol: Protocol) -> IoResult { method new_raw_ipv6 (line 196) | fn new_raw_ipv6(protocol: Protocol) -> IoResult { method new_dgram_ipv4 (line 203) | pub(super) fn new_dgram_ipv4(protocol: Protocol) -> IoResult { method new_dgram_ipv6 (line 210) | fn new_dgram_ipv6(protocol: Protocol) -> IoResult { method set_nonblocking (line 217) | fn set_nonblocking(&self, nonblocking: bool) -> IoResult<()> { method local_addr (line 223) | pub(super) fn local_addr(&self) -> IoResult> { method new_icmp_send_socket_ipv4 (line 234) | fn new_icmp_send_socket_ipv4(raw: bool) -> IoResult { method new_icmp_send_socket_ipv6 (line 248) | fn new_icmp_send_socket_ipv6(raw: bool) -> IoResult { method new_udp_send_socket_ipv4 (line 260) | fn new_udp_send_socket_ipv4(raw: bool) -> IoResult { method new_udp_send_socket_ipv6 (line 273) | fn new_udp_send_socket_ipv6(raw: bool) -> IoResult { method new_recv_socket_ipv4 (line 285) | fn new_recv_socket_ipv4(_: Ipv4Addr, raw: bool) -> IoResult { method new_recv_socket_ipv6 (line 298) | fn new_recv_socket_ipv6(_: Ipv6Addr, raw: bool) -> IoResult { method new_stream_socket_ipv4 (line 310) | fn new_stream_socket_ipv4() -> IoResult { method new_stream_socket_ipv6 (line 317) | fn new_stream_socket_ipv6() -> IoResult { method new_udp_dgram_socket_ipv4 (line 324) | fn new_udp_dgram_socket_ipv4() -> IoResult { method new_udp_dgram_socket_ipv6 (line 328) | fn new_udp_dgram_socket_ipv6() -> IoResult { method bind (line 332) | fn bind(&mut self, address: SocketAddr) -> IoResult<()> { method set_tos (line 338) | fn set_tos(&mut self, tos: u32) -> IoResult<()> { method set_tclass_v6 (line 344) | fn set_tclass_v6(&mut self, tclass: u32) -> IoResult<()> { method set_ttl (line 350) | fn set_ttl(&mut self, ttl: u32) -> IoResult<()> { method set_reuse_port (line 356) | fn set_reuse_port(&mut self, reuse: bool) -> IoResult<()> { method set_header_included (line 362) | fn set_header_included(&mut self, included: bool) -> IoResult<()> { method set_unicast_hops_v6 (line 368) | fn set_unicast_hops_v6(&mut self, hops: u8) -> IoResult<()> { method connect (line 374) | fn connect(&mut self, address: SocketAddr) -> IoResult<()> { method send_to (line 381) | fn send_to(&mut self, buf: &[u8], addr: SocketAddr) -> IoResult<()> { method is_readable (line 389) | fn is_readable(&mut self, timeout: Duration) -> IoResult { method is_writable (line 409) | fn is_writable(&mut self) -> IoResult { method recv_from (line 429) | fn recv_from(&mut self, buf: &mut [u8]) -> IoResult<(usize, Option IoResult { method shutdown (line 454) | fn shutdown(&mut self) -> IoResult<()> { method peer_addr (line 460) | fn peer_addr(&mut self) -> IoResult> { method take_error (line 470) | fn take_error(&mut self) -> IoResult> { method icmp_error_info (line 484) | fn icmp_error_info(&mut self) -> IoResult { method from (line 490) | fn from(value: &io::Error) -> Self { function from (line 505) | fn from(value: ErrorKind) -> Self { method read (line 516) | fn read(&mut self, buf: &mut [u8]) -> io::Result { type RecvFrom (line 526) | trait RecvFrom { method recv_from_into_buf (line 527) | fn recv_from_into_buf(&self, buf: &mut [u8]) -> io::Result<(usize, Opt... method recv_from_into_buf (line 534) | fn recv_from_into_buf(&self, buf: &mut [u8]) -> io::Result<(usize, Opt... FILE: crates/trippy-core/src/net/platform/windows.rs type PlatformImpl (line 65) | pub struct PlatformImpl; method byte_order_for_address (line 68) | fn byte_order_for_address(_addr: IpAddr) -> Result { method lookup_interface_addr (line 72) | fn lookup_interface_addr(addr: IpAddr, name: &str) -> Result { method discover_local_addr (line 79) | fn discover_local_addr(target_addr: IpAddr, _port: u16) -> Result { function startup (line 85) | pub fn startup() -> Result<()> { constant WINSOCK_VERSION (line 90) | const WINSOCK_VERSION: u16 = 0x202; type SocketImpl (line 93) | pub struct SocketImpl { method startup (line 104) | fn startup() -> IoResult<()> { method new (line 113) | fn new(domain: Domain, ty: Type, protocol: Option) -> IoResu... method create_event (line 131) | fn create_event(&mut self) -> IoResult<()> { method wait_for_event (line 138) | fn wait_for_event(&self, timeout: Duration) -> IoResult { method reset_event (line 153) | fn reset_event(&self) -> IoResult<()> { method getsockopt (line 160) | fn getsockopt(&self, level: i32, optname: i32, mut optval: T) -> St... method setsockopt_u32 (line 176) | fn setsockopt_u32(&self, level: i32, optname: i32, optval: u32) -> Std... method setsockopt_bool (line 193) | fn setsockopt_bool(&self, level: i32, optname: i32, optval: bool) -> S... method set_fail_connect_on_icmp_error (line 198) | fn set_fail_connect_on_icmp_error(&self, enabled: bool) -> IoResult<()> { method set_non_blocking (line 204) | fn set_non_blocking(&self, is_non_blocking: bool) -> IoResult<()> { method post_recv_from (line 212) | fn post_recv_from(&mut self) -> IoResult<()> { method get_overlapped_result (line 240) | fn get_overlapped_result(&mut self) -> IoResult<()> { method new_wsa_data (line 260) | const fn new_wsa_data() -> WSADATA { method new_sockaddr_storage (line 266) | const fn new_sockaddr_storage() -> SOCKADDR_STORAGE { method new_overlapped (line 272) | const fn new_overlapped() -> OVERLAPPED { method new_icmp_error_info (line 278) | const fn new_icmp_error_info() -> ICMP_ERROR_INFO { method drop (line 285) | fn drop(&mut self) { method new_icmp_send_socket_ipv4 (line 295) | fn new_icmp_send_socket_ipv4(raw: bool) -> IoResult { method new_icmp_send_socket_ipv6 (line 307) | fn new_icmp_send_socket_ipv6(raw: bool) -> IoResult { method new_udp_send_socket_ipv4 (line 318) | fn new_udp_send_socket_ipv4(raw: bool) -> IoResult { method new_udp_send_socket_ipv6 (line 330) | fn new_udp_send_socket_ipv6(raw: bool) -> IoResult { method new_recv_socket_ipv4 (line 341) | fn new_recv_socket_ipv4(src_addr: Ipv4Addr, raw: bool) -> IoResult { method new_recv_socket_ipv6 (line 355) | fn new_recv_socket_ipv6(src_addr: Ipv6Addr, raw: bool) -> IoResult { method new_stream_socket_ipv4 (line 368) | fn new_stream_socket_ipv4() -> IoResult { method new_stream_socket_ipv6 (line 376) | fn new_stream_socket_ipv6() -> IoResult { method new_udp_dgram_socket_ipv4 (line 384) | fn new_udp_dgram_socket_ipv4() -> IoResult { method new_udp_dgram_socket_ipv6 (line 389) | fn new_udp_dgram_socket_ipv6() -> IoResult { method bind (line 394) | fn bind(&mut self, addr: SocketAddr) -> IoResult<()> { method set_tos (line 410) | fn set_tos(&mut self, tos: u32) -> IoResult<()> { method set_tclass_v6 (line 416) | fn set_tclass_v6(&mut self, tclass: u32) -> IoResult<()> { method set_ttl (line 424) | fn set_ttl(&mut self, ttl: u32) -> IoResult<()> { method set_reuse_port (line 431) | fn set_reuse_port(&mut self, is_reuse_port: bool) -> IoResult<()> { method set_header_included (line 440) | fn set_header_included(&mut self, is_header_included: bool) -> IoResult<... method set_unicast_hops_v6 (line 447) | fn set_unicast_hops_v6(&mut self, max_hops: u8) -> IoResult<()> { method connect (line 454) | fn connect(&mut self, addr: SocketAddr) -> IoResult<()> { method send_to (line 474) | fn send_to(&mut self, buf: &[u8], addr: SocketAddr) -> IoResult<()> { method is_readable (line 483) | fn is_readable(&mut self, timeout: Duration) -> IoResult { method is_writable (line 498) | fn is_writable(&mut self) -> IoResult { method recv_from (line 513) | fn recv_from(&mut self, buf: &mut [u8]) -> IoResult<(usize, Option IoResult { method shutdown (line 535) | fn shutdown(&mut self) -> IoResult<()> { method peer_addr (line 542) | fn peer_addr(&mut self) -> IoResult> { method take_error (line 551) | fn take_error(&mut self) -> IoResult> { method icmp_error_info (line 566) | fn icmp_error_info(&mut self) -> IoResult { method from (line 594) | fn from(value: &StdIoError) -> Self { method from (line 613) | fn from(value: ErrorKind) -> Self { function routing_interface_query (line 628) | fn routing_interface_query(target: IpAddr) -> Result { function sockaddrptr_to_ipaddr (line 661) | fn sockaddrptr_to_ipaddr(sockaddr: *mut SOCKADDR_STORAGE) -> StdIoResult... function sockaddr_to_socketaddr (line 673) | fn sockaddr_to_socketaddr(sockaddr: &SOCKADDR_STORAGE) -> StdIoResult (SOCKADDR_STORAGE, ... function lookup_interface_addr (line 755) | fn lookup_interface_addr(adapters: &Adapters, name: &str) -> Result Result { method ipv6 (line 795) | pub fn ipv6() -> Result { method iter (line 800) | pub fn iter(&self) -> AdaptersIter<'_> { constant MAX_ATTEMPTS (line 805) | const MAX_ATTEMPTS: usize = 3; constant INITIAL_BUFFER_SIZE (line 808) | const INITIAL_BUFFER_SIZE: u32 = 15000; constant ADDRESS_FLAGS (line 811) | const ADDRESS_FLAGS: GET_ADAPTERS_ADDRESSES_FLAGS = IpHelper::GAA_FLAG... method retrieve_addresses (line 815) | fn retrieve_addresses(family: ADDRESS_FAMILY) -> Result { type AdapterAddress (line 847) | pub struct AdapterAddress { type AdaptersIter (line 855) | pub struct AdaptersIter<'a> { function new (line 862) | pub fn new(data: &'a Adapters) -> Self { type Item (line 873) | type Item = AdapterAddress; method next (line 875) | fn next(&mut self) -> Option { FILE: crates/trippy-core/src/net/socket.rs type Socket (line 6) | pub trait Socket method new_icmp_send_socket_ipv4 (line 11) | fn new_icmp_send_socket_ipv4(raw: bool) -> Result; method new_icmp_send_socket_ipv6 (line 13) | fn new_icmp_send_socket_ipv6(raw: bool) -> Result; method new_udp_send_socket_ipv4 (line 15) | fn new_udp_send_socket_ipv4(raw: bool) -> Result; method new_udp_send_socket_ipv6 (line 17) | fn new_udp_send_socket_ipv6(raw: bool) -> Result; method new_recv_socket_ipv4 (line 19) | fn new_recv_socket_ipv4(addr: Ipv4Addr, raw: bool) -> Result; method new_recv_socket_ipv6 (line 21) | fn new_recv_socket_ipv6(addr: Ipv6Addr, raw: bool) -> Result; method new_stream_socket_ipv4 (line 23) | fn new_stream_socket_ipv4() -> Result; method new_stream_socket_ipv6 (line 25) | fn new_stream_socket_ipv6() -> Result; method new_udp_dgram_socket_ipv4 (line 27) | fn new_udp_dgram_socket_ipv4() -> Result; method new_udp_dgram_socket_ipv6 (line 29) | fn new_udp_dgram_socket_ipv6() -> Result; method bind (line 30) | fn bind(&mut self, address: SocketAddr) -> Result<()>; method set_tos (line 31) | fn set_tos(&mut self, tos: u32) -> Result<()>; method set_tclass_v6 (line 32) | fn set_tclass_v6(&mut self, tclass: u32) -> Result<()>; method set_ttl (line 33) | fn set_ttl(&mut self, ttl: u32) -> Result<()>; method set_reuse_port (line 34) | fn set_reuse_port(&mut self, reuse: bool) -> Result<()>; method set_header_included (line 35) | fn set_header_included(&mut self, included: bool) -> Result<()>; method set_unicast_hops_v6 (line 36) | fn set_unicast_hops_v6(&mut self, hops: u8) -> Result<()>; method connect (line 37) | fn connect(&mut self, address: SocketAddr) -> Result<()>; method send_to (line 38) | fn send_to(&mut self, buf: &[u8], addr: SocketAddr) -> Result<()>; method is_readable (line 40) | fn is_readable(&mut self, timeout: Duration) -> Result; method is_writable (line 42) | fn is_writable(&mut self) -> Result; method recv_from (line 43) | fn recv_from(&mut self, buf: &mut [u8]) -> Result<(usize, Option Result; method shutdown (line 45) | fn shutdown(&mut self) -> Result<()>; method peer_addr (line 46) | fn peer_addr(&mut self) -> Result>; method take_error (line 47) | fn take_error(&mut self) -> Result>; method icmp_error_info (line 48) | fn icmp_error_info(&mut self) -> Result; type SocketError (line 53) | pub enum SocketError { FILE: crates/trippy-core/src/net/source.rs constant DISCOVERY_PORT (line 10) | const DISCOVERY_PORT: Port = Port(80); type SourceAddr (line 13) | pub struct SourceAddr; method discover (line 17) | pub fn discover( method validate (line 30) | pub fn validate(source_addr: IpAddr) -> Result { function test_discover_local_addr_default_port (line 56) | fn test_discover_local_addr_default_port() { function test_discover_local_addr_fixed_dest_port (line 78) | fn test_discover_local_addr_fixed_dest_port() { function test_discover_local_addr_fixed_both_port (line 100) | fn test_discover_local_addr_fixed_both_port() { function test_discover_lookup_interface (line 122) | fn test_discover_lookup_interface() { function test_validate_ipv4 (line 147) | fn test_validate_ipv4() { function test_validate_ipv6 (line 169) | fn test_validate_ipv6() { function test_validate_invalid (line 191) | fn test_validate_invalid() { FILE: crates/trippy-core/src/probe.rs type ProbeStatus (line 18) | pub enum ProbeStatus { method try_into_awaited (line 450) | pub fn try_into_awaited(self) -> Option { method try_into_complete (line 459) | pub fn try_into_complete(self) -> Option { type Probe (line 47) | pub struct Probe { method new (line 70) | pub(crate) const fn new( method complete (line 95) | pub(crate) const fn complete( method failed (line 125) | pub(crate) const fn failed(self) -> ProbeFailed { type ProbeComplete (line 148) | pub struct ProbeComplete { type ProbeFailed (line 184) | pub struct ProbeFailed { type IcmpPacketType (line 203) | pub enum IcmpPacketType { type IcmpPacketCode (line 216) | pub struct IcmpPacketCode(pub u8); type Response (line 220) | pub enum Response { method data (line 230) | pub const fn data(&self) -> &ResponseData { type Extensions (line 243) | pub struct Extensions { type Extension (line 249) | pub enum Extension { method default (line 255) | fn default() -> Self { type MplsLabelStack (line 262) | pub struct MplsLabelStack { type MplsLabelStackMember (line 268) | pub struct MplsLabelStackMember { type UnknownExtension (line 277) | pub struct UnknownExtension { type ResponseData (line 285) | pub struct ResponseData { method new (line 295) | pub const fn new(recv: SystemTime, addr: IpAddr, proto_resp: ProtocolR... type ProtocolResponse (line 315) | pub enum ProtocolResponse { type IcmpProtocolResponse (line 323) | pub struct IcmpProtocolResponse { method new (line 333) | pub const fn new(identifier: u16, sequence: u16, tos: Option Self { method default_flow_id (line 48) | pub const fn default_flow_id() -> FlowId { method hops (line 54) | pub fn hops(&self) -> &[Hop] { method hops_for_flow (line 60) | pub fn hops_for_flow(&self, flow_id: FlowId) -> &[Hop] { method is_target (line 71) | pub fn is_target(&self, hop: &Hop, flow_id: FlowId) -> bool { method is_in_round (line 77) | pub fn is_in_round(&self, hop: &Hop, flow_id: FlowId) -> bool { method target_hop (line 83) | pub fn target_hop(&self, flow_id: FlowId) -> &Hop { method round (line 89) | pub fn round(&self, flow_id: FlowId) -> Option { method round_count (line 95) | pub fn round_count(&self, flow_id: FlowId) -> usize { method round_flow_id (line 101) | pub const fn round_flow_id(&self) -> FlowId { method flows (line 107) | pub fn flows(&self) -> &[(Flow, FlowId)] { method error (line 113) | pub fn error(&self) -> Option<&str> { method set_error (line 117) | pub fn set_error(&mut self, error: Option) { method max_samples (line 123) | pub const fn max_samples(&self) -> usize { method max_flows (line 129) | pub const fn max_flows(&self) -> usize { method update_from_round (line 135) | pub fn update_from_round(&mut self, round: &Round<'_>) { method update_trace_flow (line 156) | fn update_trace_flow(&mut self, flow_id: FlowId, round: &Round<'_>) { type Hop (line 167) | pub struct Hop { method ttl (line 221) | pub const fn ttl(&self) -> u8 { method addrs (line 226) | pub fn addrs(&self) -> impl Iterator { method addrs_with_counts (line 230) | pub fn addrs_with_counts(&self) -> impl Iterator usize { method total_sent (line 242) | pub const fn total_sent(&self) -> usize { method total_recv (line 248) | pub const fn total_recv(&self) -> usize { method total_forward_loss (line 254) | pub const fn total_forward_loss(&self) -> usize { method total_backward_loss (line 260) | pub const fn total_backward_loss(&self) -> usize { method total_failed (line 266) | pub const fn total_failed(&self) -> usize { method loss_pct (line 272) | pub fn loss_pct(&self) -> f64 { method forward_loss_pct (line 283) | pub fn forward_loss_pct(&self) -> f64 { method backward_loss_pct (line 294) | pub fn backward_loss_pct(&self) -> f64 { method last_ms (line 305) | pub fn last_ms(&self) -> Option { method best_ms (line 311) | pub fn best_ms(&self) -> Option { method worst_ms (line 317) | pub fn worst_ms(&self) -> Option { method avg_ms (line 323) | pub fn avg_ms(&self) -> f64 { method stddev_ms (line 333) | pub fn stddev_ms(&self) -> f64 { method jitter_ms (line 343) | pub fn jitter_ms(&self) -> Option { method jmax_ms (line 349) | pub fn jmax_ms(&self) -> Option { method javg_ms (line 355) | pub const fn javg_ms(&self) -> f64 { method jinta (line 361) | pub const fn jinta(&self) -> f64 { method last_src_port (line 367) | pub const fn last_src_port(&self) -> u16 { method last_dest_port (line 373) | pub const fn last_dest_port(&self) -> u16 { method last_sequence (line 379) | pub const fn last_sequence(&self) -> u16 { method last_icmp_packet_type (line 385) | pub const fn last_icmp_packet_type(&self) -> Option { method last_nat_status (line 391) | pub const fn last_nat_status(&self) -> NatStatus { method tos (line 397) | pub fn tos(&self) -> Option { method dscp (line 403) | pub fn dscp(&self) -> Option { method ecn (line 409) | pub fn ecn(&self) -> Option { method samples (line 415) | pub fn samples(&self) -> &[Duration] { method extensions (line 420) | pub const fn extensions(&self) -> Option<&Extensions> { method default (line 426) | fn default() -> Self { type NatStatus (line 459) | pub enum NatStatus { type FlowState (line 470) | struct FlowState { method new (line 488) | fn new(max_samples: usize) -> Self { method hops (line 500) | fn hops(&self) -> &[Hop] { method is_target (line 510) | const fn is_target(&self, hop: &Hop) -> bool { method is_in_round (line 514) | const fn is_in_round(&self, hop: &Hop) -> bool { method target_hop (line 518) | fn target_hop(&self) -> &Hop { method round (line 526) | const fn round(&self) -> Option { method round_count (line 530) | const fn round_count(&self) -> usize { method update_from_round (line 534) | fn update_from_round(&mut self, round: &Round<'_>) { method update_round (line 538) | fn update_round(&mut self, round: RoundId) { method update_lowest_ttl (line 545) | fn update_lowest_ttl(&mut self, ttl: TimeToLive) { type StateUpdater (line 562) | pub(super) struct StateUpdater<'a> { function new (line 573) | pub(super) fn new(state: &'a mut FlowState, round: &'a Round<'_>) -> Self { function apply (line 583) | pub(super) fn apply(&mut self) { function update_for_probe (line 594) | fn update_for_probe(&mut self, probe: &ProbeStatus) { function is_forward_loss (line 693) | fn is_forward_loss(probes: &[ProbeStatus], awaited_ttl: TimeToLive) -> b... function nat_status (line 715) | const fn nat_status( function test_is_forward_loss (line 768) | fn test_is_forward_loss(expected: bool, probes: &[(char, u8)], awaited_t... function test_nat (line 827) | const fn test_nat(expected: u16, actual: u16, prev: Option) -> (Nat... type Scenario (line 853) | struct Scenario { type RoundData (line 865) | struct RoundData { type ProbeData (line 874) | struct ProbeData(ProbeStatus); type Error (line 877) | type Error = anyhow::Error; method try_from (line 879) | fn try_from(value: String) -> Result { type ProbeRound (line 944) | struct ProbeRound(ProbeData, RoundId); method from (line 947) | fn from(value: ProbeRound) -> Self { type Expected (line 963) | struct Expected { type HopData (line 971) | struct HopData { type NatStatusWrapper (line 998) | struct NatStatusWrapper(NatStatus); type Error (line 1001) | type Error = anyhow::Error; method try_from (line 1003) | fn try_from(value: String) -> Result { function test_scenario (line 1029) | fn test_scenario(scenario: Scenario) { function assert_eq_opt (line 1104) | fn assert_eq_opt(actual: Option, expected: Option) { function assert_eq_opt_f64 (line 1108) | fn assert_eq_opt_f64(actual: Option<&f64>, expected: Option<&f64>) { function assert_eq_vec_f64 (line 1112) | fn assert_eq_vec_f64(actual: Option<&Vec>, expected: Option<&Vec( FILE: crates/trippy-core/src/strategy.rs type Round (line 19) | pub struct Round<'a> { function new (line 30) | pub const fn new( type CompletionReason (line 45) | pub enum CompletionReason { type Strategy (line 54) | pub struct Strategy { function new (line 61) | pub fn new(config: &StrategyConfig, publish: F) -> Self { function run (line 71) | pub fn run(self, mut network: N) -> Result<()> { function send_request (line 92) | fn send_request(&self, network: &mut N, st: &mut TracerState... function do_send (line 135) | fn do_send(network: &mut N, st: &mut TracerState, probe: Pro... function recv_response (line 165) | fn recv_response(&self, network: &mut N, st: &mut TracerStat... function update_round (line 187) | fn update_round(&self, st: &mut TracerState) { function publish_trace (line 205) | fn publish_trace(&self, state: &TracerState) { function check_trace_id (line 230) | fn check_trace_id(&self, trace_id: TraceId) -> bool { function validate (line 247) | fn validate(&self, resp: &ResponseData) -> bool { type StrategyResponse (line 295) | struct StrategyResponse { method from (line 309) | fn from((resp, config): (Response, &StrategyConfig)) -> Self { type ProtocolStrategyResponse (line 379) | struct ProtocolStrategyResponse { method from (line 388) | fn from((proto_resp, config): (ProtocolResponse, &StrategyConfig)) -> ... function test_time_exceeded_target_response (line 474) | fn test_time_exceeded_target_response() { function test_time_exceeded_not_target_response (line 495) | fn test_time_exceeded_not_target_response() { function test_destination_unreachable_target_response (line 516) | fn test_destination_unreachable_target_response() { function test_destination_unreachable_not_target_response (line 538) | fn test_destination_unreachable_not_target_response() { function test_echo_reply_response (line 557) | fn test_echo_reply_response() { function test_tcp_reply_response (line 575) | fn test_tcp_reply_response() { function test_tcp_refused_response (line 590) | fn test_tcp_refused_response() { function test_icmp_response (line 605) | fn test_icmp_response() { function test_udp_classic_fixed_src_response (line 618) | fn test_udp_classic_fixed_src_response() { function test_udp_classic_fixed_dest_response (line 641) | fn test_udp_classic_fixed_dest_response() { function test_udp_paris_response (line 664) | fn test_udp_paris_response() { function test_udp_dublin_ipv4_response (line 688) | fn test_udp_dublin_ipv4_response() { function test_udp_dublin_ipv6_response (line 712) | fn test_udp_dublin_ipv6_response() { function test_tcp_fixed_dest_response (line 737) | fn test_tcp_fixed_dest_response() { function test_tcp_fixed_src_response (line 760) | fn test_tcp_fixed_src_response() { function test_tcp_dest_unreachable_and_refused (line 791) | fn test_tcp_dest_unreachable_and_refused() -> anyhow::Result<()> { function response_data (line 851) | const fn response_data(now: SystemTime) -> ResponseData { constant BUFFER_SIZE (line 883) | const BUFFER_SIZE: u16 = MAX_SEQUENCE_PER_ROUND; constant MAX_SEQUENCE (line 902) | const MAX_SEQUENCE: Sequence = Sequence(u16::MAX - BUFFER_SIZE); type TracerState (line 906) | pub struct TracerState { method new (line 935) | pub fn new(config: StrategyConfig) -> Self { method probes (line 952) | pub fn probes(&self) -> &[ProbeStatus] { method probe_at (line 958) | pub fn probe_at(&self, sequence: Sequence) -> ProbeStatus { method ttl (line 962) | pub const fn ttl(&self) -> TimeToLive { method round_start (line 966) | pub const fn round_start(&self) -> SystemTime { method target_found (line 970) | pub const fn target_found(&self) -> bool { method max_received_ttl (line 974) | pub const fn max_received_ttl(&self) -> Option { method target_ttl (line 978) | pub const fn target_ttl(&self) -> Option { method received_time (line 982) | pub const fn received_time(&self) -> Option { method in_round (line 987) | pub fn in_round(&self, sequence: Sequence) -> bool { method round_has_capacity (line 992) | pub fn round_has_capacity(&self) -> bool { method finished (line 998) | pub const fn finished(&self, max_rounds: Option) -> bool { method next_probe (line 1010) | pub fn next_probe(&mut self, sent: SystemTime) -> Probe { method reissue_probe (line 1041) | pub fn reissue_probe(&mut self, sent: SystemTime) -> Probe { method fail_probe (line 1063) | pub fn fail_probe(&mut self) { method probe_data (line 1078) | fn probe_data(&self) -> (Port, Port, TraceId, Flags) { method probe_icmp_data (line 1087) | const fn probe_icmp_data(&self) -> (Port, Port, TraceId, Flags) { method probe_udp_data (line 1097) | fn probe_udp_data(&self) -> (Port, Port, TraceId, Flags) { method probe_tcp_data (line 1170) | fn probe_tcp_data(&self) -> (Port, Port, TraceId, Flags) { method complete_probe (line 1193) | pub fn complete_probe(&mut self, resp: StrategyResponse) { method advance_round (line 1260) | pub fn advance_round(&mut self, first_ttl: TimeToLive) { method max_sequence (line 1283) | fn max_sequence(&self) -> Sequence { function test_state (line 1305) | fn test_state() { function test_sequence_wrap1 (line 1480) | fn test_sequence_wrap1() { function test_sequence_wrap2 (line 1542) | fn test_sequence_wrap2() { function test_sequence_wrap3 (line 1558) | fn test_sequence_wrap3() { function test_sequence_wrap_with_skip (line 1572) | fn test_sequence_wrap_with_skip() { function test_in_round (line 1589) | fn test_in_round() { function test_in_delayed_probe_not_in_round (line 1598) | fn test_in_delayed_probe_not_in_round() { function cfg (line 1607) | fn cfg(initial_sequence: Sequence) -> StrategyConfig { function exceeds (line 1628) | fn exceeds(start: Option, end: SystemTime, dur: Duration) ->... FILE: crates/trippy-core/src/tracer.rs type Tracer (line 20) | pub struct Tracer { method new (line 30) | pub(crate) fn new( method run (line 126) | pub fn run(&self) -> Result<()> { method run_with (line 165) | pub fn run_with)>(&self, func: F) -> Result<()> { method spawn (line 207) | pub fn spawn(self) -> Result<(Self, JoinHandle>)> { method spawn_with (line 255) | pub fn spawn_with) + Send + 'static>( method snapshot (line 269) | pub fn snapshot(&self) -> State { method clear (line 274) | pub fn clear(&self) { method max_flows (line 280) | pub fn max_flows(&self) -> usize { method max_samples (line 286) | pub fn max_samples(&self) -> usize { method privilege_mode (line 292) | pub fn privilege_mode(&self) -> PrivilegeMode { method protocol (line 298) | pub fn protocol(&self) -> Protocol { method interface (line 304) | pub fn interface(&self) -> Option<&str> { method source_addr (line 310) | pub fn source_addr(&self) -> Option { method target_addr (line 316) | pub fn target_addr(&self) -> IpAddr { method packet_size (line 322) | pub fn packet_size(&self) -> PacketSize { method payload_pattern (line 328) | pub fn payload_pattern(&self) -> PayloadPattern { method initial_sequence (line 334) | pub fn initial_sequence(&self) -> Sequence { method tos (line 340) | pub fn tos(&self) -> TypeOfService { method icmp_extension_parse_mode (line 346) | pub fn icmp_extension_parse_mode(&self) -> IcmpExtensionParseMode { method read_timeout (line 352) | pub fn read_timeout(&self) -> Duration { method tcp_connect_timeout (line 358) | pub fn tcp_connect_timeout(&self) -> Duration { method trace_identifier (line 364) | pub fn trace_identifier(&self) -> TraceId { method max_rounds (line 370) | pub fn max_rounds(&self) -> Option { method first_ttl (line 376) | pub fn first_ttl(&self) -> TimeToLive { method max_ttl (line 382) | pub fn max_ttl(&self) -> TimeToLive { method grace_duration (line 388) | pub fn grace_duration(&self) -> Duration { method max_inflight (line 394) | pub fn max_inflight(&self) -> MaxInflight { method multipath_strategy (line 400) | pub fn multipath_strategy(&self) -> MultipathStrategy { method port_direction (line 406) | pub fn port_direction(&self) -> PortDirection { method min_round_duration (line 412) | pub fn min_round_duration(&self) -> Duration { method max_round_duration (line 418) | pub fn max_round_duration(&self) -> Duration { type TracerInner (line 441) | pub(super) struct TracerInner { method new (line 473) | pub(super) fn new( method run (line 532) | pub(super) fn run(&self) -> Result<()> { method run_with (line 538) | pub(super) fn run_with)>(&self, func: F) -> Result<()> { method snapshot (line 543) | pub(super) fn snapshot(&self) -> State { method clear (line 547) | pub(super) fn clear(&self) { method max_flows (line 552) | pub(super) const fn max_flows(&self) -> usize { method max_samples (line 556) | pub(super) const fn max_samples(&self) -> usize { method privilege_mode (line 560) | pub(super) const fn privilege_mode(&self) -> PrivilegeMode { method protocol (line 564) | pub(super) const fn protocol(&self) -> Protocol { method interface (line 568) | pub(super) fn interface(&self) -> Option<&str> { method source_addr (line 572) | pub(super) fn source_addr(&self) -> Option { method target_addr (line 576) | pub(super) const fn target_addr(&self) -> IpAddr { method packet_size (line 580) | pub(super) const fn packet_size(&self) -> PacketSize { method payload_pattern (line 584) | pub(super) const fn payload_pattern(&self) -> PayloadPattern { method initial_sequence (line 588) | pub(super) const fn initial_sequence(&self) -> Sequence { method tos (line 592) | pub(super) const fn tos(&self) -> TypeOfService { method icmp_extension_parse_mode (line 596) | pub(super) const fn icmp_extension_parse_mode(&self) -> IcmpExtensionP... method read_timeout (line 600) | pub(super) const fn read_timeout(&self) -> Duration { method tcp_connect_timeout (line 604) | pub(super) const fn tcp_connect_timeout(&self) -> Duration { method trace_identifier (line 608) | pub(super) const fn trace_identifier(&self) -> TraceId { method max_rounds (line 612) | pub(super) const fn max_rounds(&self) -> Option { method first_ttl (line 616) | pub(super) const fn first_ttl(&self) -> TimeToLive { method max_ttl (line 620) | pub(super) const fn max_ttl(&self) -> TimeToLive { method grace_duration (line 624) | pub(super) const fn grace_duration(&self) -> Duration { method max_inflight (line 628) | pub(super) const fn max_inflight(&self) -> MaxInflight { method multipath_strategy (line 632) | pub(super) const fn multipath_strategy(&self) -> MultipathStrategy { method port_direction (line 636) | pub(super) const fn port_direction(&self) -> PortDirection { method min_round_duration (line 640) | pub(super) const fn min_round_duration(&self) -> Duration { method max_round_duration (line 644) | pub(super) const fn max_round_duration(&self) -> Duration { method run_internal (line 649) | fn run_internal)>(&self, func: F) -> Result<()> { method handler (line 677) | fn handler(&self, round: &Round<'_>) { method handle_error (line 681) | fn handle_error(&self, err: Error) -> Error { method make_state_config (line 686) | const fn make_state_config(max_flows: usize, max_samples: usize) -> St... method make_channel_config (line 693) | const fn make_channel_config(&self, source_addr: IpAddr) -> ChannelCon... method make_strategy_config (line 709) | const fn make_strategy_config(&self) -> StrategyConfig { FILE: crates/trippy-core/src/types.rs type RoundId (line 7) | pub struct RoundId(pub usize); type MaxRounds (line 11) | pub struct MaxRounds(pub NonZeroUsize); type TimeToLive (line 15) | pub struct TimeToLive(pub u8); type Sequence (line 19) | pub struct Sequence(pub u16); type TraceId (line 23) | pub struct TraceId(pub u16); type MaxInflight (line 27) | pub struct MaxInflight(pub u8); type PacketSize (line 31) | pub struct PacketSize(pub u16); type PayloadPattern (line 35) | pub struct PayloadPattern(pub u8); type TypeOfService (line 39) | pub struct TypeOfService(pub u8); method dscp (line 151) | pub fn dscp(&self) -> Dscp { method ecn (line 155) | pub fn ecn(&self) -> Ecn { method split (line 158) | fn split(self) -> (Dscp, Ecn) { type Port (line 43) | pub struct Port(pub u16); type Checksum (line 47) | pub struct Checksum(pub u16); function from (line 61) | fn from(sequence: Sequence) -> Self { type Ecn (line 72) | pub enum Ecn { type Dscp (line 94) | pub enum Dscp { function test_dscp_ecn (line 206) | fn test_dscp_ecn(tos: TypeOfService, dscp: Dscp, ecn: Ecn) { FILE: crates/trippy-core/tests/sim/network.rs constant READ_TIMEOUT (line 19) | const READ_TIMEOUT: Duration = Duration::from_millis(10); function run (line 21) | pub async fn run( function read_with_timeout (line 104) | async fn read_with_timeout(buf: &mut [u8], tun: Arc>) -... function write_packet (line 110) | async fn write_packet( FILE: crates/trippy-core/tests/sim/network/ipv4.rs function process (line 16) | pub fn process(sim: &Simulation, packet_buf: &[u8]) -> anyhow::Result( function make_echo_reply (line 175) | fn make_echo_reply( function make_destination_unreachable (line 189) | fn make_destination_unreachable<'a>( function make_tcp_syn_ack (line 201) | fn make_tcp_syn_ack<'a>( function make_ip (line 222) | fn make_ip<'a>( FILE: crates/trippy-core/tests/sim/network/ipv6.rs function process (line 16) | pub fn process(sim: &Simulation, packet_buf: &[u8]) -> anyhow::Result( function make_echo_reply (line 186) | fn make_echo_reply( function make_destination_unreachable (line 202) | fn make_destination_unreachable<'a>( function make_tcp_syn_ack (line 216) | fn make_tcp_syn_ack<'a>( function make_ip (line 237) | fn make_ip<'a>( FILE: crates/trippy-core/tests/sim/simulation.rs type Simulation (line 8) | pub struct Simulation { method latest_ttl (line 32) | pub fn latest_ttl(&self) -> u8 { type Hop (line 44) | pub struct Hop { type Response (line 54) | pub enum Response { type SingleHost (line 64) | pub struct SingleHost { type PrivilegeMode (line 72) | pub enum PrivilegeMode { function from (line 79) | fn from(value: PrivilegeMode) -> Self { type Protocol (line 88) | pub enum Protocol { function from (line 95) | fn from(value: Protocol) -> Self { type PortDirection (line 106) | pub enum PortDirection { type FixedBoth (line 116) | pub struct FixedBoth { function from (line 122) | fn from(value: PortDirection) -> Self { type MultipathStrategy (line 135) | pub enum MultipathStrategy { function from (line 143) | fn from(value: MultipathStrategy) -> Self { FILE: crates/trippy-core/tests/sim/tests.rs constant MAX_ATTEMPTS (line 12) | const MAX_ATTEMPTS: usize = 5; function runtime (line 16) | pub fn runtime() -> &'static Arc> { function test_simulation (line 60) | fn test_simulation(simulation: Simulation) -> anyhow::Result<()> { function test_simulation_macos (line 70) | fn test_simulation_macos(simulation: Simulation) -> anyhow::Result<()> { function run_simulation_with_retry (line 74) | fn run_simulation_with_retry(simulation: Simulation) -> anyhow::Result<(... function run_simulation (line 95) | async fn run_simulation(sim: Arc) -> anyhow::Result<()> { FILE: crates/trippy-core/tests/sim/tracer.rs constant CLEANUP_DELAY (line 20) | const CLEANUP_DELAY: Duration = Duration::from_millis(1000); type Tracer (line 42) | pub struct Tracer { method new (line 48) | pub const fn new(sim: Arc, token: CancellationToken) -> Se... method trace (line 52) | pub fn trace(&self) -> anyhow::Result<()> { method validate_round (line 104) | fn validate_round(&self, round: &Round<'_>, result: &RefCell &'static Arc> { constant TUN_NETWORK_ADDR_V4 (line 21) | pub const TUN_NETWORK_ADDR_V4: Ipv4Addr = Ipv4Addr::new(10, 0, 0, 1); constant TUN_NETWORK_PREFIX_V4 (line 22) | const TUN_NETWORK_PREFIX_V4: u8 = 24; constant TUN_NETWORK_ADDR_V6 (line 25) | pub const TUN_NETWORK_ADDR_V6: Ipv6Addr = Ipv6Addr::new(0xfd00, 0x0010, ... constant TUN_NETWORK_PREFIX_V6 (line 26) | const TUN_NETWORK_PREFIX_V6: u8 = 64; type TunDevice (line 29) | pub struct TunDevice { method start (line 34) | pub fn start() -> anyhow::Result { method read (line 44) | pub async fn read(&self, buf: &mut [u8]) -> std::io::Result { method write (line 49) | pub async fn write(&self, buf: &[u8]) -> std::io::Result { FILE: crates/trippy-dns/src/config.rs type Builder (line 14) | pub struct Builder { method new (line 24) | pub fn new() -> Self { method resolve_method (line 35) | pub const fn resolve_method(self, resolve_method: ResolveMethod) -> Se... method addr_family (line 44) | pub const fn addr_family(self, addr_family: IpAddrFamily) -> Self { method timeout (line 53) | pub const fn timeout(self, timeout: Duration) -> Self { method ttl (line 59) | pub const fn ttl(self, ttl: Duration) -> Self { method build (line 65) | pub const fn build(self) -> Config { method default (line 76) | fn default() -> Self { type Config (line 83) | pub struct Config { method new (line 97) | pub const fn new( method default (line 113) | fn default() -> Self { FILE: crates/trippy-dns/src/lazy_resolver.rs type ResolveMethod (line 9) | pub enum ResolveMethod { type IpAddrFamily (line 22) | pub enum IpAddrFamily { method fmt (line 37) | fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { type DnsResolver (line 50) | pub struct DnsResolver { method start (line 56) | pub fn start(config: Config) -> std::io::Result { method config (line 64) | pub fn config(&self) -> &Config { method flush (line 69) | pub fn flush(&self) { method start (line 162) | pub(super) fn start(config: Config) -> std::io::Result { method config (line 212) | pub(super) const fn config(&self) -> &Config { method lookup (line 216) | pub(super) fn lookup(&self, hostname: &str) -> Result { method reverse_lookup (line 256) | pub(super) fn reverse_lookup( method lazy_reverse_lookup (line 269) | fn lazy_reverse_lookup(&self, addr: IpAddr, with_asinfo: bool) -> Cach... method flush (line 343) | pub fn flush(&self) { method lookup (line 75) | fn lookup(&self, hostname: impl AsRef) -> Result { method reverse_lookup (line 78) | fn reverse_lookup(&self, addr: impl Into) -> DnsEntry { method reverse_lookup_with_asinfo (line 81) | fn reverse_lookup_with_asinfo(&self, addr: impl Into) -> DnsEntry { method lazy_reverse_lookup (line 84) | fn lazy_reverse_lookup(&self, addr: impl Into) -> DnsEntry { method lazy_reverse_lookup_with_asinfo (line 87) | fn lazy_reverse_lookup_with_asinfo(&self, addr: impl Into) -> Dn... constant RESOLVER_MAX_QUEUE_SIZE (line 113) | const RESOLVER_MAX_QUEUE_SIZE: usize = 100; constant RESOLVER_QUEUE_TIMEOUT (line 117) | const RESOLVER_QUEUE_TIMEOUT: Duration = Duration::from_millis(10); type Cache (line 120) | type Cache = Arc>>; type CacheEntry (line 124) | struct CacheEntry { method new (line 132) | const fn new(entry: DnsEntry, timestamp: SystemTime) -> Self { method set_timestamp (line 136) | fn set_timestamp(&mut self, timestamp: SystemTime) { type DnsProvider (line 142) | enum DnsProvider { type DnsResolveRequest (line 148) | struct DnsResolveRequest { type DnsResolver (line 154) | pub(super) struct DnsResolver { method start (line 56) | pub fn start(config: Config) -> std::io::Result { method config (line 64) | pub fn config(&self) -> &Config { method flush (line 69) | pub fn flush(&self) { method start (line 162) | pub(super) fn start(config: Config) -> std::io::Result { method config (line 212) | pub(super) const fn config(&self) -> &Config { method lookup (line 216) | pub(super) fn lookup(&self, hostname: &str) -> Result { method reverse_lookup (line 256) | pub(super) fn reverse_lookup( method lazy_reverse_lookup (line 269) | fn lazy_reverse_lookup(&self, addr: IpAddr, with_asinfo: bool) -> Cach... method flush (line 343) | pub fn flush(&self) { function resolver_queue_processor (line 352) | fn resolver_queue_processor( function reverse_lookup (line 363) | fn reverse_lookup(provider: &DnsProvider, addr: IpAddr, with_asinfo: boo... function lookup_asinfo (line 416) | fn lookup_asinfo(resolver: &Arc, addr: IpAddr) -> Result, addr: Ipv4Addr) -> Result, addr: Ipv6Addr) -> Result, asn: &str) -> Result { function parse_origin_query_txt (line 496) | fn parse_origin_query_txt(origin_query_txt: &str) -> Result { function parse_asn_query_txt (line 525) | fn parse_asn_query_txt(asn_query_txt: &str) -> Result { function resolve_error (line 534) | fn resolve_error(err: ResolveError) -> Error { function proto_error (line 539) | fn proto_error(err: ProtoError) -> Error { FILE: crates/trippy-dns/src/resolver.rs type Resolver (line 6) | pub trait Resolver { method lookup (line 8) | fn lookup(&self, hostname: impl AsRef) -> Result; method reverse_lookup (line 14) | fn reverse_lookup(&self, addr: impl Into) -> DnsEntry; method reverse_lookup_with_asinfo (line 21) | fn reverse_lookup_with_asinfo(&self, addr: impl Into) -> DnsEn... method lazy_reverse_lookup (line 35) | fn lazy_reverse_lookup(&self, addr: impl Into) -> DnsEntry; method lazy_reverse_lookup_with_asinfo (line 41) | fn lazy_reverse_lookup_with_asinfo(&self, addr: impl Into) -> ... type Result (line 45) | pub type Result = std::result::Result; type Error (line 49) | pub enum Error { type ResolvedIpAddrs (line 64) | pub struct ResolvedIpAddrs(pub(super) Vec); method iter (line 67) | pub fn iter(&self) -> impl Iterator { type Item (line 73) | type Item = IpAddr; type IntoIter (line 74) | type IntoIter = std::vec::IntoIter; method into_iter (line 76) | fn into_iter(self) -> Self::IntoIter { type DnsEntry (line 83) | pub enum DnsEntry { method hostnames (line 111) | pub fn hostnames(&self) -> ResolvedHostnames<'_> { type ResolvedHostnames (line 98) | pub struct ResolvedHostnames<'a>(pub(super) std::slice::Iter<'a, String>); type Item (line 101) | type Item = &'a str; method next (line 103) | fn next(&mut self) -> Option { type Resolved (line 125) | pub enum Resolved { type Unresolved (line 134) | pub enum Unresolved { type AsInfo (line 143) | pub struct AsInfo { method fmt (line 171) | fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { function test_iterator_returns_each_hostname_once (line 196) | fn test_iterator_returns_each_hostname_once() { FILE: crates/trippy-packet/src/buffer.rs type Buffer (line 3) | pub enum Buffer<'a> { function as_slice (line 10) | pub fn as_slice(&self) -> &[u8] { function get_bytes (line 18) | pub fn get_bytes(&self, offset: usize) -> [u8; N] { function set_bytes (line 23) | pub fn set_bytes(&mut self, offset: usize, bytes: [u8; N... function read (line 28) | pub fn read(&self, offset: usize) -> u8 { function write (line 36) | pub fn write(&mut self, offset: usize) -> &mut u8 { function as_slice_mut (line 44) | pub fn as_slice_mut(&mut self) -> &mut [u8] { function test_immutable_buffer (line 57) | fn test_immutable_buffer() { function test_mutable_buffer (line 66) | fn test_mutable_buffer() { function test_debug (line 81) | fn test_debug() { function test_immutable_buffer_cannot_write (line 98) | fn test_immutable_buffer_cannot_write() { function test_immutable_buffer_cannot_mut_slice (line 106) | fn test_immutable_buffer_cannot_mut_slice() { FILE: crates/trippy-packet/src/checksum.rs function ipv4_header_checksum (line 12) | pub fn ipv4_header_checksum(data: &[u8]) -> u16 { function icmp_ipv4_checksum (line 18) | pub fn icmp_ipv4_checksum(data: &[u8]) -> u16 { function icmp_ipv6_checksum (line 24) | pub fn icmp_ipv6_checksum(data: &[u8], src_addr: Ipv6Addr, dest_addr: Ip... function udp_ipv4_checksum (line 30) | pub fn udp_ipv4_checksum(data: &[u8], src_addr: Ipv4Addr, dest_addr: Ipv... function tcp_ipv4_checksum (line 36) | pub fn tcp_ipv4_checksum(data: &[u8], src_addr: Ipv4Addr, dest_addr: Ipv... function udp_ipv6_checksum (line 42) | pub fn udp_ipv6_checksum(data: &[u8], src_addr: Ipv6Addr, dest_addr: Ipv... function tcp_ipv6_checksum (line 48) | pub fn tcp_ipv6_checksum(data: &[u8], src_addr: Ipv6Addr, dest_addr: Ipv... function checksum (line 52) | fn checksum(data: &[u8], ignore_word: usize) -> u16 { function ipv4_checksum (line 60) | fn ipv4_checksum( function ipv4_word_sum (line 76) | fn ipv4_word_sum(ip: Ipv4Addr) -> u32 { function ipv6_checksum (line 83) | fn ipv6_checksum( function ipv6_word_sum (line 99) | fn ipv6_word_sum(ip: Ipv6Addr) -> u32 { function sum_be_words (line 103) | fn sum_be_words(data: &[u8], ignore_word: usize) -> u32 { function finalize_checksum (line 124) | const fn finalize_checksum(mut sum: u32) -> u16 { function test_empty_ipv4_checksum (line 138) | fn test_empty_ipv4_checksum() { function test_empty_ipv6_checksum (line 148) | fn test_empty_ipv6_checksum() { function test_odd_length (line 156) | fn test_odd_length() { function test_icmp_ipv4_checksum (line 161) | fn test_icmp_ipv4_checksum() { function test_icmp_ipv6_checksum (line 175) | fn test_icmp_ipv6_checksum() { function test_udp_ipv4_checksum (line 186) | fn test_udp_ipv4_checksum() { function test_udp_ipv6_checksum (line 200) | fn test_udp_ipv6_checksum() { function test_tcp_ipv6_checksum (line 213) | fn test_tcp_ipv6_checksum() { function test_ipv4_header_checksum (line 221) | fn test_ipv4_header_checksum() { function test_tcp_ipv4_checksum (line 227) | fn test_tcp_ipv4_checksum() { FILE: crates/trippy-packet/src/error.rs type Result (line 4) | pub type Result = std::result::Result; type Error (line 8) | pub enum Error { FILE: crates/trippy-packet/src/icmp_extension.rs type ExtensionsPacket (line 11) | pub struct ExtensionsPacket<'a> { function new (line 16) | pub fn new(packet: &'a mut [u8]) -> Result { function new_view (line 30) | pub fn new_view(packet: &'a [u8]) -> Result { function minimum_packet_size (line 45) | pub const fn minimum_packet_size() -> usize { function packet (line 50) | pub fn packet(&self) -> &[u8] { function header (line 55) | pub fn header(&self) -> &[u8] { function objects (line 61) | pub const fn objects(&self) -> ExtensionObjectIter<'_> { type ExtensionObjectIter (line 66) | pub struct ExtensionObjectIter<'a> { function new (line 73) | pub const fn new(buf: &'a Buffer<'_>) -> Self { type Item (line 82) | type Item = &'a [u8]; method next (line 84) | fn next(&mut self) -> Option { function test_header (line 117) | fn test_header() { function test_object_iterator (line 128) | fn test_object_iterator() { function test_object_iterator_zero_length (line 147) | fn test_object_iterator_zero_length() { function test_object_iterator_minimum_length (line 157) | fn test_object_iterator_minimum_length() { function test_object_iterator_length_to_short (line 170) | fn test_object_iterator_length_to_short() { function test_object_iterator_length_to_long (line 180) | fn test_object_iterator_length_to_long() { constant VERSION_OFFSET (line 196) | const VERSION_OFFSET: usize = 0; constant CHECKSUM_OFFSET (line 197) | const CHECKSUM_OFFSET: usize = 2; type ExtensionHeaderPacket (line 204) | pub struct ExtensionHeaderPacket<'a> { function new (line 209) | pub fn new(packet: &'a mut [u8]) -> Result { function new_view (line 223) | pub fn new_view(packet: &'a [u8]) -> Result { function minimum_packet_size (line 238) | pub const fn minimum_packet_size() -> usize { function get_version (line 243) | pub fn get_version(&self) -> u8 { function get_checksum (line 248) | pub fn get_checksum(&self) -> u16 { function set_version (line 252) | pub fn set_version(&mut self, val: u8) { function set_checksum (line 257) | pub fn set_checksum(&mut self, val: u16) { function packet (line 262) | pub fn packet(&self) -> &[u8] { method fmt (line 268) | fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { function test_version (line 281) | fn test_version() { function test_checksum (line 296) | fn test_checksum() { function test_extension_header_view (line 314) | fn test_extension_header_view() { type ClassNum (line 333) | pub enum ClassNum { method id (line 343) | pub const fn id(&self) -> u8 { method from (line 355) | fn from(val: u8) -> Self { type ClassSubType (line 368) | pub struct ClassSubType(pub u8); method from (line 371) | fn from(val: u8) -> Self { constant LENGTH_OFFSET (line 376) | const LENGTH_OFFSET: usize = 0; constant CLASS_NUM_OFFSET (line 377) | const CLASS_NUM_OFFSET: usize = 2; constant CLASS_SUBTYPE_OFFSET (line 378) | const CLASS_SUBTYPE_OFFSET: usize = 3; type ExtensionObjectPacket (line 385) | pub struct ExtensionObjectPacket<'a> { function new (line 390) | pub fn new(packet: &'a mut [u8]) -> Result { function new_view (line 404) | pub fn new_view(packet: &'a [u8]) -> Result { function minimum_packet_size (line 419) | pub const fn minimum_packet_size() -> usize { function set_length (line 423) | pub fn set_length(&mut self, val: u16) { function set_class_num (line 427) | pub fn set_class_num(&mut self, val: ClassNum) { function set_class_subtype (line 431) | pub fn set_class_subtype(&mut self, val: ClassSubType) { function set_payload (line 435) | pub fn set_payload(&mut self, vals: &[u8]) { function get_length (line 442) | pub fn get_length(&self) -> u16 { function get_class_num (line 447) | pub fn get_class_num(&self) -> ClassNum { function get_class_subtype (line 452) | pub fn get_class_subtype(&self) -> ClassSubType { function packet (line 457) | pub fn packet(&self) -> &[u8] { function payload (line 462) | pub fn payload(&self) -> &[u8] { method fmt (line 468) | fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { function test_length (line 483) | fn test_length() { function test_class_num (line 498) | fn test_class_num() { function test_class_subtype (line 528) | fn test_class_subtype() { function test_extension_header_view (line 543) | fn test_extension_header_view() { type MplsLabelStackPacket (line 567) | pub struct MplsLabelStackPacket<'a> { function new (line 572) | pub fn new(packet: &'a mut [u8]) -> Result { function new_view (line 586) | pub fn new_view(packet: &'a [u8]) -> Result { function minimum_packet_size (line 601) | pub const fn minimum_packet_size() -> usize { function packet (line 606) | pub fn packet(&self) -> &[u8] { function members (line 611) | pub const fn members(&self) -> MplsLabelStackIter<'_> { type MplsLabelStackIter (line 616) | pub struct MplsLabelStackIter<'a> { function new (line 624) | pub const fn new(buf: &'a Buffer<'_>) -> Self { type Item (line 634) | type Item = &'a [u8]; method next (line 636) | fn next(&mut self) -> Option { function test_stack_member_iterator (line 657) | fn test_stack_member_iterator() { constant LABEL_OFFSET (line 677) | const LABEL_OFFSET: usize = 0; constant EXP_OFFSET (line 678) | const EXP_OFFSET: usize = 2; constant BOS_OFFSET (line 679) | const BOS_OFFSET: usize = 2; constant TTL_OFFSET (line 680) | const TTL_OFFSET: usize = 3; type MplsLabelStackMemberPacket (line 687) | pub struct MplsLabelStackMemberPacket<'a> { function new (line 692) | pub fn new(packet: &'a mut [u8]) -> Result { function new_view (line 706) | pub fn new_view(packet: &'a [u8]) -> Result { function minimum_packet_size (line 721) | pub const fn minimum_packet_size() -> usize { function get_label (line 726) | pub fn get_label(&self) -> u32 { function get_exp (line 736) | pub fn get_exp(&self) -> u8 { function get_bos (line 741) | pub fn get_bos(&self) -> u8 { function get_ttl (line 746) | pub fn get_ttl(&self) -> u8 { function set_label (line 750) | pub fn set_label(&mut self, val: u32) { function set_exp (line 758) | pub fn set_exp(&mut self, exp: u8) { function set_bos (line 762) | pub fn set_bos(&mut self, bos: u8) { function set_ttl (line 766) | pub fn set_ttl(&mut self, ttl: u8) { function packet (line 771) | pub fn packet(&self) -> &[u8] { method fmt (line 777) | fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { function test_label (line 792) | fn test_label() { function test_exp (line 807) | fn test_exp() { function test_bos (line 819) | fn test_bos() { function test_ttl (line 831) | fn test_ttl() { function test_combined (line 846) | fn test_combined() { function test_view (line 870) | fn test_view() { constant MIN_HEADER (line 883) | const MIN_HEADER: usize = ExtensionHeaderPacket::minimum_packet_size(); constant ICMP_ORIG_DATAGRAM_MIN_LENGTH (line 890) | const ICMP_ORIG_DATAGRAM_MIN_LENGTH: usize = 128; function split (line 896) | pub fn split(length: usize, icmp_payload: &[u8]) -> (&[u8], Option<&[u8]... function test_split_empty_payload (line 947) | fn test_split_empty_payload() { function test_split_payload_with_compliant_empty_extension (line 956) | fn test_split_payload_with_compliant_empty_extension() { function test_split_payload_with_compliant_minimal_extension (line 965) | fn test_split_payload_with_compliant_minimal_extension() { function test_split_payload_with_invalid_rfc4884_length (line 977) | fn test_split_payload_with_invalid_rfc4884_length() { function test_split_payload_with_compliant_invalid_extension (line 990) | fn test_split_payload_with_compliant_invalid_extension() { function test_split_extension_ipv4_time_exceeded_non_compliant_mpls (line 1009) | fn test_split_extension_ipv4_time_exceeded_non_compliant_mpls() { function test_split_extension_ipv4_time_exceeded_compliant_no_extension (line 1081) | fn test_split_extension_ipv4_time_exceeded_compliant_no_extension() { function test_split_extension_ipv4_time_exceeded_compliant_extension (line 1125) | fn test_split_extension_ipv4_time_exceeded_compliant_extension() { function test_ipv6 (line 1193) | fn test_ipv6() { function test_ipv6_2 (line 1277) | fn test_ipv6_2() { FILE: crates/trippy-packet/src/icmpv4.rs type IcmpType (line 7) | pub enum IcmpType { method id (line 17) | pub const fn id(&self) -> u8 { method from (line 29) | fn from(val: u8) -> Self { type IcmpCode (line 42) | pub struct IcmpCode(pub u8); method from (line 45) | fn from(val: u8) -> Self { type IcmpTimeExceededCode (line 52) | pub enum IcmpTimeExceededCode { method from (line 62) | fn from(val: IcmpCode) -> Self { constant TYPE_OFFSET (line 71) | const TYPE_OFFSET: usize = 0; constant CODE_OFFSET (line 72) | const CODE_OFFSET: usize = 1; constant CHECKSUM_OFFSET (line 73) | const CHECKSUM_OFFSET: usize = 2; type IcmpPacket (line 79) | pub struct IcmpPacket<'a> { function new (line 84) | pub fn new(packet: &'a mut [u8]) -> Result { function new_view (line 98) | pub fn new_view(packet: &'a [u8]) -> Result { function minimum_packet_size (line 113) | pub const fn minimum_packet_size() -> usize { function get_icmp_type (line 118) | pub fn get_icmp_type(&self) -> IcmpType { function get_icmp_code (line 123) | pub fn get_icmp_code(&self) -> IcmpCode { function get_checksum (line 128) | pub fn get_checksum(&self) -> u16 { function set_icmp_type (line 132) | pub fn set_icmp_type(&mut self, val: IcmpType) { function set_icmp_code (line 136) | pub fn set_icmp_code(&mut self, val: IcmpCode) { function set_checksum (line 140) | pub fn set_checksum(&mut self, val: u16) { function packet (line 145) | pub fn packet(&self) -> &[u8] { method fmt (line 151) | fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { function test_icmp_type (line 165) | fn test_icmp_type() { function test_icmp_code (line 186) | fn test_icmp_code() { function test_checksum (line 201) | fn test_checksum() { function test_new_insufficient_buffer (line 216) | fn test_new_insufficient_buffer() { function test_new_view_insufficient_buffer (line 227) | fn test_new_view_insufficient_buffer() { constant TYPE_OFFSET (line 245) | const TYPE_OFFSET: usize = 0; constant CODE_OFFSET (line 246) | const CODE_OFFSET: usize = 1; constant CHECKSUM_OFFSET (line 247) | const CHECKSUM_OFFSET: usize = 2; constant IDENTIFIER_OFFSET (line 248) | const IDENTIFIER_OFFSET: usize = 4; constant SEQUENCE_OFFSET (line 249) | const SEQUENCE_OFFSET: usize = 6; type EchoRequestPacket (line 256) | pub struct EchoRequestPacket<'a> { function new (line 261) | pub fn new(packet: &'a mut [u8]) -> Result { function new_view (line 275) | pub fn new_view(packet: &'a [u8]) -> Result { function minimum_packet_size (line 290) | pub const fn minimum_packet_size() -> usize { function get_icmp_type (line 295) | pub fn get_icmp_type(&self) -> IcmpType { function get_icmp_code (line 300) | pub fn get_icmp_code(&self) -> IcmpCode { function get_checksum (line 305) | pub fn get_checksum(&self) -> u16 { function get_identifier (line 310) | pub fn get_identifier(&self) -> u16 { function get_sequence (line 315) | pub fn get_sequence(&self) -> u16 { function set_icmp_type (line 319) | pub fn set_icmp_type(&mut self, val: IcmpType) { function set_icmp_code (line 323) | pub fn set_icmp_code(&mut self, val: IcmpCode) { function set_checksum (line 327) | pub fn set_checksum(&mut self, val: u16) { function set_identifier (line 331) | pub fn set_identifier(&mut self, val: u16) { function set_sequence (line 335) | pub fn set_sequence(&mut self, val: u16) { function set_payload (line 339) | pub fn set_payload(&mut self, vals: &[u8]) { function packet (line 346) | pub fn packet(&self) -> &[u8] { function payload (line 351) | pub fn payload(&self) -> &[u8] { method fmt (line 357) | fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { function test_icmp_type (line 374) | fn test_icmp_type() { function test_icmp_code (line 395) | fn test_icmp_code() { function test_checksum (line 410) | fn test_checksum() { function test_identifier (line 425) | fn test_identifier() { function test_sequence (line 440) | fn test_sequence() { function test_view (line 455) | fn test_view() { function test_new_insufficient_buffer (line 467) | fn test_new_insufficient_buffer() { function test_new_view_insufficient_buffer (line 478) | fn test_new_view_insufficient_buffer() { constant TYPE_OFFSET (line 497) | const TYPE_OFFSET: usize = 0; constant CODE_OFFSET (line 498) | const CODE_OFFSET: usize = 1; constant CHECKSUM_OFFSET (line 499) | const CHECKSUM_OFFSET: usize = 2; constant IDENTIFIER_OFFSET (line 500) | const IDENTIFIER_OFFSET: usize = 4; constant SEQUENCE_OFFSET (line 501) | const SEQUENCE_OFFSET: usize = 6; type EchoReplyPacket (line 508) | pub struct EchoReplyPacket<'a> { function new (line 513) | pub fn new(packet: &'a mut [u8]) -> Result { function new_view (line 527) | pub fn new_view(packet: &'a [u8]) -> Result { function minimum_packet_size (line 542) | pub const fn minimum_packet_size() -> usize { function get_icmp_type (line 547) | pub fn get_icmp_type(&self) -> IcmpType { function get_icmp_code (line 552) | pub fn get_icmp_code(&self) -> IcmpCode { function get_checksum (line 557) | pub fn get_checksum(&self) -> u16 { function get_identifier (line 562) | pub fn get_identifier(&self) -> u16 { function get_sequence (line 567) | pub fn get_sequence(&self) -> u16 { function set_icmp_type (line 571) | pub fn set_icmp_type(&mut self, val: IcmpType) { function set_icmp_code (line 575) | pub fn set_icmp_code(&mut self, val: IcmpCode) { function set_checksum (line 579) | pub fn set_checksum(&mut self, val: u16) { function set_identifier (line 583) | pub fn set_identifier(&mut self, val: u16) { function set_sequence (line 587) | pub fn set_sequence(&mut self, val: u16) { function set_payload (line 591) | pub fn set_payload(&mut self, vals: &[u8]) { function packet (line 598) | pub fn packet(&self) -> &[u8] { function payload (line 603) | pub fn payload(&self) -> &[u8] { method fmt (line 609) | fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { function test_icmp_type (line 626) | fn test_icmp_type() { function test_icmp_code (line 647) | fn test_icmp_code() { function test_checksum (line 662) | fn test_checksum() { function test_identifier (line 677) | fn test_identifier() { function test_sequence (line 692) | fn test_sequence() { function test_view (line 707) | fn test_view() { function test_new_insufficient_buffer (line 719) | fn test_new_insufficient_buffer() { function test_new_view_insufficient_buffer (line 730) | fn test_new_view_insufficient_buffer() { constant TYPE_OFFSET (line 750) | const TYPE_OFFSET: usize = 0; constant CODE_OFFSET (line 751) | const CODE_OFFSET: usize = 1; constant CHECKSUM_OFFSET (line 752) | const CHECKSUM_OFFSET: usize = 2; constant LENGTH_OFFSET (line 753) | const LENGTH_OFFSET: usize = 5; type TimeExceededPacket (line 760) | pub struct TimeExceededPacket<'a> { function new (line 765) | pub fn new(packet: &'a mut [u8]) -> Result { function new_view (line 779) | pub fn new_view(packet: &'a [u8]) -> Result { function minimum_packet_size (line 794) | pub const fn minimum_packet_size() -> usize { function get_icmp_type (line 799) | pub fn get_icmp_type(&self) -> IcmpType { function get_icmp_code (line 804) | pub fn get_icmp_code(&self) -> IcmpCode { function get_checksum (line 809) | pub fn get_checksum(&self) -> u16 { function get_length (line 814) | pub fn get_length(&self) -> u8 { function set_icmp_type (line 818) | pub fn set_icmp_type(&mut self, val: IcmpType) { function set_icmp_code (line 822) | pub fn set_icmp_code(&mut self, val: IcmpCode) { function set_checksum (line 826) | pub fn set_checksum(&mut self, val: u16) { function set_length (line 830) | pub fn set_length(&mut self, val: u8) { function set_payload (line 834) | pub fn set_payload(&mut self, vals: &[u8]) { function packet (line 841) | pub fn packet(&self) -> &[u8] { function payload (line 846) | pub fn payload(&self) -> &[u8] { function payload_raw (line 852) | pub fn payload_raw(&self) -> &[u8] { function extension (line 857) | pub fn extension(&self) -> Option<&[u8]> { function split_payload_extension (line 862) | fn split_payload_extension(&self) -> (&[u8], Option<&[u8]>) { method fmt (line 873) | fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { function test_icmp_type (line 889) | fn test_icmp_type() { function test_icmp_code (line 910) | fn test_icmp_code() { function test_checksum (line 925) | fn test_checksum() { function test_length (line 940) | fn test_length() { function test_view (line 955) | fn test_view() { function test_view_large (line 966) | fn test_view_large() { function test_new_insufficient_buffer (line 979) | fn test_new_insufficient_buffer() { function test_new_view_insufficient_buffer (line 990) | fn test_new_view_insufficient_buffer() { constant TYPE_OFFSET (line 1010) | const TYPE_OFFSET: usize = 0; constant CODE_OFFSET (line 1011) | const CODE_OFFSET: usize = 1; constant CHECKSUM_OFFSET (line 1012) | const CHECKSUM_OFFSET: usize = 2; constant LENGTH_OFFSET (line 1013) | const LENGTH_OFFSET: usize = 5; constant NEXT_HOP_MTU_OFFSET (line 1014) | const NEXT_HOP_MTU_OFFSET: usize = 6; type DestinationUnreachablePacket (line 1021) | pub struct DestinationUnreachablePacket<'a> { function new (line 1026) | pub fn new(packet: &'a mut [u8]) -> Result { function new_view (line 1040) | pub fn new_view(packet: &'a [u8]) -> Result { function minimum_packet_size (line 1055) | pub const fn minimum_packet_size() -> usize { function get_icmp_type (line 1060) | pub fn get_icmp_type(&self) -> IcmpType { function get_icmp_code (line 1065) | pub fn get_icmp_code(&self) -> IcmpCode { function get_checksum (line 1070) | pub fn get_checksum(&self) -> u16 { function get_length (line 1075) | pub fn get_length(&self) -> u8 { function get_next_hop_mtu (line 1080) | pub fn get_next_hop_mtu(&self) -> u16 { function set_icmp_type (line 1084) | pub fn set_icmp_type(&mut self, val: IcmpType) { function set_icmp_code (line 1088) | pub fn set_icmp_code(&mut self, val: IcmpCode) { function set_checksum (line 1092) | pub fn set_checksum(&mut self, val: u16) { function set_length (line 1096) | pub fn set_length(&mut self, val: u8) { function set_next_hop_mtu (line 1100) | pub fn set_next_hop_mtu(&mut self, val: u16) { function set_payload (line 1104) | pub fn set_payload(&mut self, vals: &[u8]) { function packet (line 1111) | pub fn packet(&self) -> &[u8] { function payload (line 1116) | pub fn payload(&self) -> &[u8] { function payload_raw (line 1122) | pub fn payload_raw(&self) -> &[u8] { function extension (line 1127) | pub fn extension(&self) -> Option<&[u8]> { function split_payload_extension (line 1132) | fn split_payload_extension(&self) -> (&[u8], Option<&[u8]>) { method fmt (line 1140) | fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { function test_icmp_type (line 1157) | fn test_icmp_type() { function test_icmp_code (line 1178) | fn test_icmp_code() { function test_checksum (line 1193) | fn test_checksum() { function test_length (line 1208) | fn test_length() { function test_view (line 1223) | fn test_view() { function test_view_large (line 1234) | fn test_view_large() { function test_new_insufficient_buffer (line 1247) | fn test_new_insufficient_buffer() { function test_new_view_insufficient_buffer (line 1262) | fn test_new_view_insufficient_buffer() { FILE: crates/trippy-packet/src/icmpv6.rs type IcmpType (line 7) | pub enum IcmpType { method id (line 17) | pub const fn id(&self) -> u8 { method from (line 29) | fn from(val: u8) -> Self { type IcmpCode (line 42) | pub struct IcmpCode(pub u8); method from (line 45) | fn from(val: u8) -> Self { type IcmpTimeExceededCode (line 52) | pub enum IcmpTimeExceededCode { method from (line 62) | fn from(val: IcmpCode) -> Self { constant TYPE_OFFSET (line 71) | const TYPE_OFFSET: usize = 0; constant CODE_OFFSET (line 72) | const CODE_OFFSET: usize = 1; constant CHECKSUM_OFFSET (line 73) | const CHECKSUM_OFFSET: usize = 2; type IcmpPacket (line 79) | pub struct IcmpPacket<'a> { function new (line 84) | pub fn new(packet: &'a mut [u8]) -> Result { function new_view (line 98) | pub fn new_view(packet: &'a [u8]) -> Result { function minimum_packet_size (line 113) | pub const fn minimum_packet_size() -> usize { function get_icmp_type (line 118) | pub fn get_icmp_type(&self) -> IcmpType { function get_icmp_code (line 123) | pub fn get_icmp_code(&self) -> IcmpCode { function get_checksum (line 128) | pub fn get_checksum(&self) -> u16 { function set_icmp_type (line 132) | pub fn set_icmp_type(&mut self, val: IcmpType) { function set_icmp_code (line 136) | pub fn set_icmp_code(&mut self, val: IcmpCode) { function set_checksum (line 140) | pub fn set_checksum(&mut self, val: u16) { function packet (line 145) | pub fn packet(&self) -> &[u8] { method fmt (line 151) | fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { function test_icmp_type (line 165) | fn test_icmp_type() { function test_icmp_code (line 186) | fn test_icmp_code() { function test_checksum (line 201) | fn test_checksum() { function test_new_insufficient_buffer (line 216) | fn test_new_insufficient_buffer() { function test_new_view_insufficient_buffer (line 227) | fn test_new_view_insufficient_buffer() { constant TYPE_OFFSET (line 245) | const TYPE_OFFSET: usize = 0; constant CODE_OFFSET (line 246) | const CODE_OFFSET: usize = 1; constant CHECKSUM_OFFSET (line 247) | const CHECKSUM_OFFSET: usize = 2; constant IDENTIFIER_OFFSET (line 248) | const IDENTIFIER_OFFSET: usize = 4; constant SEQUENCE_OFFSET (line 249) | const SEQUENCE_OFFSET: usize = 6; type EchoRequestPacket (line 256) | pub struct EchoRequestPacket<'a> { function new (line 261) | pub fn new(packet: &'a mut [u8]) -> Result { function new_view (line 275) | pub fn new_view(packet: &'a [u8]) -> Result { function minimum_packet_size (line 290) | pub const fn minimum_packet_size() -> usize { function get_icmp_type (line 295) | pub fn get_icmp_type(&self) -> IcmpType { function get_icmp_code (line 300) | pub fn get_icmp_code(&self) -> IcmpCode { function get_checksum (line 305) | pub fn get_checksum(&self) -> u16 { function get_identifier (line 310) | pub fn get_identifier(&self) -> u16 { function get_sequence (line 315) | pub fn get_sequence(&self) -> u16 { function set_icmp_type (line 319) | pub fn set_icmp_type(&mut self, val: IcmpType) { function set_icmp_code (line 323) | pub fn set_icmp_code(&mut self, val: IcmpCode) { function set_checksum (line 327) | pub fn set_checksum(&mut self, val: u16) { function set_identifier (line 331) | pub fn set_identifier(&mut self, val: u16) { function set_sequence (line 335) | pub fn set_sequence(&mut self, val: u16) { function set_payload (line 339) | pub fn set_payload(&mut self, vals: &[u8]) { function packet (line 346) | pub fn packet(&self) -> &[u8] { function payload (line 351) | pub fn payload(&self) -> &[u8] { method fmt (line 357) | fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { function test_icmp_type (line 374) | fn test_icmp_type() { function test_icmp_code (line 395) | fn test_icmp_code() { function test_checksum (line 410) | fn test_checksum() { function test_identifier (line 425) | fn test_identifier() { function test_sequence (line 440) | fn test_sequence() { function test_view (line 455) | fn test_view() { function test_new_insufficient_buffer (line 467) | fn test_new_insufficient_buffer() { function test_new_view_insufficient_buffer (line 478) | fn test_new_view_insufficient_buffer() { constant TYPE_OFFSET (line 497) | const TYPE_OFFSET: usize = 0; constant CODE_OFFSET (line 498) | const CODE_OFFSET: usize = 1; constant CHECKSUM_OFFSET (line 499) | const CHECKSUM_OFFSET: usize = 2; constant IDENTIFIER_OFFSET (line 500) | const IDENTIFIER_OFFSET: usize = 4; constant SEQUENCE_OFFSET (line 501) | const SEQUENCE_OFFSET: usize = 6; type EchoReplyPacket (line 508) | pub struct EchoReplyPacket<'a> { function new (line 513) | pub fn new(packet: &'a mut [u8]) -> Result { function new_view (line 527) | pub fn new_view(packet: &'a [u8]) -> Result { function minimum_packet_size (line 542) | pub const fn minimum_packet_size() -> usize { function get_icmp_type (line 547) | pub fn get_icmp_type(&self) -> IcmpType { function get_icmp_code (line 552) | pub fn get_icmp_code(&self) -> IcmpCode { function get_checksum (line 557) | pub fn get_checksum(&self) -> u16 { function get_identifier (line 562) | pub fn get_identifier(&self) -> u16 { function get_sequence (line 567) | pub fn get_sequence(&self) -> u16 { function set_icmp_type (line 571) | pub fn set_icmp_type(&mut self, val: IcmpType) { function set_icmp_code (line 575) | pub fn set_icmp_code(&mut self, val: IcmpCode) { function set_checksum (line 579) | pub fn set_checksum(&mut self, val: u16) { function set_identifier (line 583) | pub fn set_identifier(&mut self, val: u16) { function set_sequence (line 587) | pub fn set_sequence(&mut self, val: u16) { function set_payload (line 591) | pub fn set_payload(&mut self, vals: &[u8]) { function packet (line 598) | pub fn packet(&self) -> &[u8] { function payload (line 603) | pub fn payload(&self) -> &[u8] { method fmt (line 609) | fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { function test_icmp_type (line 626) | fn test_icmp_type() { function test_icmp_code (line 647) | fn test_icmp_code() { function test_checksum (line 662) | fn test_checksum() { function test_identifier (line 677) | fn test_identifier() { function test_sequence (line 692) | fn test_sequence() { function test_view (line 707) | fn test_view() { function test_new_insufficient_buffer (line 719) | fn test_new_insufficient_buffer() { function test_new_view_insufficient_buffer (line 730) | fn test_new_view_insufficient_buffer() { constant TYPE_OFFSET (line 750) | const TYPE_OFFSET: usize = 0; constant CODE_OFFSET (line 751) | const CODE_OFFSET: usize = 1; constant CHECKSUM_OFFSET (line 752) | const CHECKSUM_OFFSET: usize = 2; constant LENGTH_OFFSET (line 753) | const LENGTH_OFFSET: usize = 4; type TimeExceededPacket (line 760) | pub struct TimeExceededPacket<'a> { function new (line 765) | pub fn new(packet: &'a mut [u8]) -> Result { function new_view (line 779) | pub fn new_view(packet: &'a [u8]) -> Result { function minimum_packet_size (line 794) | pub const fn minimum_packet_size() -> usize { function get_icmp_type (line 799) | pub fn get_icmp_type(&self) -> IcmpType { function get_icmp_code (line 804) | pub fn get_icmp_code(&self) -> IcmpCode { function get_checksum (line 809) | pub fn get_checksum(&self) -> u16 { function get_length (line 814) | pub fn get_length(&self) -> u8 { function set_icmp_type (line 818) | pub fn set_icmp_type(&mut self, val: IcmpType) { function set_icmp_code (line 822) | pub fn set_icmp_code(&mut self, val: IcmpCode) { function set_checksum (line 826) | pub fn set_checksum(&mut self, val: u16) { function set_length (line 830) | pub fn set_length(&mut self, val: u8) { function set_payload (line 834) | pub fn set_payload(&mut self, vals: &[u8]) { function packet (line 841) | pub fn packet(&self) -> &[u8] { function payload (line 846) | pub fn payload(&self) -> &[u8] { function payload_raw (line 852) | pub fn payload_raw(&self) -> &[u8] { function extension (line 857) | pub fn extension(&self) -> Option<&[u8]> { function split_payload_extension (line 862) | fn split_payload_extension(&self) -> (&[u8], Option<&[u8]>) { method fmt (line 870) | fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { function test_icmp_type (line 886) | fn test_icmp_type() { function test_icmp_code (line 907) | fn test_icmp_code() { function test_checksum (line 922) | fn test_checksum() { function test_length (line 937) | fn test_length() { function test_view (line 952) | fn test_view() { function test_view_large (line 963) | fn test_view_large() { function test_new_insufficient_buffer (line 976) | fn test_new_insufficient_buffer() { function test_new_view_insufficient_buffer (line 987) | fn test_new_view_insufficient_buffer() { constant TYPE_OFFSET (line 1007) | const TYPE_OFFSET: usize = 0; constant CODE_OFFSET (line 1008) | const CODE_OFFSET: usize = 1; constant CHECKSUM_OFFSET (line 1009) | const CHECKSUM_OFFSET: usize = 2; constant LENGTH_OFFSET (line 1010) | const LENGTH_OFFSET: usize = 4; constant NEXT_HOP_MTU_OFFSET (line 1011) | const NEXT_HOP_MTU_OFFSET: usize = 6; type DestinationUnreachablePacket (line 1018) | pub struct DestinationUnreachablePacket<'a> { function new (line 1023) | pub fn new(packet: &'a mut [u8]) -> Result { function new_view (line 1037) | pub fn new_view(packet: &'a [u8]) -> Result { function minimum_packet_size (line 1052) | pub const fn minimum_packet_size() -> usize { function get_icmp_type (line 1057) | pub fn get_icmp_type(&self) -> IcmpType { function get_icmp_code (line 1062) | pub fn get_icmp_code(&self) -> IcmpCode { function get_checksum (line 1067) | pub fn get_checksum(&self) -> u16 { function get_length (line 1072) | pub fn get_length(&self) -> u8 { function get_next_hop_mtu (line 1077) | pub fn get_next_hop_mtu(&self) -> u16 { function set_icmp_type (line 1081) | pub fn set_icmp_type(&mut self, val: IcmpType) { function set_icmp_code (line 1085) | pub fn set_icmp_code(&mut self, val: IcmpCode) { function set_checksum (line 1089) | pub fn set_checksum(&mut self, val: u16) { function set_length (line 1093) | pub fn set_length(&mut self, val: u8) { function set_next_hop_mtu (line 1097) | pub fn set_next_hop_mtu(&mut self, val: u16) { function set_payload (line 1101) | pub fn set_payload(&mut self, vals: &[u8]) { function packet (line 1108) | pub fn packet(&self) -> &[u8] { function payload (line 1113) | pub fn payload(&self) -> &[u8] { function payload_raw (line 1119) | pub fn payload_raw(&self) -> &[u8] { function extension (line 1124) | pub fn extension(&self) -> Option<&[u8]> { function split_payload_extension (line 1129) | fn split_payload_extension(&self) -> (&[u8], Option<&[u8]>) { method fmt (line 1140) | fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { function test_icmp_type (line 1157) | fn test_icmp_type() { function test_icmp_code (line 1178) | fn test_icmp_code() { function test_checksum (line 1193) | fn test_checksum() { function test_length (line 1208) | fn test_length() { function test_view (line 1223) | fn test_view() { function test_view_large (line 1234) | fn test_view_large() { function test_new_insufficient_buffer (line 1247) | fn test_new_insufficient_buffer() { function test_new_view_insufficient_buffer (line 1262) | fn test_new_view_insufficient_buffer() { FILE: crates/trippy-packet/src/ip.rs type IpVersion (line 7) | pub enum IpVersion { method id (line 15) | pub const fn id(self) -> u8 { method new (line 24) | pub const fn new(value: u8) -> Self { method from (line 30) | fn from(id: u8) -> Self { constant VERSION_OFFSET (line 39) | const VERSION_OFFSET: usize = 0; type IpPacket (line 45) | pub struct IpPacket<'a> { function new (line 50) | pub fn new(packet: &'a mut [u8]) -> Result { function new_view (line 64) | pub fn new_view(packet: &'a [u8]) -> Result { function minimum_packet_size (line 79) | pub const fn minimum_packet_size() -> usize { function get_version (line 84) | pub fn get_version(&self) -> IpVersion { function set_version (line 88) | pub fn set_version(&mut self, val: IpVersion) { function packet (line 94) | pub fn packet(&self) -> &[u8] { method fmt (line 100) | fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { function test_version (line 112) | fn test_version() { function test_view_ipv4_packet (line 127) | fn test_view_ipv4_packet() { function test_view_ipv6_packet (line 139) | fn test_view_ipv6_packet() { function test_new_insufficient_buffer (line 152) | fn test_new_insufficient_buffer() { function test_new_view_insufficient_buffer (line 163) | fn test_new_view_insufficient_buffer() { FILE: crates/trippy-packet/src/ipv4.rs constant VERSION_OFFSET (line 7) | const VERSION_OFFSET: usize = 0; constant IHL_OFFSET (line 8) | const IHL_OFFSET: usize = 0; constant DSCP_OFFSET (line 9) | const DSCP_OFFSET: usize = 1; constant ECN_OFFSET (line 10) | const ECN_OFFSET: usize = 1; constant TOTAL_LENGTH_OFFSET (line 11) | const TOTAL_LENGTH_OFFSET: usize = 2; constant IDENTIFICATION_OFFSET (line 12) | const IDENTIFICATION_OFFSET: usize = 4; constant FLAGS_AND_FRAGMENT_OFFSET_OFFSET (line 13) | const FLAGS_AND_FRAGMENT_OFFSET_OFFSET: usize = 6; constant TIME_TO_LIVE_OFFSET (line 14) | const TIME_TO_LIVE_OFFSET: usize = 8; constant PROTOCOL_OFFSET (line 15) | const PROTOCOL_OFFSET: usize = 9; constant CHECKSUM_OFFSET (line 16) | const CHECKSUM_OFFSET: usize = 10; constant SOURCE_OFFSET (line 17) | const SOURCE_OFFSET: usize = 12; constant DESTINATION_OFFSET (line 18) | const DESTINATION_OFFSET: usize = 16; type Ipv4Packet (line 24) | pub struct Ipv4Packet<'a> { function new (line 29) | pub fn new(packet: &'a mut [u8]) -> Result { function new_view (line 43) | pub fn new_view(packet: &'a [u8]) -> Result { function minimum_packet_size (line 58) | pub const fn minimum_packet_size() -> usize { function get_version (line 63) | pub fn get_version(&self) -> u8 { function get_header_length (line 68) | pub fn get_header_length(&self) -> u8 { function get_dscp (line 73) | pub fn get_dscp(&self) -> u8 { function get_ecn (line 78) | pub fn get_ecn(&self) -> u8 { function get_tos (line 83) | pub fn get_tos(&self) -> u8 { function get_total_length (line 88) | pub fn get_total_length(&self) -> u16 { function get_identification (line 93) | pub fn get_identification(&self) -> u16 { function get_flags_and_fragment_offset (line 98) | pub fn get_flags_and_fragment_offset(&self) -> u16 { function get_ttl (line 103) | pub fn get_ttl(&self) -> u8 { function get_protocol (line 108) | pub fn get_protocol(&self) -> IpProtocol { function get_checksum (line 113) | pub fn get_checksum(&self) -> u16 { function get_source (line 118) | pub fn get_source(&self) -> Ipv4Addr { function get_destination (line 123) | pub fn get_destination(&self) -> Ipv4Addr { function get_options_raw (line 128) | pub fn get_options_raw(&self) -> &[u8] { function set_version (line 137) | pub fn set_version(&mut self, val: u8) { function set_header_length (line 142) | pub fn set_header_length(&mut self, val: u8) { function set_dscp (line 146) | pub fn set_dscp(&mut self, val: u8) { function set_ecn (line 150) | pub fn set_ecn(&mut self, val: u8) { function set_tos (line 154) | pub fn set_tos(&mut self, val: u8) { function set_total_length (line 159) | pub fn set_total_length(&mut self, val: u16) { function set_identification (line 163) | pub fn set_identification(&mut self, val: u16) { function set_flags_and_fragment_offset (line 167) | pub fn set_flags_and_fragment_offset(&mut self, val: u16) { function set_ttl (line 172) | pub fn set_ttl(&mut self, val: u8) { function set_protocol (line 176) | pub fn set_protocol(&mut self, val: IpProtocol) { function set_checksum (line 180) | pub fn set_checksum(&mut self, val: u16) { function set_source (line 184) | pub fn set_source(&mut self, val: Ipv4Addr) { function set_destination (line 188) | pub fn set_destination(&mut self, val: Ipv4Addr) { function get_options_raw_mut (line 192) | pub fn get_options_raw_mut(&mut self) -> &mut [u8] { function set_payload (line 202) | pub fn set_payload(&mut self, vals: &[u8]) { function packet (line 208) | pub fn packet(&self) -> &[u8] { function payload (line 213) | pub fn payload(&self) -> &[u8] { function ipv4_options_length (line 219) | fn ipv4_options_length(ipv4: &Ipv4Packet<'_>) -> usize { method fmt (line 224) | fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { function test_version (line 252) | fn test_version() { function test_header_length (line 264) | fn test_header_length() { function test_version_and_header_length (line 276) | fn test_version_and_header_length() { function test_dscp (line 292) | fn test_dscp() { function test_ecn (line 301) | fn test_ecn() { function test_dscp_and_ecn (line 310) | fn test_dscp_and_ecn() { function test_tos (line 321) | fn test_tos() { function test_total_length (line 337) | fn test_total_length() { function test_identification (line 349) | fn test_identification() { function test_flags (line 361) | fn test_flags() { function test_time_to_live (line 374) | fn test_time_to_live() { function test_protocol (line 386) | fn test_protocol() { function test_header_checksum (line 410) | fn test_header_checksum() { function test_source (line 425) | fn test_source() { function test_destination (line 443) | fn test_destination() { function test_view (line 464) | fn test_view() { function test_new_insufficient_buffer (line 489) | fn test_new_insufficient_buffer() { function test_new_view_insufficient_buffer (line 500) | fn test_new_view_insufficient_buffer() { FILE: crates/trippy-packet/src/ipv6.rs constant VERSION_OFFSET (line 7) | const VERSION_OFFSET: usize = 0; constant TRAFFIC_CLASS_OFFSET (line 8) | const TRAFFIC_CLASS_OFFSET: usize = 0; constant FLOW_LABEL_OFFSET (line 9) | const FLOW_LABEL_OFFSET: usize = 1; constant PAYLOAD_LENGTH_OFFSET (line 10) | const PAYLOAD_LENGTH_OFFSET: usize = 4; constant NEXT_HEADER_OFFSET (line 11) | const NEXT_HEADER_OFFSET: usize = 6; constant HOP_LIMIT_OFFSET (line 12) | const HOP_LIMIT_OFFSET: usize = 7; constant SOURCE_ADDRESS_OFFSET (line 13) | const SOURCE_ADDRESS_OFFSET: usize = 8; constant DESTINATION_ADDRESS_OFFSET (line 14) | const DESTINATION_ADDRESS_OFFSET: usize = 24; type Ipv6Packet (line 20) | pub struct Ipv6Packet<'a> { function new (line 25) | pub fn new(packet: &'a mut [u8]) -> Result { function new_view (line 39) | pub fn new_view(packet: &'a [u8]) -> Result { function minimum_packet_size (line 54) | pub const fn minimum_packet_size() -> usize { function get_version (line 59) | pub fn get_version(&self) -> u8 { function get_traffic_class (line 64) | pub fn get_traffic_class(&self) -> u8 { function get_flow_label (line 71) | pub fn get_flow_label(&self) -> u32 { function get_payload_length (line 79) | pub fn get_payload_length(&self) -> u16 { function get_next_header (line 84) | pub fn get_next_header(&self) -> IpProtocol { function get_hop_limit (line 89) | pub fn get_hop_limit(&self) -> u8 { function get_source_address (line 94) | pub fn get_source_address(&self) -> Ipv6Addr { function get_destination_address (line 99) | pub fn get_destination_address(&self) -> Ipv6Addr { function set_version (line 103) | pub fn set_version(&mut self, val: u8) { function set_traffic_class (line 108) | pub fn set_traffic_class(&mut self, val: u8) { function set_flow_label (line 115) | pub fn set_flow_label(&mut self, val: u32) { function set_payload_length (line 122) | pub fn set_payload_length(&mut self, val: u16) { function set_next_header (line 126) | pub fn set_next_header(&mut self, val: IpProtocol) { function set_hop_limit (line 130) | pub fn set_hop_limit(&mut self, val: u8) { function set_source_address (line 134) | pub fn set_source_address(&mut self, val: Ipv6Addr) { function set_destination_address (line 138) | pub fn set_destination_address(&mut self, val: Ipv6Addr) { function set_payload (line 142) | pub fn set_payload(&mut self, vals: &[u8]) { function packet (line 152) | pub fn packet(&self) -> &[u8] { function payload (line 157) | pub fn payload(&self) -> &[u8] { method fmt (line 171) | fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { function test_version (line 192) | fn test_version() { function test_traffic_class (line 204) | fn test_traffic_class() { function test_version_and_traffic_class (line 216) | fn test_version_and_traffic_class() { function test_flow_label (line 227) | fn test_flow_label() { function test_payload_length (line 242) | fn test_payload_length() { function test_next_header (line 257) | fn test_next_header() { function test_hop_limit (line 281) | fn test_hop_limit() { function test_source_address (line 296) | fn test_source_address() { function test_destination_address (line 323) | fn test_destination_address() { function test_view (line 350) | fn test_view() { function test_new_insufficient_buffer (line 375) | fn test_new_insufficient_buffer() { function test_new_view_insufficient_buffer (line 386) | fn test_new_view_insufficient_buffer() { FILE: crates/trippy-packet/src/lib.rs type IpProtocol (line 93) | pub enum IpProtocol { method id (line 103) | pub const fn id(self) -> u8 { method new (line 114) | pub const fn new(value: u8) -> Self { method from (line 120) | fn from(id: u8) -> Self { function fmt_payload (line 133) | pub fn fmt_payload(bytes: &[u8]) -> String { FILE: crates/trippy-packet/src/tcp.rs constant SOURCE_PORT_OFFSET (line 6) | const SOURCE_PORT_OFFSET: usize = 0; constant DESTINATION_PORT_OFFSET (line 7) | const DESTINATION_PORT_OFFSET: usize = 2; constant SEQUENCE_OFFSET (line 8) | const SEQUENCE_OFFSET: usize = 4; constant ACKNOWLEDGEMENT_OFFSET (line 9) | const ACKNOWLEDGEMENT_OFFSET: usize = 8; constant DATA_OFFSET_OFFSET (line 10) | const DATA_OFFSET_OFFSET: usize = 12; constant RESERVED_OFFSET (line 11) | const RESERVED_OFFSET: usize = 12; constant FLAGS_OFFSET (line 12) | const FLAGS_OFFSET: usize = 12; constant WINDOW_SIZE_OFFSET (line 13) | const WINDOW_SIZE_OFFSET: usize = 14; constant CHECKSUM_OFFSET (line 14) | const CHECKSUM_OFFSET: usize = 16; constant URGENT_POINTER_OFFSET (line 15) | const URGENT_POINTER_OFFSET: usize = 18; type TcpPacket (line 21) | pub struct TcpPacket<'a> { function new (line 26) | pub fn new(packet: &mut [u8]) -> Result> { function new_view (line 40) | pub fn new_view(packet: &[u8]) -> Result> { function minimum_packet_size (line 55) | pub const fn minimum_packet_size() -> usize { function get_source (line 60) | pub fn get_source(&self) -> u16 { function get_destination (line 65) | pub fn get_destination(&self) -> u16 { function get_sequence (line 70) | pub fn get_sequence(&self) -> u32 { function get_acknowledgement (line 75) | pub fn get_acknowledgement(&self) -> u32 { function get_data_offset (line 80) | pub fn get_data_offset(&self) -> u8 { function get_reserved (line 85) | pub fn get_reserved(&self) -> u8 { function get_flags (line 90) | pub fn get_flags(&self) -> u16 { function get_window_size (line 98) | pub fn get_window_size(&self) -> u16 { function get_checksum (line 103) | pub fn get_checksum(&self) -> u16 { function get_urgent_pointer (line 108) | pub fn get_urgent_pointer(&self) -> u16 { function get_options_raw (line 113) | pub fn get_options_raw(&self) -> &[u8] { function set_source (line 122) | pub fn set_source(&mut self, val: u16) { function set_destination (line 126) | pub fn set_destination(&mut self, val: u16) { function set_sequence (line 131) | pub fn set_sequence(&mut self, val: u32) { function set_acknowledgement (line 135) | pub fn set_acknowledgement(&mut self, val: u32) { function set_data_offset (line 140) | pub fn set_data_offset(&mut self, val: u8) { function set_reserved (line 145) | pub fn set_reserved(&mut self, val: u8) { function set_flags (line 150) | pub fn set_flags(&mut self, val: u16) { function set_window_size (line 156) | pub fn set_window_size(&mut self, val: u16) { function set_checksum (line 160) | pub fn set_checksum(&mut self, val: u16) { function set_urgent_pointer (line 164) | pub fn set_urgent_pointer(&mut self, val: u16) { function set_payload (line 168) | pub fn set_payload(&mut self, vals: &[u8]) { function packet (line 174) | pub fn packet(&self) -> &[u8] { function payload (line 179) | pub fn payload(&self) -> &[u8] { function tcp_options_length (line 187) | fn tcp_options_length(&self) -> usize { method fmt (line 198) | fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { function test_source (line 221) | fn test_source() { function test_destination (line 239) | fn test_destination() { function test_sequence (line 257) | fn test_sequence() { function test_acknowledgement (line 272) | fn test_acknowledgement() { function test_data_offset (line 287) | fn test_data_offset() { function test_reserved (line 299) | fn test_reserved() { function test_flags (line 311) | fn test_flags() { function test_data_offset_and_reserved (line 323) | fn test_data_offset_and_reserved() { function test_reserved_and_flags (line 339) | fn test_reserved_and_flags() { function test_data_offset_and_reserved_and_flags (line 353) | fn test_data_offset_and_reserved_and_flags() { function test_window_size (line 369) | fn test_window_size() { function test_checksum (line 387) | fn test_checksum() { function test_urgent_pointer (line 405) | fn test_urgent_pointer() { function test_view (line 423) | fn test_view() { function test_new_insufficient_buffer (line 451) | fn test_new_insufficient_buffer() { function test_new_view_insufficient_buffer (line 462) | fn test_new_view_insufficient_buffer() { FILE: crates/trippy-packet/src/udp.rs constant SOURCE_PORT_OFFSET (line 6) | const SOURCE_PORT_OFFSET: usize = 0; constant DESTINATION_PORT_OFFSET (line 7) | const DESTINATION_PORT_OFFSET: usize = 2; constant LENGTH_OFFSET (line 8) | const LENGTH_OFFSET: usize = 4; constant CHECKSUM_OFFSET (line 9) | const CHECKSUM_OFFSET: usize = 6; type UdpPacket (line 15) | pub struct UdpPacket<'a> { function new (line 20) | pub fn new(packet: &mut [u8]) -> Result> { function new_view (line 34) | pub fn new_view(packet: &[u8]) -> Result> { function minimum_packet_size (line 49) | pub const fn minimum_packet_size() -> usize { function get_source (line 54) | pub fn get_source(&self) -> u16 { function get_destination (line 59) | pub fn get_destination(&self) -> u16 { function get_length (line 64) | pub fn get_length(&self) -> u16 { function get_checksum (line 69) | pub fn get_checksum(&self) -> u16 { function set_source (line 73) | pub fn set_source(&mut self, val: u16) { function set_destination (line 77) | pub fn set_destination(&mut self, val: u16) { function set_length (line 82) | pub fn set_length(&mut self, val: u16) { function set_checksum (line 86) | pub fn set_checksum(&mut self, val: u16) { function set_payload (line 90) | pub fn set_payload(&mut self, vals: &[u8]) { function packet (line 96) | pub fn packet(&self) -> &[u8] { function payload (line 101) | pub fn payload(&self) -> &[u8] { method fmt (line 107) | fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { function test_source (line 123) | fn test_source() { function test_destination (line 141) | fn test_destination() { function test_length (line 159) | fn test_length() { function test_checksum (line 177) | fn test_checksum() { function test_view (line 195) | fn test_view() { function test_new_insufficient_buffer (line 206) | fn test_new_insufficient_buffer() { function test_new_view_insufficient_buffer (line 217) | fn test_new_view_insufficient_buffer() { FILE: crates/trippy-privilege/src/lib.rs type Result (line 86) | pub type Result = std::result::Result; type Error (line 90) | pub enum Error { type Privilege (line 104) | pub struct Privilege { method discover (line 111) | pub fn discover() -> Result { method new (line 122) | pub const fn new(has_privileges: bool, needs_privileges: bool) -> Self { method has_privileges (line 131) | pub const fn has_privileges(&self) -> bool { method needs_privileges (line 140) | pub const fn needs_privileges(&self) -> bool { method acquire_privileges (line 150) | pub fn acquire_privileges() -> Result { method check_has_privileges (line 161) | fn check_has_privileges() -> Result { method drop_privileges (line 173) | pub fn drop_privileges() -> Result<()> { method acquire_privileges (line 184) | pub fn acquire_privileges() -> Result { method check_has_privileges (line 193) | fn check_has_privileges() -> Result { method drop_privileges (line 201) | pub const fn drop_privileges() -> Result<()> { method check_needs_privileges (line 215) | const fn check_needs_privileges() -> bool { method check_needs_privileges (line 225) | const fn check_needs_privileges() -> bool { method acquire_privileges (line 235) | pub fn acquire_privileges() -> Result { method check_has_privileges (line 243) | fn check_has_privileges() -> Result { method drop_privileges (line 313) | pub const fn drop_privileges() -> Result<()> { method check_needs_privileges (line 321) | const fn check_needs_privileges() -> bool { FILE: crates/trippy-tui/build.rs function main (line 1) | pub fn main() { FILE: crates/trippy-tui/src/app.rs function run_trippy (line 18) | pub fn run_trippy(cfg: &TrippyConfig, pid: u16) -> anyhow::Result<()> { function start_tracers (line 39) | fn start_tracers( function start_tracer (line 55) | fn start_tracer( function run_frontend (line 93) | fn run_frontend( function resolve_targets (line 121) | fn resolve_targets(cfg: &TrippyConfig, resolver: &DnsResolver) -> anyhow... function start_dns_resolver (line 146) | fn start_dns_resolver(cfg: &TrippyConfig) -> anyhow::Result { function create_geoip_lookup (line 156) | fn create_geoip_lookup(cfg: &TrippyConfig, locale: &str) -> anyhow::Resu... function configure_logging (line 164) | fn configure_logging(cfg: &TrippyConfig) -> Option { function make_tui_config (line 207) | fn make_tui_config(args: &TrippyConfig, locale: String) -> TuiConfig { function make_trace_info (line 229) | const fn make_trace_info(tracer: Tracer, target: String) -> TraceInfo { type TraceInfo (line 235) | pub struct TraceInfo { method new (line 242) | pub const fn new(data: Tracer, target_hostname: String) -> Self { type TargetInfo (line 252) | struct TargetInfo { FILE: crates/trippy-tui/src/config.rs type Mode (line 34) | pub enum Mode { type ProtocolConfig (line 58) | pub enum ProtocolConfig { method from (line 68) | fn from(value: Protocol) -> Self { type AddressFamilyConfig (line 80) | pub enum AddressFamilyConfig { method from (line 97) | fn from(value: IpAddrFamily) -> Self { type MultipathStrategyConfig (line 111) | pub enum MultipathStrategyConfig { method from (line 121) | fn from(value: MultipathStrategy) -> Self { type AddressMode (line 133) | pub enum AddressMode { type AsMode (line 145) | pub enum AsMode { type IcmpExtensionMode (line 163) | pub enum IcmpExtensionMode { type GeoIpMode (line 185) | pub enum GeoIpMode { type DnsResolveMethodConfig (line 212) | pub enum DnsResolveMethodConfig { type LogFormat (line 226) | pub enum LogFormat { type LogSpanEvents (line 240) | pub enum LogSpanEvents { type TrippyAction (line 251) | pub enum TrippyAction { method from (line 269) | pub fn from(args: Args, privilege: &Privilege, pid: u16) -> anyhow::Re... type TrippyConfig (line 290) | pub struct TrippyConfig { method from (line 342) | pub fn from(args: Args, privilege: &Privilege, pid: u16) -> anyhow::Re... method max_flows (line 354) | pub const fn max_flows(&self) -> usize { method build_config (line 362) | fn build_config( method default (line 728) | fn default() -> Self { function dns_resolve_method (line 782) | const fn dns_resolve_method(dns_resolve_method: DnsResolveMethodConfig) ... function dns_resolve_family (line 791) | const fn dns_resolve_family(dns_resolve_family: AddressFamilyConfig) -> ... function cfg_layer (line 801) | fn cfg_layer(fst: Option, snd: Option, def: T) -> T { function cfg_layer_opt (line 808) | fn cfg_layer_opt(fst: Option, snd: Option) -> Option { function cfg_layer_bool_flag (line 815) | const fn cfg_layer_bool_flag(fst: bool, snd: Option, default: bool... function validate_deprecated (line 824) | fn validate_deprecated( function validate_privilege (line 846) | fn validate_privilege( function validate_tui_custom_columns (line 870) | fn validate_tui_custom_columns(tui_custom_columns: &TuiColumns) -> anyho... function validate_logging (line 885) | fn validate_logging(mode: Mode, verbose: bool) -> anyhow::Result<()> { function validate_strategy (line 894) | fn validate_strategy(strategy: MultipathStrategy, unprivileged: bool) ->... function validate_protocol_strategy (line 907) | fn validate_protocol_strategy( function validate_multi (line 929) | fn validate_multi( function validate_flows (line 952) | fn validate_flows(mode: Mode, strategy: MultipathStrategy) -> anyhow::Re... function validate_ttl (line 962) | fn validate_ttl(first_ttl: u8, max_ttl: u8) -> anyhow::Result<()> { function validate_max_inflight (line 981) | fn validate_max_inflight(max_inflight: u8) -> anyhow::Result<()> { function validate_read_timeout (line 992) | fn validate_read_timeout(read_timeout: Duration) -> anyhow::Result<()> { function validate_round_duration (line 1008) | fn validate_round_duration( function validate_grace_duration (line 1022) | fn validate_grace_duration(grace_duration: Duration) -> anyhow::Result<(... function validate_packet_size (line 1038) | fn validate_packet_size(address_family: IpAddrFamily, packet_size: u16) ... function validate_source_port (line 1060) | fn validate_source_port(source_port: u16) -> anyhow::Result<()> { function validate_tui_refresh_rate (line 1069) | fn validate_tui_refresh_rate(tui_refresh_rate: Duration) -> anyhow::Resu... function validate_report_cycles (line 1085) | fn validate_report_cycles(report_cycles: usize) -> anyhow::Result<()> { function validate_dns (line 1096) | fn validate_dns(dns_resolve_method: ResolveMethod, dns_lookup_as_info: b... function validate_geoip (line 1105) | fn validate_geoip( function validate_bindings (line 1123) | fn validate_bindings(bindings: &TuiBindings) -> anyhow::Result<()> { function validate_tos (line 1134) | fn validate_tos(address_family: IpAddrFamily, tos: u8) -> anyhow::Result... function test_config_default (line 1155) | fn test_config_default() { function test_config_sample (line 1168) | fn test_config_sample() { function test_help (line 1184) | fn test_help(cmd: &str) { function test_version_help (line 1190) | fn test_version_help(cmd: &str, expected: anyhow::Result) { function test_config (line 1196) | fn test_config(cmd: &str, expected: anyhow::Result) { function test_mode (line 1214) | fn test_mode(cmd: &str, expected: anyhow::Result) { function test_target (line 1225) | fn test_target(cmd: &str, expected: anyhow::Result) { function test_unexpected (line 1230) | fn test_unexpected(cmd: &str, expected: anyhow::Result) { function test_multipath (line 1244) | fn test_multipath(cmd: &str, expected: anyhow::Result) { function test_protocol (line 1260) | fn test_protocol(cmd: &str, expected: anyhow::Result) { function test_ports (line 1280) | fn test_ports(cmd: &str, expected: anyhow::Result) { function test_addr_family (line 1295) | fn test_addr_family(cmd: &str, expected: anyhow::Result) { function test_ttl (line 1311) | fn test_ttl(cmd: &str, expected: anyhow::Result) { function test_round_duration (line 1325) | fn test_round_duration(cmd: &str, expected: anyhow::Result) { function test_grace_duration (line 1335) | fn test_grace_duration(cmd: &str, expected: anyhow::Result) { function test_max_inflight (line 1345) | fn test_max_inflight(cmd: &str, expected: anyhow::Result) { function test_init_seq (line 1353) | fn test_init_seq(cmd: &str, expected: anyhow::Result) { function test_tos (line 1363) | fn test_tos(cmd: &str, expected: anyhow::Result) { function test_icmp_extensions (line 1370) | fn test_icmp_extensions(cmd: &str, expected: anyhow::Result) { function test_packet_size (line 1393) | fn test_packet_size(cmd: &str, expected: anyhow::Result) { function test_payload_pattern (line 1401) | fn test_payload_pattern(cmd: &str, expected: anyhow::Result) { function test_interface (line 1417) | fn test_interface(cmd: &str, expected: anyhow::Result) { function test_dns_timeout (line 1424) | fn test_dns_timeout(cmd: &str, expected: anyhow::Result) { function test_dns_ttl (line 1431) | fn test_dns_ttl(cmd: &str, expected: anyhow::Result) { function test_dns_resolve (line 1442) | fn test_dns_resolve(cmd: &str, expected: anyhow::Result) { function test_dns_resolve_all (line 1449) | fn test_dns_resolve_all(cmd: &str, expected: anyhow::Result) { function test_max_samples (line 1465) | fn test_max_samples(cmd: &str, expected: anyhow::Result) { function test_max_flows (line 1472) | fn test_max_flows(cmd: &str, expected: anyhow::Result) { function test_tui_preserve_screen (line 1478) | fn test_tui_preserve_screen(cmd: &str, expected: anyhow::Result) { function test_tui_timezone (line 1509) | fn test_tui_timezone(cmd: &str, expected: anyhow::Result) { function test_tui_address_mode (line 1519) | fn test_tui_address_mode(cmd: &str, expected: anyhow::Result) { function test_tui_custom_columns (line 1539) | fn test_tui_custom_columns(cmd: &str, expected: anyhow::Result) { function test_tui_max_addrs (line 1568) | fn test_tui_max_addrs(cmd: &str, expected: anyhow::Result) { function test_tui_theme (line 1581) | fn test_tui_theme(cmd: &str, expected: anyhow::Result) { function test_tui_bindings (line 1592) | fn test_tui_bindings(cmd: &str, expected: anyhow::Result) { function test_report_cycles (line 1601) | fn test_report_cycles(cmd: &str, expected: anyhow::Result) { function test_geoip_mmdb_file (line 1608) | fn test_geoip_mmdb_file(cmd: &str, expected: anyhow::Result) { function test_log_filter (line 1622) | fn test_log_filter(cmd: &str, expected: anyhow::Result) { function test_log_format (line 1632) | fn test_log_format(cmd: &str, expected: anyhow::Result) { function test_log_span (line 1641) | fn test_log_span(cmd: &str, expected: anyhow::Result) { function test_privilege (line 1656) | fn test_privilege( function test_action (line 1679) | fn test_action(cmd: &str, expected: anyhow::Result) { function test_deprecated (line 1686) | fn test_deprecated(cmd: &str, expected: anyhow::Result) { function parse_action (line 1690) | fn parse_action(cmd: &str) -> anyhow::Result { function parse_config (line 1694) | fn parse_config(cmd: &str) -> anyhow::Result { function parse_config_with_privileges (line 1701) | fn parse_config_with_privileges( function parse (line 1712) | fn parse(cmd: &str) -> anyhow::Result { function compare (line 1719) | fn compare(actual: anyhow::Result, expected: anyhow::Result) function compare_lines (line 1726) | fn compare_lines( function compare_snapshot (line 1769) | fn compare_snapshot(name: &str, actual: anyhow::Result) function cfg (line 1783) | fn cfg() -> TrippyConfigBuilder { function cfg_multi (line 1787) | fn cfg_multi() -> TrippyConfigBuilder { function dummy_platform (line 1795) | const fn dummy_platform() -> Privilege { function args (line 1799) | fn args(args: &[&str]) -> anyhow::Result { type TrippyConfigBuilder (line 1806) | pub struct TrippyConfigBuilder { method new (line 1811) | pub fn new(targets: Vec) -> Self { method mode (line 1820) | pub fn mode(self, mode: Mode) -> Self { method privilege_mode (line 1829) | pub fn privilege_mode(self, privilege_mode: PrivilegeMode) -> Self { method protocol (line 1838) | pub fn protocol(self, protocol: Protocol) -> Self { method addr_family (line 1847) | pub fn addr_family(self, addr_family: IpAddrFamily) -> Self { method first_ttl (line 1856) | pub fn first_ttl(self, first_ttl: u8) -> Self { method max_ttl (line 1865) | pub fn max_ttl(self, max_ttl: u8) -> Self { method min_round_duration (line 1874) | pub fn min_round_duration(self, min_round_duration: Duration) -> Self { method max_round_duration (line 1883) | pub fn max_round_duration(self, max_round_duration: Duration) -> Self { method grace_duration (line 1892) | pub fn grace_duration(self, grace_duration: Duration) -> Self { method max_inflight (line 1901) | pub fn max_inflight(self, max_inflight: u8) -> Self { method initial_sequence (line 1910) | pub fn initial_sequence(self, initial_sequence: u16) -> Self { method tos (line 1919) | pub fn tos(self, tos: u8) -> Self { method icmp_extension_parse_mode (line 1925) | pub fn icmp_extension_parse_mode( method read_timeout (line 1937) | pub fn read_timeout(self, read_timeout: Duration) -> Self { method packet_size (line 1946) | pub fn packet_size(self, packet_size: u16) -> Self { method payload_pattern (line 1955) | pub fn payload_pattern(self, payload_pattern: u8) -> Self { method source_addr (line 1964) | pub fn source_addr(self, source_addr: Option) -> Self { method interface (line 1973) | pub fn interface(self, interface: Option) -> Self { method port_direction (line 1982) | pub fn port_direction(self, port_direction: PortDirection) -> Self { method multipath_strategy (line 1991) | pub fn multipath_strategy(self, multipath_strategy: MultipathStrategy)... method dns_timeout (line 2000) | pub fn dns_timeout(self, dns_timeout: Duration) -> Self { method dns_ttl (line 2009) | pub fn dns_ttl(self, dns_ttl: Duration) -> Self { method dns_resolve_method (line 2018) | pub fn dns_resolve_method(self, dns_resolve_method: ResolveMethod) -> ... method dns_lookup_as_info (line 2027) | pub fn dns_lookup_as_info(self, dns_lookup_as_info: bool) -> Self { method dns_resolve_all (line 2036) | pub fn dns_resolve_all(self, dns_resolve_all: bool) -> Self { method max_samples (line 2045) | pub fn max_samples(self, tui_max_samples: usize) -> Self { method max_flows (line 2054) | pub fn max_flows(self, max_flows: usize) -> Self { method tui_preserve_screen (line 2063) | pub fn tui_preserve_screen(self, tui_preserve_screen: bool) -> Self { method tui_refresh_rate (line 2072) | pub fn tui_refresh_rate(self, tui_refresh_rate: Duration) -> Self { method tui_privacy_max_ttl (line 2081) | pub fn tui_privacy_max_ttl(self, tui_privacy_max_ttl: Option) -> S... method tui_locale (line 2090) | pub fn tui_locale(self, tui_locale: Option) -> Self { method tui_timezone (line 2099) | pub fn tui_timezone(self, tui_timezone: Option) -> Self { method tui_address_mode (line 2108) | pub fn tui_address_mode(self, tui_address_mode: AddressMode) -> Self { method tui_as_mode (line 2117) | pub fn tui_as_mode(self, tui_as_mode: AsMode) -> Self { method tui_custom_columns (line 2126) | pub fn tui_custom_columns(self, tui_custom_columns: TuiColumns) -> Self { method tui_icmp_extension_mode (line 2135) | pub fn tui_icmp_extension_mode(self, tui_icmp_extension_mode: IcmpExte... method tui_geoip_mode (line 2144) | pub fn tui_geoip_mode(self, tui_geoip_mode: GeoIpMode) -> Self { method tui_max_addrs (line 2153) | pub fn tui_max_addrs(self, tui_max_addrs: Option) -> Self { method tui_theme (line 2162) | pub fn tui_theme(self, tui_theme: TuiTheme) -> Self { method tui_bindings (line 2172) | pub fn tui_bindings(self, tui_bindings: TuiBindings) -> Self { method report_cycles (line 2181) | pub fn report_cycles(self, report_cycles: usize) -> Self { method geoip_mmdb_file (line 2190) | pub fn geoip_mmdb_file(self, geoip_mmdb_file: Option) -> Self { method max_rounds (line 2199) | pub fn max_rounds(self, max_rounds: Option) -> Self { method verbose (line 2208) | pub fn verbose(self, verbose: bool) -> Self { method log_format (line 2217) | pub fn log_format(self, log_format: LogFormat) -> Self { method log_filter (line 2226) | pub fn log_filter(self, log_filter: String) -> Self { method log_span_events (line 2235) | pub fn log_span_events(self, log_span_events: LogSpanEvents) -> Self { method build (line 2244) | pub fn build(self) -> TrippyConfig { FILE: crates/trippy-tui/src/config/binding.rs type TuiBindings (line 12) | pub struct TuiBindings { method find_duplicates (line 114) | pub fn find_duplicates(&self) -> Vec { method from (line 187) | fn from(value: (HashMap, ConfigBindings... method default (line 54) | fn default() -> Self { type TuiKeyBinding (line 349) | pub struct TuiKeyBinding { method new (line 355) | pub const fn new(code: KeyCode) -> Self { method new_with_modifier (line 362) | pub const fn new_with_modifier(code: KeyCode, modifier: KeyModifiers) ... type Error (line 368) | type Error = anyhow::Error; method try_from (line 370) | fn try_from(value: String) -> Result { type Error (line 376) | type Error = anyhow::Error; method try_from (line 378) | fn try_from(value: &str) -> Result { function test_key_binding (line 484) | fn test_key_binding(input: &str, code: KeyCode, modifiers: KeyModifiers)... function test_unknown_modifier (line 492) | fn test_unknown_modifier() { function test_unknown_second_modifier (line 499) | fn test_unknown_second_modifier() { function test_unknown_key (line 506) | fn test_unknown_key() { method fmt (line 517) | fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { type TuiCommandItem (line 563) | pub enum TuiCommandItem { FILE: crates/trippy-tui/src/config/cmd.rs type Args (line 19) | pub struct Args { function parse_tui_theme_color_value (line 296) | fn parse_tui_theme_color_value(value: &str) -> anyhow::Result<(TuiThemeI... function parse_tui_binding_value (line 305) | fn parse_tui_binding_value(value: &str) -> anyhow::Result<(TuiCommandIte... function parse_duration (line 319) | fn parse_duration(value: &str) -> anyhow::Result { function parse_addr (line 323) | fn parse_addr(value: &str) -> anyhow::Result { FILE: crates/trippy-tui/src/config/columns.rs type TuiColumns (line 8) | pub struct TuiColumns(pub Vec); type Error (line 11) | type Error = anyhow::Error; method try_from (line 13) | fn try_from(value: &str) -> Result { method find_duplicates (line 33) | pub fn find_duplicates(&self) -> Vec { method default (line 24) | fn default() -> Self { type TuiColumn (line 51) | pub enum TuiColumn { type Error (line 111) | type Error = anyhow::Error; method try_from (line 113) | fn try_from(value: char) -> Result { method fmt (line 149) | fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { function test_try_from_char_for_tui_column (line 201) | fn test_try_from_char_for_tui_column(c: char, t: TuiColumn) { function test_try_invalid_char_for_tui_column (line 208) | fn test_try_invalid_char_for_tui_column(c: char) { function test_display_formatting_for_tui_column (line 226) | fn test_display_formatting_for_tui_column(t: TuiColumn, letter: &'static... function test_try_from_str_for_tui_columns (line 231) | fn test_try_from_str_for_tui_columns() { function test_default_for_tui_columns (line 245) | fn test_default_for_tui_columns() { function test_find_duplicates_for_tui_columns (line 266) | fn test_find_duplicates_for_tui_columns() { FILE: crates/trippy-tui/src/config/constants.rs constant DEFAULT_MODE (line 8) | pub const DEFAULT_MODE: Mode = Mode::Tui; constant DEFAULT_DNS_RESOLVE_ALL (line 11) | pub const DEFAULT_DNS_RESOLVE_ALL: bool = false; constant DEFAULT_LOG_FORMAT (line 14) | pub const DEFAULT_LOG_FORMAT: LogFormat = LogFormat::Pretty; constant DEFAULT_LOG_SPAN_EVENTS (line 17) | pub const DEFAULT_LOG_SPAN_EVENTS: LogSpanEvents = LogSpanEvents::Off; constant DEFAULT_LOG_FILTER (line 20) | pub const DEFAULT_LOG_FILTER: &str = "trippy=debug"; constant DEFAULT_TUI_PRESERVE_SCREEN (line 23) | pub const DEFAULT_TUI_PRESERVE_SCREEN: bool = false; constant DEFAULT_TUI_AS_MODE (line 26) | pub const DEFAULT_TUI_AS_MODE: AsMode = AsMode::Asn; constant DEFAULT_CUSTOM_COLUMNS (line 29) | pub const DEFAULT_CUSTOM_COLUMNS: &str = "holsravbwdt"; constant DEFAULT_TUI_ICMP_EXTENSION_MODE (line 32) | pub const DEFAULT_TUI_ICMP_EXTENSION_MODE: IcmpExtensionMode = IcmpExten... constant DEFAULT_TUI_GEOIP_MODE (line 35) | pub const DEFAULT_TUI_GEOIP_MODE: GeoIpMode = GeoIpMode::Off; constant DEFAULT_TUI_MAX_ADDRS (line 38) | pub const DEFAULT_TUI_MAX_ADDRS: u8 = 0; constant DEFAULT_TUI_ADDRESS_MODE (line 41) | pub const DEFAULT_TUI_ADDRESS_MODE: AddressMode = AddressMode::Host; constant DEFAULT_TUI_REFRESH_RATE (line 44) | pub const DEFAULT_TUI_REFRESH_RATE: Duration = Duration::from_millis(100); constant DEFAULT_DNS_RESOLVE_METHOD (line 47) | pub const DEFAULT_DNS_RESOLVE_METHOD: DnsResolveMethodConfig = DnsResolv... constant DEFAULT_ADDR_FAMILY (line 50) | pub const DEFAULT_ADDR_FAMILY: AddressFamilyConfig = AddressFamilyConfig... constant DEFAULT_DNS_LOOKUP_AS_INFO (line 53) | pub const DEFAULT_DNS_LOOKUP_AS_INFO: bool = false; constant DEFAULT_DNS_TIMEOUT (line 56) | pub const DEFAULT_DNS_TIMEOUT: Duration = Duration::from_millis(5000); constant DEFAULT_DNS_TTL (line 59) | pub const DEFAULT_DNS_TTL: Duration = Duration::from_secs(300); constant DEFAULT_REPORT_CYCLES (line 62) | pub const DEFAULT_REPORT_CYCLES: usize = 10; constant TUI_MIN_REFRESH_RATE_MS (line 65) | pub const TUI_MIN_REFRESH_RATE_MS: Duration = Duration::from_millis(50); constant TUI_MAX_REFRESH_RATE_MS (line 68) | pub const TUI_MAX_REFRESH_RATE_MS: Duration = Duration::from_millis(1000); constant MIN_READ_TIMEOUT_MS (line 71) | pub const MIN_READ_TIMEOUT_MS: Duration = Duration::from_millis(10); constant MAX_READ_TIMEOUT_MS (line 74) | pub const MAX_READ_TIMEOUT_MS: Duration = Duration::from_millis(100); constant MIN_GRACE_DURATION_MS (line 77) | pub const MIN_GRACE_DURATION_MS: Duration = Duration::from_millis(10); constant MAX_GRACE_DURATION_MS (line 80) | pub const MAX_GRACE_DURATION_MS: Duration = Duration::from_millis(1000); constant MIN_PACKET_SIZE_IPV4 (line 83) | pub const MIN_PACKET_SIZE_IPV4: u16 = 28; constant MIN_PACKET_SIZE_IPV6 (line 86) | pub const MIN_PACKET_SIZE_IPV6: u16 = 48; constant MAX_PACKET_SIZE (line 89) | pub const MAX_PACKET_SIZE: u16 = 1024; FILE: crates/trippy-tui/src/config/file.rs constant DEFAULT_CONFIG_FILE (line 19) | const DEFAULT_CONFIG_FILE: &str = "trippy.toml"; constant DEFAULT_HIDDEN_CONFIG_FILE (line 20) | const DEFAULT_HIDDEN_CONFIG_FILE: &str = ".trippy.toml"; function read_default_config_file (line 36) | pub fn read_default_config_file() -> anyhow::Result> { function read_config_file (line 55) | pub fn read_config_file>(path: P) -> anyhow::Result>(dir: P) -> anyhow::Result>(dir: P, file: &str) -> anyhow::Result Self { type ConfigTrippy (line 111) | pub struct ConfigTrippy { method default (line 120) | fn default() -> Self { type ConfigStrategy (line 133) | pub struct ConfigStrategy { method default (line 168) | fn default() -> Self { type ConfigDns (line 200) | pub struct ConfigDns { method default (line 213) | fn default() -> Self { type ConfigReport (line 226) | pub struct ConfigReport { method default (line 231) | fn default() -> Self { type ConfigTui (line 240) | pub struct ConfigTui { method default (line 262) | fn default() -> Self { type ConfigThemeColors (line 285) | pub struct ConfigThemeColors { method default (line 323) | fn default() -> Self { type ConfigBindings (line 366) | pub struct ConfigBindings { method default (line 410) | fn default() -> Self { function humantime_deser (line 456) | fn humantime_deser<'de, D>(deserializer: D) -> Result, ... function addr_deser (line 465) | fn addr_deser<'de, D>(deserializer: D) -> Result, D::Error> function test_parse_config_sample (line 479) | fn test_parse_config_sample() { FILE: crates/trippy-tui/src/config/theme.rs type TuiTheme (line 9) | pub struct TuiTheme { method from (line 129) | fn from(value: (HashMap, ConfigThemeColors)) -... method default (line 87) | fn default() -> Self { type TuiThemeItem (line 276) | pub enum TuiThemeItem { type TuiColor (line 350) | pub enum TuiColor { type Error (line 500) | type Error = anyhow::Error; method try_from (line 502) | fn try_from(value: String) -> Result { type Error (line 508) | type Error = anyhow::Error; method try_from (line 511) | fn try_from(value: &str) -> Result { FILE: crates/trippy-tui/src/frontend.rs function run_frontend (line 29) | pub fn run_frontend( type ExitAction (line 64) | enum ExitAction { function run_app (line 72) | fn run_app(terminal: &mut Terminal, app: &mut TuiApp) -> ... FILE: crates/trippy-tui/src/frontend/binding.rs type Bindings (line 8) | pub struct Bindings { method from (line 50) | fn from(value: TuiBindings) -> Self { type KeyBinding (line 96) | pub struct KeyBinding { method check (line 102) | pub fn check(&self, event: KeyEvent) -> bool { method from (line 112) | fn from(value: TuiKeyBinding) -> Self { method fmt (line 121) | fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { constant CTRL_C (line 168) | pub const CTRL_C: KeyBinding = KeyBinding { FILE: crates/trippy-tui/src/frontend/columns.rs type Columns (line 11) | pub struct Columns(Vec); method constraints (line 22) | pub fn constraints(&self, rect: Rect) -> Vec { method columns (line 44) | pub fn columns(&self) -> impl Iterator { method all_columns (line 50) | pub fn all_columns(&self) -> impl Iterator { method all_columns_count (line 54) | pub fn all_columns_count(&self) -> usize { method toggle (line 58) | pub fn toggle(&mut self, index: usize) { method move_down (line 65) | pub fn move_down(&mut self, index: usize) { method move_up (line 72) | pub fn move_up(&mut self, index: usize) { method from (line 81) | fn from(value: TuiColumns) -> Self { method fmt (line 93) | fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { type Column (line 110) | pub struct Column { method new_shown (line 116) | pub const fn new_shown(typ: ColumnType) -> Self { method new_hidden (line 122) | pub const fn new_hidden(typ: ColumnType) -> Self { method from (line 242) | fn from(value: TuiColumn) -> Self { type ColumnStatus (line 131) | pub enum ColumnStatus { method fmt (line 137) | fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { type ColumnType (line 147) | pub enum ColumnType { method name (line 284) | pub(self) fn name(&self) -> Cow<'_, str> { method width (line 326) | pub(self) fn width(self) -> ColumnWidth { function from (line 207) | fn from(col_type: ColumnType) -> Self { method fmt (line 277) | fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { type ColumnWidth (line 364) | enum ColumnWidth { function test_columns_conversion_from_tui_columns (line 378) | fn test_columns_conversion_from_tui_columns() { function test_column_conversion_from_tui_column (line 429) | fn test_column_conversion_from_tui_column() { function test_column_display_formatting (line 449) | fn test_column_display_formatting(c: ColumnType, heading: &'static str) { function test_column_width (line 457) | fn test_column_width(column_type: ColumnType, width: &ColumnWidth) { function test_column_constraints (line 462) | fn test_column_constraints() { function test_columns_into_string_short (line 485) | fn test_columns_into_string_short() { function test_columns_into_string_happy_path (line 497) | fn test_columns_into_string_happy_path() { function test_columns_into_string_reverse_str (line 516) | fn test_columns_into_string_reverse_str() { FILE: crates/trippy-tui/src/frontend/config.rs type TuiConfig (line 11) | pub struct TuiConfig { method new (line 45) | pub fn new( FILE: crates/trippy-tui/src/frontend/render/app.rs function render (line 40) | pub fn render(f: &mut Frame<'_>, app: &mut TuiApp) { constant LAYOUT_WITHOUT_TABS (line 75) | const LAYOUT_WITHOUT_TABS: [Constraint; 4] = [ constant LAYOUT_WITH_TABS (line 82) | const LAYOUT_WITH_TABS: [Constraint; 5] = [ constant LAYOUT_WITH_FLOWS (line 90) | const LAYOUT_WITH_FLOWS: [Constraint; 5] = [ FILE: crates/trippy-tui/src/frontend/render/bar.rs function render (line 13) | pub fn render(f: &mut Frame<'_>, rect: Rect, app: &TuiApp) { function fmt_privilege_mode (line 111) | fn fmt_privilege_mode(privilege_mode: PrivilegeMode) -> Cow<'static, str> { function fmt_target_family (line 118) | const fn fmt_target_family(target: IpAddr) -> &'static str { FILE: crates/trippy-tui/src/frontend/render/body.rs function render (line 10) | pub fn render(f: &mut Frame<'_>, rec: Rect, app: &mut TuiApp) { FILE: crates/trippy-tui/src/frontend/render/bsod.rs function render (line 9) | pub fn render(f: &mut Frame<'_>, rect: Rect, error: &str) { FILE: crates/trippy-tui/src/frontend/render/chart.rs function render (line 11) | pub fn render(f: &mut Frame<'_>, app: &TuiApp, rect: Rect) { FILE: crates/trippy-tui/src/frontend/render/flows.rs function render (line 10) | pub fn render(f: &mut Frame<'_>, rect: Rect, app: &TuiApp) { FILE: crates/trippy-tui/src/frontend/render/footer.rs function render (line 9) | pub fn render(f: &mut Frame<'_>, rec: Rect, app: &TuiApp) { FILE: crates/trippy-tui/src/frontend/render/header.rs function render (line 18) | pub fn render(f: &mut Frame<'_>, app: &TuiApp, rect: Rect) { function render_source (line 155) | fn render_source(app: &TuiApp) -> String { function render_destination (line 197) | fn render_destination(app: &TuiApp) -> String { function render_status (line 240) | fn render_status(app: &TuiApp) -> String { FILE: crates/trippy-tui/src/frontend/render/help.rs function render (line 11) | pub fn render(f: &mut Frame<'_>, app: &TuiApp) { FILE: crates/trippy-tui/src/frontend/render/histogram.rs function render (line 11) | pub fn render(f: &mut Frame<'_>, app: &TuiApp, rect: Rect) { function sample_frequency (line 42) | fn sample_frequency(samples: &[Duration]) -> Vec<(String, u64)> { FILE: crates/trippy-tui/src/frontend/render/history.rs function render (line 9) | pub fn render(f: &mut Frame<'_>, app: &TuiApp, rect: Rect) { FILE: crates/trippy-tui/src/frontend/render/settings.rs function render (line 18) | pub fn render(f: &mut Frame<'_>, app: &mut TuiApp) { function render_settings_tabs (line 33) | fn render_settings_tabs(f: &mut Frame<'_>, app: &TuiApp, rect: Rect) { function render_settings_table (line 59) | fn render_settings_table( function render_settings_info (line 107) | fn render_settings_info(f: &mut Frame<'_>, app: &TuiApp, rect: Rect, inf... function format_all_settings (line 124) | fn format_all_settings(app: &TuiApp) -> Vec<(String, String, Vec Vec { function format_trace_settings (line 229) | fn format_trace_settings(app: &TuiApp) -> Vec { function format_dns_settings (line 295) | fn format_dns_settings(app: &TuiApp) -> Vec { function format_geoip_settings (line 321) | fn format_geoip_settings(app: &TuiApp) -> Vec { function format_binding_settings (line 332) | fn format_binding_settings(app: &TuiApp) -> Vec { function format_theme_settings (line 411) | fn format_theme_settings(app: &TuiApp) -> Vec { function format_columns_settings (line 523) | fn format_columns_settings(app: &TuiApp) -> Vec { constant SETTINGS_TAB_COLUMNS (line 532) | pub const SETTINGS_TAB_COLUMNS: usize = 6; function settings_tabs (line 535) | pub fn settings_tabs() -> [(String, usize); 7] { function settings_table_header (line 548) | pub fn settings_table_header() -> [String; 2] { constant SETTINGS_TABLE_WIDTH (line 555) | const SETTINGS_TABLE_WIDTH: [Constraint; 3] = [ type SettingsItem (line 561) | struct SettingsItem { method new (line 567) | pub fn new(item: impl Into, value: String) -> Self { function format_dns_method (line 576) | fn format_dns_method(resolve_method: ResolveMethod) -> String { function format_extension_mode (line 585) | fn format_extension_mode(icmp_extension_mode: IcmpExtensionMode) -> Stri... function format_as_mode (line 595) | fn format_as_mode(as_mode: AsMode) -> String { function format_address_mode (line 607) | fn format_address_mode(address_mode: AddressMode) -> String { function format_geoip_mode (line 616) | fn format_geoip_mode(geoip_mode: GeoIpMode) -> String { FILE: crates/trippy-tui/src/frontend/render/splash.rs function render (line 13) | pub fn render(f: &mut Frame<'_>, app: &TuiApp, rect: Rect) { FILE: crates/trippy-tui/src/frontend/render/table.rs function render (line 45) | pub fn render(f: &mut Frame<'_>, app: &mut TuiApp, rect: Rect) { function render_table_header (line 84) | fn render_table_header(theme: Theme, table_columns: &Columns) -> Row<'st... function render_table_row (line 95) | fn render_table_row( function new_cell (line 136) | fn new_cell( function render_usize_cell (line 186) | fn render_usize_cell(value: usize) -> Cell<'static> { function render_nat_cell (line 190) | fn render_nat_cell(value: NatStatus) -> Cell<'static> { function render_pct_cell (line 198) | fn render_pct_cell(value: f64) -> Cell<'static> { function render_avg_cell (line 202) | fn render_avg_cell(hop: &Hop) -> Cell<'static> { function render_stddev_cell (line 210) | fn render_stddev_cell(hop: &Hop) -> Cell<'static> { function render_float_cell (line 218) | fn render_float_cell(value: Option, places: usize, total_recv: usiz... function render_status_cell (line 226) | fn render_status_cell(hop: &Hop, is_target: bool) -> Cell<'static> { function render_icmp_packet_type_cell (line 237) | fn render_icmp_packet_type_cell(icmp_packet_type: Option... function render_icmp_packet_code_cell (line 247) | fn render_icmp_packet_code_cell(icmp_packet_type: Option... function render_port_cell (line 258) | fn render_port_cell(port: u16) -> Cell<'static> { function render_dscp_cell (line 266) | fn render_dscp_cell(dscp: Option) -> Cell<'static> { function render_ecn_cell (line 296) | fn render_ecn_cell(ecn: Option) -> Cell<'static> { function render_asn_cell (line 306) | fn render_asn_cell(hop: &Hop, dns: &DnsResolver, config: &TuiConfig) -> ... function render_hostname (line 324) | fn render_hostname( function visible_addresses (line 350) | fn visible_addresses(hop: &Hop, max_addrs: Option) -> (Vec<(&IpAddr,... function format_address (line 371) | fn format_address( function format_dns_entry (line 446) | fn format_dns_entry(dns_entry: DnsEntry, lookup_as_info: bool, as_mode: ... function format_asinfo (line 470) | fn format_asinfo(asinfo: &AsInfo, as_mode: AsMode) -> String { function format_asinfo_cell (line 481) | fn format_asinfo_cell(addr: IpAddr, dns: &DnsResolver) -> String { function format_extensions (line 496) | fn format_extensions(config: &TuiConfig, hop: &Hop) -> Option { function format_extensions_mpls (line 512) | fn format_extensions_mpls(extensions: &Extensions) -> Option { function format_extensions_full (line 534) | fn format_extensions_full(extensions: &Extensions) -> Option { function format_extensions_all (line 556) | fn format_extensions_all(extensions: &Extensions) -> String { function format_ext_mpls_stack_member (line 573) | pub fn format_ext_mpls_stack_member(member: &MplsLabelStackMember) -> St... function format_ext_unknown (line 581) | pub fn format_ext_unknown(unknown: &UnknownExtension) -> String { function render_hostname_with_details (line 591) | fn render_hostname_with_details( function format_details (line 612) | fn format_details( function fmt_details_line (line 703) | fn fmt_details_line( FILE: crates/trippy-tui/src/frontend/render/tabs.rs function render (line 10) | pub fn render(f: &mut Frame<'_>, rect: Rect, app: &TuiApp) { FILE: crates/trippy-tui/src/frontend/render/util.rs function centered_rect (line 3) | pub fn centered_rect(percent_x: u16, percent_y: u16, r: Rect) -> Rect { FILE: crates/trippy-tui/src/frontend/render/world.rs function render (line 16) | pub fn render(f: &mut Frame<'_>, app: &TuiApp, rect: Rect) { function render_map_canvas (line 31) | fn render_map_canvas(f: &mut Frame<'_>, app: &TuiApp, rect: Rect, entrie... function render_map_canvas_world (line 74) | fn render_map_canvas_world(ctx: &mut Context<'_>, color: Color) { function render_map_canvas_pin (line 82) | fn render_map_canvas_pin(ctx: &mut Context<'_>, entry: &MapEntry) { function render_map_canvas_radius (line 92) | fn render_map_canvas_radius(ctx: &mut Context<'_>, entry: &MapEntry, col... function render_map_canvas_selected (line 112) | fn render_map_canvas_selected( function render_map_info_panel (line 136) | fn render_map_info_panel(f: &mut Frame<'_>, app: &TuiApp, rect: Rect, en... type MapEntry (line 188) | struct MapEntry { function build_map_entries (line 200) | fn build_map_entries(app: &TuiApp) -> Vec { constant MAP_LAYOUT (line 222) | const MAP_LAYOUT: [Constraint; 3] = [ FILE: crates/trippy-tui/src/frontend/theme.rs type Theme (line 6) | pub struct Theme { method from (line 84) | fn from(value: TuiTheme) -> Self { method from (line 126) | fn from(value: TuiColor) -> Self { function fmt_color (line 276) | pub fn fmt_color(color: Color) -> String { FILE: crates/trippy-tui/src/frontend/tui_app.rs type TuiApp (line 13) | pub struct TuiApp { method new (line 48) | pub fn new( method tracer_data (line 78) | pub const fn tracer_data(&self) -> &State { method snapshot_trace_data (line 82) | pub fn snapshot_trace_data(&mut self) { method clear_trace_data (line 86) | pub fn clear_trace_data(&self) { method selected_hop_or_target (line 90) | pub fn selected_hop_or_target(&self) -> &Hop { method selected_hop (line 97) | pub fn selected_hop(&self) -> Option<&Hop> { method tracer_config (line 103) | pub fn tracer_config(&self) -> &TraceInfo { method clamp_selected_hop (line 107) | pub fn clamp_selected_hop(&mut self) { method update_order_flow_counts (line 116) | pub fn update_order_flow_counts(&mut self) { method next_hop (line 140) | pub fn next_hop(&mut self) { method previous_hop (line 160) | pub fn previous_hop(&mut self) { method next_trace (line 179) | pub fn next_trace(&mut self) { method previous_trace (line 186) | pub fn previous_trace(&mut self) { method next_hop_address (line 193) | pub fn next_hop_address(&mut self) { method previous_hop_address (line 201) | pub fn previous_hop_address(&mut self) { method flow_count (line 207) | pub fn flow_count(&self) -> usize { method next_flow (line 211) | pub fn next_flow(&mut self) { method previous_flow (line 224) | pub fn previous_flow(&mut self) { method next_settings_tab (line 237) | pub fn next_settings_tab(&mut self) { method previous_settings_tab (line 244) | pub fn previous_settings_tab(&mut self) { method next_settings_item (line 251) | pub fn next_settings_item(&mut self) { method previous_settings_item (line 267) | pub fn previous_settings_item(&mut self) { method get_settings_items_count (line 282) | fn get_settings_items_count(&self) -> usize { method toggle_column_visibility (line 290) | pub fn toggle_column_visibility(&mut self) { method move_column_down (line 298) | pub fn move_column_down(&mut self) { method move_column_up (line 310) | pub fn move_column_up(&mut self) { method clear (line 321) | pub fn clear(&mut self) { method toggle_help (line 326) | pub fn toggle_help(&mut self) { method toggle_settings (line 330) | pub fn toggle_settings(&mut self) { method show_settings_columns (line 334) | pub fn show_settings_columns(&mut self, column_index: usize) { method toggle_hop_details (line 342) | pub fn toggle_hop_details(&mut self) { method toggle_freeze (line 351) | pub fn toggle_freeze(&mut self) { method toggle_chart (line 358) | pub fn toggle_chart(&mut self) { method toggle_map (line 363) | pub fn toggle_map(&mut self) { method toggle_flows (line 368) | pub fn toggle_flows(&mut self) { method expand_privacy (line 382) | pub fn expand_privacy(&mut self) { method contract_privacy (line 393) | pub fn contract_privacy(&mut self) { method toggle_asinfo (line 403) | pub fn toggle_asinfo(&mut self) { method expand_hosts (line 413) | pub fn expand_hosts(&mut self) { method contract_hosts (line 421) | pub fn contract_hosts(&mut self) { method zoom_in (line 428) | pub fn zoom_in(&mut self) { method zoom_out (line 434) | pub fn zoom_out(&mut self) { method expand_hosts_max (line 440) | pub fn expand_hosts_max(&mut self) { method contract_hosts_min (line 444) | pub fn contract_hosts_min(&mut self) { method max_hosts (line 449) | pub fn max_hosts(&self) -> Option { constant MAX_ZOOM_FACTOR (line 459) | const MAX_ZOOM_FACTOR: usize = 16; FILE: crates/trippy-tui/src/geoip.rs type GeoIpCity (line 12) | pub struct GeoIpCity { method short_name (line 25) | pub fn short_name(&self) -> String { method long_name (line 36) | pub fn long_name(&self) -> String { method location (line 48) | pub fn location(&self) -> String { method coordinates (line 57) | pub const fn coordinates(&self) -> Option<(f64, f64, u16)> { method from (line 198) | fn from(value: ipinfo::IpInfoGeoIp) -> Self { method from (line 214) | fn from((value, locale): (maxminddb::geoip2::City<'_>, &str)) -> Self { type IpInfoGeoIp (line 80) | pub struct IpInfoGeoIp { function test_empty (line 124) | fn test_empty() { function test_country_asn_db_format (line 139) | fn test_country_asn_db_format() { function test_extended_db_format (line 166) | fn test_extended_db_format() { constant FALLBACK_LOCALE (line 256) | const FALLBACK_LOCALE: &str = "en"; type Cache (line 259) | type Cache = RefCell>>>; type GeoIpLookup (line 263) | pub struct GeoIpLookup { method from_file (line 271) | pub fn from_file>(path: P, locale: String) -> anyhow::R... method empty (line 282) | pub fn empty() -> Self { method lookup (line 293) | pub fn lookup(&self, addr: IpAddr) -> anyhow::Result, locale: &str) ->... function lookup_locale (line 328) | fn lookup_locale<'a>(names: &maxminddb::geoip2::Names<'a>, code: &str) -... FILE: crates/trippy-tui/src/lib.rs function trippy (line 24) | pub fn trippy() -> anyhow::Result<()> { FILE: crates/trippy-tui/src/locale.rs constant FALLBACK_LOCALE (line 9) | const FALLBACK_LOCALE: &str = "en"; function set_locale (line 17) | pub fn set_locale(locale: Option<&str>) -> String { function available_locales (line 24) | pub fn available_locales() -> Vec<&'static str> { function __translate (line 65) | pub fn __translate(item: &str) -> &str { function translate_locale (line 76) | fn translate_locale<'a>(item: &'a str, locale: &str) -> &'a str { function data (line 91) | fn data() -> &'static Data { type Data (line 100) | struct Data(HashMap); type Item (line 104) | struct Item(HashMap); function calculate_locale (line 107) | fn calculate_locale(cfg_locale: Option<&str>, sys_locale: Option<&str>) ... function store_locale (line 129) | fn store_locale(new_locale: &str) { function test_set_locale (line 160) | fn test_set_locale(cfg_locale: Option<&str>, sys_locale: Option<&str>, e... function test_available_languages (line 165) | fn test_available_languages() { function test_data_deserialize (line 175) | fn test_data_deserialize() { function test_translate (line 180) | fn test_translate() { function test_translate_macro (line 189) | fn test_translate_macro() { function test_zh_tw_translations (line 196) | fn test_zh_tw_translations() { FILE: crates/trippy-tui/src/print.rs function print_tui_theme_items (line 8) | pub fn print_tui_theme_items() { function print_tui_binding_commands (line 13) | pub fn print_tui_binding_commands() { function print_config_template (line 18) | pub fn print_config_template() { function print_shell_completions (line 23) | pub fn print_shell_completions(shell: Shell) -> anyhow::Result<()> { function print_man_page (line 28) | pub fn print_man_page() -> anyhow::Result<()> { function print_locales (line 33) | pub fn print_locales() { function tui_theme_items (line 38) | fn tui_theme_items() -> String { function tui_binding_commands (line 45) | fn tui_binding_commands() -> String { function shell_completions (line 52) | fn shell_completions(shell: Shell) -> anyhow::Result { function man_page (line 60) | fn man_page() -> anyhow::Result { function test_output (line 81) | fn test_output(actual: &str, name: &str) { FILE: crates/trippy-tui/src/report.rs function wait_for_round (line 15) | fn wait_for_round(trace_data: &Tracer, report_cycles: usize) -> anyhow::... FILE: crates/trippy-tui/src/report/csv.rs function report (line 11) | pub fn report( type CsvRow (line 31) | pub struct CsvRow { method new (line 64) | fn new( FILE: crates/trippy-tui/src/report/dot.rs function report (line 11) | pub fn report(info: &TraceInfo, report_cycles: usize) -> anyhow::Result<... FILE: crates/trippy-tui/src/report/flows.rs function report (line 6) | pub fn report(info: &TraceInfo, report_cycles: usize) -> anyhow::Result<... FILE: crates/trippy-tui/src/report/json.rs function report (line 8) | pub fn report( FILE: crates/trippy-tui/src/report/silent.rs function report (line 6) | pub fn report(info: &TraceInfo, report_cycles: usize) -> anyhow::Result<... FILE: crates/trippy-tui/src/report/stream.rs function report (line 10) | pub fn report(info: &TraceInfo, resolver: &R) -> anyhow::Re... FILE: crates/trippy-tui/src/report/table.rs function report_md (line 10) | pub fn report_md( function report_pretty (line 20) | pub fn report_pretty( function run_report_table (line 28) | fn run_report_table( FILE: crates/trippy-tui/src/report/types.rs type Report (line 10) | pub struct Report { type Info (line 16) | pub struct Info { type Hop (line 23) | pub struct Hop { method from (line 54) | fn from((value, resolver): (&trippy_core::Hop, &R)) -> Self { type Hosts (line 84) | pub struct Hosts(pub Vec); method from (line 87) | fn from((value, resolver): (I, &R)) -> Self { method fmt (line 100) | fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { type Host (line 106) | pub struct Host { method fmt (line 112) | fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { type Extensions (line 119) | pub struct Extensions { method from (line 124) | fn from(value: &trippy_core::Extensions) -> Self { method fmt (line 137) | fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { type Extension (line 143) | pub enum Extension { method from (line 151) | fn from(value: trippy_core::Extension) -> Self { method fmt (line 162) | fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { type MplsLabelStack (line 171) | pub struct MplsLabelStack { method from (line 176) | fn from(value: trippy_core::MplsLabelStack) -> Self { method fmt (line 188) | fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { type MplsLabelStackMember (line 194) | pub struct MplsLabelStackMember { method from (line 202) | fn from(value: trippy_core::MplsLabelStackMember) -> Self { method fmt (line 213) | fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { type UnknownExtension (line 219) | pub struct UnknownExtension { method from (line 226) | fn from(value: trippy_core::UnknownExtension) -> Self { method fmt (line 236) | fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { function fixed_width (line 248) | pub fn fixed_width(val: &f64, serializer: S) -> Result FILE: crates/trippy-tui/src/util.rs function insta (line 2) | pub fn insta(name: &str, f: F) { function remove_whitespace (line 11) | pub fn remove_whitespace(mut s: String) -> String { FILE: crates/trippy/src/main.rs function main (line 1) | fn main() -> anyhow::Result<()> { FILE: examples/hello-world/src/main.rs function main (line 4) | fn main() -> anyhow::Result<()> { FILE: examples/toy-traceroute/src/main.rs type Args (line 15) | struct Args { function main (line 37) | fn main() -> anyhow::Result<()> {