RTNet - vnic0 question

Jan Kiszka jan.kiszka at siemens.com
Thu Aug 22 16:38:27 CEST 2019


On 22.08.19 16:27, Laurentiu-Cristian Duca via Xenomai wrote:
> Hi,
> 
> I have used rtifconfig, rtroute and rtping and I mentioned that worked,
> I have written that rtt-sender and rtt-responder which use posix skin
> worked only on vnic0 and not on rteth0.
> 
> I have ported frag-ip.c (from rtnet 0.9.13 to xenomai 3)
> which uses alchemy instead of posix and it works on rteth0 link
> between two qemu-x86_64-rt_8139too virtual machines,
> but do not work on bbb (I think the drivers I use have problems on bbb).

I still suspect your ported rtt-sender/responder have some binding issue to 
RTnet so that UDP sockets fall back to plan Linux. You can check that by running 
"netstat -lun" while the two are active. If someone listens on a suspicious 
port, you have the prove.

Looking at your makefile...

> 
> Thx
> 
> On 8/22/19, Per Oberg <pero at wolfram.com> wrote:
>>
>>
>> ----- Den 22 aug 2019, på kl 13:21, xenomai xenomai at xenomai.org skrev:
>>
>>> Hi,
>>
>>> I have made a test between two qemu-x86_64-rt_8139too with different
>>> mac and IP addresses,
>>> one is master one is slave. In each of them I do:
>>> /usr/xenomai/sbin/rtnet start
>>> Then the applications rtt-sender and rtt-responder (taken from rtnet
>>> 0.9.13 release) work,
>>> but if I turn off vnic0, then rtt-sender reports error: "sendto
>>> failed: Network is unreachable",
>>> even if rteth0 is up and fully configured.
>>> Do you have any simple apps that work on rtnet?
>>
>> You have :
>> rtping
>> rtifconfig
>> rtroute
>>
>> Perhaps these can be of assistance?
>>
>>> Thank you,
>>> Kind regards
>>
>>> On 8/22/19, Laurentiu-Cristian Duca <laurentiu.duca at gmail.com> wrote:
>>>> The rt drivers for bbb are taken from:
>>>> https://github.com/G-Ray/xenomai-boneblack-rtnet-drivers
>>>> and I am not 100% sure that they are working correctly.
>>
>>>> On 8/22/19, Laurentiu-Cristian Duca <laurentiu.duca at gmail.com> wrote:
>>>>> Hello Jan and friends
>>
>>>>> Thank you for your fast answer. Please find below the details.
>>
>>>>> On 8/21/19, Jan Kiszka <jan.kiszka at siemens.com> wrote:
>>>>>> On 21.08.19 16:20, Laurentiu-Cristian Duca via Xenomai wrote:
>>>>>>> Hello rtnet community,
>>
>>>>>>> I successfully tested the examples rtt-sender and rtt-responder
>>>>>>> within a rtnet made from one beaglebone black and one
>>>>>>> qemu-x86_64-8139too,
>>>>>>> with tdma and also with nomac.
>>
>>>>>> Are we talking about some legacy Xenomai or even RTnet version? Or
>>>>>> where
>>>>>> did
>>>>>> you
>>>>>> get the examples from? They are not part of RTnet in Xenomai 3.
>>
>>>>> I got the examples from rtnet-0.9.13. I know they are quite old, but
>>>>> I needed a start point.
>>>>> Are these obsolete? Do you have any examples for Xenomai 3?
>>>>> rtnet-0.9.13/examples/xenomai/posix/rtt-sender.c
>>>>> rtnet-0.9.13/examples/xenomai/posix/rtt-responder.c
>>
>>
>>>>>>> I have noted that the presence of vnic0 as an up and fully
>>>>>>> configured interface is mandatory,
>>>>>>> even if rteth0 is up and fully configured.
>>>>>>> Otherwise the rtt-sender announces "sendto failed: Network is
>>>>>>> unreachable".
>>>>>>> Could anybody tell me why is this happening?
>>
>>>>>>> I have also noted that if I disable vnic0 (ifconfig vnic0 down),
>>>>>>> rtping works if rteth0 is up and fully configured.
>>>>>>> Why does not work rtt-sender in this case?
>>>>>>> Could it be a problem with rtnet drivers?
>>
>>>>>> I bet your examples are falling back to normal network here, and that
>>>>>> is
>>>>>> provided between your test nodes via the vnics. This leads to my
>>>>>> first
>>>>>> question:
>>>>>> Where did you pick the examples up, how did you build them etc.?
>>>>>> Also,
>>>>>> did
>>>>>> you
>>>>>> make sure that rtudp was loaded?
>>
>>>>> I am 100% sure that rtudp was loaded. The modules were loaded by a
>>>>> script:
>>>>> modprobe rt_smsc && modprobe rt_davinci_mdio && modprobe rt_ticpsw
>>>>> modprobe rtipv4 && modprobe rtpacket && modprobe rtudp
>>>>> modprobe rtmac
>>>>> modprobe nomac
>>>>> #modprobe tdma
>>
>>>>> I used robertcnelson Xenomai 3.0.9 patch for beaglebone black linux
>>>>> 4.14.108. It's on github.
>>>>> I have also copied the rtnet header files to xenomai-userspace
>>>>> include. The files compile without warnings.
>>>>> The makefile is:
>>>>> # Tested with linaro toolchain
>>>>> (gcc-linaro-7.4.1-2019.02-x86_64_arm-linux-gnueabihf)
>>>>> CC = arm-linux-gnueabihf-gcc
>>>>> XENO_INSTALL =
>>>>> /home/laur/lucru/raspberry-pi/robertcnelson/ti-linux-kernel-dev/ignore/xenomai-userspace
>>>>> RTNET_INSTALL =
>>>>> /home/laur/lucru/raspberry-pi/robertcnelson/rtnet-hiddeate2m
>>
>>>>> #XENO_CONFIG :=
>>>>> /home/laur/lucru/raspberry-pi/robertcnelson/ti-linux-kernel-dev/ignore/xenomai-userspace/usr/xenomai/bin/xeno-config
>>>>> #/usr/xenomai/bin/xeno-config
>>>>> #CFLAGS := $(shell $(XENO_CONFIG) --posix --alchemy --cflags)
>>>>> #LDFLAGS := $(shell $(XENO_CONFIG) --posix --alchemy --ldflags)

