diff mbox series

tcindex01: fix compilation errors due to missing TCA_TCINDEX_ constants

Message ID 20240116031728.2500892-1-liwang@redhat.com
State Accepted
Headers show
Series tcindex01: fix compilation errors due to missing TCA_TCINDEX_ constants | expand

Commit Message

Li Wang Jan. 16, 2024, 3:17 a.m. UTC
The change addresses compilation errors encountered in the tcindex01.c
test when compiled against kernel-6.7 and above.

  tcindex01.c:67:4: error: ‘TCA_TCINDEX_MASK’ undeclared here (not in a function);
     did you mean ‘TCA_CODEL_MAX’?
     {TCA_TCINDEX_MASK, &mask, sizeof(mask), NULL},
      ^~~~~~~~~~~~~~~~
      TCA_CODEL_MAX
  tcindex01.c:68:4: error: ‘TCA_TCINDEX_SHIFT’ undeclared here (not in a function);
     did you mean ‘TCA_FLOW_RSHIFT’?
     {TCA_TCINDEX_SHIFT, &shift, sizeof(shift), NULL},
      ^~~~~~~~~~~~~~~~~
      TCA_FLOW_RSHIFT
  CC testcases/cve/cve-2016-7117
  CC utils/sctp/func_tests/test_getname_v6.o
  tcindex01.c:69:4: error: ‘TCA_TCINDEX_CLASSID’ undeclared here (not in a function);
     did you mean ‘TCA_FLOWER_CLASSID’?
     {TCA_TCINDEX_CLASSID, &clsid, sizeof(clsid), NULL},
      ^~~~~~~~~~~~~~~~~~~
      TCA_FLOWER_CLASSID

The errors were due to the removal of certain TCA_TCINDEX_ constants
from the kernel's user API (uapi), as indicated by the kernel commit.

  commit 82b2545ed9a (net/sched: Remove uapi support for tcindex classifier)

The reason why I didn't add this into LTP library is that the defines
have been dropped we just need to satisfy this one case.
---

Notes:
    We need to merge this patch before the new release.

 testcases/cve/tcindex01.c | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

Comments

Petr Vorel Jan. 16, 2024, 12:12 p.m. UTC | #1
Hi Li,,

> The change addresses compilation errors encountered in the tcindex01.c
> test when compiled against kernel-6.7 and above.

"against kernel-6.7". But 82b2545ed9a will be released in 6.8, right?

>   tcindex01.c:67:4: error: ‘TCA_TCINDEX_MASK’ undeclared here (not in a function);
>      did you mean ‘TCA_CODEL_MAX’?
>      {TCA_TCINDEX_MASK, &mask, sizeof(mask), NULL},
>       ^~~~~~~~~~~~~~~~
>       TCA_CODEL_MAX
>   tcindex01.c:68:4: error: ‘TCA_TCINDEX_SHIFT’ undeclared here (not in a function);
>      did you mean ‘TCA_FLOW_RSHIFT’?
>      {TCA_TCINDEX_SHIFT, &shift, sizeof(shift), NULL},
>       ^~~~~~~~~~~~~~~~~
>       TCA_FLOW_RSHIFT
>   CC testcases/cve/cve-2016-7117
>   CC utils/sctp/func_tests/test_getname_v6.o
>   tcindex01.c:69:4: error: ‘TCA_TCINDEX_CLASSID’ undeclared here (not in a function);
>      did you mean ‘TCA_FLOWER_CLASSID’?
>      {TCA_TCINDEX_CLASSID, &clsid, sizeof(clsid), NULL},
>       ^~~~~~~~~~~~~~~~~~~
>       TCA_FLOWER_CLASSID

> The errors were due to the removal of certain TCA_TCINDEX_ constants
> from the kernel's user API (uapi), as indicated by the kernel commit.

>   commit 82b2545ed9a (net/sched: Remove uapi support for tcindex classifier)

> The reason why I didn't add this into LTP library is that the defines
> have been dropped we just need to satisfy this one case.

+1 for adding enum here instead of writing m4 autotools check.

> Notes:
>     We need to merge this patch before the new release.
+1

Reviewed-by: Petr Vorel <pvorel@suse.cz>

Kind regards,
Petr
Martin Doucha Jan. 16, 2024, 12:38 p.m. UTC | #2
Hi,
thanks for the fix. I agree that this doesn't need to go into LAPI 
headers since we probably won't add another test for tcindex.

Reviewed-by: Martin Doucha <mdoucha@suse.cz>

On 16. 01. 24 4:17, Li Wang wrote:
> The change addresses compilation errors encountered in the tcindex01.c
> test when compiled against kernel-6.7 and above.
> 
>    tcindex01.c:67:4: error: ‘TCA_TCINDEX_MASK’ undeclared here (not in a function);
>       did you mean ‘TCA_CODEL_MAX’?
>       {TCA_TCINDEX_MASK, &mask, sizeof(mask), NULL},
>        ^~~~~~~~~~~~~~~~
>        TCA_CODEL_MAX
>    tcindex01.c:68:4: error: ‘TCA_TCINDEX_SHIFT’ undeclared here (not in a function);
>       did you mean ‘TCA_FLOW_RSHIFT’?
>       {TCA_TCINDEX_SHIFT, &shift, sizeof(shift), NULL},
>        ^~~~~~~~~~~~~~~~~
>        TCA_FLOW_RSHIFT
>    CC testcases/cve/cve-2016-7117
>    CC utils/sctp/func_tests/test_getname_v6.o
>    tcindex01.c:69:4: error: ‘TCA_TCINDEX_CLASSID’ undeclared here (not in a function);
>       did you mean ‘TCA_FLOWER_CLASSID’?
>       {TCA_TCINDEX_CLASSID, &clsid, sizeof(clsid), NULL},
>        ^~~~~~~~~~~~~~~~~~~
>        TCA_FLOWER_CLASSID
> 
> The errors were due to the removal of certain TCA_TCINDEX_ constants
> from the kernel's user API (uapi), as indicated by the kernel commit.
> 
>    commit 82b2545ed9a (net/sched: Remove uapi support for tcindex classifier)
> 
> The reason why I didn't add this into LTP library is that the defines
> have been dropped we just need to satisfy this one case.
> ---
> 
> Notes:
>      We need to merge this patch before the new release.
> 
>   testcases/cve/tcindex01.c | 17 +++++++++++++++++
>   1 file changed, 17 insertions(+)
> 
> diff --git a/testcases/cve/tcindex01.c b/testcases/cve/tcindex01.c
> index b4f2bb01a..70e5639f1 100644
> --- a/testcases/cve/tcindex01.c
> +++ b/testcases/cve/tcindex01.c
> @@ -32,6 +32,23 @@
>   
>   #define DEVNAME "ltp_dummy1"
>   
> +#ifndef TCA_TCINDEX_MAX
> +enum {
> +       TCA_TCINDEX_UNSPEC,
> +       TCA_TCINDEX_HASH,
> +       TCA_TCINDEX_MASK,
> +       TCA_TCINDEX_SHIFT,
> +       TCA_TCINDEX_FALL_THROUGH,
> +       TCA_TCINDEX_CLASSID,
> +       TCA_TCINDEX_POLICE,
> +       TCA_TCINDEX_ACT,
> +       __TCA_TCINDEX_MAX
> +};
> +
> +#define TCA_TCINDEX_MAX     (__TCA_TCINDEX_MAX - 1)
> +#endif
> +
> +
>   static const uint32_t qd_handle = TC_H_MAKE(1 << 16, 0);
>   static const uint32_t clsid = TC_H_MAKE(1 << 16, 1);
>   static const uint32_t shift = 10;
Petr Vorel Jan. 16, 2024, 4:10 p.m. UTC | #3
Hi Li, Martin,

thanks for your review, Martin!

> Hi,
> thanks for the fix. I agree that this doesn't need to go into LAPI headers
> since we probably won't add another test for tcindex.

And if yes, we would simply move it to lapi.
Li, please go ahead and merge.

Kind regards,
Petr
Li Wang Jan. 17, 2024, 1:42 a.m. UTC | #4
On Tue, Jan 16, 2024 at 8:12 PM Petr Vorel <pvorel@suse.cz> wrote:

