diff mbox

[RFC,1/2] Introduce egress IB flow steering flag

Message ID 8539540c4130ea91bbd128f2ec2845082d6000f8.1492685328.git.borisp@mellanox.com (mailing list archive)
State RFC
Headers show

Commit Message

Boris Pismenny April 20, 2017, 11 a.m. UTC
From: borisp <borisp@mellanox.com>

This commit introduces egress flow steering. Egress flow steering
is useful for specifying actions that might be applied by hardware
to outgoing flows on a specific QP.

Signed-off-by: borisp <borisp@mellanox.com>
---
 include/rdma/ib_verbs.h | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

Comments

Leon Romanovsky April 20, 2017, 5:48 p.m. UTC | #1
On Thu, Apr 20, 2017 at 02:00:09PM +0300, Boris Pismenny wrote:
> From: borisp <borisp@mellanox.com>
>
> This commit introduces egress flow steering. Egress flow steering
> is useful for specifying actions that might be applied by hardware
> to outgoing flows on a specific QP.
>

How will user know which flow actions are applicable for egress traffic,
for both ingress/egress and for ingress only?

I think separate structure for ingress vs. egress are better approach,
than blind global flag.


> Signed-off-by: borisp <borisp@mellanox.com>

Please configure your git, "Signed-off-by" line is a legal document and
supposed to have proper author name.

Thanks

> ---
>  include/rdma/ib_verbs.h | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/include/rdma/ib_verbs.h b/include/rdma/ib_verbs.h
> index 99e4423..6c1c867 100644
> --- a/include/rdma/ib_verbs.h
> +++ b/include/rdma/ib_verbs.h
> @@ -1679,7 +1679,8 @@ enum ib_flow_domain {
>
>  enum ib_flow_flags {
>  	IB_FLOW_ATTR_FLAGS_DONT_TRAP = 1UL << 1, /* Continue match, no steal */
> -	IB_FLOW_ATTR_FLAGS_RESERVED  = 1UL << 2  /* Must be last */
> +	IB_FLOW_ATTR_FLAGS_EGRESS = 1UL << 2, /* Egress steering rule */
> +	IB_FLOW_ATTR_FLAGS_RESERVED  = 1UL << 3  /* Must be last */
>  };
>
>  struct ib_flow_eth_filter {
> --
> 1.8.3.1
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
Boris Pismenny April 20, 2017, 6:31 p.m. UTC | #2
> > This commit introduces egress flow steering. Egress flow steering is
> > useful for specifying actions that might be applied by hardware to
> > outgoing flows on a specific QP.
> >
> 
> How will user know which flow actions are applicable for egress traffic, for
> both ingress/egress and for ingress only?
The implementation could return an error when a device doesn't support a certain action.
For example, we may not support crypto offload for encapsulation of IPsec packets, and we
will return an error if such a flow specification is provided.

Did you have any specific action that is not supported in some direction? AFAIK, we 
support all action for egress as well as ingress.

> 
> I think separate structure for ingress vs. egress are better approach, than
> blind global flag.
I thought of using a direction flag in the action itself, but decided against it , because all flow
specification refer to a certain direction and not the action alone. Moreover, there are other
actions that will be based on this flag, like encapsulation actions.

--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/include/rdma/ib_verbs.h b/include/rdma/ib_verbs.h
index 99e4423..6c1c867 100644
--- a/include/rdma/ib_verbs.h
+++ b/include/rdma/ib_verbs.h
@@ -1679,7 +1679,8 @@  enum ib_flow_domain {
 
 enum ib_flow_flags {
 	IB_FLOW_ATTR_FLAGS_DONT_TRAP = 1UL << 1, /* Continue match, no steal */
-	IB_FLOW_ATTR_FLAGS_RESERVED  = 1UL << 2  /* Must be last */
+	IB_FLOW_ATTR_FLAGS_EGRESS = 1UL << 2, /* Egress steering rule */
+	IB_FLOW_ATTR_FLAGS_RESERVED  = 1UL << 3  /* Must be last */
 };
 
 struct ib_flow_eth_filter {