On Mon, Apr 30, 2018 at 2:28 PM, Yi-Hung Wei <yihung....@gmail.com> wrote:
> Define netlink messages and attributes to support user kernel
> communication that uses the conntrack limit feature.
>
> Signed-off-by: Yi-Hung Wei <yihung....@gmail.com>
> ---
>  include/uapi/linux/openvswitch.h | 62 
> ++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 62 insertions(+)
>
> diff --git a/include/uapi/linux/openvswitch.h 
> b/include/uapi/linux/openvswitch.h
> index 713e56ce681f..ca63c16375ce 100644
> --- a/include/uapi/linux/openvswitch.h
> +++ b/include/uapi/linux/openvswitch.h
> @@ -937,4 +937,66 @@ enum ovs_meter_band_type {
>
>  #define OVS_METER_BAND_TYPE_MAX (__OVS_METER_BAND_TYPE_MAX - 1)
>
> +/* Conntrack limit */
> +#define OVS_CT_LIMIT_FAMILY  "ovs_ct_limit"
> +#define OVS_CT_LIMIT_MCGROUP "ovs_ct_limit"
> +#define OVS_CT_LIMIT_VERSION 0x1
> +
> +enum ovs_ct_limit_cmd {
> +       OVS_CT_LIMIT_CMD_UNSPEC,
> +       OVS_CT_LIMIT_CMD_SET,           /* Add or modify ct limit. */
> +       OVS_CT_LIMIT_CMD_DEL,           /* Delete ct limit. */
> +       OVS_CT_LIMIT_CMD_GET            /* Get ct limit. */
> +};
> +
> +enum ovs_ct_limit_attr {
> +       OVS_CT_LIMIT_ATTR_UNSPEC,
> +       OVS_CT_LIMIT_ATTR_OPTION,       /* Nested OVS_CT_LIMIT_ATTR_* */
> +       __OVS_CT_LIMIT_ATTR_MAX
> +};
> +
> +#define OVS_CT_LIMIT_ATTR_MAX (__OVS_CT_LIMIT_ATTR_MAX - 1)
> +
> +/**
> + * @OVS_CT_ZONE_LIMIT_ATTR_SET_REQ: Contains either
> + * OVS_CT_ZONE_LIMIT_ATTR_DEFAULT_LIMIT or a pair of
> + * OVS_CT_ZONE_LIMIT_ATTR_ZONE and OVS_CT_ZONE_LIMIT_ATTR_LIMIT.
> + * @OVS_CT_ZONE_LIMIT_ATTR_DEL_REQ: Contains OVS_CT_ZONE_LIMIT_ATTR_ZONE.
> + * @OVS_CT_ZONE_LIMIT_ATTR_GET_REQ: Contains OVS_CT_ZONE_LIMIT_ATTR_ZONE.
> + * @OVS_CT_ZONE_LIMIT_ATTR_GET_RLY: Contains either
> + * OVS_CT_ZONE_LIMIT_ATTR_DEFAULT_LIMIT or a triple of
> + * OVS_CT_ZONE_LIMIT_ATTR_ZONE, OVS_CT_ZONE_LIMIT_ATTR_LIMIT and
> + * OVS_CT_ZONE_LIMIT_ATTR_COUNT.
> + */
> +enum ovs_ct_limit_option_attr {
> +       OVS_CT_LIMIT_OPTION_ATTR_UNSPEC,
> +       OVS_CT_ZONE_LIMIT_ATTR_SET_REQ, /* Nested OVS_CT_ZONE_LIMIT_ATTR_*
> +                                        * attributes. */
> +       OVS_CT_ZONE_LIMIT_ATTR_DEL_REQ, /* Nested OVS_CT_ZONE_LIMIT_ATTR_*
> +                                        * attributes. */
> +       OVS_CT_ZONE_LIMIT_ATTR_GET_REQ, /* Nested OVS_CT_ZONE_LIMIT_ATTR_*
> +                                        * attributes. */
> +       OVS_CT_ZONE_LIMIT_ATTR_GET_RLY, /* Nested OVS_CT_ZONE_LIMIT_ATTR_*

This option looks redundant to me, can we just use ovs_ct_limit_cmd
and have nested attributes with ovs_ct_zone_limit_attr as parameters ?
I do not see need for ovs_ct_limit_attr either, These changes would
simplify the interface.

> +                                        * attributes. */
> +       __OVS_CT_LIMIT_OPTION_ATTR_MAX
> +};
> +
> +#define OVS_CT_LIMIT_OPTION_ATTR_MAX (__OVS_CT_LIMIT_OPTION_ATTR_MAX - 1)
> +
> +enum ovs_ct_zone_limit_attr {
> +       OVS_CT_ZONE_LIMIT_ATTR_UNSPEC,
> +       OVS_CT_ZONE_LIMIT_ATTR_DEFAULT_LIMIT,   /* u32 default conntrack limit
> +                                                * for all zones. */
> +       OVS_CT_ZONE_LIMIT_ATTR_ZONE,            /* u16 conntrack zone id. */
> +       OVS_CT_ZONE_LIMIT_ATTR_LIMIT,           /* u32 max number of conntrack
> +                                                * entries allowed in the
> +                                                * corresponding zone. */
> +       OVS_CT_ZONE_LIMIT_ATTR_COUNT,           /* u32 number of conntrack
> +                                                * entries in the 
> corresponding
> +                                                * zone. */
> +       __OVS_CT_ZONE_LIMIT_ATTR_MAX
> +};
> +
> +#define OVS_CT_ZONE_LIMIT_ATTR_MAX (__OVS_CT_ZONE_LIMIT_ATTR_MAX - 1)
> +
>  #endif /* _LINUX_OPENVSWITCH_H */
> --
> 2.7.4
>

Reply via email to