Linux Audio
Check our new training course
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193
#ifndef _NETINET_IP_ICMP_H #define _NETINET_IP_ICMP_H #include <stdint.h> #include <netinet/in.h> #include <netinet/ip.h> #ifdef __cplusplus extern "C" { #endif struct icmphdr { uint8_t type; uint8_t code; uint16_t checksum; union { struct { uint16_t id; uint16_t sequence; } echo; uint32_t gateway; struct { uint16_t __unused; uint16_t mtu; } frag; uint8_t reserved[4]; } un; }; #define ICMP_ECHOREPLY 0 #define ICMP_DEST_UNREACH 3 #define ICMP_SOURCE_QUENCH 4 #define ICMP_REDIRECT 5 #define ICMP_ECHO 8 #define ICMP_TIME_EXCEEDED 11 #define ICMP_PARAMETERPROB 12 #define ICMP_TIMESTAMP 13 #define ICMP_TIMESTAMPREPLY 14 #define ICMP_INFO_REQUEST 15 #define ICMP_INFO_REPLY 16 #define ICMP_ADDRESS 17 #define ICMP_ADDRESSREPLY 18 #define NR_ICMP_TYPES 18 #define ICMP_NET_UNREACH 0 #define ICMP_HOST_UNREACH 1 #define ICMP_PROT_UNREACH 2 #define ICMP_PORT_UNREACH 3 #define ICMP_FRAG_NEEDED 4 #define ICMP_SR_FAILED 5 #define ICMP_NET_UNKNOWN 6 #define ICMP_HOST_UNKNOWN 7 #define ICMP_HOST_ISOLATED 8 #define ICMP_NET_ANO 9 #define ICMP_HOST_ANO 10 #define ICMP_NET_UNR_TOS 11 #define ICMP_HOST_UNR_TOS 12 #define ICMP_PKT_FILTERED 13 #define ICMP_PREC_VIOLATION 14 #define ICMP_PREC_CUTOFF 15 #define NR_ICMP_UNREACH 15 #define ICMP_REDIR_NET 0 #define ICMP_REDIR_HOST 1 #define ICMP_REDIR_NETTOS 2 #define ICMP_REDIR_HOSTTOS 3 #define ICMP_EXC_TTL 0 #define ICMP_EXC_FRAGTIME 1 struct icmp_ra_addr { uint32_t ira_addr; uint32_t ira_preference; }; struct icmp { uint8_t icmp_type; uint8_t icmp_code; uint16_t icmp_cksum; union { uint8_t ih_pptr; struct in_addr ih_gwaddr; struct ih_idseq { uint16_t icd_id; uint16_t icd_seq; } ih_idseq; uint32_t ih_void; struct ih_pmtu { uint16_t ipm_void; uint16_t ipm_nextmtu; } ih_pmtu; struct ih_rtradv { uint8_t irt_num_addrs; uint8_t irt_wpa; uint16_t irt_lifetime; } ih_rtradv; } icmp_hun; union { struct { uint32_t its_otime; uint32_t its_rtime; uint32_t its_ttime; } id_ts; struct { struct ip idi_ip; } id_ip; struct icmp_ra_addr id_radv; uint32_t id_mask; uint8_t id_data[1]; } icmp_dun; }; #define icmp_pptr icmp_hun.ih_pptr #define icmp_gwaddr icmp_hun.ih_gwaddr #define icmp_id icmp_hun.ih_idseq.icd_id #define icmp_seq icmp_hun.ih_idseq.icd_seq #define icmp_void icmp_hun.ih_void #define icmp_pmvoid icmp_hun.ih_pmtu.ipm_void #define icmp_nextmtu icmp_hun.ih_pmtu.ipm_nextmtu #define icmp_num_addrs icmp_hun.ih_rtradv.irt_num_addrs #define icmp_wpa icmp_hun.ih_rtradv.irt_wpa #define icmp_lifetime icmp_hun.ih_rtradv.irt_lifetime #define icmp_otime icmp_dun.id_ts.its_otime #define icmp_rtime icmp_dun.id_ts.its_rtime #define icmp_ttime icmp_dun.id_ts.its_ttime #define icmp_ip icmp_dun.id_ip.idi_ip #define icmp_radv icmp_dun.id_radv #define icmp_mask icmp_dun.id_mask #define icmp_data icmp_dun.id_data #define ICMP_MINLEN 8 #define ICMP_TSLEN (8 + 3 * sizeof (n_time)) #define ICMP_MASKLEN 12 #define ICMP_ADVLENMIN (8 + sizeof (struct ip) + 8) #define ICMP_ADVLEN(p) (8 + ((p)->icmp_ip.ip_hl << 2) + 8) #define ICMP_UNREACH 3 #define ICMP_SOURCEQUENCH 4 #define ICMP_ROUTERADVERT 9 #define ICMP_ROUTERSOLICIT 10 #define ICMP_TIMXCEED 11 #define ICMP_PARAMPROB 12 #define ICMP_TSTAMP 13 #define ICMP_TSTAMPREPLY 14 #define ICMP_IREQ 15 #define ICMP_IREQREPLY 16 #define ICMP_MASKREQ 17 #define ICMP_MASKREPLY 18 #define ICMP_MAXTYPE 18 #define ICMP_UNREACH_NET 0 #define ICMP_UNREACH_HOST 1 #define ICMP_UNREACH_PROTOCOL 2 #define ICMP_UNREACH_PORT 3 #define ICMP_UNREACH_NEEDFRAG 4 #define ICMP_UNREACH_SRCFAIL 5 #define ICMP_UNREACH_NET_UNKNOWN 6 #define ICMP_UNREACH_HOST_UNKNOWN 7 #define ICMP_UNREACH_ISOLATED 8 #define ICMP_UNREACH_NET_PROHIB 9 #define ICMP_UNREACH_HOST_PROHIB 10 #define ICMP_UNREACH_TOSNET 11 #define ICMP_UNREACH_TOSHOST 12 #define ICMP_UNREACH_FILTER_PROHIB 13 #define ICMP_UNREACH_HOST_PRECEDENCE 14 #define ICMP_UNREACH_PRECEDENCE_CUTOFF 15 #define ICMP_REDIRECT_NET 0 #define ICMP_REDIRECT_HOST 1 #define ICMP_REDIRECT_TOSNET 2 #define ICMP_REDIRECT_TOSHOST 3 #define ICMP_TIMXCEED_INTRANS 0 #define ICMP_TIMXCEED_REASS 1 #define ICMP_PARAMPROB_OPTABSENT 1 #define ICMP_INFOTYPE(type) \ ((type) == ICMP_ECHOREPLY || (type) == ICMP_ECHO || \ (type) == ICMP_ROUTERADVERT || (type) == ICMP_ROUTERSOLICIT || \ (type) == ICMP_TSTAMP || (type) == ICMP_TSTAMPREPLY || \ (type) == ICMP_IREQ || (type) == ICMP_IREQREPLY || \ (type) == ICMP_MASKREQ || (type) == ICMP_MASKREPLY) #ifdef __cplusplus } #endif #endif