Hi, Yes you can contact me privately for further discussions if you want. Best regards Anders
Den tis 2 apr. 2024 kl 23:57 skrev R Massink <robin....@gmail.com>: > Hi Anders, > > That is awesome! I must admit I was not familiar enough with the .asn and > asn2wrs decoder to see how much I could do there. Therefore most of my code > was outside of that part, but your approach is much cleaner. > > If it's ok, I'd like to discuss directly how I can help to get more of the > mapping integrated and to collaborate to get a more mature version of what > I produced that might be eligible for merging as well. > > Thanks again > > Best regards, > > Robin > > On Tue, Apr 2, 2024 at 11:28 PM Anders Broman <a.broma...@gmail.com> > wrote: > >> Hi, >> I took a stab at integrating some of it into the MMS dissector >> https://gitlab.com/wireshark/wireshark/-/merge_requests/15113. As far as >> I understand it,this will only decode "proper IEC 61850" fields. >> >> Best regards >> Anders >> >> Den sön 24 mars 2024 kl 19:41 skrev R Massink <robin....@gmail.com>: >> >>> Hello, >>> >>> I've created an initial version of an IEC-61850 dissector for wireshark. >>> It is available here: https://github.com/robidev/iec61850-dissector. >>> IEC-61850 is a mapping on top of MMS that uses a subset of MMS PDU's for >>> its purpose; substation communication. >>> >>> While an MMS dissector, which IEC-61850 maps onto already exists, this >>> MMS dissector lacks a lot of IEC-61850 specific context. For example, an >>> unconfirmed-PDU in MMS, may in IEC-61850 be a Report, CommandTermination or >>> Addcause. Each of these messages in turn may contain fields with specific >>> meaning in the context of the protocol-mapping(e.g. first entry shall be >>> ReportID, second field defines included optional fields that in turn define >>> the field-names of subsequent entries). This type of information is quite >>> hard to decode from the pure MMS packet, and therefore I created this >>> dissector to assist with the IEC-61850 context-specific encoding. >>> >>> However, I am wondering if I did the integration right. As I need >>> additional information during the MMS parsing to properly identify the >>> correct IEC-61850 field, I have copied the MMS parser code, and included >>> extra hooks to provide this information in a private structure during the >>> BER decoding. Then during the actual mapping routines, I try to identify if >>> it is a valid IEC-61850 packet, and if so, I add an additional IEC-61850 >>> layer below the MMS entry in the dissector tree and replace the INFO column >>> with IEC-61850 related information (e.g. an MMS 'read' request/response is, >>> based on context a GetDataValue, or GetRCBValue, or ..). When the packet is >>> not recognised as a known IEC-61850 service, the original (wireshark >>> native) MMS dissector is called via call_dissector(), and no further >>> processing happens. Also a setting(via prefs_register_bool_preference) is >>> provided to stop any attempt to decode IEC-61850, and hand off the packet >>> to the MMS dissector early if desired. >>> >>> Does anyone have suggestions on how this integration may be handled more >>> elegantly?(i.e. not first calling my MMS function, before handing it back >>> to the original one?) As I now replace the MMS dissector, and hand >>> processing back if I conclude the packet was not IEC-61850. I had a look at >>> heuristics, PINO's and the decode-as functionality. But these did not match >>> for various technical reasons. The heuristic function is not an option, as >>> the hook for the dissector is via >>> register_ber_oid_dissector("1.0.9506.2.3",....), and it seems to me "decode >>> as" does not allow to replace the MMS dissector. PINO seem to solve a >>> different issue(as far as I understood). >>> >>> Or would my current solution be an acceptable approach to allow for a >>> pull request in the future for merging this into the main wireshark branch? >>> (assuming other conditions are met) >>> >>> Best regards, >>> >>> Robin >>> >>> ___________________________________________________________________________ >>> 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-requ...@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-requ...@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-requ...@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-requ...@wireshark.org?subject=unsubscribe