Wireshark-dev: Re: [Wireshark-dev] Enabling/disabling ANY heuristic dissector

From: Guy Harris <guy@xxxxxxxxxxxx>
Date: Mon, 6 Jul 2015 00:12:31 -0700
On Jul 5, 2015, at 9:33 PM, Hadriel Kaplan <hadrielk@xxxxxxxxx> wrote:

> My 2 cents:
> 
>> On Jul 5, 2015, at 11:32 PM, Guy Harris <guy@xxxxxxxxxxxx> wrote:
>> 
>> "Heuristic Protocol" or "Heuristic Dissector”?
> 
> While “Dissector” makes more sense to me personally, do most users/IT-folks understand what a “Dissector” is?

That's why I prefer "Protocol".  Let's not let too much of the internals show through.

> I think a single table will be more confusing since several protocols have heuristic dissectors for more than one underlying transport/protocol type.  Of course we could just enable/disable a protocol’s heuristics for all underlying transports as all-onf/off... but I’m just sure someone will have some reasonable use case for enabling heuristics for some protocol over TCP but not UDP or vice-versa, and then we’d be back to creating a preference for that protocol to do so.

So what exactly is the use case for disabling "identifier-based" protocols?

Avoiding buggy dissectors?

Disabling a level of protocol in which you're uninterested, so that, for example, the Info column reflects the highest protocol level in which you *are* interested?

For both of those cases, that's a use case for a Big Switch for the protocol that switches off *all* dissectors for the protocol, "identifier-based" and heuristic, no matter what protocol it's running atop.

The use case for some but not other underlying protocols would appear to be "traffic atop protocol X is rarely if ever mis-identified as being for protocol Z, so leave the heuristic on, but traffic atop protocol Y is often mis-identified as being for protocol Z, so turn the heuristic off".  Would that be better handled by, for example, a UI to allow the user to specify the order in which heuristic checks are done, or something such  as that (and a command-line option to do the same, so that this same functionality is available in TShark)?