• source navigation  • diff markup  • identifier search  • freetext search  • 

Sources/libnl-tiny/include/netlink/netlink-kernel.h

  1 #ifndef __LINUX_NETLINK_H
  2 #define __LINUX_NETLINK_H
  3 
  4 /**
  5  * Netlink socket address
  6  * @ingroup nl
  7  */
  8 struct sockaddr_nl
  9 {
 10         /** socket family (AF_NETLINK) */
 11         sa_family_t     nl_family;
 12 
 13         /** Padding (unused) */
 14         unsigned short  nl_pad;
 15 
 16         /** Unique process ID  */
 17         uint32_t        nl_pid;
 18 
 19         /** Multicast group subscriptions */
 20         uint32_t        nl_groups;
 21 };
 22 
 23 /**
 24  * Netlink message header
 25  * @ingroup msg
 26  */
 27 struct nlmsghdr
 28 {
 29         /**
 30          * Length of message including header.
 31          */
 32         uint32_t        nlmsg_len;
 33 
 34         /**
 35          * Message type (content type)
 36          */
 37         uint16_t        nlmsg_type;
 38 
 39         /**
 40          * Message flags
 41          */
 42         uint16_t        nlmsg_flags;
 43 
 44         /**
 45          * Sequence number
 46          */
 47         uint32_t        nlmsg_seq;
 48 
 49         /**
 50          * Netlink PID of the proccess sending the message.
 51          */
 52         uint32_t        nlmsg_pid;
 53 };
 54 
 55 /**
 56  * @name Standard message flags
 57  * @{
 58  */
 59 
 60 /**
 61  * Must be set on all request messages (typically from user space to
 62  * kernel space).
 63  * @ingroup msg
 64  */
 65 #define NLM_F_REQUEST           1
 66 
 67 /**
 68  * Indicates the message is part of a multipart message terminated
 69  * by NLMSG_DONE.
 70  */
 71 #define NLM_F_MULTI             2
 72 
 73 /**
 74  * Request for an acknowledgment on success.
 75  */
 76 #define NLM_F_ACK               4
 77 
 78 /**
 79  * Echo this request
 80  */
 81 #define NLM_F_ECHO              8
 82 
 83 /** @} */
 84 
 85 /**
 86  * @name Additional message flags for GET requests
 87  * @{
 88  */
 89 
 90 /**
 91  * Return the complete table instead of a single entry.
 92  * @ingroup msg
 93  */
 94 #define NLM_F_ROOT      0x100
 95 
 96 /**
 97  * Return all entries matching criteria passed in message content.
 98  */
 99 #define NLM_F_MATCH     0x200
100 
101 /**
102  * Return an atomic snapshot of the table being referenced. This
103  * may require special privileges because it has the potential to
104  * interrupt service in the FE for a longer time.
105  */
106 #define NLM_F_ATOMIC    0x400
107 
108 /**
109  * Dump all entries
110  */
111 #define NLM_F_DUMP      (NLM_F_ROOT|NLM_F_MATCH)
112 
113 /** @} */
114 
115 /**
116  * @name Additional messsage flags for NEW requests
117  * @{
118  */
119 
120 /**
121  * Replace existing matching config object with this request.
122  * @ingroup msg
123  */
124 #define NLM_F_REPLACE   0x100
125 
126 /**
127  * Don't replace the config object if it already exists.
128  */
129 #define NLM_F_EXCL      0x200
130 
131 /**
132  * Create config object if it doesn't already exist.
133  */
134 #define NLM_F_CREATE    0x400
135 
136 /**
137  * Add to the end of the object list.
138  */
139 #define NLM_F_APPEND    0x800
140 
141 /** @} */
142 
143 /**
144  * @name Standard Message types
145  * @{
146  */
147 
148 /**
149  * No operation, message must be ignored
150  * @ingroup msg
151  */
152 #define NLMSG_NOOP              0x1
153 
154 /**
155  * The message signals an error and the payload contains a nlmsgerr
156  * structure. This can be looked at as a NACK and typically it is
157  * from FEC to CPC.
158  */
159 #define NLMSG_ERROR             0x2
160 
161 /**
162  * Message terminates a multipart message.
163  */
164 #define NLMSG_DONE              0x3
165 
166 /**
167  * The message signals that data got lost
168  */
169 #define NLMSG_OVERRUN           0x4
170 
171 /**
172  * Lower limit of reserved message types
173  */
174 #define NLMSG_MIN_TYPE          0x10
175 
176 /** @} */
177 
178 #define NLA_F_NESTED            (1 << 15)
179 
180 /**
181  * Netlink error message
182  * @ingroup msg
183  */
184 struct nlmsgerr
185 {
186         /** Error code (errno number) */
187         int             error;
188 
189         /** Original netlink message causing the error */
190         struct nlmsghdr msg;
191 };
192 
193 struct nl_pktinfo
194 {
195         __u32   group;
196 };
197 
198 #endif  /* __LINUX_NETLINK_H */
199 

This page was automatically generated by LXR 0.3.1.  •  OpenWrt