# SPDX-License-Identifier: GPL-2.0
netfilter-objs := core.o nf_log.o nf_queue.o nf_sockopt.o utils.o
nf_conntrack-y := nf_conntrack_core.o nf_conntrack_standalone.o nf_conntrack_expect.o nf_conntrack_helper.o \
nf_conntrack_proto.o nf_conntrack_proto_generic.o nf_conntrack_proto_tcp.o nf_conntrack_proto_udp.o \
nf_conntrack_proto_icmp.o \
nf_conntrack_extend.o nf_conntrack_acct.o nf_conntrack_seqadj.o
nf_conntrack-$(subst m,y,$([31mCONFIG_IPV6[0m)) += nf_conntrack_proto_icmpv6.o
nf_conntrack-$([31mCONFIG_NF_CONNTRACK_TIMEOUT[0m) += nf_conntrack_timeout.o
nf_conntrack-$([31mCONFIG_NF_CONNTRACK_TIMESTAMP[0m) += nf_conntrack_timestamp.o
nf_conntrack-$([31mCONFIG_NF_CONNTRACK_EVENTS[0m) += nf_conntrack_ecache.o
nf_conntrack-$([31mCONFIG_NF_CONNTRACK_LABELS[0m) += nf_conntrack_labels.o
nf_conntrack-$([31mCONFIG_NF_CT_PROTO_DCCP[0m) += nf_conntrack_proto_dccp.o
nf_conntrack-$([31mCONFIG_NF_CT_PROTO_SCTP[0m) += nf_conntrack_proto_sctp.o
nf_conntrack-$([31mCONFIG_NF_CT_PROTO_GRE[0m) += nf_conntrack_proto_gre.o
obj-$([31mCONFIG_NETFILTER[0m) = netfilter.o
obj-$([31mCONFIG_NETFILTER_NETLINK[0m) += nfnetlink.o
obj-$([31mCONFIG_NETFILTER_NETLINK_ACCT[0m) += nfnetlink_acct.o
obj-$([31mCONFIG_NETFILTER_NETLINK_QUEUE[0m) += nfnetlink_queue.o
obj-$([31mCONFIG_NETFILTER_NETLINK_LOG[0m) += nfnetlink_log.o
obj-$([31mCONFIG_NETFILTER_NETLINK_OSF[0m) += nfnetlink_osf.o
# connection tracking
obj-$([31mCONFIG_NF_CONNTRACK[0m) += nf_conntrack.o
# netlink interface for nf_conntrack
obj-$([31mCONFIG_NF_CT_NETLINK[0m) += nf_conntrack_netlink.o
obj-$([31mCONFIG_NF_CT_NETLINK_TIMEOUT[0m) += nfnetlink_cttimeout.o
obj-$([31mCONFIG_NF_CT_NETLINK_HELPER[0m) += nfnetlink_cthelper.o
# connection tracking helpers
nf_conntrack_h323-objs := nf_conntrack_h323_main.o nf_conntrack_h323_asn1.o
obj-$([31mCONFIG_NF_CONNTRACK_AMANDA[0m) += nf_conntrack_amanda.o
obj-$([31mCONFIG_NF_CONNTRACK_FTP[0m) += nf_conntrack_ftp.o
obj-$([31mCONFIG_NF_CONNTRACK_H323[0m) += nf_conntrack_h323.o
obj-$([31mCONFIG_NF_CONNTRACK_IRC[0m) += nf_conntrack_irc.o
obj-$([31mCONFIG_NF_CONNTRACK_BROADCAST[0m) += nf_conntrack_broadcast.o
obj-$([31mCONFIG_NF_CONNTRACK_NETBIOS_NS[0m) += nf_conntrack_netbios_ns.o
obj-$([31mCONFIG_NF_CONNTRACK_SNMP[0m) += nf_conntrack_snmp.o
obj-$([31mCONFIG_NF_CONNTRACK_PPTP[0m) += nf_conntrack_pptp.o
obj-$([31mCONFIG_NF_CONNTRACK_SANE[0m) += nf_conntrack_sane.o
obj-$([31mCONFIG_NF_CONNTRACK_SIP[0m) += nf_conntrack_sip.o
obj-$([31mCONFIG_NF_CONNTRACK_TFTP[0m) += nf_conntrack_tftp.o
nf_nat-y := nf_nat_core.o nf_nat_proto.o nf_nat_helper.o
# generic transport layer logging
obj-$([31mCONFIG_NF_LOG_COMMON[0m) += nf_log_common.o
# packet logging for netdev family
obj-$([31mCONFIG_NF_LOG_NETDEV[0m) += nf_log_netdev.o
obj-$([31mCONFIG_NF_NAT[0m) += nf_nat.o
nf_nat-$([31mCONFIG_NF_NAT_REDIRECT[0m) += nf_nat_redirect.o
nf_nat-$([31mCONFIG_NF_NAT_MASQUERADE[0m) += nf_nat_masquerade.o
# NAT helpers
obj-$([31mCONFIG_NF_NAT_AMANDA[0m) += nf_nat_amanda.o
obj-$([31mCONFIG_NF_NAT_FTP[0m) += nf_nat_ftp.o
obj-$([31mCONFIG_NF_NAT_IRC[0m) += nf_nat_irc.o
obj-$([31mCONFIG_NF_NAT_SIP[0m) += nf_nat_sip.o
obj-$([31mCONFIG_NF_NAT_TFTP[0m) += nf_nat_tftp.o
# SYNPROXY
obj-$([31mCONFIG_NETFILTER_SYNPROXY[0m) += nf_synproxy_core.o
obj-$([31mCONFIG_NETFILTER_CONNCOUNT[0m) += nf_conncount.o
# generic packet duplication from netdev family
obj-$([31mCONFIG_NF_DUP_NETDEV[0m) += nf_dup_netdev.o
# nf_tables
nf_tables-objs := nf_tables_core.o nf_tables_api.o nft_chain_filter.o \
nf_tables_trace.o nft_immediate.o nft_cmp.o nft_range.o \
nft_bitwise.o nft_byteorder.o nft_payload.o nft_lookup.o \
nft_dynset.o nft_meta.o nft_rt.o nft_exthdr.o \
nft_chain_route.o nf_tables_offload.o
nf_tables_set-objs := nf_tables_set_core.o \
nft_set_hash.o nft_set_bitmap.o nft_set_rbtree.o
obj-$([31mCONFIG_NF_TABLES[0m) += nf_tables.o
obj-$([31mCONFIG_NF_TABLES_SET[0m) += nf_tables_set.o
obj-$([31mCONFIG_NFT_COMPAT[0m) += nft_compat.o
obj-$([31mCONFIG_NFT_CONNLIMIT[0m) += nft_connlimit.o
obj-$([31mCONFIG_NFT_NUMGEN[0m) += nft_numgen.o
obj-$([31mCONFIG_NFT_CT[0m) += nft_ct.o
obj-$([31mCONFIG_NFT_FLOW_OFFLOAD[0m) += nft_flow_offload.o
obj-$([31mCONFIG_NFT_LIMIT[0m) += nft_limit.o
obj-$([31mCONFIG_NFT_NAT[0m) += nft_nat.o
obj-$([31mCONFIG_NFT_OBJREF[0m) += nft_objref.o
obj-$([31mCONFIG_NFT_QUEUE[0m) += nft_queue.o
obj-$([31mCONFIG_NFT_QUOTA[0m) += nft_quota.o
obj-$([31mCONFIG_NFT_REJECT[0m) += nft_reject.o
obj-$([31mCONFIG_NFT_REJECT_INET[0m) += nft_reject_inet.o
obj-$([31mCONFIG_NFT_TUNNEL[0m) += nft_tunnel.o
obj-$([31mCONFIG_NFT_COUNTER[0m) += nft_counter.o
obj-$([31mCONFIG_NFT_LOG[0m) += nft_log.o
obj-$([31mCONFIG_NFT_MASQ[0m) += nft_masq.o
obj-$([31mCONFIG_NFT_REDIR[0m) += nft_redir.o
obj-$([31mCONFIG_NFT_HASH[0m) += nft_hash.o
obj-$([31mCONFIG_NFT_FIB[0m) += nft_fib.o
obj-$([31mCONFIG_NFT_FIB_INET[0m) += nft_fib_inet.o
obj-$([31mCONFIG_NFT_FIB_NETDEV[0m) += nft_fib_netdev.o
obj-$([31mCONFIG_NFT_SOCKET[0m) += nft_socket.o
obj-$([31mCONFIG_NFT_OSF[0m) += nft_osf.o
obj-$([31mCONFIG_NFT_TPROXY[0m) += nft_tproxy.o
obj-$([31mCONFIG_NFT_XFRM[0m) += nft_xfrm.o
obj-$([31mCONFIG_NFT_SYNPROXY[0m) += nft_synproxy.o
obj-$([31mCONFIG_NFT_NAT[0m) += nft_chain_nat.o
# nf_tables netdev
obj-$([31mCONFIG_NFT_DUP_NETDEV[0m) += nft_dup_netdev.o
obj-$([31mCONFIG_NFT_FWD_NETDEV[0m) += nft_fwd_netdev.o
# flow table infrastructure
obj-$([31mCONFIG_NF_FLOW_TABLE[0m) += nf_flow_table.o
nf_flow_table-objs := nf_flow_table_core.o nf_flow_table_ip.o
obj-$([31mCONFIG_NF_FLOW_TABLE_INET[0m) += nf_flow_table_inet.o
# generic X tables
obj-$([31mCONFIG_NETFILTER_XTABLES[0m) += x_tables.o xt_tcpudp.o
# combos
obj-$([31mCONFIG_NETFILTER_XT_MARK[0m) += xt_mark.o
obj-$([31mCONFIG_NETFILTER_XT_CONNMARK[0m) += xt_connmark.o
obj-$([31mCONFIG_NETFILTER_XT_SET[0m) += xt_set.o
obj-$([31mCONFIG_NETFILTER_XT_NAT[0m) += xt_nat.o
# targets
obj-$([31mCONFIG_NETFILTER_XT_TARGET_AUDIT[0m) += xt_AUDIT.o
obj-$([31mCONFIG_NETFILTER_XT_TARGET_CHECKSUM[0m) += xt_CHECKSUM.o
obj-$([31mCONFIG_NETFILTER_XT_TARGET_CLASSIFY[0m) += xt_CLASSIFY.o
obj-$([31mCONFIG_NETFILTER_XT_TARGET_CONNSECMARK[0m) += xt_CONNSECMARK.o
obj-$([31mCONFIG_NETFILTER_XT_TARGET_CT[0m) += xt_CT.o
obj-$([31mCONFIG_NETFILTER_XT_TARGET_DSCP[0m) += xt_DSCP.o
obj-$([31mCONFIG_NETFILTER_XT_TARGET_HL[0m) += xt_HL.o
obj-$([31mCONFIG_NETFILTER_XT_TARGET_HMARK[0m) += xt_HMARK.o
obj-$([31mCONFIG_NETFILTER_XT_TARGET_LED[0m) += xt_LED.o
obj-$([31mCONFIG_NETFILTER_XT_TARGET_LOG[0m) += xt_LOG.o
obj-$([31mCONFIG_NETFILTER_XT_TARGET_NETMAP[0m) += xt_NETMAP.o
obj-$([31mCONFIG_NETFILTER_XT_TARGET_NFLOG[0m) += xt_NFLOG.o
obj-$([31mCONFIG_NETFILTER_XT_TARGET_NFQUEUE[0m) += xt_NFQUEUE.o
obj-$([31mCONFIG_NETFILTER_XT_TARGET_RATEEST[0m) += xt_RATEEST.o
obj-$([31mCONFIG_NETFILTER_XT_TARGET_REDIRECT[0m) += xt_REDIRECT.o
obj-$([31mCONFIG_NETFILTER_XT_TARGET_MASQUERADE[0m) += xt_MASQUERADE.o
obj-$([31mCONFIG_NETFILTER_XT_TARGET_SECMARK[0m) += xt_SECMARK.o
obj-$([31mCONFIG_NETFILTER_XT_TARGET_TPROXY[0m) += xt_TPROXY.o
obj-$([31mCONFIG_NETFILTER_XT_TARGET_TCPMSS[0m) += xt_TCPMSS.o
obj-$([31mCONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP[0m) += xt_TCPOPTSTRIP.o
obj-$([31mCONFIG_NETFILTER_XT_TARGET_TEE[0m) += xt_TEE.o
obj-$([31mCONFIG_NETFILTER_XT_TARGET_TRACE[0m) += xt_TRACE.o
obj-$([31mCONFIG_NETFILTER_XT_TARGET_IDLETIMER[0m) += xt_IDLETIMER.o
# matches
obj-$([31mCONFIG_NETFILTER_XT_MATCH_ADDRTYPE[0m) += xt_addrtype.o
obj-$([31mCONFIG_NETFILTER_XT_MATCH_BPF[0m) += xt_bpf.o
obj-$([31mCONFIG_NETFILTER_XT_MATCH_CLUSTER[0m) += xt_cluster.o
obj-$([31mCONFIG_NETFILTER_XT_MATCH_COMMENT[0m) += xt_comment.o
obj-$([31mCONFIG_NETFILTER_XT_MATCH_CONNBYTES[0m) += xt_connbytes.o
obj-$([31mCONFIG_NETFILTER_XT_MATCH_CONNLABEL[0m) += xt_connlabel.o
obj-$([31mCONFIG_NETFILTER_XT_MATCH_CONNLIMIT[0m) += xt_connlimit.o
obj-$([31mCONFIG_NETFILTER_XT_MATCH_CONNTRACK[0m) += xt_conntrack.o
obj-$([31mCONFIG_NETFILTER_XT_MATCH_CPU[0m) += xt_cpu.o
obj-$([31mCONFIG_NETFILTER_XT_MATCH_DCCP[0m) += xt_dccp.o
obj-$([31mCONFIG_NETFILTER_XT_MATCH_DEVGROUP[0m) += xt_devgroup.o
obj-$([31mCONFIG_NETFILTER_XT_MATCH_DSCP[0m) += xt_dscp.o
obj-$([31mCONFIG_NETFILTER_XT_MATCH_ECN[0m) += xt_ecn.o
obj-$([31mCONFIG_NETFILTER_XT_MATCH_ESP[0m) += xt_esp.o
obj-$([31mCONFIG_NETFILTER_XT_MATCH_HASHLIMIT[0m) += xt_hashlimit.o
obj-$([31mCONFIG_NETFILTER_XT_MATCH_HELPER[0m) += xt_helper.o
obj-$([31mCONFIG_NETFILTER_XT_MATCH_HL[0m) += xt_hl.o
obj-$([31mCONFIG_NETFILTER_XT_MATCH_IPCOMP[0m) += xt_ipcomp.o
obj-$([31mCONFIG_NETFILTER_XT_MATCH_IPRANGE[0m) += xt_iprange.o
obj-$([31mCONFIG_NETFILTER_XT_MATCH_IPVS[0m) += xt_ipvs.o
obj-$([31mCONFIG_NETFILTER_XT_MATCH_L2TP[0m) += xt_l2tp.o
obj-$([31mCONFIG_NETFILTER_XT_MATCH_LENGTH[0m) += xt_length.o
obj-$([31mCONFIG_NETFILTER_XT_MATCH_LIMIT[0m) += xt_limit.o
obj-$([31mCONFIG_NETFILTER_XT_MATCH_MAC[0m) += xt_mac.o
obj-$([31mCONFIG_NETFILTER_XT_MATCH_MULTIPORT[0m) += xt_multiport.o
obj-$([31mCONFIG_NETFILTER_XT_MATCH_NFACCT[0m) += xt_nfacct.o
obj-$([31mCONFIG_NETFILTER_XT_MATCH_OSF[0m) += xt_osf.o
obj-$([31mCONFIG_NETFILTER_XT_MATCH_OWNER[0m) += xt_owner.o
obj-$([31mCONFIG_NETFILTER_XT_MATCH_CGROUP[0m) += xt_cgroup.o
obj-$([31mCONFIG_NETFILTER_XT_MATCH_PHYSDEV[0m) += xt_physdev.o
obj-$([31mCONFIG_NETFILTER_XT_MATCH_PKTTYPE[0m) += xt_pkttype.o
obj-$([31mCONFIG_NETFILTER_XT_MATCH_POLICY[0m) += xt_policy.o
obj-$([31mCONFIG_NETFILTER_XT_MATCH_QUOTA[0m) += xt_quota.o
obj-$([31mCONFIG_NETFILTER_XT_MATCH_RATEEST[0m) += xt_rateest.o
obj-$([31mCONFIG_NETFILTER_XT_MATCH_REALM[0m) += xt_realm.o
obj-$([31mCONFIG_NETFILTER_XT_MATCH_RECENT[0m) += xt_recent.o
obj-$([31mCONFIG_NETFILTER_XT_MATCH_SCTP[0m) += xt_sctp.o
obj-$([31mCONFIG_NETFILTER_XT_MATCH_SOCKET[0m) += xt_socket.o
obj-$([31mCONFIG_NETFILTER_XT_MATCH_STATE[0m) += xt_state.o
obj-$([31mCONFIG_NETFILTER_XT_MATCH_STATISTIC[0m) += xt_statistic.o
obj-$([31mCONFIG_NETFILTER_XT_MATCH_STRING[0m) += xt_string.o
obj-$([31mCONFIG_NETFILTER_XT_MATCH_TCPMSS[0m) += xt_tcpmss.o
obj-$([31mCONFIG_NETFILTER_XT_MATCH_TIME[0m) += xt_time.o
obj-$([31mCONFIG_NETFILTER_XT_MATCH_U32[0m) += xt_u32.o
# ipset
obj-$([31mCONFIG_IP_SET[0m) += ipset/
# IPVS
obj-$([31mCONFIG_IP_VS[0m) += ipvs/