xref: /openbmc/linux/tools/net/ynl/generated/fou-user.h (revision d75fdfbc6f260f50cde5d1d566ab010a370df62e)
1*d75fdfbcSJakub Kicinski /* SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause) */
2*d75fdfbcSJakub Kicinski /* Do not edit directly, auto-generated from: */
3*d75fdfbcSJakub Kicinski /*	Documentation/netlink/specs/fou.yaml */
4*d75fdfbcSJakub Kicinski /* YNL-GEN user header */
5*d75fdfbcSJakub Kicinski 
6*d75fdfbcSJakub Kicinski #ifndef _LINUX_FOU_GEN_H
7*d75fdfbcSJakub Kicinski #define _LINUX_FOU_GEN_H
8*d75fdfbcSJakub Kicinski 
9*d75fdfbcSJakub Kicinski #include <stdlib.h>
10*d75fdfbcSJakub Kicinski #include <string.h>
11*d75fdfbcSJakub Kicinski #include <linux/types.h>
12*d75fdfbcSJakub Kicinski #include <linux/fou.h>
13*d75fdfbcSJakub Kicinski 
14*d75fdfbcSJakub Kicinski struct ynl_sock;
15*d75fdfbcSJakub Kicinski 
16*d75fdfbcSJakub Kicinski extern const struct ynl_family ynl_fou_family;
17*d75fdfbcSJakub Kicinski 
18*d75fdfbcSJakub Kicinski /* Enums */
19*d75fdfbcSJakub Kicinski const char *fou_op_str(int op);
20*d75fdfbcSJakub Kicinski const char *fou_encap_type_str(int value);
21*d75fdfbcSJakub Kicinski 
22*d75fdfbcSJakub Kicinski /* Common nested types */
23*d75fdfbcSJakub Kicinski /* ============== FOU_CMD_ADD ============== */
24*d75fdfbcSJakub Kicinski /* FOU_CMD_ADD - do */
25*d75fdfbcSJakub Kicinski struct fou_add_req {
26*d75fdfbcSJakub Kicinski 	struct {
27*d75fdfbcSJakub Kicinski 		__u32 port:1;
28*d75fdfbcSJakub Kicinski 		__u32 ipproto:1;
29*d75fdfbcSJakub Kicinski 		__u32 type:1;
30*d75fdfbcSJakub Kicinski 		__u32 remcsum_nopartial:1;
31*d75fdfbcSJakub Kicinski 		__u32 local_v4:1;
32*d75fdfbcSJakub Kicinski 		__u32 peer_v4:1;
33*d75fdfbcSJakub Kicinski 		__u32 local_v6_len;
34*d75fdfbcSJakub Kicinski 		__u32 peer_v6_len;
35*d75fdfbcSJakub Kicinski 		__u32 peer_port:1;
36*d75fdfbcSJakub Kicinski 		__u32 ifindex:1;
37*d75fdfbcSJakub Kicinski 	} _present;
38*d75fdfbcSJakub Kicinski 
39*d75fdfbcSJakub Kicinski 	__u16 port /* big-endian */;
40*d75fdfbcSJakub Kicinski 	__u8 ipproto;
41*d75fdfbcSJakub Kicinski 	__u8 type;
42*d75fdfbcSJakub Kicinski 	__u32 local_v4;
43*d75fdfbcSJakub Kicinski 	__u32 peer_v4;
44*d75fdfbcSJakub Kicinski 	void *local_v6;
45*d75fdfbcSJakub Kicinski 	void *peer_v6;
46*d75fdfbcSJakub Kicinski 	__u16 peer_port /* big-endian */;
47*d75fdfbcSJakub Kicinski 	__s32 ifindex;
48*d75fdfbcSJakub Kicinski };
49*d75fdfbcSJakub Kicinski 
50*d75fdfbcSJakub Kicinski static inline struct fou_add_req *fou_add_req_alloc(void)
51*d75fdfbcSJakub Kicinski {
52*d75fdfbcSJakub Kicinski 	return calloc(1, sizeof(struct fou_add_req));
53*d75fdfbcSJakub Kicinski }
54*d75fdfbcSJakub Kicinski void fou_add_req_free(struct fou_add_req *req);
55*d75fdfbcSJakub Kicinski 
56*d75fdfbcSJakub Kicinski static inline void
57*d75fdfbcSJakub Kicinski fou_add_req_set_port(struct fou_add_req *req, __u16 port /* big-endian */)
58*d75fdfbcSJakub Kicinski {
59*d75fdfbcSJakub Kicinski 	req->_present.port = 1;
60*d75fdfbcSJakub Kicinski 	req->port = port;
61*d75fdfbcSJakub Kicinski }
62*d75fdfbcSJakub Kicinski static inline void
63*d75fdfbcSJakub Kicinski fou_add_req_set_ipproto(struct fou_add_req *req, __u8 ipproto)
64*d75fdfbcSJakub Kicinski {
65*d75fdfbcSJakub Kicinski 	req->_present.ipproto = 1;
66*d75fdfbcSJakub Kicinski 	req->ipproto = ipproto;
67*d75fdfbcSJakub Kicinski }
68*d75fdfbcSJakub Kicinski static inline void fou_add_req_set_type(struct fou_add_req *req, __u8 type)
69*d75fdfbcSJakub Kicinski {
70*d75fdfbcSJakub Kicinski 	req->_present.type = 1;
71*d75fdfbcSJakub Kicinski 	req->type = type;
72*d75fdfbcSJakub Kicinski }
73*d75fdfbcSJakub Kicinski static inline void fou_add_req_set_remcsum_nopartial(struct fou_add_req *req)
74*d75fdfbcSJakub Kicinski {
75*d75fdfbcSJakub Kicinski 	req->_present.remcsum_nopartial = 1;
76*d75fdfbcSJakub Kicinski }
77*d75fdfbcSJakub Kicinski static inline void
78*d75fdfbcSJakub Kicinski fou_add_req_set_local_v4(struct fou_add_req *req, __u32 local_v4)
79*d75fdfbcSJakub Kicinski {
80*d75fdfbcSJakub Kicinski 	req->_present.local_v4 = 1;
81*d75fdfbcSJakub Kicinski 	req->local_v4 = local_v4;
82*d75fdfbcSJakub Kicinski }
83*d75fdfbcSJakub Kicinski static inline void
84*d75fdfbcSJakub Kicinski fou_add_req_set_peer_v4(struct fou_add_req *req, __u32 peer_v4)
85*d75fdfbcSJakub Kicinski {
86*d75fdfbcSJakub Kicinski 	req->_present.peer_v4 = 1;
87*d75fdfbcSJakub Kicinski 	req->peer_v4 = peer_v4;
88*d75fdfbcSJakub Kicinski }
89*d75fdfbcSJakub Kicinski static inline void
90*d75fdfbcSJakub Kicinski fou_add_req_set_local_v6(struct fou_add_req *req, const void *local_v6,
91*d75fdfbcSJakub Kicinski 			 size_t len)
92*d75fdfbcSJakub Kicinski {
93*d75fdfbcSJakub Kicinski 	free(req->local_v6);
94*d75fdfbcSJakub Kicinski 	req->local_v6 = malloc(req->_present.local_v6_len);
95*d75fdfbcSJakub Kicinski 	memcpy(req->local_v6, local_v6, req->_present.local_v6_len);
96*d75fdfbcSJakub Kicinski }
97*d75fdfbcSJakub Kicinski static inline void
98*d75fdfbcSJakub Kicinski fou_add_req_set_peer_v6(struct fou_add_req *req, const void *peer_v6,
99*d75fdfbcSJakub Kicinski 			size_t len)
100*d75fdfbcSJakub Kicinski {
101*d75fdfbcSJakub Kicinski 	free(req->peer_v6);
102*d75fdfbcSJakub Kicinski 	req->peer_v6 = malloc(req->_present.peer_v6_len);
103*d75fdfbcSJakub Kicinski 	memcpy(req->peer_v6, peer_v6, req->_present.peer_v6_len);
104*d75fdfbcSJakub Kicinski }
105*d75fdfbcSJakub Kicinski static inline void
106*d75fdfbcSJakub Kicinski fou_add_req_set_peer_port(struct fou_add_req *req,
107*d75fdfbcSJakub Kicinski 			  __u16 peer_port /* big-endian */)
108*d75fdfbcSJakub Kicinski {
109*d75fdfbcSJakub Kicinski 	req->_present.peer_port = 1;
110*d75fdfbcSJakub Kicinski 	req->peer_port = peer_port;
111*d75fdfbcSJakub Kicinski }
112*d75fdfbcSJakub Kicinski static inline void
113*d75fdfbcSJakub Kicinski fou_add_req_set_ifindex(struct fou_add_req *req, __s32 ifindex)
114*d75fdfbcSJakub Kicinski {
115*d75fdfbcSJakub Kicinski 	req->_present.ifindex = 1;
116*d75fdfbcSJakub Kicinski 	req->ifindex = ifindex;
117*d75fdfbcSJakub Kicinski }
118*d75fdfbcSJakub Kicinski 
119*d75fdfbcSJakub Kicinski /*
120*d75fdfbcSJakub Kicinski  * Add port.
121*d75fdfbcSJakub Kicinski  */
122*d75fdfbcSJakub Kicinski int fou_add(struct ynl_sock *ys, struct fou_add_req *req);
123*d75fdfbcSJakub Kicinski 
124*d75fdfbcSJakub Kicinski /* ============== FOU_CMD_DEL ============== */
125*d75fdfbcSJakub Kicinski /* FOU_CMD_DEL - do */
126*d75fdfbcSJakub Kicinski struct fou_del_req {
127*d75fdfbcSJakub Kicinski 	struct {
128*d75fdfbcSJakub Kicinski 		__u32 af:1;
129*d75fdfbcSJakub Kicinski 		__u32 ifindex:1;
130*d75fdfbcSJakub Kicinski 		__u32 port:1;
131*d75fdfbcSJakub Kicinski 		__u32 peer_port:1;
132*d75fdfbcSJakub Kicinski 		__u32 local_v4:1;
133*d75fdfbcSJakub Kicinski 		__u32 peer_v4:1;
134*d75fdfbcSJakub Kicinski 		__u32 local_v6_len;
135*d75fdfbcSJakub Kicinski 		__u32 peer_v6_len;
136*d75fdfbcSJakub Kicinski 	} _present;
137*d75fdfbcSJakub Kicinski 
138*d75fdfbcSJakub Kicinski 	__u8 af;
139*d75fdfbcSJakub Kicinski 	__s32 ifindex;
140*d75fdfbcSJakub Kicinski 	__u16 port /* big-endian */;
141*d75fdfbcSJakub Kicinski 	__u16 peer_port /* big-endian */;
142*d75fdfbcSJakub Kicinski 	__u32 local_v4;
143*d75fdfbcSJakub Kicinski 	__u32 peer_v4;
144*d75fdfbcSJakub Kicinski 	void *local_v6;
145*d75fdfbcSJakub Kicinski 	void *peer_v6;
146*d75fdfbcSJakub Kicinski };
147*d75fdfbcSJakub Kicinski 
148*d75fdfbcSJakub Kicinski static inline struct fou_del_req *fou_del_req_alloc(void)
149*d75fdfbcSJakub Kicinski {
150*d75fdfbcSJakub Kicinski 	return calloc(1, sizeof(struct fou_del_req));
151*d75fdfbcSJakub Kicinski }
152*d75fdfbcSJakub Kicinski void fou_del_req_free(struct fou_del_req *req);
153*d75fdfbcSJakub Kicinski 
154*d75fdfbcSJakub Kicinski static inline void fou_del_req_set_af(struct fou_del_req *req, __u8 af)
155*d75fdfbcSJakub Kicinski {
156*d75fdfbcSJakub Kicinski 	req->_present.af = 1;
157*d75fdfbcSJakub Kicinski 	req->af = af;
158*d75fdfbcSJakub Kicinski }
159*d75fdfbcSJakub Kicinski static inline void
160*d75fdfbcSJakub Kicinski fou_del_req_set_ifindex(struct fou_del_req *req, __s32 ifindex)
161*d75fdfbcSJakub Kicinski {
162*d75fdfbcSJakub Kicinski 	req->_present.ifindex = 1;
163*d75fdfbcSJakub Kicinski 	req->ifindex = ifindex;
164*d75fdfbcSJakub Kicinski }
165*d75fdfbcSJakub Kicinski static inline void
166*d75fdfbcSJakub Kicinski fou_del_req_set_port(struct fou_del_req *req, __u16 port /* big-endian */)
167*d75fdfbcSJakub Kicinski {
168*d75fdfbcSJakub Kicinski 	req->_present.port = 1;
169*d75fdfbcSJakub Kicinski 	req->port = port;
170*d75fdfbcSJakub Kicinski }
171*d75fdfbcSJakub Kicinski static inline void
172*d75fdfbcSJakub Kicinski fou_del_req_set_peer_port(struct fou_del_req *req,
173*d75fdfbcSJakub Kicinski 			  __u16 peer_port /* big-endian */)
174*d75fdfbcSJakub Kicinski {
175*d75fdfbcSJakub Kicinski 	req->_present.peer_port = 1;
176*d75fdfbcSJakub Kicinski 	req->peer_port = peer_port;
177*d75fdfbcSJakub Kicinski }
178*d75fdfbcSJakub Kicinski static inline void
179*d75fdfbcSJakub Kicinski fou_del_req_set_local_v4(struct fou_del_req *req, __u32 local_v4)
180*d75fdfbcSJakub Kicinski {
181*d75fdfbcSJakub Kicinski 	req->_present.local_v4 = 1;
182*d75fdfbcSJakub Kicinski 	req->local_v4 = local_v4;
183*d75fdfbcSJakub Kicinski }
184*d75fdfbcSJakub Kicinski static inline void
185*d75fdfbcSJakub Kicinski fou_del_req_set_peer_v4(struct fou_del_req *req, __u32 peer_v4)
186*d75fdfbcSJakub Kicinski {
187*d75fdfbcSJakub Kicinski 	req->_present.peer_v4 = 1;
188*d75fdfbcSJakub Kicinski 	req->peer_v4 = peer_v4;
189*d75fdfbcSJakub Kicinski }
190*d75fdfbcSJakub Kicinski static inline void
191*d75fdfbcSJakub Kicinski fou_del_req_set_local_v6(struct fou_del_req *req, const void *local_v6,
192*d75fdfbcSJakub Kicinski 			 size_t len)
193*d75fdfbcSJakub Kicinski {
194*d75fdfbcSJakub Kicinski 	free(req->local_v6);
195*d75fdfbcSJakub Kicinski 	req->local_v6 = malloc(req->_present.local_v6_len);
196*d75fdfbcSJakub Kicinski 	memcpy(req->local_v6, local_v6, req->_present.local_v6_len);
197*d75fdfbcSJakub Kicinski }
198*d75fdfbcSJakub Kicinski static inline void
199*d75fdfbcSJakub Kicinski fou_del_req_set_peer_v6(struct fou_del_req *req, const void *peer_v6,
200*d75fdfbcSJakub Kicinski 			size_t len)
201*d75fdfbcSJakub Kicinski {
202*d75fdfbcSJakub Kicinski 	free(req->peer_v6);
203*d75fdfbcSJakub Kicinski 	req->peer_v6 = malloc(req->_present.peer_v6_len);
204*d75fdfbcSJakub Kicinski 	memcpy(req->peer_v6, peer_v6, req->_present.peer_v6_len);
205*d75fdfbcSJakub Kicinski }
206*d75fdfbcSJakub Kicinski 
207*d75fdfbcSJakub Kicinski /*
208*d75fdfbcSJakub Kicinski  * Delete port.
209*d75fdfbcSJakub Kicinski  */
210*d75fdfbcSJakub Kicinski int fou_del(struct ynl_sock *ys, struct fou_del_req *req);
211*d75fdfbcSJakub Kicinski 
212*d75fdfbcSJakub Kicinski /* ============== FOU_CMD_GET ============== */
213*d75fdfbcSJakub Kicinski /* FOU_CMD_GET - do */
214*d75fdfbcSJakub Kicinski struct fou_get_req {
215*d75fdfbcSJakub Kicinski 	struct {
216*d75fdfbcSJakub Kicinski 		__u32 af:1;
217*d75fdfbcSJakub Kicinski 		__u32 ifindex:1;
218*d75fdfbcSJakub Kicinski 		__u32 port:1;
219*d75fdfbcSJakub Kicinski 		__u32 peer_port:1;
220*d75fdfbcSJakub Kicinski 		__u32 local_v4:1;
221*d75fdfbcSJakub Kicinski 		__u32 peer_v4:1;
222*d75fdfbcSJakub Kicinski 		__u32 local_v6_len;
223*d75fdfbcSJakub Kicinski 		__u32 peer_v6_len;
224*d75fdfbcSJakub Kicinski 	} _present;
225*d75fdfbcSJakub Kicinski 
226*d75fdfbcSJakub Kicinski 	__u8 af;
227*d75fdfbcSJakub Kicinski 	__s32 ifindex;
228*d75fdfbcSJakub Kicinski 	__u16 port /* big-endian */;
229*d75fdfbcSJakub Kicinski 	__u16 peer_port /* big-endian */;
230*d75fdfbcSJakub Kicinski 	__u32 local_v4;
231*d75fdfbcSJakub Kicinski 	__u32 peer_v4;
232*d75fdfbcSJakub Kicinski 	void *local_v6;
233*d75fdfbcSJakub Kicinski 	void *peer_v6;
234*d75fdfbcSJakub Kicinski };
235*d75fdfbcSJakub Kicinski 
236*d75fdfbcSJakub Kicinski static inline struct fou_get_req *fou_get_req_alloc(void)
237*d75fdfbcSJakub Kicinski {
238*d75fdfbcSJakub Kicinski 	return calloc(1, sizeof(struct fou_get_req));
239*d75fdfbcSJakub Kicinski }
240*d75fdfbcSJakub Kicinski void fou_get_req_free(struct fou_get_req *req);
241*d75fdfbcSJakub Kicinski 
242*d75fdfbcSJakub Kicinski static inline void fou_get_req_set_af(struct fou_get_req *req, __u8 af)
243*d75fdfbcSJakub Kicinski {
244*d75fdfbcSJakub Kicinski 	req->_present.af = 1;
245*d75fdfbcSJakub Kicinski 	req->af = af;
246*d75fdfbcSJakub Kicinski }
247*d75fdfbcSJakub Kicinski static inline void
248*d75fdfbcSJakub Kicinski fou_get_req_set_ifindex(struct fou_get_req *req, __s32 ifindex)
249*d75fdfbcSJakub Kicinski {
250*d75fdfbcSJakub Kicinski 	req->_present.ifindex = 1;
251*d75fdfbcSJakub Kicinski 	req->ifindex = ifindex;
252*d75fdfbcSJakub Kicinski }
253*d75fdfbcSJakub Kicinski static inline void
254*d75fdfbcSJakub Kicinski fou_get_req_set_port(struct fou_get_req *req, __u16 port /* big-endian */)
255*d75fdfbcSJakub Kicinski {
256*d75fdfbcSJakub Kicinski 	req->_present.port = 1;
257*d75fdfbcSJakub Kicinski 	req->port = port;
258*d75fdfbcSJakub Kicinski }
259*d75fdfbcSJakub Kicinski static inline void
260*d75fdfbcSJakub Kicinski fou_get_req_set_peer_port(struct fou_get_req *req,
261*d75fdfbcSJakub Kicinski 			  __u16 peer_port /* big-endian */)
262*d75fdfbcSJakub Kicinski {
263*d75fdfbcSJakub Kicinski 	req->_present.peer_port = 1;
264*d75fdfbcSJakub Kicinski 	req->peer_port = peer_port;
265*d75fdfbcSJakub Kicinski }
266*d75fdfbcSJakub Kicinski static inline void
267*d75fdfbcSJakub Kicinski fou_get_req_set_local_v4(struct fou_get_req *req, __u32 local_v4)
268*d75fdfbcSJakub Kicinski {
269*d75fdfbcSJakub Kicinski 	req->_present.local_v4 = 1;
270*d75fdfbcSJakub Kicinski 	req->local_v4 = local_v4;
271*d75fdfbcSJakub Kicinski }
272*d75fdfbcSJakub Kicinski static inline void
273*d75fdfbcSJakub Kicinski fou_get_req_set_peer_v4(struct fou_get_req *req, __u32 peer_v4)
274*d75fdfbcSJakub Kicinski {
275*d75fdfbcSJakub Kicinski 	req->_present.peer_v4 = 1;
276*d75fdfbcSJakub Kicinski 	req->peer_v4 = peer_v4;
277*d75fdfbcSJakub Kicinski }
278*d75fdfbcSJakub Kicinski static inline void
279*d75fdfbcSJakub Kicinski fou_get_req_set_local_v6(struct fou_get_req *req, const void *local_v6,
280*d75fdfbcSJakub Kicinski 			 size_t len)
281*d75fdfbcSJakub Kicinski {
282*d75fdfbcSJakub Kicinski 	free(req->local_v6);
283*d75fdfbcSJakub Kicinski 	req->local_v6 = malloc(req->_present.local_v6_len);
284*d75fdfbcSJakub Kicinski 	memcpy(req->local_v6, local_v6, req->_present.local_v6_len);
285*d75fdfbcSJakub Kicinski }
286*d75fdfbcSJakub Kicinski static inline void
287*d75fdfbcSJakub Kicinski fou_get_req_set_peer_v6(struct fou_get_req *req, const void *peer_v6,
288*d75fdfbcSJakub Kicinski 			size_t len)
289*d75fdfbcSJakub Kicinski {
290*d75fdfbcSJakub Kicinski 	free(req->peer_v6);
291*d75fdfbcSJakub Kicinski 	req->peer_v6 = malloc(req->_present.peer_v6_len);
292*d75fdfbcSJakub Kicinski 	memcpy(req->peer_v6, peer_v6, req->_present.peer_v6_len);
293*d75fdfbcSJakub Kicinski }
294*d75fdfbcSJakub Kicinski 
295*d75fdfbcSJakub Kicinski struct fou_get_rsp {
296*d75fdfbcSJakub Kicinski 	struct {
297*d75fdfbcSJakub Kicinski 		__u32 port:1;
298*d75fdfbcSJakub Kicinski 		__u32 ipproto:1;
299*d75fdfbcSJakub Kicinski 		__u32 type:1;
300*d75fdfbcSJakub Kicinski 		__u32 remcsum_nopartial:1;
301*d75fdfbcSJakub Kicinski 		__u32 local_v4:1;
302*d75fdfbcSJakub Kicinski 		__u32 peer_v4:1;
303*d75fdfbcSJakub Kicinski 		__u32 local_v6_len;
304*d75fdfbcSJakub Kicinski 		__u32 peer_v6_len;
305*d75fdfbcSJakub Kicinski 		__u32 peer_port:1;
306*d75fdfbcSJakub Kicinski 		__u32 ifindex:1;
307*d75fdfbcSJakub Kicinski 	} _present;
308*d75fdfbcSJakub Kicinski 
309*d75fdfbcSJakub Kicinski 	__u16 port /* big-endian */;
310*d75fdfbcSJakub Kicinski 	__u8 ipproto;
311*d75fdfbcSJakub Kicinski 	__u8 type;
312*d75fdfbcSJakub Kicinski 	__u32 local_v4;
313*d75fdfbcSJakub Kicinski 	__u32 peer_v4;
314*d75fdfbcSJakub Kicinski 	void *local_v6;
315*d75fdfbcSJakub Kicinski 	void *peer_v6;
316*d75fdfbcSJakub Kicinski 	__u16 peer_port /* big-endian */;
317*d75fdfbcSJakub Kicinski 	__s32 ifindex;
318*d75fdfbcSJakub Kicinski };
319*d75fdfbcSJakub Kicinski 
320*d75fdfbcSJakub Kicinski void fou_get_rsp_free(struct fou_get_rsp *rsp);
321*d75fdfbcSJakub Kicinski 
322*d75fdfbcSJakub Kicinski /*
323*d75fdfbcSJakub Kicinski  * Get tunnel info.
324*d75fdfbcSJakub Kicinski  */
325*d75fdfbcSJakub Kicinski struct fou_get_rsp *fou_get(struct ynl_sock *ys, struct fou_get_req *req);
326*d75fdfbcSJakub Kicinski 
327*d75fdfbcSJakub Kicinski /* FOU_CMD_GET - dump */
328*d75fdfbcSJakub Kicinski struct fou_get_list {
329*d75fdfbcSJakub Kicinski 	struct fou_get_list *next;
330*d75fdfbcSJakub Kicinski 	struct fou_get_rsp obj __attribute__ ((aligned (8)));
331*d75fdfbcSJakub Kicinski };
332*d75fdfbcSJakub Kicinski 
333*d75fdfbcSJakub Kicinski void fou_get_list_free(struct fou_get_list *rsp);
334*d75fdfbcSJakub Kicinski 
335*d75fdfbcSJakub Kicinski struct fou_get_list *fou_get_dump(struct ynl_sock *ys);
336*d75fdfbcSJakub Kicinski 
337*d75fdfbcSJakub Kicinski #endif /* _LINUX_FOU_GEN_H */
338