15b1158e9SJozsef Kadlecsik #ifndef _NF_NAT_HELPER_H 25b1158e9SJozsef Kadlecsik #define _NF_NAT_HELPER_H 35b1158e9SJozsef Kadlecsik /* NAT protocol helper routines. */ 45b1158e9SJozsef Kadlecsik 55b1158e9SJozsef Kadlecsik #include <net/netfilter/nf_conntrack.h> 65b1158e9SJozsef Kadlecsik 75b1158e9SJozsef Kadlecsik struct sk_buff; 85b1158e9SJozsef Kadlecsik 95b1158e9SJozsef Kadlecsik /* These return true or false. */ 104e77be46SJoe Perches int __nf_nat_mangle_tcp_packet(struct sk_buff *skb, struct nf_conn *ct, 115b1158e9SJozsef Kadlecsik enum ip_conntrack_info ctinfo, 124e77be46SJoe Perches unsigned int protoff, unsigned int match_offset, 134e77be46SJoe Perches unsigned int match_len, const char *rep_buffer, 14010c0b9fSPatrick McHardy unsigned int rep_len, bool adjust); 15010c0b9fSPatrick McHardy 16010c0b9fSPatrick McHardy static inline int nf_nat_mangle_tcp_packet(struct sk_buff *skb, 17010c0b9fSPatrick McHardy struct nf_conn *ct, 18010c0b9fSPatrick McHardy enum ip_conntrack_info ctinfo, 19051966c0SPatrick McHardy unsigned int protoff, 20010c0b9fSPatrick McHardy unsigned int match_offset, 21010c0b9fSPatrick McHardy unsigned int match_len, 22010c0b9fSPatrick McHardy const char *rep_buffer, 23010c0b9fSPatrick McHardy unsigned int rep_len) 24010c0b9fSPatrick McHardy { 25051966c0SPatrick McHardy return __nf_nat_mangle_tcp_packet(skb, ct, ctinfo, protoff, 26010c0b9fSPatrick McHardy match_offset, match_len, 27010c0b9fSPatrick McHardy rep_buffer, rep_len, true); 28010c0b9fSPatrick McHardy } 29010c0b9fSPatrick McHardy 304e77be46SJoe Perches int nf_nat_mangle_udp_packet(struct sk_buff *skb, struct nf_conn *ct, 315b1158e9SJozsef Kadlecsik enum ip_conntrack_info ctinfo, 324e77be46SJoe Perches unsigned int protoff, unsigned int match_offset, 334e77be46SJoe Perches unsigned int match_len, const char *rep_buffer, 345b1158e9SJozsef Kadlecsik unsigned int rep_len); 35010c0b9fSPatrick McHardy 365b1158e9SJozsef Kadlecsik /* Setup NAT on this expected conntrack so it follows master, but goes 375b1158e9SJozsef Kadlecsik * to port ct->master->saved_proto. */ 384e77be46SJoe Perches void nf_nat_follow_master(struct nf_conn *ct, struct nf_conntrack_expect *this); 39f9dd09c7SJozsef Kadlecsik 405b1158e9SJozsef Kadlecsik #endif 41