> Hi Li,,
>
> > The change addresses compilation errors encountered in the tcindex01.c
> > test when compiled against kernel-6.7 and above.
>
> "against kernel-6.7". But 82b2545ed9a will be released in 6.8, right?
>

It's already contained in the kernel-6.7 release.

Patch merged, thanks!
Petr Vorel Jan. 17, 2024, 9:08 a.m. UTC | #5
> On Tue, Jan 16, 2024 at 8:12 PM Petr Vorel <pvorel@suse.cz> wrote:

> > Hi Li,,

> > > The change addresses compilation errors encountered in the tcindex01.c
> > > test when compiled against kernel-6.7 and above.

> > "against kernel-6.7". But 82b2545ed9a will be released in 6.8, right?


> It's already contained in the kernel-6.7 release.

Well, it's not that important (and was already merged anyway), but just for
clarity:

on updated kernel tree (with fetched tags):
$ git tag --contains 82b2545ed9a
next-20240104
next-20240105
next-20240109
next-20240110
next-20240112

Also, LTP tree without this patch compiles on Tumbleweed with 6.7 kernel
headers.

gitk shows:
$ gitk -1 82b2545ed9a
Follows: v6.7-rc6
Precedes: next-20240104, next-20240105, next-20240109, next-20240110, next-20240112
=> IMHO netdev merge window started at v6.7-rc6, but it's window for v6.8-rc1.

> Patch merged, thanks!

Thanks for spotting this early enough!

Kind regards,
Petr
Jamal Hadi Salim Jan. 17, 2024, 3:52 p.m. UTC | #6
On Mon, Jan 15, 2024 at 10:17 PM Li Wang <liwang@redhat.com> wrote:
>
> The change addresses compilation errors encountered in the tcindex01.c
> test when compiled against kernel-6.7 and above.
>
>   tcindex01.c:67:4: error: ‘TCA_TCINDEX_MASK’ undeclared here (not in a function);
>      did you mean ‘TCA_CODEL_MAX’?
>      {TCA_TCINDEX_MASK, &mask, sizeof(mask), NULL},
>       ^~~~~~~~~~~~~~~~
>       TCA_CODEL_MAX
>   tcindex01.c:68:4: error: ‘TCA_TCINDEX_SHIFT’ undeclared here (not in a function);
>      did you mean ‘TCA_FLOW_RSHIFT’?
>      {TCA_TCINDEX_SHIFT, &shift, sizeof(shift), NULL},
>       ^~~~~~~~~~~~~~~~~
>       TCA_FLOW_RSHIFT
>   CC testcases/cve/cve-2016-7117
>   CC utils/sctp/func_tests/test_getname_v6.o
>   tcindex01.c:69:4: error: ‘TCA_TCINDEX_CLASSID’ undeclared here (not in a function);
>      did you mean ‘TCA_FLOWER_CLASSID’?
>      {TCA_TCINDEX_CLASSID, &clsid, sizeof(clsid), NULL},
>       ^~~~~~~~~~~~~~~~~~~
>       TCA_FLOWER_CLASSID
>
> The errors were due to the removal of certain TCA_TCINDEX_ constants
> from the kernel's user API (uapi), as indicated by the kernel commit.
>
>   commit 82b2545ed9a (net/sched: Remove uapi support for tcindex classifier)
>
> The reason why I didn't add this into LTP library is that the defines
> have been dropped we just need to satisfy this one case.
> ---
>
> Notes:
>     We need to merge this patch before the new release.
>
>  testcases/cve/tcindex01.c | 17 +++++++++++++++++
>  1 file changed, 17 insertions(+)
>


Pardon my ignorance - what is this tree? I dont recall seeing this
anywhere. If you pull uapi headers from the kernel on your tree you
can catch these deletions sooner..

cheers,
jamal

