On 1 Mar 2023, at 8:22, Chris Mi wrote:
> Update kernel UAPI to support psample and the tc sample action.
>
> Signed-off-by: Chris Mi <[email protected]>
> Reviewed-by: Roi Dayan <[email protected]>
> Acked-by: Eelco Chaudron <[email protected]>
> ---
> include/linux/automake.mk | 4 ++-
> include/linux/psample.h | 62 ++++++++++++++++++++++++++++++++
> include/linux/tc_act/tc_sample.h | 25 +++++++++++++
> 3 files changed, 90 insertions(+), 1 deletion(-)
> create mode 100644 include/linux/psample.h
> create mode 100644 include/linux/tc_act/tc_sample.h
>
> diff --git a/include/linux/automake.mk b/include/linux/automake.mk
> index cdae5eedc..0de7ff945 100644
> --- a/include/linux/automake.mk
> +++ b/include/linux/automake.mk
> @@ -9,4 +9,6 @@ noinst_HEADERS += \
> include/linux/tc_act/tc_skbedit.h \
> include/linux/tc_act/tc_tunnel_key.h \
> include/linux/tc_act/tc_vlan.h \
> - include/linux/tc_act/tc_ct.h
> + include/linux/tc_act/tc_ct.h \
> + include/linux/tc_act/tc_sample.h \
> + include/linux/psample.h
Guess these need to be in alphabetical order.
Please sort the entire list while your at it ;)
The rest of the patch looks fine.
> diff --git a/include/linux/psample.h b/include/linux/psample.h
> new file mode 100644
> index 000000000..e585db5bf
> --- /dev/null
> +++ b/include/linux/psample.h
> @@ -0,0 +1,62 @@
> +/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
> +#ifndef __UAPI_PSAMPLE_H
> +#define __UAPI_PSAMPLE_H
> +
> +enum {
> + PSAMPLE_ATTR_IIFINDEX,
> + PSAMPLE_ATTR_OIFINDEX,
> + PSAMPLE_ATTR_ORIGSIZE,
> + PSAMPLE_ATTR_SAMPLE_GROUP,
> + PSAMPLE_ATTR_GROUP_SEQ,
> + PSAMPLE_ATTR_SAMPLE_RATE,
> + PSAMPLE_ATTR_DATA,
> + PSAMPLE_ATTR_GROUP_REFCOUNT,
> + PSAMPLE_ATTR_TUNNEL,
> +
> + PSAMPLE_ATTR_PAD,
> + PSAMPLE_ATTR_OUT_TC, /* u16 */
> + PSAMPLE_ATTR_OUT_TC_OCC, /* u64, bytes */
> + PSAMPLE_ATTR_LATENCY, /* u64, nanoseconds */
> + PSAMPLE_ATTR_TIMESTAMP, /* u64, nanoseconds */
> + PSAMPLE_ATTR_PROTO, /* u16 */
> +
> + __PSAMPLE_ATTR_MAX
> +};
> +
> +enum psample_command {
> + PSAMPLE_CMD_SAMPLE,
> + PSAMPLE_CMD_GET_GROUP,
> + PSAMPLE_CMD_NEW_GROUP,
> + PSAMPLE_CMD_DEL_GROUP,
> +};
> +
> +enum psample_tunnel_key_attr {
> + PSAMPLE_TUNNEL_KEY_ATTR_ID, /* be64 Tunnel ID */
> + PSAMPLE_TUNNEL_KEY_ATTR_IPV4_SRC, /* be32 src IP address. */
> + PSAMPLE_TUNNEL_KEY_ATTR_IPV4_DST, /* be32 dst IP address. */
> + PSAMPLE_TUNNEL_KEY_ATTR_TOS, /* u8 Tunnel IP ToS. */
> + PSAMPLE_TUNNEL_KEY_ATTR_TTL, /* u8 Tunnel IP TTL. */
> + PSAMPLE_TUNNEL_KEY_ATTR_DONT_FRAGMENT, /* No argument, set DF. */
> + PSAMPLE_TUNNEL_KEY_ATTR_CSUM, /* No argument. CSUM
> packet. */
> + PSAMPLE_TUNNEL_KEY_ATTR_OAM, /* No argument. OAM frame.
> */
> + PSAMPLE_TUNNEL_KEY_ATTR_GENEVE_OPTS, /* Array of Geneve options.
> */
> + PSAMPLE_TUNNEL_KEY_ATTR_TP_SRC, /* be16 src Transport Port.
> */
> + PSAMPLE_TUNNEL_KEY_ATTR_TP_DST, /* be16 dst Transport Port.
> */
> + PSAMPLE_TUNNEL_KEY_ATTR_VXLAN_OPTS, /* Nested VXLAN opts* */
> + PSAMPLE_TUNNEL_KEY_ATTR_IPV6_SRC, /* struct in6_addr src IPv6
> address. */
> + PSAMPLE_TUNNEL_KEY_ATTR_IPV6_DST, /* struct in6_addr dst IPv6
> address. */
> + PSAMPLE_TUNNEL_KEY_ATTR_PAD,
> + PSAMPLE_TUNNEL_KEY_ATTR_ERSPAN_OPTS, /* struct erspan_metadata */
> + PSAMPLE_TUNNEL_KEY_ATTR_IPV4_INFO_BRIDGE, /* No argument.
> IPV4_INFO_BRIDGE mode.*/
> + __PSAMPLE_TUNNEL_KEY_ATTR_MAX
> +};
> +
> +/* Can be overridden at runtime by module option */
> +#define PSAMPLE_ATTR_MAX (__PSAMPLE_ATTR_MAX - 1)
> +
> +#define PSAMPLE_NL_MCGRP_CONFIG_NAME "config"
> +#define PSAMPLE_NL_MCGRP_SAMPLE_NAME "packets"
> +#define PSAMPLE_GENL_NAME "psample"
> +#define PSAMPLE_GENL_VERSION 1
> +
> +#endif
> diff --git a/include/linux/tc_act/tc_sample.h
> b/include/linux/tc_act/tc_sample.h
> new file mode 100644
> index 000000000..fee1bcc20
> --- /dev/null
> +++ b/include/linux/tc_act/tc_sample.h
> @@ -0,0 +1,25 @@
> +/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
> +#ifndef __LINUX_TC_SAMPLE_H
> +#define __LINUX_TC_SAMPLE_H
> +
> +#include <linux/types.h>
> +#include <linux/pkt_cls.h>
> +#include <linux/if_ether.h>
> +
> +struct tc_sample {
> + tc_gen;
> +};
> +
> +enum {
> + TCA_SAMPLE_UNSPEC,
> + TCA_SAMPLE_TM,
> + TCA_SAMPLE_PARMS,
> + TCA_SAMPLE_RATE,
> + TCA_SAMPLE_TRUNC_SIZE,
> + TCA_SAMPLE_PSAMPLE_GROUP,
> + TCA_SAMPLE_PAD,
> + __TCA_SAMPLE_MAX
> +};
> +#define TCA_SAMPLE_MAX (__TCA_SAMPLE_MAX - 1)
> +
> +#endif
> --
> 2.26.3
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev