-
- lnet_request_val_t* conversation_val ;
-
-
- if (check_col(pinfo->cinfo, COL_PROTOCOL)) {
- col_set_str(pinfo->cinfo, COL_PROTOCOL, "Lnet");
- }
-
- if (check_col(pinfo->cinfo, COL_INFO)) {
- /* t_nid dest_nid ; */
- /*t_nid src_nid ; */
- /*guint32 msg_type;*/
- /*[> col_clear(pinfo->cinfo, COL_INFO); <]*/
- /*dest_nid = get_nid(tvb, LNET_NID_DEST_OFFSET);*/
- /*src_nid = get_nid(tvb, LNET_NID_SRC_OFFSET);*/
-
- /*[> col_add_fstr(pinfo->cinfo, COL_INFO, "%s@tcp%d > %s@tcp%d",
- ip_to_str((guint8 *) &src_nid.addr), src_nid.interface,
- ip_to_str((guint8 *) & dest_nid.addr), dest_nid.interface); */
-
- msg_type = tvb_get_letohl(tvb, LNET_MSG_TYPE_OFFSET );
- /* We delete the entire line and add LNET + msg_type */
- col_add_fstr(pinfo->cinfo, COL_INFO, "LNET_%s", (msg_type < sizeof(lnet_msg_type_t)/sizeof(value_string)) ? lnet_msg_type_t[msg_type].strptr : "Unknown");
- }
-
- if (tree) {
- t_nid dest_nid ; /* nid value */
- t_nid src_nid ;
-
-
- proto_item *ti = NULL; /* principal node */
- proto_tree *lnet_tree = NULL ; /* principal tree */
- proto_tree *lnet_nid_src_tree= NULL ; /*subtree for the nids*/
- proto_tree *lnet_nid_dest_tree= NULL ;
- proto_item *ti_src_nid ; /* node for the nids */
- proto_item *ti_dest_nid ;
-
- gint offset = 0 ;
-
- guint32 msg_type ;
- guint32 payload_length;
- guint32 msg_filler_length;
-
-
- ti = proto_tree_add_item(tree,proto_lnet,tvb,0,-1,FALSE); /* principal node */
- /* ti=proto_tree_add_protocol_format(tree, proto_lnet, tvb, 0, -1, "Lnet"); */
-
- lnet_tree = proto_item_add_subtree(ti,ett_lnet); /* add the subtree*/
-
- if (ib_lnd_extra_bytes) {
- offset = dissect_ib_msg(tvb, lnet_tree, offset);
- if (offset == 0) {
- /* There was no LNet payload, only ob2lnd. */
- return;
- }
- } else {
- /* dissect the first 24 bytes (ksock_msg_t in
- lnet/socklnd.h */
- offset=dissect_ksock_msg(tvb,lnet_tree,offset);
- }
-
- /* Dest nid */
- dest_nid = get_nid(tvb, offset);
- ti_dest_nid = proto_tree_add_text(lnet_tree, tvb, offset, 8, "dest_nid = %s@tcp%d", ip_to_str((guint8 *) &dest_nid.addr), dest_nid.interface);
- lnet_nid_dest_tree = proto_item_add_subtree(ti_dest_nid,ett_lnet_dest_nid) ;
- offset=dissect_dest_nid(tvb,lnet_nid_dest_tree,offset);
-
- /* Same for src_nid */
- src_nid = get_nid(tvb, offset);
- ti_src_nid = proto_tree_add_text(lnet_tree, tvb, offset, 8, "src_nid = %s@tcp%d", ip_to_str((guint8 *) &src_nid.addr), src_nid.interface);
- lnet_nid_src_tree = proto_item_add_subtree(ti_src_nid,ett_lnet_src_nid) ;
- offset=dissect_src_nid(tvb,lnet_nid_src_tree,offset);
-
- /* pid */
- proto_tree_add_item(lnet_tree, hf_lnet_src_pid, tvb, offset, 4, TRUE); offset+=4;
- proto_tree_add_item(lnet_tree, hf_lnet_dest_pid, tvb, offset, 4, TRUE); offset+=4;
-
- /* message_type (32 bits) */
- msg_type = tvb_get_letohl(tvb, offset+0);
- /* put some nice info on lnet line */
- proto_item_append_text(ti," %s", (msg_type < sizeof(lnet_msg_type_t)/sizeof(value_string)) ? lnet_msg_type_t[msg_type].strptr : "Unknow") ; /* rajout de l'info dans l'arbre */
- proto_tree_add_item(lnet_tree, hf_lnet_msg_type, tvb, offset, 4, TRUE); offset+=4;
-
- /* payload data (to follow) length :*/
- payload_length = tvb_get_letohl(tvb,offset+0);
- proto_tree_add_item(lnet_tree, hf_lnet_payload_length, tvb, offset, 4, TRUE); offset+=4;
-
- /* here offset = 24+8+8+4+4+4+4 = 56 */
- match = 0 ;
- switch(msg_type) {
- case LNET_MSG_ACK:
- offset=dissect_lnet_ack(tvb,lnet_tree,offset,pinfo);
- match = tvb_get_letoh64(tvb,72 );
- break;
- case LNET_MSG_PUT:
- offset=dissect_lnet_put(tvb,lnet_tree,offset,pinfo);
- match = tvb_get_letoh64(tvb, 72);
- break;
- case LNET_MSG_GET:
- offset=dissect_lnet_get(tvb,lnet_tree,offset,pinfo);
- match = tvb_get_letoh64(tvb, 72);
- break;
- case LNET_MSG_REPLY:
- offset=dissect_lnet_reply(tvb,lnet_tree,offset);
- break;
- case LNET_MSG_HELLO:
- offset=dissect_lnet_hello(tvb,lnet_tree,offset);
- break;
- default:
- break;
+ gint offset = 0;
+ t_nid dest_nid; /* nid value */
+ t_nid src_nid;
+ proto_item *ti = NULL; /* principal node */
+ proto_tree *lnet_tree = NULL; /* principal tree */
+ proto_tree *lnet_nid_src_tree = NULL; /*subtree for the nids*/
+ proto_tree *lnet_nid_dest_tree = NULL;
+ proto_item *ti_src_nid; /* node for the nids */
+ proto_item *ti_dest_nid;
+ guint32 payload_length;
+ guint32 msg_filler_length;
+
+ /* lnet_request_val_t* conversation_val ; */
+ col_set_str(pinfo->cinfo, COL_PROTOCOL, "Lnet");
+
+ msg_type = tvb_get_letohl(tvb, LNET_MSG_TYPE_OFFSET);
+ /* We delete the entire line and add LNET + msg_type */
+ col_add_fstr(pinfo->cinfo, COL_INFO, "LNET_%s",
+ (msg_type < sizeof(lnet_msg_type_t)/sizeof(value_string))
+ ? lnet_msg_type_t[msg_type].strptr
+ : "Unknown");
+
+ if (tree == NULL)
+ goto out;
+
+ /* principal node */
+ ti = proto_tree_add_item(tree, proto_lnet, tvb, 0, -1, FALSE);
+
+ lnet_tree = proto_item_add_subtree(ti, ett_lnet);
+
+ if (ib_lnd_extra_bytes) {
+ offset = dissect_ib_msg(tvb, lnet_tree, offset);
+ if (offset == 0) {
+ /* There was no LNet payload, only ob2lnd. */
+ goto out;