Enum nix::sys::socket::AddressFamily
source · #[non_exhaustive]#[repr(i32)]pub enum AddressFamily {
Show 41 variants
Unix = 1,
Inet = 2,
Inet6 = 10,
Netlink = 16,
Packet = 17,
Ax25 = 3,
Ipx = 4,
AppleTalk = 5,
NetRom = 6,
Bridge = 7,
AtmPvc = 8,
X25 = 9,
Rose = 11,
Decnet = 12,
NetBeui = 13,
Security = 14,
Key = 15,
Ash = 18,
Econet = 19,
AtmSvc = 20,
Rds = 21,
Sna = 22,
Irda = 23,
Pppox = 24,
Wanpipe = 25,
Llc = 26,
Ib = 27,
Mpls = 28,
Can = 29,
Tipc = 30,
Bluetooth = 31,
Iucv = 32,
RxRpc = 33,
Isdn = 34,
Phonet = 35,
Ieee802154 = 36,
Caif = 37,
Alg = 38,
Nfc = 39,
Vsock = 40,
Unspec = 0,
}
Expand description
These constants specify the protocol family to be used
in socket
and socketpair
§References
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Unix = 1
Local communication (see unix(7)
)
Inet = 2
IPv4 Internet protocols (see ip(7)
)
Inet6 = 10
IPv6 Internet protocols (see ipv6(7)
)
Netlink = 16
Kernel user interface device (see netlink(7)
)
Packet = 17
Low level packet interface (see packet(7)
)
Ax25 = 3
Amateur radio AX.25 protocol
Ipx = 4
IPX - Novell protocols
AppleTalk = 5
AppleTalk
NetRom = 6
AX.25 packet layer protocol. (see netrom(4))
Bridge = 7
Can’t be used for creating sockets; mostly used for bridge links in rtnetlink(7) protocol commands.
AtmPvc = 8
Access to raw ATM PVCs
X25 = 9
ITU-T X.25 / ISO-8208 protocol (see x25(7)
)
Rose = 11
RATS (Radio Amateur Telecommunications Society) Open Systems environment (ROSE) AX.25 packet layer protocol. (see netrom(4))
Decnet = 12
DECet protocol sockets.
NetBeui = 13
Reserved for “802.2LLC project”; never used.
Security = 14
This was a short-lived (between Linux 2.1.30 and 2.1.99pre2) protocol family for firewall upcalls.
Key = 15
Key management protocol.
Ash = 18
Econet = 19
Acorn Econet protocol
AtmSvc = 20
Access to ATM Switched Virtual Circuits
Rds = 21
Reliable Datagram Sockets (RDS) protocol
Sna = 22
IBM SNA
Irda = 23
Socket interface over IrDA
Pppox = 24
Generic PPP transport layer, for setting up L2 tunnels (L2TP and PPPoE)
Wanpipe = 25
Legacy protocol for wide area network (WAN) connectivity that was used by Sangoma WAN cards
Llc = 26
Logical link control (IEEE 802.2 LLC) protocol
Ib = 27
InfiniBand native addressing
Mpls = 28
Multiprotocol Label Switching
Can = 29
Controller Area Network automotive bus protocol
Tipc = 30
TIPC, “cluster domain sockets” protocol
Bluetooth = 31
Bluetooth low-level socket protocol
Iucv = 32
IUCV (inter-user communication vehicle) z/VM protocol for hypervisor-guest interaction
RxRpc = 33
Rx, Andrew File System remote procedure call protocol
Isdn = 34
New “modular ISDN” driver interface protocol
Phonet = 35
Nokia cellular modem IPC/RPC interface
Ieee802154 = 36
IEEE 802.15.4 WPAN (wireless personal area network) raw packet protocol
Caif = 37
Ericsson’s Communication CPU to Application CPU interface (CAIF) protocol.
Alg = 38
Interface to kernel crypto API
Nfc = 39
Near field communication
Vsock = 40
VMWare VSockets protocol for hypervisor-guest interaction.
Unspec = 0
Unspecified address family, (see getaddrinfo(3)
)
Implementations§
source§impl AddressFamily
impl AddressFamily
sourcepub const fn from_i32(family: i32) -> Option<AddressFamily>
pub const fn from_i32(family: i32) -> Option<AddressFamily>
Create a new AddressFamily
from an integer value retrieved from libc
, usually from
the sa_family
field of a sockaddr
.
Currently only supports these address families: Unix, Inet (v4 & v6), Netlink, Link/Packet and System. Returns None for unsupported or unknown address families.
Trait Implementations§
source§impl Clone for AddressFamily
impl Clone for AddressFamily
source§fn clone(&self) -> AddressFamily
fn clone(&self) -> AddressFamily
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for AddressFamily
impl Debug for AddressFamily
source§impl Hash for AddressFamily
impl Hash for AddressFamily
source§impl PartialEq for AddressFamily
impl PartialEq for AddressFamily
impl Copy for AddressFamily
impl Eq for AddressFamily
impl StructuralPartialEq for AddressFamily
Auto Trait Implementations§
impl Freeze for AddressFamily
impl RefUnwindSafe for AddressFamily
impl Send for AddressFamily
impl Sync for AddressFamily
impl Unpin for AddressFamily
impl UnwindSafe for AddressFamily
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,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)