pub struct DeviceBuilder { /* private fields */ }
Expand description
A builder for configuring a TUN/TAP interface.
This builder allows you to set parameters such as device name, MTU, IPv4/IPv6 addresses, MAC address, and other platform-specific options.
Implementations§
Source§impl DeviceBuilder
impl DeviceBuilder
Sourcepub fn mac_addr(self, mac_addr: [u8; 6]) -> Self
pub fn mac_addr(self, mac_addr: [u8; 6]) -> Self
Sets the MAC address for the device (effective only in L2 mode).
Sourcepub fn ipv4<IPv4: ToIpv4Address, Netmask: ToIpv4Netmask>(
self,
address: IPv4,
mask: Netmask,
destination: Option<IPv4>,
) -> Self
pub fn ipv4<IPv4: ToIpv4Address, Netmask: ToIpv4Netmask>( self, address: IPv4, mask: Netmask, destination: Option<IPv4>, ) -> Self
Configures the IPv4 address for the device.
address
: The IPv4 address of the device.mask
: The subnet mask or prefix length.destination
: Optional destination address for point-to-point links.
Sourcepub fn ipv6<IPv6: ToIpv6Address, Netmask: ToIpv6Netmask>(
self,
address: IPv6,
mask: Netmask,
) -> Self
pub fn ipv6<IPv6: ToIpv6Address, Netmask: ToIpv6Netmask>( self, address: IPv6, mask: Netmask, ) -> Self
Configures an IPv6 address for the device.
address
: The IPv6 address.mask
: The subnet mask or prefix length.
Sourcepub fn ipv6_tuple<IPv6: ToIpv6Address, Netmask: ToIpv6Netmask>(
self,
addrs: &[(IPv6, Netmask)],
) -> Self
pub fn ipv6_tuple<IPv6: ToIpv6Address, Netmask: ToIpv6Netmask>( self, addrs: &[(IPv6, Netmask)], ) -> Self
Configures multiple IPv6 addresses in batch.
Accepts a slice of (IPv6 address, netmask) tuples.
Sourcepub fn tx_queue_len(self, tx_queue_len: u32) -> Self
pub fn tx_queue_len(self, tx_queue_len: u32) -> Self
Sets the transmit queue length on Linux.
Sourcepub fn offload(self, offload: bool) -> Self
pub fn offload(self, offload: bool) -> Self
Enables TUN offloads on Linux.
After enabling, use recv_multiple
/send_multiple
for data transmission.
Sourcepub fn multi_queue(self, multi_queue: bool) -> Self
pub fn multi_queue(self, multi_queue: bool) -> Self
Enables multi-queue support on Linux.
Sourcepub fn packet_information(self, packet_information: bool) -> Self
pub fn packet_information(self, packet_information: bool) -> Self
Enables or disables packet information for the network driver on macOS, Linux.
This option is disabled by default (false
).
Sourcepub fn build_sync(self) -> Result<SyncDevice>
pub fn build_sync(self) -> Result<SyncDevice>
Builds a synchronous device instance and applies all configuration parameters.
Sourcepub fn build_async(self) -> Result<AsyncDevice>
pub fn build_async(self) -> Result<AsyncDevice>
Builds an asynchronous device instance.
This method is available only when the async_io or async_tokio features are enabled.