OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [tags/] [LINUX_2_4_26_OR32/] [linux/] [linux-2.4/] [include/] [linux/] [netfilter_ipv4/] [ip_nat_helper.h] - Blame information for rev 1275

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 1275 phoenix
#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
 
7
struct 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
 
15
struct 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
 
42
extern struct list_head helpers;
43
 
44
extern int ip_nat_helper_register(struct ip_nat_helper *me);
45
extern void ip_nat_helper_unregister(struct ip_nat_helper *me);
46
extern 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);
53
extern 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);
60
extern int ip_nat_seq_adjust(struct sk_buff *skb,
61
                                struct ip_conntrack *ct,
62
                                enum ip_conntrack_info ctinfo);
63
extern void ip_nat_delete_sack(struct sk_buff *skb);
64
#endif

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.