1/* SPDX-License-Identifier: GPL-2.0 */
2#ifndef _NFT_REJECT_H_
3#define _NFT_REJECT_H_
4
5#include <linux/types.h>
6#include <net/netlink.h>
7#include <net/netfilter/nf_tables.h>
8#include <uapi/linux/netfilter/nf_tables.h>
9
10struct nft_reject {
11	enum nft_reject_types	type:8;
12	u8			icmp_code;
13};
14
15extern const struct nla_policy nft_reject_policy[];
16
17int nft_reject_validate(const struct nft_ctx *ctx,
18			const struct nft_expr *expr,
19			const struct nft_data **data);
20
21int nft_reject_init(const struct nft_ctx *ctx,
22		    const struct nft_expr *expr,
23		    const struct nlattr * const tb[]);
24
25int nft_reject_dump(struct sk_buff *skb,
26		    const struct nft_expr *expr, bool reset);
27
28int nft_reject_icmp_code(u8 code);
29int nft_reject_icmpv6_code(u8 code);
30
31#endif
32