All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] extensions: libipt_MASQUERADE: Add translation to nft
@ 2016-03-01 18:24 Shivani Bhardwaj
  0 siblings, 0 replies; only message in thread
From: Shivani Bhardwaj @ 2016-03-01 18:24 UTC (permalink / raw)
  To: netfilter-devel

Add translation for target MASQUERADE to nftables.
Full translation of this target awaits the support for --to-ports option.

Examples:

$ sudo iptables-translate -t nat -A POSTROUTING -o eth0 -j MASQUERADE
nft add rule ip nat POSTROUTING oifname eth0 counter masquerade

$ sudo iptables-translate -t nat -A POSTROUTING -j MASQUERADE --random
nft add rule ip nat POSTROUTING counter masquerade random

Signed-off-by: Shivani Bhardwaj <shivanib134@gmail.com>
---
 extensions/libipt_MASQUERADE.c | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

diff --git a/extensions/libipt_MASQUERADE.c b/extensions/libipt_MASQUERADE.c
index ea07445..1dc8853 100644
--- a/extensions/libipt_MASQUERADE.c
+++ b/extensions/libipt_MASQUERADE.c
@@ -134,6 +134,22 @@ MASQUERADE_save(const void *ip, const struct xt_entry_target *target)
 		printf(" --random");
 }
 
+static int
+MASQUERADE_xlate(const struct xt_entry_target *target,
+		 struct xt_xlate *xl, int numeric)
+{
+	const struct nf_nat_ipv4_multi_range_compat *mr =
+					(const void *)target->data;
+	const struct nf_nat_ipv4_range *r = &mr->range[0];
+
+	xt_xlate_add(xl, "masquerade ");
+
+	if (r->flags & NF_NAT_RANGE_PROTO_RANDOM)
+		xt_xlate_add(xl, "random ");
+
+	return 1;
+}
+
 static struct xtables_target masquerade_tg_reg = {
 	.name		= "MASQUERADE",
 	.version	= XTABLES_VERSION,
@@ -146,6 +162,7 @@ static struct xtables_target masquerade_tg_reg = {
 	.print		= MASQUERADE_print,
 	.save		= MASQUERADE_save,
 	.x6_options	= MASQUERADE_opts,
+	.xlate		= MASQUERADE_xlate,
 };
 
 void _init(void)
-- 
1.9.1


^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2016-03-01 18:24 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-03-01 18:24 [PATCH] extensions: libipt_MASQUERADE: Add translation to nft Shivani Bhardwaj

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.