Hallo, dies ist ein Test.
PWD: /www/data-lst1/unixsoft/unixsoft/kaempfer/.public_html
Running in File Mode
Relative path: ./../../../../../../bin/.././lib/dtrace/icmp.d
Real path: /usr/lib/dtrace/icmp.d
Zurück
/* * Copyright (c) 2016, 2023, Oracle and/or its affiliates. */ #pragma D depends_on module unix #pragma D depends_on provider icmp /* ICMP types */ inline int ICMP_ECHO_REPLY = 0; #pragma D binding "1.12" ICMP_ECHO_REPLY inline int ICMP_DEST_UNREACHABLE = 3; #pragma D binding "1.12" ICMP_DEST_UNREACHABLE inline int ICMP_SOURCE_QUENCH = 4; #pragma D binding "1.12" ICMP_SOURCE_QUENCH inline int ICMP_REDIRECT = 5; #pragma D binding "1.12" ICMP_REDIRECT inline int ICMP_ECHO_REQUEST = 8; #pragma D binding "1.12" ICMP_ECHO_REQUEST inline int ICMP_ROUTER_ADVERTISEMENT = 9; #pragma D binding "1.12" ICMP_ROUTER_ADVERTISEMENT inline int ICMP_ROUTER_SOLICITATION = 10; #pragma D binding "1.12" ICMP_ROUTER_SOLICITATION inline int ICMP_TIME_EXCEEDED = 11; #pragma D binding "1.12" ICMP_TIME_EXCEEDED inline int ICMP_PARAM_PROBLEM = 12; #pragma D binding "1.12" ICMP_PARAM_PROBLEM inline int ICMP_TIME_STAMP_REQUEST = 13; #pragma D binding "1.12" ICMP_TIME_STAMP_REQUEST inline int ICMP_TIME_STAMP_REPLY = 14; #pragma D binding "1.12" ICMP_TIME_STAMP_REPLY inline int ICMP_INFO_REQUEST = 15; #pragma D binding "1.12" ICMP_INFO_REQUEST inline int ICMP_INFO_REPLY = 16; #pragma D binding "1.12" ICMP_INFO_REPLY inline int ICMP_ADDRESS_MASK_REQUEST = 17; #pragma D binding "1.12" ICMP_ADDRESS_MASK_REQUEST inline int ICMP_ADDRESS_MASK_REPLY = 18; #pragma D binding "1.12" ICMP_ADDRESS_MASK_REPLY /* ICMPv6 types */ inline int ICMP6_DEST_UNREACHABLE = 1; #pragma D binding "1.12" ICMP6_DEST_UNREACHABLE inline int ICMP6_PACKET_TOO_BIG = 2; #pragma D binding "1.12" ICMP6_PACKET_TOO_BIG inline int ICMP6_ND_REDIRECT = 137; #pragma D binding "1.12" ICMP6_ND_REDIRECT inline int ICMP6_TIME_EXCEEDED = 3; #pragma D binding "1.12" ICMP6_TIME_EXCEEDED inline int ICMP6_PARAM_PROBLEM = 4; #pragma D binding "1.12" ICMP6_PARAM_PROBLEM inline int ICMP6_ECHO_REQUEST = 128; #pragma D binding "1.12" ICMP6_ECHO_REQUEST inline int ICMP6_ECHO_REPLY = 129; #pragma D binding "1.12" ICMP6_ECHO_REPLY inline int ICMP6_MLD_LISTENER_QUERY = 130; #pragma D binding "1.12" ICMP6_MLD_LISTENER_QUERY inline int ICMP6_MLD_LISTENER_REPORT = 131; #pragma D binding "1.12" ICMP6_MLD_LISTENER_REPORT inline int ICMP6_MLD_LISTENER_REDUCTION = 132; #pragma D binding "1.12" ICMP6_MLD_LISTENER_REDUCTION inline int ICMP6_MLD_V2_LISTENER_REPORT = 143; #pragma D binding "1.12" ICMP6_MLD_V2_LISTENER_REPORT inline int ICMP6_ND_ROUTER_SOLICITATION = 133; #pragma D binding "1.12" ICMP6_ND_ROUTER_SOLICITATION inline int ICMP6_ND_ROUTER_ADVERTISEMENT = 134; #pragma D binding "1.12" ICMP6_ND_ROUTER_ADVERTISEMENT inline int ICMP6_ND_NEIGHBOR_SOLICITATION = 135; #pragma D binding "1.12" ICMP6_ND_NEIGHBOR_SOLICITATION inline int ICMP6_ND_NEIGHBOR_ADVERTISEMENT = 136; #pragma D binding "1.12" ICMP6_ND_NEIGHBOR_ADVERTISEMENT inline int ICMP6_ROUTER_RENUMBERING = 138; #pragma D binding "1.12" ICMP6_ROUTER_RENUMBERING /* ICMP_TIME_EXCEEDED codes */ inline int ICMP_TTL_EXCEEDED = 0; #pragma D binding "1.12" ICMP_TTL_EXCEEDED inline int ICMP_REASSEMBLY_TIME_EXCEEDED = 1; #pragma D binding "1.12" ICMP_REASSEMBLY_TIME_EXCEEDED /* ICMP6_TIME_EXCEEDED codes */ inline int ICMP6_TRANSIT_TIME_EXCEEDED = 0; #pragma D binding "1.12" ICMP6_TRANSIT_TIME_EXCEEDED inline int ICMP6_REASSEMBLY_TIME_EXCEEDED = 1; #pragma D binding "1.12" ICMP6_REASSEMBLY_TIME_EXCEEDED /* ICMP_DEST_UNREACHABLE codes */ inline int ICMP_NET_UNREACHABLE = 0; #pragma D binding "1.12" ICMP_NET_UNREACHABLE inline int ICMP_HOST_UNREACHABLE = 1; #pragma D binding "1.12" ICMP_HOST_UNREACHABLE inline int ICMP_PROTOCOL_UNREACHABLE = 2; #pragma D binding "1.12" ICMP_PROTOCOL_UNREACHABLE inline int ICMP_PORT_UNREACHABLE = 3; #pragma D binding "1.12" ICMP_PORT_UNREACHABLE inline int ICMP_FRAGMENTATION_NEEDED = 4; #pragma D binding "1.12" ICMP_FRAGMENTATION_NEEDED inline int ICMP_SOURCE_ROUTE_FAILED = 5; #pragma D binding "1.12" ICMP_SOURCE_ROUTE_FAILED inline int ICMP_DEST_NET_UNKNOWN = 6; #pragma D binding "1.12" ICMP_DEST_NET_UNKNOWN inline int ICMP_DEST_HOST_UNKNOWN = 7; #pragma D binding "1.12" ICMP_DEST_HOST_UNKNOWN inline int ICMP_SRC_HOST_ISOLATED = 8; #pragma D binding "1.12" ICMP_SRC_HOST_ISOLATED inline int ICMP_DEST_NET_UNREACH_ADMIN = 9; #pragma D binding "1.12" ICMP_DEST_NET_UNREACH_ADMIN inline int ICMP_DEST_HOST_UNREACH_ADMIN = 10; #pragma D binding "1.12" ICMP_DEST_HOST_UNREACH_ADMIN inline int ICMP_DEST_NET_UNREACH_TOS = 11; #pragma D binding "1.12" ICMP_DEST_NET_UNREACH_TOS inline int ICMP_DEST_HOST_UNREACH_TOS = 12; #pragma D binding "1.12" ICMP_DEST_HOST_UNREACH_TOS /* ICMP6_DEST_UNREACHABLE codes */ inline int ICMP6_DEST_UNREACHABLE_NOROUTE = 0; #pragma D binding "1.12" ICMP6_DEST_UNREACHABLE_NOROUTE inline int ICMP6_DEST_UNREACHABLE_ADMIN = 1; #pragma D binding "1.12" ICMP6_DEST_UNREACHABLE_ADMIN inline int ICMP6_DEST_UNREACHABLE_ADDR = 3; #pragma D binding "1.12" ICMP6_DEST_UNREACHABLE_ADDR inline int ICMP6_DEST_UNREACHABLE_NOPORT = 4; #pragma D binding "1.12" ICMP6_DEST_UNREACHABLE_NOPORT /* ICMP_REDIRECT codes */ inline int ICMP_REDIRECT_NET = 0; #pragma D binding "1.12" ICMP_REDIRECT_NET inline int ICMP_REDIRECT_HOST = 1; #pragma D binding "1.12" ICMP_REDIRECT_HOST inline int ICMP_REDIRECT_TOSNET = 2; #pragma D binding "1.12" ICMP_REDIRECT_TOSNET inline int ICMP_REDIRECT_TOSHOST = 3; #pragma D binding "1.12" ICMP_REDIRECT_TOSHOST /* ICMP_PARAM_PROBLEM codes */ inline int ICMP_PARAM_PROBLEM_OPTABSENT = 1; #pragma D binding "1.12" ICMP_PARAM_PROBLEM_OPTABSENT inline int ICMP_PARAM_PROBLEM_BADLENGTH = 2; #pragma D binding "1.12" ICMP_PARAM_PROBLEM_BADLENGTH /* ICMP6_PARAM_PROBLEM codes */ inline int ICMP6_PARAM_PROBLEM_HEADER = 0; #pragma D binding "1.12" ICMP6_PARAM_PROBLEM_HEADER inline int ICMP6_PARAM_PROBLEM_NEXTHEADER = 1; #pragma D binding "1.12" ICMP6_PARAM_PROBLEM_NEXTHEADER inline int ICMP6_PARAM_PROBLEM_FRAGHDRCHN = 3; #pragma D binding "1.12" ICMP6_PARAM_PROBLEM_FRAGHDRCHN inline int ICMP6_PARAM_PROBLEM_OPTION = 2; #pragma D binding "1.12" ICMP6_PARAM_PROBLEM_OPTION inline string icmp_type_string[uint8_t t] = t == ICMP_ECHO_REPLY ? "Echo reply" : t == ICMP_DEST_UNREACHABLE ? "Destination unreachable" : t == ICMP_SOURCE_QUENCH ? "Packet lost, slow down" : t == ICMP_REDIRECT ? "Redirect" : t == ICMP_ECHO_REQUEST ? "Echo request" : t == ICMP_ROUTER_ADVERTISEMENT ? "Router advertisement" : t == ICMP_ROUTER_SOLICITATION ? "Router solicitation " : t == ICMP_TIME_EXCEEDED ? "Time exceeded" : t == ICMP_PARAM_PROBLEM ? "IP parameter problem" : t == ICMP_TIME_STAMP_REQUEST ? "Timestamp request" : t == ICMP_TIME_STAMP_REPLY ? "Timestamp reply" : t == ICMP_INFO_REQUEST ? "Information request" : t == ICMP_INFO_REPLY ? "Information reply" : t == ICMP_ADDRESS_MASK_REQUEST ? "Address mask request" : t == ICMP_ADDRESS_MASK_REPLY ? "Address mask reply" : "<unknown>"; #pragma D binding "1.12" icmp_type_string inline string icmp6_type_string[uint8_t t] = t == ICMP6_ECHO_REPLY ? "Echo reply" : t == ICMP6_DEST_UNREACHABLE ? "Destination unreachable" : t == ICMP6_PACKET_TOO_BIG ? "Packet too big" : t == ICMP6_ND_REDIRECT ? "Redirect" : t == ICMP6_ECHO_REQUEST ? "Echo request" : t == ICMP6_ND_ROUTER_ADVERTISEMENT ? "Router advertisement" : t == ICMP6_ND_ROUTER_SOLICITATION ? "Router solicitation " : t == ICMP6_ND_NEIGHBOR_SOLICITATION ? "Neighbor solicitation" : t == ICMP6_ND_NEIGHBOR_ADVERTISEMENT ? "Neighbor advertisement" : t == ICMP6_TIME_EXCEEDED ? "Time exceeded" : t == ICMP6_PARAM_PROBLEM ? "IP parameter problem" : t == ICMP6_MLD_LISTENER_QUERY ? "MLD listener query" : t == ICMP6_MLD_LISTENER_REPORT ? "MLD listener report" : t == ICMP6_MLD_LISTENER_REDUCTION ? "MLD listener reduction" : t == ICMP6_MLD_V2_LISTENER_REPORT ? "MLDv2 listener report" : t == ICMP6_ROUTER_RENUMBERING ? "Router renumbering" : "<unknown>"; #pragma D binding "1.12" icmp6_type_string inline string icmp_time_exceeded_code_string[uint8_t c] = c == ICMP_TTL_EXCEEDED ? "Time exceeded in transit" : c == ICMP_REASSEMBLY_TIME_EXCEEDED ? "Time exceeded in reassembly" : "<unknown>"; #pragma D binding "1.12" icmp_time_exceeded_code_string inline string icmp6_time_exceeded_code_string[uint8_t c] = c == ICMP6_TRANSIT_TIME_EXCEEDED ? "Hop limit exceeded in transit" : c == ICMP6_REASSEMBLY_TIME_EXCEEDED ? "Fragment reassembly time exceeded" : "<unknown>"; #pragma D binding "1.12" icmp6_time_exceeded_code_string inline string icmp_dest_unreachable_code_string[uint8_t c] = c == ICMP_NET_UNREACHABLE ? "Net unreachable" : c == ICMP_HOST_UNREACHABLE ? "Host unreachable" : c == ICMP_PROTOCOL_UNREACHABLE ? "Bad protocol" : c == ICMP_PORT_UNREACHABLE ? "Port unreachable" : c == ICMP_FRAGMENTATION_NEEDED ? "Needed to fragment" : c == ICMP_SOURCE_ROUTE_FAILED ? "Soure route failed" : c == ICMP_DEST_NET_UNKNOWN ? "Unknown network" : c== ICMP_SRC_HOST_ISOLATED ? "Source host isolated" : c == ICMP_DEST_NET_UNREACH_ADMIN ? "Net administratively prohibited" : c == ICMP_DEST_HOST_UNREACH_ADMIN ? "Host administratively prohibited" : c == ICMP_DEST_NET_UNREACH_TOS ? "Net unreachable for this TOS" : c == ICMP_DEST_HOST_UNREACH_TOS ? "Host unreachable for this TOS" : "<unknown>"; #pragma D binding "1.12" icmp_dest_unreachable_code_string inline string icmp6_dest_unreachable_code_string[uint8_t c] = c == ICMP6_DEST_UNREACHABLE_NOROUTE ? "No route to destination" : c == ICMP6_DEST_UNREACHABLE_ADMIN ? "Communication administratively prohibited" : c == ICMP6_DEST_UNREACHABLE_ADDR ? "Address unreachable" : c == ICMP6_DEST_UNREACHABLE_NOPORT ? "Port unreachable" : "<unknown>"; #pragma D binding "1.12" icmp6_dest_unreachable_code_string inline string icmp_redirect_code_string[uint8_t c] = c == ICMP_REDIRECT_NET ? "Redirect for network" : c == ICMP_REDIRECT_HOST ? "Redirect for host" : c == ICMP_REDIRECT_TOSNET ? "Redirect for tos and net" : c == ICMP_REDIRECT_TOSHOST ? "Redirect for tos and host" : "<unknown>"; #pragma D binding "1.12" icmp_redirect_code_string inline string icmp_param_problem_code_string[uint8_t c] = c == ICMP_PARAM_PROBLEM_OPTABSENT ? "Required option missing" : c == ICMP_PARAM_PROBLEM_BADLENGTH ? "Bad length" : "<unknown>"; #pragma D binding "1.12" icmp_param_problem_code_string inline string icmp6_param_problem_code_string[uint8_t c] = c == ICMP6_PARAM_PROBLEM_HEADER ? "Erroneous header field" : c == ICMP6_PARAM_PROBLEM_OPTION ? "Unrecognized IPv6 option" : c == ICMP6_PARAM_PROBLEM_NEXTHEADER ? "Unrecognized next header type" : c == ICMP6_PARAM_PROBLEM_FRAGHDRCHN ? "First fragment has incomplete IPv6 header chain" : "<unknown>"; #pragma D binding "1.12" icmp6_param_problem_code_string /* * Type used to translate router advertisement address/preference pairs. */ typedef struct icmp_radvinfo { string icmp_radv_addr; uint32_t icmp_radv_pref; } icmp_radvinfo_t; inline int ICMP_RADVINFO_SIZE = 2 * sizeof (uint32_t); #pragma D binding "1.12" ICMP_RADVINFO_SIZE #pragma D binding "1.12" translator translator icmp_radvinfo_t < uint32_t *I > { icmp_radv_addr = I != NULL ? inet_ntoa((ipaddr_t *)I) : "<unknown>"; icmp_radv_pref = I != NULL ? ntohl(*(I + 1)) : 0; }; /* * Type used to translate MLDv2 Multicast Address Records. */ typedef struct icmp6_marinfo { uint8_t icmp6_mar_type; uint8_t icmp6_mar_auxlen; uint16_t icmp6_mar_numsrc; string icmp6_mar_group; } icmp6_marinfo_t; inline int ICMP6_MARINFO_SIZE = sizeof (mld2mar_t); #pragma D binding "1.12" ICMP6_MARINFO_SIZE #pragma D binding "1.12" translator translator icmp6_marinfo_t < uintptr_t I > { icmp6_mar_type = ((mld2mar_t *)I)->mld2mar_type; icmp6_mar_auxlen = ((mld2mar_t *)I)->mld2mar_auxlen; icmp6_mar_numsrc = ntohs(((mld2mar_t *)I)->mld2mar_numsrc); icmp6_mar_group = inet_ntoa6((in6_addr_t *) &((mld2mar_t *)I)->mld2mar_group); }; /* * icmpinfo is the ICMP header fields. */ typedef struct icmpinfo { uint8_t icmp_version; uint8_t icmp_type; uint8_t icmp_code; uint16_t icmp_checksum; uint32_t icmp_address_mask; uint16_t icmp_echo_id; uint16_t icmp_echo_seq; uint32_t icmp_param_problem_ptr; uint32_t icmp_pmtu_update; uint8_t icmp_radv_num_addrs; uint16_t icmp_radv_lifetime; uint32_t *icmp_radv_addrs; string icmp_redirect_gateway; uint32_t icmp_timestamp_otime; uint32_t icmp_timestamp_rtime; uint32_t icmp_timestamp_ttime; string icmp6_mld_addr; uint8_t icmp6_mld_v2_num_mars; uintptr_t icmp6_mld_v2_mars; string icmp6_nd_target; string icmp6_nd_redirect_destination; uint32_t icmp6_nd_radv_reachable; uint32_t icmp6_nd_radv_retransmit; uint8_t icmp6_rr_segnum; uint8_t icmp6_rr_flags; uint16_t icmp6_rr_maxdelay; /* Original data that triggered ICMP error - NULL/0 if not ICMP error */ ipha_t *icmp_error_ip_hdr; /* Orig. IP hdr for ICMP error */ ip6_t *icmp_error_ip6_hdr; /* Orig. IPv6 hdr for ICMP6 error */ uint16_t icmp_error_sport; /* Orig. sport for ICMP[6] error */ uint16_t icmp_error_dport; /* Orig. dport for ICMP[6] error */ struct icmp *icmp_hdr; icmp6_t *icmp6_hdr; } icmpinfo_t; typedef uintptr_t __dtrace_icmp_icmph_t; inline int ICMP_MINLEN = 8; #pragma D binding "1.12" ICMP_MINLEN inline int ICMP6_MINLEN = 8; #pragma D binding "1.12" ICMP6_MINLEN /* Inline used below to simplify retrieval of error info. */ inline int icmp_has_error_info[uint8_t p, uint8_t t] = ((p == 4 && (t == ICMP_DEST_UNREACHABLE || t == ICMP_PARAM_PROBLEM || t == ICMP_TIME_EXCEEDED || t == ICMP_REDIRECT)) || (p == 6 && (t == ICMP6_DEST_UNREACHABLE || t == ICMP6_PARAM_PROBLEM || t == ICMP6_TIME_EXCEEDED || t == ICMP6_PACKET_TOO_BIG))) ? 1 : 0; #pragma D binding "1.12" translator translator icmpinfo_t < __dtrace_icmp_icmph_t *I > { icmp_version = *(uint8_t *)arg2 >> 4; icmp_type = *(uint8_t *)arg2 >> 4 == 4 ? ((struct icmp *)I)->icmp_type : ((icmp6_t *)I)->icmp6_type; icmp_code = *(uint8_t *)arg2 >> 4 == 4 ? ((struct icmp *)I)->icmp_code : ((icmp6_t *)I)->icmp6_code; icmp_checksum = *(uint8_t *)arg2 >> 4 == 4 ? ((struct icmp *)I)->icmp_cksum : ((icmp6_t *)I)->icmp6_cksum; icmp_address_mask = *(uint8_t *)arg2 >> 4 == 4 && ((struct icmp *)I)->icmp_type == ICMP_ADDRESS_MASK_REPLY ? ntohl(((struct icmp *)I)->icmp_dun.id_mask) : 0; icmp_echo_id = *(uint8_t *)arg2 >> 4 == 4 && (((struct icmp *)I)->icmp_type == ICMP_ECHO_REQUEST || ((struct icmp *)I)->icmp_type == ICMP_ECHO_REPLY) ? ntohs(((struct icmp *)I)->icmp_hun.ih_idseq.icd_id) : *(uint8_t *)arg2 >> 4 == 6 && (((icmp6_t *)I)->icmp6_type == ICMP6_ECHO_REQUEST || ((icmp6_t *)I)->icmp6_type == ICMP6_ECHO_REPLY) ? ntohs(((icmp6_t *)I)->icmp6_dataun.icmp6_un_data16[0]) : 0; icmp_echo_seq = *(uint8_t *)arg2 >> 4 == 4 && (((struct icmp *)I)->icmp_type == ICMP_ECHO_REQUEST || ((struct icmp *)I)->icmp_type == ICMP_ECHO_REPLY) ? ntohs(((struct icmp *)I)->icmp_hun.ih_idseq.icd_seq) : *(uint8_t *)arg2 >> 4 == 6 && (((icmp6_t *)I)->icmp6_type == ICMP6_ECHO_REQUEST || ((icmp6_t *)I)->icmp6_type == ICMP6_ECHO_REPLY) ? ntohs(((icmp6_t *)I)->icmp6_dataun.icmp6_un_data16[1]) : 0; icmp_param_problem_ptr = *(uint8_t *)arg2 >> 4 == 4 && ((struct icmp *)I)->icmp_type == ICMP_PARAM_PROBLEM ? ((struct icmp *)I)->icmp_hun.ih_pptr : *(uint8_t *)arg2 >> 4 == 6 && ((icmp6_t *)I)->icmp6_type == ICMP6_PARAM_PROBLEM ? ntohl( ((icmp6_t *)I)->icmp6_dataun.icmp6_un_data32[0]) : 0; icmp_pmtu_update = *(uint8_t *)arg2 >> 4 == 4 && ((struct icmp *)I)->icmp_type == ICMP_DEST_UNREACHABLE && ((struct icmp *)I)->icmp_code == ICMP_FRAGMENTATION_NEEDED ? ntohs(((struct icmp *)I)->icmp_hun.ih_pmtu.ipm_nextmtu) : *(uint8_t *)arg2 >> 4 == 6 && ((icmp6_t *)I)->icmp6_type == ICMP6_PACKET_TOO_BIG ? ntohl( ((icmp6_t *)I)->icmp6_dataun.icmp6_un_data32[0]) : 0; icmp_radv_num_addrs = *(uint8_t *)arg2 >> 4 == 4 && ((struct icmp *)I)->icmp_type == ICMP_ROUTER_ADVERTISEMENT ? ((struct icmp *)I)->icmp_hun.ih_rtradv.irt_num_addrs : 0; icmp_radv_lifetime = *(uint8_t *)arg2 >> 4 == 4 && ((struct icmp *)I)->icmp_type == ICMP_ROUTER_ADVERTISEMENT ? ntohs(((struct icmp *)I)->icmp_hun.ih_rtradv.irt_lifetime) : 0; icmp_radv_addrs = *(uint8_t *)arg2 >> 4 == 4 && ((struct icmp *)I)->icmp_type == ICMP_ROUTER_ADVERTISEMENT ? (uint32_t *)((uchar_t *)I + offsetof(struct icmp, icmp_dun)) : NULL; icmp_redirect_gateway = *(uint8_t *)arg2 >> 4 == 4 && ((struct icmp *)I)->icmp_type == ICMP_REDIRECT ? inet_ntoa((ipaddr_t *) &(((struct icmp *)I)->icmp_hun.ih_gwaddr.S_un.S_addr)) : "<unknown>"; icmp_timestamp_otime = *(uint8_t *)arg2 >> 4 == 4 && (((struct icmp *)I)->icmp_type == ICMP_TIME_STAMP_REQUEST || ((struct icmp *)I)->icmp_type == ICMP_TIME_STAMP_REPLY) ? ntohl(((struct icmp *)I)->icmp_dun.id_ts.its_otime) : 0; icmp_timestamp_rtime = *(uint8_t *)arg2 >> 4 == 4 && (((struct icmp *)I)->icmp_type == ICMP_TIME_STAMP_REQUEST || ((struct icmp *)I)->icmp_type == ICMP_TIME_STAMP_REPLY) ? ntohl(((struct icmp *)I)->icmp_dun.id_ts.its_rtime) : 0; icmp_timestamp_ttime = *(uint8_t *)arg2 >> 4 == 4 && (((struct icmp *)I)->icmp_type == ICMP_TIME_STAMP_REQUEST || ((struct icmp *)I)->icmp_type == ICMP_TIME_STAMP_REPLY) ? ntohl(((struct icmp *)I)->icmp_dun.id_ts.its_ttime) : 0; icmp6_mld_addr = *(uint8_t *)arg2 >> 4 == 6 && (((icmp6_t *)I)->icmp6_type == ICMP6_MLD_LISTENER_QUERY || ((icmp6_t *)I)->icmp6_type == ICMP6_MLD_LISTENER_REPORT || ((icmp6_t *)I)->icmp6_type == ICMP6_MLD_LISTENER_REDUCTION) ? inet_ntoa6((in6_addr_t *)((uchar_t *)I + sizeof (icmp6_t))) : "<unknown>"; icmp6_mld_v2_num_mars = *(uint8_t *)arg2 >> 4 == 6 && ((icmp6_t *)I)->icmp6_type == ICMP6_MLD_V2_LISTENER_REPORT ? ntohs(((icmp6_t *)I)->icmp6_dataun.icmp6_un_data16[1]) : 0; icmp6_mld_v2_mars = *(uint8_t *)arg2 >> 4 == 6 && ((icmp6_t *)I)->icmp6_type == ICMP6_MLD_V2_LISTENER_REPORT ? (uintptr_t)((uchar_t *)I + sizeof (icmp6_t)) : NULL; icmp6_nd_target = *(uint8_t *)arg2 >> 4 == 6 && (((icmp6_t *)I)->icmp6_type == ICMP6_ND_REDIRECT || ((icmp6_t *)I)->icmp6_type == ICMP6_ND_NEIGHBOR_SOLICITATION || ((icmp6_t *)I)->icmp6_type == ICMP6_ND_NEIGHBOR_ADVERTISEMENT) ? inet_ntoa6((in6_addr_t *)((uchar_t *)I + sizeof (icmp6_t))) : "<unknown>"; icmp6_nd_redirect_destination = *(uint8_t *)arg2 >> 4 == 6 && ((icmp6_t *)I)->icmp6_type == ICMP6_ND_REDIRECT ? inet_ntoa6((in6_addr_t *)((uchar_t *)I + sizeof (icmp6_t) + sizeof (in6_addr_t *))) : "<unknown>"; icmp6_nd_radv_reachable = *(uint8_t *)arg2 >> 4 == 6 && ((icmp6_t *)I)->icmp6_type == ICMP6_ND_ROUTER_ADVERTISEMENT ? ntohl(*(uint32_t *)((uchar_t *)I + sizeof (icmp6_t))) : 0; icmp6_nd_radv_retransmit = *(uint8_t *)arg2 >> 4 == 6 && ((icmp6_t *)I)->icmp6_type == ICMP6_ND_ROUTER_ADVERTISEMENT ? ntohl(*(uint32_t *)((uchar_t *)I + sizeof (icmp6_t) + sizeof (uint32_t))) : 0; icmp6_rr_segnum = *(uint8_t *)arg2 >> 4 == 6 && ((icmp6_t *)I)->icmp6_type == ICMP6_ROUTER_RENUMBERING ? *(uint8_t *)((uchar_t *)I + sizeof (icmp6_t)) : 0; icmp6_rr_flags = *(uint8_t *)arg2 >> 4 == 6 && ((icmp6_t *)I)->icmp6_type == ICMP6_ROUTER_RENUMBERING ? *(uint8_t *)((uchar_t *)I + sizeof (icmp6_t) + sizeof (uint8_t)) : 0; icmp6_rr_maxdelay = *(uint8_t *)arg2 >> 4 == 6 && ((icmp6_t *)I)->icmp6_type == ICMP6_ROUTER_RENUMBERING ? ntohs(*(uint8_t *)((uchar_t *)I + sizeof (icmp6_t) + sizeof (uint16_t))) : 0; /* * For ICMP send events, the original IP header/ULP header are * in arg0->b_cont. */ icmp_error_ip_hdr = *(uint8_t *)arg2 >> 4 == 4 && icmp_has_error_info[*(uint8_t *)arg2 >> 4, ((struct icmp *)I)->icmp_type] ? probename == "send" ? (ipha_t *)(((mblk_t *)arg0)->b_cont->b_rptr) : (ipha_t *)((uchar_t *)I + ICMP_MINLEN) : NULL; icmp_error_ip6_hdr = *(uint8_t *)arg2 >> 4 == 6 && icmp_has_error_info[*(uint8_t *)arg2 >> 4, ((struct icmp *)I)->icmp_type] ? probename == "send" ? (ip6_t *)(((mblk_t *)arg0)->b_cont->b_rptr) : (ip6_t *)((uchar_t *)I + ICMP6_MINLEN) : NULL; icmp_error_sport = icmp_has_error_info[*(uint8_t *)arg2 >> 4, ((struct icmp *)I)->icmp_type] ? (probename == "send" ? ntohs(((udpha_t *) (((uchar_t *)((mblk_t *)arg0)->b_cont->b_rptr) + (*(uint8_t *)arg2 >> 4 == 4 ? sizeof (ipha_t) : sizeof (ip6_t))))->uha_src_port) : ntohs(((udpha_t *)((uchar_t *)I + (*(uint8_t *)arg2 >> 4 == 4 ? sizeof (ipha_t) + ICMP_MINLEN : sizeof (ip6_t) + ICMP6_MINLEN)))->uha_src_port)) : 0; icmp_error_dport = icmp_has_error_info[*(uint8_t *)arg2 >> 4, ((struct icmp *)I)->icmp_type] ? (probename == "send" ? ntohs(((udpha_t *) (((uchar_t *)((mblk_t *)arg0)->b_cont->b_rptr) + (*(uint8_t *)arg2 >> 4 == 4 ? sizeof (ipha_t) : sizeof (ip6_t))))->uha_dst_port) : ntohs(((udpha_t *)((uchar_t *)I + (*(uint8_t *)arg2 >> 4 == 4 ? sizeof (ipha_t) + ICMP_MINLEN : sizeof (ip6_t) + ICMP6_MINLEN)))->uha_dst_port)) : 0; icmp_hdr = *(uint8_t *)arg2 >> 4 == 4 ? (struct icmp *)I : NULL; icmp6_hdr = *(uint8_t *)arg2 >> 4 == 6 ? (icmp6_t *)I : NULL; };