Exemplo n.º 1
0
static void dissect_unregister_pdu(tvbuff_t *tvb, proto_tree *tree,int offset,int len, char flags)
{
	proto_item* item;
        proto_tree* subtree;
	gboolean little_endian = !(flags & NETWORK_BYTE_ORDER);

	item = proto_tree_add_text(tree, tvb, offset, len, "Unregister-PDU");
	subtree = proto_item_add_subtree(item, ett_unregister);

	if(flags & NON_DEFAULT_CONTEXT) {
                /* show context */
                offset += dissect_octet_string(tvb, subtree, offset, flags);
        }

        proto_tree_add_item(subtree, hf_unreg_timeout, tvb, offset, 1, FALSE);
        proto_tree_add_item(subtree, hf_unreg_prio, tvb, offset+1, 1, FALSE);
        proto_tree_add_item(subtree, hf_unreg_rsid, tvb, offset+2, 1, FALSE);
        offset+=4;

        /* Region */
        offset += dissect_object_id(tvb, subtree, offset, flags);

        if(len > offset) {
	        /* Upper bound (opt) */
                proto_tree_add_item(subtree, hf_unreg_ubound, tvb, offset, 4, little_endian);
                offset += 4;
        }
}
Exemplo n.º 2
0
static int
dissect_unregister_pdu(tvbuff_t *tvb, proto_tree *tree, int offset, int len, guint8 flags)
{
	proto_tree* subtree;
	guint encoding = (flags & NETWORK_BYTE_ORDER) ? ENC_BIG_ENDIAN : ENC_LITTLE_ENDIAN;

	subtree = proto_tree_add_subtree(tree, tvb, offset, len, ett_unregister, NULL, "Unregister-PDU");

	if(flags & NON_DEFAULT_CONTEXT) {
		/* show context */
		offset += dissect_octet_string(tvb, subtree, offset, flags);
	}

	proto_tree_add_item(subtree, hf_unreg_timeout, tvb, offset, 1, encoding);
	proto_tree_add_item(subtree, hf_unreg_prio, tvb, offset+1, 1, encoding);
	proto_tree_add_item(subtree, hf_unreg_rsid, tvb, offset+2, 1, encoding);
	offset+=4;

	/* Region */
	offset += dissect_object_id(tvb, subtree, offset, flags, OID_EXACT);

	len += PDU_HDR_LEN;
	if(len > offset) {
		/* Upper bound (opt) */
		proto_tree_add_item(subtree, hf_unreg_ubound, tvb, offset, 4, encoding);
		offset += 4;
	}

	return offset;
}
Exemplo n.º 3
0
static void dissect_add_caps_pdu(tvbuff_t *tvb, proto_tree *tree,int offset,int len, char flags)
{
	proto_item* item;
        proto_tree* subtree;

	item = proto_tree_add_text(tree, tvb, offset, len, "AddAgentCaps-PDU");
	subtree = proto_item_add_subtree(item, ett_addcap);

	if(flags & NON_DEFAULT_CONTEXT) {
                /* show context */
                offset += dissect_octet_string(tvb, subtree, offset, flags);
        }

	offset += dissect_object_id(tvb, subtree, offset, flags);

	offset += dissect_octet_string(tvb, subtree, offset, flags);
}
Exemplo n.º 4
0
static int
dissect_add_caps_pdu(tvbuff_t *tvb, proto_tree *tree, int offset, int len, guint8 flags)
{
	proto_tree* subtree;

	subtree = proto_tree_add_subtree(tree, tvb, offset, len, ett_addcap, NULL, "AddAgentCaps-PDU");

	if(flags & NON_DEFAULT_CONTEXT) {
		/* show context */
		offset += dissect_octet_string(tvb, subtree, offset, flags);
	}

	offset += dissect_object_id(tvb, subtree, offset, flags, OID_EXACT);

	offset += dissect_octet_string(tvb, subtree, offset, flags);

	return offset;
}
Exemplo n.º 5
0
static int
dissect_ping_pdu(tvbuff_t *tvb, proto_tree *tree, int offset, int len, guint8 flags)
{
	proto_tree* subtree;

	subtree = proto_tree_add_subtree(tree, tvb, offset, len, ett_ping, NULL, "Ping-PDU");

	if(flags & NON_DEFAULT_CONTEXT) {
		/* show context */
		offset += dissect_octet_string(tvb, subtree, offset, flags);
	}
	return offset;
}
Exemplo n.º 6
0
static int
dissect_varbind(tvbuff_t *tvb, proto_tree *tree, int offset, int len, guint8 flags)
{
	guint16 vtag;
	int tlen;
	proto_item* item;
	proto_tree* subtree;

	NORLES(flags, vtag, tvb, offset);
	/* 2 reserved bytes after this */

	if(tree) {
		item = proto_tree_add_text(tree, tvb, offset, len, "Value Representation");
		subtree = proto_item_add_subtree(item, ett_valrep);
	} else return len;

	proto_tree_add_uint(subtree, hf_vtag, tvb, offset, 2, vtag);
	tlen = dissect_object_id(tvb, subtree, offset + 4, flags, OID_EXACT);

	switch(vtag)
	{
		case  VB_OID:
			tlen += dissect_object_id(tvb, subtree, offset + tlen + 4, flags, OID_EXACT);
			break;

		case  VB_OPAQUE:
		case  VB_OSTR:
		case  VB_IPADDR:
			tlen += dissect_octet_string(tvb, subtree, offset + tlen + 4, flags);
			break;

		case  VB_TIMETICK:
		case  VB_COUNTER32:
		case  VB_INT:
		case  VB_GAUGE32:
			tlen += dissect_val32(tvb, subtree, offset + tlen + 4, flags);
			break;

		case  VB_COUNTER64:
			tlen += dissect_val64(tvb, subtree, offset + tlen + 4, flags);
			break;

		case  VB_NULL:
		case  VB_NOSUCHOBJ:
		case  VB_NOSUCHINST:
		case  VB_ENDOFMIB:
			break;
	}
	return tlen + 4;
}
Exemplo n.º 7
0
static void
dissect_idx_dealloc_pdu(tvbuff_t *tvb, proto_tree *tree, int offset, int len, guint8 flags)
{
	proto_tree* subtree;

	subtree = proto_tree_add_subtree(tree, tvb, offset, len, ett_idxdalloc, NULL, "IndexDeallocate-PDU");

	if(flags & NON_DEFAULT_CONTEXT) {
		/* show context */
		offset += dissect_octet_string(tvb, subtree, offset, flags);
	}

	while(len > offset) {
		offset += dissect_varbind(tvb, subtree, offset, len, flags);
	}
}
Exemplo n.º 8
0
static void dissect_idx_alloc_pdu(tvbuff_t *tvb, proto_tree *tree,int offset,int len, char flags)
{
	proto_item* item;
        proto_tree* subtree;

	item = proto_tree_add_text(tree, tvb, offset, len, "IndexAllocate-PDU");
	subtree = proto_item_add_subtree(item, ett_idxalloc);

	if(flags & NON_DEFAULT_CONTEXT) {
                /* show context */
                offset += dissect_octet_string(tvb, subtree, offset, flags);
        }

	while(len > offset) {
		offset += dissect_varbind(tvb, subtree, offset, len, flags);
	}
}
Exemplo n.º 9
0
static void dissect_getnext_pdu(tvbuff_t *tvb, proto_tree *tree,int offset,int len, char flags)
{
	proto_item* item;
	proto_tree* subtree;

	item = proto_tree_add_text(tree, tvb, offset, len, "GetNext-PDU");
	subtree = proto_item_add_subtree(item, ett_getnext);

	if(flags & NON_DEFAULT_CONTEXT) {
		/* show context */
		offset += dissect_octet_string(tvb, subtree, offset, flags);
	}

	while(len > offset) {
		offset += dissect_search_range(tvb, subtree, offset, flags);
	}
}
Exemplo n.º 10
0
static void
dissect_get_pdu(tvbuff_t *tvb, proto_tree *tree, int offset, int len, guint8 flags)
{
	proto_tree* subtree;

	subtree = proto_tree_add_subtree(tree, tvb, offset, len, ett_get, NULL, "Get-PDU");

	if(flags & NON_DEFAULT_CONTEXT) {
		/* show context */
		offset += dissect_octet_string(tvb, subtree, offset, flags);
	}

	len += PDU_HDR_LEN;
	while(len > offset) {
		offset += dissect_search_range(tvb, subtree, offset, flags, AGENTX_GET_PDU);
	}
}
Exemplo n.º 11
0
static int
dissect_rem_caps_pdu(tvbuff_t *tvb, proto_tree *tree, int offset, int len, guint8 flags)
{
	proto_item* item;
	proto_tree* subtree;

	item = proto_tree_add_text(tree, tvb, offset, len, "RemoveAgentCaps-PDU");
	subtree = proto_item_add_subtree(item, ett_remcap);

	if(flags & NON_DEFAULT_CONTEXT) {
		/* show context */
		offset += dissect_octet_string(tvb, subtree, offset, flags);
	}

	offset += dissect_object_id(tvb, subtree, offset, flags, OID_EXACT);

	return offset;
}
Exemplo n.º 12
0
static void
dissect_notify_pdu(tvbuff_t *tvb, proto_tree *tree, int offset, int len, guint8 flags)
{
	proto_item* item;
	proto_tree* subtree;

	item = proto_tree_add_text(tree, tvb, offset, len, "Notify-PDU");
	subtree = proto_item_add_subtree(item, ett_notify);

	if(flags & NON_DEFAULT_CONTEXT) {
		/* show context */
		offset += dissect_octet_string(tvb, subtree, offset, flags);
	}

	while(len > offset) {
		offset += dissect_varbind(tvb, subtree, offset, len, flags);
	}
}
Exemplo n.º 13
0
static void dissect_open_pdu(tvbuff_t *tvb, proto_tree *tree,int offset,int len, char flags)
{
	proto_item* item;
	proto_tree* subtree;
	guint8 timeout;

	item = proto_tree_add_text(tree, tvb, offset, len, "Open-PDU");
	subtree = proto_item_add_subtree(item, ett_open);

	timeout = tvb_get_guint8(tvb, offset);
	tvb_get_ntoh24(tvb, offset + 1);

	proto_tree_add_uint(subtree, hf_open_timeout, tvb, offset, 1, timeout);
	offset+=4;

	/* Search Range */
	offset += dissect_object_id(tvb, subtree, offset, flags);

	/* Octet string */
	offset += dissect_octet_string(tvb, subtree, offset, flags);
}
Exemplo n.º 14
0
static int
dissect_open_pdu(tvbuff_t *tvb, proto_tree *tree, int offset, int len, guint8 flags)
{
	proto_tree* subtree;
	guint8 timeout;

	subtree = proto_tree_add_subtree(tree, tvb, offset, len, ett_open, NULL, "Open-PDU");

	timeout = tvb_get_guint8(tvb, offset);
	tvb_get_ntoh24(tvb, offset + 1);

	proto_tree_add_uint(subtree, hf_open_timeout, tvb, offset, 1, timeout);
	offset+=4;

	/* Search Range */
	offset += dissect_object_id(tvb, subtree, offset, flags, OID_EXACT);

	/* Octet string */
	offset += dissect_octet_string(tvb, subtree, offset, flags);
	return offset;
}
Exemplo n.º 15
0
static void
dissect_getbulk_pdu(tvbuff_t *tvb, proto_tree *tree, int offset, int len, guint8 flags)
{
	proto_tree* subtree;
	guint encoding = (flags & NETWORK_BYTE_ORDER) ? ENC_BIG_ENDIAN : ENC_LITTLE_ENDIAN;

	subtree = proto_tree_add_subtree(tree, tvb, offset, len, ett_getbulk, NULL, "GetBulk-PDU");

	if(flags & NON_DEFAULT_CONTEXT) {
		/* show context */
		offset += dissect_octet_string(tvb, subtree, offset, flags);
	}

	proto_tree_add_item(subtree, hf_gbulk_nrepeat,	tvb, offset, 2, encoding);
	proto_tree_add_item(subtree, hf_gbulk_mrepeat,	tvb, offset + 2, 2, encoding);
	offset+=4;

	while(len >= offset) {
		offset += dissect_search_range(tvb, subtree, offset, flags, 0);
	}
}
Exemplo n.º 16
0
static void dissect_getbulk_pdu(tvbuff_t *tvb, proto_tree *tree,int offset,int len, char flags)
{
	proto_item* item;
        proto_tree* subtree;
	gboolean little_endian = !(flags & NETWORK_BYTE_ORDER);

	item = proto_tree_add_text(tree, tvb, offset, len, "GetBulk-PDU");
	subtree = proto_item_add_subtree(item, ett_getbulk);

	if(flags & NON_DEFAULT_CONTEXT) {
                /* show context */
                offset += dissect_octet_string(tvb, subtree, offset, flags);
        }

	proto_tree_add_item(subtree, hf_gbulk_nrepeat,  tvb, offset, 2, little_endian);
	proto_tree_add_item(subtree, hf_gbulk_mrepeat,  tvb, offset + 2, 2, little_endian);
	offset+=4;

	while(len >= offset) {
                offset += dissect_search_range(tvb, subtree, offset, flags);
	}
}