[jboss-jira] [JBoss JIRA] Commented: (JGRP-324) Ethereal plugin for JGroups
Richard Achmatowicz (JIRA)
jira-events at lists.jboss.org
Tue Jun 17 14:27:37 EDT 2008
[ http://jira.jboss.com/jira/browse/JGRP-324?page=comments#action_12417637 ]
Richard Achmatowicz commented on JGRP-324:
------------------------------------------
Hello Yamato-san
I spent a little more time looking at JGroups wireformats. I sent you earlier the wireformat for JGroups messages as sent by UDP/TCP.
I wanted to add to that a concrete protocol as well, and I have done so for the lowest level protocol sitting on top of UDP/TCP - the PING protocol. I have included the wireformat for that message at the end of this email.
Just as a reminder, we have the following structure for things sent across the wire in JGroups (up to and including PING):
* Ethernet frame
** UDP/TCP packet
*** JGroups TP packet, containing a header and one or more bundled Messages
**** Message containing a PING header
1. I believe we now have enough information to start putting together a dissector which will handle completely PING messages. A PING message is going to be Message structure which contains a single PING header. We should make it our aim to get this working as a next step.
The key problems I see in getting this working are:
(i) dealing with bundled messages - Messages can contain one or more bundled Messages and as a first step in receiving a TP packet, need to be able to unbundle it if necessary.
(ii) writing small C routines to dissect Address instances - Address instances are embedded both in TP packets, serialized Messages, as well as serialized PingHeaders.
Solving (i) will involve reading up on how Wireshark handles bundled messages and getting some basic framework working to display the individual packets within a bundle in some reasonable way on the Wireshark GUI.
Solving (ii) will simply be a matter of writing a Wireshark routine for displaying an arbitrary JGroups Address - mimicking the code in Util.readAddress(). Shouldn't be too difficult.
2. If you need a svn repository to store your Wireshark code, I can set up a repo for you on our internal QA repository.
What do you think about 1 & 2?
Richard
PING wire format (PingHeader)
======================
byte type: (1=PingHeader.GET_MBRS_REQ, 2=PingHeader.GET_MBRS_RSP)
PingRsp response: can take value null, or a PingRsp instance
PingRsp class
==========
Address local ;
Address coord ;
boolean is_server ;
These elements are serialised using PingRsp.writeTo() and PingRsp.readFrom() methods, which use
DataStream methods to write bthe small pieces which make up the serialzed form. For example,
Addresses are written using a combination of Util.writeStreamable() and Address.writeTo().
> Ethereal plugin for JGroups
> ---------------------------
>
> Key: JGRP-324
> URL: http://jira.jboss.com/jira/browse/JGRP-324
> Project: JGroups
> Issue Type: Feature Request
> Reporter: Bela Ban
> Assigned To: Richard Achmatowicz
> Priority: Minor
> Fix For: 2.x
>
>
> Write a C implementation of an ethereal plugin which understands the JGroups wire format and displays information about the JGroups messages (e.g. sender, receiver, headers) in ethereal.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the jboss-jira
mailing list