// SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause)
/* Do not edit directly, auto-generated from: */
/*	Documentation/netlink/specs/fou.yaml */
/* YNL-GEN kernel source */

#include <net/netlink.h>
#include <net/genetlink.h>

#include "fou_nl.h"

#include <uapi/linux/fou.h>

/* Global operation policy for fou */
const struct nla_policy fou_nl_policy[FOU_ATTR_IFINDEX + 1] = {
	[FOU_ATTR_PORT] = { .type = NLA_BE16, },
	[FOU_ATTR_AF] = { .type = NLA_U8, },
	[FOU_ATTR_IPPROTO] = { .type = NLA_U8, },
	[FOU_ATTR_TYPE] = { .type = NLA_U8, },
	[FOU_ATTR_REMCSUM_NOPARTIAL] = { .type = NLA_FLAG, },
	[FOU_ATTR_LOCAL_V4] = { .type = NLA_U32, },
	[FOU_ATTR_LOCAL_V6] = { .len = 16, },
	[FOU_ATTR_PEER_V4] = { .type = NLA_U32, },
	[FOU_ATTR_PEER_V6] = { .len = 16, },
	[FOU_ATTR_PEER_PORT] = { .type = NLA_BE16, },
	[FOU_ATTR_IFINDEX] = { .type = NLA_S32, },
};

/* Ops table for fou */
const struct genl_small_ops fou_nl_ops[3] = {
	{
		.cmd		= FOU_CMD_ADD,
		.validate	= GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
		.doit		= fou_nl_add_doit,
		.flags		= GENL_ADMIN_PERM,
	},
	{
		.cmd		= FOU_CMD_DEL,
		.validate	= GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
		.doit		= fou_nl_del_doit,
		.flags		= GENL_ADMIN_PERM,
	},
	{
		.cmd		= FOU_CMD_GET,
		.validate	= GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
		.doit		= fou_nl_get_doit,
		.dumpit		= fou_nl_get_dumpit,
	},
};
