Hi,
Gilbert is most probably right. When browsing really quickly the plugin code you indicated in your initial post, I cannot find a proto_tree_add_item(tree, proto_openflow, tvb, 0, -1, ENC_NA) call.
Did you try to modify dissect_openflow() with something like this ?
static gint ett_of = -1;
void
dissect_openflow (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
{
proto_item *item = NULL;
proto_tree *of_tree;
if (tvb_length(tvb) < OFP_MIN_PACKET_SIZE) // This isn't openflow
return;
item = proto_tree_add_item(tree, proto_openflow, tvb, 0, -1, ENC_NA);
of_tree = proto_item_add_subtree(item, ett_of);
guint8 version = tvb_get_guint8(tvb, 0);
switch (version)
{
case OFP_100_NS::gVersion:
OFP_100_NS::Context->dissect(tvb, pinfo, of_tree);
break;
https://mail.google.com/mail/u/0/?shva=1#inbox/140c5a459a4249c2
case OFP_110_NS::gVersion:
OFP_110_NS::Context->dissect(tvb, pinfo, of_tree);
break;
case OFP_120_NS::gVersion:
OFP_120_NS::Context->dissect(tvb, pinfo, of_tree);
break;
case OFP_130_NS::gVersion:
OFP_130_NS::Context->dissect(tvb, pinfo, of_tree);
break;
default:
return;
}
}