xref: /linux/net/ipv4/fou_nl.c (revision cdd5b5a9761fd66d17586e4f4ba6588c70e640ea)
14e16b6a7SJakub Kicinski // SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause)
21d562c32SJakub Kicinski /* Do not edit directly, auto-generated from: */
31d562c32SJakub Kicinski /*	Documentation/netlink/specs/fou.yaml */
41d562c32SJakub Kicinski /* YNL-GEN kernel source */
51d562c32SJakub Kicinski 
61d562c32SJakub Kicinski #include <net/netlink.h>
71d562c32SJakub Kicinski #include <net/genetlink.h>
81d562c32SJakub Kicinski 
91d562c32SJakub Kicinski #include "fou_nl.h"
101d562c32SJakub Kicinski 
11*9b66ee06SJakub Kicinski #include <uapi/linux/fou.h>
121d562c32SJakub Kicinski 
131d562c32SJakub Kicinski /* Global operation policy for fou */
141d562c32SJakub Kicinski const struct nla_policy fou_nl_policy[FOU_ATTR_IFINDEX + 1] = {
151d562c32SJakub Kicinski 	[FOU_ATTR_PORT] = { .type = NLA_U16, },
161d562c32SJakub Kicinski 	[FOU_ATTR_AF] = { .type = NLA_U8, },
171d562c32SJakub Kicinski 	[FOU_ATTR_IPPROTO] = { .type = NLA_U8, },
181d562c32SJakub Kicinski 	[FOU_ATTR_TYPE] = { .type = NLA_U8, },
191d562c32SJakub Kicinski 	[FOU_ATTR_REMCSUM_NOPARTIAL] = { .type = NLA_FLAG, },
201d562c32SJakub Kicinski 	[FOU_ATTR_LOCAL_V4] = { .type = NLA_U32, },
211d562c32SJakub Kicinski 	[FOU_ATTR_LOCAL_V6] = { .len = 16, },
221d562c32SJakub Kicinski 	[FOU_ATTR_PEER_V4] = { .type = NLA_U32, },
231d562c32SJakub Kicinski 	[FOU_ATTR_PEER_V6] = { .len = 16, },
241d562c32SJakub Kicinski 	[FOU_ATTR_PEER_PORT] = { .type = NLA_U16, },
251d562c32SJakub Kicinski 	[FOU_ATTR_IFINDEX] = { .type = NLA_S32, },
261d562c32SJakub Kicinski };
271d562c32SJakub Kicinski 
281d562c32SJakub Kicinski /* Ops table for fou */
291d562c32SJakub Kicinski const struct genl_small_ops fou_nl_ops[3] = {
301d562c32SJakub Kicinski 	{
311d562c32SJakub Kicinski 		.cmd		= FOU_CMD_ADD,
321d562c32SJakub Kicinski 		.validate	= GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
331d562c32SJakub Kicinski 		.doit		= fou_nl_add_doit,
341d562c32SJakub Kicinski 		.flags		= GENL_ADMIN_PERM,
351d562c32SJakub Kicinski 	},
361d562c32SJakub Kicinski 	{
371d562c32SJakub Kicinski 		.cmd		= FOU_CMD_DEL,
381d562c32SJakub Kicinski 		.validate	= GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
391d562c32SJakub Kicinski 		.doit		= fou_nl_del_doit,
401d562c32SJakub Kicinski 		.flags		= GENL_ADMIN_PERM,
411d562c32SJakub Kicinski 	},
421d562c32SJakub Kicinski 	{
431d562c32SJakub Kicinski 		.cmd		= FOU_CMD_GET,
441d562c32SJakub Kicinski 		.validate	= GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
451d562c32SJakub Kicinski 		.doit		= fou_nl_get_doit,
461d562c32SJakub Kicinski 		.dumpit		= fou_nl_get_dumpit,
471d562c32SJakub Kicinski 	},
481d562c32SJakub Kicinski };
49