RTNet and setsockopt

Per Oberg pero at wolfram.com
Thu Apr 16 19:00:23 CEST 2020


----- Den 16 apr 2020, på kl 18:32, Lange Norbert norbert.lange at andritz.com skrev:

> Hello Per,

> setsockopt is supported by rtnet (and wrapped with the POSIX skin). That said,
> it supports very little options you are used from Linux. Do a grep -r on
> xenomais sources.
> Xenomai mostly uses ioctls for bringing up Interfaces, etc.

> There are subtile differences and limitations aswell. I am pretty sure now that
> most operations
> are behaving like you have an nonblocking filedescriptor / socket. The RT focus
> means that there
> typically is just a check if buffers are available, and no effort is made for
> waiting.
> So select will be your best friend.
> (I am just using packet sockets, but I believe it’s the same for all of them).

Thanks, I readded the list again. The reason I started looking into this is that I had issues with blocking sends. I wanted to see what happened if I pulled the plug on the ethernet and tried to recover afterwards. 

Digging around a bit is seems like I might actually have a compiler flag issue (again...). I tried compiling my network code as a shared library.

> Norbert Lange

> > -----Original Message-----
> > From: Xenomai <xenomai-bounces at xenomai.org> On Behalf Of Per Oberg via
> > Xenomai
> > Sent: Donnerstag, 16. April 2020 18:08
> > To: xenomai <xenomai at xenomai.org>
> > Subject: RTNet and setsockopt

> > NON-ANDRITZ SOURCE: BE CAUTIOUS WITH CONTENT, LINKS OR
> > ATTACHMENTS.


> > Dear list

> > I am "porting" a posix application using raw network packages to RTNet. The
> > old code is trying to use setsockopt and ioctl. The calls I am trying to use are

> > setsockopt:
> > SO_RCVTIMEO
> > SO_SNDTIMEO
> > SO_DONTROUTE

>> These return "No such device". I guess that this is because setsockopt is not
> > rt-
> > compatible, correct ? ( There seem to be no corresponding rt_setsockopt... )


> > ioctl :
> > IFF_PROMISC | IFF_BROADCAST

> > These return "Operation not supported".

> > My code works fairly well as it is, and I probably do not need SO_DONTROUTE,
> > IFF_PROMISC, and IFF_BROADCAST with rtnet. I would, however, like to have
> > SO_RCVTIMEO, SO_SNDTIMEO or nonblock. Do I need to use O_NONBLOCK
> > together with send() instead or am I missing something ?

> > Best Regards
> > Per Öberg

> ________________________________

> This message and any attachments are solely for the use of the intended
> recipients. They may contain privileged and/or confidential information or
> other information protected from disclosure. If you are not an intended
> recipient, you are hereby notified that you received this email in error and
> that any review, dissemination, distribution or copying of this email and any
> attachment is strictly prohibited. If you have received this email in error,
> please contact the sender and delete the message and any attachment from your
> system.

> ANDRITZ HYDRO GmbH

> Rechtsform/ Legal form: Gesellschaft mit beschränkter Haftung / Corporation

> Firmensitz/ Registered seat: Wien

> Firmenbuchgericht/ Court of registry: Handelsgericht Wien

> Firmenbuchnummer/ Company registration: FN 61833 g

> DVR: 0605077

> UID-Nr.: ATU14756806

> Thank You
> _________

Thanks
Per Öberg



More information about the Xenomai mailing list