The interesting parts are commented out. For POSIX, you simply want

xeno-config --skin posix --cflags / --ldflags

Nothing self-written.

Jan

>>
>>>>> LIBCFLAGS = -Wall -I$(XENO_INSTALL)/usr/xenomai/include/cobalt
>>>>> LIBCFLAGS += -I$(XENO_INSTALL)/usr/xenomai/include
>>
>>>>> CFLAGS = -Wall -I$(XENO_INSTALL)/usr/xenomai/include/cobalt
>>>>> CFLAGS += -I$(XENO_INSTALL)/usr/xenomai/include/alchemy
>>>>> -I$(XENO_INSTALL)/usr/xenomai/include
>>>>> CFLAGS += -march=armv7-a -mfpu=vfpv4 -D_GNU_SOURCE -D_REENTRANT
>>>>> -D__COBALT__ -D__COBALT_WRAP_
>>>>> CFLAGS += -I$(RTNET_INSTALL)/stack/include
>>
>>>>> LFLAGS = -lalchemy -lcopperplate
>>>>> $(XENO_INSTALL)/usr/xenomai/lib/xenomai/bootstrap.o
>>>>> LFLAGS += -Wl,--wrap=main -Wl,--wrap=malloc -Wl,--wrap=free
>>>>> #-Wl,--dynamic-list=$(XENO_INSTALL)/usr/xenomai/lib/dynlist.ld
>>>>> LFLAGS += -L$(XENO_INSTALL)/usr/xenomai/lib -lcobalt -lpthread -lrt
>>>>> LFLAGS += -march=armv7-a -mfpu=vfpv4 -Llib
>>
>>>>> all: rtt-sender rtt-responder
>>>>> rtt-sender: rtt-sender.o
>>>>> $(CC) -o rtt-sender rtt-sender.o $(LFLAGS)
>>>>> rtt-sender.o: rtt-sender.c
>>>>> $(CC) -c -o rtt-sender.o rtt-sender.c $(CFLAGS) $(LIBCFLAGS)
>>>>> (same for rtt-responder)
>>
>>
>>>>> Kind regards,
>>>>> L-C.
>>
>>
>> Per Öberg
>>
> 

-- 
Siemens AG, Corporate Technology, CT RDA IOT SES-DE
Corporate Competence Center Embedded Linux



More information about the Xenomai mailing list