Skip to contentSkip to conversation

uapi: ebtables: don't include linux/if.h

PATCH Applied Arturo Borrero Gonzalez 2 participants 3 messages Apr 8, 2015 – Apr 13, 2015

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 uapi: ebtables: don't include linux/if.h

From: Pablo Neira Ayuso <[email protected]>

linux/if.h creates conflicts in userspace with net/if.h

By using it here we force userspace to use linux/if.h while net/if.h may be needed.

---
 include/linux/netfilter_bridge/ebtables.h      |    3 ++-
 include/uapi/linux/netfilter_bridge/ebtables.h |    2 --
 2 files changed, 2 insertions(+), 3 deletions(-)
include/linux/netfilter_bridge/ebtables.h +2 -1
index 34e7a2b..f1bd396 100644
@@ -12,9 +12,10 @@
 #ifndef __LINUX_BRIDGE_EFF_H
 #define __LINUX_BRIDGE_EFF_H
 
+#include <linux/if.h>
+#include <linux/if_ether.h>
 #include <uapi/linux/netfilter_bridge/ebtables.h>
 
-
 /* return values for match() functions */
 #define EBT_MATCH 0
 #define EBT_NOMATCH 1
include/uapi/linux/netfilter_bridge/ebtables.h +0 -2
index ba99336..773dfe8 100644
@@ -12,9 +12,7 @@
 
 #ifndef _UAPI__LINUX_BRIDGE_EFF_H
 #define _UAPI__LINUX_BRIDGE_EFF_H
-#include <linux/if.h>
 #include <linux/netfilter_bridge.h>
-#include <linux/if_ether.h>
 
 #define EBT_TABLE_MAXNAMELEN 32
 #define EBT_CHAIN_MAXNAMELEN EBT_TABLE_MAXNAMELEN
#1 lore raw
Quoted 6 lines · Arturo Borrero Gonzalez

From: Pablo Neira Ayuso <[email protected]>

linux/if.h creates conflicts in userspace with net/if.h

By using it here we force userspace to use linux/if.h while net/if.h may be needed.

I'm going to add here that:

include/linux/netfilter_ipv4/ip_tables.h and
include/linux/netfilter_ipv6/ip6_tables.h

don't include linux/if.h and they also refer to IFNAMSIZ, so they are expecting userspace to include use net/if.h from the client program.

This has been causing us problems in the xt over nft layer.

If nobody objects, I'll push this to nf-next.

Quoted 38 lines
---
 include/linux/netfilter_bridge/ebtables.h      |    3 ++-
 include/uapi/linux/netfilter_bridge/ebtables.h |    2 --
 2 files changed, 2 insertions(+), 3 deletions(-)
include/linux/netfilter_bridge/ebtables.h +2 -1
index 34e7a2b..f1bd396 100644
@@ -12,9 +12,10 @@
 #ifndef __LINUX_BRIDGE_EFF_H
 #define __LINUX_BRIDGE_EFF_H
 
+#include <linux/if.h>
+#include <linux/if_ether.h>
 #include <uapi/linux/netfilter_bridge/ebtables.h>
 
-
 /* return values for match() functions */
 #define EBT_MATCH 0
 #define EBT_NOMATCH 1
include/uapi/linux/netfilter_bridge/ebtables.h +0 -2
index ba99336..773dfe8 100644
@@ -12,9 +12,7 @@
 
 #ifndef _UAPI__LINUX_BRIDGE_EFF_H
 #define _UAPI__LINUX_BRIDGE_EFF_H
-#include <linux/if.h>
 #include <linux/netfilter_bridge.h>
-#include <linux/if_ether.h>
 
 #define EBT_TABLE_MAXNAMELEN 32
 #define EBT_CHAIN_MAXNAMELEN EBT_TABLE_MAXNAMELEN
maintainer Applied
#2 lore raw
Quoted 8 lines · Pablo Neira Ayuso
Quoted 6 lines · Arturo Borrero Gonzalez

From: Pablo Neira Ayuso <[email protected]>

linux/if.h creates conflicts in userspace with net/if.h

By using it here we force userspace to use linux/if.h while net/if.h may be needed.

Quoted 7 lines

I'm going to add here that:

include/linux/netfilter_ipv4/ip_tables.h and
include/linux/netfilter_ipv6/ip6_tables.h

don't include linux/if.h and they also refer to IFNAMSIZ, so they are expecting userspace to include use net/if.h from the client program.

Applied, thanks Arturo.