Re: [PATCH v6 6/6] selftests/bpf: tc_tunnel - validate decap GSO and encapsulation state

"Hudson, Nick" <[email protected]> Tue, 19 May 2026 10:52:12 +0000
Newsgroups dev.linux.lists.sashiko,org.kernel.vger.bpf
Message-ID <[email protected]>
--Apple-Mail=_CB17F43A-6A3E-4102-B526-CE9D5AD217C4
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=utf-8



> On May 5, 2026, at 5:14=E2=80=AFAM, [email protected] wrote:
>=20
> !-------------------------------------------------------------------|
>  This Message Is =46rom an External Sender
>  This message came from outside your organization.
> |-------------------------------------------------------------------!
>=20
> Thank you for your contribution! Sashiko AI review found 2 potential =
issue(s) to consider:
> - [High] Pointer arithmetic `kskb->head + kskb->end` causes build =
failures and runtime logic errors on 32-bit kernels.
> - [Medium] Missing kernel feature causes test to fail instead of skip, =
breaking CI on older kernels.
> --
>=20
> commit f73fb4725baa7b601a1b82c32e5095c6b4294f5c
> Author: Nick Hudson <[email protected]>
>=20
> selftests/bpf: tc_tunnel - validate decap GSO and encapsulation state
>=20
> This commit enhances the tc_tunnel selftest to validate post-decap =
tunnel
> state for both GSO and non-GSO packets, and checks IPXIP decap for =
IPIP/SIT
> paths.
>=20
>> diff --git a/tools/testing/selftests/bpf/progs/test_tc_tunnel.c =
b/tools/testing/selftests/bpf/progs/test_tc_tunnel.c
>> index 7376df405a6b..853bca962910 100644
>> --- a/tools/testing/selftests/bpf/progs/test_tc_tunnel.c
>> +++ b/tools/testing/selftests/bpf/progs/test_tc_tunnel.c
> [ ... ]
>> @@ -621,6 +645,11 @@ static int decap_internal(struct __sk_buff *skb, =
int off, int len, char proto)
>> break;
>> case IPPROTO_GRE:
>> olen +=3D sizeof(struct gre_hdr);
>> + if (!bpf_core_enum_value_exists(enum bpf_adj_room_flags,
>> + BPF_F_ADJ_ROOM_DECAP_L4_GRE))
>> + return TC_ACT_SHOT;
>=20
> If the kernel is missing support for these new decapsulation flags, =
will
> returning TC_ACT_SHOT cause the test harness to time out and fail the =
test?
>=20
> Since selftests often run on older kernels, should missing features =
gracefully
> skip the test instead of failing it to prevent false positives and CI
> breakages on stable or LTS branches?

The current TC_ACT_SHOT fallback prevents silent passes, but it does =
cause affected subtests to fail on kernels without the new decap flags. =
We should move feature gating to prog_tests and skip unsupported =
subtests there, so older kernels report SKIP instead of FAIL while =
preserving strict checks when the feature exists.

>=20
> [ ... ]
>> @@ -655,6 +688,40 @@ static int decap_internal(struct __sk_buff *skb, =
int off, int len, char proto)
>> if (bpf_skb_adjust_room(skb, -olen, BPF_ADJ_ROOM_MAC, flags))
>> return TC_ACT_SHOT;
>>=20
>> + kskb =3D bpf_cast_to_kern_ctx(skb);
>> + shinfo =3D bpf_core_cast(kskb->head + kskb->end, struct =
skb_shared_info);
>=20
> Will this arithmetic work correctly on 32-bit kernels?
>=20
> On 64-bit architectures, sk_buff_data_t is an integer offset, so
> kskb->head + kskb->end works. However, on 32-bit platforms, =
sk_buff_data_t is
> a pointer (unsigned char *), making the addition of two pointers =
invalid C and
> causing build failures.
>=20
> Furthermore, even if cross-compiled with a 64-bit vmlinux.h, adding
> kskb->head to an absolute kskb->end pointer would yield an invalid =
address at
> runtime.

Martin previous replied

"Other tests have been using it to get shinfo already. I would leave it =
as is.
If it really would be needed to run and compile on 32-bit in the future,
it could use bpf_core_field_size(kskb->end) and then do things =
differently.=E2=80=9D

To this.



>=20
> --=20
> Sashiko AI review =C2=B7 =
https://urldefense.com/v3/__https://sashiko.dev/*/patchset/20260504101759.=
[email protected]?part=3D6__;Iw!!GjvTz_vk!VFiErP1-AQql4LyaLTqxj=
mLQFQ7MMBQ5-R9rsHjqekoHUFNBl0WsEAX6ynWPASieLSi7E1DjAA-Rf64aLeCR$


--Apple-Mail=_CB17F43A-6A3E-4102-B526-CE9D5AD217C4
Content-Disposition: attachment; filename="smime.p7s"
Content-Type: application/pkcs7-signature; name="smime.p7s"
Content-Transfer-Encoding: base64

MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBglghkgBZQMEAgEFADCABgkqhkiG9w0BBwEAAKCCCc8w
ggShMIIESKADAgECAhMxAAAAIa0XYPGypwcKAAAAAAAhMAoGCCqGSM49BAMCMD8xITAfBgNVBAoT
GEFrYW1haSBUZWNobm9sb2dpZXMgSW5jLjEaMBgGA1UEAxMRQWthbWFpQ29ycFJvb3QtRzEwHhcN
MjQxMTIxMTgzNzUyWhcNMzQxMTIxMTg0NzUyWjA8MSEwHwYDVQQKExhBa2FtYWkgVGVjaG5vbG9n
aWVzIEluYy4xFzAVBgNVBAMTDkFrYW1haUNsaWVudENBMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcD
QgAEjkdeMHsSTytADJ7eJ+O+5mpBfm9hVC6Cg9Wf+ER8HXid3E68IHjcCTNFSiezqYclAnIalS1I
cl6hRFZiacQkd6OCAyQwggMgMBIGCSsGAQQBgjcVAQQFAgMBAAEwIwYJKwYBBAGCNxUCBBYEFOa0
4dX2BYnqjkbEVEwLgf7BQJ7ZMB0GA1UdDgQWBBS2N+ieDVUAjPmykf1ahsljEXmtXDCBrwYDVR0g
BIGnMIGkMIGhBgsqAwSPTgEJCQgBATCBkTBYBggrBgEFBQcCAjBMHkoAQQBrAGEAbQBhAGkAIABD
AGUAcgB0AGkAZgBpAGMAYQB0AGUAIABQAHIAYQBjAHQAaQBjAGUAIABTAHQAYQB0AGUAbQBlAG4A
dDA1BggrBgEFBQcCARYpaHR0cDovL2FrYW1haWNybC5ha2FtYWkuY29tL0FrYW1haUNQUy5wZGYw
bAYDVR0lBGUwYwYIKwYBBQUHAwIGCCsGAQUFBwMEBgorBgEEAYI3FAICBgorBgEEAYI3CgMEBgor
BgEEAYI3CgMMBggrBgEFBQcDBwYIKwYBBQUHAwkGCSsGAQQBgjcVBQYKKwYBBAGCNxQCATAZBgkr
BgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNV
HSMEGDAWgBStAYfq3FmusRM5lU0PV6Akhot7vTCBgAYDVR0fBHkwdzB1oHOgcYYxaHR0cDovL2Fr
YW1haWNybC5ha2FtYWkuY29tL0FrYW1haUNvcnBSb290LUcxLmNybIY8aHR0cDovL2FrYW1haWNy
bC5kZncwMS5jb3JwLmFrYW1haS5jb20vQWthbWFpQ29ycFJvb3QtRzEuY3JsMIHIBggrBgEFBQcB
AQSBuzCBuDA9BggrBgEFBQcwAoYxaHR0cDovL2FrYW1haWNybC5ha2FtYWkuY29tL0FrYW1haUNv
cnBSb290LUcxLmNydDBIBggrBgEFBQcwAoY8aHR0cDovL2FrYW1haWNybC5kZncwMS5jb3JwLmFr
YW1haS5jb20vQWthbWFpQ29ycFJvb3QtRzEuY3J0MC0GCCsGAQUFBzABhiFodHRwOi8vYWthbWFp
b2NzcC5ha2FtYWkuY29tL29jc3AwCgYIKoZIzj0EAwIDRwAwRAIgaUoJ7eBk/qNcBVTJW5NC4NsO
6j4/6zQoKeKgOpeiXQUCIGkbSN83n1mMURZIK92KFRtn2X1nrZ7rcNuAQD5bvH1bMIIFJjCCBMyg
AwIBAgITFwALeewU5YRKbvcMWwABAAt57DAKBggqhkjOPQQDAjA8MSEwHwYDVQQKExhBa2FtYWkg
VGVjaG5vbG9naWVzIEluYy4xFzAVBgNVBAMTDkFrYW1haUNsaWVudENBMB4XDTI2MDMyMDEzNDgw
MloXDTI4MDMxOTEzNDgwMlowUDEZMBcGA1UECxMQTWFjQm9vayBQcm8tM1FIVDEQMA4GA1UEAxMH
bmh1ZHNvbjEhMB8GCSqGSIb3DQEJARYSbmh1ZHNvbkBha2FtYWkuY29tMIIBIjANBgkqhkiG9w0B
AQEFAAOCAQ8AMIIBCgKCAQEAx+gvYqVaQAmc/yNlMv3t5CK6FN7++3ZChJpOElnFyZWj3h+VwSqN
5WD4VQn5DL515KovgCiv63DeQ1NuXNu3XKKeakHyssixhIL2hqjlPFnsrwXJ2R9B9hAGIiOBy2rK
Var+w87AFUZ70jsZlI70IBnJOYsPYnZRmXBytTxVWk9V7Nnh10RuUfkZE2Ry+P18Z7glHYoQeksi
hz/9uqRUEqt23qDYBR1J7bB+SSW5A3LmoTEugWYzayxb9iM0vVleEHqeuN5nihGn8Y7nIrs5sIo8
6AG2Bjl0O2VgWWVfqhl9IMQlx1ZxHAicuMvDN49LD1yMkqx+LeBLboiFQQ0MVQIDAQABo4ICzDCC
AsgwCwYDVR0PBAQDAgeAMCkGA1UdJQQiMCAGCCsGAQUFBwMCBggrBgEFBQcDBAYKKwYBBAGCNwoD
BDAdBgNVHQ4EFgQUD8PIZa7GFc+oX4RLtUq8oUrOL/IwRgYDVR0RBD8wPaAnBgorBgEEAYI3FAID
oBkMF25odWRzb25AY29ycC5ha2FtYWkuY29tgRJuaHVkc29uQGFrYW1haS5jb20wHwYDVR0jBBgw
FoAUtjfong1VAIz5spH9WobJYxF5rVwwgYAGA1UdHwR5MHcwdaBzoHGGMWh0dHA6Ly9ha2FtYWlj
cmwuYWthbWFpLmNvbS9Ba2FtYWlDbGllbnRDQSgxKS5jcmyGPGh0dHA6Ly9ha2FtYWljcmwuZGZ3
MDEuY29ycC5ha2FtYWkuY29tL0FrYW1haUNsaWVudENBKDEpLmNybDCByAYIKwYBBQUHAQEEgbsw
gbgwPQYIKwYBBQUHMAKGMWh0dHA6Ly9ha2FtYWljcmwuYWthbWFpLmNvbS9Ba2FtYWlDbGllbnRD
QSgxKS5jcnQwSAYIKwYBBQUHMAKGPGh0dHA6Ly9ha2FtYWljcmwuZGZ3MDEuY29ycC5ha2FtYWku
Y29tL0FrYW1haUNsaWVudENBKDEpLmNydDAtBggrBgEFBQcwAYYhaHR0cDovL2FrYW1haW9jc3Au
YWthbWFpLmNvbS9vY3NwMDsGCSsGAQQBgjcVBwQuMCwGJCsGAQQBgjcVCILO5TqHuNQtgYWLB6Lj
IYbSD4FJhaXDEJrVfwIBZAIBUzA1BgkrBgEEAYI3FQoEKDAmMAoGCCsGAQUFBwMCMAoGCCsGAQUF
BwMEMAwGCisGAQQBgjcKAwQwRAYJKoZIhvcNAQkPBDcwNTAOBggqhkiG9w0DAgICAIAwDgYIKoZI
hvcNAwQCAgCAMAcGBSsOAwIHMAoGCCqGSIb3DQMHMAoGCCqGSM49BAMCA0gAMEUCIBZ79THtRc/r
DXpg8rSeL4tPy9/eLjXnJvYW5Ek2SUJ8AiEA5j0Wa0K9P2Vumn7N4F5MpbHW2t/kxsdwUu2Vzp6S
5BUxggHpMIIB5QIBATBTMDwxITAfBgNVBAoTGEFrYW1haSBUZWNobm9sb2dpZXMgSW5jLjEXMBUG
A1UEAxMOQWthbWFpQ2xpZW50Q0ECExcAC3nsFOWESm73DFsAAQALeewwDQYJYIZIAWUDBAIBBQCg
aTAYBgkqhkiG9w0BCQMxCwYJKoZIhvcNAQcBMBwGCSqGSIb3DQEJBTEPFw0yNjA1MTkxMDUyMDJa
MC8GCSqGSIb3DQEJBDEiBCBZ1gtm8txaqpZ0Jrhy8ng01iHn8/FUJ1ozlg5YhqyfPDANBgkqhkiG
9w0BAQsFAASCAQBLSUIZjCOdqkRl9WPcxOy390Rgr0wdHxYdUsAN/R1wZCjp2wTcD9EI4qJMgPfO
tkXSC9dw/w0Cte4v4CgdgYC37wRQcA+l0BZqUBD7LcZtz2al7KlaGleb+vScPoE4sk+3JwGgsRVI
7/K34A7KKkh9DJBdJgHLclFWA0/yNfAUcp1sIoMyjbFlFZejBfl2q1c9qV0KL03+k5XfMwnubA5a
U/f2exJUwOjgRvAZlI+Ol0N9cvLL5kTAjD1XgSmNd9Ca39na832AbEkRQd4ngVwiVp6GoM1RA1S3
z740uwKTQ6fVC7L0B3FiVV3gQgwJBTfGwkMOdcSohppuVuz4UkaTAAAAAAAA

--Apple-Mail=_CB17F43A-6A3E-4102-B526-CE9D5AD217C4--