Wireshark-dev: [Wireshark-dev] proto tree

From: Amit Paliwal <Amit.Paliwal@xxxxxxxxxxxxxxx>
Date: Mon, 9 Jun 2008 12:09:42 +0530

/** Each proto_tree, proto_item is one of these. */
typedef struct _proto_node {
        struct _proto_node *first_child;
        struct _proto_node *last_child;
        struct _proto_node *next;
        struct _proto_node *parent;
        field_info  *finfo;
        tree_data_t *tree_data;
} proto_node;

is the main structure used for defining a tree node, i would like to get a better insight into how is this tree managed. i mean from the declaration it becomes apparent that every sibling node will be pointing to next sibling and the parent, why is this required.

is it a general tree or some specific kind of tree.

/** A protocol tree element. */
typedef proto_node proto_tree;
/** A protocol item element. */
typedef proto_node proto_item;

what is the use of defining proto_tree and proto_item differently?
for each protocol how is this tree managed.

kindly help me if you know.

______________________________________________________________________