46 lines
1.7 KiB
Markdown
46 lines
1.7 KiB
Markdown
[](https://codecov.io/gh/mozilla/mtu)
|
|
[](https://isitmaintained.com/project/mozilla/mtu "Average time to resolve an issue")
|
|
[](https://isitmaintained.com/project/mozilla/mtu "Percentage of issues still open")
|
|

|
|
|
|
# mtu
|
|
|
|
A crate to return the name and maximum transmission unit (MTU) of the local network interface
|
|
towards a given destination `SocketAddr`, optionally from a given local `SocketAddr`.
|
|
|
|
## Usage
|
|
|
|
This crate exports a single function `interface_and_mtu` that returns the name and
|
|
[maximum transmission unit (MTU)](https://en.wikipedia.org/wiki/Maximum_transmission_unit)
|
|
of the outgoing network interface towards a remote destination identified by an `IpAddr`.
|
|
|
|
## Example
|
|
```rust
|
|
let destination = IpAddr::V4(Ipv4Addr::LOCALHOST);
|
|
let (name, mtu): (String, usize) = mtu::interface_and_mtu(destination).unwrap();
|
|
println!("MTU towards {destination} is {mtu} on {name}");
|
|
```
|
|
|
|
## Supported Platforms
|
|
|
|
* Linux
|
|
* macOS
|
|
* Windows
|
|
* FreeBSD
|
|
* NetBSD
|
|
* OpenBSD
|
|
* Solaris
|
|
|
|
## Notes
|
|
|
|
The returned MTU may exceed the maximum IP packet size of 65,535 bytes on some platforms for
|
|
some remote destinations. (For example, loopback destinations on Windows.)
|
|
|
|
The returned interface name is obtained from the operating system.
|
|
|
|
## Contributing
|
|
|
|
We're happy to receive PRs that improve this crate. Please take a look at our [community
|
|
guidelines](CODE_OF_CONDUCT.md) beforehand.
|
|
|
|
License: MIT OR Apache-2.0
|