All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Björn Töpel" <bjorn.topel@gmail.com>
To: kdjimeli@igalia.com
Cc: xdp-newbies@vger.kernel.org
Subject: Re: AF_XDP socket (sock2) unable to read, after writing with another AF_XDP socket (sock1)
Date: Thu, 1 Nov 2018 19:49:42 +0100	[thread overview]
Message-ID: <CAJ+HfNjfCNt+M+=bJe60JOPmTJ9q=cvf6DCC=FK0aNdY-6po5g@mail.gmail.com> (raw)
In-Reply-To: <ad85176a72e82878a4073a4215aa5e3a@igalia.com>

Den tors 1 nov. 2018 kl 18:14 skrev Konrad Djimeli <kdjimeli@igalia.com>:
>
> Hello,
>
> I am working on developing a Snabb Switch app which uses Af_XDP sockets
> and so far I have not found any AF_XDP sample example online, except for
> the sample in the Linux Kernel source. I have tried modifying the
> example, to create two sockets (sock1 and sock2) sharing a UMEM with
> custom write_sock and read_sock functions. But when I do a write with
> "sock1" I am unable to read the data with "sock2". Here is the code
> https://github.com/djkonro/afxdp/blob/master/xdpsock/xdpsock_user.c ,
> and I am new to working with AF_XDP sockets and I wish I could get some
> pointers to what may be wrong with the program.
>

Hi Konrad,

Let's recap what your application does:

1. Create two AF_XDP sockets bound to ifindex and a shared UMEM.
2. The pass NUM_DESCS descriptors to the UMEM fill ring
3. In write_sock BATCH_SIZE packets are put on the Tx ring.
4. In read_sock up to BATCH_SIZE packets are picked from the Rx ring.
5. The application exits.

In terms of correctness:

In 3. you pass the same UMEM indicies to the Tx ring (ids={0,
FRAME_SIZE, 2*FRAME_SIZE, ...}), as you have passed to the fill
ring. This is not correct. Userspace to track what ids are owned by
the user and by the kernel. Now, both the fill ring and Tx ring
contain the same id.

I'm not sure what the expected output of your program should be? Have
you verified that packets are being sent? Is the inferface/queue 0
receiving packets?

I think it would help if you explained what you are trying to do
first!

What XDP program are you running?


Cheers,
Björn



*

> Thanks,
> Konrad
> www.djimeli.me

  parent reply	other threads:[~2018-11-02  3:54 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-11-01 16:52 AF_XDP socket (sock2) unable to read, after writing with another AF_XDP socket (sock1) Konrad Djimeli
2018-11-01 18:27 ` Marius Gerling
2018-11-02 15:30   ` Konrad Djimeli
2018-11-01 18:49 ` Björn Töpel [this message]
2018-11-02 16:08   ` Konrad Djimeli
2018-11-03  8:38     ` Björn Töpel
2018-11-08 15:15   ` Konrad Djimeli
2018-11-10 14:31     ` Björn Töpel
2018-11-10 14:58       ` William Tu
2018-11-26 16:03         ` Konrad Djimeli
2018-11-26 16:04       ` Konrad Djimeli

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='CAJ+HfNjfCNt+M+=bJe60JOPmTJ9q=cvf6DCC=FK0aNdY-6po5g@mail.gmail.com' \
    --to=bjorn.topel@gmail.com \
    --cc=kdjimeli@igalia.com \
    --cc=xdp-newbies@vger.kernel.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.