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
47
48
49
50
51
use crate::constants::*;

/// List of netlink protocols
pub enum Protocol {
    /// Receives routing and link updates and may be used to modify the routing tables (both IPv4
    /// and IPv6), IP addresses, link parameters, neighbor setups, queueing disciplines, traffic
    /// classes  and  packet  classifiers  (see rtnetlink(7)).
    Route = NETLINK_ROUTE,
    Unused = NETLINK_UNUSED,
    /// Reserved for user-mode socket protocols.
    UserSock = NETLINK_USERSOCK,
    /// Transport  IPv4  packets  from  netfilter  to  user  space.  Used by ip_queue kernel
    /// module.  After a long period of being declared obsolete (in favor of the more advanced
    /// nfnetlink_queue feature), it was  removed in Linux 3.5.
    Firewall = NETLINK_FIREWALL,
    /// Query information about sockets of various protocol families from the kernel (see sock_diag(7)).
    SockDiag = NETLINK_SOCK_DIAG,
    /// Netfilter/iptables ULOG.
    NfLog = NETLINK_NFLOG,
    /// IPsec.
    Xfrm = NETLINK_XFRM,
    /// SELinux event notifications.
    SELinux = NETLINK_SELINUX,
    /// Open-iSCSI.
    ISCSI = NETLINK_ISCSI,
    /// Auditing.
    Audit = NETLINK_AUDIT,
    /// Access to FIB lookup from user space.
    FibLookup = NETLINK_FIB_LOOKUP,
    /// Kernel connector. See `Documentation/connector/*` in the Linux kernel source tree for further information.
    Connector = NETLINK_CONNECTOR,
    /// Netfilter subsystem.
    Netfilter = NETLINK_NETFILTER,
    /// Transport IPv6 packets from netfilter to user space.  Used by ip6_queue kernel module.
    Ip6Fw = NETLINK_IP6_FW,
    /// DECnet routing messages.
    Decnet = NETLINK_DNRTMSG,
    /// Kernel messages to user space.
    KObjectUevent = NETLINK_KOBJECT_UEVENT,
    ///  Generic netlink family for simplified netlink usage.
    Generic = NETLINK_GENERIC,
    /// SCSI transpots
    ScsiTransport = NETLINK_SCSITRANSPORT,
    ///
    Ecryptfs = NETLINK_ECRYPTFS,
    /// Infiniband RDMA.
    Rdma = NETLINK_RDMA,
    /// Netlink interface to request information about ciphers registered with the kernel crypto
    /// API as well as allow configuration of the kernel crypto API.
    Crypto = NETLINK_CRYPTO,
}