The IPVlan module currently depends on IPv6 and Netfilter.
Refactor the code to allow building IPVlan module regardless of the value of
CONFIG_IPV6 and CONFIG_NETFILTER.
Also change the dependency to CONFIG_NET_L3_MASTER_DEV into a select,
as compiling L3 Master device alone has no sense.

$ grep -wE 'CONFIG_(IPV6|NETFILTER|IPVLAN)' .config
CONFIG_IPV6=y
CONFIG_NETFILTER=y
CONFIG_IPVLAN=m
$ ll drivers/net/ipvlan/ipvlan.ko
48K drivers/net/ipvlan/ipvlan.ko

$ grep -wE 'CONFIG_(IPV6|NETFILTER|IPVLAN)' .config
# CONFIG_IPV6 is not set
CONFIG_NETFILTER=y
CONFIG_IPVLAN=m
$ ll drivers/net/ipvlan/ipvlan.ko
44K drivers/net/ipvlan/ipvlan.ko

$ grep -wE 'CONFIG_(IPV6|NETFILTER|IPVLAN)' .config
CONFIG_IPV6=m
# CONFIG_NETFILTER is not set
CONFIG_IPVLAN=m
$ ll drivers/net/ipvlan/ipvlan.ko
46K drivers/net/ipvlan/ipvlan.ko

$ grep -wE 'CONFIG_(IPV6|NETFILTER|IPVLAN)' .config
# CONFIG_IPV6 is not set
# CONFIG_NETFILTER is not set
CONFIG_IPVLAN=m
$ ll drivers/net/ipvlan/ipvlan.ko
43K drivers/net/ipvlan/ipvlan.ko

Matteo Croce (3):
  ipvlan: drop ipv6 dependency
  ipvlan: drop netfilter dependency
  ipvlan: selects master_l3 device instead of depending on it

 drivers/net/Kconfig              |  4 +-
 drivers/net/ipvlan/ipvlan.h      |  2 +
 drivers/net/ipvlan/ipvlan_core.c | 73 ++++++++++++++++++++++++++++---------
 drivers/net/ipvlan/ipvlan_main.c | 79 +++++++++++++++++++++++++++-------------
 4 files changed, 111 insertions(+), 47 deletions(-)

-- 
2.14.3

Reply via email to