netfilter: nft_reject: introduce icmp code abstraction for inet and bridge
[GitHub/exynos8895/android_kernel_samsung_universal8895.git] / include / uapi / linux / netfilter / nf_tables.h
index b72ccfeaf86527e12b61230597798d1cb902f949..c26df6787fb075a4d2317a9d9e8e897813df8e0f 100644 (file)
@@ -749,12 +749,33 @@ enum nft_queue_attributes {
  *
  * @NFT_REJECT_ICMP_UNREACH: reject using ICMP unreachable
  * @NFT_REJECT_TCP_RST: reject using TCP RST
+ * @NFT_REJECT_ICMPX_UNREACH: abstracted ICMP unreachable for bridge and inet
  */
 enum nft_reject_types {
        NFT_REJECT_ICMP_UNREACH,
        NFT_REJECT_TCP_RST,
+       NFT_REJECT_ICMPX_UNREACH,
 };
 
+/**
+ * enum nft_reject_code - Generic reject codes for IPv4/IPv6
+ *
+ * @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: administratively prohibited
+ *
+ * These codes are mapped to real ICMP and ICMPv6 codes.
+ */
+enum nft_reject_inet_code {
+       NFT_REJECT_ICMPX_NO_ROUTE       = 0,
+       NFT_REJECT_ICMPX_PORT_UNREACH,
+       NFT_REJECT_ICMPX_HOST_UNREACH,
+       NFT_REJECT_ICMPX_ADMIN_PROHIBITED,
+       __NFT_REJECT_ICMPX_MAX
+};
+#define NFT_REJECT_ICMPX_MAX   (__NFT_REJECT_ICMPX_MAX + 1)
+
 /**
  * enum nft_reject_attributes - nf_tables reject expression netlink attributes
  *