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

From: Simon Horman
Date: Fri Oct 13 2023 - 13:28:35 EST


On Tue, Oct 10, 2023 at 09:21:45PM +0200, Matthieu Baerts wrote:
> From: Davide Caratti <dcaratti@xxxxxxxxxx>
>
> 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 <pabeni@xxxxxxxxxx>
> Signed-off-by: Davide Caratti <dcaratti@xxxxxxxxxx>
> Signed-off-by: Matthieu Baerts <matttbe@xxxxxxxxxx>

...

> 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,
> +};

...