[Spice-devel] [PATCH RFC 00/33] Start implementing wireshark dissector from protocol specifications

Christophe Fergeau cfergeau at redhat.com
Mon Jul 20 11:18:48 PDT 2015


ACK 1 through 8 once some minor comments are addressed.

Christophe

On Wed, Jul 01, 2015 at 06:09:52PM +0100, Frediano Ziglio wrote:
> As we have a file to specify the protocol and as is hard to align
> wireshark dissector for each change we made I'm trying to do
> part of this job to a code generator.
> 
> The idea is to have the dissector split in two part, one hand
> written and the other automatic.
> 
> I tested that changing the code and protocol file the generated
> code for marshalling/unmarshalling is still the same.
> I have a small network capture to check that output is similar
> to current dissector. I tried to copy wireshark field names,
> formatting and descriptions.
> A known issue is that the protocol did not contains some details
> for images and VDAgent so these packet could look a bit poor.
> 
> First patches marked as "codegen:" are not really related to this
> set but just minor changes.
> 
> The protocol file is mainly decorated with additional attributes
> (all starting with "ws"), see patch "Allows to specify some new
> attributes for wireshark".
> Actually ws_txt and ws_txt_n attributes are implemented only on
> some additional (still too messy) pacthes.
> 
> I would like to have some comment on implementation, the
> attributes used or anothing you can think of.
> 
> Frediano Ziglio (33):
>   codegen: Import six module before first use
>   codegen: Simplify if/else blocks
>   codegen: Fix typo in variable name
>   codegen: Optimize code indentation avoiding loop
>   codegen: Remove duplicate variable initialization
>   codegen: Reuse code to fix attribute from prototype file
>   codegen: Do some check on attributes
>   codegen: Remove old ptr32 attribute
>   Start adding code to generate wireshark dissector
>   Allows to specify C type for index variable
>   Generate some definition for dissector
>   Add new_ett function to be able to create new trees
>   Decorate writer class to make easier ifdef/endif handling
>   Generate scheleton for messages and channels
>   Allows to specify some new attributes for wireshark
>   Allows to specify descriptions for enumerations
>   Decorate protocol file with attributes for wireshark
>   Change code generated index type
>   Add code to handle destination variable
>   Parse containers
>   Write function to write members
>   Read values from primitive fields
>   Read array size
>   Generate code to output parse structure
>   Handle array
>   Handle switch
>   Implement ws_inline attribute
>   Handle pointers
>   Handle base fields
>   Allow to override default values generated for the fields
>   Allow to specify 'CHANNEL' as type
>   Use a class to register wireshark fields
>   Handle flags
> 
>  common/Makefile.am             |   1 +
>  python_modules/Makefile.am     |   1 +
>  python_modules/codegen.py      |   9 +-
>  python_modules/dissector.py    | 855 +++++++++++++++++++++++++++++++++++++++++
>  python_modules/marshal.py      |  29 +-
>  python_modules/ptypes.py       | 142 +++++--
>  python_modules/spice_parser.py |  19 +-
>  spice.proto                    | 414 ++++++++++----------
>  spice_codegen.py               |  17 +-
>  9 files changed, 1239 insertions(+), 248 deletions(-)
>  create mode 100644 python_modules/dissector.py
> 
> -- 
> 2.1.0
> 
> _______________________________________________
> Spice-devel mailing list
> Spice-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/spice-devel
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/spice-devel/attachments/20150720/c5d2a9cc/attachment.sig>


More information about the Spice-devel mailing list