Hi,
I have knocked up an example protocol description file for the identd
protocol, and am working on a parser (using the PERL XML parser) that can
parse it and generate a dissector ...
It is TCP specific for the moment :-(
Comments welcome ...
<proto name="identd" longname="Identification Protocol (RFC1413)" tcp.port="113">
<struct name="userid">
<field type="BYTES" value="USERID" />
<field type="BYTES" size="*" value=" " />
<field type="BYTES" size="1" value=":" />
<field type="BYTES" size="*" value=" " />
<field type="BYTES" name="user" size="1+" /><!-- END_OF_FRAME? -->
</struct>
<struct name="error">
<field type="BYTES" value="ERROR" />
<field type="BYTES" size="*" value=" " />
<field type="BYTES" size="1" value=":" />
<field type="BYTES" size="*" value=" " />
<field type="BYTES" name="error-msg" size="1+" /><!-- END_OF_FRAME? -->
</struct>
<struct name="request">
<field name="port-on-server" type="BYTES" size="1+" convtype="UINT16" />
<field type="BYTES" size="*" value=" " />
<field type="BYTES" size="1" value="," />
<field type="BYTES" size="*" value=" " />
<field name="port-on-client" size="1+" type="BYTES" convtype="UINT16" />
</struct>
<struct name="reply">
<field name="port-on-client" type="BYTES" size="1+" convtype="UINT16" />
<field type="BYTES" size="*" value=" " />
<field type="BYTES" size="1" value="," />
<field type="BYTES" size="*" value=" " />
<field name="port-on-server" size="1+" type="BYTES" convtype="UINT16" />
<field type="BYTES" size="*" value=" " />
<field type="BYTES" size="1" value=":" />
<field type="BYTES" size="*" value=" " />
<alternate>
<field type="userid" />
<field type="error" />
</alternate>
</struct>
<exchanges>
<sequence>
<request type="request" />
<response type="reply" />
</sequence>
</exchanges>
</proto>
Regards
-------
Richard Sharpe, sharpe@xxxxxxxxxx
Samba (Team member, www.samba.org), Ethereal (Team member, www.zing.org)
Contributing author, SAMS Teach Yourself Samba in 24 Hours
Author, Special Edition, Using Samba