streaming data: QNET or sockets

Suppossing one had data that had to be sent continuously
over ethernet. It’s important that all the data is received,
as realtime as possible, with no loss. Both sides running
QNX 6.2, but the one is x86, the other PowerPC.
What is the best (ie most efficient & reliable) to do:
-QNET/QNX message passing via MsgSend etc
-Socket
-Other?

Alex Cellarius <acellarius@yahoo.com> wrote:

Suppossing one had data that had to be sent continuously
over ethernet. It’s important that all the data is received,
as realtime as possible, with no loss. Both sides running
QNX 6.2, but the one is x86, the other PowerPC.
What is the best (ie most efficient & reliable) to do:
-QNET/QNX message passing via MsgSend etc

Can’t do this cause you are crossing endian.

-Socket

UDP with some sort of ACK/RETRANSMIT in case packet lost.

-Other?

An io-net module to be load into io-net, and pumping data
through ethernet, with ACK/RETRANSMIT.

-xtang

Xiaodan Tang <xtang@qnx.com> wrote:

Alex Cellarius <> acellarius@yahoo.com> > wrote:
Suppossing one had data that had to be sent continuously
over ethernet. It’s important that all the data is received,
as realtime as possible, with no loss. Both sides running
QNX 6.2, but the one is x86, the other PowerPC.
What is the best (ie most efficient & reliable) to do:
-QNET/QNX message passing via MsgSend etc

Can’t do this cause you are crossing endian.

I answered too fast. You actually CAN do cross endian message
passing.

The performance however, very depends on the size of each
MsgSend(). The Large you send, the better the performance.
But remember, your MsgSend() is blocked, until server do
a MsgReply(), it can’t do another MsgSend().

-xtang

On 30 Jul 2002 02:17:13 GMT, Xiaodan Tang <xtang@qnx.com> wrote:

Xiaodan Tang <> xtang@qnx.com> > wrote:
Alex Cellarius <> acellarius@yahoo.com> > wrote:
Suppossing one had data that had to be sent continuously
over ethernet. It’s important that all the data is received,
as realtime as possible, with no loss. Both sides running
QNX 6.2, but the one is x86, the other PowerPC.
What is the best (ie most efficient & reliable) to do:
-QNET/QNX message passing via MsgSend etc

Can’t do this cause you are crossing endian.

I answered too fast. You actually CAN do cross endian message
passing.

The performance however, very depends on the size of each
MsgSend(). The Large you send, the better the performance.
But remember, your MsgSend() is blocked, until server do
a MsgReply(), it can’t do another MsgSend().

-xtang

Thank you!

On 30 Jul 2002 02:17:13 GMT, Xiaodan Tang <xtang@qnx.com> wrote:

Xiaodan Tang <> xtang@qnx.com> > wrote:
Alex Cellarius <> acellarius@yahoo.com> > wrote:
Suppossing one had data that had to be sent continuously
over ethernet. It’s important that all the data is received,
as realtime as possible, with no loss. Both sides running
QNX 6.2, but the one is x86, the other PowerPC.
What is the best (ie most efficient & reliable) to do:
-QNET/QNX message passing via MsgSend etc

Can’t do this cause you are crossing endian.

I answered too fast. You actually CAN do cross endian message
passing.

The customer tried using the transparent filesystem.
The other PC’s filesystem appears, but trying an ‘ls’
on it fails, complaining about endianness.
Is there something special/different that should be done
in cross endian situations?

Alex Cellarius <acellarius@yahoo.com> wrote:

On 30 Jul 2002 02:17:13 GMT, Xiaodan Tang <> xtang@qnx.com> > wrote:
Xiaodan Tang <> xtang@qnx.com> > wrote:
Alex Cellarius <> acellarius@yahoo.com> > wrote:
Suppossing one had data that had to be sent continuously
over ethernet. It’s important that all the data is received,
as realtime as possible, with no loss. Both sides running
QNX 6.2, but the one is x86, the other PowerPC.
What is the best (ie most efficient & reliable) to do:
-QNET/QNX message passing via MsgSend etc

Can’t do this cause you are crossing endian.

I answered too fast. You actually CAN do cross endian message
passing.

The customer tried using the transparent filesystem.
The other PC’s filesystem appears, but trying an ‘ls’
on it fails, complaining about endianness.
Is there something special/different that should be done
in cross endian situations?

