[subexp-daq] lwrocmerge stream server problem coupled with Go4

Håkan T Johansson f96hajo at chalmers.se
Fri Jan 17 15:50:48 CET 2025


Dear Martin,

Does it work to connect the go4 to a transport server?

(The protocols are very similar, the only on-wire difference is actually 
that a stream server sends back a request to get a new block of data every 
time.  but drasi does not care about that, it just sends data anyhow, and 
eats whatever garbage (request) the consumer is sending to it).

Both transport and stream protocols start by sendsing a 16-byte 'info' 
header to the client.  This I have abused a bit to send some additional 
information about port mapping.  This may actually be only in the stream 
case and not in the transport case, since there the data transmission 
starts without any further request, such that I cannot play that trick.)

It may be that go4 does not like that abuse.  However, those port map 
tricks were first done in ucesb, so should be the same.  So that is a bit 
of a wonder then...

Other test: can you use a plain go4 ('empty' equivalent) and see if that 
is willing to eat the data from drasi?  If not, we have source so can 
debug...

Hmm, the drasi '--server' option has the 'forcemap' option, but that would 
surely not help.  One could implement a 'nomap' ('noportmap') option to 
turn these tricks off, if they turn out to be the issue.  That then leads 
to the fun with 'port-in-use', but that's another story...

What may then be nicer to use is (if transport protocol works) to just use 
a transport server, but on another port.  And tell that --server to be 
'nohold'.  That is then the equivalent of a transport server in that it 
does not hinder the DAQ if it does not keep up.

I'm Cc'ing the subexp-daq at lists.chalmers.se also, as this info may be 
useful for someone else.  (And also that this might be a point that could 
use better documentation...  A small protocol description...)

Cheers,
Håkan



On Fri, 17 Jan 2025, Bajzek, Martin wrote:

> 
> Dear Haakan,
> 
> 
> there's an issue if a Go4 client connects to a stream server from drasi
> timeorderer (lwrocmerge executable).
> 
> The client connects successfully but throws some error (can't debug with
> -ggdb3, as the build is not ours) on the very first event.
> 
> Says that something is wrong with the event source.
> 
> 
> However, if I spawn] a UCESB intermediary:
> 
> ./empty/empty stream://daq --server=stream
> 
> 
> Then everything works fine..
> 
> 
> Could this be that the LMD packets in lwrocmerge stream server are different
> than in the UCESB empty server?
> 
> If not, what would be the suspect?
> 
> 
> Cheers,
> 
> -- Martin
> 
> 
>


More information about the subexp-daq mailing list