oampdu: Process DPoE GetRequest messages for Link and User Port objects

* Currently GetRequest messages processed only from ONU object itself
   and parsed incorrectly when such a messages originated for Link
   and User Port objects. This commit is fixing this parsing issue.

Signed-off-by: Arkady Gilinsky <8351139-ark-g@users.noreply.gitlab.com>
This commit is contained in:
Arkady Gilinsky 2021-03-08 07:16:20 +02:00 committed by Arkady Gilinsky
parent 2753c4c27e
commit 1084e72f78
1 changed files with 3 additions and 2 deletions

View File

@ -590,6 +590,7 @@ static const value_string vendor_specific_opcode_vals[] = {
/* DPoE Leaf-Branch codes */
#define DPOE_LB_ONU_OBJ 0xD60000
#define DPOE_LB_LINK_OBJ 0xD60002
#define DPOE_LB_USER_PORT_OBJ 0xD60003
#define DPOE_LB_ONU_ID 0xD70002
#define DPOE_LB_MAX_LL 0xD70007
@ -605,7 +606,7 @@ static const value_string vendor_specific_opcode_vals[] = {
static const value_string dpoe_variable_descriptor_vals[] = {
{ DPOE_LB_ONU_OBJ, "DPoE ONU Object" },
{ 0xD60001, "Network Port Object" },
{ 0xD60002, "Link Object" },
{ DPOE_LB_LINK_OBJ, "Link Object" },
{ DPOE_LB_USER_PORT_OBJ, "User Port Object" },
{ 0XD60004, "Queue Object" },
{ 0xD70001, "Sequence Number" },
@ -1692,7 +1693,7 @@ dissect_oampdu_vendor_specific(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tr
break;
case DPOE_OPCODE_GET_REQUEST:
leaf_branch = tvb_get_ntoh24(tvb, offset);
if (leaf_branch == DPOE_LB_ONU_OBJ) {
if (leaf_branch == DPOE_LB_ONU_OBJ || leaf_branch == DPOE_LB_LINK_OBJ || leaf_branch == DPOE_LB_USER_PORT_OBJ) {
proto_tree_add_item(dpoe_opcode_tree, hf_dpoe_variable_descriptor, tvb, offset, 3, ENC_BIG_ENDIAN);
offset += 3;
variable_length = tvb_get_guint8(tvb, offset);