Contributors: 17
	  
        
          | Author | 
          Tokens | 
          Token Proportion | 
          Commits | 
          Commit Proportion | 
        
	  
	  
        
        
          | Linus Torvalds (pre-git) | 
          123 | 
          43.77% | 
          10 | 
          26.32% | 
        
        
          | Nazarov Sergey | 
          41 | 
          14.59% | 
          1 | 
          2.63% | 
        
        
          | Jason A. Donenfeld | 
          28 | 
          9.96% | 
          2 | 
          5.26% | 
        
        
          | David L Stevens | 
          19 | 
          6.76% | 
          1 | 
          2.63% | 
        
        
          | Pavel Emelyanov | 
          17 | 
          6.05% | 
          6 | 
          15.79% | 
        
        
          | Li Wei | 
          15 | 
          5.34% | 
          1 | 
          2.63% | 
        
        
          | Andreas Roeseler | 
          8 | 
          2.85% | 
          1 | 
          2.63% | 
        
        
          | Eric Dumazet | 
          8 | 
          2.85% | 
          6 | 
          15.79% | 
        
        
          | Arnaldo Carvalho de Melo | 
          6 | 
          2.14% | 
          1 | 
          2.63% | 
        
        
          | Al Viro | 
          4 | 
          1.42% | 
          1 | 
          2.63% | 
        
        
          | Pravin B Shelar | 
          2 | 
          0.71% | 
          1 | 
          2.63% | 
        
        
          | Denis V. Lunev | 
          2 | 
          0.71% | 
          2 | 
          5.26% | 
        
        
          | Thomas Gleixner | 
          2 | 
          0.71% | 
          1 | 
          2.63% | 
        
        
          | Joe Perches | 
          2 | 
          0.71% | 
          1 | 
          2.63% | 
        
        
          | Wensong Zhang | 
          2 | 
          0.71% | 
          1 | 
          2.63% | 
        
        
          | Stefano Brivio | 
          1 | 
          0.36% | 
          1 | 
          2.63% | 
        
        
          | Alexey Dobriyan | 
          1 | 
          0.36% | 
          1 | 
          2.63% | 
        
	  
	  
        
          | Total | 
          281 | 
           | 
          38 | 
           | 
	    
	  
    
 
/* SPDX-License-Identifier: GPL-2.0-or-later */
/*
 * 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
 *
 * Authors:	Ross Biro
 *		Fred N. van Kempen, <waltje@uWalt.NL.Mugnet.ORG>
 */
#ifndef _ICMP_H
#define	_ICMP_H
#include <linux/icmp.h>
#include <net/inet_sock.h>
#include <net/snmp.h>
#include <net/ip.h>
struct icmp_err {
  int		errno;
  unsigned int	fatal:1;
};
extern const struct icmp_err icmp_err_convert[];
#define ICMP_INC_STATS(net, field)	SNMP_INC_STATS((net)->mib.icmp_statistics, field)
#define __ICMP_INC_STATS(net, field)	__SNMP_INC_STATS((net)->mib.icmp_statistics, field)
#define ICMPMSGOUT_INC_STATS(net, field)	SNMP_INC_STATS_ATOMIC_LONG((net)->mib.icmpmsg_statistics, field+256)
#define ICMPMSGIN_INC_STATS(net, field)		SNMP_INC_STATS_ATOMIC_LONG((net)->mib.icmpmsg_statistics, field)
struct dst_entry;
struct net_proto_family;
struct sk_buff;
struct net;
void __icmp_send(struct sk_buff *skb_in, int type, int code, __be32 info,
		 const struct ip_options *opt);
static inline void icmp_send(struct sk_buff *skb_in, int type, int code, __be32 info)
{
	__icmp_send(skb_in, type, code, info, &IPCB(skb_in)->opt);
}
#if IS_ENABLED(CONFIG_NF_NAT)
void icmp_ndo_send(struct sk_buff *skb_in, int type, int code, __be32 info);
#else
static inline void icmp_ndo_send(struct sk_buff *skb_in, int type, int code, __be32 info)
{
	struct ip_options opts = { 0 };
	__icmp_send(skb_in, type, code, info, &opts);
}
#endif
int icmp_rcv(struct sk_buff *skb);
int icmp_err(struct sk_buff *skb, u32 info);
int icmp_init(void);
void icmp_out_count(struct net *net, unsigned char type);
bool icmp_build_probe(struct sk_buff *skb, struct icmphdr *icmphdr);
#endif	/* _ICMP_H */