extensions: collapse registration structures

There are no different code paths between IPV4 and IPV6, so
data can be consolidated here.

   text    data     bss     dec     hex filename
 243757   12212    2576  258545   3f1f1 ip6tables-static[before.i586]
 243613    9428    2576  255617   3e681 ip6tables-static[after.i586]
   -144   -2784

Signed-off-by: Jan Engelhardt <jengelh@medozas.de>
diff --git a/extensions/libxt_CONNMARK.c b/extensions/libxt_CONNMARK.c
index 6e42898..5e9c374 100644
--- a/extensions/libxt_CONNMARK.c
+++ b/extensions/libxt_CONNMARK.c
@@ -399,23 +399,7 @@
 }
 
 static struct xtables_target connmark_target = {
-	.family		= NFPROTO_IPV4,
-	.name		= "CONNMARK",
-	.revision	= 0,
-	.version	= XTABLES_VERSION,
-	.size		= XT_ALIGN(sizeof(struct xt_connmark_target_info)),
-	.userspacesize	= XT_ALIGN(sizeof(struct xt_connmark_target_info)),
-	.help		= CONNMARK_help,
-	.init           = CONNMARK_init,
-	.parse		= CONNMARK_parse,
-	.final_check	= connmark_tg_check,
-	.print		= CONNMARK_print,
-	.save		= CONNMARK_save,
-	.extra_opts	= CONNMARK_opts,
-};
-
-static struct xtables_target connmark_target6 = {
-	.family		= NFPROTO_IPV6,
+	.family		= NFPROTO_UNSPEC,
 	.name		= "CONNMARK",
 	.revision	= 0,
 	.version	= XTABLES_VERSION,
@@ -434,23 +418,7 @@
 	.version        = XTABLES_VERSION,
 	.name           = "CONNMARK",
 	.revision       = 1,
-	.family         = NFPROTO_IPV4,
-	.size           = XT_ALIGN(sizeof(struct xt_connmark_tginfo1)),
-	.userspacesize  = XT_ALIGN(sizeof(struct xt_connmark_tginfo1)),
-	.help           = connmark_tg_help,
-	.init           = connmark_tg_init,
-	.parse          = connmark_tg_parse,
-	.final_check    = connmark_tg_check,
-	.print          = connmark_tg_print,
-	.save           = connmark_tg_save,
-	.extra_opts     = connmark_tg_opts,
-};
-
-static struct xtables_target connmark_tg6_reg = {
-	.version        = XTABLES_VERSION,
-	.name           = "CONNMARK",
-	.revision       = 1,
-	.family         = NFPROTO_IPV6,
+	.family         = NFPROTO_UNSPEC,
 	.size           = XT_ALIGN(sizeof(struct xt_connmark_tginfo1)),
 	.userspacesize  = XT_ALIGN(sizeof(struct xt_connmark_tginfo1)),
 	.help           = connmark_tg_help,
@@ -465,7 +433,5 @@
 void _init(void)
 {
 	xtables_register_target(&connmark_target);
-	xtables_register_target(&connmark_target6);
 	xtables_register_target(&connmark_tg_reg);
-	xtables_register_target(&connmark_tg6_reg);
 }
diff --git a/extensions/libxt_CONNSECMARK.c b/extensions/libxt_CONNSECMARK.c
index 11ec01a..d95339f 100644
--- a/extensions/libxt_CONNSECMARK.c
+++ b/extensions/libxt_CONNSECMARK.c
@@ -107,22 +107,7 @@
 }
 
 static struct xtables_target connsecmark_target = {
-	.family		= NFPROTO_IPV4,
-	.name		= "CONNSECMARK",
-	.version	= XTABLES_VERSION,
-	.revision	= 0,
-	.size		= XT_ALIGN(sizeof(struct xt_connsecmark_target_info)),
-	.userspacesize	= XT_ALIGN(sizeof(struct xt_connsecmark_target_info)),
-	.parse		= CONNSECMARK_parse,
-	.help		= CONNSECMARK_help,
-	.final_check	= CONNSECMARK_check,
-	.print		= CONNSECMARK_print,
-	.save		= CONNSECMARK_save,
-	.extra_opts	= CONNSECMARK_opts,
-};
-
-static struct xtables_target connsecmark_target6 = {
-	.family		= NFPROTO_IPV6,
+	.family		= NFPROTO_UNSPEC,
 	.name		= "CONNSECMARK",
 	.version	= XTABLES_VERSION,
 	.revision	= 0,
@@ -139,5 +124,4 @@
 void _init(void)
 {
 	xtables_register_target(&connsecmark_target);
-	xtables_register_target(&connsecmark_target6);
 }
diff --git a/extensions/libxt_DSCP.c b/extensions/libxt_DSCP.c
index ddb9c99..82ac10c 100644
--- a/extensions/libxt_DSCP.c
+++ b/extensions/libxt_DSCP.c
@@ -130,21 +130,7 @@
 }
 
 static struct xtables_target dscp_target = {
-	.family		= NFPROTO_IPV4,
-	.name		= "DSCP",
-	.version	= XTABLES_VERSION,
-	.size		= XT_ALIGN(sizeof(struct xt_DSCP_info)),
-	.userspacesize	= XT_ALIGN(sizeof(struct xt_DSCP_info)),
-	.help		= DSCP_help,
-	.parse		= DSCP_parse,
-	.final_check	= DSCP_check,
-	.print		= DSCP_print,
-	.save		= DSCP_save,
-	.extra_opts	= DSCP_opts,
-};
-
-static struct xtables_target dscp_target6 = {
-	.family		= NFPROTO_IPV6,
+	.family		= NFPROTO_UNSPEC,
 	.name		= "DSCP",
 	.version	= XTABLES_VERSION,
 	.size		= XT_ALIGN(sizeof(struct xt_DSCP_info)),
@@ -160,5 +146,4 @@
 void _init(void)
 {
 	xtables_register_target(&dscp_target);
-	xtables_register_target(&dscp_target6);
 }
diff --git a/extensions/libxt_MARK.c b/extensions/libxt_MARK.c
index ff48a76..cab052b 100644
--- a/extensions/libxt_MARK.c
+++ b/extensions/libxt_MARK.c
@@ -278,7 +278,7 @@
 }
 
 static struct xtables_target mark_target_v0 = {
-	.family		= NFPROTO_IPV4,
+	.family		= NFPROTO_UNSPEC,
 	.name		= "MARK",
 	.version	= XTABLES_VERSION,
 	.revision	= 0,
@@ -307,21 +307,6 @@
 	.extra_opts	= MARK_opts,
 };
 
