From: Paul Blakey <pa...@mellanox.com> Signed-off-by: Paul Blakey <pa...@mellanox.com> Reviewed-by: Roi Dayan <r...@mellanox.com> Reviewed-by: Simon Horman <simon.hor...@netronome.com> --- lib/netdev-tc-offloads.c | 33 ++++++++++++++++++++++++++++++--- 1 file changed, 30 insertions(+), 3 deletions(-)
diff --git a/lib/netdev-tc-offloads.c b/lib/netdev-tc-offloads.c index e3daf62..2d1eb1e 100644 --- a/lib/netdev-tc-offloads.c +++ b/lib/netdev-tc-offloads.c @@ -862,10 +862,37 @@ netdev_tc_flow_get(struct netdev *netdev OVS_UNUSED, int netdev_tc_flow_del(struct netdev *netdev OVS_UNUSED, - const ovs_u128 *ufid OVS_UNUSED, - struct dpif_flow_stats *stats OVS_UNUSED) + const ovs_u128 *ufid, + struct dpif_flow_stats *stats) { - return EOPNOTSUPP; + struct netdev *dev; + int prio = 0; + int ifindex; + int handle; + int error; + + handle = get_ufid_tc_mapping(ufid, &prio, &dev); + if (!handle) { + return ENOENT; + } + + ifindex = netdev_get_ifindex(dev); + if (ifindex < 0) { + VLOG_ERR_RL(&rl_err, "failed to get ifindex for %s: %s", + netdev_get_name(dev), ovs_strerror(-ifindex)); + netdev_close(dev); + return -ifindex; + } + + error = tc_del_filter(ifindex, prio, handle); + del_ufid_tc_mapping(ufid); + + netdev_close(dev); + + if (stats) { + memset(stats, 0, sizeof(*stats)); + } + return error; } int -- 2.7.4 _______________________________________________ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev