On Tuesday, July 8, 2025 9:45 AM, Jakub Kicinski <kuba@kernel.org> wrote: >On Tue, 8 Jul 2025 01:34:13 +0000 Song, Yoong Siang wrote: >> >For normal XDP my understanding is that its the driver's responsibility >> >to move the "reserved" stuff out of place before presenting the frame to >> >program. >> >> Is it means that driver needs to move out the "reserved" stuff before XDP program >> and then move back the stuff after XDP program for certain situation, like >XDP_PASS? > >Why would the driver need to move it back? >On XDP_PASS an skb is constructed, so the metadata should >be transferred to the skb. There is no need to copy it back >as a prepend. I said so because I thought need to put back the timestamp as prepend and then point skb_shared_hwtstamps.netdev_data to it to support the ndo_get_tstamp(). I haven't study the code flow in detail, so I might be missing something.
On Tue, 8 Jul 2025 02:06:11 +0000 Song, Yoong Siang wrote: >> Why would the driver need to move it back? >> On XDP_PASS an skb is constructed, so the metadata should >> be transferred to the skb. There is no need to copy it back >> as a prepend. > > I said so because I thought need to put back the timestamp > as prepend and then point skb_shared_hwtstamps.netdev_data to it > to support the ndo_get_tstamp(). No need, the timestamps are set in shared info directly. There are multiple drivers which use the metadata prepend method, so I'm pretty sure it should work.
On Tuesday, July 8, 2025 10:18 AM, Jakub Kicinski <kuba@kernel.org> wrote: >On Tue, 8 Jul 2025 02:06:11 +0000 Song, Yoong Siang wrote: >>> Why would the driver need to move it back? >>> On XDP_PASS an skb is constructed, so the metadata should >>> be transferred to the skb. There is no need to copy it back >>> as a prepend. >> >> I said so because I thought need to put back the timestamp >> as prepend and then point skb_shared_hwtstamps.netdev_data to it >> to support the ndo_get_tstamp(). > >No need, the timestamps are set in shared info directly. >There are multiple drivers which use the metadata prepend >method, so I'm pretty sure it should work. Thanks for pointing me in the right direction. I'll proceed with updating the IGC driver and conduct tests to ensure everything works as expected.
© 2016 - 2025 Red Hat, Inc.