On Mon, Nov 04, 2019 at 11:49:44AM +0200, Roi Dayan wrote:
> In kernels older than 4.8, struct tcf_t didn't have the firstuse.
> If openvswitch is compiled with the compat pkt_cls.h then there is
> a struct size mismatch between openvswitch and the kernel which cause
> parsing netlink actions to fail.
> After this commit parsing the netlink actions pass even if compiled with
> the compat pkt_cls.h.
> 
> Signed-off-by: Roi Dayan <[email protected]>
> ---
> 
> v1->v2:
> - fix mix of tabs and spaces in acinclude.m4

Thanks, applied to master and branch-2.8 ... branch-2.12

>  acinclude.m4            | 8 ++++++++
>  include/linux/pkt_cls.h | 2 ++
>  2 files changed, 10 insertions(+)
> 
> diff --git a/acinclude.m4 b/acinclude.m4
> index a0507cfe019e..1e699191bb8b 100644
> --- a/acinclude.m4
> +++ b/acinclude.m4
> @@ -186,6 +186,14 @@ AC_DEFUN([OVS_CHECK_LINUX_TC], [
>                 [Define to 1 if TCA_FLOWER_KEY_ENC_IP_TTL_MASK is 
> available.])])
>  
>    AC_COMPILE_IFELSE([
> +    AC_LANG_PROGRAM([#include <linux/pkt_cls.h>], [
> +        struct tcf_t x;
> +        x.firstuse = 1;
> +    ])],
> +    [AC_DEFINE([HAVE_TCF_T_FIRSTUSE], [1],
> +               [Define to 1 if struct tcf_t have firstuse.])])
> +
> +  AC_COMPILE_IFELSE([
>      AC_LANG_PROGRAM([#include <linux/tc_act/tc_vlan.h>], [
>          int x = TCA_VLAN_PUSH_VLAN_PRIORITY;
>      ])],
> diff --git a/include/linux/pkt_cls.h b/include/linux/pkt_cls.h
> index 4adea59e7c36..b6926a79a0af 100644
> --- a/include/linux/pkt_cls.h
> +++ b/include/linux/pkt_cls.h
> @@ -64,7 +64,9 @@ struct tcf_t {
>       __u64   install;
>       __u64   lastuse;
>       __u64   expires;
> +#ifdef HAVE_TCF_T_FIRSTUSE
>       __u64   firstuse;
> +#endif
>  };
>  
>  #define tc_gen \
> -- 
> 2.8.4
> 
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to