summaryrefslogtreecommitdiffstats
path: root/include/net/pkt_cls.h
diff options
context:
space:
mode:
authorNogah Frankel2018-02-28 10:45:06 +0100
committerDavid S. Miller2018-02-28 18:06:01 +0100
commitb9c7a7acc749f3d0667a2ab44ea38110d5a1f286 (patch)
tree7fb0bf4b0fd4bdf02b88c29f69bb68388565ef66 /include/net/pkt_cls.h
parentmlxsw: spectrum: qdiscs: prio: Delete child qdiscs when removing bands (diff)
downloadkernel-qcow2-linux-b9c7a7acc749f3d0667a2ab44ea38110d5a1f286.tar.gz
kernel-qcow2-linux-b9c7a7acc749f3d0667a2ab44ea38110d5a1f286.tar.xz
kernel-qcow2-linux-b9c7a7acc749f3d0667a2ab44ea38110d5a1f286.zip
net: sch: prio: Add offload ability for grafting a child
Offload sch_prio graft command for capable drivers. Warn in case of a failure, unless the graft was done as part of a destroy operation (the new qdisc is a noop) or if all the qdiscs (the parent, the old child, and the new one) are not offloaded. Signed-off-by: Nogah Frankel <nogahf@mellanox.com> Reviewed-by: Yuval Mintz <yuvalm@mellanox.com> Signed-off-by: Jiri Pirko <jiri@mellanox.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/net/pkt_cls.h')
-rw-r--r--include/net/pkt_cls.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/include/net/pkt_cls.h b/include/net/pkt_cls.h
index 87406252f0a3..e828d31be5da 100644
--- a/include/net/pkt_cls.h
+++ b/include/net/pkt_cls.h
@@ -806,6 +806,7 @@ enum tc_prio_command {
TC_PRIO_REPLACE,
TC_PRIO_DESTROY,
TC_PRIO_STATS,
+ TC_PRIO_GRAFT,
};
struct tc_prio_qopt_offload_params {
@@ -818,6 +819,11 @@ struct tc_prio_qopt_offload_params {
struct gnet_stats_queue *qstats;
};
+struct tc_prio_qopt_offload_graft_params {
+ u8 band;
+ u32 child_handle;
+};
+
struct tc_prio_qopt_offload {
enum tc_prio_command command;
u32 handle;
@@ -825,6 +831,8 @@ struct tc_prio_qopt_offload {
union {
struct tc_prio_qopt_offload_params replace_params;
struct tc_qopt_offload_stats stats;
+ struct tc_prio_qopt_offload_graft_params graft_params;
};
};
+
#endif