1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18#ifndef _ICMP_H
19#define _ICMP_H
20
21#include <linux/config.h>
22#include <linux/icmp.h>
23#include <linux/skbuff.h>
24
25#include <net/sock.h>
26#include <net/protocol.h>
27#include <net/snmp.h>
28#include <linux/ip.h>
29
30struct icmp_err {
31 int errno;
32 unsigned fatal:1;
33};
34
35extern struct icmp_err icmp_err_convert[];
36DECLARE_SNMP_STAT(struct icmp_mib, icmp_statistics);
37#define ICMP_INC_STATS(field) SNMP_INC_STATS(icmp_statistics, field)
38#define ICMP_INC_STATS_BH(field) SNMP_INC_STATS_BH(icmp_statistics, field)
39#define ICMP_INC_STATS_USER(field) SNMP_INC_STATS_USER(icmp_statistics, field)
40
41extern void icmp_send(struct sk_buff *skb_in, int type, int code, u32 info);
42extern int icmp_rcv(struct sk_buff *skb);
43extern int icmp_ioctl(struct sock *sk, int cmd, unsigned long arg);
44extern void icmp_init(struct net_proto_family *ops);
45
46
47extern int xrlim_allow(struct dst_entry *dst, int timeout);
48
49struct raw_opt {
50 struct icmp_filter filter;
51};
52
53struct ipv6_pinfo;
54
55
56struct raw_sock {
57 struct sock sk;
58#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE)
59 struct ipv6_pinfo *pinet6;
60#endif
61 struct inet_opt inet;
62 struct raw_opt raw4;
63};
64
65#define raw4_sk(__sk) (&((struct raw_sock *)__sk)->raw4)
66
67#endif
68