[email protected] wrote:
> Hi,
>
> I am developing a dissector for MPICH over TCP and trying to use
> tcp_dissect_pdus. But unfortunately I am getting a blank screen. My code
> looks like this:
>
> void
> dissect_mpich_tcp_nonepm (tvbuff_t * tvb, packet_info * pinfo, proto_tree
> * tree)
> {
>   tcp_dissect_pdus (tvb, pinfo, tree, mpich_desegment, HEADER_LENGTH,
> get_mpich_pdu_len, dissect_mpich_tcp_nonepm_pdu);
> }
>
> guint
> get_mpich_pdu_len (tvbuff_t * tvb, int offset)
> {
>
>   guint32 messageSize = 0;
>   guint32 messagetype = 0;
>
>   messagetype = tvb_get_ntohs(tvb, offset);
>
>   if (messagetype == MPIDI_CH3_PKT_EAGER_SEND)
>      messageSize = tvb_get_ntohs(tvb,offset + 12);
>
>
>   return messageSize;
>
> }
>
>
> I noticed my code enter get_mpich_pdu_len but never goes beyond 
> messagetype = tvb_get_ntohs(tvb, offset); line.
>
> I am not sure what I am doing wrong.
>
> Any help is fully appreciated.
>
>
>
>   
The function prototype for get_mpich_pdu_len is wrong, it should be as
defined in packet-tcp.h

guint
get_mpich_pdu_len (packet_info *pInfo, tvbuff_t *tvb, int offset)

What is HEADER_LENGTH set to?  It should be the minimum size of your
header which appears to be at least 13 as you attempt to read from
offset + 12.

-- 
Regards,

Graham Bloice

___________________________________________________________________________
Sent via:    Wireshark-dev mailing list <[email protected]>
Archives:    http://www.wireshark.org/lists/wireshark-dev
Unsubscribe: https://wireshark.org/mailman/options/wireshark-dev
             mailto:[email protected]?subject=unsubscribe

Reply via email to