All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jan Kiszka <jan.kiszka@siemens.com>
To: Marco Tessore <marco.tessore@axelsw.it>,
	"Xenomai@xenomai.org" <Xenomai@xenomai.org>
Subject: Re: About RTNet setup
Date: Mon, 18 May 2020 10:56:52 +0200	[thread overview]
Message-ID: <cf47f625-f978-6f19-6512-d8af176cb6c7@siemens.com> (raw)
In-Reply-To: <97020454f0464394b9128a7620d8d631@axelsw.it>

On 15.05.20 15:15, Marco Tessore via Xenomai wrote:
> Good morning,
> I'm working in a project where I need send and receive RAW ethernet packet in realtime.
> I'm using a Xenomai 3.1 porting on an Ubuntu machine.
> RTNet is enabled in the kernel as modules.
> 
> The problem is that I don't really know how to setup the network in userspace.
> 
> If this mailing list is not appropriate for the issue please tell me where I can write.
> 
> The results of  rtifconfig is:
> rteth0    Medium: Ethernet  Hardware address: 6C:B3:11:52:4C:E9
>            IP address: 192.168.178.142  Broadcast address: 192.168.178.255
>            UP BROADCAST RUNNING  MTU: 1500
>            RX packets:0 errors:0 dropped:0 overruns:0 frame:0
>            TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
>            collisions:0
>            RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)
> 
> rtlo      Medium: Local Loopback
>            IP address: 127.0.0.1
>            UP LOOPBACK RUNNING  MTU: 1500
> 
> So I tried rtping to ping another machine, in my network: that machine is not a realtime one, and rtping response is that there's no route to host.
> The first question is: does the other machine need to run rtnet as well to respond to the rtping protocol, or it's simply a realtime implementation of the standard ping?

No, but ARP resolution of RTnet nodes work only on explicit request. You 
need to run "rtroute solicit <ip>" for that, or the other side needs to 
ping you.

> 
> The second question is: to send and receive custom ethernet frames from a userspace process,
> What is the best configuration of rtnet.conf ? I don't really need rt-tcpip and I don't know how TDMA works.
> 

You don't rtnet.conf and the setup tool then. Just load the rtnet, 
rt_packet, and rt-<driver> modules (provided you unbound the target 
interface from the Linux driver already), run rtifconfig on the rteth0 
interface, and then you can use AF_PACKET sockets from your RT applications.

> Third question is about the API to use: I'm trying to see the examples, but I'have some troubles to actually implement this.

See demo/posix/cobalt/eth_p_all.c or 
testsuite/smokey/net_packet_raw/packet_raw.c (not self-standing, though) 
for examples. Study "man 7 packet" for the raw interface (RTnet is 
widely compatible).

HTH,
Jan

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


  reply	other threads:[~2020-05-18  8:56 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-05-15 13:15 About RTNet setup Marco Tessore
2020-05-18  8:56 ` Jan Kiszka [this message]
2020-05-18  9:12   ` R: " Marco Tessore
2020-05-18 10:19     ` Marco Tessore
2020-05-18 10:43       ` Jan Kiszka
2020-05-18 13:11         ` R: " Marco Tessore

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=cf47f625-f978-6f19-6512-d8af176cb6c7@siemens.com \
    --to=jan.kiszka@siemens.com \
    --cc=Xenomai@xenomai.org \
    --cc=marco.tessore@axelsw.it \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.