Re: [ovs-dev] [PATCH 4/5] flow: New function flow_clear_conntrack().

2017-04-20 Thread Miguel Angel Ajo Pelayo
Acked-By: Miguel Angel Ajo 

On Tue, Apr 18, 2017 at 9:47 PM, Ben Pfaff  wrote:

> This will have a new user in an upcoming commit.
>
> Signed-off-by: Ben Pfaff 
> ---
>  lib/flow.c   | 21 +
>  lib/flow.h   |  1 +
>  ofproto/ofproto-dpif-xlate.c | 18 +-
>  3 files changed, 23 insertions(+), 17 deletions(-)
>
> diff --git a/lib/flow.c b/lib/flow.c
> index 7552cd72a173..2ba51214ef80 100644
> --- a/lib/flow.c
> +++ b/lib/flow.c
> @@ -1024,6 +1024,27 @@ ct_state_from_string(const char *s)
>  return 0;
>  }
>
> +/* Clears the fields in 'flow' associated with connection tracking. */
> +void
> +flow_clear_conntrack(struct flow *flow)
> +{
> +flow->ct_state = 0;
> +flow->ct_zone = 0;
> +flow->ct_mark = 0;
> +flow->ct_label = OVS_U128_ZERO;
> +
> +flow->ct_nw_proto = 0;
> +flow->ct_tp_src = 0;
> +flow->ct_tp_dst = 0;
> +if (flow->dl_type == htons(ETH_TYPE_IP)) {
> +flow->ct_nw_src = 0;
> +flow->ct_nw_dst = 0;
> +} else if (flow->dl_type == htons(ETH_TYPE_IPV6)) {
> +memset(>ct_ipv6_src, 0, sizeof flow->ct_ipv6_src);
> +memset(>ct_ipv6_dst, 0, sizeof flow->ct_ipv6_dst);
> +}
> +}
> +
>  char *
>  flow_to_string(const struct flow *flow)
>  {
> diff --git a/lib/flow.h b/lib/flow.h
> index 9d4ae49ccfbd..2957108a68db 100644
> --- a/lib/flow.h
> +++ b/lib/flow.h
> @@ -74,6 +74,7 @@ void flow_get_metadata(const struct flow *, struct match
> *flow_metadata);
>
>  const char *ct_state_to_string(uint32_t state);
>  uint32_t ct_state_from_string(const char *);
> +void flow_clear_conntrack(struct flow *);
>
>  char *flow_to_string(const struct flow *);
>  void format_flags(struct ds *ds, const char *(*bit_to_string)(uint32_t),
> diff --git a/ofproto/ofproto-dpif-xlate.c b/ofproto/ofproto-dpif-xlate.c
> index a24aef9a43a1..76b8a3aa729a 100644
> --- a/ofproto/ofproto-dpif-xlate.c
> +++ b/ofproto/ofproto-dpif-xlate.c
> @@ -3222,23 +3222,7 @@ static void
>  clear_conntrack(struct xlate_ctx *ctx)
>  {
>  ctx->conntracked = false;
> -
> -struct flow *flow = >xin->flow;
> -flow->ct_state = 0;
> -flow->ct_zone = 0;
> -flow->ct_mark = 0;
> -flow->ct_label = OVS_U128_ZERO;
> -
> -flow->ct_nw_proto = 0;
> -flow->ct_tp_src = 0;
> -flow->ct_tp_dst = 0;
> -if (flow->dl_type == htons(ETH_TYPE_IP)) {
> -flow->ct_nw_src = 0;
> -flow->ct_nw_dst = 0;
> -} if (flow->dl_type == htons(ETH_TYPE_IPV6)) {
> -memset(>ct_ipv6_src, 0, sizeof flow->ct_ipv6_src);
> -memset(>ct_ipv6_dst, 0, sizeof flow->ct_ipv6_dst);
> -}
> +flow_clear_conntrack(>xin->flow);
>  }
>
>  static bool
> --
> 2.10.2
>
> ___
> dev mailing list
> d...@openvswitch.org
> https://mail.openvswitch.org/mailman/listinfo/ovs-dev
>
___
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev


[ovs-dev] [PATCH 4/5] flow: New function flow_clear_conntrack().

2017-04-18 Thread Ben Pfaff
This will have a new user in an upcoming commit.

Signed-off-by: Ben Pfaff 
---
 lib/flow.c   | 21 +
 lib/flow.h   |  1 +
 ofproto/ofproto-dpif-xlate.c | 18 +-
 3 files changed, 23 insertions(+), 17 deletions(-)

diff --git a/lib/flow.c b/lib/flow.c
index 7552cd72a173..2ba51214ef80 100644
--- a/lib/flow.c
+++ b/lib/flow.c
@@ -1024,6 +1024,27 @@ ct_state_from_string(const char *s)
 return 0;
 }
 
+/* Clears the fields in 'flow' associated with connection tracking. */
+void
+flow_clear_conntrack(struct flow *flow)
+{
+flow->ct_state = 0;
+flow->ct_zone = 0;
+flow->ct_mark = 0;
+flow->ct_label = OVS_U128_ZERO;
+
+flow->ct_nw_proto = 0;
+flow->ct_tp_src = 0;
+flow->ct_tp_dst = 0;
+if (flow->dl_type == htons(ETH_TYPE_IP)) {
+flow->ct_nw_src = 0;
+flow->ct_nw_dst = 0;
+} else if (flow->dl_type == htons(ETH_TYPE_IPV6)) {
+memset(>ct_ipv6_src, 0, sizeof flow->ct_ipv6_src);
+memset(>ct_ipv6_dst, 0, sizeof flow->ct_ipv6_dst);
+}
+}
+
 char *
 flow_to_string(const struct flow *flow)
 {
diff --git a/lib/flow.h b/lib/flow.h
index 9d4ae49ccfbd..2957108a68db 100644
--- a/lib/flow.h
+++ b/lib/flow.h
@@ -74,6 +74,7 @@ void flow_get_metadata(const struct flow *, struct match 
*flow_metadata);
 
 const char *ct_state_to_string(uint32_t state);
 uint32_t ct_state_from_string(const char *);
+void flow_clear_conntrack(struct flow *);
 
 char *flow_to_string(const struct flow *);
 void format_flags(struct ds *ds, const char *(*bit_to_string)(uint32_t),
diff --git a/ofproto/ofproto-dpif-xlate.c b/ofproto/ofproto-dpif-xlate.c
index a24aef9a43a1..76b8a3aa729a 100644
--- a/ofproto/ofproto-dpif-xlate.c
+++ b/ofproto/ofproto-dpif-xlate.c
@@ -3222,23 +3222,7 @@ static void
 clear_conntrack(struct xlate_ctx *ctx)
 {
 ctx->conntracked = false;
-
-struct flow *flow = >xin->flow;
-flow->ct_state = 0;
-flow->ct_zone = 0;
-flow->ct_mark = 0;
-flow->ct_label = OVS_U128_ZERO;
-
-flow->ct_nw_proto = 0;
-flow->ct_tp_src = 0;
-flow->ct_tp_dst = 0;
-if (flow->dl_type == htons(ETH_TYPE_IP)) {
-flow->ct_nw_src = 0;
-flow->ct_nw_dst = 0;
-} if (flow->dl_type == htons(ETH_TYPE_IPV6)) {
-memset(>ct_ipv6_src, 0, sizeof flow->ct_ipv6_src);
-memset(>ct_ipv6_dst, 0, sizeof flow->ct_ipv6_dst);
-}
+flow_clear_conntrack(>xin->flow);
 }
 
 static bool
-- 
2.10.2

___
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev