1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
//! Packet-level network address translation.
//!
//! Two top-level types:
//!
//! - [`Nat`] — IPv4 NAT between an inside (private) and outside (public) L3
//! network. Implements both [`L3Device`](crate::L3Device) (as the outside
//! edge) and [`L3Connector`](crate::L3Connector) (for namespace-isolated
//! inside attachments).
//! - [`Nat64`] — RFC 6146 stateful translation between an IPv6 inside and an
//! IPv4 outside, using IPv4-mapped IPv6 addresses (`::ffff:x.x.x.x`).
//!
//! Optional pieces:
//!
//! - [`Defragger`] — IPv4 reassembly, enabled per-NAT via
//! [`Nat::enable_defrag`].
//! - ALGs: [`FtpHelper`], [`TftpHelper`], [`IrcHelper`], [`SipHelper`],
//! [`H323Helper`], [`PptpHelper`].
//! - [`UPnPHelper`] / [`UPnPConfig`] — SSDP discovery plus a SOAP control
//! handler ([`UPnPHelper::handle_soap`] returning [`SoapResult`]). The
//! control port is terminated with the in-tree `vtcp` engine and a minimal
//! one-shot HTTP/1.1 server; pipelined / chunked requests are not handled
//! (see `TODO(nat)` in `upnp.rs`).
pub use FtpHelper;
pub use H323Helper;
pub use IrcHelper;
pub use PptpHelper;
pub use SipHelper;
pub use TftpHelper;
pub use Defragger;
pub use ;
pub use Nat;
pub use Nat64;
pub use ;