Wireshark mailing list archives
Re: Reusing the code for various things in ieee802.11 in other dissectors ...
From: Richard Sharpe <realrichardsharpe () gmail com>
Date: Mon, 16 Oct 2017 07:09:39 -0700
On Sun, Oct 15, 2017 at 7:36 PM, Michael Mann via Wireshark-dev <wireshark-dev () wireshark org> wrote:
-----Original Message----- From: Richard Sharpe <realrichardsharpe () gmail com> To: Developer support list for Wireshark <wireshark-dev () wireshark org> Sent: Sat, Oct 14, 2017 1:47 pm Subject: [Wireshark-dev] Reusing the code for various things in ieee802.11 in other dissectors ...Hi folks, I am almost finished a dissector for the IEEE1905 Multi-AP technical specification draft from August 2017. The work was done for an organization in the industry. It is pretty complete and has undergone testing with real traffic. Unfortunately, they make references to elements in IEEE802.11 2016. One specific item is 9.4.2.22.7 Beacon Reports from IEEE802.11 2016. There is another such reference as well.I'm not familiar enough with the protocols to know where exactly this is in the dissector. I recently created a dissector table for tagged fields ("wlan.tag.number"). I'm guessing this is where the beacon stuff is, so yes existing dissector tables should handle this.
The problem with this is likely to be point 3 below because the structure as used by IEEE1905 is not tagged (although it does contain TLVs ...)
These raise problems: 1. I don't want to duplicate code 2. The code in the current packet-ieee80211.c dissector is incomplete WRT the 2016 version of the spec. (Eg, it does not handle Vendor specific or Wide Bandwidth Channel Switch optional sub-elements.)I also created a few dissector tables in packet-ieee80211.c for vendor specific extensions. Most of the cases involved multiple vendors that were already in the dissector. I think a few more could probably be created. Most of the ones I left only had OUI_WFA as the only vendor, so I lost interest in the conversion to adding more dissector tables.3. The references in IEE1905 are to the underlying structures not the tagged structures. 4. The code in packet-ieee80211.c is declared static so I can't call it if I wanted to.Again, specifics about the code are more helpful to me.We have mechanisms for dealing with this. One is dissector tables. Another is to declare certain functions non-static and put the definitions in header files. There might be others. Are there any suggestions?Without seeing the code, I would lean towards suggesting dissector tables as the solution for most of it. Removing "static" from functions and declaring them in header files should be more of a last resort. You can put your patch up for review, even if it is just a WIP. Marking where you don't want to duplicate code or where you want to call (currently static) packet-ieee80211.c functions would be helpful.
It will be coming as a patch soon ... :-) -- Regards, Richard Sharpe (何以解憂?唯有杜康。--曹操) ___________________________________________________________________________ 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:
- Reusing the code for various things in ieee802.11 in other dissectors ... Richard Sharpe (Oct 14)
- Re: Reusing the code for various things in ieee802.11 in other dissectors ... Michael Mann via Wireshark-dev (Oct 15)
- Re: Reusing the code for various things in ieee802.11 in other dissectors ... Richard Sharpe (Oct 16)
- Re: Reusing the code for various things in ieee802.11 in other dissectors ... Richard Sharpe (Oct 16)
- Re: Reusing the code for various things in ieee802.11 in other dissectors ... Richard Sharpe (Oct 16)
- Re: Reusing the code for various things in ieee802.11 in other dissectors ... Michael Mann via Wireshark-dev (Oct 15)