-static struct xtables_target mark_target6_v0 = {
-	.family		= NFPROTO_IPV6,
-	.name		= "MARK",
-	.version	= XTABLES_VERSION,
-	.revision	= 0,
-	.size		= XT_ALIGN(sizeof(struct xt_mark_target_info)),
-	.userspacesize	= XT_ALIGN(sizeof(struct xt_mark_target_info)),
-	.help		= MARK_help,
-	.parse		= MARK_parse_v0,
-	.final_check	= MARK_check,
-	.print		= MARK_print_v0,
-	.save		= MARK_save_v0,
-	.extra_opts	= MARK_opts,
-};
-
 static struct xtables_target mark_tg_reg_v2 = {
 	.version       = XTABLES_VERSION,
 	.name          = "MARK",
@@ -341,6 +326,5 @@
 {
 	xtables_register_target(&mark_target_v0);
 	xtables_register_target(&mark_target_v1);
-	xtables_register_target(&mark_target6_v0);
 	xtables_register_target(&mark_tg_reg_v2);
 }
diff --git a/extensions/libxt_NFLOG.c b/extensions/libxt_NFLOG.c
index 007c7b4..0768e88 100644
--- a/extensions/libxt_NFLOG.c
+++ b/extensions/libxt_NFLOG.c
@@ -139,21 +139,7 @@
 }
 
 static struct xtables_target nflog_target = {
-	.family		= NFPROTO_IPV4,
-	.name		= "NFLOG",
-	.version	= XTABLES_VERSION,
-	.size		= XT_ALIGN(sizeof(struct xt_nflog_info)),
-	.userspacesize	= XT_ALIGN(sizeof(struct xt_nflog_info)),
-	.help		= NFLOG_help,
-	.init		= NFLOG_init,
-	.parse		= NFLOG_parse,
-	.print		= NFLOG_print,
-	.save		= NFLOG_save,
-	.extra_opts	= NFLOG_opts,
-};
-
-static struct xtables_target nflog_target6 = {
-	.family		= NFPROTO_IPV6,
+	.family		= NFPROTO_UNSPEC,
 	.name		= "NFLOG",
 	.version	= XTABLES_VERSION,
 	.size		= XT_ALIGN(sizeof(struct xt_nflog_info)),
@@ -169,5 +155,4 @@
 void _init(void)
 {
 	xtables_register_target(&nflog_target);
-	xtables_register_target(&nflog_target6);
 }
diff --git a/extensions/libxt_NFQUEUE.c b/extensions/libxt_NFQUEUE.c
index 3ca2239..53ecf1c 100644
--- a/extensions/libxt_NFQUEUE.c
+++ b/extensions/libxt_NFQUEUE.c
@@ -78,7 +78,7 @@
 }
 
 static struct xtables_target nfqueue_target = {
-	.family		= NFPROTO_IPV4,
+	.family		= NFPROTO_UNSPEC,
 	.name		= "NFQUEUE",
 	.version	= XTABLES_VERSION,
 	.size		= XT_ALIGN(sizeof(struct xt_NFQ_info)),
@@ -90,21 +90,7 @@
 	.extra_opts	= NFQUEUE_opts
 };
 
-static struct xtables_target nfqueue_target6 = {
-	.family		= NFPROTO_IPV6,
-	.name		= "NFQUEUE",
-	.version	= XTABLES_VERSION,
-	.size		= XT_ALIGN(sizeof(struct xt_NFQ_info)),
-	.userspacesize	= XT_ALIGN(sizeof(struct xt_NFQ_info)),
-	.help		= NFQUEUE_help,
-	.parse		= NFQUEUE_parse,
-	.print		= NFQUEUE_print,
-	.save		= NFQUEUE_save,
-	.extra_opts	= NFQUEUE_opts,
-};
-
 void _init(void)
 {
 	xtables_register_target(&nfqueue_target);
-	xtables_register_target(&nfqueue_target6);
 }
