ICMP icmpinfo_t Structure

The icmpinfo_t structure is a DTrace translated version of the information contained in the various forms of ICMP and ICMP6 headers.

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 ICMP error */
        uint16_t icmp_error_sport;
        uint16_t icmp_error_dport;
        struct icmp *icmp_hdr;
        icmp6_t *icmp6_hdr;
} icmpinfo_t;

Table 11-43 List of ICMP icmpinfo_t Members

Member Description

icmp_type

ICMP/ICMPv6 message type.

icmp_code

ICMP/ICMPv6 message code.

icmp_checksum

Checksum of ICMP header and payload.

icmp_hdr

Pointer to raw ICMP header at the time of tracing.

icmp6_hdr

Pointer to raw ICMPv6 header at the time of tracing.

icmp_address_mask

ICMP address mask reply.

icmp_echo_id

ICMP echo request/response ID.

icmp_echo_seq

ICMP echo request/response sequence number.

icmp_param_problem_ptr

Offset of parameter in original datagram that caused the ICMP/ICMPv6 parameter problem.

icmp_pmtu_update

Path MTU update for ICMP "destination unreachable/needs fragmentation" and ICMPv6 "packet too big".

icmp_radv_num_addrs

Number of ICMP router advertisements to follow.

icmp_radv_lifetime

Lifetime of router advertisements.

icmp_radv_addrs

Pointer to router advertisements.

icmp_redirect_gateway

Gateway for ICMP redirect.

icmp_timestamp_otime

Originating time set in ICMP timestamp request - number of seconds since 0:00 UT.

icmp_timestamp_rtime

Receive time of timestamp request set in ICMP timestamp response.

icmp_timestamp_ttime

Transmit time of timestamp reply sent in response to ICMP timestamp request.

icmp6_mld_addr

ICMP6 Multicast layer discovery address.

icmp6_mld_v2_num_mars

Number of ICMPv6 Multicast Address Records.

icmp6_mld_v2_mars

Pointer to first ICMPv6 Multicast Address Record.

icmp6_nd_target

ICMPv6 neighbor discovery target.

icmp6_nd_redirect_destination

ICMPv6 neighbor discovery redirect destination.

icmp6_nd_radv_reachable

ICMPv6 neighbor discovery router advertisement reachable.

icmp6_nd_radv_retransmit

ICMPv6 neighbor discovery router advertisement.

icmp6_rr_segnum

ICMPv6 router renumbering segment number.

icmp6_rr_flags

ICMPv6 router renumbering flags.

icmp6_rr_maxdelay

ICMPv6 router renumbering maximum delay.

icmp_error_ip_hdr

Original IP hdr for ICMP/ICMPv6 error.

icmp_error_ip6_hdr

Original IPv6 hdr for ICMP/ICMPv6 error.

icmp_error_sport

Original layer 4 source port for ICMP/ICMPv6 error.

icmp_error_dport

Original layer 4 destination port for ICMP/ICMPv6 error.

icmp_hdr

Pointer to original ICMP header, NULL for ICMP6.

icmp6_hdr

Pointer to original ICMPv6 header, NULL for ICMP.

For more information about the various ICMP/ICMPv6 message header formats, see RFC 792, 1256, and 2463.