Re: [ovs-dev] [PATCH 1/2] odp-util: refector erspan option parsing.

2018-05-25 Thread Ben Pfaff
On Fri, May 25, 2018 at 06:28:48AM -0700, William Tu wrote:
> Instead of memcpy to a local stack, parse the erspan
> metadata in memory.
> 
> Suggested-by: Ben Pfaff 
> Signed-off-by: William Tu 

Thanks, applied to master.
___
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev


[ovs-dev] [PATCH 1/2] odp-util: refector erspan option parsing.

2018-05-25 Thread William Tu
Instead of memcpy to a local stack, parse the erspan
metadata in memory.

Suggested-by: Ben Pfaff 
Signed-off-by: William Tu 
---
 lib/odp-util.c | 13 +
 1 file changed, 5 insertions(+), 8 deletions(-)

diff --git a/lib/odp-util.c b/lib/odp-util.c
index 105ac809073e..5e858f0f9797 100644
--- a/lib/odp-util.c
+++ b/lib/odp-util.c
@@ -2781,17 +2781,14 @@ odp_tun_key_from_attr__(const struct nlattr *attr, bool 
is_mask,
 tun_metadata_from_geneve_nlattr(a, is_mask, tun);
 break;
 case OVS_TUNNEL_KEY_ATTR_ERSPAN_OPTS: {
-int attr_len = nl_attr_get_size(a);
-struct erspan_metadata opts;
+const struct erspan_metadata *opts = nl_attr_get(a);
 
-memcpy(, nl_attr_get(a), attr_len);
-
-tun->erspan_ver = opts.version;
+tun->erspan_ver = opts->version;
 if (tun->erspan_ver == 1) {
-tun->erspan_idx = ntohl(opts.u.index);
+tun->erspan_idx = ntohl(opts->u.index);
 } else if (tun->erspan_ver == 2) {
-tun->erspan_dir = opts.u.md2.dir;
-tun->erspan_hwid = get_hwid();
+tun->erspan_dir = opts->u.md2.dir;
+tun->erspan_hwid = get_hwid(>u.md2);
 } else {
 VLOG_WARN("%s invalid erspan version\n", __func__);
 }
-- 
2.7.4

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