If it’s cross endian, you can only do MsgSend/Receive/Reply()
yourself; Any exist managers won’t works for you. So, no, you
can’t do what you described cross endian.

-xtang

On 30 Jul 2002 20:37:45 GMT, Xiaodan Tang <xtang@qnx.com> wrote:

Alex Cellarius <> acellarius@yahoo.com> > wrote:
On 30 Jul 2002 02:17:13 GMT, Xiaodan Tang <> xtang@qnx.com> > wrote:
Xiaodan Tang <> xtang@qnx.com> > wrote:
Alex Cellarius <> acellarius@yahoo.com> > wrote:
Suppossing one had data that had to be sent continuously
over ethernet. It’s important that all the data is received,
as realtime as possible, with no loss. Both sides running
QNX 6.2, but the one is x86, the other PowerPC.
What is the best (ie most efficient & reliable) to do:
-QNET/QNX message passing via MsgSend etc

Can’t do this cause you are crossing endian.

I answered too fast. You actually CAN do cross endian message
passing.

The customer tried using the transparent filesystem.
The other PC’s filesystem appears, but trying an ‘ls’
on it fails, complaining about endianness.
Is there something special/different that should be done
in cross endian situations?

If it’s cross endian, you can only do MsgSend/Receive/Reply()
yourself; Any exist managers won’t works for you. So, no, you
can’t do what you described cross endian.

OK-just wanted to make sure about that one.

I thought/hoped since message passing works
according to your post, then the filesystem
will also “just work”.

PS Would NFS support cross endiannes?
Is is possible to mkfifo on an NFS FS?

Thanks so far for the replies, Xiaodan

Alex Cellarius <acellarius@yahoo.com> wrote:

On 30 Jul 2002 20:37:45 GMT, Xiaodan Tang <> xtang@qnx.com> > wrote:
Alex Cellarius <> acellarius@yahoo.com> > wrote:
On 30 Jul 2002 02:17:13 GMT, Xiaodan Tang <> xtang@qnx.com> > wrote:
Xiaodan Tang <> xtang@qnx.com> > wrote:
Alex Cellarius <> acellarius@yahoo.com> > wrote:
Suppossing one had data that had to be sent continuously
over ethernet. It’s important that all the data is received,
as realtime as possible, with no loss. Both sides running
QNX 6.2, but the one is x86, the other PowerPC.
What is the best (ie most efficient & reliable) to do:
-QNET/QNX message passing via MsgSend etc

Can’t do this cause you are crossing endian.

I answered too fast. You actually CAN do cross endian message
passing.

The customer tried using the transparent filesystem.
The other PC’s filesystem appears, but trying an ‘ls’
on it fails, complaining about endianness.
Is there something special/different that should be done
in cross endian situations?

If it’s cross endian, you can only do MsgSend/Receive/Reply()
yourself; Any exist managers won’t works for you. So, no, you
can’t do what you described cross endian.

OK-just wanted to make sure about that one.

I thought/hoped since message passing works
according to your post, then the filesystem
will also “just work”.

PS Would NFS support cross endiannes?

NFS works on tcpip, which makes it works between “any machine”.
As long as they understand the “NFS protocol”.

Is is possible to mkfifo on an NFS FS?

This one, actually I don’t know.

-xtang

Xiaodan Tang <xtang@qnx.com> wrote:

Alex Cellarius <> acellarius@yahoo.com> > wrote:
Is is possible to mkfifo on an NFS FS?
This one, actually I don’t know.

With strict NFS2 (RFC1094) no; with NFS3 (RFC1813) yes; with some
extensions and overloading of the initial attributes structure in
an NFS2 message perhaps / depends on the NFS server. Looks like
the QNX6 NFS2 client will always pass on the mknod() request, so it
will depend on the server as to whether this succeeds and makes a
FIFO, fails cleanly, or spuriously creates a regular file instead.

Alex Cellarius <acellarius@yahoo.com> wrote:

OK-just wanted to make sure about that one.

I thought/hoped since message passing works
according to your post, then the filesystem
will also “just work”.

Message passing works, but the structures & structure
members used for the requests & results are not
endian-independent.

PS Would NFS support cross endiannes?

Yes. Data passed in the NFS protocol will be run
through hton* & ntoh* functions (macros) before/after
transmission/reception.

-David

QNX Training Services
http://www.qnx.com/support/training/
Please followup in this newsgroup if you have further questions.