All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH iproute2-next 0/2] Add uapi header import script
@ 2025-09-09 13:21 Kory Maincent
  2025-09-09 13:21 ` [PATCH iproute2-next 1/2] scripts: " Kory Maincent
  2025-09-09 13:21 ` [PATCH iproute2-next 2/2] Update kernel headers Kory Maincent
  0 siblings, 2 replies; 11+ messages in thread
From: Kory Maincent @ 2025-09-09 13:21 UTC (permalink / raw)
  To: David Ahern; +Cc: netdev, Thomas Petazzoni, Kory Maincent

Add a script to automate importing Linux UAPI headers from kernel source.
The script handles dependency resolution and creates a commit with proper
attribution, similar to the ethtool project approach.

Run the script and import the current state of Linux UAPI header from
net-next.

Signed-off-by: Kory Maincent <kory.maincent@bootlin.com>
---
Kory Maincent (2):
      scripts: Add uapi header import script
      Update kernel headers

 include/uapi/linux/devlink.h |  2 ++
 include/uapi/linux/if_link.h |  1 +
 include/uapi/linux/stddef.h  |  1 -
 scripts/iproute2-import-uapi | 67 ++++++++++++++++++++++++++++++++++++++++++++
 4 files changed, 70 insertions(+), 1 deletion(-)
---
base-commit: 68ba2bc6e2d060526496bc79591b09fcbc851a7f
change-id: 20250909-feature_uapi_import-8bdbade4fb93

Best regards,
-- 
Köry Maincent, Bootlin
Embedded Linux and kernel engineering
https://bootlin.com


^ permalink raw reply	[flat|nested] 11+ messages in thread

* [PATCH iproute2-next 1/2] scripts: Add uapi header import script
  2025-09-09 13:21 [PATCH iproute2-next 0/2] Add uapi header import script Kory Maincent
@ 2025-09-09 13:21 ` Kory Maincent
  2025-09-11 20:57   ` David Ahern
                     ` (3 more replies)
  2025-09-09 13:21 ` [PATCH iproute2-next 2/2] Update kernel headers Kory Maincent
  1 sibling, 4 replies; 11+ messages in thread
From: Kory Maincent @ 2025-09-09 13:21 UTC (permalink / raw)
  To: David Ahern; +Cc: netdev, Thomas Petazzoni, Kory Maincent

Add a script to automate importing Linux UAPI headers from kernel source.
The script handles dependency resolution and creates a commit with proper
attribution, similar to the ethtool project approach.

Usage:
    $ LINUX_GIT="$LINUX_PATH" iproute2-import-uapi [commit]

Signed-off-by: Kory Maincent <kory.maincent@bootlin.com>
---
 scripts/iproute2-import-uapi | 67 ++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 67 insertions(+)

diff --git a/scripts/iproute2-import-uapi b/scripts/iproute2-import-uapi
new file mode 100755
index 00000000..505ab25a
--- /dev/null
+++ b/scripts/iproute2-import-uapi
@@ -0,0 +1,67 @@
+#!/bin/bash -e
+#
+# iproute2-import-uapi [commit]
+#
+# Imports sanitized copies of kernel uapi headers from <commit> (can be
+# a commit id, a tag or a branch name). If the argument is omitted,
+# commit currently checked out in the kernel repository is used.
+
+sn="${0##*/}"
+export ARCH="x86_64"
+mkopt="-j$(nproc)" || mkopt=''
+
+if [ ! -d "$LINUX_GIT" ]; then
+    echo "${sn}: please set LINUX_GIT to the location of kernel git" >&2
+    exit 1
+fi
+
+pushd "$LINUX_GIT"
+if [ -n "$1" ]; then
+    git checkout "$1"
+fi
+desc=$(git describe --exact-match 2>/dev/null \
+       || git show -s --abbrev=12 --pretty='%h: ("%s")')
+kobj=$(mktemp -d)
+make $mkopt O="$kobj" allmodconfig
+make $mkopt O="$kobj" prepare
+make $mkopt O="$kobj" INSTALL_HDR_PATH="${kobj}/hdr" headers_install
+popd
+
+pushd include/uapi
+find . -type f -name '*.h' -exec cp -v "${kobj}/hdr/include/{}" {} \;
+
+go_on=true
+while $go_on; do
+    go_on=false
+    while read f; do
+        if [ "${f#asm/}" != "$f" ]; then
+            # skip architecture dependent asm/ headers
+            continue
+        fi
+        if [ -f "$f" ]; then
+            # already present
+            continue
+        fi
+	if [ ! -f "${kobj}/hdr/include/${f}" ]; then
+            # not a kernel header
+            continue
+        fi
+        echo "+ add $f"
+        go_on=true
+        mkdir -p "${f%/*}"
+        cp "${kobj}/hdr/include/${f}" "${f}"
+    done < <(
+        find . -type f -name '*.[ch]' -exec sed -nre '\_^[[:blank:]]*#include[[:blank:]]<.+>_ { s_^[[:blank:]]*#include[[:blank:]]<([^>]*)>.*$_\1_ ; p }' {} \; \
+            | LC_ALL=C sort -u
+    )
+done
+popd
+rm -rf "$kobj"
+
+git add include/uapi
+git commit -s -F - <<EOT
+Update kernel headers
+
+Update kernel headers to commit:
+	${desc}
+EOT

