2005-04-17 02:20:36 +04:00
/*
* INET An implementation of the TCP / IP protocol suite for the LINUX
* operating system . INET is implemented using the BSD Socket
* interface as the means of communication with the user level .
*
* Definitions for the ICMP module .
*
* Version : @ ( # ) icmp . h 1.0 .4 05 / 13 / 93
*
2005-05-06 03:16:16 +04:00
* Authors : Ross Biro
2005-04-17 02:20:36 +04:00
* Fred N . van Kempen , < waltje @ uWalt . NL . Mugnet . ORG >
*
* This program is free software ; you can redistribute it and / or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation ; either version
* 2 of the License , or ( at your option ) any later version .
*/
# ifndef _ICMP_H
# define _ICMP_H
# include <linux/icmp.h>
2005-12-27 07:43:12 +03:00
# include <net/inet_sock.h>
2005-04-17 02:20:36 +04:00
# include <net/snmp.h>
struct icmp_err {
int errno ;
2012-04-15 09:58:06 +04:00
unsigned int fatal : 1 ;
2005-04-17 02:20:36 +04:00
} ;
2010-01-22 13:18:25 +03:00
extern const struct icmp_err icmp_err_convert [ ] ;
2008-07-18 15:04:02 +04:00
# define ICMP_INC_STATS(net, field) SNMP_INC_STATS((net)->mib.icmp_statistics, field)
# define ICMP_INC_STATS_BH(net, field) SNMP_INC_STATS_BH((net)->mib.icmp_statistics, field)
2011-11-08 17:04:43 +04:00
# define ICMPMSGOUT_INC_STATS(net, field) SNMP_INC_STATS_ATOMIC_LONG((net)->mib.icmpmsg_statistics, field+256)
# define ICMPMSGIN_INC_STATS_BH(net, field) SNMP_INC_STATS_ATOMIC_LONG((net)->mib.icmpmsg_statistics, field)
2005-04-17 02:20:36 +04:00
2005-12-27 07:43:12 +03:00
struct dst_entry ;
struct net_proto_family ;
struct sk_buff ;
2008-07-15 10:00:43 +04:00
struct net ;
2005-12-27 07:43:12 +03:00
2013-09-20 22:23:28 +04:00
void icmp_send ( struct sk_buff * skb_in , int type , int code , __be32 info ) ;
int icmp_rcv ( struct sk_buff * skb ) ;
void icmp_err ( struct sk_buff * skb , u32 info ) ;
int icmp_init ( void ) ;
void icmp_out_count ( struct net * net , unsigned char type ) ;
2005-04-17 02:20:36 +04:00
# endif /* _ICMP_H */