> diff --git a/testcases/cve/tcindex01.c b/testcases/cve/tcindex01.c
> index b4f2bb01a..70e5639f1 100644
> --- a/testcases/cve/tcindex01.c
> +++ b/testcases/cve/tcindex01.c
> @@ -32,6 +32,23 @@
>
>  #define DEVNAME "ltp_dummy1"
>
> +#ifndef TCA_TCINDEX_MAX
> +enum {
> +       TCA_TCINDEX_UNSPEC,
> +       TCA_TCINDEX_HASH,
> +       TCA_TCINDEX_MASK,
> +       TCA_TCINDEX_SHIFT,
> +       TCA_TCINDEX_FALL_THROUGH,
> +       TCA_TCINDEX_CLASSID,
> +       TCA_TCINDEX_POLICE,
> +       TCA_TCINDEX_ACT,
> +       __TCA_TCINDEX_MAX
> +};
> +
> +#define TCA_TCINDEX_MAX     (__TCA_TCINDEX_MAX - 1)
> +#endif
> +
> +
>  static const uint32_t qd_handle = TC_H_MAKE(1 << 16, 0);
>  static const uint32_t clsid = TC_H_MAKE(1 << 16, 1);
>  static const uint32_t shift = 10;
> --
> 2.40.1
>
Li Wang Jan. 18, 2024, 12:48 a.m. UTC | #7
Hi Jamal,

Jamal Hadi Salim <jhs@mojatatu.com> wrote:

Pardon my ignorance - what is this tree? I dont recall seeing this
> anywhere. If you pull uapi headers from the kernel on your tree you
> can catch these deletions sooner..
>

This is an LTP (Linux Test Project <https://linux-test-project.github.io/>)
that targets testing the Linux kernel.

The commit 82b2545ed9a you made in kernel recently caused the LTP
compile break on the latest mainline kernel. So that's why I CCed you
in this patch.

BTW, It would be helpful to run some LTP test cases against our kernel-patch
before sent to LKML next time.
Jamal Hadi Salim Jan. 21, 2024, 5:24 p.m. UTC | #8
Hi Li Wang,

On Wed, Jan 17, 2024 at 7:49 PM Li Wang <liwang@redhat.com> wrote:
>
> Hi Jamal,
>
> Jamal Hadi Salim <jhs@mojatatu.com> wrote:
>
>> Pardon my ignorance - what is this tree? I dont recall seeing this
>> anywhere. If you pull uapi headers from the kernel on your tree you
>> can catch these deletions sooner..
>
>
> This is an LTP (Linux Test Project) that targets testing the Linux kernel.
>
> The commit 82b2545ed9a you made in kernel recently caused the LTP
> compile break on the latest mainline kernel. So that's why I CCed you
> in this patch.
>
> BTW, It would be helpful to run some LTP test cases against our kernel-patch
> before sent to LKML next time.
>

Take a look at NIPA. It allows distributed testing - meaning you can
run LTP tests on your machine(s) and then share the results. There's a
doc here:
https://docs.google.com/document/d/1TPlOOvv0GaopC3fzW-wiq8TYpl7rh8Vl_mmal0uFeJc/edit
It currently it works on kernel branch snapshots - which at minimal
would have caught the issue you fixed on LTP with tcindex.

cheers,
jamal
diff mbox series

Patch

diff --git a/testcases/cve/tcindex01.c b/testcases/cve/tcindex01.c
index b4f2bb01a..70e5639f1 100644
--- a/testcases/cve/tcindex01.c
+++ b/testcases/cve/tcindex01.c
@@ -32,6 +32,23 @@ 
 
 #define DEVNAME "ltp_dummy1"
 
+#ifndef TCA_TCINDEX_MAX
+enum {
+       TCA_TCINDEX_UNSPEC,
+       TCA_TCINDEX_HASH,
+       TCA_TCINDEX_MASK,
+       TCA_TCINDEX_SHIFT,
+       TCA_TCINDEX_FALL_THROUGH,
+       TCA_TCINDEX_CLASSID,
+       TCA_TCINDEX_POLICE,
+       TCA_TCINDEX_ACT,
+       __TCA_TCINDEX_MAX
+};
+
+#define TCA_TCINDEX_MAX     (__TCA_TCINDEX_MAX - 1)
+#endif
+
+
 static const uint32_t qd_handle = TC_H_MAKE(1 << 16, 0);
 static const uint32_t clsid = TC_H_MAKE(1 << 16, 1);
 static const uint32_t shift = 10;