All of lore.kernel.org
 help / color / mirror / Atom feed
From: Per Oberg <pero@wolfram.com>
To: xenomai <xenomai@xenomai.org>
Subject: Re: RTNet and setsockopt
Date: Thu, 16 Apr 2020 13:04:38 -0500 (CDT)	[thread overview]
Message-ID: <1173354937.92265.1587060278568.JavaMail.zimbra@wolfram.com> (raw)
In-Reply-To: <37888427.83114.1587056423222.JavaMail.zimbra@wolfram.com>

----- Den 16 apr 2020, på kl 19:00, xenomai xenomai@xenomai.org skrev:
> ----- Den 16 apr 2020, på kl 18:32, Lange Norbert norbert.lange@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.

Progress, i guess. It was the read that was became non blocking.

Still: I believe that "setsockopt" is missing for PF_PACKET, SOCK_RAW. I can se that it is implemented for some of the packet types but there is no reference to it in af_packet.c.

That said, I don't see how setsockopt is mapped to the different variants. I can se how recv and recfrom is mapped using the structure with the ".recvfrom = xxx" syntax but setsockopt seems to be different.

Also, when looking in the code i see that "MSG_DONTWAIT" is supported for rt_packet_recvmsg and that it sets sock->timeout to -1. So it seems a small fix to make this work, if I only knew where how setsockopt was mapped..

> > Norbert Lange

> > > -----Original Message-----
> > > From: Xenomai <xenomai-bounces@xenomai.org> On Behalf Of Per Oberg via
> > > Xenomai
> > > Sent: Donnerstag, 16. April 2020 18:08
> > > To: xenomai <xenomai@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

Thanks
Per Öberg 


  reply	other threads:[~2020-04-16 18:04 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-04-16 16:08 RTNet and setsockopt Per Oberg
     [not found] ` <VI1PR05MB59172B3C0D8909BD37F9E947F6D80@VI1PR05MB5917.eurprd05.prod.outlook.com>
2020-04-16 17:00   ` Per Oberg
2020-04-16 18:04     ` Per Oberg [this message]
2020-04-17  6:18       ` Jan Kiszka

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=1173354937.92265.1587060278568.JavaMail.zimbra@wolfram.com \
    --to=pero@wolfram.com \
    --cc=xenomai@xenomai.org \
    /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.