Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [ptp-dev] Proxy Protocol


On Jun 21, 2007, at 1:08 PM, Feiyi Wang wrote:

Hi Greg -

can you help to clarify a few questions on the wire protocol 2.0 spec? thanks!

- on transaction ID:

is it assumed that first command RMS sends to proxy agent will start wtih transaction ID 0? and increment by 1 each time a new command is issued?

No. You should not assume anything about the numbering or ordering of TIDs, other than that they are unique across all outstanding commands. I've updated the wiki to this effect.


- on range set notation:

  is there a reason you'd write "1-10,4-12,3" instead of "1-12"?

It's an example of a range set with overlapping ranges. It's just to show that this is legal. Of course you would normally use the simple version.


- on message format:

Although the length itself is 8 digit hex, the rest of message is still ASCII encoding, correct? so "00000008:A String" will be exactly what you will see down the wire ...?

Yes.


- does wire protocol specify what transport protocol and which port proxy agent will listen to?

No, the wire protocol only specifies the message structure.

The transport protocol is currently TCP/IP, but this will probably change when I finish adding remote support. It's likely that one of the options will be to tunnel across an ssh connection. Also, a static port number is not used. Eclipse generates a dynamic port number which the proxy connects to (it's passed as a command line argument to the proxy.)


- if say, we had developed a new proxy agent ... not necessarily using the C protocol implementation, what would be the best way to verify that it is speaking the right protocol language? in other words, any regression/unit tests we can use to validate the protocol implementation?

There are some RM specific tests in org.eclipse.ptp.proxy.tests that you could customize. I haven't run these tests for a while, so they may need to be updated. It would be great to have a more complete set of generic tests, if that is something you were thinking of doing.


- in the long run, should proxy agent always be launched by each user-session, terminated when client quit the front end? or some long running daemon will be in play?

The design is currently aimed at the former. When the proxy starts up, it should first attempt to discover the state of the system. This might involve querying a job scheduler, or for a simple runtime like orte, reading persisted information from a file (the current implementation doesn't persist anything).

We decided against the long running daemon approach for a few reasons:

- system administrators don't like long running user jobs, unless they're run through a job scheduler - it's difficult to consistently persist a deamon (nohup, etc. does not always work as expected)
- reconnecting to a daemon is problematic
- daemons, particularly those listening for incoming connections, can be security holes

The current approach doesn't require any special permissions, other than a normal user would have. We believe this will simplify the adoption of PTP, particularly in more secure environments.

Hope this helps,

Regards,

Greg



Regards,

Feiyi



Greg Watson wrote:
Hi all,
I've done a major update of the proxy wire protocol description on the wiki. Hopefully it now describes the 2.0 protocol fairly accurately. If you find any problems, please let me know. The URL is here: http://wiki.eclipse.org/index.php/PTP/designs/ rm_proxy
Regards,
Greg
_______________________________________________
ptp-dev mailing list
ptp-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/ptp-dev

_______________________________________________
ptp-dev mailing list
ptp-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/ptp-dev




Back to the top