pub struct TracerouteOptions {Show 17 fields
pub protocol: TracerouteProtocol,
pub count: u8,
pub first_hop: u8,
pub gap_limit: u8,
pub max_hops: u8,
pub size: u16,
pub dest_port: u16,
pub tos: u32,
pub timeout_ms: u32,
pub dup_timeout_ms: u32,
pub paris_mod: u8,
pub paris_base: u8,
pub hbh_opt_size: u16,
pub dest_opt_size: u16,
pub dont_fragment: bool,
pub interface: Option<String>,
pub bundle: Option<String>,
}Expand description
One evtraceroute measurement’s options (everything but the target,
-4/-6 and the -A/-O plumbing).
Fields§
§protocol: TracerouteProtocol§count: u8-c: probes per hop (trtcount)
first_hop: u8-f: first hop limit
gap_limit: u8-g: after this many hops without an answer, one last-ditch hop
(255) and the result
max_hops: u8-m: last hop limit
size: u16-S: data bytes after the ICMP/UDP/TCP header (maxpacksize); the
result’s envelope “size”
dest_port: u16-p: TCP destination port
tos: u32-t: IP TOS / IPv6 traffic class of the probes (0: left alone)
timeout_ms: u32-w: ms to wait for each probe’s reply
dup_timeout_ms: u32-z: ms to wait for duplicates after a reply before the next probe
paris_mod: u8-a: Paris traceroute: the id cycles through paris_mod values, one
per run; 0 is classic traceroute (and no “paris_id” in the result)
paris_base: u8-b: lowest Paris id
hbh_opt_size: u16-H: IPv6 hop-by-hop options header of this many bytes (PadN)
dest_opt_size: u16-D: IPv6 destination options header of this many bytes (PadN)
dont_fragment: bool-F: set don’t-fragment (path MTU discovery) on the probes
interface: Option<String>-i: bind the probes to this interface
bundle: Option<String>-B: bundle id, written into the result as “bundle”
Implementations§
Source§impl TracerouteOptions
impl TracerouteOptions
Sourcepub const MAX_SIZE: u16 = 4096
pub const MAX_SIZE: u16 = 4096
The largest -S traceroute_init accepts (MAX_DATA_SIZE,
traceroute.c:46 and 4282-4286: “max. packet size too big”).
Sourcepub fn paris_id(&self, run: u64) -> Option<u16>
pub fn paris_id(&self, run: u64) -> Option<u16>
The Paris id of a measurement’s run-th run (1 for the first).
traceroute_init sets paris to parisbase (traceroute.c:4408) and each
run’s traceroute_start2 steps it (traceroute.c:4492-4497):
paris= (paris-parisbase+1+parismod) % parismod + parisbase, i.e.
run % parismod + parisbase. None without Paris (-a 0), where
report() writes no “paris_id” (traceroute.c:428-431).
Trait Implementations§
Source§impl Clone for TracerouteOptions
impl Clone for TracerouteOptions
Source§fn clone(&self) -> TracerouteOptions
fn clone(&self) -> TracerouteOptions
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for TracerouteOptions
impl Debug for TracerouteOptions
Source§impl Default for TracerouteOptions
impl Default for TracerouteOptions
Source§impl<'de> Deserialize<'de> for TracerouteOptions
impl<'de> Deserialize<'de> for TracerouteOptions
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl Hash for TracerouteOptions
impl Hash for TracerouteOptions
Source§impl PartialEq for TracerouteOptions
impl PartialEq for TracerouteOptions
Source§impl Serialize for TracerouteOptions
impl Serialize for TracerouteOptions
impl Eq for TracerouteOptions
impl StructuralPartialEq for TracerouteOptions
Auto Trait Implementations§
impl Freeze for TracerouteOptions
impl RefUnwindSafe for TracerouteOptions
impl Send for TracerouteOptions
impl Sync for TracerouteOptions
impl Unpin for TracerouteOptions
impl UnwindSafe for TracerouteOptions
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.