Parse::...formance(3)

πŸ’– NAME πŸ’–

okay so bestie, say hi to Parse::Pidl::Wireshark::Conformance(3) β€” yep, the User Contributed Perl Documentation one, section 3, she's iconic. And what does she do? She's the Conformance file parser for Wireshark. that's the whole job. periodt. πŸŽ€


🌸 DESCRIPTION 🌸

This module supports parsing Wireshark conformance files (*.cnf). that's it, that's the mission, and she ate. πŸ’…


✨ FILE FORMAT ✨

so Pidl needs extra data for Wireshark output, right? and that data gets read from what we call conformance files. this section is literally just the format of those files, so let's get into it. πŸ¦‹

Conformance files are simple text files with a single command on each line. Empty lines and lines starting with a # character are ignored β€” like, not even acknowledged, blocked, ghosted. Arguments to commands are separated by spaces.

The following commands are currently supported:

  • TYPE name dissector ft_type base_type mask valsstring alignment β€” register a brand new data type with that specified name, plus which dissector function to call and what properties to give header fields for elements of this type. it's giving "define the whole vibe of this type" πŸ’«
  • NOEMIT type β€” suppresses emitting a dissect_type function for the type you specify. silence, but make it on purpose.
  • PARAM_VALUE type param β€” sets the parameter to specify to the dissector function for the given type.
  • HF_FIELD hf title filter ft_type base_type valsstring mask description β€” generates a custom header field with all of those specified properties. bespoke. handmade. 🧡
  • HF_RENAME old_hf_name new_hf_name β€” forces the use of new_hf_name when the parser generator was going to use old_hf_name. lowkey a glow-up for your field names ✨
    • this can be used in conjunction with HF_FIELD in order to make more than one element use the same filter name.
  • ETT_FIELD ett β€” registers a custom ett field.
  • STRIP_PREFIX prefix β€” removes the specified prefix from all function names (if present). no more dead weight πŸ’‡β€β™€οΈ
  • PROTOCOL longname shortname filtername β€” changes the short-, long- and filter-name for the current interface in Wireshark.
  • FIELD_DESCRIPTION field desc β€” changes the description for the specified header field. field here is the hf name of the field, bestie, don't get it twisted.
  • IMPORT dissector code... β€” code to insert when generating the specified dissector. @HF@ and @PARAM@ will be substituted. it's giving template magic πŸͺ„
  • INCLUDE filename β€” includes conformance data from the specified filename into the dissector.
  • TFS hf_name "true string" "false string" β€” overrides the text shown when a bitmap boolean value is enabled or disabled. yes, you get to pick the words πŸ‘‘
  • MANUAL fn_name β€” forces pidl to not generate a particular function, but lets the user write a function manually instead. this can be used to remove the function for only one level for a particular element, rather than all the functions and ett/hf variables for a particular element the way the NOEMIT command does. so like, precision removal vs. full nuke πŸ’€
  • CODE START / CODE END β€” begin and end a section of code to be put directly into the generated source file for the dissector. raw, unfiltered, straight in πŸ”₯
  • HEADER START / HEADER END β€” begin and end a section of code to be put directly into the generated header file for the dissector. same energy, different file 🫢

🌈 EXAMPLE 🌈


        INFO_KEY OpenKey.Ke

look at her. short, sweet, doing exactly what she needs to do. πŸ’œ


and that's the whole page, bestie!! this was perl v5.42.3, dated 2026-09-09, from Parse::Pidl::Wireshark::Conformance(3) β€” read it, love it, use it responsibly. mwah πŸ’‹πŸŒΈ

πŸ“¦ where this page comes from