From: Ido Schimmel <idosch@idosch•org>
To: Meghana Malladi <m-malladi@ti•com>
Cc: rogerq@kernel•org, danishanwar@ti•com, pabeni@redhat•com,
kuba@kernel•org, edumazet@google•com, davem@davemloft•net,
andrew+netdev@lunn•ch, bpf@vger•kernel.org,
linux-arm-kernel@lists•infradead.org,
linux-kernel@vger•kernel.org, netdev@vger•kernel.org,
robh@kernel•org, matthias.schiffer@ew•tq-group.com,
dan.carpenter@linaro•org, rdunlap@infradead•org,
diogo.ivo@siemens•com, schnelle@linux•ibm.com,
glaroque@baylibre•com, john.fastabend@gmail•com, hawk@kernel•org,
daniel@iogearbox•net, ast@kernel•org, srk@ti•com,
Vignesh Raghavendra <vigneshr@ti•com>
Subject: Re: [PATCH net 3/3] net: ti: icssg-prueth: Add AF_XDP support
Date: Thu, 23 Jan 2025 19:25:36 +0200 [thread overview]
Message-ID: <Z5J7kGFU_ZgneFAF@shredder> (raw)
In-Reply-To: <20250122124951.3072410-4-m-malladi@ti.com>
s/AF_XDP/XDP/ ?
On Wed, Jan 22, 2025 at 06:19:51PM +0530, Meghana Malladi wrote:
> From: Roger Quadros <rogerq@kernel•org>
>
> Add native XDP support. We do not support zero copy yet.
There are various XDP features (e.g., NETDEV_XDP_ACT_BASIC) to tell the
stack what the driver supports. I don't see any of them being set here.
>
> Signed-off-by: Roger Quadros <rogerq@kernel•org>
> Signed-off-by: MD Danish Anwar <danishanwar@ti•com>
[...]
> +static int emac_rx_packet(struct prueth_emac *emac, u32 flow_id, int *xdp_state)
> {
> struct prueth_rx_chn *rx_chn = &emac->rx_chns;
> u32 buf_dma_len, pkt_len, port_id = 0;
> @@ -560,10 +732,12 @@ static int emac_rx_packet(struct prueth_emac *emac, u32 flow_id)
> struct page *page, *new_page;
> struct page_pool *pool;
> struct sk_buff *skb;
> + struct xdp_buff xdp;
> u32 *psdata;
> void *pa;
> int ret;
>
> + *xdp_state = 0;
> pool = rx_chn->pg_pool;
> ret = k3_udma_glue_pop_rx_chn(rx_chn->rx_chn, flow_id, &desc_dma);
> if (ret) {
> @@ -602,8 +776,17 @@ static int emac_rx_packet(struct prueth_emac *emac, u32 flow_id)
> goto requeue;
> }
>
> - /* prepare skb and send to n/w stack */
> pa = page_address(page);
> + if (emac->xdp_prog) {
> + xdp_init_buff(&xdp, PAGE_SIZE, &rx_chn->xdp_rxq);
> + xdp_prepare_buff(&xdp, pa, PRUETH_HEADROOM, pkt_len, false);
> +
> + *xdp_state = emac_run_xdp(emac, &xdp, page);
> + if (*xdp_state != ICSSG_XDP_PASS)
> + goto requeue;
> + }
> +
> + /* prepare skb and send to n/w stack */
> skb = build_skb(pa, prueth_rxbuf_total_len(pkt_len));
> if (!skb) {
> ndev->stats.rx_dropped++;
XDP program could have changed the packet length, but driver seems to be
building the skb using original length read from the descriptor.
Consider using xdp_build_skb_from_buff()
next prev parent reply other threads:[~2025-01-23 17:25 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-01-22 12:49 [PATCH net 0/3] Add native mode XDP support Meghana Malladi
2025-01-22 12:49 ` [PATCH net 1/3] net: ti: icssg-prueth: Use page_pool API for RX buffer allocation Meghana Malladi
2025-01-23 17:12 ` Ido Schimmel
2025-02-04 17:55 ` [EXTERNAL] " Malladi, Meghana
2025-02-05 17:41 ` Ido Schimmel
2025-02-06 14:01 ` Malladi, Meghana
2025-01-22 12:49 ` [PATCH net 2/3] net: ti: icssg-prueth: introduce and use prueth_swdata struct for SWDATA Meghana Malladi
2025-01-22 12:49 ` [PATCH net 3/3] net: ti: icssg-prueth: Add AF_XDP support Meghana Malladi
2025-01-23 17:25 ` Ido Schimmel [this message]
2025-02-04 17:55 ` [EXTERNAL] " Malladi, Meghana
2025-02-05 17:46 ` Ido Schimmel
2025-02-06 14:01 ` Malladi, Meghana
2025-01-22 13:13 ` [PATCH net 0/3] Add native mode XDP support Simon Horman
2025-01-23 11:50 ` Meghana Malladi
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=Z5J7kGFU_ZgneFAF@shredder \
--to=idosch@idosch$(echo .)org \
--cc=andrew+netdev@lunn$(echo .)ch \
--cc=ast@kernel$(echo .)org \
--cc=bpf@vger$(echo .)kernel.org \
--cc=dan.carpenter@linaro$(echo .)org \
--cc=daniel@iogearbox$(echo .)net \
--cc=danishanwar@ti$(echo .)com \
--cc=davem@davemloft$(echo .)net \
--cc=diogo.ivo@siemens$(echo .)com \
--cc=edumazet@google$(echo .)com \
--cc=glaroque@baylibre$(echo .)com \
--cc=hawk@kernel$(echo .)org \
--cc=john.fastabend@gmail$(echo .)com \
--cc=kuba@kernel$(echo .)org \
--cc=linux-arm-kernel@lists$(echo .)infradead.org \
--cc=linux-kernel@vger$(echo .)kernel.org \
--cc=m-malladi@ti$(echo .)com \
--cc=matthias.schiffer@ew$(echo .)tq-group.com \
--cc=netdev@vger$(echo .)kernel.org \
--cc=pabeni@redhat$(echo .)com \
--cc=rdunlap@infradead$(echo .)org \
--cc=robh@kernel$(echo .)org \
--cc=rogerq@kernel$(echo .)org \
--cc=schnelle@linux$(echo .)ibm.com \
--cc=srk@ti$(echo .)com \
--cc=vigneshr@ti$(echo .)com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox