Subject: Re: [PATCH net-next 4/6] uapi: mptcp: use header file generated from YAML spec

From: Simon Horman <[email-masked]>
Date: Fri, 13 Oct 2023 19:28:23 +0200

On Tue, Oct 10, 2023 at 09:21:45PM +0200, Matthieu Baerts wrote:
> From: Davide Caratti <[email-masked]>
> 
> generated with:
> 
>  $ ./tools/net/ynl/ynl-gen-c.py --mode uapi \
>  > --spec Documentation/netlink/specs/mptcp.yaml \
>  > --header -o include/uapi/linux/mptcp_pm.h
> 
> Link: https://github.com/multipath-tcp/mptcp_net-next/issues/340
> Acked-by: Paolo Abeni <[email-masked]>
> Signed-off-by: Davide Caratti <[email-masked]>
> Signed-off-by: Matthieu Baerts <[email-masked]>

...

> diff --git a/include/uapi/linux/mptcp_pm.h b/include/uapi/linux/mptcp_pm.h
> new file mode 100644
> index 000000000000..0c7206531eb1
> --- /dev/null
> +++ b/include/uapi/linux/mptcp_pm.h
> @@ -0,0 +1,149 @@
> +/* SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause) */
> +/* Do not edit directly, auto-generated from: */
> +/*	Documentation/netlink/specs/mptcp.yaml */
> +/* YNL-GEN uapi header */
> +
> +#ifndef _UAPI_LINUX_MPTCP_PM_H
> +#define _UAPI_LINUX_MPTCP_PM_H
> +
> +#define MPTCP_PM_NAME	"mptcp_pm"
> +#define MPTCP_PM_VER	1
> +
> +/**
> + * enum mptcp_event_type

Hi Davide and Matthieu,

I understand that is autogenerated.
But it is missing an entry here for @MPTCP_EVENT_UNSPEC.
Can that be addressed somehow?

> + * @MPTCP_EVENT_CREATED: token, family, saddr4 | saddr6, daddr4 | daddr6,
> + *   sport, dport A new MPTCP connection has been created. It is the good time
> + *   to allocate memory and send ADD_ADDR if needed. Depending on the
> + *   traffic-patterns it can take a long time until the MPTCP_EVENT_ESTABLISHED
> + *   is sent.
> + * @MPTCP_EVENT_ESTABLISHED: token, family, saddr4 | saddr6, daddr4 | daddr6,
> + *   sport, dport A MPTCP connection is established (can start new subflows).
> + * @MPTCP_EVENT_CLOSED: token A MPTCP connection has stopped.
> + * @MPTCP_EVENT_ANNOUNCED: token, rem_id, family, daddr4 | daddr6 [, dport] A
> + *   new address has been announced by the peer.
> + * @MPTCP_EVENT_REMOVED: token, rem_id An address has been lost by the peer.
> + * @MPTCP_EVENT_SUB_ESTABLISHED: token, family, loc_id, rem_id, saddr4 |
> + *   saddr6, daddr4 | daddr6, sport, dport, backup, if_idx [, error] A new
> + *   subflow has been established. 'error' should not be set.
> + * @MPTCP_EVENT_SUB_CLOSED: token, family, loc_id, rem_id, saddr4 | saddr6,
> + *   daddr4 | daddr6, sport, dport, backup, if_idx [, error] A subflow has been
> + *   closed. An error (copy of sk_err) could be set if an error has been
> + *   detected for this subflow.
> + * @MPTCP_EVENT_SUB_PRIORITY: token, family, loc_id, rem_id, saddr4 | saddr6,
> + *   daddr4 | daddr6, sport, dport, backup, if_idx [, error] The priority of a
> + *   subflow has changed. 'error' should not be set.
> + * @MPTCP_EVENT_LISTENER_CREATED: family, sport, saddr4 | saddr6 A new PM
> + *   listener is created.
> + * @MPTCP_EVENT_LISTENER_CLOSED: family, sport, saddr4 | saddr6 A PM listener
> + *   is closed.
> + */
> +enum mptcp_event_type {
> +	MPTCP_EVENT_UNSPEC,
> +	MPTCP_EVENT_CREATED,
> +	MPTCP_EVENT_ESTABLISHED,
> +	MPTCP_EVENT_CLOSED,
> +	MPTCP_EVENT_ANNOUNCED = 6,
> +	MPTCP_EVENT_REMOVED,
> +	MPTCP_EVENT_SUB_ESTABLISHED = 10,
> +	MPTCP_EVENT_SUB_CLOSED,
> +	MPTCP_EVENT_SUB_PRIORITY = 13,
> +	MPTCP_EVENT_LISTENER_CREATED = 15,
> +	MPTCP_EVENT_LISTENER_CLOSED,
> +};

...