diff --git a/extensions/libxt_NOTRACK.c b/extensions/libxt_NOTRACK.c
index ef26654..d997d84 100644
--- a/extensions/libxt_NOTRACK.c
+++ b/extensions/libxt_NOTRACK.c
@@ -20,17 +20,7 @@
 }
 
 static struct xtables_target notrack_target = {
-	.family		= NFPROTO_IPV4,
-	.name		= "NOTRACK",
-	.version	= XTABLES_VERSION,
-	.size		= XT_ALIGN(0),
-	.userspacesize	= XT_ALIGN(0),
-	.help		= NOTRACK_help,
-	.parse		= NOTRACK_parse,
-};
-
-static struct xtables_target notrack_target6 = {
-	.family		= NFPROTO_IPV6,
+	.family		= NFPROTO_UNSPEC,
 	.name		= "NOTRACK",
 	.version	= XTABLES_VERSION,
 	.size		= XT_ALIGN(0),
@@ -42,5 +32,4 @@
 void _init(void)
 {
 	xtables_register_target(&notrack_target);
-	xtables_register_target(&notrack_target6);
 }
diff --git a/extensions/libxt_TCPOPTSTRIP.c b/extensions/libxt_TCPOPTSTRIP.c
index cf946fc..a063d0d 100644
--- a/extensions/libxt_TCPOPTSTRIP.c
+++ b/extensions/libxt_TCPOPTSTRIP.c
@@ -180,22 +180,7 @@
 static struct xtables_target tcpoptstrip_tg_reg = {
 	.version       = XTABLES_VERSION,
 	.name          = "TCPOPTSTRIP",
-	.family        = NFPROTO_IPV4,
-	.size          = XT_ALIGN(sizeof(struct xt_tcpoptstrip_target_info)),
-	.userspacesize = XT_ALIGN(sizeof(struct xt_tcpoptstrip_target_info)),
-	.help          = tcpoptstrip_tg_help,
-	.init          = tcpoptstrip_tg_init,
-	.parse         = tcpoptstrip_tg_parse,
-	.final_check   = tcpoptstrip_tg_check,
-	.print         = tcpoptstrip_tg_print,
-	.save          = tcpoptstrip_tg_save,
-	.extra_opts    = tcpoptstrip_tg_opts,
-};
-
-static struct xtables_target tcpoptstrip_tg6_reg = {
-	.version       = XTABLES_VERSION,
-	.name          = "TCPOPTSTRIP",
-	.family        = NFPROTO_IPV6,
+	.family        = NFPROTO_UNSPEC,
 	.size          = XT_ALIGN(sizeof(struct xt_tcpoptstrip_target_info)),
 	.userspacesize = XT_ALIGN(sizeof(struct xt_tcpoptstrip_target_info)),
 	.help          = tcpoptstrip_tg_help,
@@ -210,5 +195,4 @@
 void _init(void)
 {
 	xtables_register_target(&tcpoptstrip_tg_reg);
-	xtables_register_target(&tcpoptstrip_tg6_reg);
 }
diff --git a/extensions/libxt_TOS.c b/extensions/libxt_TOS.c
index c08f53b..e6382e1 100644
--- a/extensions/libxt_TOS.c
+++ b/extensions/libxt_TOS.c
@@ -224,22 +224,7 @@
 	.version       = XTABLES_VERSION,
 	.name          = "TOS",
 	.revision      = 1,
-	.family        = NFPROTO_IPV4,
-	.size          = XT_ALIGN(sizeof(struct xt_tos_target_info)),
-	.userspacesize = XT_ALIGN(sizeof(struct xt_tos_target_info)),
-	.help          = tos_tg_help,
-	.parse         = tos_tg_parse,
-	.final_check   = tos_tg_check,
-	.print         = tos_tg_print,
-	.save          = tos_tg_save,
-	.extra_opts    = tos_tg_opts,
-};
-
-static struct xtables_target tos_tg6_reg = {
-	.version       = XTABLES_VERSION,
-	.name          = "TOS",
-	.family        = NFPROTO_IPV6,
-	.revision      = 1,
+	.family        = NFPROTO_UNSPEC,
 	.size          = XT_ALIGN(sizeof(struct xt_tos_target_info)),
 	.userspacesize = XT_ALIGN(sizeof(struct xt_tos_target_info)),
 	.help          = tos_tg_help,
@@ -254,5 +239,4 @@
 {
 	xtables_register_target(&tos_tg_reg_v0);
 	xtables_register_target(&tos_tg_reg);
-	xtables_register_target(&tos_tg6_reg);
 }
diff --git a/extensions/libxt_comment.c b/extensions/libxt_comment.c
index 5f393bb..2e665b1 100644
--- a/extensions/libxt_comment.c
+++ b/extensions/libxt_comment.c
@@ -89,21 +89,7 @@
 }
 
 static struct xtables_match comment_match = {
-	.family		= NFPROTO_IPV4,
-	.name		= "comment",
-	.version	= XTABLES_VERSION,
-	.size		= XT_ALIGN(sizeof(struct xt_comment_info)),
-	.userspacesize	= XT_ALIGN(sizeof(struct xt_comment_info)),
-	.help		= comment_help,
-	.parse		= comment_parse,
-	.final_check	= comment_check,
-	.print 		= comment_print,
-	.save 		= comment_save,
-	.extra_opts	= comment_opts,
-};
-
-static struct xtables_match comment_match6 = {
-	.family		= NFPROTO_IPV6,
+	.family		= NFPROTO_UNSPEC,
 	.name		= "comment",
 	.version	= XTABLES_VERSION,
 	.size		= XT_ALIGN(sizeof(struct xt_comment_info)),
@@ -119,5 +105,4 @@
 void _init(void)
 {
 	xtables_register_match(&comment_match);
-	xtables_register_match(&comment_match6);
 }
diff --git a/extensions/libxt_connbytes.c b/extensions/libxt_connbytes.c
index c7bdff0..d6c3b1b 100644
--- a/extensions/libxt_connbytes.c
+++ b/extensions/libxt_connbytes.c
@@ -180,21 +180,7 @@
 }
 
 static struct xtables_match connbytes_match = {
-	.family		= NFPROTO_IPV4,
-	.name 		= "connbytes",
-	.version 	= XTABLES_VERSION,
-	.size 		= XT_ALIGN(sizeof(struct xt_connbytes_info)),
-	.userspacesize	= XT_ALIGN(sizeof(struct xt_connbytes_info)),
-	.help		= connbytes_help,
-	.parse		= connbytes_parse,
-	.final_check	= connbytes_check,
-	.print		= connbytes_print,
-	.save 		= connbytes_save,
-	.extra_opts	= connbytes_opts,
-};
-
-static struct xtables_match connbytes_match6 = {
-	.family		= NFPROTO_IPV6,
+	.family		= NFPROTO_UNSPEC,
 	.name 		= "connbytes",
 	.version 	= XTABLES_VERSION,
 	.size 		= XT_ALIGN(sizeof(struct xt_connbytes_info)),
@@ -210,5 +196,4 @@
 void _init(void)
 {
 	xtables_register_match(&connbytes_match);
-	xtables_register_match(&connbytes_match6);
 }
diff --git a/extensions/libxt_connmark.c b/extensions/libxt_connmark.c
index ce2002c..db7c3a1 100644
--- a/extensions/libxt_connmark.c
+++ b/extensions/libxt_connmark.c
@@ -164,22 +164,7 @@
 }
 
 static struct xtables_match connmark_mt_reg_v0 = {
-	.family		= NFPROTO_IPV4,
-	.name		= "connmark",
-	.revision	= 0,
-	.version	= XTABLES_VERSION,
-	.size		= XT_ALIGN(sizeof(struct xt_connmark_info)),
-	.userspacesize	= XT_ALIGN(sizeof(struct xt_connmark_info)),
-	.help		= connmark_mt_help,
-	.parse		= connmark_parse,
-	.final_check	= connmark_mt_check,
-	.print		= connmark_print,
-	.save		= connmark_save,
-	.extra_opts	= connmark_mt_opts,
-};
-
-static struct xtables_match connmark_mt6_reg_v0 = {
-	.family		= NFPROTO_IPV6,
+	.family		= NFPROTO_UNSPEC,
 	.name		= "connmark",
 	.revision	= 0,
 	.version	= XTABLES_VERSION,
@@ -197,22 +182,7 @@
 	.version        = XTABLES_VERSION,
 	.name           = "connmark",
 	.revision       = 1,
-	.family         = NFPROTO_IPV4,
-	.size           = XT_ALIGN(sizeof(struct xt_connmark_mtinfo1)),
-	.userspacesize  = XT_ALIGN(sizeof(struct xt_connmark_mtinfo1)),
-	.help           = connmark_mt_help,
-	.parse          = connmark_mt_parse,
-	.final_check    = connmark_mt_check,
-	.print          = connmark_mt_print,
-	.save           = connmark_mt_save,
-	.extra_opts     = connmark_mt_opts,
-};
-
-static struct xtables_match connmark_mt6_reg = {
-	.version        = XTABLES_VERSION,
-	.name           = "connmark",
-	.revision       = 1,
-	.family         = NFPROTO_IPV6,
+	.family         = NFPROTO_UNSPEC,
 	.size           = XT_ALIGN(sizeof(struct xt_connmark_mtinfo1)),
 	.userspacesize  = XT_ALIGN(sizeof(struct xt_connmark_mtinfo1)),
 	.help           = connmark_mt_help,
@@ -226,7 +196,5 @@
 void _init(void)
 {
 	xtables_register_match(&connmark_mt_reg_v0);
-	xtables_register_match(&connmark_mt6_reg_v0);
 	xtables_register_match(&connmark_mt_reg);
-	xtables_register_match(&connmark_mt6_reg);
 }
diff --git a/extensions/libxt_dccp.c b/extensions/libxt_dccp.c
index 7321145..ae23225 100644
--- a/extensions/libxt_dccp.c
+++ b/extensions/libxt_dccp.c
@@ -336,21 +336,7 @@
 
 static struct xtables_match dccp_match = {
 	.name		= "dccp",
-	.family		= NFPROTO_IPV4,
-	.version	= XTABLES_VERSION,
-	.size		= XT_ALIGN(sizeof(struct xt_dccp_info)),
-	.userspacesize	= XT_ALIGN(sizeof(struct xt_dccp_info)),
-	.help		= dccp_help,
-	.init		= dccp_init,
-	.parse		= dccp_parse,
-	.print		= dccp_print,
-	.save		= dccp_save,
-	.extra_opts	= dccp_opts,
-};
-
-static struct xtables_match dccp_match6 = {
-	.name		= "dccp",
-	.family		= NFPROTO_IPV6,
+	.family		= NFPROTO_UNSPEC,
 	.version	= XTABLES_VERSION,
 	.size		= XT_ALIGN(sizeof(struct xt_dccp_info)),
 	.userspacesize	= XT_ALIGN(sizeof(struct xt_dccp_info)),
@@ -365,5 +351,4 @@
 void _init(void)
 {
 	xtables_register_match(&dccp_match);
-	xtables_register_match(&dccp_match6);
 }
diff --git a/extensions/libxt_dscp.c b/extensions/libxt_dscp.c
index 62fa6af..306643e 100644
--- a/extensions/libxt_dscp.c
+++ b/extensions/libxt_dscp.c
@@ -131,21 +131,7 @@
 }
 
 static struct xtables_match dscp_match = {
-	.family		= NFPROTO_IPV4,
-	.name 		= "dscp",
-	.version 	= XTABLES_VERSION,
-	.size 		= XT_ALIGN(sizeof(struct xt_dscp_info)),
-	.userspacesize	= XT_ALIGN(sizeof(struct xt_dscp_info)),
-	.help		= dscp_help,
-	.parse		= dscp_parse,
-	.final_check	= dscp_check,
-	.print		= dscp_print,
-	.save		= dscp_save,
-	.extra_opts	= dscp_opts,
-};
-
-static struct xtables_match dscp_match6 = {
-	.family		= NFPROTO_IPV6,
+	.family		= NFPROTO_UNSPEC,
 	.name 		= "dscp",
 	.version 	= XTABLES_VERSION,
 	.size 		= XT_ALIGN(sizeof(struct xt_dscp_info)),
@@ -161,5 +147,4 @@
 void _init(void)
 {
 	xtables_register_match(&dscp_match);
-	xtables_register_match(&dscp_match6);
 }
diff --git a/extensions/libxt_esp.c b/extensions/libxt_esp.c
index 5769edb..89c3fb4 100644
--- a/extensions/libxt_esp.c
+++ b/extensions/libxt_esp.c
@@ -149,21 +149,7 @@
 }
 
 static struct xtables_match esp_match = {
-	.family		= NFPROTO_IPV4,
-	.name 		= "esp",
-	.version 	= XTABLES_VERSION,
-	.size		= XT_ALIGN(sizeof(struct xt_esp)),
-	.userspacesize	= XT_ALIGN(sizeof(struct xt_esp)),
-	.help		= esp_help,
-	.init		= esp_init,
-	.parse		= esp_parse,
-	.print		= esp_print,
-	.save		= esp_save,
-	.extra_opts	= esp_opts,
-};
-
-static struct xtables_match esp_match6 = {
-	.family		= NFPROTO_IPV6,
+	.family		= NFPROTO_UNSPEC,
 	.name 		= "esp",
 	.version 	= XTABLES_VERSION,
 	.size		= XT_ALIGN(sizeof(struct xt_esp)),
@@ -180,5 +166,4 @@
 _init(void)
 {
 	xtables_register_match(&esp_match);
-	xtables_register_match(&esp_match6);
 }
diff --git a/extensions/libxt_hashlimit.c b/extensions/libxt_hashlimit.c
index 84dd786..9d8c86a 100644
--- a/extensions/libxt_hashlimit.c
+++ b/extensions/libxt_hashlimit.c
@@ -660,23 +660,7 @@
 }
 
 static struct xtables_match hashlimit_match = {
-	.family		= NFPROTO_IPV4,
-	.name		= "hashlimit",
-	.version	= XTABLES_VERSION,
-	.revision	= 0,
-	.size		= XT_ALIGN(sizeof(struct xt_hashlimit_info)),
-	.userspacesize	= offsetof(struct xt_hashlimit_info, hinfo),
-	.help		= hashlimit_help,
-	.init		= hashlimit_init,
-	.parse		= hashlimit_parse,
-	.final_check	= hashlimit_check,
-	.print		= hashlimit_print,
-	.save		= hashlimit_save,
-	.extra_opts	= hashlimit_opts,
-};
-
-static struct xtables_match hashlimit_match6 = {
-	.family		= NFPROTO_IPV6,
+	.family		= NFPROTO_UNSPEC,
 	.name		= "hashlimit",
 	.version	= XTABLES_VERSION,
 	.revision	= 0,
@@ -726,7 +710,6 @@
 void _init(void)
 {
 	xtables_register_match(&hashlimit_match);
-	xtables_register_match(&hashlimit_match6);
 	xtables_register_match(&hashlimit_mt_reg);
 	xtables_register_match(&hashlimit_mt6_reg);
 }
diff --git a/extensions/libxt_helper.c b/extensions/libxt_helper.c
index 7b56bef..22c3113 100644
--- a/extensions/libxt_helper.c
+++ b/extensions/libxt_helper.c
@@ -69,20 +69,7 @@
 }
 
 static struct xtables_match helper_match = {
-	.family		= NFPROTO_IPV4,
-	.name		= "helper",
-	.version	= XTABLES_VERSION,
-	.size		= XT_ALIGN(sizeof(struct xt_helper_info)),
-	.help		= helper_help,
-	.parse		= helper_parse,
-	.final_check	= helper_check,
-	.print		= helper_print,
-	.save		= helper_save,
-	.extra_opts	= helper_opts,
-};
-
-static struct xtables_match helper_match6 = {
-	.family		= NFPROTO_IPV6,
+	.family		= NFPROTO_UNSPEC,
 	.name		= "helper",
 	.version	= XTABLES_VERSION,
 	.size		= XT_ALIGN(sizeof(struct xt_helper_info)),
@@ -97,5 +84,4 @@
 void _init(void)
 {
 	xtables_register_match(&helper_match);
-	xtables_register_match(&helper_match6);
 }
diff --git a/extensions/libxt_mac.c b/extensions/libxt_mac.c
index a57e341..449fff9 100644
--- a/extensions/libxt_mac.c
+++ b/extensions/libxt_mac.c
@@ -112,21 +112,7 @@
 }
 
 static struct xtables_match mac_match = {
-	.family		= NFPROTO_IPV4,
- 	.name		= "mac",
-	.version	= XTABLES_VERSION,
-	.size		= XT_ALIGN(sizeof(struct xt_mac_info)),
-	.userspacesize	= XT_ALIGN(sizeof(struct xt_mac_info)),
-	.help		= mac_help,
-	.parse		= mac_parse,
-	.final_check	= mac_check,
-	.print		= mac_print,
-	.save		= mac_save,
-	.extra_opts	= mac_opts,
-};
-
-static struct xtables_match mac_match6 = {
-	.family		= NFPROTO_IPV6,
+	.family		= NFPROTO_UNSPEC,
  	.name		= "mac",
 	.version	= XTABLES_VERSION,
 	.size		= XT_ALIGN(sizeof(struct xt_mac_info)),
@@ -142,5 +128,4 @@
 void _init(void)
 {
 	xtables_register_match(&mac_match);
-	xtables_register_match(&mac_match6);
 }
diff --git a/extensions/libxt_owner.c b/extensions/libxt_owner.c
index d27b3ae..f1d6b4a 100644
--- a/extensions/libxt_owner.c
+++ b/extensions/libxt_owner.c
@@ -567,22 +567,7 @@
 	.version       = XTABLES_VERSION,
 	.name          = "owner",
 	.revision      = 1,
-	.family        = NFPROTO_IPV4,
-	.size          = XT_ALIGN(sizeof(struct xt_owner_match_info)),
-	.userspacesize = XT_ALIGN(sizeof(struct xt_owner_match_info)),
-	.help          = owner_mt_help,
-	.parse         = owner_mt_parse,
-	.final_check   = owner_mt_check,
-	.print         = owner_mt_print,
-	.save          = owner_mt_save,
-	.extra_opts    = owner_mt_opts,
-};
-
-static struct xtables_match owner_mt6_reg = {
-	.version       = XTABLES_VERSION,
-	.name          = "owner",
-	.revision      = 1,
-	.family        = NFPROTO_IPV6,
+	.family        = NFPROTO_UNSPEC,
 	.size          = XT_ALIGN(sizeof(struct xt_owner_match_info)),
 	.userspacesize = XT_ALIGN(sizeof(struct xt_owner_match_info)),
 	.help          = owner_mt_help,
@@ -598,5 +583,4 @@
 	xtables_register_match(&owner_mt_reg_v0);
 	xtables_register_match(&owner_mt6_reg_v0);
 	xtables_register_match(&owner_mt_reg);
-	xtables_register_match(&owner_mt6_reg);
 }
diff --git a/extensions/libxt_physdev.c b/extensions/libxt_physdev.c
index 5522a32..74d311d 100644
--- a/extensions/libxt_physdev.c
+++ b/extensions/libxt_physdev.c
@@ -161,21 +161,7 @@
 }
 
 static struct xtables_match physdev_match = {
-	.family		= NFPROTO_IPV4,
-	.name		= "physdev",
-	.version	= XTABLES_VERSION,
-	.size		= XT_ALIGN(sizeof(struct xt_physdev_info)),
-	.userspacesize	= XT_ALIGN(sizeof(struct xt_physdev_info)),
-	.help		= physdev_help,
-	.parse		= physdev_parse,
-	.final_check	= physdev_check,
-	.print		= physdev_print,
-	.save		= physdev_save,
-	.extra_opts	= physdev_opts,
-};
-
-static struct xtables_match physdev_match6 = {
-	.family		= NFPROTO_IPV6,
+	.family		= NFPROTO_UNSPEC,
 	.name		= "physdev",
 	.version	= XTABLES_VERSION,
 	.size		= XT_ALIGN(sizeof(struct xt_physdev_info)),
@@ -191,5 +177,4 @@
 void _init(void)
 {
 	xtables_register_match(&physdev_match);
-	xtables_register_match(&physdev_match6);
 }
diff --git a/extensions/libxt_recent.c b/extensions/libxt_recent.c
index 47c35ff..d503685 100644
--- a/extensions/libxt_recent.c
+++ b/extensions/libxt_recent.c
@@ -215,7 +215,7 @@
 static struct xtables_match recent_mt_reg = {
     .name          = "recent",
     .version       = XTABLES_VERSION,
-    .family        = NFPROTO_IPV4,
+    .family        = NFPROTO_UNSPEC,
     .size          = XT_ALIGN(sizeof(struct xt_recent_mtinfo)),
     .userspacesize = XT_ALIGN(sizeof(struct xt_recent_mtinfo)),
     .help          = recent_help,
@@ -227,24 +227,7 @@
     .extra_opts    = recent_opts,
 };
 
-static struct xtables_match recent_mt6_reg = {
-	.version       = XTABLES_VERSION,
-	.name          = "recent",
-	.revision      = 0,
-	.family        = NFPROTO_IPV6,
-	.size          = XT_ALIGN(sizeof(struct xt_recent_mtinfo)),
-	.userspacesize = XT_ALIGN(sizeof(struct xt_recent_mtinfo)),
-	.help          = recent_help,
-	.init          = recent_init,
-	.parse         = recent_parse,
-	.final_check   = recent_check,
-	.print         = recent_print,
-	.save          = recent_save,
-	.extra_opts    = recent_opts,
-};
-
 void _init(void)
 {
 	xtables_register_match(&recent_mt_reg);
-	xtables_register_match(&recent_mt6_reg);
 }
diff --git a/extensions/libxt_sctp.c b/extensions/libxt_sctp.c
index 829eade..dfa72d3 100644
--- a/extensions/libxt_sctp.c
+++ b/extensions/libxt_sctp.c
@@ -496,21 +496,7 @@
 
 static struct xtables_match sctp_match = {
 	.name		= "sctp",
-	.family		= NFPROTO_IPV4,
-	.version	= XTABLES_VERSION,
-	.size		= XT_ALIGN(sizeof(struct xt_sctp_info)),
-	.userspacesize	= XT_ALIGN(sizeof(struct xt_sctp_info)),
-	.help		= sctp_help,
-	.init		= sctp_init,
-	.parse		= sctp_parse,
-	.print		= sctp_print,
-	.save		= sctp_save,
-	.extra_opts	= sctp_opts,
-};
-
-static struct xtables_match sctp_match6 = {
-	.name		= "sctp",
-	.family		= NFPROTO_IPV6,
+	.family		= NFPROTO_UNSPEC,
 	.version	= XTABLES_VERSION,
 	.size		= XT_ALIGN(sizeof(struct xt_sctp_info)),
 	.userspacesize	= XT_ALIGN(sizeof(struct xt_sctp_info)),
@@ -525,5 +511,4 @@
 void _init(void)
 {
 	xtables_register_match(&sctp_match);
-	xtables_register_match(&sctp_match6);
 }
diff --git a/extensions/libxt_state.c b/extensions/libxt_state.c
index 7387e26..c8a7454 100644
--- a/extensions/libxt_state.c
+++ b/extensions/libxt_state.c
@@ -139,21 +139,7 @@
 }
 
 static struct xtables_match state_match = { 
-	.family		= NFPROTO_IPV4,
-	.name		= "state",
-	.version	= XTABLES_VERSION,
-	.size		= XT_ALIGN(sizeof(struct xt_state_info)),
-	.userspacesize	= XT_ALIGN(sizeof(struct xt_state_info)),
-	.help		= state_help,
-	.parse		= state_parse,
-	.final_check	= state_final_check,
-	.print		= state_print,
-	.save		= state_save,
-	.extra_opts	= state_opts,
-};
-
-static struct xtables_match state_match6 = { 
-	.family		= NFPROTO_IPV6,
+	.family		= NFPROTO_UNSPEC,
 	.name		= "state",
 	.version	= XTABLES_VERSION,
 	.size		= XT_ALIGN(sizeof(struct xt_state_info)),
@@ -169,5 +155,4 @@
 void _init(void)
 {
 	xtables_register_match(&state_match);
-	xtables_register_match(&state_match6);
 }
diff --git a/extensions/libxt_tcp.c b/extensions/libxt_tcp.c
index 5ea9ebd..7abecc1 100644
--- a/extensions/libxt_tcp.c
+++ b/extensions/libxt_tcp.c
@@ -375,21 +375,7 @@
 }
 
 static struct xtables_match tcp_match = {
-	.family		= NFPROTO_IPV4,
-	.name		= "tcp",
-	.version	= XTABLES_VERSION,
-	.size		= XT_ALIGN(sizeof(struct xt_tcp)),
-	.userspacesize	= XT_ALIGN(sizeof(struct xt_tcp)),
-	.help		= tcp_help,
-	.init		= tcp_init,
-	.parse		= tcp_parse,
-	.print		= tcp_print,
-	.save		= tcp_save,
-	.extra_opts	= tcp_opts,
-};
-
-static struct xtables_match tcp_match6 = {
-	.family		= NFPROTO_IPV6,
+	.family		= NFPROTO_UNSPEC,
 	.name		= "tcp",
 	.version	= XTABLES_VERSION,
 	.size		= XT_ALIGN(sizeof(struct xt_tcp)),
@@ -406,5 +392,4 @@
 _init(void)
 {
 	xtables_register_match(&tcp_match);
-	xtables_register_match(&tcp_match6);
 }
diff --git a/extensions/libxt_tcpmss.c b/extensions/libxt_tcpmss.c
index 46529f9..36785a3 100644
--- a/extensions/libxt_tcpmss.c
+++ b/extensions/libxt_tcpmss.c
@@ -109,21 +109,7 @@
 }
 
 static struct xtables_match tcpmss_match = {
-	.family		= NFPROTO_IPV4,
-	.name		= "tcpmss",
-	.version	= XTABLES_VERSION,
-	.size		= XT_ALIGN(sizeof(struct xt_tcpmss_match_info)),
-	.userspacesize	= XT_ALIGN(sizeof(struct xt_tcpmss_match_info)),
-	.help		= tcpmss_help,
-	.parse		= tcpmss_parse,
-	.final_check	= tcpmss_check,
-	.print		= tcpmss_print,
-	.save		= tcpmss_save,
-	.extra_opts	= tcpmss_opts,
-};
-
-static struct xtables_match tcpmss_match6 = {
-	.family		= NFPROTO_IPV6,
+	.family		= NFPROTO_UNSPEC,
 	.name		= "tcpmss",
 	.version	= XTABLES_VERSION,
 	.size		= XT_ALIGN(sizeof(struct xt_tcpmss_match_info)),
@@ -139,5 +125,4 @@
 void _init(void)
 {
 	xtables_register_match(&tcpmss_match);
-	xtables_register_match(&tcpmss_match6);
 }
diff --git a/extensions/libxt_tos.c b/extensions/libxt_tos.c
index b810ea6..1f7b2cd 100644
--- a/extensions/libxt_tos.c
+++ b/extensions/libxt_tos.c
@@ -155,22 +155,7 @@
 static struct xtables_match tos_mt_reg = {
 	.version       = XTABLES_VERSION,
 	.name          = "tos",
-	.family        = NFPROTO_IPV4,
-	.revision      = 1,
-	.size          = XT_ALIGN(sizeof(struct xt_tos_match_info)),
-	.userspacesize = XT_ALIGN(sizeof(struct xt_tos_match_info)),
-	.help          = tos_mt_help,
-	.parse         = tos_mt_parse,
-	.final_check   = tos_mt_check,
-	.print         = tos_mt_print,
-	.save          = tos_mt_save,
-	.extra_opts    = tos_mt_opts,
-};
-
-static struct xtables_match tos_mt6_reg = {
-	.version       = XTABLES_VERSION,
-	.name          = "tos",
-	.family        = NFPROTO_IPV6,
+	.family        = NFPROTO_UNSPEC,
 	.revision      = 1,
 	.size          = XT_ALIGN(sizeof(struct xt_tos_match_info)),
 	.userspacesize = XT_ALIGN(sizeof(struct xt_tos_match_info)),
@@ -186,5 +171,4 @@
 {
 	xtables_register_match(&tos_mt_reg_v0);
 	xtables_register_match(&tos_mt_reg);
-	xtables_register_match(&tos_mt6_reg);
 }
diff --git a/extensions/libxt_udp.c b/extensions/libxt_udp.c
index 4b4e84f..bf0b34f 100644
--- a/extensions/libxt_udp.c
+++ b/extensions/libxt_udp.c
@@ -191,21 +191,7 @@
 }
 
 static struct xtables_match udp_match = {
-	.family		= NFPROTO_IPV4,
-	.name		= "udp",
-	.version	= XTABLES_VERSION,
-	.size		= XT_ALIGN(sizeof(struct xt_udp)),
-	.userspacesize	= XT_ALIGN(sizeof(struct xt_udp)),
-	.help		= udp_help,
-	.init		= udp_init,
-	.parse		= udp_parse,
-	.print		= udp_print,
-	.save		= udp_save,
-	.extra_opts	= udp_opts,
-};
-
-static struct xtables_match udp_match6 = {
-	.family		= NFPROTO_IPV6,
+	.family		= NFPROTO_UNSPEC,
 	.name		= "udp",
 	.version	= XTABLES_VERSION,
 	.size		= XT_ALIGN(sizeof(struct xt_udp)),
@@ -222,5 +208,4 @@
 _init(void)
 {
 	xtables_register_match(&udp_match);
-	xtables_register_match(&udp_match6);
 }