Hi Björn,
sorry for late answer.
When I use L4Linux ORe stub driver it constantly prints these warnings:
l4lx | eth0: buffer too small (1) l4lx | eth0: buffer too small (1) l4lx | eth0: buffer too small (1)
the internal receive buffer used by the stub to receive network packets is too small to suit the packet that ORe is trying to deliver.
In drivers/net/l4ore.c:146 can you print the value of the variable size before and after the call to l4ore_recv_blocking()?
Situation is really strange here: Buffer size is 1514, after call it is equal to e.g. 60. But l4ore_recv_blocking() return value is always 1. Return value should be the required buffer size or negative error code or zero.
I checked return value on ORe side. It is zero.
Then I looked deeper into function ore_rxtx_recv_reply() generated by DICE. It is called on server side if answer was delayed (l4ore_recv_blocking() - is async). The function contains following code:
_dice_msg_buffer.rxtx_recv_out._dice_return = _dice_return;
_dice_return is equal to zero here but for some unknown reason _dice_msg_buffer.rxtx_recv_out._dice_return field never transmitted to ore_rxtx_recv_call() function. So in ore_rxtx_recv_call() function:
_dice_msg_buffer.rxtx_recv_out._dice_return := 1
I know it sounds strange but it is true. Maybe it is bug in DICE. Could you help please?
Best Regards, Alexander Valitov