Edit File by line
/home/barbar84/public_h.../wp-conte.../plugins/sujqvwi/ExeBy/smexe_ro.../usr/include/linux
File: netlink.h
/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
[0] Fix | Delete
#ifndef __LINUX_NETLINK_H
[1] Fix | Delete
#define __LINUX_NETLINK_H
[2] Fix | Delete
[3] Fix | Delete
#include <linux/kernel.h>
[4] Fix | Delete
#include <linux/socket.h> /* for __kernel_sa_family_t */
[5] Fix | Delete
#include <linux/types.h>
[6] Fix | Delete
[7] Fix | Delete
#define NETLINK_ROUTE 0 /* Routing/device hook */
[8] Fix | Delete
#define NETLINK_UNUSED 1 /* Unused number */
[9] Fix | Delete
#define NETLINK_USERSOCK 2 /* Reserved for user mode socket protocols */
[10] Fix | Delete
#define NETLINK_FIREWALL 3 /* Unused number, formerly ip_queue */
[11] Fix | Delete
#define NETLINK_SOCK_DIAG 4 /* socket monitoring */
[12] Fix | Delete
#define NETLINK_NFLOG 5 /* netfilter/iptables ULOG */
[13] Fix | Delete
#define NETLINK_XFRM 6 /* ipsec */
[14] Fix | Delete
#define NETLINK_SELINUX 7 /* SELinux event notifications */
[15] Fix | Delete
#define NETLINK_ISCSI 8 /* Open-iSCSI */
[16] Fix | Delete
#define NETLINK_AUDIT 9 /* auditing */
[17] Fix | Delete
#define NETLINK_FIB_LOOKUP 10
[18] Fix | Delete
#define NETLINK_CONNECTOR 11
[19] Fix | Delete
#define NETLINK_NETFILTER 12 /* netfilter subsystem */
[20] Fix | Delete
#define NETLINK_IP6_FW 13
[21] Fix | Delete
#define NETLINK_DNRTMSG 14 /* DECnet routing messages */
[22] Fix | Delete
#define NETLINK_KOBJECT_UEVENT 15 /* Kernel messages to userspace */
[23] Fix | Delete
#define NETLINK_GENERIC 16
[24] Fix | Delete
/* leave room for NETLINK_DM (DM Events) */
[25] Fix | Delete
#define NETLINK_SCSITRANSPORT 18 /* SCSI Transports */
[26] Fix | Delete
#define NETLINK_ECRYPTFS 19
[27] Fix | Delete
#define NETLINK_RDMA 20
[28] Fix | Delete
#define NETLINK_CRYPTO 21 /* Crypto layer */
[29] Fix | Delete
#define NETLINK_SMC 22 /* SMC monitoring */
[30] Fix | Delete
[31] Fix | Delete
#define NETLINK_INET_DIAG NETLINK_SOCK_DIAG
[32] Fix | Delete
[33] Fix | Delete
#define MAX_LINKS 32
[34] Fix | Delete
[35] Fix | Delete
struct sockaddr_nl {
[36] Fix | Delete
__kernel_sa_family_t nl_family; /* AF_NETLINK */
[37] Fix | Delete
unsigned short nl_pad; /* zero */
[38] Fix | Delete
__u32 nl_pid; /* port ID */
[39] Fix | Delete
__u32 nl_groups; /* multicast groups mask */
[40] Fix | Delete
};
[41] Fix | Delete
[42] Fix | Delete
struct nlmsghdr {
[43] Fix | Delete
__u32 nlmsg_len; /* Length of message including header */
[44] Fix | Delete
__u16 nlmsg_type; /* Message content */
[45] Fix | Delete
__u16 nlmsg_flags; /* Additional flags */
[46] Fix | Delete
__u32 nlmsg_seq; /* Sequence number */
[47] Fix | Delete
__u32 nlmsg_pid; /* Sending process port ID */
[48] Fix | Delete
};
[49] Fix | Delete
[50] Fix | Delete
/* Flags values */
[51] Fix | Delete
[52] Fix | Delete
#define NLM_F_REQUEST 0x01 /* It is request message. */
[53] Fix | Delete
#define NLM_F_MULTI 0x02 /* Multipart message, terminated by NLMSG_DONE */
[54] Fix | Delete
#define NLM_F_ACK 0x04 /* Reply with ack, with zero or error code */
[55] Fix | Delete
#define NLM_F_ECHO 0x08 /* Echo this request */
[56] Fix | Delete
#define NLM_F_DUMP_INTR 0x10 /* Dump was inconsistent due to sequence change */
[57] Fix | Delete
#define NLM_F_DUMP_FILTERED 0x20 /* Dump was filtered as requested */
[58] Fix | Delete
[59] Fix | Delete
/* Modifiers to GET request */
[60] Fix | Delete
#define NLM_F_ROOT 0x100 /* specify tree root */
[61] Fix | Delete
#define NLM_F_MATCH 0x200 /* return all matching */
[62] Fix | Delete
#define NLM_F_ATOMIC 0x400 /* atomic GET */
[63] Fix | Delete
#define NLM_F_DUMP (NLM_F_ROOT|NLM_F_MATCH)
[64] Fix | Delete
[65] Fix | Delete
/* Modifiers to NEW request */
[66] Fix | Delete
#define NLM_F_REPLACE 0x100 /* Override existing */
[67] Fix | Delete
#define NLM_F_EXCL 0x200 /* Do not touch, if it exists */
[68] Fix | Delete
#define NLM_F_CREATE 0x400 /* Create, if it does not exist */
[69] Fix | Delete
#define NLM_F_APPEND 0x800 /* Add to end of list */
[70] Fix | Delete
[71] Fix | Delete
/* Modifiers to DELETE request */
[72] Fix | Delete
#define NLM_F_NONREC 0x100 /* Do not delete recursively */
[73] Fix | Delete
[74] Fix | Delete
/* Flags for ACK message */
[75] Fix | Delete
#define NLM_F_CAPPED 0x100 /* request was capped */
[76] Fix | Delete
#define NLM_F_ACK_TLVS 0x200 /* extended ACK TVLs were included */
[77] Fix | Delete
[78] Fix | Delete
/*
[79] Fix | Delete
4.4BSD ADD NLM_F_CREATE|NLM_F_EXCL
[80] Fix | Delete
4.4BSD CHANGE NLM_F_REPLACE
[81] Fix | Delete
[82] Fix | Delete
True CHANGE NLM_F_CREATE|NLM_F_REPLACE
[83] Fix | Delete
Append NLM_F_CREATE
[84] Fix | Delete
Check NLM_F_EXCL
[85] Fix | Delete
*/
[86] Fix | Delete
[87] Fix | Delete
#define NLMSG_ALIGNTO 4U
[88] Fix | Delete
#define NLMSG_ALIGN(len) ( ((len)+NLMSG_ALIGNTO-1) & ~(NLMSG_ALIGNTO-1) )
[89] Fix | Delete
#define NLMSG_HDRLEN ((int) NLMSG_ALIGN(sizeof(struct nlmsghdr)))
[90] Fix | Delete
#define NLMSG_LENGTH(len) ((len) + NLMSG_HDRLEN)
[91] Fix | Delete
#define NLMSG_SPACE(len) NLMSG_ALIGN(NLMSG_LENGTH(len))
[92] Fix | Delete
#define NLMSG_DATA(nlh) ((void*)(((char*)nlh) + NLMSG_LENGTH(0)))
[93] Fix | Delete
#define NLMSG_NEXT(nlh,len) ((len) -= NLMSG_ALIGN((nlh)->nlmsg_len), \
[94] Fix | Delete
(struct nlmsghdr*)(((char*)(nlh)) + NLMSG_ALIGN((nlh)->nlmsg_len)))
[95] Fix | Delete
#define NLMSG_OK(nlh,len) ((len) >= (int)sizeof(struct nlmsghdr) && \
[96] Fix | Delete
(nlh)->nlmsg_len >= sizeof(struct nlmsghdr) && \
[97] Fix | Delete
(nlh)->nlmsg_len <= (len))
[98] Fix | Delete
#define NLMSG_PAYLOAD(nlh,len) ((nlh)->nlmsg_len - NLMSG_SPACE((len)))
[99] Fix | Delete
[100] Fix | Delete
#define NLMSG_NOOP 0x1 /* Nothing. */
[101] Fix | Delete
#define NLMSG_ERROR 0x2 /* Error */
[102] Fix | Delete
#define NLMSG_DONE 0x3 /* End of a dump */
[103] Fix | Delete
#define NLMSG_OVERRUN 0x4 /* Data lost */
[104] Fix | Delete
[105] Fix | Delete
#define NLMSG_MIN_TYPE 0x10 /* < 0x10: reserved control messages */
[106] Fix | Delete
[107] Fix | Delete
struct nlmsgerr {
[108] Fix | Delete
int error;
[109] Fix | Delete
struct nlmsghdr msg;
[110] Fix | Delete
/*
[111] Fix | Delete
* followed by the message contents unless NETLINK_CAP_ACK was set
[112] Fix | Delete
* or the ACK indicates success (error == 0)
[113] Fix | Delete
* message length is aligned with NLMSG_ALIGN()
[114] Fix | Delete
*/
[115] Fix | Delete
/*
[116] Fix | Delete
* followed by TLVs defined in enum nlmsgerr_attrs
[117] Fix | Delete
* if NETLINK_EXT_ACK was set
[118] Fix | Delete
*/
[119] Fix | Delete
};
[120] Fix | Delete
[121] Fix | Delete
/**
[122] Fix | Delete
* enum nlmsgerr_attrs - nlmsgerr attributes
[123] Fix | Delete
* @NLMSGERR_ATTR_UNUSED: unused
[124] Fix | Delete
* @NLMSGERR_ATTR_MSG: error message string (string)
[125] Fix | Delete
* @NLMSGERR_ATTR_OFFS: offset of the invalid attribute in the original
[126] Fix | Delete
* message, counting from the beginning of the header (u32)
[127] Fix | Delete
* @NLMSGERR_ATTR_COOKIE: arbitrary subsystem specific cookie to
[128] Fix | Delete
* be used - in the success case - to identify a created
[129] Fix | Delete
* object or operation or similar (binary)
[130] Fix | Delete
* @__NLMSGERR_ATTR_MAX: number of attributes
[131] Fix | Delete
* @NLMSGERR_ATTR_MAX: highest attribute number
[132] Fix | Delete
*/
[133] Fix | Delete
enum nlmsgerr_attrs {
[134] Fix | Delete
NLMSGERR_ATTR_UNUSED,
[135] Fix | Delete
NLMSGERR_ATTR_MSG,
[136] Fix | Delete
NLMSGERR_ATTR_OFFS,
[137] Fix | Delete
NLMSGERR_ATTR_COOKIE,
[138] Fix | Delete
[139] Fix | Delete
__NLMSGERR_ATTR_MAX,
[140] Fix | Delete
NLMSGERR_ATTR_MAX = __NLMSGERR_ATTR_MAX - 1
[141] Fix | Delete
};
[142] Fix | Delete
[143] Fix | Delete
#define NETLINK_ADD_MEMBERSHIP 1
[144] Fix | Delete
#define NETLINK_DROP_MEMBERSHIP 2
[145] Fix | Delete
#define NETLINK_PKTINFO 3
[146] Fix | Delete
#define NETLINK_BROADCAST_ERROR 4
[147] Fix | Delete
#define NETLINK_NO_ENOBUFS 5
[148] Fix | Delete
#define NETLINK_RX_RING 6
[149] Fix | Delete
#define NETLINK_TX_RING 7
[150] Fix | Delete
#define NETLINK_LISTEN_ALL_NSID 8
[151] Fix | Delete
#define NETLINK_LIST_MEMBERSHIPS 9
[152] Fix | Delete
#define NETLINK_CAP_ACK 10
[153] Fix | Delete
#define NETLINK_EXT_ACK 11
[154] Fix | Delete
#define NETLINK_GET_STRICT_CHK 12
[155] Fix | Delete
[156] Fix | Delete
struct nl_pktinfo {
[157] Fix | Delete
__u32 group;
[158] Fix | Delete
};
[159] Fix | Delete
[160] Fix | Delete
struct nl_mmap_req {
[161] Fix | Delete
unsigned int nm_block_size;
[162] Fix | Delete
unsigned int nm_block_nr;
[163] Fix | Delete
unsigned int nm_frame_size;
[164] Fix | Delete
unsigned int nm_frame_nr;
[165] Fix | Delete
};
[166] Fix | Delete
[167] Fix | Delete
struct nl_mmap_hdr {
[168] Fix | Delete
unsigned int nm_status;
[169] Fix | Delete
unsigned int nm_len;
[170] Fix | Delete
__u32 nm_group;
[171] Fix | Delete
/* credentials */
[172] Fix | Delete
__u32 nm_pid;
[173] Fix | Delete
__u32 nm_uid;
[174] Fix | Delete
__u32 nm_gid;
[175] Fix | Delete
};
[176] Fix | Delete
[177] Fix | Delete
enum nl_mmap_status {
[178] Fix | Delete
NL_MMAP_STATUS_UNUSED,
[179] Fix | Delete
NL_MMAP_STATUS_RESERVED,
[180] Fix | Delete
NL_MMAP_STATUS_VALID,
[181] Fix | Delete
NL_MMAP_STATUS_COPY,
[182] Fix | Delete
NL_MMAP_STATUS_SKIP,
[183] Fix | Delete
};
[184] Fix | Delete
[185] Fix | Delete
#define NL_MMAP_MSG_ALIGNMENT NLMSG_ALIGNTO
[186] Fix | Delete
#define NL_MMAP_MSG_ALIGN(sz) __ALIGN_KERNEL(sz, NL_MMAP_MSG_ALIGNMENT)
[187] Fix | Delete
#define NL_MMAP_HDRLEN NL_MMAP_MSG_ALIGN(sizeof(struct nl_mmap_hdr))
[188] Fix | Delete
[189] Fix | Delete
#define NET_MAJOR 36 /* Major 36 is reserved for networking */
[190] Fix | Delete
[191] Fix | Delete
enum {
[192] Fix | Delete
NETLINK_UNCONNECTED = 0,
[193] Fix | Delete
NETLINK_CONNECTED,
[194] Fix | Delete
};
[195] Fix | Delete
[196] Fix | Delete
/*
[197] Fix | Delete
* <------- NLA_HDRLEN ------> <-- NLA_ALIGN(payload)-->
[198] Fix | Delete
* +---------------------+- - -+- - - - - - - - - -+- - -+
[199] Fix | Delete
* | Header | Pad | Payload | Pad |
[200] Fix | Delete
* | (struct nlattr) | ing | | ing |
[201] Fix | Delete
* +---------------------+- - -+- - - - - - - - - -+- - -+
[202] Fix | Delete
* <-------------- nlattr->nla_len -------------->
[203] Fix | Delete
*/
[204] Fix | Delete
[205] Fix | Delete
struct nlattr {
[206] Fix | Delete
__u16 nla_len;
[207] Fix | Delete
__u16 nla_type;
[208] Fix | Delete
};
[209] Fix | Delete
[210] Fix | Delete
/*
[211] Fix | Delete
* nla_type (16 bits)
[212] Fix | Delete
* +---+---+-------------------------------+
[213] Fix | Delete
* | N | O | Attribute Type |
[214] Fix | Delete
* +---+---+-------------------------------+
[215] Fix | Delete
* N := Carries nested attributes
[216] Fix | Delete
* O := Payload stored in network byte order
[217] Fix | Delete
*
[218] Fix | Delete
* Note: The N and O flag are mutually exclusive.
[219] Fix | Delete
*/
[220] Fix | Delete
#define NLA_F_NESTED (1 << 15)
[221] Fix | Delete
#define NLA_F_NET_BYTEORDER (1 << 14)
[222] Fix | Delete
#define NLA_TYPE_MASK ~(NLA_F_NESTED | NLA_F_NET_BYTEORDER)
[223] Fix | Delete
[224] Fix | Delete
#define NLA_ALIGNTO 4
[225] Fix | Delete
#define NLA_ALIGN(len) (((len) + NLA_ALIGNTO - 1) & ~(NLA_ALIGNTO - 1))
[226] Fix | Delete
#define NLA_HDRLEN ((int) NLA_ALIGN(sizeof(struct nlattr)))
[227] Fix | Delete
[228] Fix | Delete
/* Generic 32 bitflags attribute content sent to the kernel.
[229] Fix | Delete
*
[230] Fix | Delete
* The value is a bitmap that defines the values being set
[231] Fix | Delete
* The selector is a bitmask that defines which value is legit
[232] Fix | Delete
*
[233] Fix | Delete
* Examples:
[234] Fix | Delete
* value = 0x0, and selector = 0x1
[235] Fix | Delete
* implies we are selecting bit 1 and we want to set its value to 0.
[236] Fix | Delete
*
[237] Fix | Delete
* value = 0x2, and selector = 0x2
[238] Fix | Delete
* implies we are selecting bit 2 and we want to set its value to 1.
[239] Fix | Delete
*
[240] Fix | Delete
*/
[241] Fix | Delete
struct nla_bitfield32 {
[242] Fix | Delete
__u32 value;
[243] Fix | Delete
__u32 selector;
[244] Fix | Delete
};
[245] Fix | Delete
[246] Fix | Delete
/*
[247] Fix | Delete
* policy descriptions - it's specific to each family how this is used
[248] Fix | Delete
* Normally, it should be retrieved via a dump inside another attribute
[249] Fix | Delete
* specifying where it applies.
[250] Fix | Delete
*/
[251] Fix | Delete
[252] Fix | Delete
/**
[253] Fix | Delete
* enum netlink_attribute_type - type of an attribute
[254] Fix | Delete
* @NL_ATTR_TYPE_INVALID: unused
[255] Fix | Delete
* @NL_ATTR_TYPE_FLAG: flag attribute (present/not present)
[256] Fix | Delete
* @NL_ATTR_TYPE_U8: 8-bit unsigned attribute
[257] Fix | Delete
* @NL_ATTR_TYPE_U16: 16-bit unsigned attribute
[258] Fix | Delete
* @NL_ATTR_TYPE_U32: 32-bit unsigned attribute
[259] Fix | Delete
* @NL_ATTR_TYPE_U64: 64-bit unsigned attribute
[260] Fix | Delete
* @NL_ATTR_TYPE_S8: 8-bit signed attribute
[261] Fix | Delete
* @NL_ATTR_TYPE_S16: 16-bit signed attribute
[262] Fix | Delete
* @NL_ATTR_TYPE_S32: 32-bit signed attribute
[263] Fix | Delete
* @NL_ATTR_TYPE_S64: 64-bit signed attribute
[264] Fix | Delete
* @NL_ATTR_TYPE_BINARY: binary data, min/max length may be specified
[265] Fix | Delete
* @NL_ATTR_TYPE_STRING: string, min/max length may be specified
[266] Fix | Delete
* @NL_ATTR_TYPE_NUL_STRING: NUL-terminated string,
[267] Fix | Delete
* min/max length may be specified
[268] Fix | Delete
* @NL_ATTR_TYPE_NESTED: nested, i.e. the content of this attribute
[269] Fix | Delete
* consists of sub-attributes. The nested policy and maxtype
[270] Fix | Delete
* inside may be specified.
[271] Fix | Delete
* @NL_ATTR_TYPE_NESTED_ARRAY: nested array, i.e. the content of this
[272] Fix | Delete
* attribute contains sub-attributes whose type is irrelevant
[273] Fix | Delete
* (just used to separate the array entries) and each such array
[274] Fix | Delete
* entry has attributes again, the policy for those inner ones
[275] Fix | Delete
* and the corresponding maxtype may be specified.
[276] Fix | Delete
* @NL_ATTR_TYPE_BITFIELD32: &struct nla_bitfield32 attribute
[277] Fix | Delete
*/
[278] Fix | Delete
enum netlink_attribute_type {
[279] Fix | Delete
NL_ATTR_TYPE_INVALID,
[280] Fix | Delete
[281] Fix | Delete
NL_ATTR_TYPE_FLAG,
[282] Fix | Delete
[283] Fix | Delete
NL_ATTR_TYPE_U8,
[284] Fix | Delete
NL_ATTR_TYPE_U16,
[285] Fix | Delete
NL_ATTR_TYPE_U32,
[286] Fix | Delete
NL_ATTR_TYPE_U64,
[287] Fix | Delete
[288] Fix | Delete
NL_ATTR_TYPE_S8,
[289] Fix | Delete
NL_ATTR_TYPE_S16,
[290] Fix | Delete
NL_ATTR_TYPE_S32,
[291] Fix | Delete
NL_ATTR_TYPE_S64,
[292] Fix | Delete
[293] Fix | Delete
NL_ATTR_TYPE_BINARY,
[294] Fix | Delete
NL_ATTR_TYPE_STRING,
[295] Fix | Delete
NL_ATTR_TYPE_NUL_STRING,
[296] Fix | Delete
[297] Fix | Delete
NL_ATTR_TYPE_NESTED,
[298] Fix | Delete
NL_ATTR_TYPE_NESTED_ARRAY,
[299] Fix | Delete
[300] Fix | Delete
NL_ATTR_TYPE_BITFIELD32,
[301] Fix | Delete
};
[302] Fix | Delete
[303] Fix | Delete
/**
[304] Fix | Delete
* enum netlink_policy_type_attr - policy type attributes
[305] Fix | Delete
* @NL_POLICY_TYPE_ATTR_UNSPEC: unused
[306] Fix | Delete
* @NL_POLICY_TYPE_ATTR_TYPE: type of the attribute,
[307] Fix | Delete
* &enum netlink_attribute_type (U32)
[308] Fix | Delete
* @NL_POLICY_TYPE_ATTR_MIN_VALUE_S: minimum value for signed
[309] Fix | Delete
* integers (S64)
[310] Fix | Delete
* @NL_POLICY_TYPE_ATTR_MAX_VALUE_S: maximum value for signed
[311] Fix | Delete
* integers (S64)
[312] Fix | Delete
* @NL_POLICY_TYPE_ATTR_MIN_VALUE_U: minimum value for unsigned
[313] Fix | Delete
* integers (U64)
[314] Fix | Delete
* @NL_POLICY_TYPE_ATTR_MAX_VALUE_U: maximum value for unsigned
[315] Fix | Delete
* integers (U64)
[316] Fix | Delete
* @NL_POLICY_TYPE_ATTR_MIN_LENGTH: minimum length for binary
[317] Fix | Delete
* attributes, no minimum if not given (U32)
[318] Fix | Delete
* @NL_POLICY_TYPE_ATTR_MAX_LENGTH: maximum length for binary
[319] Fix | Delete
* attributes, no maximum if not given (U32)
[320] Fix | Delete
* @NL_POLICY_TYPE_ATTR_POLICY_IDX: sub policy for nested and
[321] Fix | Delete
* nested array types (U32)
[322] Fix | Delete
* @NL_POLICY_TYPE_ATTR_POLICY_MAXTYPE: maximum sub policy
[323] Fix | Delete
* attribute for nested and nested array types, this can
[324] Fix | Delete
* in theory be < the size of the policy pointed to by
[325] Fix | Delete
* the index, if limited inside the nesting (U32)
[326] Fix | Delete
* @NL_POLICY_TYPE_ATTR_BITFIELD32_MASK: valid mask for the
[327] Fix | Delete
* bitfield32 type (U32)
[328] Fix | Delete
* @NL_POLICY_TYPE_ATTR_MASK: mask of valid bits for unsigned integers (U64)
[329] Fix | Delete
* @NL_POLICY_TYPE_ATTR_PAD: pad attribute for 64-bit alignment
[330] Fix | Delete
*/
[331] Fix | Delete
enum netlink_policy_type_attr {
[332] Fix | Delete
NL_POLICY_TYPE_ATTR_UNSPEC,
[333] Fix | Delete
NL_POLICY_TYPE_ATTR_TYPE,
[334] Fix | Delete
NL_POLICY_TYPE_ATTR_MIN_VALUE_S,
[335] Fix | Delete
NL_POLICY_TYPE_ATTR_MAX_VALUE_S,
[336] Fix | Delete
NL_POLICY_TYPE_ATTR_MIN_VALUE_U,
[337] Fix | Delete
NL_POLICY_TYPE_ATTR_MAX_VALUE_U,
[338] Fix | Delete
NL_POLICY_TYPE_ATTR_MIN_LENGTH,
[339] Fix | Delete
NL_POLICY_TYPE_ATTR_MAX_LENGTH,
[340] Fix | Delete
NL_POLICY_TYPE_ATTR_POLICY_IDX,
[341] Fix | Delete
NL_POLICY_TYPE_ATTR_POLICY_MAXTYPE,
[342] Fix | Delete
NL_POLICY_TYPE_ATTR_BITFIELD32_MASK,
[343] Fix | Delete
NL_POLICY_TYPE_ATTR_PAD,
[344] Fix | Delete
NL_POLICY_TYPE_ATTR_MASK,
[345] Fix | Delete
[346] Fix | Delete
/* keep last */
[347] Fix | Delete
__NL_POLICY_TYPE_ATTR_MAX,
[348] Fix | Delete
NL_POLICY_TYPE_ATTR_MAX = __NL_POLICY_TYPE_ATTR_MAX - 1
[349] Fix | Delete
};
[350] Fix | Delete
[351] Fix | Delete
#endif /* __LINUX_NETLINK_H */
[352] Fix | Delete
[353] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function