Wireshark-dev: Re: [Wireshark-dev] ASN.1-based dissector decoding by port number vs switch/case

From: Vincent Randal <vtrandal@xxxxxxxxx>
Date: Tue, 22 Jun 2021 20:41:45 -0600
The protocol does not exist yet.

Neither. I am helping develop this protocol for IEEE 1451.0. I do not represent the IEEE. I am simply volunteering (as others) in one of the working groups (IEEE 1451.0).

Why on earth did I choose to use ASN.1? Because I was asked to provide some form of IDL for the messages, and I found esnacc and omiidl in Linux as a means for translating ASN.1 to IDL and syntax checking it. So then I decided it was worth it to convert our message descriptions to ASN.1 because I could translate them to IDL (per esnacc) and generate a dissector (ASN.1-based) with Wireshark build step "make asn1"

On Tue, Jun 22, 2021 at 7:44 PM Guy Harris <gharris@xxxxxxxxx> wrote:
On Jun 22, 2021, at 6:33 PM, Vincent Randal <vtrandal@xxxxxxxxx> wrote:

> We are using PER per the foo example (Simple ASN.1-based dissector). Wow, I never about all these different encodings.
>
> Maybe we should be using something other than PER? We think we like PER because the dissected values agree with what we can see in the raw UDP data.

You should be using whatever encoding the protocol is using.
The protocol does not exist yet. I am helping develop this protocol.

Is this a protocol for which you have an ASN.1 specification plus an indication of the encoding being used, or is this something you're reverse-engineering?
Neither? I am helping develop this protocol for IEEE 1451.0. I do not represent the IEEE. I am simply volunteering (as others) in one of the working groups (IEEE 1451.0).

Why on earth did I choose to use ASN.1? Because I was asked to provide some form of IDL for the messages. I found esnacc and omiidl in Linux as a means for translating ASN.1 to IDL and syntax checking it.

So then I decided it was worth it to write our message descriptions in ASN.1 because I could translate them to IDL (per esnacc) and generate dissectors (ASN.1-based) with Wireshark [build step "make asn1"]. And it seems to be working (insofar as we have tested the entire process on several messages) except we currently have one-port-per-message-per-dissector (over 100 new folders in ./epan/dissectors/asn1). We are wasting a lot of UDP ports on a single protocol (again, still under development).

Anders' suggestion to use CHOICE in ASN.1 looks like a good suggestion for decoding the first octet. Then we can have a single UDP port handle all messages (or one port for Network Services and another port for Transducer Services).
 
___________________________________________________________________________
Sent via:    Wireshark-dev mailing list <wireshark-dev@xxxxxxxxxxxxx>
Archives:    https://www.wireshark.org/lists/wireshark-dev
Unsubscribe: https://www.wireshark.org/mailman/options/wireshark-dev
             mailto:wireshark-dev-request@xxxxxxxxxxxxx?subject=unsubscribe