1665b757809844950b277756bd2249ad7acbe443fPatrick McHardy/*
2665b757809844950b277756bd2249ad7acbe443fPatrick McHardy * lib/netfilter/netfilter.c    Netfilter Generic Functions
3665b757809844950b277756bd2249ad7acbe443fPatrick McHardy *
4665b757809844950b277756bd2249ad7acbe443fPatrick McHardy *	This library is free software; you can redistribute it and/or
5665b757809844950b277756bd2249ad7acbe443fPatrick McHardy *	modify it under the terms of the GNU Lesser General Public
6665b757809844950b277756bd2249ad7acbe443fPatrick McHardy *	License as published by the Free Software Foundation version 2.1
7665b757809844950b277756bd2249ad7acbe443fPatrick McHardy *	of the License.
8665b757809844950b277756bd2249ad7acbe443fPatrick McHardy *
9665b757809844950b277756bd2249ad7acbe443fPatrick McHardy * Copyright (c) 2008 Patrick McHardy <kaber@trash.net>
10665b757809844950b277756bd2249ad7acbe443fPatrick McHardy */
11665b757809844950b277756bd2249ad7acbe443fPatrick McHardy
12665b757809844950b277756bd2249ad7acbe443fPatrick McHardy#include <netlink-local.h>
13665b757809844950b277756bd2249ad7acbe443fPatrick McHardy#include <netlink/netfilter/netfilter.h>
14665b757809844950b277756bd2249ad7acbe443fPatrick McHardy#include <linux/netfilter.h>
15665b757809844950b277756bd2249ad7acbe443fPatrick McHardy
16665b757809844950b277756bd2249ad7acbe443fPatrick McHardystatic struct trans_tbl nfnl_verdicts[] = {
17665b757809844950b277756bd2249ad7acbe443fPatrick McHardy	__ADD(NF_DROP,		NF_DROP)
18665b757809844950b277756bd2249ad7acbe443fPatrick McHardy	__ADD(NF_ACCEPT,	NF_ACCEPT)
19665b757809844950b277756bd2249ad7acbe443fPatrick McHardy	__ADD(NF_STOLEN,	NF_STOLEN)
20665b757809844950b277756bd2249ad7acbe443fPatrick McHardy	__ADD(NF_QUEUE,		NF_QUEUE)
21665b757809844950b277756bd2249ad7acbe443fPatrick McHardy	__ADD(NF_REPEAT,	NF_REPEAT)
22665b757809844950b277756bd2249ad7acbe443fPatrick McHardy	__ADD(NF_STOP,		NF_STOP)
23665b757809844950b277756bd2249ad7acbe443fPatrick McHardy};
24665b757809844950b277756bd2249ad7acbe443fPatrick McHardy
25665b757809844950b277756bd2249ad7acbe443fPatrick McHardychar *nfnl_verdict2str(unsigned int verdict, char *buf, size_t len)
26665b757809844950b277756bd2249ad7acbe443fPatrick McHardy{
27665b757809844950b277756bd2249ad7acbe443fPatrick McHardy	return __type2str(verdict, buf, len, nfnl_verdicts,
28665b757809844950b277756bd2249ad7acbe443fPatrick McHardy			  ARRAY_SIZE(nfnl_verdicts));
29665b757809844950b277756bd2249ad7acbe443fPatrick McHardy}
30665b757809844950b277756bd2249ad7acbe443fPatrick McHardy
31665b757809844950b277756bd2249ad7acbe443fPatrick McHardyunsigned int nfnl_str2verdict(const char *name)
32665b757809844950b277756bd2249ad7acbe443fPatrick McHardy{
33665b757809844950b277756bd2249ad7acbe443fPatrick McHardy	return __str2type(name, nfnl_verdicts, ARRAY_SIZE(nfnl_verdicts));
34665b757809844950b277756bd2249ad7acbe443fPatrick McHardy}
35665b757809844950b277756bd2249ad7acbe443fPatrick McHardy
36665b757809844950b277756bd2249ad7acbe443fPatrick McHardystatic struct trans_tbl nfnl_inet_hooks[] = {
37665b757809844950b277756bd2249ad7acbe443fPatrick McHardy	__ADD(NF_INET_PRE_ROUTING,	NF_INET_PREROUTING)
38665b757809844950b277756bd2249ad7acbe443fPatrick McHardy	__ADD(NF_INET_LOCAL_IN,		NF_INET_LOCAL_IN)
39665b757809844950b277756bd2249ad7acbe443fPatrick McHardy	__ADD(NF_INET_FORWARD,		NF_INET_FORWARD)
40665b757809844950b277756bd2249ad7acbe443fPatrick McHardy	__ADD(NF_INET_LOCAL_OUT,	NF_INET_LOCAL_OUT)
41665b757809844950b277756bd2249ad7acbe443fPatrick McHardy	__ADD(NF_INET_POST_ROUTING,	NF_INET_POST_ROUTING)
42665b757809844950b277756bd2249ad7acbe443fPatrick McHardy};
43665b757809844950b277756bd2249ad7acbe443fPatrick McHardy
44665b757809844950b277756bd2249ad7acbe443fPatrick McHardychar *nfnl_inet_hook2str(unsigned int hook, char *buf, size_t len)
45665b757809844950b277756bd2249ad7acbe443fPatrick McHardy{
46665b757809844950b277756bd2249ad7acbe443fPatrick McHardy	return __type2str(hook, buf, len, nfnl_inet_hooks,
47665b757809844950b277756bd2249ad7acbe443fPatrick McHardy			  ARRAY_SIZE(nfnl_inet_hooks));
48665b757809844950b277756bd2249ad7acbe443fPatrick McHardy}
49665b757809844950b277756bd2249ad7acbe443fPatrick McHardy
50665b757809844950b277756bd2249ad7acbe443fPatrick McHardyunsigned int nfnl_str2inet_hook(const char *name)
51665b757809844950b277756bd2249ad7acbe443fPatrick McHardy{
52665b757809844950b277756bd2249ad7acbe443fPatrick McHardy	return __str2type(name, nfnl_inet_hooks, ARRAY_SIZE(nfnl_inet_hooks));
53665b757809844950b277756bd2249ad7acbe443fPatrick McHardy}
54