#
# IP netfilter configuration
#
mainmenu_option next_comment
comment '  IP: Netfilter Configuration'

tristate 'Connection tracking (required for masq/NAT)' CONFIG_IP_NF_CONNTRACK
if [ "$CONFIG_IP_NF_CONNTRACK" != "n" ]; then
  dep_tristate '  FTP protocol support' CONFIG_IP_NF_FTP $CONFIG_IP_NF_CONNTRACK
fi

if [ "$CONFIG_EXPERIMENTAL" = "y" -a "$CONFIG_NETLINK" = "y" ]; then
  tristate 'Userspace queueing via NETLINK (EXPERIMENTAL)' CONFIG_IP_NF_QUEUE
fi
tristate 'IP tables support (required for filtering/masq/NAT)' CONFIG_IP_NF_IPTABLES
if [ "$CONFIG_IP_NF_IPTABLES" != "n" ]; then
# The simple matches.
  dep_tristate '  limit match support' CONFIG_IP_NF_MATCH_LIMIT $CONFIG_IP_NF_IPTABLES
  dep_tristate '  MAC address match support' CONFIG_IP_NF_MATCH_MAC $CONFIG_IP_NF_IPTABLES
  dep_tristate '  netfilter MARK match support' CONFIG_IP_NF_MATCH_MARK $CONFIG_IP_NF_IPTABLES
  dep_tristate '  Multiple port match support' CONFIG_IP_NF_MATCH_MULTIPORT $CONFIG_IP_NF_IPTABLES
  dep_tristate '  TOS match support' CONFIG_IP_NF_MATCH_TOS $CONFIG_IP_NF_IPTABLES
  if [ "$CONFIG_IP_NF_CONNTRACK" != "n" ]; then
    dep_tristate '  Connection state match support' CONFIG_IP_NF_MATCH_STATE $CONFIG_IP_NF_CONNTRACK $CONFIG_IP_NF_IPTABLES 
  fi
  if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then
    dep_tristate '  Unclean match support (EXPERIMENTAL)' CONFIG_IP_NF_MATCH_UNCLEAN $CONFIG_IP_NF_IPTABLES
    dep_tristate '  Owner match support (EXPERIMENTAL)' CONFIG_IP_NF_MATCH_OWNER $CONFIG_IP_NF_IPTABLES
  fi
# The targets
  dep_tristate '  Packet filtering' CONFIG_IP_NF_FILTER $CONFIG_IP_NF_IPTABLES 
  if [ "$CONFIG_IP_NF_FILTER" != "n" ]; then
    dep_tristate '    REJECT target support' CONFIG_IP_NF_TARGET_REJECT $CONFIG_IP_NF_FILTER
    if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then
      dep_tristate '    MIRROR target support (EXPERIMENTAL)' CONFIG_IP_NF_TARGET_MIRROR $CONFIG_IP_NF_FILTER
    fi
  fi

  if [ "$CONFIG_IP_NF_CONNTRACK" != "n" ]; then
    dep_tristate '  Full NAT' CONFIG_IP_NF_NAT $CONFIG_IP_NF_IPTABLES 
    if [ "$CONFIG_IP_NF_NAT" != "n" ]; then
      define_bool CONFIG_IP_NF_NAT_NEEDED y
      dep_tristate '    MASQUERADE target support' CONFIG_IP_NF_TARGET_MASQUERADE $CONFIG_IP_NF_NAT
      dep_tristate '    REDIRECT target support' CONFIG_IP_NF_TARGET_REDIRECT $CONFIG_IP_NF_NAT
    fi
  fi

  dep_tristate '  Packet mangling' CONFIG_IP_NF_MANGLE $CONFIG_IP_NF_IPTABLES 
  if [ "$CONFIG_IP_NF_MANGLE" != "n" ]; then
    dep_tristate '    TOS target support' CONFIG_IP_NF_TARGET_TOS $CONFIG_IP_NF_MANGLE
    dep_tristate '    MARK target support' CONFIG_IP_NF_TARGET_MARK $CONFIG_IP_NF_MANGLE
  fi
  dep_tristate '  LOG target support' CONFIG_IP_NF_TARGET_LOG $CONFIG_IP_NF_IPTABLES
fi

# Backwards compatibility modules: only if you don't build in the others.
if [ "$CONFIG_IP_NF_CONNTRACK" != "y" ]; then
  if [ "$CONFIG_IP_NF_IPTABLES" != "y" ]; then
    tristate 'ipchains (2.2-style) support' CONFIG_IP_NF_COMPAT_IPCHAINS
    if [ "$CONFIG_IP_NF_COMPAT_IPCHAINS" != "n" ]; then
      define_bool CONFIG_IP_NF_NAT_NEEDED y
    fi
    if [ "$CONFIG_IP_NF_COMPAT_IPCHAINS" != "y" ]; then
      tristate 'ipfwadm (2.0-style) support' CONFIG_IP_NF_COMPAT_IPFWADM
      if [ "$CONFIG_IP_NF_COMPAT_IPFWADM" != "n" ]; then
	define_bool CONFIG_IP_NF_NAT_NEEDED y
      fi
    fi
  fi
fi
endmenu
