From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from galois.linutronix.de (Galois.linutronix.de [193.142.43.55]) by mail.toke.dk (Postfix) with ESMTPS id B80E9A549AB for ; Mon, 12 Feb 2024 15:35:11 +0100 (CET) Authentication-Results: mail.toke.dk; dkim=pass (2048-bit key; secure) header.d=linutronix.de header.i=@linutronix.de header.a=rsa-sha256 header.s=2020 header.b=PI511N2S; dkim=pass (512-bit key; secure) header.d=linutronix.de header.i=@linutronix.de header.a=ed25519-sha256 header.s=2020e header.b=2Jd02fmu Message-ID: DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020; t=1707748511; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:autocrypt:autocrypt; bh=MdO8x7j/WdEuQJl6jEeEeK3rT3ORbl0PeydM+djkE4I=; b=PI511N2S1KkjdmEG+9uv3YGwIH8MirI4iUOcz2/j1zy+HctThCnLQcaPo7OAmPOuuD9oYJ 54MvsvQU4nUKrrRhyFuZ2efEQyhccZgwLT3d4rIi09c42CKureTl16SU2mEJtxp8TXa1RE SmMG7JzhSvRjRwybcGH8NhWHeA//xI/6/PfswiHSE+xBileJi77wuCjUCjdVBJqpMpVM01 iJ4eXPs3Y1Ekj2VvkwHaMyZ/Uebk4hiqAkHnkObSLIbNwJiMKcR5+drDKOyT8+yzW5DXyb 6ca1WGELZyua6tpEQlBznrfPJMRaLdL5NbVBEjRKP4m+qDi65npmUVI5HIZMyw== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020e; t=1707748511; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:autocrypt:autocrypt; bh=MdO8x7j/WdEuQJl6jEeEeK3rT3ORbl0PeydM+djkE4I=; b=2Jd02fmufh/5hQj4eT4CblHb4/FP7KRXuHvCaSncWRS5cVjqUxQDABTpgXxm/Jb83U5Dty /QxybSiRF6IfGOAw== Date: Mon, 12 Feb 2024 15:35:10 +0100 MIME-Version: 1.0 Content-Language: en-US To: =?UTF-8?Q?Toke_H=C3=B8iland-J=C3=B8rgensen?= , xdp-hints@xdp-project.net, xdp-newbies@vger.kernel.org References: <87v86tg5qp.fsf@toke.dk> From: Florian Kauer Autocrypt: addr=florian.kauer@linutronix.de; keydata= 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 ugsSqUGtSA== In-Reply-To: <87v86tg5qp.fsf@toke.dk> Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Message-ID-Hash: QGJEWPDS4YRCQ6KXPJMK5TOXVT66PK5L X-Message-ID-Hash: QGJEWPDS4YRCQ6KXPJMK5TOXVT66PK5L X-MailFrom: florian.kauer@linutronix.de X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.9 Precedence: list Subject: [xdp-hints] Re: XDP Redirect and TX Metadata List-Id: XDP hardware hints design discussion Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: T24gMTIuMDIuMjQgMTQ6NDEsIFRva2UgSMO4aWxhbmQtSsO4cmdlbnNlbiB3cm90ZToNCj4gRmxv cmlhbiBLYXVlciA8Zmxvcmlhbi5rYXVlckBsaW51dHJvbml4LmRlPiB3cml0ZXM6DQo+IA0KPj4g SGksDQo+PiBJIGFtIGN1cnJlbnRseSBpbXBsZW1lbnRpbmcgYW4gZUJQRiBmb3IgcmVkaXJlY3Rp bmcgZnJvbSBvbmUgcGh5c2ljYWwgaW50ZXJmYWNlIHRvIGFub3RoZXIuIFNvIGJhc2ljYWxseSBs b2FkaW5nIHRoZSBmb2xsb3dpbmcgYXQgZW5wOHMwOg0KPj4NCj4+IFNFQygicHJvZyIpDQo+PiBp bnQgeGRwX3JlZGlyZWN0KHN0cnVjdCB4ZHBfbWQgKmN0eCkgew0KPj4gCS8qIC4uLiAqLw0KPj4g CXJldHVybiBicGZfcmVkaXJlY3QoMyAvKiBlbnA1czAgKi8sIDApOw0KPj4gfQ0KPj4NCj4+IEkg bWFkZSB0aHJlZSBvYnNlcnZhdGlvbnMgdGhhdCBJIHdvdWxkIGxpa2UgdG8gZGlzY3VzcyB3aXRo IHlvdToNCj4+DQo+PiAxLiBUaGUgcmVkaXJlY3Rpb24gb25seSB3b3JrcyB3aGVuIEkgQUxTTyBs b2FkIHNvbWUgZUJQRiBhdCB0aGUgZWdyZXNzIGludGVyZmFjZSAoZW5wNXMwKS4gSXQgY2FuIGJl IGp1c3QNCj4+DQo+PiBTRUMoInByb2ciKQ0KPj4gaW50IHhkcF9wYXNzKHN0cnVjdCB4ZHBfbWQg KmN0eCkgew0KPj4gCXJldHVybiBYRFBfUEFTUzsNCj4+IH0NCj4+DQo+PiBidXQgdGhlcmUgaGFz IHRvIGJlIGF0IGxlYXN0IHNvbWV0aGluZy4gT3RoZXJ3aXNlLCBvbmx5IHhkcF9yZWRpcmVjdCBp cyBjYWxsZWQsIGJ1dCB4ZHBfZGV2bWFwX3htaXQgaXMgbm90Lg0KPj4gSXQgc2VlbXMgc29tZXdo YXQgcmVhc29uYWJsZSB0aGF0IHRoZSBpbnRlcmZhY2Ugd2hlcmUgdGhlIHRyYWZmaWMgaXMgcmVk aXJlY3RlZCB0byBhbHNvIG5lZWRzIHRvIGhhdmUgdGhlDQo+PiBYRFAgZnVuY3Rpb25hbGl0eSBp bml0aWFsaXplZCBzb21laG93LCBidXQgaXQgd2FzIHVuZXhwZWN0ZWQgYXQgZmlyc3QuIEl0IHRl c3RlZCBpdCB3aXRoIGFuIGkyMjUtSVQgKGlnYyBkcml2ZXIpDQo+PiBhbmQgYSA4MjU3NiAoaWdi IGRyaXZlcikuIFNvLCBpcyB0aGlzIGEgYnVnIG9yIGEgZmVhdHVyZT8NCj4gDQo+IEkgcGVyc29u YWxseSBjb25zaWRlciBpdCBhIGJ1ZywgYnV0IGFsbCB0aGUgSW50ZWwgZHJpdmVycyB3b3JrIHRo aXMgd2F5LA0KPiB1bmZvcnR1bmF0ZWx5LiBUaGUgd2FzIHNvbWUgZGlzY3Vzc2lvbiBhcm91bmQg bWFraW5nIHRoZSBYRFAgZmVhdHVyZQ0KPiBiaXRzIHJlYWQtd3JpdGUsIG1ha2luZyBpdCBwb3Nz aWJsZSB0byBlbmFibGUgWERQIHZpYSBldGh0b29sIGluc3RlYWQgb2YNCj4gaGF2aW5nIHRvIGxv YWQgYSBkdW1teSBYRFAgcHJvZ3JhbS4gQnV0IG5vIHBhdGNoZXMgaGF2ZSBtYXRlcmlhbGlzZWQg eWV0Lg0KDQpJIHNlZSwgdGhhbmtzISBTbyBhdCBsZWFzdCBpdCBpcyBleHBlY3RlZCBiZWhhdmlv ciBmb3Igbm93Lg0KSG93IGRvIG90aGVyIG5vbi1JbnRlbCBkcml2ZXJzIGhhbmRsZSB0aGlzPw0K DQoNCj4+IDIuIEZvciB0aGUgUlggc2lkZSwgdGhlIG1ldGFkYXRhIGlzIGRvY3VtZW50ZWQgYXMg IlhEUCBSWCBNZXRhZGF0YSINCj4+IChodHRwczovL2RvY3Mua2VybmVsLm9yZy9uZXR3b3JraW5n L3hkcC1yeC1tZXRhZGF0YS5odG1sKSwgd2hpbGUgZm9yDQo+PiBUWCBpdCBpcyAiQUZfWERQIFRY IE1ldGFkYXRhIg0KPj4gKGh0dHBzOi8vd3d3Lmtlcm5lbC5vcmcvZG9jL2h0bWwvbmV4dC9uZXR3 b3JraW5nL3hzay10eC1tZXRhZGF0YS5odG1sKS4NCj4+IFRoYXQgc2VlbXMgdG8gaW1wbHkgdGhh dCBUWCBtZXRhZGF0YSBvbmx5IHdvcmtzIGZvciBBRl9YRFAsIGJ1dCBub3QNCj4+IGZvciBkaXJl Y3QgcmVkaXJlY3Rpb24uIElzIHRoZXJlIGEgcmVhc29uIGZvciB0aGF0Pw0KPiANCj4gV2VsbCwg SUlSQywgQUZfWERQIHdhcyB0aGUgbW9zdCBwcmVzc2luZyB1c2UgY2FzZSwgYW5kIG5vIG9uZSBo YXMgZ290dGVuDQo+IGFyb3VuZCB0byBleHRlbmRpbmcgdGhpcyB0byB0aGUgcmVndWxhciBYRFAg Zm9yd2FyZGluZyBwYXRoIHlldC4NCg0KT2ssIHRoYXQgaXMgZmluZS4gSSBoYWQgdGhlIGZlYXIg dGhhdCB0aGVyZSBpcyBzb21lIGZ1bmRhbWVudGFsIHByb2JsZW0NCnRoYXQgcHJldmVudHMgdG8g aW1wbGVtZW50IHRoaXMuDQoNCg0KPj4gMy4gQXQgbGVhc3QgZm9yIHRoZSBpZ2MsIHRoZSBlZ3Jl c3MgcXVldWUgaXMgY3VycmVudGx5IHNlbGVjdGVkIGJ5DQo+PiB1c2luZyB0aGUgc21wX3Byb2Nl c3Nvcl9pZC4NCj4+IChodHRwczovL2dpdC5rZXJuZWwub3JnL3B1Yi9zY20vbGludXgva2VybmVs L2dpdC90b3J2YWxkcy9saW51eC5naXQvdHJlZS9kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9p Z2MvaWdjX21haW4uYz9oPXY2LjgtcmM0I24yNDUzKQ0KPj4gRm9yIG91ciBhcHBsaWNhdGlvbiwg SSB3b3VsZCBsaWtlIHRvIGRlZmluZSB0aGUgcXVldWUgb24gYSBwZXItcGFja2V0DQo+PiBiYXNp cyB2aWEgdGhlIGVCUEYuIFRoaXMgd291bGQgYWxsb3cgdG8gc3RlZXIgdGhlIHRyYWZmaWMgdG8g dGhlDQo+PiBjb3JyZWN0IHF1ZXVlIHdoZW4gdXNpbmcgVEFQUklPIGZ1bGwgaGFyZHdhcmUgb2Zm bG9hZC4gRG8geW91IHNlZSBhbnkNCj4+IHByb2JsZW0gd2l0aCBpbnRyb2R1Y2luZyBhIG5ldyBt ZXRhZGF0YSBmaWVsZCB0byBkZWZpbmUgdGhlIGVncmVzcw0KPj4gcXVldWU/DQo+IA0KPiBXZWxs LCBhIGNvdXBsZSA6KQ0KPiANCj4gMS4gV2UnZCBoYXZlIHRvIGZpbmQgYWdyZWVtZW50IGFjcm9z cyBkcml2ZXJzIGZvciBhIG51bWJlcmluZyBzY2hlbWUgdG8NCj4gcmVmZXIgdG8gcXVldWVzLg0K DQpHb29kIHBvaW50ISBBdCBsZWFzdCB3ZSBhbHJlYWR5IHJlZmVyIHRvIHF1ZXVlcyBpbiB0aGUg TVFQUklPIHFkaXNjDQooIHF1ZXVlcyBjb3VudDFAb2Zmc2V0MSBjb3VudDJAb2Zmc2V0MiAuLi4g KS4NClRoZXJlIG1pZ2h0IGJlIGRpZmZlcmVudCBhbHRlcm5hdGl2ZXMgKGxpa2UgdXNpbmcgdGhl IHRyYWZmaWMgY2xhc3MpDQpmb3IgdGhpcyBJRiB3ZSB3YW50IHRvIGltcGxlbWVudCB0aGlzIC4u Lg0KDQo+IDIuIFNlbGVjdGluZyBxdWV1ZXMgYmFzZWQgb24gQ1BVIGluZGV4IHRoZSB3YXkgaXRz IGRvbmUgbm93IG1lYW5zIHdlDQo+IGd1YXJhbnRlZSB0aGF0IHRoZSBzYW1lIHF1ZXVlIHdpbGwg b25seSBiZSBzZXJ2ZWQgZnJvbSBvbmUgQ1BVLiBXaGljaA0KPiBtZWFucyB3ZSBkb24ndCBoYXZl IHRvIGRvIGFueSBsb2NraW5nLCB3aGljaCBoZWxwcyB0cmVtZW5kb3VzbHkgd2l0aA0KPiBwZXJm b3JtYW5jZS4gRHJpdmVycyBoYW5kbGUgdGhlIGNhc2Ugd2hlcmUgdGhlcmUgYXJlIG1vcmUgQ1BV cyB0aGFuDQo+IHF1ZXVlcyBhIGJpdCBkaWZmZXJlbnRseSwgYnV0IHRoZSBvbmVzIHRoYXQgZG8g Z2VuZXJhbGx5IGhhdmUgYSBsb2NrDQo+ICh3aXRoIGFzc29jaWF0ZWQgcGVyZm9ybWFuY2Ugb3Zl cmhlYWQpLg0KDQouLi4gYnV0IHRoaXMgd2lsbCBsaWtlbHkgY29tcGxldGVseSBwcmV2ZW50IHRv IGltcGxlbWVudCB0aGlzIGluIHRoZQ0Kc3RyYWlnaHQgZm9yd2FyZCB3YXkuIFlvdSBhcmUgcmln aHQsIHdlIGRvIG5vdCB3YW50IHRoZSBDUFVzIHRvIGNvbnN0YW50bHkNCmZpZ2h0IGZvciBhY2Nl c3MgdG8gdGhlIHNhbWUgcXVldWVzIGZvciBldmVyeSBwYWNrZXQuDQoNCj4gQXMgYSB3b3JrYXJv dW5kLCB5b3UgY2FuIHVzZSBhIGNwdW1hcCB0byBzdGVlciBwYWNrZXRzIHRvIHNwZWNpZmljIENQ VXMNCj4gYW5kIHBlcmZvcm0gdGhlIGVncmVzcyByZWRpcmVjdCBpbnNpZGUgdGhlIGNwdW1hcCBp bnN0ZWFkIG9mIGRpcmVjdGx5IG9uDQo+IFJYLiBSZXF1aXJlcyBhIGJpdCBvZiBrbm93bGVkZ2Ug b2YgdGhlIGhhcmR3YXJlIGNvbmZpZ3VyYXRpb24sIGJ1dCBpdA0KPiBtYXkgYmUgZW5vdWdoIGZv ciB3aGF0IHlvdSdyZSB0cnlpbmcgdG8gZG8uDQoNClNvIEkgcmVhbGx5IGxpa2UgdGhpcyBhcHBy b2FjaCBvbiBmaXJzdCBnbGFuY2Ugc2luY2UgaXQgcHJldmVudHMgdGhlIGlzc3VlDQp5b3UgZGVz Y3JpYmUgYWJvdmUuDQoNCkhvd2V2ZXIsIGFzIHlvdSB3cml0ZSwgaXQgaXMgdmVyeSBoYXJkd2Fy ZSBkZXBlbmRlbnQgYW5kIGFsc28gZGVwZW5kcyBvbg0KaG93IGV4YWN0bHkgdGhlIGRyaXZlciBo YW5kbGVzIHRoZSBDUFUgLT4gUXVldWUgbWFwcGluZyBpbnRlcm5hbGx5Lg0KSSBoYXZlIHRoZSBm ZWVsaW5nIHRoYXQgdGhlIG1hcHBpbmcgQ1BVICUgUXVldWUgTnVtYmVyIC0+IFF1ZXVlIGFzIGl0 IGlzDQppbXBsZW1lbnRlZCBpbiB0aGUgbW9tZW50IG1pZ2h0IG5laXRoZXIgYmUgc3RhYmxlIG92 ZXIgdGltZSBub3Igb3Zlcg0KZGlmZmVyZW50IGRyaXZlcnMsIGV2ZW4gaWYgaXQgaXMgdGhlIG1v c3QgbGlrZWx5IG9uZS4NCg0KV2hhdCBkbyB5b3UgdGhpbmsgbWF5YmUgYWJvdXQgZXhwb3J0aW5n IGFuIGludGVyZmFjZSAoZS5nLiB2aWEgZXRodG9vbCkNCnRvIGRlZmluZSB0aGUgbWFwcGluZyBv ZiBDUFUgLT4gUXVldWU/DQoNClRoYW5rcywNCkZsb3JpYW4NCg==