linux-old/include/linux/netfilter_ipv4/ip_nat_helper.h
<<
>>
Prefs
   1#ifndef _IP_NAT_HELPER_H
   2#define _IP_NAT_HELPER_H
   3/* NAT protocol helper routines. */
   4
   5#include <linux/netfilter_ipv4/ip_conntrack.h>
   6
   7struct sk_buff;
   8
   9/* Flags */
  10/* NAT helper must be called on every packet (for TCP) */
  11#define IP_NAT_HELPER_F_ALWAYS          0x01
  12/* Standalone NAT helper, without a conntrack part */
  13#define IP_NAT_HELPER_F_STANDALONE      0x02
  14
  15struct ip_nat_helper
  16{
  17        struct list_head list;          /* Internal use */
  18
  19        const char *name;               /* name of the module */
  20        unsigned char flags;            /* Flags (see above) */
  21        struct module *me;              /* pointer to self */
  22        
  23        /* Mask of things we will help: vs. tuple from server */
  24        struct ip_conntrack_tuple tuple;
  25        struct ip_conntrack_tuple mask;
  26        
  27        /* Helper function: returns verdict */
  28        unsigned int (*help)(struct ip_conntrack *ct,
  29                             struct ip_conntrack_expect *exp,
  30                             struct ip_nat_info *info,
  31                             enum ip_conntrack_info ctinfo,
  32                             unsigned int hooknum,
  33                             struct sk_buff **pskb);
  34
  35        /* Returns verdict and sets up NAT for this connection */
  36        unsigned int (*expect)(struct sk_buff **pskb,
  37                               unsigned int hooknum,
  38                               struct ip_conntrack *ct,
  39                               struct ip_nat_info *info);
  40};
  41
  42extern struct list_head helpers;
  43
  44extern int ip_nat_helper_register(struct ip_nat_helper *me);
  45extern void ip_nat_helper_unregister(struct ip_nat_helper *me);
  46extern int ip_nat_mangle_tcp_packet(struct sk_buff **skb,
  47                                struct ip_conntrack *ct,
  48                                enum ip_conntrack_info ctinfo,
  49                                unsigned int match_offset,
  50                                unsigned int match_len,
  51                                char *rep_buffer,
  52                                unsigned int rep_len);
  53extern int ip_nat_mangle_udp_packet(struct sk_buff **skb,
  54                                struct ip_conntrack *ct,
  55                                enum ip_conntrack_info ctinfo,
  56                                unsigned int match_offset,
  57                                unsigned int match_len,
  58                                char *rep_buffer,
  59                                unsigned int rep_len);
  60extern int ip_nat_seq_adjust(struct sk_buff *skb,
  61                                struct ip_conntrack *ct,
  62                                enum ip_conntrack_info ctinfo);
  63extern void ip_nat_delete_sack(struct sk_buff *skb);
  64#endif
  65
lxr.linux.no kindly hosted by Redpill Linpro AS, provider of Linux consulting and operations services since 1995.