Bind ip/tcp/udp provider translators and symbols to the same versions as in
illumos, rather than using "1.0" everywhere. Some of the translators use D functions that are not present in version 1.0 (e.g. inet_ntoa()) which can result in libdtrace crashing when running scripts that restrict themselves to version 1.0 (e.g. with "-x version=1.0"). MFC after: 1 week
This commit is contained in:
parent
5ae59dec60
commit
2f28ceeb34
@ -125,53 +125,53 @@ typedef struct ipv6info {
|
||||
ip6_t *ipv6_hdr; /* pointer to raw header */
|
||||
} ipv6info_t;
|
||||
|
||||
#pragma D binding "1.0" IPPROTO_IP
|
||||
#pragma D binding "1.5" IPPROTO_IP
|
||||
inline short IPPROTO_IP = 0;
|
||||
#pragma D binding "1.0" IPPROTO_ICMP
|
||||
#pragma D binding "1.5" IPPROTO_ICMP
|
||||
inline short IPPROTO_ICMP = 1;
|
||||
#pragma D binding "1.0" IPPROTO_IGMP
|
||||
#pragma D binding "1.5" IPPROTO_IGMP
|
||||
inline short IPPROTO_IGMP = 2;
|
||||
#pragma D binding "1.0" IPPROTO_IPV4
|
||||
#pragma D binding "1.5" IPPROTO_IPV4
|
||||
inline short IPPROTO_IPV4 = 4;
|
||||
#pragma D binding "1.0" IPPROTO_TCP
|
||||
#pragma D binding "1.5" IPPROTO_TCP
|
||||
inline short IPPROTO_TCP = 6;
|
||||
#pragma D binding "1.0" IPPROTO_UDP
|
||||
#pragma D binding "1.5" IPPROTO_UDP
|
||||
inline short IPPROTO_UDP = 17;
|
||||
#pragma D binding "1.0" IPPROTO_IPV6
|
||||
#pragma D binding "1.5" IPPROTO_IPV6
|
||||
inline short IPPROTO_IPV6 = 41;
|
||||
#pragma D binding "1.0" IPPROTO_ROUTING
|
||||
#pragma D binding "1.5" IPPROTO_ROUTING
|
||||
inline short IPPROTO_ROUTING = 43;
|
||||
#pragma D binding "1.0" IPPROTO_FRAGMENT
|
||||
#pragma D binding "1.5" IPPROTO_FRAGMENT
|
||||
inline short IPPROTO_FRAGMENT = 44;
|
||||
#pragma D binding "1.0" IPPROTO_RSVP
|
||||
#pragma D binding "1.5" IPPROTO_RSVP
|
||||
inline short IPPROTO_RSVP = 46;
|
||||
#pragma D binding "1.0" IPPROTO_GRE
|
||||
#pragma D binding "1.5" IPPROTO_GRE
|
||||
inline short IPPROTO_GRE = 47;
|
||||
#pragma D binding "1.0" IPPROTO_ESP
|
||||
#pragma D binding "1.5" IPPROTO_ESP
|
||||
inline short IPPROTO_ESP = 50;
|
||||
#pragma D binding "1.0" IPPROTO_AH
|
||||
#pragma D binding "1.5" IPPROTO_AH
|
||||
inline short IPPROTO_AH = 51;
|
||||
#pragma D binding "1.0" IPPROTO_MOBILE
|
||||
#pragma D binding "1.5" IPPROTO_MOBILE
|
||||
inline short IPPROTO_MOBILE = 55;
|
||||
#pragma D binding "1.0" IPPROTO_ICMPV6
|
||||
#pragma D binding "1.5" IPPROTO_ICMPV6
|
||||
inline short IPPROTO_ICMPV6 = 58;
|
||||
#pragma D binding "1.0" IPPROTO_DSTOPTS
|
||||
#pragma D binding "1.5" IPPROTO_DSTOPTS
|
||||
inline short IPPROTO_DSTOPTS = 60;
|
||||
#pragma D binding "1.0" IPPROTO_ETHERIP
|
||||
#pragma D binding "1.5" IPPROTO_ETHERIP
|
||||
inline short IPPROTO_ETHERIP = 97;
|
||||
#pragma D binding "1.0" IPPROTO_PIM
|
||||
#pragma D binding "1.5" IPPROTO_PIM
|
||||
inline short IPPROTO_PIM = 103;
|
||||
#pragma D binding "1.0" IPPROTO_IPCOMP
|
||||
#pragma D binding "1.5" IPPROTO_IPCOMP
|
||||
inline short IPPROTO_IPCOMP = 108;
|
||||
#pragma D binding "1.0" IPPROTO_SCTP
|
||||
#pragma D binding "1.5" IPPROTO_SCTP
|
||||
inline short IPPROTO_SCTP = 132;
|
||||
#pragma D binding "1.0" IPPROTO_RAW
|
||||
#pragma D binding "1.5" IPPROTO_RAW
|
||||
inline short IPPROTO_RAW = 255;
|
||||
|
||||
inline uint8_t INP_IPV4 = 0x01;
|
||||
inline uint8_t INP_IPV6 = 0x02;
|
||||
|
||||
#pragma D binding "1.0" protocols
|
||||
#pragma D binding "1.5" protocols
|
||||
inline string protocols[int proto] =
|
||||
proto == IPPROTO_IP ? "IP" :
|
||||
proto == IPPROTO_ICMP ? "ICMP" :
|
||||
@ -200,12 +200,12 @@ inline string protocols[int proto] =
|
||||
* This field is always NULL according to the current definition of the ip
|
||||
* probes.
|
||||
*/
|
||||
#pragma D binding "1.0" translator
|
||||
#pragma D binding "1.5" translator
|
||||
translator pktinfo_t < void *p > {
|
||||
pkt_addr = NULL;
|
||||
};
|
||||
|
||||
#pragma D binding "1.0" translator
|
||||
#pragma D binding "1.5" translator
|
||||
translator csinfo_t < void *p > {
|
||||
cs_addr = NULL;
|
||||
cs_cid = (uint64_t)p;
|
||||
@ -213,7 +213,7 @@ translator csinfo_t < void *p > {
|
||||
cs_zoneid = 0;
|
||||
};
|
||||
|
||||
#pragma D binding "1.0" translator
|
||||
#pragma D binding "1.6.3" translator
|
||||
translator csinfo_t < struct inpcb *p > {
|
||||
cs_addr = NULL;
|
||||
cs_cid = (uint64_t)p;
|
||||
@ -221,7 +221,7 @@ translator csinfo_t < struct inpcb *p > {
|
||||
cs_zoneid = 0;
|
||||
};
|
||||
|
||||
#pragma D binding "1.0" translator
|
||||
#pragma D binding "1.5" translator
|
||||
translator ipinfo_t < uint8_t *p > {
|
||||
ip_ver = p == NULL ? 0 : ((struct ip *)p)->ip_v;
|
||||
ip_plength = p == NULL ? 0 :
|
||||
@ -238,17 +238,17 @@ translator ipinfo_t < uint8_t *p > {
|
||||
inet_ntoa6(&((struct ip6_hdr *)p)->ip6_dst);
|
||||
};
|
||||
|
||||
#pragma D binding "1.0" IFF_LOOPBACK
|
||||
#pragma D binding "1.5" IFF_LOOPBACK
|
||||
inline int IFF_LOOPBACK = 0x8;
|
||||
|
||||
#pragma D binding "1.0" translator
|
||||
#pragma D binding "1.5" translator
|
||||
translator ifinfo_t < struct ifnet *p > {
|
||||
if_name = p->if_xname;
|
||||
if_local = (p->if_flags & IFF_LOOPBACK) == 0 ? 0 : 1;
|
||||
if_addr = (uintptr_t)p;
|
||||
};
|
||||
|
||||
#pragma D binding "1.0" translator
|
||||
#pragma D binding "1.5" translator
|
||||
translator ipv4info_t < struct ip *p > {
|
||||
ipv4_ver = p == NULL ? 0 : p->ip_v;
|
||||
ipv4_ihl = p == NULL ? 0 : p->ip_hl;
|
||||
@ -268,7 +268,7 @@ translator ipv4info_t < struct ip *p > {
|
||||
ipv4_hdr = (ipha_t *)p;
|
||||
};
|
||||
|
||||
#pragma D binding "1.0" translator
|
||||
#pragma D binding "1.5" translator
|
||||
translator ipv6info_t < struct ip6_hdr *p > {
|
||||
ipv6_ver = p == NULL ? 0 : (ntohl(p->ip6_ctlun.ip6_un1.ip6_un1_flow) & 0xf0000000) >> 28;
|
||||
ipv6_tclass = p == NULL ? 0 : (ntohl(p->ip6_ctlun.ip6_un1.ip6_un1_flow) & 0x0ff00000) >> 20;
|
||||
|
@ -31,49 +31,49 @@
|
||||
/*
|
||||
* Convert a TCP state value to a string.
|
||||
*/
|
||||
#pragma D binding "1.0" TCPS_CLOSED
|
||||
#pragma D binding "1.6.3" TCPS_CLOSED
|
||||
inline int TCPS_CLOSED = 0;
|
||||
#pragma D binding "1.0" TCPS_LISTEN
|
||||
#pragma D binding "1.6.3" TCPS_LISTEN
|
||||
inline int TCPS_LISTEN = 1;
|
||||
#pragma D binding "1.0" TCPS_SYN_SENT
|
||||
#pragma D binding "1.6.3" TCPS_SYN_SENT
|
||||
inline int TCPS_SYN_SENT = 2;
|
||||
#pragma D binding "1.0" TCPS_SYN_RECEIVED
|
||||
#pragma D binding "1.6.3" TCPS_SYN_RECEIVED
|
||||
inline int TCPS_SYN_RECEIVED = 3;
|
||||
#pragma D binding "1.0" TCPS_ESTABLISHED
|
||||
#pragma D binding "1.6.3" TCPS_ESTABLISHED
|
||||
inline int TCPS_ESTABLISHED = 4;
|
||||
#pragma D binding "1.0" TCPS_CLOSE_WAIT
|
||||
#pragma D binding "1.6.3" TCPS_CLOSE_WAIT
|
||||
inline int TCPS_CLOSE_WAIT = 5;
|
||||
#pragma D binding "1.0" TCPS_FIN_WAIT_1
|
||||
#pragma D binding "1.6.3" TCPS_FIN_WAIT_1
|
||||
inline int TCPS_FIN_WAIT_1 = 6;
|
||||
#pragma D binding "1.0" TCPS_CLOSING
|
||||
#pragma D binding "1.6.3" TCPS_CLOSING
|
||||
inline int TCPS_CLOSING = 7;
|
||||
#pragma D binding "1.0" TCPS_LAST_ACK
|
||||
#pragma D binding "1.6.3" TCPS_LAST_ACK
|
||||
inline int TCPS_LAST_ACK = 8;
|
||||
#pragma D binding "1.0" TCPS_FIN_WAIT_2
|
||||
#pragma D binding "1.6.3" TCPS_FIN_WAIT_2
|
||||
inline int TCPS_FIN_WAIT_2 = 9;
|
||||
#pragma D binding "1.0" TCPS_TIME_WAIT
|
||||
#pragma D binding "1.6.3" TCPS_TIME_WAIT
|
||||
inline int TCPS_TIME_WAIT = 10;
|
||||
|
||||
/* TCP segment flags. */
|
||||
#pragma D binding "1.0" TH_FIN
|
||||
#pragma D binding "1.6.3" TH_FIN
|
||||
inline uint8_t TH_FIN = 0x01;
|
||||
#pragma D binding "1.0" TH_SYN
|
||||
#pragma D binding "1.6.3" TH_SYN
|
||||
inline uint8_t TH_SYN = 0x02;
|
||||
#pragma D binding "1.0" TH_RST
|
||||
#pragma D binding "1.6.3" TH_RST
|
||||
inline uint8_t TH_RST = 0x04;
|
||||
#pragma D binding "1.0" TH_PUSH
|
||||
#pragma D binding "1.6.3" TH_PUSH
|
||||
inline uint8_t TH_PUSH = 0x08;
|
||||
#pragma D binding "1.0" TH_ACK
|
||||
#pragma D binding "1.6.3" TH_ACK
|
||||
inline uint8_t TH_ACK = 0x10;
|
||||
#pragma D binding "1.0" TH_URG
|
||||
#pragma D binding "1.6.3" TH_URG
|
||||
inline uint8_t TH_URG = 0x20;
|
||||
#pragma D binding "1.0" TH_ECE
|
||||
#pragma D binding "1.6.3" TH_ECE
|
||||
inline uint8_t TH_ECE = 0x40;
|
||||
#pragma D binding "1.0" TH_CWR
|
||||
#pragma D binding "1.6.3" TH_CWR
|
||||
inline uint8_t TH_CWR = 0x80;
|
||||
|
||||
/* TCP connection state strings. */
|
||||
#pragma D binding "1.0" tcp_state_string
|
||||
#pragma D binding "1.6.3" tcp_state_string
|
||||
inline string tcp_state_string[int32_t state] =
|
||||
state == TCPS_CLOSED ? "state-closed" :
|
||||
state == TCPS_LISTEN ? "state-listen" :
|
||||
@ -160,7 +160,7 @@ typedef struct tcpinfoh {
|
||||
struct tcphdr *tcp_hdr; /* raw TCP header */
|
||||
} tcpinfoh_t;
|
||||
|
||||
#pragma D binding "1.0" translator
|
||||
#pragma D binding "1.6.3" translator
|
||||
translator csinfo_t < struct tcpcb *p > {
|
||||
cs_addr = NULL;
|
||||
cs_cid = (uint64_t)(p == NULL ? 0 : p->t_inpcb);
|
||||
@ -168,7 +168,7 @@ translator csinfo_t < struct tcpcb *p > {
|
||||
cs_zoneid = 0;
|
||||
};
|
||||
|
||||
#pragma D binding "1.0" translator
|
||||
#pragma D binding "1.6.3" translator
|
||||
translator tcpsinfo_t < struct tcpcb *p > {
|
||||
tcps_addr = (uintptr_t)p;
|
||||
tcps_local = -1; /* XXX */
|
||||
@ -202,7 +202,7 @@ translator tcpsinfo_t < struct tcpcb *p > {
|
||||
tcps_retransmit = p == NULL ? -1 : p->t_rxtshift > 0 ? 1 : 0;
|
||||
};
|
||||
|
||||
#pragma D binding "1.0" translator
|
||||
#pragma D binding "1.6.3" translator
|
||||
translator tcpinfo_t < struct tcphdr *p > {
|
||||
tcp_sport = p == NULL ? 0 : ntohs(p->th_sport);
|
||||
tcp_dport = p == NULL ? 0 : ntohs(p->th_dport);
|
||||
@ -221,7 +221,7 @@ translator tcpinfo_t < struct tcphdr *p > {
|
||||
* number, acknowledgement number, window size and urgent pointer are already
|
||||
* in host order and thus don't need to be converted.
|
||||
*/
|
||||
#pragma D binding "1.0" translator
|
||||
#pragma D binding "1.6.3" translator
|
||||
translator tcpinfoh_t < struct tcphdr *p > {
|
||||
tcp_sport = p == NULL ? 0 : ntohs(p->th_sport);
|
||||
tcp_dport = p == NULL ? 0 : ntohs(p->th_dport);
|
||||
@ -235,7 +235,7 @@ translator tcpinfoh_t < struct tcphdr *p > {
|
||||
tcp_hdr = (struct tcphdr *)p;
|
||||
};
|
||||
|
||||
#pragma D binding "1.0" translator
|
||||
#pragma D binding "1.6.3" translator
|
||||
translator tcplsinfo_t < int s > {
|
||||
tcps_state = s;
|
||||
};
|
||||
|
@ -50,7 +50,7 @@ typedef struct udpinfo {
|
||||
struct udphdr *udp_hdr; /* raw UDP header */
|
||||
} udpinfo_t;
|
||||
|
||||
#pragma D binding "1.0" translator
|
||||
#pragma D binding "1.6.3" translator
|
||||
translator udpsinfo_t < struct inpcb *p > {
|
||||
udps_addr = (uintptr_t)p;
|
||||
udps_lport = p == NULL ? 0 : ntohs(p->inp_inc.inc_ie.ie_lport);
|
||||
@ -65,7 +65,7 @@ translator udpsinfo_t < struct inpcb *p > {
|
||||
inet_ntoa6(&p->inp_inc.inc_ie.ie_dependfaddr.ie6_foreign);
|
||||
};
|
||||
|
||||
#pragma D binding "1.0" translator
|
||||
#pragma D binding "1.6.3" translator
|
||||
translator udpinfo_t < struct udphdr *p > {
|
||||
udp_sport = p == NULL ? 0 : ntohs(p->uh_sport);
|
||||
udp_dport = p == NULL ? 0 : ntohs(p->uh_dport);
|
||||
|
Loading…
Reference in New Issue
Block a user