[dpdk-dev] [PATCH v5 4/4] net/mlx5: support e-switch flow count action
Ferruh Yigit
ferruh.yigit at intel.com
Mon Oct 22 11:14:58 CEST 2018
On 10/18/2018 7:29 PM, Moti Haimovsky wrote:
> +/**
> + * Parse flower action section in the message retrieving the requested
> + * attribute from the first action that provides it.
> + *
> + * @param opt
> + * flower section in the Netlink message received.
> + * @param rta_type
> + * The backward sequence of rta_types, as written in the attribute table,
> + * we need to traverse in order to get to the requested object.
> + * @param idx
> + * Current location in rta_type table.
> + * @param[out] data
> + * data retrieved from the message query.
> + *
> + * @return
> + * 0 if data was found and retrieved, -1 otherwise.
> + */
> +static int
> +flow_tcf_nl_action_parse_and_get(const struct rtattr *arg,
> + uint16_t rta_type[], int idx, void *data)
> +{
> + struct rtattr *tb[TCA_ACT_MAX_PRIO + 1];
> + int i;
> +
> + if (arg == NULL || idx < 0)
> + return -1;
> + flow_tcf_nl_parse_rtattr(tb, TCA_ACT_MAX_PRIO,
> + RTA_DATA(arg), RTA_PAYLOAD(arg));
> + switch (rta_type[idx]) {
> + /*
> + * flow counters are stored in the actions defined by the flow
> + * and not in the flow itself, therefore we need to traverse the
> + * flower chain of actions in search for them.
> + *
> + * Note that the index is not decremented here.
> + */
> + case TCA_ACT_STATS:
> + for (i = 0; i <= TCA_ACT_MAX_PRIO; i++) {
> + if (tb[i] &&
> + !flow_tcf_nl_parse_one_action_and_get(tb[i],
> + rta_type,
> + idx, data))
> + return 0;
> + }
> + break;
> + default:
> + break;
> + }
> + return -1;
> +}
Getting following build error with clang, will not pull from mlx tree until
issue resolved, thanks.
.../drivers/net/mlx5/mlx5_flow_tcf.c:2507:6: warning: cast from 'const struct
rtattr *' to 'char *' drops const qualifier [-Wcast-qual]
RTA_DATA(arg), RTA_PAYLOAD(arg));
^
/usr/include/linux/rtnetlink.h:183:42: note: expanded from macro 'RTA_DATA'
#define RTA_DATA(rta) ((void*)(((char*)(rta)) + RTA_LENGTH(0)))
^
.../drivers/net/mlx5/mlx5_flow_tcf.c:2593:31: warning: cast from 'const struct
nlmsghdr *' to 'char *' drops const qualifier [-Wcast-qual]
struct tcmsg *t = NLMSG_DATA(nlh);
More information about the dev
mailing list