Wireshark mailing list archives

Re: ASN.1-based dissector decoding by port number vs switch/case using 1st octet


From: Vincent Randal <vtrandal () gmail com>
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 () sonic net> wrote:

On Jun 22, 2021, at 6:33 PM, Vincent Randal <vtrandal () gmail com> 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 () wireshark org>
Archives:    https://www.wireshark.org/lists/wireshark-dev
Unsubscribe: https://www.wireshark.org/mailman/options/wireshark-dev
             mailto:wireshark-dev-request () wireshark org
?subject=unsubscribe

___________________________________________________________________________
Sent via:    Wireshark-dev mailing list <wireshark-dev () wireshark org>
Archives:    https://www.wireshark.org/lists/wireshark-dev
Unsubscribe: https://www.wireshark.org/mailman/options/wireshark-dev
             mailto:wireshark-dev-request () wireshark org?subject=unsubscribe

Current thread: