if (icmp6_type == ICMP6_ECHO_REQUEST) {
conv_key[0] = (guint32)cksum;
+ if (pinfo->flags.in_gre_pkt)
+ conv_key[0] |= 0x00010000; /* set a bit for "in GRE" */
trans = transaction_start(pinfo, icmp6_tree, conv_key);
} else { /* ICMP6_ECHO_REPLY */
guint16 tmp[2];
cksum_vec[0].len = sizeof(tmp);
cksum_vec[0].ptr = (guint8 *)tmp;
conv_key[0] = in_cksum(cksum_vec, 1);
+ if (pinfo->flags.in_gre_pkt)
+ conv_key[0] |= 0x00010000; /* set a bit for "in GRE" */
trans = transaction_end(pinfo, icmp6_tree, conv_key);
}
}