|
@@ -68,4 +68,19 @@ static inline struct nf_conn_nat *nfct_nat(const struct nf_conn *ct)
|
|
|
#endif
|
|
|
}
|
|
|
|
|
|
+static inline bool nf_nat_oif_changed(unsigned int hooknum,
|
|
|
+ enum ip_conntrack_info ctinfo,
|
|
|
+ struct nf_conn_nat *nat,
|
|
|
+ const struct net_device *out)
|
|
|
+{
|
|
|
+#if IS_ENABLED(CONFIG_IP_NF_TARGET_MASQUERADE) || \
|
|
|
+ IS_ENABLED(CONFIG_IP6_NF_TARGET_MASQUERADE)
|
|
|
+ return nat->masq_index && hooknum == NF_INET_POST_ROUTING &&
|
|
|
+ CTINFO2DIR(ctinfo) == IP_CT_DIR_ORIGINAL &&
|
|
|
+ nat->masq_index != out->ifindex;
|
|
|
+#else
|
|
|
+ return false;
|
|
|
+#endif
|
|
|
+}
|
|
|
+
|
|
|
#endif
|