-- 
2.43.0


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [PATCH iproute2-next 2/2] Update kernel headers
  2025-09-09 13:21 [PATCH iproute2-next 0/2] Add uapi header import script Kory Maincent
  2025-09-09 13:21 ` [PATCH iproute2-next 1/2] scripts: " Kory Maincent
@ 2025-09-09 13:21 ` Kory Maincent
  1 sibling, 0 replies; 11+ messages in thread
From: Kory Maincent @ 2025-09-09 13:21 UTC (permalink / raw)
  To: David Ahern; +Cc: netdev, Thomas Petazzoni, Kory Maincent

Update kernel headers to commit:
	aeb8d48ea92e: ("selftests: net: add test for ipv6 fragmentation")

Signed-off-by: Kory Maincent <kory.maincent@bootlin.com>
---
 include/uapi/linux/devlink.h | 2 ++
 include/uapi/linux/if_link.h | 1 +
 include/uapi/linux/stddef.h  | 1 -
 3 files changed, 3 insertions(+), 1 deletion(-)

diff --git a/include/uapi/linux/devlink.h b/include/uapi/linux/devlink.h
index a89df2a7..bcd5fde1 100644
--- a/include/uapi/linux/devlink.h
+++ b/include/uapi/linux/devlink.h
@@ -636,6 +636,8 @@ enum devlink_attr {
 
 	DEVLINK_ATTR_RATE_TC_BWS,		/* nested */
 
+	DEVLINK_ATTR_HEALTH_REPORTER_BURST_PERIOD,	/* u64 */
+
 	/* Add new attributes above here, update the spec in
 	 * Documentation/netlink/specs/devlink.yaml and re-generate
 	 * net/devlink/netlink_gen.c.
diff --git a/include/uapi/linux/if_link.h b/include/uapi/linux/if_link.h
index b450757c..8c460dc3 100644
--- a/include/uapi/linux/if_link.h
+++ b/include/uapi/linux/if_link.h
@@ -1562,6 +1562,7 @@ enum {
 	IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE,
 	IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE,
 	IFLA_BOND_SLAVE_PRIO,
+	IFLA_BOND_SLAVE_ACTOR_PORT_PRIO,
 	__IFLA_BOND_SLAVE_MAX,
 };
 
diff --git a/include/uapi/linux/stddef.h b/include/uapi/linux/stddef.h
index e1fcfcf3..48ee4438 100644
--- a/include/uapi/linux/stddef.h
+++ b/include/uapi/linux/stddef.h
@@ -3,7 +3,6 @@
 #define _LINUX_STDDEF_H
 
 
-
 #ifndef __always_inline
 #define __always_inline __inline__
 #endif

-- 
2.43.0


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* Re: [PATCH iproute2-next 1/2] scripts: Add uapi header import script
  2025-09-09 13:21 ` [PATCH iproute2-next 1/2] scripts: " Kory Maincent
@ 2025-09-11 20:57   ` David Ahern
  2025-09-11 21:59   ` Stephen Hemminger
                     ` (2 subsequent siblings)
  3 siblings, 0 replies; 11+ messages in thread
From: David Ahern @ 2025-09-11 20:57 UTC (permalink / raw)
  To: Kory Maincent; +Cc: netdev, Thomas Petazzoni, Stephen Hemminger

On 9/9/25 7:21 AM, Kory Maincent wrote:
> Add a script to automate importing Linux UAPI headers from kernel source.
> The script handles dependency resolution and creates a commit with proper
> attribution, similar to the ethtool project approach.
> 
> Usage:
>     $ LINUX_GIT="$LINUX_PATH" iproute2-import-uapi [commit]
> 
> Signed-off-by: Kory Maincent <kory.maincent@bootlin.com>
> ---
>  scripts/iproute2-import-uapi | 67 ++++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 67 insertions(+)
> 

Stephen and I have scripts for this, but this one is fairly easy to use,
so applied.


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH iproute2-next 1/2] scripts: Add uapi header import script
  2025-09-09 13:21 ` [PATCH iproute2-next 1/2] scripts: " Kory Maincent
  2025-09-11 20:57   ` David Ahern
@ 2025-09-11 21:59   ` Stephen Hemminger
  2025-09-16 14:40   ` Stephen Hemminger
  2025-09-16 14:41   ` Stephen Hemminger
  3 siblings, 0 replies; 11+ messages in thread
From: Stephen Hemminger @ 2025-09-11 21:59 UTC (permalink / raw)
  To: Kory Maincent; +Cc: David Ahern, netdev, Thomas Petazzoni

On Tue, 09 Sep 2025 15:21:42 +0200
Kory Maincent <kory.maincent@bootlin.com> wrote:

> Add a script to automate importing Linux UAPI headers from kernel source.
> The script handles dependency resolution and creates a commit with proper
> attribution, similar to the ethtool project approach.
> 
> Usage:
>     $ LINUX_GIT="$LINUX_PATH" iproute2-import-uapi [commit]
> 
> Signed-off-by: Kory Maincent <kory.maincent@bootlin.com>

I will continue to use my script which works off of headers processed
by "make headers_install"




^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH iproute2-next 1/2] scripts: Add uapi header import script
  2025-09-09 13:21 ` [PATCH iproute2-next 1/2] scripts: " Kory Maincent
  2025-09-11 20:57   ` David Ahern
  2025-09-11 21:59   ` Stephen Hemminger
@ 2025-09-16 14:40   ` Stephen Hemminger
  2025-09-16 15:20     ` David Ahern
  2025-09-16 14:41   ` Stephen Hemminger
  3 siblings, 1 reply; 11+ messages in thread
From: Stephen Hemminger @ 2025-09-16 14:40 UTC (permalink / raw)
  To: Kory Maincent; +Cc: David Ahern, netdev, Thomas Petazzoni

On Tue, 09 Sep 2025 15:21:42 +0200
Kory Maincent <kory.maincent@bootlin.com> wrote:

> Add a script to automate importing Linux UAPI headers from kernel source.
> The script handles dependency resolution and creates a commit with proper
> attribution, similar to the ethtool project approach.
> 
> Usage:
>     $ LINUX_GIT="$LINUX_PATH" iproute2-import-uapi [commit]
> 
> Signed-off-by: Kory Maincent <kory.maincent@bootlin.com>

This script doesn't handle the fact that kernel headers for iproute
exist in multiple locations because rdma and vduse.

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH iproute2-next 1/2] scripts: Add uapi header import script
  2025-09-09 13:21 ` [PATCH iproute2-next 1/2] scripts: " Kory Maincent
                     ` (2 preceding siblings ...)
  2025-09-16 14:40   ` Stephen Hemminger
@ 2025-09-16 14:41   ` Stephen Hemminger
  2025-09-16 16:01     ` Kory Maincent
  3 siblings, 1 reply; 11+ messages in thread
From: Stephen Hemminger @ 2025-09-16 14:41 UTC (permalink / raw)
  To: Kory Maincent; +Cc: David Ahern, netdev, Thomas Petazzoni

On Tue, 09 Sep 2025 15:21:42 +0200
Kory Maincent <kory.maincent@bootlin.com> wrote:

> Add a script to automate importing Linux UAPI headers from kernel source.
> The script handles dependency resolution and creates a commit with proper
> attribution, similar to the ethtool project approach.
> 
> Usage:
>     $ LINUX_GIT="$LINUX_PATH" iproute2-import-uapi [commit]
> 
> Signed-off-by: Kory Maincent <kory.maincent@bootlin.com>
> ---

Script I use is much simpler.

#! /bin/bash
# script to copy sanitized kernel headers

if [ $# -ne 1 ]; then
   echo "Usage: $0 kernel-directory"
   exit 1
fi

SRC=$1
if [ ! -r $SRC/usr/include/linux/rtnetlink.h ]; then
   echo "$SRC is missing headers"
   exit 1
fi

if [ ! -r include/uapi/linux/rtnetlink.h ]; then
    echo "$PWD is not iproute2 source"
    exit 1
fi

for subdir in . rdma vdpa
do	   
    DST=$subdir/include/uapi
    echo Checking $DST

    (cd $DST; find . -type f) | \
	while read f
	do
	    from=$SRC/usr/include/$f
	    to=$DST/$f
	    if ! cmp -s $from $to
	    then
		echo Updating $f
		cp $from $to
	    fi
	done
done

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH iproute2-next 1/2] scripts: Add uapi header import script
  2025-09-16 14:40   ` Stephen Hemminger
@ 2025-09-16 15:20     ` David Ahern
  0 siblings, 0 replies; 11+ messages in thread
From: David Ahern @ 2025-09-16 15:20 UTC (permalink / raw)
  To: Stephen Hemminger, Kory Maincent; +Cc: netdev, Thomas Petazzoni

On 9/16/25 8:40 AM, Stephen Hemminger wrote:
> On Tue, 09 Sep 2025 15:21:42 +0200
> Kory Maincent <kory.maincent@bootlin.com> wrote:
> 
>> Add a script to automate importing Linux UAPI headers from kernel source.
>> The script handles dependency resolution and creates a commit with proper
>> attribution, similar to the ethtool project approach.
>>
>> Usage:
>>     $ LINUX_GIT="$LINUX_PATH" iproute2-import-uapi [commit]
>>
>> Signed-off-by: Kory Maincent <kory.maincent@bootlin.com>
> 
> This script doesn't handle the fact that kernel headers for iproute
> exist in multiple locations because rdma and vduse.

rdma and vdpa are not synced from net-next.

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH iproute2-next 1/2] scripts: Add uapi header import script
  2025-09-16 14:41   ` Stephen Hemminger
@ 2025-09-16 16:01     ` Kory Maincent
  2025-09-16 16:05       ` David Ahern
  0 siblings, 1 reply; 11+ messages in thread
From: Kory Maincent @ 2025-09-16 16:01 UTC (permalink / raw)
  To: Stephen Hemminger; +Cc: David Ahern, netdev, Thomas Petazzoni

On Tue, 16 Sep 2025 07:41:55 -0700
Stephen Hemminger <stephen@networkplumber.org> wrote:

> On Tue, 09 Sep 2025 15:21:42 +0200
> Kory Maincent <kory.maincent@bootlin.com> wrote:
> 
> > Add a script to automate importing Linux UAPI headers from kernel source.
> > The script handles dependency resolution and creates a commit with proper
> > attribution, similar to the ethtool project approach.
> > 
> > Usage:
> >     $ LINUX_GIT="$LINUX_PATH" iproute2-import-uapi [commit]
> > 
> > Signed-off-by: Kory Maincent <kory.maincent@bootlin.com>
> > ---  
> 
> Script I use is much simpler.

The aim of my patch was to add a standard way of updating the uAPI header.
Indeed I supposed you maintainers, already have a script for that but for
developers that add support for new features they don't have such scripts.
People even may do it manually, even if I hope that's not the case.
We can see that the git commit messages on include/uapi/ are not
really consistent. 

IMHO using the same script as ethtool was natural.
The final decision is your call but I think we should have a standard script
whatever it is.

Regards,
-- 
Köry Maincent, Bootlin
Embedded Linux and kernel engineering
https://bootlin.com

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH iproute2-next 1/2] scripts: Add uapi header import script
  2025-09-16 16:01     ` Kory Maincent
@ 2025-09-16 16:05       ` David Ahern
  2025-09-16 16:19         ` Kory Maincent
  0 siblings, 1 reply; 11+ messages in thread
From: David Ahern @ 2025-09-16 16:05 UTC (permalink / raw)
  To: Kory Maincent, Stephen Hemminger; +Cc: netdev, Thomas Petazzoni

On 9/16/25 10:01 AM, Kory Maincent wrote:
> On Tue, 16 Sep 2025 07:41:55 -0700
> Stephen Hemminger <stephen@networkplumber.org> wrote:
> 
>> On Tue, 09 Sep 2025 15:21:42 +0200
>> Kory Maincent <kory.maincent@bootlin.com> wrote:
>>
>>> Add a script to automate importing Linux UAPI headers from kernel source.
>>> The script handles dependency resolution and creates a commit with proper
>>> attribution, similar to the ethtool project approach.
>>>
>>> Usage:
>>>     $ LINUX_GIT="$LINUX_PATH" iproute2-import-uapi [commit]
>>>
>>> Signed-off-by: Kory Maincent <kory.maincent@bootlin.com>
>>> ---  
>>
>> Script I use is much simpler.
> 
> The aim of my patch was to add a standard way of updating the uAPI header.
> Indeed I supposed you maintainers, already have a script for that but for
> developers that add support for new features they don't have such scripts.
> People even may do it manually, even if I hope that's not the case.
> We can see that the git commit messages on include/uapi/ are not
> really consistent. 
> 
> IMHO using the same script as ethtool was natural.
> The final decision is your call but I think we should have a standard script
> whatever it is.
> 
> Regards,

There are separate needs.

I sync include/uapi for iproute2-next based on net-next. rdma and vdpa
have separate -next trees which is why they have their own include/uapi
directories. This script makes this part much easier for me hence why I
merged it.

Stephen will ensure all uapi headers match the kernel release meaning
Linus' tree.

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH iproute2-next 1/2] scripts: Add uapi header import script
  2025-09-16 16:05       ` David Ahern
@ 2025-09-16 16:19         ` Kory Maincent
  0 siblings, 0 replies; 11+ messages in thread
From: Kory Maincent @ 2025-09-16 16:19 UTC (permalink / raw)
  To: David Ahern; +Cc: Stephen Hemminger, netdev, Thomas Petazzoni

On Tue, 16 Sep 2025 10:05:16 -0600
David Ahern <dsahern@gmail.com> wrote:

> On 9/16/25 10:01 AM, Kory Maincent wrote:
> > On Tue, 16 Sep 2025 07:41:55 -0700
> > Stephen Hemminger <stephen@networkplumber.org> wrote:
> >   
> >> On Tue, 09 Sep 2025 15:21:42 +0200
> >> Kory Maincent <kory.maincent@bootlin.com> wrote:
> >>  
>  [...]  
> >>
> >> Script I use is much simpler.  
> > 
> > The aim of my patch was to add a standard way of updating the uAPI header.
> > Indeed I supposed you maintainers, already have a script for that but for
> > developers that add support for new features they don't have such scripts.
> > People even may do it manually, even if I hope that's not the case.
> > We can see that the git commit messages on include/uapi/ are not
> > really consistent. 
> > 
> > IMHO using the same script as ethtool was natural.
> > The final decision is your call but I think we should have a standard script
> > whatever it is.
> > 
> > Regards,  
> 
> There are separate needs.
> 
> I sync include/uapi for iproute2-next based on net-next. rdma and vdpa
> have separate -next trees which is why they have their own include/uapi
> directories. This script makes this part much easier for me hence why I
> merged it.
> 
> Stephen will ensure all uapi headers match the kernel release meaning
> Linus' tree.

Oh, ok. Thanks for the clarification.

Regards,
-- 
Köry Maincent, Bootlin
Embedded Linux and kernel engineering
https://bootlin.com

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2025-09-16 16:20 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-09-09 13:21 [PATCH iproute2-next 0/2] Add uapi header import script Kory Maincent
2025-09-09 13:21 ` [PATCH iproute2-next 1/2] scripts: " Kory Maincent
2025-09-11 20:57   ` David Ahern
2025-09-11 21:59   ` Stephen Hemminger
2025-09-16 14:40   ` Stephen Hemminger
2025-09-16 15:20     ` David Ahern
2025-09-16 14:41   ` Stephen Hemminger
2025-09-16 16:01     ` Kory Maincent
2025-09-16 16:05       ` David Ahern
2025-09-16 16:19         ` Kory Maincent
2025-09-09 13:21 ` [PATCH iproute2-next 2/2] Update kernel headers Kory Maincent

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.