linux/include/net/netfilter/nf_nat_l3proto.h
<<
>>
Prefs
   1#ifndef _NF_NAT_L3PROTO_H
   2#define _NF_NAT_L3PROTO_H
   3
   4struct nf_nat_l4proto;
   5struct nf_nat_l3proto {
   6        u8      l3proto;
   7
   8        bool    (*in_range)(const struct nf_conntrack_tuple *t,
   9                            const struct nf_nat_range *range);
  10
  11        u32     (*secure_port)(const struct nf_conntrack_tuple *t, __be16);
  12
  13        bool    (*manip_pkt)(struct sk_buff *skb,
  14                             unsigned int iphdroff,
  15                             const struct nf_nat_l4proto *l4proto,
  16                             const struct nf_conntrack_tuple *target,
  17                             enum nf_nat_manip_type maniptype);
  18
  19        void    (*csum_update)(struct sk_buff *skb, unsigned int iphdroff,
  20                               __sum16 *check,
  21                               const struct nf_conntrack_tuple *t,
  22                               enum nf_nat_manip_type maniptype);
  23
  24        void    (*csum_recalc)(struct sk_buff *skb, u8 proto,
  25                               void *data, __sum16 *check,
  26                               int datalen, int oldlen);
  27
  28        void    (*decode_session)(struct sk_buff *skb,
  29                                  const struct nf_conn *ct,
  30                                  enum ip_conntrack_dir dir,
  31                                  unsigned long statusbit,
  32                                  struct flowi *fl);
  33
  34        int     (*nlattr_to_range)(struct nlattr *tb[],
  35                                   struct nf_nat_range *range);
  36};
  37
  38int nf_nat_l3proto_register(const struct nf_nat_l3proto *);
  39void nf_nat_l3proto_unregister(const struct nf_nat_l3proto *);
  40const struct nf_nat_l3proto *__nf_nat_l3proto_find(u8 l3proto);
  41
  42int nf_nat_icmp_reply_translation(struct sk_buff *skb, struct nf_conn *ct,
  43                                  enum ip_conntrack_info ctinfo,
  44                                  unsigned int hooknum);
  45int nf_nat_icmpv6_reply_translation(struct sk_buff *skb, struct nf_conn *ct,
  46                                    enum ip_conntrack_info ctinfo,
  47                                    unsigned int hooknum, unsigned int hdrlen);
  48
  49#endif /* _NF_NAT_L3PROTO_H */
  50