#include <linux/config.h>#include <linux/types.h>#include <linux/sched.h>#include <linux/kernel.h>#include <linux/fcntl.h>#include <linux/socket.h>#include <linux/in.h>#include <linux/inet.h>#include <linux/netdevice.h>#include <linux/string.h>#include <linux/netfilter_ipv4.h>#include <net/snmp.h>#include <net/ip.h>#include <net/route.h>#include <net/protocol.h>#include <net/icmp.h>#include <net/tcp.h>#include <net/udp.h>#include <net/raw.h>#include <linux/skbuff.h>#include <net/sock.h>#include <linux/errno.h>#include <linux/timer.h>#include <linux/init.h>#include <asm/system.h>#include <asm/uaccess.h>#include <net/checksum.h>Go to the source code of this file.
Classes | |
| struct | icmp_bxm |
| struct | icmp_control |
Defines | |
| #define | icmp_socket (&__icmp_inode[smp_processor_id()].u.socket_i) |
| #define | icmp_socket_cpu(X) (&__icmp_inode[(X)].u.socket_i) |
| #define | XRLIM_BURST_FACTOR 6 |
Functions | |
| int | icmp_xmit_lock (void) |
| void | icmp_xmit_unlock (void) |
| int | xrlim_allow (struct dst_entry *dst, int timeout) |
| int | icmpv4_xrlim_allow (struct rtable *rt, int type, int code) |
| void | icmp_out_count (int type) |
| int | icmp_glue_bits (const void *p, char *to, unsigned int offset, unsigned int fraglen) |
| void | icmp_reply (struct icmp_bxm *icmp_param, struct sk_buff *skb) |
| void | icmp_send (struct sk_buff *skb_in, int type, int code, u32 info) |
| void | icmp_unreach (struct sk_buff *skb) |
| void | icmp_redirect (struct sk_buff *skb) |
| void | icmp_echo (struct sk_buff *skb) |
| void | icmp_timestamp (struct sk_buff *skb) |
| void | icmp_address (struct sk_buff *skb) |
| void | icmp_address_reply (struct sk_buff *skb) |
| void | icmp_discard (struct sk_buff *skb) |
| int | icmp_rcv (struct sk_buff *skb) |
| void __init | icmp_init (struct net_proto_family *ops) |
Variables | |
| icmp_mib | icmp_statistics [NR_CPUS *2] |
| icmp_err | icmp_err_convert [] |
| int | sysctl_ip_default_ttl |
| int | sysctl_icmp_echo_ignore_all |
| int | sysctl_icmp_echo_ignore_broadcasts |
| int | sysctl_icmp_ignore_bogus_error_responses |
| int | sysctl_icmp_ratelimit = 1*HZ |
| int | sysctl_icmp_ratemask = 0x1818 |
| icmp_control | icmp_pointers [NR_ICMP_TYPES+1] |
| inode | __icmp_inode [NR_CPUS] |
|
|
Definition at line 187 of file icmp.c. Referenced by icmp_reply(), icmp_send(), icmp_xmit_lock(), and icmp_xmit_unlock(). |
|
|
Definition at line 188 of file icmp.c. Referenced by icmp_init(). |
|
|
Definition at line 229 of file icmp.c. Referenced by xrlim_allow(). |
|
|
Definition at line 808 of file icmp.c. References net_ratelimit().
|
|
|
Definition at line 821 of file icmp.c. References sk_buff::dev, sk_buff::dst, IN_DEV_FORWARD, in_dev_get(), IN_DEV_LOG_MARTIANS, in_dev_put(), inet_ifa_match(), sk_buff::len, net_ratelimit(), and skb_copy_bits().
|
|
|
Definition at line 854 of file icmp.c.
|
|
|
Definition at line 719 of file icmp.c. References icmp_bxm::data, icmp_bxm::data_len, sk_buff::h, icmp_bxm::head_len, icmp_reply(), sk_buff::len, icmp_bxm::offset, icmp_bxm::skb, and sysctl_icmp_echo_ignore_all.
|
|
||||||||||||||||||||
|
Definition at line 284 of file icmp.c. References csum_fold(), csum_partial_copy_nocheck(), and skb_copy_and_csum_bits(). Referenced by icmp_reply(), and icmp_send().
|
|
|
Definition at line 967 of file icmp.c. References __icmp_inode, net_proto_family::create, icmp_socket_cpu, IP_PMTUDISC_DONT, IPPROTO_ICMP, MAXTTL, SK_WMEM_MAX, and SS_UNCONNECTED. Referenced by inet_init().
|
|
|
Definition at line 272 of file icmp.c. References ICMP_INC_STATS, icmp_pointers, and icmp_control::output. Referenced by icmp_reply(), and icmp_send().
|
|
|
Definition at line 862 of file icmp.c. References CHECKSUM_HW, CHECKSUM_NONE, sk_buff::csum, csum_fold(), sk_buff::dst, error, sk_buff::h, icmp_control::handler, ICMP_INC_STATS_BH, icmp_pointers, icmp_control::input, sk_buff::ip_summed, kfree_skb(), sk_buff::len, net_ratelimit(), NETDEBUG, pskb_pull(), skb_checksum(), and sysctl_icmp_echo_ignore_broadcasts.
|
|
|
Definition at line 674 of file icmp.c. References sk_buff::data, sk_buff::dev, sk_buff::h, ICMP_INC_STATS_BH, ip_rt_redirect(), sk_buff::len, sk_buff::nh, and pskb_may_pull().
|
|
||||||||||||
|
Driving logic for building and sending ICMP messages. if the ICMP is not to be echoed, then drop Definition at line 318 of file icmp.c. References ipcm_cookie::addr, icmp_bxm::csum, icmp_bxm::data, icmp_bxm::data_len, sk_buff::dst, ip_options::faddr, icmp_bxm::head_len, icmp_glue_bits(), icmp_out_count(), icmp_socket, icmp_xmit_lock(), icmp_xmit_unlock(), icmpv4_xrlim_allow(), ip_build_xmit(), ip_options_echo(), ip_route_output(), ip_rt_put(), sk_buff::nh, ipcm_cookie::opt, ip_options::optlen, icmp_bxm::replyopts, ip_options::srr, and sysctl_ip_default_ttl. Referenced by icmp_echo(), and icmp_timestamp().
|
|
||||||||||||||||||||
|
Definition at line 369 of file icmp.c. References ipcm_cookie::addr, icmp_bxm::csum, icmp_bxm::data, sk_buff::data, sk_buff::dst, icmp_control::error, ip_options::faddr, sk_buff::head, icmp_glue_bits(), icmp_out_count(), icmp_pointers, icmp_socket, icmp_xmit_lock(), icmp_xmit_unlock(), icmpv4_xrlim_allow(), ip_build_xmit(), IP_OFFSET, ip_options_echo(), ip_route_output(), ip_rt_put(), IPCB, IPPROTO_ICMP, IPSKB_TRANSLATED, IPTOS_PREC_INTERNETCONTROL, IPTOS_TOS_MASK, sk_buff::len, sk_buff::nh, icmp_bxm::offset, ipcm_cookie::opt, sk_buff::pkt_type, icmp_bxm::replyopts, icmp_bxm::skb, skb_copy_bits(), ip_options::srr, sysctl_ip_default_ttl, and sk_buff::tail. Referenced by fw_in(), ip_error(), ip_expire(), ip_forward(), ip_local_deliver_finish(), ip_options_compile(), ip_options_rcv_srr(), ip_queue_xmit2(), ip_rt_send_redirect(), ip_vs_bypass_xmit(), ip_vs_dr_xmit(), ip_vs_in_icmp(), ip_vs_leave(), ip_vs_nat_xmit(), ip_vs_out(), ip_vs_tunnel_xmit(), ipgre_err(), ipgre_rcv(), ipgre_tunnel_xmit(), ipip_err(), ipip_rcv(), ipip_tunnel_xmit(), ipt_mirror_target(), ipv4_link_failure(), and udp_rcv().
|
|
|
Definition at line 742 of file icmp.c. References icmp_bxm::data, icmp_bxm::data_len, sk_buff::h, icmp_bxm::head_len, ICMP_INC_STATS_BH, icmp_reply(), sk_buff::len, icmp_bxm::offset, icmp_bxm::skb, and skb_copy_bits().
|
|
|
Definition at line 522 of file icmp.c. References __raw_v4_lookup(), sk_buff::data, sk_buff::dev, inet_protocol::err_handler, sk_buff::h, ICMP_INC_STATS_BH, net_device::ifindex, inet_addr_type(), inet_protos, ip_rt_frag_needed(), MAX_INET_PROTOS, net_device::name, net_ratelimit(), inet_protocol::next, pskb_may_pull(), raw_err(), raw_v4_htable, raw_v4_lock, and sysctl_icmp_ignore_bogus_error_responses.
|
|
|
Definition at line 190 of file icmp.c. References icmp_socket. Referenced by icmp_reply(), and icmp_send().
|
|
|
Definition at line 203 of file icmp.c. References icmp_socket. Referenced by icmp_reply(), and icmp_send().
|
|
||||||||||||||||
|
Definition at line 246 of file icmp.c. References sysctl_icmp_ratelimit, sysctl_icmp_ratemask, rtable::u, and xrlim_allow(). Referenced by icmp_reply(), and icmp_send().
|
|
||||||||||||
|
Definition at line 230 of file icmp.c. References dst_entry::rate_last, dst_entry::rate_tokens, and XRLIM_BURST_FACTOR. Referenced by icmpv4_xrlim_allow(), and send_unreach().
|
|
|
Definition at line 186 of file icmp.c. Referenced by icmp_init(). |
|
|
Initial value: Definition at line 123 of file icmp.c. Referenced by raw_err(), tcp_v4_err(), and udp_err(). |
|
|
Definition at line 932 of file icmp.c. Referenced by icmp_out_count(), icmp_rcv(), and icmp_send(). |
|
|
Definition at line 118 of file icmp.c. Referenced by snmp_get_info(). |
|
|
Definition at line 145 of file icmp.c. Referenced by icmp_echo(). |
|
|
Definition at line 146 of file icmp.c. Referenced by icmp_rcv(). |
|
|
Definition at line 149 of file icmp.c. Referenced by icmp_unreach(). |
|
|
Definition at line 163 of file icmp.c. Referenced by icmpv4_xrlim_allow(). |
|
|
Definition at line 164 of file icmp.c. Referenced by icmpv4_xrlim_allow(). |
|
|
Definition at line 86 of file ip_output.c. |
1.3.8