netfilter: nft_reject: introduce icmp code abstraction for inet and bridge
authorPablo Neira Ayuso <pablo@netfilter.org>
Fri, 26 Sep 2014 12:35:14 +0000 (14:35 +0200)
committerPablo Neira Ayuso <pablo@netfilter.org>
Thu, 2 Oct 2014 16:29:57 +0000 (18:29 +0200)
commit51b0a5d8c21a91801bbef9bcc8639dc0b206c6cd
tree62255f89e7725a5173d4b4e4f002f114ad524dda
parent2c804d0f8fc7799981d9fdd8c88653541b28c1a7
netfilter: nft_reject: introduce icmp code abstraction for inet and bridge

This patch introduces the NFT_REJECT_ICMPX_UNREACH type which provides
an abstraction to the ICMP and ICMPv6 codes that you can use from the
inet and bridge tables, they are:

* NFT_REJECT_ICMPX_NO_ROUTE: no route to host - network unreachable
* NFT_REJECT_ICMPX_PORT_UNREACH: port unreachable
* NFT_REJECT_ICMPX_HOST_UNREACH: host unreachable
* NFT_REJECT_ICMPX_ADMIN_PROHIBITED: administratevely prohibited

You can still use the specific codes when restricting the rule to match
the corresponding layer 3 protocol.

I decided to not overload the existing NFT_REJECT_ICMP_UNREACH to have
different semantics depending on the table family and to allow the user
to specify ICMP family specific codes if they restrict it to the
corresponding family.

Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
include/net/netfilter/ipv4/nf_reject.h
include/net/netfilter/nft_reject.h
include/uapi/linux/netfilter/nf_tables.h
net/bridge/netfilter/nft_reject_bridge.c
net/ipv4/netfilter/nft_reject_ipv4.c
net/netfilter/nft_reject.c
net/netfilter/nft_reject_inet.c