~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/include/uapi/linux/netlink.h

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /include/uapi/linux/netlink.h (Version linux-6.12-rc7) and /include/uapi/linux/netlink.h (Version linux-6.6.58)


** Warning: Cannot open xref database.

  1 /* SPDX-License-Identifier: GPL-2.0 WITH Linux      1 
  2 #ifndef _UAPI__LINUX_NETLINK_H                    
  3 #define _UAPI__LINUX_NETLINK_H                    
  4                                                   
  5 #include <linux/const.h>                          
  6 #include <linux/socket.h> /* for __kernel_sa_f    
  7 #include <linux/types.h>                          
  8                                                   
  9 #define NETLINK_ROUTE           0       /* Rou    
 10 #define NETLINK_UNUSED          1       /* Unu    
 11 #define NETLINK_USERSOCK        2       /* Res    
 12 #define NETLINK_FIREWALL        3       /* Unu    
 13 #define NETLINK_SOCK_DIAG       4       /* soc    
 14 #define NETLINK_NFLOG           5       /* net    
 15 #define NETLINK_XFRM            6       /* ips    
 16 #define NETLINK_SELINUX         7       /* SEL    
 17 #define NETLINK_ISCSI           8       /* Ope    
 18 #define NETLINK_AUDIT           9       /* aud    
 19 #define NETLINK_FIB_LOOKUP      10                
 20 #define NETLINK_CONNECTOR       11                
 21 #define NETLINK_NETFILTER       12      /* net    
 22 #define NETLINK_IP6_FW          13                
 23 #define NETLINK_DNRTMSG         14      /* DEC    
 24 #define NETLINK_KOBJECT_UEVENT  15      /* Ker    
 25 #define NETLINK_GENERIC         16                
 26 /* leave room for NETLINK_DM (DM Events) */       
 27 #define NETLINK_SCSITRANSPORT   18      /* SCS    
 28 #define NETLINK_ECRYPTFS        19                
 29 #define NETLINK_RDMA            20                
 30 #define NETLINK_CRYPTO          21      /* Cry    
 31 #define NETLINK_SMC             22      /* SMC    
 32                                                   
 33 #define NETLINK_INET_DIAG       NETLINK_SOCK_D    
 34                                                   
 35 #define MAX_LINKS 32                              
 36                                                   
 37 struct sockaddr_nl {                              
 38         __kernel_sa_family_t    nl_family;        
 39         unsigned short  nl_pad;         /* zer    
 40         __u32           nl_pid;         /* por    
 41         __u32           nl_groups;      /* mul    
 42 };                                                
 43                                                   
 44 /**                                               
 45  * struct nlmsghdr - fixed format metadata hea    
 46  * @nlmsg_len:   Length of message including h    
 47  * @nlmsg_type:  Message content type             
 48  * @nlmsg_flags: Additional flags                 
 49  * @nlmsg_seq:   Sequence number                  
 50  * @nlmsg_pid:   Sending process port ID          
 51  */                                               
 52 struct nlmsghdr {                                 
 53         __u32           nlmsg_len;                
 54         __u16           nlmsg_type;               
 55         __u16           nlmsg_flags;              
 56         __u32           nlmsg_seq;                
 57         __u32           nlmsg_pid;                
 58 };                                                
 59                                                   
 60 /* Flags values */                                
 61                                                   
 62 #define NLM_F_REQUEST           0x01    /* It     
 63 #define NLM_F_MULTI             0x02    /* Mul    
 64 #define NLM_F_ACK               0x04    /* Rep    
 65 #define NLM_F_ECHO              0x08    /* Rec    
 66 #define NLM_F_DUMP_INTR         0x10    /* Dum    
 67 #define NLM_F_DUMP_FILTERED     0x20    /* Dum    
 68                                                   
 69 /* Modifiers to GET request */                    
 70 #define NLM_F_ROOT      0x100   /* specify tre    
 71 #define NLM_F_MATCH     0x200   /* return all     
 72 #define NLM_F_ATOMIC    0x400   /* atomic GET     
 73 #define NLM_F_DUMP      (NLM_F_ROOT|NLM_F_MATC    
 74                                                   
 75 /* Modifiers to NEW request */                    
 76 #define NLM_F_REPLACE   0x100   /* Override ex    
 77 #define NLM_F_EXCL      0x200   /* Do not touc    
 78 #define NLM_F_CREATE    0x400   /* Create, if     
 79 #define NLM_F_APPEND    0x800   /* Add to end     
 80                                                   
 81 /* Modifiers to DELETE request */                 
 82 #define NLM_F_NONREC    0x100   /* Do not dele    
 83 #define NLM_F_BULK      0x200   /* Delete mult    
 84                                                   
 85 /* Flags for ACK message */                       
 86 #define NLM_F_CAPPED    0x100   /* request was    
 87 #define NLM_F_ACK_TLVS  0x200   /* extended AC    
 88                                                   
 89 /*                                                
 90    4.4BSD ADD           NLM_F_CREATE|NLM_F_EXC    
 91    4.4BSD CHANGE        NLM_F_REPLACE             
 92                                                   
 93    True CHANGE          NLM_F_CREATE|NLM_F_REP    
 94    Append               NLM_F_CREATE              
 95    Check                NLM_F_EXCL                
 96  */                                               
 97                                                   
 98 #define NLMSG_ALIGNTO   4U                        
 99 #define NLMSG_ALIGN(len) ( ((len)+NLMSG_ALIGNT    
100 #define NLMSG_HDRLEN     ((int) NLMSG_ALIGN(si    
101 #define NLMSG_LENGTH(len) ((len) + NLMSG_HDRLE    
102 #define NLMSG_SPACE(len) NLMSG_ALIGN(NLMSG_LEN    
103 #define NLMSG_DATA(nlh)  ((void *)(((char *)nl    
104 #define NLMSG_NEXT(nlh,len)      ((len) -= NLM    
105                                   (struct nlms    
106                                   NLMSG_ALIGN(    
107 #define NLMSG_OK(nlh,len) ((len) >= (int)sizeo    
108                            (nlh)->nlmsg_len >=    
109                            (nlh)->nlmsg_len <=    
110 #define NLMSG_PAYLOAD(nlh,len) ((nlh)->nlmsg_l    
111                                                   
112 #define NLMSG_NOOP              0x1     /* Not    
113 #define NLMSG_ERROR             0x2     /* Err    
114 #define NLMSG_DONE              0x3     /* End    
115 #define NLMSG_OVERRUN           0x4     /* Dat    
116                                                   
117 #define NLMSG_MIN_TYPE          0x10    /* < 0    
118                                                   
119 struct nlmsgerr {                                 
120         int             error;                    
121         struct nlmsghdr msg;                      
122         /*                                        
123          * followed by the message contents un    
124          * or the ACK indicates success (error    
125          * message length is aligned with NLMS    
126          */                                       
127         /*                                        
128          * followed by TLVs defined in enum nl    
129          * if NETLINK_EXT_ACK was set             
130          */                                       
131 };                                                
132                                                   
133 /**                                               
134  * enum nlmsgerr_attrs - nlmsgerr attributes      
135  * @NLMSGERR_ATTR_UNUSED: unused                  
136  * @NLMSGERR_ATTR_MSG: error message string (s    
137  * @NLMSGERR_ATTR_OFFS: offset of the invalid     
138  *       message, counting from the beginning     
139  * @NLMSGERR_ATTR_COOKIE: arbitrary subsystem     
140  *      be used - in the success case - to ide    
141  *      object or operation or similar (binary    
142  * @NLMSGERR_ATTR_POLICY: policy for a rejecte    
143  * @NLMSGERR_ATTR_MISS_TYPE: type of a missing    
144  *      %NLMSGERR_ATTR_MISS_NEST will not be p    
145  *      missing at the message level              
146  * @NLMSGERR_ATTR_MISS_NEST: offset of the nes    
147  * @__NLMSGERR_ATTR_MAX: number of attributes     
148  * @NLMSGERR_ATTR_MAX: highest attribute numbe    
149  */                                               
150 enum nlmsgerr_attrs {                             
151         NLMSGERR_ATTR_UNUSED,                     
152         NLMSGERR_ATTR_MSG,                        
153         NLMSGERR_ATTR_OFFS,                       
154         NLMSGERR_ATTR_COOKIE,                     
155         NLMSGERR_ATTR_POLICY,                     
156         NLMSGERR_ATTR_MISS_TYPE,                  
157         NLMSGERR_ATTR_MISS_NEST,                  
158                                                   
159         __NLMSGERR_ATTR_MAX,                      
160         NLMSGERR_ATTR_MAX = __NLMSGERR_ATTR_MA    
161 };                                                
162                                                   
163 #define NETLINK_ADD_MEMBERSHIP          1         
164 #define NETLINK_DROP_MEMBERSHIP         2         
165 #define NETLINK_PKTINFO                 3         
166 #define NETLINK_BROADCAST_ERROR         4         
167 #define NETLINK_NO_ENOBUFS              5         
168 #ifndef __KERNEL__                                
169 #define NETLINK_RX_RING                 6         
170 #define NETLINK_TX_RING                 7         
171 #endif                                            
172 #define NETLINK_LISTEN_ALL_NSID         8         
173 #define NETLINK_LIST_MEMBERSHIPS        9         
174 #define NETLINK_CAP_ACK                 10        
175 #define NETLINK_EXT_ACK                 11        
176 #define NETLINK_GET_STRICT_CHK          12        
177                                                   
178 struct nl_pktinfo {                               
179         __u32   group;                            
180 };                                                
181                                                   
182 struct nl_mmap_req {                              
183         unsigned int    nm_block_size;            
184         unsigned int    nm_block_nr;              
185         unsigned int    nm_frame_size;            
186         unsigned int    nm_frame_nr;              
187 };                                                
188                                                   
189 struct nl_mmap_hdr {                              
190         unsigned int    nm_status;                
191         unsigned int    nm_len;                   
192         __u32           nm_group;                 
193         /* credentials */                         
194         __u32           nm_pid;                   
195         __u32           nm_uid;                   
196         __u32           nm_gid;                   
197 };                                                
198                                                   
199 #ifndef __KERNEL__                                
200 enum nl_mmap_status {                             
201         NL_MMAP_STATUS_UNUSED,                    
202         NL_MMAP_STATUS_RESERVED,                  
203         NL_MMAP_STATUS_VALID,                     
204         NL_MMAP_STATUS_COPY,                      
205         NL_MMAP_STATUS_SKIP,                      
206 };                                                
207                                                   
208 #define NL_MMAP_MSG_ALIGNMENT           NLMSG_    
209 #define NL_MMAP_MSG_ALIGN(sz)           __ALIG    
210 #define NL_MMAP_HDRLEN                  NL_MMA    
211 #endif                                            
212                                                   
213 #define NET_MAJOR 36            /* Major 36 is    
214                                                   
215 enum {                                            
216         NETLINK_UNCONNECTED = 0,                  
217         NETLINK_CONNECTED,                        
218 };                                                
219                                                   
220 /*                                                
221  *  <------- NLA_HDRLEN ------> <-- NLA_ALIGN(    
222  * +---------------------+- - -+- - - - - - -     
223  * |        Header       | Pad |     Payload      
224  * |   (struct nlattr)   | ing |                  
225  * +---------------------+- - -+- - - - - - -     
226  *  <-------------- nlattr->nla_len ----------    
227  */                                               
228                                                   
229 struct nlattr {                                   
230         __u16           nla_len;                  
231         __u16           nla_type;                 
232 };                                                
233                                                   
234 /*                                                
235  * nla_type (16 bits)                             
236  * +---+---+-------------------------------+      
237  * | N | O | Attribute Type                |      
238  * +---+---+-------------------------------+      
239  * N := Carries nested attributes                 
240  * O := Payload stored in network byte order      
241  *                                                
242  * Note: The N and O flag are mutually exclusi    
243  */                                               
244 #define NLA_F_NESTED            (1 << 15)         
245 #define NLA_F_NET_BYTEORDER     (1 << 14)         
246 #define NLA_TYPE_MASK           ~(NLA_F_NESTED    
247                                                   
248 #define NLA_ALIGNTO             4                 
249 #define NLA_ALIGN(len)          (((len) + NLA_    
250 #define NLA_HDRLEN              ((int) NLA_ALI    
251                                                   
252 /* Generic 32 bitflags attribute content sent     
253  *                                                
254  * The value is a bitmap that defines the valu    
255  * The selector is a bitmask that defines whic    
256  *                                                
257  * Examples:                                      
258  *  value = 0x0, and selector = 0x1               
259  *  implies we are selecting bit 1 and we want    
260  *                                                
261  *  value = 0x2, and selector = 0x2               
262  *  implies we are selecting bit 2 and we want    
263  *                                                
264  */                                               
265 struct nla_bitfield32 {                           
266         __u32 value;                              
267         __u32 selector;                           
268 };                                                
269                                                   
270 /*                                                
271  * policy descriptions - it's specific to each    
272  * Normally, it should be retrieved via a dump    
273  * specifying where it applies.                   
274  */                                               
275                                                   
276 /**                                               
277  * enum netlink_attribute_type - type of an at    
278  * @NL_ATTR_TYPE_INVALID: unused                  
279  * @NL_ATTR_TYPE_FLAG: flag attribute (present    
280  * @NL_ATTR_TYPE_U8: 8-bit unsigned attribute     
281  * @NL_ATTR_TYPE_U16: 16-bit unsigned attribut    
282  * @NL_ATTR_TYPE_U32: 32-bit unsigned attribut    
283  * @NL_ATTR_TYPE_U64: 64-bit unsigned attribut    
284  * @NL_ATTR_TYPE_S8: 8-bit signed attribute       
285  * @NL_ATTR_TYPE_S16: 16-bit signed attribute     
286  * @NL_ATTR_TYPE_S32: 32-bit signed attribute     
287  * @NL_ATTR_TYPE_S64: 64-bit signed attribute     
288  * @NL_ATTR_TYPE_BINARY: binary data, min/max     
289  * @NL_ATTR_TYPE_STRING: string, min/max lengt    
290  * @NL_ATTR_TYPE_NUL_STRING: NUL-terminated st    
291  *      min/max length may be specified           
292  * @NL_ATTR_TYPE_NESTED: nested, i.e. the cont    
293  *      consists of sub-attributes. The nested    
294  *      inside may be specified.                  
295  * @NL_ATTR_TYPE_NESTED_ARRAY: nested array, i    
296  *      attribute contains sub-attributes whos    
297  *      (just used to separate the array entri    
298  *      entry has attributes again, the policy    
299  *      and the corresponding maxtype may be s    
300  * @NL_ATTR_TYPE_BITFIELD32: &struct nla_bitfi    
301  * @NL_ATTR_TYPE_SINT: 32-bit or 64-bit signed    
302  * @NL_ATTR_TYPE_UINT: 32-bit or 64-bit unsign    
303  */                                               
304 enum netlink_attribute_type {                     
305         NL_ATTR_TYPE_INVALID,                     
306                                                   
307         NL_ATTR_TYPE_FLAG,                        
308                                                   
309         NL_ATTR_TYPE_U8,                          
310         NL_ATTR_TYPE_U16,                         
311         NL_ATTR_TYPE_U32,                         
312         NL_ATTR_TYPE_U64,                         
313                                                   
314         NL_ATTR_TYPE_S8,                          
315         NL_ATTR_TYPE_S16,                         
316         NL_ATTR_TYPE_S32,                         
317         NL_ATTR_TYPE_S64,                         
318                                                   
319         NL_ATTR_TYPE_BINARY,                      
320         NL_ATTR_TYPE_STRING,                      
321         NL_ATTR_TYPE_NUL_STRING,                  
322                                                   
323         NL_ATTR_TYPE_NESTED,                      
324         NL_ATTR_TYPE_NESTED_ARRAY,                
325                                                   
326         NL_ATTR_TYPE_BITFIELD32,                  
327                                                   
328         NL_ATTR_TYPE_SINT,                        
329         NL_ATTR_TYPE_UINT,                        
330 };                                                
331                                                   
332 /**                                               
333  * enum netlink_policy_type_attr - policy type    
334  * @NL_POLICY_TYPE_ATTR_UNSPEC: unused            
335  * @NL_POLICY_TYPE_ATTR_TYPE: type of the attr    
336  *      &enum netlink_attribute_type (U32)        
337  * @NL_POLICY_TYPE_ATTR_MIN_VALUE_S: minimum v    
338  *      integers (S64)                            
339  * @NL_POLICY_TYPE_ATTR_MAX_VALUE_S: maximum v    
340  *      integers (S64)                            
341  * @NL_POLICY_TYPE_ATTR_MIN_VALUE_U: minimum v    
342  *      integers (U64)                            
343  * @NL_POLICY_TYPE_ATTR_MAX_VALUE_U: maximum v    
344  *      integers (U64)                            
345  * @NL_POLICY_TYPE_ATTR_MIN_LENGTH: minimum le    
346  *      attributes, no minimum if not given (U    
347  * @NL_POLICY_TYPE_ATTR_MAX_LENGTH: maximum le    
348  *      attributes, no maximum if not given (U    
349  * @NL_POLICY_TYPE_ATTR_POLICY_IDX: sub policy    
350  *      nested array types (U32)                  
351  * @NL_POLICY_TYPE_ATTR_POLICY_MAXTYPE: maximu    
352  *      attribute for nested and nested array     
353  *      in theory be < the size of the policy     
354  *      the index, if limited inside the nesti    
355  * @NL_POLICY_TYPE_ATTR_BITFIELD32_MASK: valid    
356  *      bitfield32 type (U32)                     
357  * @NL_POLICY_TYPE_ATTR_MASK: mask of valid bi    
358  * @NL_POLICY_TYPE_ATTR_PAD: pad attribute for    
359  *                                                
360  * @__NL_POLICY_TYPE_ATTR_MAX: number of attri    
361  * @NL_POLICY_TYPE_ATTR_MAX: highest attribute    
362  */                                               
363 enum netlink_policy_type_attr {                   
364         NL_POLICY_TYPE_ATTR_UNSPEC,               
365         NL_POLICY_TYPE_ATTR_TYPE,                 
366         NL_POLICY_TYPE_ATTR_MIN_VALUE_S,          
367         NL_POLICY_TYPE_ATTR_MAX_VALUE_S,          
368         NL_POLICY_TYPE_ATTR_MIN_VALUE_U,          
369         NL_POLICY_TYPE_ATTR_MAX_VALUE_U,          
370         NL_POLICY_TYPE_ATTR_MIN_LENGTH,           
371         NL_POLICY_TYPE_ATTR_MAX_LENGTH,           
372         NL_POLICY_TYPE_ATTR_POLICY_IDX,           
373         NL_POLICY_TYPE_ATTR_POLICY_MAXTYPE,       
374         NL_POLICY_TYPE_ATTR_BITFIELD32_MASK,      
375         NL_POLICY_TYPE_ATTR_PAD,                  
376         NL_POLICY_TYPE_ATTR_MASK,                 
377                                                   
378         /* keep last */                           
379         __NL_POLICY_TYPE_ATTR_MAX,                
380         NL_POLICY_TYPE_ATTR_MAX = __NL_POLICY_    
381 };                                                
382                                                   
383 #endif /* _UAPI__LINUX_NETLINK_H */               
384                                                   

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php