void proto_register_mqpcf(void) { expert_module_t *expert_mqpcf; static hf_register_info hf[] = { { &hf_mqpcf_cfh_type , { "Type.....", "mqpcf.cfh.type" , FT_UINT32, BASE_DEC, VALS(mq_mqcft_vals), 0x0, "CFH type", HFILL }}, { &hf_mqpcf_cfh_length , { "Length...", "mqpcf.cfh.length" , FT_UINT32, BASE_DEC, NULL, 0x0, "CFH length", HFILL }}, { &hf_mqpcf_cfh_version , { "Version..", "mqpcf.cfh.version" , FT_UINT32, BASE_DEC, NULL, 0x0, "CFH version", HFILL }}, { &hf_mqpcf_cfh_command , { "Command..", "mqpcf.cfh.command" , FT_UINT32, BASE_DEC | BASE_EXT_STRING, &mq_mqcmd_xvals, 0x0, "CFH command", HFILL }}, { &hf_mqpcf_cfh_MsgSeqNbr, { "MsgSeqNbr", "mqpcf.cfh.MsgSeqNbr" , FT_UINT32, BASE_DEC, NULL, 0x0, "CFH message sequence number", HFILL }}, { &hf_mqpcf_cfh_control , { "Control..", "mqpcf.cfh.control" , FT_UINT32, BASE_DEC, VALS(mq_CtlOpt_vals), 0x0, "CFH control", HFILL }}, { &hf_mqpcf_cfh_compcode , { "CompCode.", "mqpcf.cfh.compcode" , FT_UINT32, BASE_DEC, VALS(mq_mqcc_vals), 0x0, "CFH completion code", HFILL }}, { &hf_mqpcf_cfh_reason , { "ReasCode.", "mqpcf.cfh.reasoncode", FT_UINT32, BASE_DEC | BASE_EXT_STRING, &mq_mqrc_xvals, 0x0, "CFH reason code", HFILL }}, { &hf_mqpcf_cfh_ParmCount, { "ParmCount", "mqpcf.cfh.ParmCount" , FT_UINT32, BASE_DEC, NULL, 0x0, "CFH parameter count", HFILL }}, { &hf_mq_pcf_prmtyp , { "ParmTyp..", "mqpcf.parm.type" , FT_UINT32 , BASE_DEC | BASE_EXT_STRING, &mq_PrmTyp_xvals, 0x0, "MQPCF parameter type", HFILL }}, { &hf_mq_pcf_prmlen , { "ParmLen..", "mqpcf.parm.len" , FT_UINT32 , BASE_DEC, NULL, 0x0, "MQPCF parameter length", HFILL }}, { &hf_mq_pcf_prmid , { "ParmID...", "mqpcf.parm.id" , FT_UINT32 , BASE_DEC | BASE_EXT_STRING, &mq_PrmId_xvals, 0x0, "MQPCF parameter id", HFILL }}, { &hf_mq_pcf_prmidnovals , { "ParmID...", "mqpcf.parm.idNoVals" , FT_UINT32 , BASE_HEX_DEC, NULL, 0x0, "MQPCF parameter id No Vals", HFILL }}, { &hf_mq_pcf_filterop , { "FilterOP.", "mqpcf.filter.op" , FT_UINT32 , BASE_DEC, VALS(mq_FilterOP_vals), 0x0, "MQPCF Filter operator", HFILL }}, { &hf_mq_pcf_prmccsid , { "ParmCCSID", "mqpcf.parm.ccsid" , FT_UINT32 , BASE_DEC | BASE_RANGE_STRING, RVALS(mq_ccsid_rvals), 0x0, "MQPCF parameter ccsid", HFILL }}, { &hf_mq_pcf_prmstrlen , { "ParmStrLn", "mqpcf.parm.strlen" , FT_UINT32 , BASE_DEC, NULL, 0x0, "MQPCF parameter strlen", HFILL }}, { &hf_mq_pcf_prmcount , { "ParmCount", "mqpcf.parm.count" , FT_UINT32 , BASE_DEC, NULL, 0x0, "MQPCF parameter count", HFILL }}, { &hf_mq_pcf_prmunused , { "ParmUnuse", "mqpcf.parm.unused" , FT_UINT32 , BASE_DEC, NULL, 0x0, "MQPCF parameter unused", HFILL }}, { &hf_mq_pcf_string , { "String...", "mqpcf.parm.string" , FT_STRINGZ, BASE_NONE, NULL, 0x0, "MQPCF parameter string", HFILL }}, { &hf_mq_pcf_stringlist , { "StrList..", "mqpcf.parm.stringlist", FT_STRINGZ, BASE_NONE, NULL, 0x0, "MQPCF parameter string list", HFILL }}, { &hf_mq_pcf_int , { "Integer..", "mqpcf.parm.int" , FT_INT32 , BASE_DEC, NULL, 0x0, "MQPCF parameter int", HFILL }}, { &hf_mq_pcf_intlist , { "IntList..", "mqpcf.parm.intlist" , FT_INT32 , BASE_DEC, NULL, 0x0, "MQPCF parameter int list", HFILL }}, { &hf_mq_pcf_bytestring , { "ByteStr..", "mqpcf.parm.bytestring", FT_BYTES , BASE_NONE, NULL, 0x0, "MQPCF parameter byte string", HFILL }}, { &hf_mq_pcf_int64 , { "Int64....", "mqpcf.parm.int64" , FT_INT64 , BASE_DEC, NULL, 0x0, "MQPCF parameter int64", HFILL }}, { &hf_mq_pcf_int64list , { "Int64List", "mqpcf.parm.int64list" , FT_INT64 , BASE_DEC, NULL, 0x0, "MQPCF parameter int64 list", HFILL }}, }; static gint *ett[] = { &ett_mqpcf, &ett_mqpcf_prm, &ett_mqpcf_cfh, }; static ei_register_info ei[] = { { &ei_mq_pcf_prmln0, { "mqpcf.parm.len0" , PI_MALFORMED, PI_ERROR, "MQPCF Parameter length is 0", EXPFILL }}, { &ei_mq_pcf_MaxInt, { "mqpcf.parm.IntList" , PI_UNDECODED, PI_WARN , "MQPCF Parameter Integer list exhausted", EXPFILL }}, { &ei_mq_pcf_MaxStr, { "mqpcf.parm.StrList" , PI_UNDECODED, PI_WARN , "MQPCF Parameter String list exhausted", EXPFILL }}, { &ei_mq_pcf_MaxI64, { "mqpcf.parm.Int64List", PI_UNDECODED, PI_WARN , "MQPCF Parameter Int64 list exhausted", EXPFILL }}, { &ei_mq_pcf_MaxPrm, { "mqpcf.parm.MaxPrm" , PI_UNDECODED, PI_WARN , "MQPCF Max number of parameter exhausted", EXPFILL }}, { &ei_mq_pcf_PrmCnt, { "mqpcf.parm.PrmCnt" , PI_UNDECODED, PI_WARN , "MQPCF Unkn Parm Cnt Length invalid", EXPFILL }}, }; module_t *mq_pcf_module; proto_mqpcf = proto_register_protocol("WebSphere MQ Programmable Command Formats", "MQ PCF", "mqpcf"); proto_register_field_array(proto_mqpcf, hf, array_length(hf)); proto_register_subtree_array(ett, array_length(ett)); expert_mqpcf = expert_register_protocol(proto_mqpcf); expert_register_field_array(expert_mqpcf, ei, array_length(ei)); mq_pcf_module = prefs_register_protocol(proto_mqpcf, NULL); prefs_register_uint_preference(mq_pcf_module, "maxprm", "Set the maximun number of parameter in the PCF to decode", "When dissecting PCF there can be a lot of parameters." " You can limit the number of parameter decoded, before it continue with the next PCF.", 10, &mq_pcf_maxprm); prefs_register_uint_preference(mq_pcf_module, "maxlst", "Set the maximun number of Parameter List that are displayed", "When dissecting a parameter of a PCFm, if it is a StringList, IntegerList or Integer64 List, " " You can limit the number of element displayed, before it continue with the next Parameter.", 10, &mq_pcf_maxlst); }
void proto_register_mpls_psc(void) { static hf_register_info hf[] = { { &hf_mpls_psc_ver, { "Version", "mpls_psc.ver", FT_UINT8, BASE_DEC, NULL, 0xC0, NULL, HFILL } }, { &hf_mpls_psc_req, { "Request", "mpls_psc.req", FT_UINT8, BASE_RANGE_STRING | BASE_DEC, RVALS(mpls_psc_req_rvals), 0x3C, NULL, HFILL } }, { &hf_mpls_psc_pt, { "Protection Type", "mpls_psc.pt", FT_UINT8, BASE_RANGE_STRING | BASE_DEC, RVALS(mpls_psc_pt_rvals), 0x03, NULL, HFILL } }, { &hf_mpls_psc_rev, { "R", "mpls_psc.rev", FT_UINT8, BASE_RANGE_STRING | BASE_DEC, RVALS(mpls_psc_rev_rvals), 0x80, NULL, HFILL } }, { &hf_mpls_psc_fpath, { "Fault Path", "mpls_psc.fpath", FT_UINT8, BASE_RANGE_STRING | BASE_DEC, RVALS(mpls_psc_fpath_rvals), 0x0, NULL, HFILL } }, { &hf_mpls_psc_dpath, { "Data Path", "mpls_psc.dpath", FT_UINT8, BASE_RANGE_STRING | BASE_DEC, RVALS(mpls_psc_dpath_rvals), 0x0, NULL, HFILL } }, { &hf_mpls_psc_tlvlen, { "TLV Length", "mpls_psc.tlvlen", FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, }; static gint *ett[] = { &ett_mpls_psc, }; proto_mpls_psc = proto_register_protocol("PSC", "MPLS[-TP] Protection State " "Coordination (PSC) Protocol", "mpls_psc"); proto_register_field_array(proto_mpls_psc, hf, array_length(hf)); proto_register_subtree_array(ett, array_length(ett)); }
FT_UINT8, BASE_HEX, NULL, 0, NULL, HFILL }}, { &hf_vita_led_flags, { "LED Flags", "ipmi.vita.led.flags", FT_UINT8, BASE_HEX, NULL, 0, NULL, HFILL }}, { &hf_vita_led_flag_pwr, { "LED is powered from Payload power", "ipmi.vita.led.flag.pwr", FT_BOOLEAN, 8, NULL, 0x01, NULL, HFILL }}, { &hf_vita_led_flag_hw_restrict, { "LED has other hardware restrictions", "ipmi.vita.led.flag.hw.restrict", FT_BOOLEAN, 8, NULL, 0x02, NULL, HFILL }}, { &hf_vita_led_color, { "LED Color Value", "ipmi.vita.led.color", FT_UINT8, BASE_HEX, VALS(str_vita_led_colors), 0x0F, NULL, HFILL }}, { &hf_vita_led_ovr_func, { "Override State LED Function", "ipmi.vita.led.ovr.func", FT_UINT8, BASE_DEC|BASE_RANGE_STRING, RVALS(str_vita_led_func), 0, NULL, HFILL }}, { &hf_vita_led_ovr_duration, { "Override State On-Duration", "ipmi.vita.led.ovr.diration", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_vita_led_ovr_color, { "Override State Color", "ipmi.vita.led.ovr.color", FT_UINT8, BASE_HEX, NULL, 0, NULL, HFILL }}, { &hf_vita_led_lamp_test_duration, { "Lamp Test Duration", "ipmi.vita.led.lamp.duration", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_vita_led_loc_func, { "Local Control LED Function", "ipmi.vita.led.loc.func", FT_UINT8, BASE_DEC|BASE_RANGE_STRING, RVALS(str_vita_led_func), 0, NULL, HFILL }}, { &hf_vita_led_loc_duration, { "Local Control On-Duration", "ipmi.vita.led.loc.diration", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
void proto_register_acr122(void) { module_t *module; expert_module_t *expert_module; static hf_register_info hf[] = { { &hf_class, { "Class", "acr122.class", FT_UINT8, BASE_HEX, NULL, 0x00, NULL, HFILL } }, { &hf_ins, { "Ins", "acr122.ins", FT_UINT8, BASE_HEX, NULL, 0x00, NULL, HFILL } }, { &hf_p1, { "P1", "acr122.p1", FT_UINT8, BASE_HEX, NULL, 0x00, NULL, HFILL } }, { &hf_p2, { "P2", "acr122.p2", FT_UINT8, BASE_HEX, NULL, 0x00, NULL, HFILL } }, { &hf_length, { "Length", "acr122.length", FT_UINT8, BASE_HEX, NULL, 0x00, NULL, HFILL } }, { &hf_status_word, { "Status Word", "acr122.status_word", FT_UINT16, BASE_HEX | BASE_RANGE_STRING, RVALS(status_word_rvals), 0x00, NULL, HFILL } }, { &hf_status_word_sw1, { "SW1", "acr122.status_word.sw1", FT_UINT8, BASE_HEX, NULL, 0x00, NULL, HFILL } }, { &hf_status_word_sw2, { "SW2", "acr122.status_word.sw2", FT_UINT8, BASE_HEX, NULL, 0x00, NULL, HFILL } }, { &hf_command, { "Command", "acr122.command", FT_UINT8, BASE_HEX, VALS(command_vals), 0x00, NULL, HFILL } }, { &hf_response, { "Response", "acr122.response", FT_UINT8, BASE_HEX, VALS(command_vals), 0x00, NULL, HFILL } }, { &hf_response_for, { "Response for", "acr122.response_for", FT_FRAMENUM, BASE_NONE, NULL, 0x00, NULL, HFILL } }, { &hf_picc_operating_auto_picc_polling, { "Auto PICC Polling", "acr122.picc_operating.auto_picc_polling", FT_BOOLEAN, 8, NULL, 0x80, NULL, HFILL } }, { &hf_picc_operating_auto_ats_generation, { "ATS Generation", "acr122.picc_operating.ats_generation", FT_BOOLEAN, 8, NULL, 0x40, NULL, HFILL } }, { &hf_picc_operating_polling_interval, { "Polling Interval", "acr122.picc_operating.polling_interval", FT_BOOLEAN, 8, NULL, 0x20, NULL, HFILL } }, { &hf_picc_operating_felica_424k, { "FeliCa 424k", "acr122.picc_operating.felica_424k", FT_BOOLEAN, 8, NULL, 0x10, NULL, HFILL } }, { &hf_picc_operating_felica_212k, { "FeliCa 212k", "acr122.picc_operating.felica_212k", FT_BOOLEAN, 8, NULL, 0x08, NULL, HFILL } }, { &hf_picc_operating_topaz, { "Topaz", "acr122.picc_operating.topaz", FT_BOOLEAN, 8, NULL, 0x04, NULL, HFILL } }, { &hf_picc_operating_iso_14443_type_b, { "ISO 14443 Type B", "acr122.picc_operating.iso_14443_type_b", FT_BOOLEAN, 8, NULL, 0x02, NULL, HFILL } }, { &hf_picc_operating_iso_14443_type_a, { "ISO 14443 Type A", "acr122.picc_operating.iso_14443_type_a", FT_BOOLEAN, 8, NULL, 0x01, NULL, HFILL } }, { &hf_firmware_version, { "Firmware Version", "acr122.firmware_version", FT_STRING, BASE_NONE, NULL, 0x00, NULL, HFILL } }, { &hf_led_green_blinking_state, { "Green LED Blinking", "acr122.led.green.blinking", FT_BOOLEAN, 8, NULL, 0x80, NULL, HFILL } }, { &hf_led_red_blinking_state, { "Red LED Blinking", "acr122.led.red.blinking", FT_BOOLEAN, 8, NULL, 0x40, NULL, HFILL } }, { &hf_led_green_mask, { "Green LED Mask", "acr122.led.green.mask", FT_BOOLEAN, 8, NULL, 0x20, NULL, HFILL } }, { &hf_led_red_mask, { "Red LED Mask", "acr122.led.red.mask", FT_BOOLEAN, 8, NULL, 0x10, NULL, HFILL } }, { &hf_led_initial_green_blinking_state, { "Initial Green LED Blinking", "acr122.led.green.initial", FT_BOOLEAN, 8, NULL, 0x08, NULL, HFILL } }, { &hf_led_initial_red_blinking_state, { "Initial Red LED Blinking", "acr122.led.red.initial", FT_BOOLEAN, 8, NULL, 0x04, NULL, HFILL } }, { &hf_led_final_green_state, { "Final Green LED", "acr122.led.green.final", FT_BOOLEAN, 8, NULL, 0x02, NULL, HFILL } }, { &hf_led_final_red_state, { "Final Red LED", "acr122.led.red.final", FT_BOOLEAN, 8, NULL, 0x01, NULL, HFILL } }, { &hf_led_t1_duration, { "T1 Duration", "acr122.led.t1_duration", FT_UINT8, BASE_CUSTOM, duration_base, 0x00, "Initial Blinking State", HFILL } }, { &hf_led_t2_duration, { "T2 Duration", "acr122.led.t2_duration", FT_UINT8, BASE_CUSTOM, duration_base, 0x00, "Toggle Blinking State", HFILL } }, { &hf_led_number_of_repetition, { "Number of Repetition", "acr122.led.number_of_repetition", FT_UINT8, BASE_DEC, NULL, 0x00, NULL, HFILL } }, { &hf_led_link_to_buzzer, { "Link to Buzzer", "acr122.led.link_to_buzzer", FT_UINT8, BASE_HEX, VALS(link_to_buzzer_vals), 0x00, NULL, HFILL } }, { &hf_poll_buzzer_status, { "Poll Buzzer Status", "acr122.poll_buzzer_status", FT_UINT8, BASE_HEX, VALS(poll_buzzer_status_vals), 0x00, NULL, HFILL } }, { &hf_timeout, { "Timeout", "acr122.timeout", FT_UINT8, BASE_CUSTOM, timeout_base, 0x00, NULL, HFILL } }, { &hf_status_word_led_reserved, { "Reserved", "acr122.status_word.sw2.reserved", FT_UINT8, BASE_HEX, NULL, 0xFC, NULL, HFILL } }, { &hf_status_word_led_green, { "Current Green LED", "acr122.status_word.sw2.led.green", FT_BOOLEAN, 8, NULL, 0x02, NULL, HFILL } }, { &hf_status_word_led_red, { "Current Red LED", "acr122.status_word.sw2.led.red", FT_BOOLEAN, 8, NULL, 0x01, NULL, HFILL } }, { &hf_key, { "Key", "acr122.key", FT_BYTES, BASE_NONE, NULL, 0x00, NULL, HFILL } }, { &hf_key_structure, { "Key Structure", "acr122.key_structure", FT_UINT8, BASE_HEX, VALS(key_structure_vals), 0x00, NULL, HFILL } }, { &hf_key_number, { "Key Number", "acr122.key_number", FT_UINT8, BASE_DEC, NULL, 0x00, NULL, HFILL } }, { &hf_key_type, { "Key Type", "acr122.key_type", FT_UINT8, BASE_HEX, VALS(key_type_vals), 0x00, NULL, HFILL } }, { &hf_block_number, { "Block Number", "acr122.block_number", FT_UINT8, BASE_DEC_HEX, NULL, 0x00, NULL, HFILL } }, { &hf_source_block_number, { "Source Block Number", "acr122.source_block_number", FT_UINT8, BASE_DEC_HEX, NULL, 0x00, NULL, HFILL } }, { &hf_target_block_number, { "Target Block Number", "acr122.target_block_number", FT_UINT8, BASE_DEC_HEX, NULL, 0x00, NULL, HFILL } }, { &hf_static_byte, { "Static Byte", "acr122.static_byte", FT_UINT8, BASE_HEX, NULL, 0x00, NULL, HFILL } }, { &hf_vb_op, { "VB Op", "acr122.vb_op", FT_UINT8, BASE_HEX, VALS(vb_op_vals), 0x00, NULL, HFILL } }, { &hf_version, { "Version", "acr122.version", FT_UINT16, BASE_HEX, NULL, 0x00, NULL, HFILL } }, { &hf_value, { "Value", "acr122.value", FT_INT32, BASE_DEC, NULL, 0x00, NULL, HFILL } }, { &hf_uid, { "UID", "acr122.uid", FT_BYTES, BASE_NONE, NULL, 0x00, NULL, HFILL } }, { &hf_ats, { "ATS", "acr122.ats", FT_BYTES, BASE_NONE, NULL, 0x00, NULL, HFILL } }, { &hf_data, { "Data", "acr122.data", FT_BYTES, BASE_NONE, NULL, 0x00, NULL, HFILL } }, }; static gint *ett[] = { &ett_acr122, &ett_p1_item, &ett_p2_item, &ett_status_word, &ett_status_word_sw2 }; static ei_register_info ei[] = { { &ei_unknown_command_or_invalid_parameters, { "acr122.expert.unknown_command", PI_PROTOCOL, PI_NOTE, "Unknown command or invalid parameters", EXPFILL }}, }; command_info = wmem_tree_new_autoreset(wmem_epan_scope(), wmem_file_scope()); proto_acr122 = proto_register_protocol("Advanced Card Systems ACR122", "ACR 122", "acr122"); new_register_dissector("acr122", dissect_acr122, proto_acr122); proto_register_field_array(proto_acr122, hf, array_length(hf)); proto_register_subtree_array(ett, array_length(ett)); expert_module = expert_register_protocol(proto_acr122); expert_register_field_array(expert_module, ei, array_length(ei)); module = prefs_register_protocol(proto_acr122, NULL); prefs_register_static_text_preference(module, "version", "ACR122U USB NFC Reader - Application Programming Interface V2.02", "Version of protocol supported by this dissector."); }
/* values which will be displayed for payload type 0006 in proto_tree */ void register_proto_doip_payload_0006(gint proto_doip) { static hf_register_info hf[] = { /* prepare info for the header field based on ISO 13400-2:2012(E) table 24 */ { /** Even though ISO 13400-2:2012(E), Table 39 * gives a overview over logical addresses * we will simply display the address value * instead of a string describing who reserved the * corresponding field */ &hf_tea, { "Logical address of external test equipment", "doip.tea", FT_UINT16, BASE_HEX | BASE_RANGE_STRING, RVALS(address_values), 0x0, "The logical address of the external test euqipment that requested routing activation.", HFILL } }, { &hf_ea, { "Logical address of doip entity", "doip.ea", FT_UINT16, BASE_HEX | BASE_RANGE_STRING, RVALS(address_values), 0x0, "The logical address of the responding DoIP entity.", HFILL } }, { &hf_rc, { "Routing activation response code", "doip.rc", FT_UINT8, BASE_HEX | BASE_RANGE_STRING, RVALS(routing_actvation_response_codes), 0x0, "Response by the DoIP gateway. Routing activation denial will result in the TCP_DATA connection being reseted by DoIP gateway. Successful routing activation implies that diagnostic messages can now be routed over the TCP_DATA connection", HFILL } }, { &hf_iso, { "Reserved by ISO 13400", "doip.iso", FT_BYTES, BASE_NONE, NULL, 0x0, "Reserved for future standardization use.", HFILL } }, { &hf_oem, { "Reserved for OEM-specific use", "doip.oem", FT_BYTES, BASE_NONE, NULL, 0x0, "Available for additional OEM-specific use", HFILL } } }; static gint *ett[] = { &ett_routing_activation_response, }; proto_register_field_array(proto_doip, hf, array_length(hf)); proto_register_subtree_array(ett, array_length(ett)); }
void proto_register_eiss(void) { static hf_register_info hf[] = { { &hf_eiss_reserved2, { "Reserved", "eiss.reserved", FT_UINT8, BASE_HEX, NULL, 0, NULL, HFILL } }, { &hf_eiss_section_number, { "Section Number", "eiss.sect_num", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL } }, { &hf_eiss_last_section_number, { "Last Section Number", "eiss.last_sect_num", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL } }, { &hf_eiss_protocol_version_major, { "Major Version Number", "eiss.version_major", FT_UINT8, BASE_HEX, NULL, 0, NULL, HFILL } }, { &hf_eiss_protocol_version_minor, { "Minor Version Number", "eiss.version_minor", FT_UINT8, BASE_HEX, NULL, 0, NULL, HFILL } }, { &hf_eiss_application_type, { "Application Type", "eiss.app_type", FT_UINT16, BASE_HEX, NULL, 0, NULL, HFILL } }, { &hf_eiss_organisation_id, { "Organisation Id", "eiss.org_id", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL } }, { &hf_eiss_application_id, { "Application Id", "eiss.app_id", FT_UINT16, BASE_HEX|BASE_RANGE_STRING, RVALS(application_id_values), 0, NULL, HFILL } }, { &hf_eiss_platform_id_length, { "Platform Id Length", "eiss.platform_id_length", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL } }, { &hf_pdtHWManufacturer, { "Platform Hardware Manufacturer", "eiss.plat_hw_man", FT_UINT24, BASE_HEX, NULL, 0, NULL, HFILL } }, { &hf_pdtHWModel, { "Platform Hardware Model", "eiss.plat_hw_model", FT_UINT16, BASE_HEX, NULL, 0, NULL, HFILL } }, { &hf_pdtHWVersionMajor, { "Platform Hardware Major Version", "eiss.plat_hw_major", FT_UINT8, BASE_HEX, NULL, 0, NULL, HFILL } }, { &hf_pdtHWVersionMinor, { "Platform Hardware Minor Version", "eiss.plat_hw_minor", FT_UINT8, BASE_HEX, NULL, 0, NULL, HFILL } }, { &hf_pdtSWManufacturer, { "Platform Software Manufacturer", "eiss.plat_sw_man", FT_UINT24, BASE_HEX, NULL, 0, NULL, HFILL } }, { &hf_pdtSWModel, { "Platform Software Model", "eiss.plat_sw_model", FT_UINT16, BASE_HEX, NULL, 0, NULL, HFILL } }, { &hf_pdtSWVersionMajor, { "Platform Software Major Version", "eiss.plat_sw_major", FT_UINT8, BASE_HEX, NULL, 0, NULL, HFILL } }, { &hf_pdtSWVersionMinor, { "Platform Software Minor Version", "eiss.plat_sw_minor", FT_UINT8, BASE_HEX, NULL, 0, NULL, HFILL } }, { &hf_pdtProfile, { "Platform Profile", "eiss.plat_profile", FT_UINT8, BASE_HEX, NULL, 0, NULL, HFILL } }, { &hf_eiss_descriptor_tag, { "EISS Descriptor Tag", "eiss.desc.tag", FT_UINT8, BASE_HEX, VALS(eiss_descriptor_values), 0, NULL, HFILL } }, { &hf_eiss_descriptor_length, { "Descriptor Length", "eiss.desc.length", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL } }, { &hf_eiss_aid_app_control_code, { "Application Control Code", "eiss.aid.app_control_code", FT_UINT8, BASE_HEX|BASE_RANGE_STRING, RVALS(aid_control_code_values), 0, NULL, HFILL } }, { &hf_eiss_aid_app_version_major, { "Application Version Major", "eiss.aid.app_version_major", FT_UINT8, BASE_HEX, NULL, 0, NULL, HFILL } }, { &hf_eiss_aid_app_version_minor, { "Application Version Minor", "eiss.aid.app_version_minor", FT_UINT8, BASE_HEX, NULL, 0, NULL, HFILL } }, { &hf_eiss_aid_max_proto_version_major, { "Max Protocol Version Major", "eiss.aid.max_proto_version_major", FT_UINT8, BASE_HEX, NULL, 0, NULL, HFILL } }, { &hf_eiss_aid_max_proto_version_minor, { "Max Protocol Version Minor", "eiss.aid.max_proto_version_minor", FT_UINT8, BASE_HEX, NULL, 0, NULL, HFILL } }, { &hf_eiss_aid_test_flag, { "Application Test Flag", "eiss.aid.test_flag", FT_UINT8, BASE_HEX, NULL, 0, NULL, HFILL } }, { &hf_eiss_aid_reserved, { "Reserved", "eiss.aid.reserved", FT_UINT24, BASE_HEX, NULL, 0, NULL, HFILL } }, { &hf_eiss_aid_priority, { "Application Priority", "eiss.aid.priority", FT_UINT8, BASE_HEX, NULL, 0, NULL, HFILL } }, { &hf_eiss_irl_type, { "Initial Resource Locator Type", "eiss.aid.irl.type", FT_UINT16, BASE_HEX, NULL, 0xfc00, NULL, HFILL } }, { &hf_eiss_irl_length, { "Initial Resource Locator Length", "eiss.aid.irl.length", FT_UINT16, BASE_DEC, NULL, 0x03ff, NULL, HFILL } }, { &hf_eiss_irl_string, { "Initial Resource Locator String", "eiss.aid.irl.string", FT_UINT_STRING, BASE_NONE, NULL, 0, NULL, HFILL } }, { &hf_eiss_mtd_time_value, { "Time Value (ms)", "eiss.mtd.time_value", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL } }, { &hf_eiss_sed_reserved, { "Reserved", "eiss.sed.reserved", FT_UINT16, BASE_DEC, NULL, 0xf000, NULL, HFILL } }, { &hf_eiss_sed_descriptor_length, { "Descriptor Length", "eiss.desc.length", FT_UINT16, BASE_DEC, NULL, 0x0fff, NULL, HFILL } }, { &hf_eiss_sed_time_value, { "Time Value (ms)", "eiss.sed.time_value", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL } } }; static gint *ett[] = { &ett_eiss, &ett_eiss_platform_id, &ett_eiss_desc, }; static ei_register_info ei[] = { { &ei_eiss_unknown_descriptor, { "eiss.unknown_descriptor", PI_MALFORMED, PI_ERROR, "Unknown Descriptor", EXPFILL }}, { &ei_eiss_invalid_section_syntax_indicator, { "eiss.invalid_section_syntax_indicator", PI_MALFORMED, PI_ERROR, "Invalid section_syntax_indicator (should be 0)", EXPFILL }}, { &ei_eiss_invalid_reserved_bits, { "eiss.invalid_reserved_bits", PI_MALFORMED, PI_ERROR, "Invalid reserved bits", EXPFILL }}, { &ei_eiss_invalid_section_length, { "eiss.invalid_section_length", PI_MALFORMED, PI_ERROR, "Invalid section_length (must not exceed 1021)", EXPFILL }}, { &ei_eiss_section_number, { "eiss.sect_num.invalid", PI_MALFORMED, PI_ERROR, "Invalid section_number (must be <= last_section_number)", EXPFILL }}, { &ei_eiss_application_type, { "eiss.app_type.invalid", PI_MALFORMED, PI_ERROR, "Invalid application_type (must be 0x0008)", EXPFILL }}, { &ei_eiss_platform_id_length, { "eiss.platform_id_length.invalid", PI_MALFORMED, PI_ERROR, "Invalid platform_id_length (must be a multiple of sizeof(etv_bif_platform_ids) == 15)", EXPFILL }}, }; expert_module_t* expert_eiss; proto_eiss = proto_register_protocol("ETV-AM EISS Section", "ETV-AM EISS", "eiss"); proto_register_field_array(proto_eiss, hf, array_length(hf)); proto_register_subtree_array(ett, array_length(ett)); expert_eiss = expert_register_protocol(proto_eiss); expert_register_field_array(expert_eiss, ei, array_length(ei)); }