diff options
Diffstat (limited to 'plugins/epan/profinet/packet-pn-mrp.c')
-rw-r--r-- | plugins/epan/profinet/packet-pn-mrp.c | 134 |
1 files changed, 62 insertions, 72 deletions
diff --git a/plugins/epan/profinet/packet-pn-mrp.c b/plugins/epan/profinet/packet-pn-mrp.c index 9efafe72..e522de2e 100644 --- a/plugins/epan/profinet/packet-pn-mrp.c +++ b/plugins/epan/profinet/packet-pn-mrp.c @@ -23,34 +23,34 @@ void proto_reg_handoff_pn_mrp(void); static dissector_handle_t mrp_handle; -static int proto_pn_mrp = -1; - -static int hf_pn_mrp_type = -1; -static int hf_pn_mrp_length = -1; -static int hf_pn_mrp_version = -1; -static int hf_pn_mrp_sequence_id = -1; -static int hf_pn_mrp_sa = -1; -static int hf_pn_mrp_prio = -1; -static int hf_pn_mrp_port_role = -1; -static int hf_pn_mrp_ring_state = -1; -static int hf_pn_mrp_interval = -1; -static int hf_pn_mrp_transition = -1; -static int hf_pn_mrp_time_stamp = -1; -static int hf_pn_mrp_blocked = -1; -static int hf_pn_mrp_domain_uuid = -1; -static int hf_pn_mrp_oui = -1; -static int hf_pn_mrp_ed1type = -1; -static int hf_pn_mrp_ed1_manufacturer_data = -1; -static int hf_pn_mrp_sub_tlv_header_type = -1; -static int hf_pn_mrp_sub_tlv_header_length = -1; -static int hf_pn_mrp_sub_option2 = -1; -static int hf_pn_mrp_other_mrm_prio = -1; -static int hf_pn_mrp_other_mrm_sa = -1; -static int hf_pn_mrp_manufacturer_data = -1; - -static gint ett_pn_mrp = -1; -static gint ett_pn_mrp_type = -1; -static gint ett_pn_sub_tlv = -1; +static int proto_pn_mrp; + +static int hf_pn_mrp_type; +static int hf_pn_mrp_length; +static int hf_pn_mrp_version; +static int hf_pn_mrp_sequence_id; +static int hf_pn_mrp_sa; +static int hf_pn_mrp_prio; +static int hf_pn_mrp_port_role; +static int hf_pn_mrp_ring_state; +static int hf_pn_mrp_interval; +static int hf_pn_mrp_transition; +static int hf_pn_mrp_time_stamp; +static int hf_pn_mrp_blocked; +static int hf_pn_mrp_domain_uuid; +static int hf_pn_mrp_oui; +static int hf_pn_mrp_ed1type; +static int hf_pn_mrp_ed1_manufacturer_data; +static int hf_pn_mrp_sub_tlv_header_type; +static int hf_pn_mrp_sub_tlv_header_length; +static int hf_pn_mrp_sub_option2; +static int hf_pn_mrp_other_mrm_prio; +static int hf_pn_mrp_other_mrm_sa; +static int hf_pn_mrp_manufacturer_data; + +static int ett_pn_mrp; +static int ett_pn_mrp_type; +static int ett_pn_sub_tlv; static const value_string pn_mrp_block_type_vals[] = { { 0x00, "MRP_End" }, @@ -69,15 +69,6 @@ static const value_string pn_mrp_block_type_vals[] = { { 0, NULL }, }; -static const value_string pn_mrp_oui_vals[] = { - { OUI_PROFINET, "PROFINET" }, - { OUI_SIEMENS, "SIEMENS" }, - - { 0, NULL } -}; - - - static const value_string pn_mrp_port_role_vals[] = { { 0x0000, "Primary ring port" }, { 0x0001, "Secondary ring port"}, @@ -143,7 +134,7 @@ static int dissect_PNMRP_Common(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, proto_item *item _U_) { - guint16 sequence_id; + uint16_t sequence_id; e_guid_t uuid; @@ -161,10 +152,10 @@ static int dissect_PNMRP_Link(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, proto_item *item _U_) { - guint8 mac[6]; - guint16 port_role; - guint16 interval; - guint16 blocked; + uint8_t mac[6]; + uint16_t port_role; + uint16_t interval; + uint16_t blocked; proto_item *sub_item; /* MRP_SA */ @@ -202,7 +193,7 @@ dissect_PNMRP_Link(tvbuff_t *tvb, int offset, return offset; } -static const char * mrp_Prio2msg(guint16 prio) +static const char * mrp_Prio2msg(uint16_t prio) { if (prio == 0x0000) @@ -229,12 +220,12 @@ static int dissect_PNMRP_Test(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, proto_item *item _U_) { - guint16 prio; - guint8 mac[6]; - guint16 port_role; - guint16 ring_state; - guint16 transition; - guint32 time_stamp; + uint16_t prio; + uint8_t mac[6]; + uint16_t port_role; + uint16_t ring_state; + uint16_t transition; + uint32_t time_stamp; proto_item *sub_item; @@ -270,9 +261,9 @@ static int dissect_PNMRP_TopologyChange(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, proto_item *item _U_) { - guint16 prio; - guint8 mac[6]; - guint16 interval; + uint16_t prio; + uint8_t mac[6]; + uint16_t interval; proto_item *sub_item; @@ -302,9 +293,9 @@ dissect_PNMRP_TopologyChange(tvbuff_t *tvb, int offset, static int dissect_PNMRP_Ed1ManufacturerData(tvbuff_t *tvb, int offset, -packet_info *pinfo, proto_tree *tree, guint8 *pLength) +packet_info *pinfo, proto_tree *tree, uint8_t *pLength) { - guint16 u16MrpEd1ManufacturerData; + uint16_t u16MrpEd1ManufacturerData; offset = dissect_pn_uint16(tvb, offset, pinfo, tree, hf_pn_mrp_ed1_manufacturer_data, &u16MrpEd1ManufacturerData); *pLength -= 2; @@ -315,14 +306,14 @@ static int dissect_PNMRP_SubOption2(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) { - guint8 u8SubType; - guint8 u8Sublength; + uint8_t u8SubType; + uint8_t u8Sublength; proto_item *sub_item; proto_tree *sub_tree; - guint16 u16Prio; - guint16 u16OtherPrio; - guint8 mac[6]; - guint8 otherMac[6]; + uint16_t u16Prio; + uint16_t u16OtherPrio; + uint8_t mac[6]; + uint8_t otherMac[6]; sub_item = proto_tree_add_item(tree, hf_pn_mrp_sub_option2, tvb, offset, 0, ENC_NA); sub_tree = proto_item_add_subtree(sub_item, ett_pn_sub_tlv); @@ -379,19 +370,19 @@ packet_info *pinfo, proto_tree *tree) static int dissect_PNMRP_Option(tvbuff_t *tvb, int offset, - packet_info *pinfo, proto_tree *tree, proto_item *item, guint8 length) + packet_info *pinfo, proto_tree *tree, proto_item *item, uint8_t length) { - guint32 oui; - guint8 u8MrpEd1Type; + uint32_t oui; + uint8_t u8MrpEd1Type; /* OUI (organizational unique id) */ offset = dissect_pn_oid(tvb, offset, pinfo,tree, hf_pn_mrp_oui, &oui); + length -= 3; switch (oui) { case OUI_SIEMENS: proto_item_append_text(item, "(SIEMENS)"); - length -= 3; offset = dissect_pn_uint8(tvb, offset, pinfo, tree, hf_pn_mrp_ed1type, &u8MrpEd1Type); length -= 1; switch (u8MrpEd1Type) @@ -435,10 +426,10 @@ static int dissect_PNMRP_PDU(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, proto_item *item) { - guint16 version; - guint8 type; - guint8 length; - gint i; + uint16_t version; + uint8_t type; + uint8_t length; + int i; tvbuff_t *new_tvb; proto_item *sub_item; proto_tree *sub_tree; @@ -476,7 +467,6 @@ dissect_PNMRP_PDU(tvbuff_t *tvb, int offset, case 0x00: /* no content */ return offset; - break; case 0x01: offset = dissect_PNMRP_Common(new_tvb, offset, pinfo, sub_tree, sub_item); break; @@ -510,7 +500,7 @@ dissect_PNMRP(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U proto_item *ti = NULL; proto_tree *mrp_tree = NULL; - guint32 offset = 0; + uint32_t offset = 0; col_set_str(pinfo->cinfo, COL_PROTOCOL, "PN-MRP"); @@ -599,7 +589,7 @@ proto_register_pn_mrp (void) { &hf_pn_mrp_oui, { "MRP_ManufacturerOUI", "pn_mrp.oui", - FT_UINT24, BASE_HEX, VALS(pn_mrp_oui_vals), 0x0, + FT_UINT24, BASE_OUI, NULL, 0x0, NULL, HFILL }}, { &hf_pn_mrp_ed1type, @@ -642,7 +632,7 @@ proto_register_pn_mrp (void) NULL, HFILL }} }; - static gint *ett[] = { + static int *ett[] = { &ett_pn_mrp, &ett_pn_mrp_type, &ett_pn_sub_tlv |