Ethereal-dev: [Ethereal-dev] [PATCH] ACN pluging update
Note: This archive is from the project's previous web site, ethereal.com. This list is no longer active.
From: Erwin Rol <mailinglists@xxxxxxxxxxxx>
Date: Fri, 31 Oct 2003 12:32:55 +0100
Hello all, here an update of the ACN plugin. It is still under development also because at the same time i have to write an implementation of the protocol to test it :-) - Erwin -- Erwin Rol Software Engineering - http://www.erwinrol.com/
? acn.diff ? acn.dump Index: acn.h =================================================================== RCS file: /cvsroot/ethereal/plugins/acn/acn.h,v retrieving revision 1.1 diff -u -r1.1 acn.h --- acn.h 14 Oct 2003 01:18:11 -0000 1.1 +++ acn.h 31 Oct 2003 11:28:38 -0000 @@ -8,11 +8,13 @@ #define ACN_PDU_DES_PS 0x40 #define ACN_PDU_DES_CID 0x80 #define ACN_PDU_DES_ALL 0xC0 + #define ACN_PDU_SRC 0x30 #define ACN_PDU_SRC_SAME 0x00 #define ACN_PDU_SRC_PS 0x10 #define ACN_PDU_SRC_CID 0x20 #define ACN_PDU_SRC_UM 0x30 + #define ACN_PDU_FLAG_P 0x08 #define ACN_PDU_FLAG_T 0x04 #define ACN_PDU_FLAG_RES 0x02 @@ -68,6 +70,10 @@ #define ACN_SDT_TYPE_SEQLOST 21 #define ACN_SDT_TYPE_NAKPARAMS 22 + +#define ACN_SDT_ADDR_NULL 0 +#define ACN_SDT_ADDR_IPV4 1 +#define ACN_SDT_ADDR_IPV6 2 /* DMP */ #define ACN_DMP_TYPE_UNKNOWN 0 Index: packet-acn.c =================================================================== RCS file: /cvsroot/ethereal/plugins/acn/packet-acn.c,v retrieving revision 1.1 diff -u -r1.1 packet-acn.c --- packet-acn.c 14 Oct 2003 01:18:11 -0000 1.1 +++ packet-acn.c 31 Oct 2003 11:28:42 -0000 @@ -61,41 +61,49 @@ */ static const value_string acn_proto_vals[] = { - { ACN_PDU_PROTO_UNKNOWN, "ACN Unknown Protocol"}, - { ACN_PDU_PROTO_SDT, "ACN SDT Protocol" }, - { ACN_PDU_PROTO_DMP, "ACN DMP Protocol" }, + { ACN_PDU_PROTO_UNKNOWN, "Unknown"}, + { ACN_PDU_PROTO_SDT, "SDT" }, + { ACN_PDU_PROTO_DMP, "DMP" }, { 0, NULL } }; static const value_string acn_sdt_type_vals[] = { - { ACN_SDT_TYPE_UNKNOWN, "ACN SDT Unknown Type"}, - { ACN_SDT_TYPE_RELSEQDATA, "ACN SDT RELSEQDATA"}, - { ACN_SDT_TYPE_UNRELSEQDATA, "ACN SDT UNRELSEQDATA"}, - { ACN_SDT_TYPE_UNSEQDATA, "ACN SDT UNSEQDATA"}, - { ACN_SDT_TYPE_JOIN, "ACN SDT JOIN"}, - { ACN_SDT_TYPE_TRANSFER, "ACN SDT TRANSFER"}, - { ACN_SDT_TYPE_JOINREF, "ACN SDT JOINREF"}, - { ACN_SDT_TYPE_JOINACC, "ACN SDT JOINACC"}, - { ACN_SDT_TYPE_LEAVEREQ, "ACN SDT LEAVEREQ"}, - { ACN_SDT_TYPE_LEAVE, "ACN SDT LEAVE"}, - { ACN_SDT_TYPE_LEAVING, "ACN SDT LEAVING"}, - { ACN_SDT_TYPE_NAKUPON, "ACN SDT NAKUPON"}, - { ACN_SDT_TYPE_NAKUPOFF, "ACN SDT NAKUPOFF"}, - { ACN_SDT_TYPE_NAKDOWNON, "ACN SDT NAKDOWNON"}, - { ACN_SDT_TYPE_NAKDOWNOFF, "ACN SDT NAKDOWNOFF"}, - { ACN_SDT_TYPE_REPLOSTSEQON, "ACN SDT REPLOSTSEQON"}, - { ACN_SDT_TYPE_REPLOSTSEQOFF, "ACN SDT REPLOSTSEQOFF"}, - { ACN_SDT_TYPE_SESSEXPIRY, "ACN SDT SESEXPIRY"}, - { ACN_SDT_TYPE_MAK, "ACN SDT MAC"}, - { ACN_SDT_TYPE_ACK, "ACN SDT ACK"}, - { ACN_SDT_TYPE_NAK, "ACN SDT NAK"}, - { ACN_SDT_TYPE_SEQLOST, "ACN SDT SEQLOST"}, - { ACN_SDT_TYPE_NAKPARAMS, "ACN SDT NAKPARAMS"}, + { ACN_SDT_TYPE_UNKNOWN, "Unknown"}, + { ACN_SDT_TYPE_RELSEQDATA, "RELSEQDATA"}, + { ACN_SDT_TYPE_UNRELSEQDATA, "UNRELSEQDATA"}, + { ACN_SDT_TYPE_UNSEQDATA, "UNSEQDATA"}, + { ACN_SDT_TYPE_JOIN, "JOIN"}, + { ACN_SDT_TYPE_TRANSFER, "TRANSFER"}, + { ACN_SDT_TYPE_JOINREF, "JOINREF"}, + { ACN_SDT_TYPE_JOINACC, "JOINACC"}, + { ACN_SDT_TYPE_LEAVEREQ, "LEAVEREQ"}, + { ACN_SDT_TYPE_LEAVE, "LEAVE"}, + { ACN_SDT_TYPE_LEAVING, "LEAVING"}, + { ACN_SDT_TYPE_NAKUPON, "NAKUPON"}, + { ACN_SDT_TYPE_NAKUPOFF, "NAKUPOFF"}, + { ACN_SDT_TYPE_NAKDOWNON, "NAKDOWNON"}, + { ACN_SDT_TYPE_NAKDOWNOFF, "NAKDOWNOFF"}, + { ACN_SDT_TYPE_REPLOSTSEQON, "REPLOSTSEQON"}, + { ACN_SDT_TYPE_REPLOSTSEQOFF, "REPLOSTSEQOFF"}, + { ACN_SDT_TYPE_SESSEXPIRY, "SESEXPIRY"}, + { ACN_SDT_TYPE_MAK, "MAC"}, + { ACN_SDT_TYPE_ACK, "ACK"}, + { ACN_SDT_TYPE_NAK, "NAK"}, + { ACN_SDT_TYPE_SEQLOST, "SEQLOST"}, + { ACN_SDT_TYPE_NAKPARAMS, "NAKPARAMS"}, { 0, NULL } }; static const value_string acn_dmp_type_vals[] = { - { ACN_DMP_TYPE_UNKNOWN, "ACN DMP Unknown Type"}, + { ACN_DMP_TYPE_UNKNOWN, "Unknown"}, + { 0, NULL } +}; + + +static const value_string acn_sdt_address_type_vals[] = { + { ACN_SDT_ADDR_NULL, "Unspecified"}, + { ACN_SDT_ADDR_IPV4, "IP version 4"}, + { ACN_SDT_ADDR_IPV6, "IP version 6"}, { 0, NULL } }; @@ -144,7 +152,27 @@ static int hf_acn_sdt_last_rel_seq = -1; static int hf_acn_sdt_last_rel_wrapper = -1; static int hf_acn_sdt_session_exp_time = -1; - +static int hf_acn_sdt_upstream_address_type = -1; +static int hf_acn_sdt_upstream_ipv4_address = -1; +static int hf_acn_sdt_upstream_ipv6_address = -1; +static int hf_acn_sdt_upstream_port = -1; +static int hf_acn_sdt_downstream_address_type = -1; +static int hf_acn_sdt_downstream_ipv4_address = -1; +static int hf_acn_sdt_downstream_ipv6_address = -1; +static int hf_acn_sdt_downstream_port = -1; + +static int hf_acn_sdt_flags = -1; +static int hf_acn_sdt_flag_u = -1; +static int hf_acn_sdt_flag_d = -1; +static int hf_acn_sdt_flag_l = -1; + +static int hf_acn_sdt_mid = -1; +static int hf_acn_sdt_nak_holdoff_interval = -1; +static int hf_acn_sdt_nak_modulus = -1; +static int hf_acn_sdt_max_nak_wait_time = -1; +static int hf_acn_sdt_leader_cid = -1; +static int hf_acn_sdt_member_cid = -1; +static int hf_acn_sdt_ack_threshold = -1; /* * Here are the global variables associated with the preferences @@ -168,6 +196,8 @@ guint start_offset = offset; acn_pdu_history_t hist; guint size = 0; + guint flags; + guint type; hist = *parent_hist; @@ -222,9 +252,247 @@ break; case ACN_SDT_TYPE_JOIN: + proto_tree_add_item(tree, hf_acn_sdt_session_nr, tvb, + offset, 2, FALSE); + offset += 2; + + flags = tvb_get_guint8(tvb, offset); + flags_item = proto_tree_add_uint(tree, hf_acn_sdt_flags, tvb, + offset, 1, flags); + + flags_tree=proto_item_add_subtree(flags_item, ett_acn); + proto_tree_add_item(flags_tree, hf_acn_sdt_flag_u, tvb, offset, 1, FALSE); + proto_tree_add_item(flags_tree, hf_acn_sdt_flag_d, tvb, offset, 1, FALSE); + proto_tree_add_item(flags_tree, hf_acn_sdt_flag_l, tvb, offset, 1, FALSE); + offset += 1; + + type = tvb_get_guint8(tvb, offset); + proto_tree_add_item(tree, hf_acn_sdt_upstream_address_type, tvb, + offset, 1, FALSE); + offset += 1; + + switch( type ) + { + default: + case ACN_SDT_ADDR_NULL: + break; + + case ACN_SDT_ADDR_IPV4: + proto_tree_add_item(tree, hf_acn_sdt_upstream_ipv4_address, tvb, + offset, 4, FALSE); + offset += 4; + + proto_tree_add_item(tree, hf_acn_sdt_upstream_port, tvb, + offset, 2, FALSE); + offset += 2; + + break; + + case ACN_SDT_ADDR_IPV6: + proto_tree_add_item(tree, hf_acn_sdt_upstream_ipv6_address, tvb, + offset, 16, FALSE); + offset += 16; + + proto_tree_add_item(tree, hf_acn_sdt_upstream_port, tvb, + offset, 2, FALSE); + offset += 2; + break; + } + + flags = tvb_get_guint8(tvb, offset); + flags_item = proto_tree_add_uint(tree, hf_acn_sdt_flags, tvb, + offset, 1, flags); + + flags_tree=proto_item_add_subtree(flags_item, ett_acn); + offset += 1; + + type = tvb_get_guint8(tvb, offset); + proto_tree_add_item(tree, hf_acn_sdt_downstream_address_type, tvb, + offset, 1, FALSE); + offset += 1; + + switch( type ) + { + default: + case ACN_SDT_ADDR_NULL: + break; + + case ACN_SDT_ADDR_IPV4: + proto_tree_add_item(tree, hf_acn_sdt_downstream_ipv4_address, tvb, + offset, 4, FALSE); + offset += 4; + + proto_tree_add_item(tree, hf_acn_sdt_downstream_port, tvb, + offset, 2, FALSE); + offset += 2; + + break; + + case ACN_SDT_ADDR_IPV6: + proto_tree_add_item(tree, hf_acn_sdt_downstream_ipv6_address, tvb, + offset, 16, FALSE); + offset += 16; + + proto_tree_add_item(tree, hf_acn_sdt_downstream_port, tvb, + offset, 2, FALSE); + offset += 2; + break; + } + + + proto_tree_add_item(tree, hf_acn_sdt_mid, tvb, + offset, 2, FALSE); + offset += 2; + + proto_tree_add_item(tree, hf_acn_sdt_tot_seq_nr, tvb, + offset, 4, FALSE); + offset += 4; + + proto_tree_add_item(tree, hf_acn_sdt_rel_seq_nr, tvb, + offset, 4, FALSE); + offset += 4; + + proto_tree_add_item(tree, hf_acn_sdt_session_exp_time, tvb, + offset, 2, FALSE); + offset += 2; + + proto_tree_add_item(tree, hf_acn_sdt_nak_holdoff_interval, tvb, + offset, 2, FALSE); + offset += 2; + + proto_tree_add_item(tree, hf_acn_sdt_nak_modulus, tvb, + offset, 2, FALSE); + offset += 2; + + proto_tree_add_item(tree, hf_acn_sdt_max_nak_wait_time, tvb, + offset, 2, FALSE); + offset += 2; + break; case ACN_SDT_TYPE_TRANSFER: + proto_tree_add_item(tree, hf_acn_sdt_leader_cid, tvb, + offset, 16, FALSE); + offset += 16; + + proto_tree_add_item(tree, hf_acn_sdt_session_nr, tvb, + offset, 2, FALSE); + offset += 2; + + flags = tvb_get_guint8(tvb, offset); + flags_item = proto_tree_add_uint(tree, hf_acn_sdt_flags, tvb, + offset, 1, flags); + + flags_tree=proto_item_add_subtree(flags_item, ett_acn); + proto_tree_add_item(flags_tree, hf_acn_sdt_flag_u, tvb, offset, 1, FALSE); + proto_tree_add_item(flags_tree, hf_acn_sdt_flag_d, tvb, offset, 1, FALSE); + proto_tree_add_item(flags_tree, hf_acn_sdt_flag_l, tvb, offset, 1, FALSE); + offset += 1; + + type = tvb_get_guint8(tvb, offset); + proto_tree_add_item(tree, hf_acn_sdt_upstream_address_type, tvb, + offset, 1, FALSE); + offset += 1; + + switch( type ) + { + default: + case ACN_SDT_ADDR_NULL: + break; + + case ACN_SDT_ADDR_IPV4: + proto_tree_add_item(tree, hf_acn_sdt_upstream_ipv4_address, tvb, + offset, 4, FALSE); + offset += 4; + + proto_tree_add_item(tree, hf_acn_sdt_upstream_port, tvb, + offset, 2, FALSE); + offset += 2; + + break; + + case ACN_SDT_ADDR_IPV6: + proto_tree_add_item(tree, hf_acn_sdt_upstream_ipv6_address, tvb, + offset, 16, FALSE); + offset += 16; + + proto_tree_add_item(tree, hf_acn_sdt_upstream_port, tvb, + offset, 2, FALSE); + offset += 2; + break; + } + + flags = tvb_get_guint8(tvb, offset); + flags_item = proto_tree_add_uint(tree, hf_acn_sdt_flags, tvb, + offset, 1, flags); + + flags_tree=proto_item_add_subtree(flags_item, ett_acn); + offset += 1; + + type = tvb_get_guint8(tvb, offset); + proto_tree_add_item(tree, hf_acn_sdt_downstream_address_type, tvb, + offset, 1, FALSE); + offset += 1; + + switch( type ) + { + default: + case ACN_SDT_ADDR_NULL: + break; + + case ACN_SDT_ADDR_IPV4: + proto_tree_add_item(tree, hf_acn_sdt_downstream_ipv4_address, tvb, + offset, 4, FALSE); + offset += 4; + + proto_tree_add_item(tree, hf_acn_sdt_downstream_port, tvb, + offset, 2, FALSE); + offset += 2; + + break; + + case ACN_SDT_ADDR_IPV6: + proto_tree_add_item(tree, hf_acn_sdt_downstream_ipv6_address, tvb, + offset, 16, FALSE); + offset += 16; + + proto_tree_add_item(tree, hf_acn_sdt_downstream_port, tvb, + offset, 2, FALSE); + offset += 2; + break; + } + + + proto_tree_add_item(tree, hf_acn_sdt_mid, tvb, + offset, 2, FALSE); + offset += 2; + + proto_tree_add_item(tree, hf_acn_sdt_tot_seq_nr, tvb, + offset, 4, FALSE); + offset += 4; + + proto_tree_add_item(tree, hf_acn_sdt_rel_seq_nr, tvb, + offset, 4, FALSE); + offset += 4; + + proto_tree_add_item(tree, hf_acn_sdt_session_exp_time, tvb, + offset, 2, FALSE); + offset += 2; + + proto_tree_add_item(tree, hf_acn_sdt_nak_holdoff_interval, tvb, + offset, 2, FALSE); + offset += 2; + + proto_tree_add_item(tree, hf_acn_sdt_nak_modulus, tvb, + offset, 2, FALSE); + offset += 2; + + proto_tree_add_item(tree, hf_acn_sdt_max_nak_wait_time, tvb, + offset, 2, FALSE); + offset += 2; + + // CID+MID list + break; case ACN_SDT_TYPE_JOINREF: @@ -270,12 +538,24 @@ break; case ACN_SDT_TYPE_NAK: + break; case ACN_SDT_TYPE_SEQLOST: break; case ACN_SDT_TYPE_NAKPARAMS: + proto_tree_add_item(tree, hf_acn_sdt_nak_holdoff_interval, tvb, + offset, 2, FALSE); + offset += 2; + + proto_tree_add_item(tree, hf_acn_sdt_nak_modulus, tvb, + offset, 2, FALSE); + offset += 2; + + proto_tree_add_item(tree, hf_acn_sdt_max_nak_wait_time, tvb, + offset, 2, FALSE); + offset += 2; break; case ACN_SDT_TYPE_LEAVEREQ: @@ -308,7 +588,7 @@ guint size,data_size; guint8 flags; guint src,des; - proto_tree *ti, *si, *flags_tree, *flags_item; + proto_tree *ti, *si, *flags_tree, *flags_item, *data_tree, *data_item; guint start_offset = offset; acn_pdu_history_t hist; @@ -355,7 +635,35 @@ offset += 4; } - switch( hist.source_type ) + switch( flags & ACN_PDU_DES ) + { + case ACN_PDU_DES_SAME: + break; + + case ACN_PDU_DES_PS: + hist.destination_type = ACN_PDU_DES_PS; + des = tvb_get_ntohs(tvb, offset); + hist.destination.ps = des; + proto_tree_add_uint(si, hf_acn_pdu_destination_ps, tvb, + offset, 2, des); + offset += 2; + break; + + case ACN_PDU_DES_CID: + hist.destination_type = ACN_PDU_DES_CID; + tvb_memcpy(tvb, hist.destination.cid, offset, 16 ); + proto_tree_add_item(si, hf_acn_pdu_destination_cid, tvb, + offset, 16, FALSE); + offset += 16; + break; + + case ACN_PDU_DES_ALL: + hist.destination_type = ACN_PDU_DES_ALL; + break; + } + + + switch( flags & ACN_PDU_SRC ) { case ACN_PDU_SRC_SAME: break; @@ -383,38 +691,12 @@ } - switch( flags & ACN_PDU_DES ) - { - case ACN_PDU_DES_SAME: - break; - - case ACN_PDU_DES_PS: - hist.destination_type = ACN_PDU_DES_PS; - des = tvb_get_ntohs(tvb, offset); - hist.destination.ps = des; - proto_tree_add_uint(si, hf_acn_pdu_destination_ps, tvb, - offset, 2, des); - offset += 2; - break; - - case ACN_PDU_DES_CID: - hist.destination_type = ACN_PDU_DES_CID; - tvb_memcpy(tvb, hist.destination.cid, offset, 16 ); - proto_tree_add_item(si, hf_acn_pdu_destination_cid, tvb, - offset, 16, FALSE); - offset += 16; - break; - - case ACN_PDU_DES_ALL: - hist.destination_type = ACN_PDU_DES_ALL; - break; - } if( flags & ACN_PDU_FLAG_P ) { hist.protocol = tvb_get_ntohs( tvb, offset ); proto_tree_add_item(si, hf_acn_pdu_protocol, tvb, - offset, 2, TRUE ); + offset, 2, FALSE ); offset += 2; } @@ -425,17 +707,17 @@ switch( hist.protocol ) { case ACN_PDU_PROTO_SDT: proto_tree_add_item(si, hf_acn_pdu_type_sdt, tvb, - offset, 2, TRUE ); + offset, 2, FALSE ); break; case ACN_PDU_PROTO_DMP: proto_tree_add_item(si, hf_acn_pdu_type_dmp, tvb, - offset, 2, TRUE ); + offset, 2, FALSE ); break; default: proto_tree_add_item(si, hf_acn_pdu_type, tvb, - offset, 2, TRUE ); + offset, 2, FALSE ); break; @@ -445,24 +727,32 @@ offset += 2; } - hist = *parent_hist; + //hist = *parent_hist; if( flags & ACN_PDU_FLAG_Z ) { data_size = size - (offset - start_offset); + + + data_item = proto_tree_add_item(si, hf_acn_pdu_data, tvb, + offset, data_size, FALSE); + + data_tree=proto_item_add_subtree(data_item, ett_acn); + + switch( hist.protocol ) { case ACN_PDU_PROTO_SDT: - dissect_sdt( tvb, offset, si, &hist, data_size); + dissect_sdt( tvb, offset, data_tree, &hist, data_size); break; case ACN_PDU_PROTO_DMP: - dissect_dmp( tvb, offset, si, &hist, data_size); + dissect_dmp( tvb, offset, data_tree, &hist, data_size); break; default: - proto_tree_add_item(si, hf_acn_pdu_data, tvb, - offset, data_size, TRUE ); + //proto_tree_add_item(si, hf_acn_pdu_data, tvb, + // offset, data_size, FALSE ); break; } @@ -528,144 +818,239 @@ "ACN PDU", HFILL }}, { &hf_acn_pdu_flags, - { "PDU Flags","acn.pdu.flags", + { "Flags","acn.pdu.flags", FT_UINT8, BASE_HEX, NULL, 0x0, - "PDU flags", HFILL }}, + "Flags", HFILL }}, { &hf_acn_pdu_des, - { "PDU des","acn.pdu.des", + { "des","acn.pdu.des", FT_UINT8, BASE_HEX, NULL, 0xC0, - "PDU des", HFILL }}, + "des", HFILL }}, { &hf_acn_pdu_src, - { "PDU src","acn.pdu.src", + { "src","acn.pdu.src", FT_UINT8, BASE_HEX, NULL, 0x30, - "PDU src", HFILL }}, + "src", HFILL }}, { &hf_acn_pdu_flag_p, - { "PDU Flag p","acn.pdu.flag_p", + { "P","acn.pdu.flag_p", FT_UINT8, BASE_HEX, NULL, 0x08, - "PDU flag p", HFILL }}, + "P", HFILL }}, { &hf_acn_pdu_flag_t, - { "PDU Flag t","acn.pdu.flag_t", + { "T","acn.pdu.flag_t", FT_UINT8, BASE_HEX, NULL, 0x04, - "PDU flag t", HFILL }}, + "T", HFILL }}, { &hf_acn_pdu_flag_z, - { "PDU Flag z","acn.pdu.flag_z", + { "Z","acn.pdu.flag_z", FT_UINT8, BASE_HEX, NULL, 0x01, - "PDU flag z", HFILL }}, + "Z", HFILL }}, { &hf_acn_pdu_flag_res, - { "PDU Flag res","acn.pdu.flag_res", + { "res","acn.pdu.flag_res", FT_UINT8, BASE_HEX, NULL, 0x02, - "PDU flag res", HFILL }}, + "res", HFILL }}, { &hf_acn_pdu_length, - { "PDU Lenght","acn.pdu.length", + { "Lenght","acn.pdu.length", FT_UINT8, BASE_DEC, NULL, 0x0, - "PDU Length", HFILL }}, + "Length", HFILL }}, { &hf_acn_pdu_ext_length_16, - { "PDU Ext Length 16bit","acn.pdu.ext_length_16", + { "Ext Length 16bit","acn.pdu.ext_length_16", FT_UINT16, BASE_DEC, NULL, 0x0, - "PDU Ext Length 16bit", HFILL }}, + "Ext Length 16bit", HFILL }}, { &hf_acn_pdu_ext_length_32, - { "PDU Ext Length 32bit","acn.pdu.ext_length_32", + { "Ext Length 32bit","acn.pdu.ext_length_32", FT_UINT32, BASE_DEC, NULL, 0x0, - "PDU Ext Length 32bit", HFILL }}, + "Ext Length 32bit", HFILL }}, { &hf_acn_pdu_source_ps, - { "PDU Source PS","acn.pdu.source_ps", + { "Source PS","acn.pdu.source_ps", FT_UINT16, BASE_HEX, NULL, 0x0, - "PDU Source", HFILL }}, + "Source PS", HFILL }}, { &hf_acn_pdu_source_cid, - { "PDU Source CID","acn.pdu.source_cid", + { "Source CID","acn.pdu.source_cid", FT_BYTES, BASE_HEX, NULL, 0x0, - "PDU Source CID", HFILL }}, + "Source CID", HFILL }}, { &hf_acn_pdu_destination_ps, - { "PDU Destination PS","acn.pdu.destination_ps", + { "Destination PS","acn.pdu.destination_ps", FT_UINT16, BASE_HEX, NULL, 0x0, - "PDU Destination PS", HFILL }}, + "Destination PS", HFILL }}, { &hf_acn_pdu_destination_cid, - { "PDU Destination CID","acn.pdu.destination_cid", + { "Destination CID","acn.pdu.destination_cid", FT_BYTES, BASE_HEX, NULL, 0x0, - "PDU Destination CID", HFILL }}, + "Destination CID", HFILL }}, { &hf_acn_pdu_protocol, - { "PDU Protocol","acn.pdu.protocol", + { "Protocol","acn.pdu.protocol", FT_UINT16, BASE_HEX, VALS(acn_proto_vals), 0x0, - "PDU Protocol", HFILL }}, + "Protocol", HFILL }}, { &hf_acn_pdu_type, - { "PDU Type","acn.pdu.type", + { "Type","acn.pdu.type", FT_UINT16, BASE_HEX, NULL, 0x0, - "PDU Type", HFILL }}, + "Type", HFILL }}, { &hf_acn_pdu_type_sdt, - { "PDU Type SDT","acn.pdu.type_sdt", + { "SDT Type","acn.pdu.type_sdt", FT_UINT16, BASE_HEX, VALS(acn_sdt_type_vals), 0x0, - "PDU Type SDT", HFILL }}, + "SDT Type", HFILL }}, { &hf_acn_pdu_type_dmp, - { "PDU Type DMP","acn.pdu.type_dmp", + { "DMP Type","acn.pdu.type_dmp", FT_UINT16, BASE_HEX, VALS(acn_dmp_type_vals), 0x0, - "PDU Type DMP", HFILL }}, + "DMP Type", HFILL }}, { &hf_acn_pdu_data, - { "PDU Data","acn.pdu.data", - FT_BYTES, BASE_HEX, NULL, 0x0, - "PDU Data", HFILL }}, + { "Data","acn.pdu.data", + FT_NONE, BASE_HEX, NULL, 0x0, + "Data", HFILL }}, { &hf_acn_pdu_padding, - { "PDU Padding","acn.pdu.padding", + { "Padding","acn.pdu.padding", FT_UINT8, BASE_DEC, NULL, 0x0, - "PDU Padding", HFILL }}, + "Padding", HFILL }}, { &hf_acn_sdt_session_nr, - { "PDU SDT Session Nr","acn.sdt.session_nr", + { "SDT Session Nr","acn.sdt.session_nr", FT_UINT16, BASE_DEC, NULL, 0x0, - "PDU SDT Session Nr", HFILL }}, + "SDT Session Nr", HFILL }}, { &hf_acn_sdt_tot_seq_nr, - { "PDU SDT Total Sequence Nr","acn.sdt.tot_seq_nr", + { "SDT Total Sequence Nr","acn.sdt.tot_seq_nr", FT_UINT32, BASE_DEC, NULL, 0x0, - "PDU SDT Total Sequence Nr", HFILL }}, + "SDT Total Sequence Nr", HFILL }}, { &hf_acn_sdt_rel_seq_nr, - { "PDU SDT Rel Seq Nr","acn.sdt.rel_seq_nr", + { "SDT Rel Seq Nr","acn.sdt.rel_seq_nr", FT_UINT32, BASE_DEC, NULL, 0x0, - "PDU SDT Rel Sequence Nr", HFILL }}, + "SDT Rel Sequence Nr", HFILL }}, { &hf_acn_sdt_unavailable_wrappers, - { "PDU SDT Unavailable Wrappers","acn.sdt.unavailable_wrappers", + { "SDT Unavailable Wrappers","acn.sdt.unavailable_wrappers", FT_UINT32, BASE_DEC, NULL, 0x0, - "PDU SDT Unavailable Wrappers", HFILL }}, + "SDT Unavailable Wrappers", HFILL }}, { &hf_acn_sdt_refuse_code, - { "PDU SDT Refuse code","acn.sdt.refuse_code", + { "SDT Refuse code","acn.sdt.refuse_code", FT_UINT16, BASE_DEC, NULL, 0x0, - "PDU SDT Refuse Code", HFILL }}, + "SDT Refuse Code", HFILL }}, { &hf_acn_sdt_last_rel_seq, - { "PDU SDT Last reliable seq nr","acn.sdt.last_rel_seq", + { "SDT Last reliable seq nr","acn.sdt.last_rel_seq", FT_UINT32, BASE_DEC, NULL, 0x0, - "PDU SDT Last reliable seq nr", HFILL }}, + "SDT Last reliable seq nr", HFILL }}, { &hf_acn_sdt_last_rel_wrapper, - { "PDU SDT Last reliable Wrapper","acn.sdt.last_rel_wrapper", + { "SDT Last reliable Wrapper","acn.sdt.last_rel_wrapper", FT_UINT32, BASE_DEC, NULL, 0x0, - "PDU SDT Last reliable Wrapper", HFILL }}, + "SDT Last reliable Wrapper", HFILL }}, { &hf_acn_sdt_session_exp_time, - { "PDU SDT Session expire time","acn.sdt.session_exp_time", + { "SDT Session expire time","acn.sdt.session_exp_time", FT_UINT16, BASE_DEC, NULL, 0x0, - "PDU SDT Session expire time", HFILL }} + "SDT Session expire time", HFILL }}, + + { &hf_acn_sdt_flags, + { "SDT Flags","acn.sdt.flags", + FT_UINT8, BASE_HEX, NULL, 0x0, + "SDT Flags", HFILL }}, + + { &hf_acn_sdt_flag_u, + { "U","acn.sdt.flag_u", + FT_UINT8, BASE_HEX, NULL, 0x80, + "U", HFILL }}, + + { &hf_acn_sdt_flag_d, + { "D","acn.sdt.flag_d", + FT_UINT8, BASE_HEX, NULL, 0x40, + "D", HFILL }}, + + { &hf_acn_sdt_flag_l, + { "L","acn.sdt.flag_l", + FT_UINT8, BASE_HEX, NULL, 0x20, + "L", HFILL }}, + + { &hf_acn_sdt_upstream_address_type, + { "SDT Upstream address type","acn.sdt.upstream_address_type", + FT_UINT8, BASE_HEX, VALS(acn_sdt_address_type_vals), 0x0, + "SDT Upstream address type", HFILL }}, + + { &hf_acn_sdt_downstream_address_type, + { "SDT Downstream address type","acn.sdt.downstream_address_type", + FT_UINT8, BASE_HEX, VALS(acn_sdt_address_type_vals), 0x0, + "SDT Downstream address type", HFILL }}, + + { &hf_acn_sdt_upstream_port, + { "SDT Upstream Port","acn.sdt.upstream_port", + FT_UINT16, BASE_DEC, NULL, 0x0, + "SDT Upstream Port", HFILL }}, + + { &hf_acn_sdt_downstream_port, + { "SDT Donwstream Port","acn.sdt.downstream_port", + FT_UINT16, BASE_DEC, NULL, 0x0, + "SDT Downstream Port", HFILL }}, + + { &hf_acn_sdt_downstream_ipv4_address, + { "SDT Donwstream IPv4 Address","acn.sdt.downstream_ipv4_address", + FT_IPv4, BASE_DEC, NULL, 0x0, + "SDT Downstream IPv4 Address", HFILL }}, + + { &hf_acn_sdt_upstream_ipv4_address, + { "SDT Upstream IPv4 Address","acn.sdt.upstream_ipv4_address", + FT_IPv4, BASE_DEC, NULL, 0x0, + "SDT Upstream IPv4 Address", HFILL }}, + + { &hf_acn_sdt_downstream_ipv6_address, + { "SDT Donwstream IPv6 Address","acn.sdt.downstream_ipv6_address", + FT_IPv6, BASE_DEC, NULL, 0x0, + "SDT Downstream IPv6 Address", HFILL }}, + + { &hf_acn_sdt_upstream_ipv6_address, + { "SDT Upstream IPv6 Address","acn.sdt.upstream_ipv6_address", + FT_IPv6, BASE_DEC, NULL, 0x0, + "SDT Upstream IPv6 Address", HFILL }}, + + { &hf_acn_sdt_mid, + { "SDT Member ID","acn.sdt.mid", + FT_UINT16, BASE_DEC, NULL, 0x0, + "SDT Member ID", HFILL }}, + + { &hf_acn_sdt_nak_holdoff_interval, + { "SDT NAK holdoff interval","acn.sdt.nak_holdoff_interval", + FT_UINT16, BASE_DEC, NULL, 0x0, + "SDT NAK holdoff interval", HFILL }}, + + { &hf_acn_sdt_nak_modulus, + { "SDT NAK modulus","acn.sdt.nak_modulus", + FT_UINT16, BASE_DEC, NULL, 0x0, + "SDT NAK modulus", HFILL }}, + + { &hf_acn_sdt_max_nak_wait_time, + { "SDT Max. NAK wait time","acn.sdt.max_nak_wait_time", + FT_UINT16, BASE_DEC, NULL, 0x0, + "SDT Max. NAK wait time ", HFILL }}, + + { &hf_acn_sdt_ack_threshold, + { "SDT ACK threshold","acn.sdt.ack_threshold", + FT_UINT16, BASE_DEC, NULL, 0x0, + "SDT ACK threshold", HFILL }}, + + { &hf_acn_sdt_member_cid, + { "SDT Memebr CID","acn.sdt.member_cid", + FT_BYTES, BASE_HEX, NULL, 0x0, + "SDT Member CID", HFILL }}, + + { &hf_acn_sdt_leader_cid, + { "SDT Leader CID","acn.sdt.leader_cid", + FT_BYTES, BASE_HEX, NULL, 0x0, + "SDT Leader CID", HFILL }} };
- Follow-Ups:
- Re: [Ethereal-dev] [PATCH] ACN pluging update
- From: Guy Harris
- Re: [Ethereal-dev] [PATCH] ACN pluging update
- Prev by Date: [Ethereal-dev] GPF in asn1.dll on win32 (was bug in rtp_analysis.c)
- Next by Date: [Ethereal-dev] RTP Analysis: patch for rtp_analysis.c (was bug in rtp_analysis.c?)
- Previous by thread: [Ethereal-dev] GPF in asn1.dll on win32 (was bug in rtp_analysis.c)
- Next by thread: Re: [Ethereal-dev] [PATCH] ACN pluging update
- Index(es):