qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [PATCH V3 1/2] net/filter: Enable the vnet_hdr_support by default
@ 2021-11-19  5:35 Zhang Chen
  2021-11-19  5:35 ` [PATCH V3 2/2] test/qtest/test-filter-mirror.c: Change the default vnet_hdr_support Zhang Chen
  2021-11-22  3:57 ` [PATCH V3 1/2] net/filter: Enable the vnet_hdr_support by default Jason Wang
  0 siblings, 2 replies; 4+ messages in thread
From: Zhang Chen @ 2021-11-19  5:35 UTC (permalink / raw)
  To: Jason Wang, Li Zhijian; +Cc: Zhang Chen, qemu-dev

This patch make filters and colo-compare module support vnet_hdr by
default. And also support -device non-virtio-net(like e1000.).
Because when enabled the support will make the vnet_hdr_len field
become must-delivery part of filter transfer protocol(even 0 in use
-device e1000). It fully guarantees the compatibility for management
layer like libvirt. But it still can't avoid user manual
configuration error between different filters connected
when enable/disable vnet_hdr_support.

Signed-off-by: Zhang Chen <chen.zhang@intel.com>
---
 net/colo-compare.c    | 2 +-
 net/filter-mirror.c   | 4 ++--
 net/filter-rewriter.c | 2 +-
 qemu-options.hx       | 9 +++++----
 4 files changed, 9 insertions(+), 8 deletions(-)

diff --git a/net/colo-compare.c b/net/colo-compare.c
index b966e7e514..0232249311 100644
--- a/net/colo-compare.c
+++ b/net/colo-compare.c
@@ -1399,7 +1399,7 @@ static void colo_compare_init(Object *obj)
                         get_max_queue_size,
                         set_max_queue_size, NULL, NULL);
 
-    s->vnet_hdr = false;
+    s->vnet_hdr = true;
     object_property_add_bool(obj, "vnet_hdr_support", compare_get_vnet_hdr,
                              compare_set_vnet_hdr);
 }
diff --git a/net/filter-mirror.c b/net/filter-mirror.c
index f20240cc9f..adb0c6d89a 100644
--- a/net/filter-mirror.c
+++ b/net/filter-mirror.c
@@ -406,14 +406,14 @@ static void filter_mirror_init(Object *obj)
 {
     MirrorState *s = FILTER_MIRROR(obj);
 
-    s->vnet_hdr = false;
+    s->vnet_hdr = true;
 }
 
 static void filter_redirector_init(Object *obj)
 {
     MirrorState *s = FILTER_REDIRECTOR(obj);
 
-    s->vnet_hdr = false;
+    s->vnet_hdr = true;
 }
 
 static void filter_mirror_fini(Object *obj)
diff --git a/net/filter-rewriter.c b/net/filter-rewriter.c
index bf05023dc3..5698cd39d1 100644
--- a/net/filter-rewriter.c
+++ b/net/filter-rewriter.c
@@ -407,7 +407,7 @@ static void filter_rewriter_init(Object *obj)
 {
     RewriterState *s = FILTER_REWRITER(obj);
 
-    s->vnet_hdr = false;
+    s->vnet_hdr = true;
     s->failover_mode = FAILOVER_MODE_OFF;
 }
 
diff --git a/qemu-options.hx b/qemu-options.hx
index 7749f59300..c40e385ede 100644
--- a/qemu-options.hx
+++ b/qemu-options.hx
@@ -4967,13 +4967,13 @@ SRST
     ``-object filter-mirror,id=id,netdev=netdevid,outdev=chardevid,queue=all|rx|tx[,vnet_hdr_support][,position=head|tail|id=<id>][,insert=behind|before]``
         filter-mirror on netdev netdevid,mirror net packet to
         chardevchardevid, if it has the vnet\_hdr\_support flag,
-        filter-mirror will mirror packet with vnet\_hdr\_len.
+        filter-mirror will mirror packet with vnet\_hdr\_len(default: on).
 
     ``-object filter-redirector,id=id,netdev=netdevid,indev=chardevid,outdev=chardevid,queue=all|rx|tx[,vnet_hdr_support][,position=head|tail|id=<id>][,insert=behind|before]``
         filter-redirector on netdev netdevid,redirect filter's net
         packet to chardev chardevid,and redirect indev's packet to
         filter.if it has the vnet\_hdr\_support flag, filter-redirector
-        will redirect packet with vnet\_hdr\_len. Create a
+        will redirect packet with vnet\_hdr\_len(default: on). Create a
         filter-redirector we need to differ outdev id from indev id, id
         can not be the same. we can just use indev or outdev, but at
         least one of indev or outdev need to be specified.
@@ -4983,7 +4983,8 @@ SRST
         packet to secondary from primary to keep secondary tcp
         connection,and rewrite tcp packet to primary from secondary make
         tcp packet can be handled by client.if it has the
-        vnet\_hdr\_support flag, we can parse packet with vnet header.
+        vnet\_hdr\_support flag, we can parse packet with vnet
+        header(default: on).
 
         usage: colo secondary: -object
         filter-redirector,id=f1,netdev=hn0,queue=tx,indev=red0 -object
@@ -5004,7 +5005,7 @@ SRST
         checkpoint and send primary packet to out\_dev. In order to
         improve efficiency, we need to put the task of comparison in
         another iothread. If it has the vnet\_hdr\_support flag,
-        colo compare will send/recv packet with vnet\_hdr\_len.
+        colo compare will send/recv packet with vnet\_hdr\_len(default: on).
         The compare\_timeout=@var{ms} determines the maximum time of the
         colo-compare hold the packet. The expired\_scan\_cycle=@var{ms}
         is to set the period of scanning expired primary node network packets.
-- 
2.25.1



^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [PATCH V3 2/2] test/qtest/test-filter-mirror.c: Change the default vnet_hdr_support
  2021-11-19  5:35 [PATCH V3 1/2] net/filter: Enable the vnet_hdr_support by default Zhang Chen
@ 2021-11-19  5:35 ` Zhang Chen
  2021-11-22  3:58   ` Jason Wang
  2021-11-22  3:57 ` [PATCH V3 1/2] net/filter: Enable the vnet_hdr_support by default Jason Wang
  1 sibling, 1 reply; 4+ messages in thread
From: Zhang Chen @ 2021-11-19  5:35 UTC (permalink / raw)
  To: Jason Wang, Li Zhijian; +Cc: Zhang Chen, qemu-dev

As net filters changed default vnet_hdr_support=on.
For this e1000 test case need to add vnet_hdr_support=off.

Signed-off-by: Zhang Chen <chen.zhang@intel.com>
---
 tests/qtest/test-filter-mirror.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tests/qtest/test-filter-mirror.c b/tests/qtest/test-filter-mirror.c
index bc0dee64dd..7756f8cfc1 100644
--- a/tests/qtest/test-filter-mirror.c
+++ b/tests/qtest/test-filter-mirror.c
@@ -45,7 +45,7 @@ static void test_mirror(void)
         "-netdev socket,id=qtest-bn0,fd=%d "
         "-device %s,netdev=qtest-bn0,id=qtest-e0 "
         "-chardev socket,id=mirror0,fd=%d "
-        "-object filter-mirror,id=qtest-f0,netdev=qtest-bn0,queue=tx,outdev=mirror0 "
+        "-object filter-mirror,id=qtest-f0,netdev=qtest-bn0,queue=tx,outdev=mirror0,vnet_hdr_support=off "
         , send_sock[1], devstr, recv_sock[1]);
 
     struct iovec iov[] = {
-- 
2.25.1



^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH V3 1/2] net/filter: Enable the vnet_hdr_support by default
  2021-11-19  5:35 [PATCH V3 1/2] net/filter: Enable the vnet_hdr_support by default Zhang Chen
  2021-11-19  5:35 ` [PATCH V3 2/2] test/qtest/test-filter-mirror.c: Change the default vnet_hdr_support Zhang Chen
@ 2021-11-22  3:57 ` Jason Wang
  1 sibling, 0 replies; 4+ messages in thread
From: Jason Wang @ 2021-11-22  3:57 UTC (permalink / raw)
  To: Zhang Chen; +Cc: qemu-dev, Li Zhijian

On Fri, Nov 19, 2021 at 1:45 PM Zhang Chen <chen.zhang@intel.com> wrote:
>
> This patch make filters and colo-compare module support vnet_hdr by
> default. And also support -device non-virtio-net(like e1000.).
> Because when enabled the support will make the vnet_hdr_len field
> become must-delivery part of filter transfer protocol(even 0 in use
> -device e1000). It fully guarantees the compatibility for management
> layer like libvirt. But it still can't avoid user manual
> configuration error between different filters connected
> when enable/disable vnet_hdr_support.
>
> Signed-off-by: Zhang Chen <chen.zhang@intel.com>

Queued for 7.0.

Thanks

> ---
>  net/colo-compare.c    | 2 +-
>  net/filter-mirror.c   | 4 ++--
>  net/filter-rewriter.c | 2 +-
>  qemu-options.hx       | 9 +++++----
>  4 files changed, 9 insertions(+), 8 deletions(-)
>
> diff --git a/net/colo-compare.c b/net/colo-compare.c
> index b966e7e514..0232249311 100644
> --- a/net/colo-compare.c
> +++ b/net/colo-compare.c
> @@ -1399,7 +1399,7 @@ static void colo_compare_init(Object *obj)
>                          get_max_queue_size,
>                          set_max_queue_size, NULL, NULL);
>
> -    s->vnet_hdr = false;
> +    s->vnet_hdr = true;
>      object_property_add_bool(obj, "vnet_hdr_support", compare_get_vnet_hdr,
>                               compare_set_vnet_hdr);
>  }
> diff --git a/net/filter-mirror.c b/net/filter-mirror.c
> index f20240cc9f..adb0c6d89a 100644
> --- a/net/filter-mirror.c
> +++ b/net/filter-mirror.c
> @@ -406,14 +406,14 @@ static void filter_mirror_init(Object *obj)
>  {
>      MirrorState *s = FILTER_MIRROR(obj);
>
> -    s->vnet_hdr = false;
> +    s->vnet_hdr = true;
>  }
>
>  static void filter_redirector_init(Object *obj)
>  {
>      MirrorState *s = FILTER_REDIRECTOR(obj);
>
> -    s->vnet_hdr = false;
> +    s->vnet_hdr = true;
>  }
>
>  static void filter_mirror_fini(Object *obj)
> diff --git a/net/filter-rewriter.c b/net/filter-rewriter.c
> index bf05023dc3..5698cd39d1 100644
> --- a/net/filter-rewriter.c
> +++ b/net/filter-rewriter.c
> @@ -407,7 +407,7 @@ static void filter_rewriter_init(Object *obj)
>  {
>      RewriterState *s = FILTER_REWRITER(obj);
>
> -    s->vnet_hdr = false;
> +    s->vnet_hdr = true;
>      s->failover_mode = FAILOVER_MODE_OFF;
>  }
>
> diff --git a/qemu-options.hx b/qemu-options.hx
> index 7749f59300..c40e385ede 100644
> --- a/qemu-options.hx
> +++ b/qemu-options.hx
> @@ -4967,13 +4967,13 @@ SRST
>      ``-object filter-mirror,id=id,netdev=netdevid,outdev=chardevid,queue=all|rx|tx[,vnet_hdr_support][,position=head|tail|id=<id>][,insert=behind|before]``
>          filter-mirror on netdev netdevid,mirror net packet to
>          chardevchardevid, if it has the vnet\_hdr\_support flag,
> -        filter-mirror will mirror packet with vnet\_hdr\_len.
> +        filter-mirror will mirror packet with vnet\_hdr\_len(default: on).
>
>      ``-object filter-redirector,id=id,netdev=netdevid,indev=chardevid,outdev=chardevid,queue=all|rx|tx[,vnet_hdr_support][,position=head|tail|id=<id>][,insert=behind|before]``
>          filter-redirector on netdev netdevid,redirect filter's net
>          packet to chardev chardevid,and redirect indev's packet to
>          filter.if it has the vnet\_hdr\_support flag, filter-redirector
> -        will redirect packet with vnet\_hdr\_len. Create a
> +        will redirect packet with vnet\_hdr\_len(default: on). Create a
>          filter-redirector we need to differ outdev id from indev id, id
>          can not be the same. we can just use indev or outdev, but at
>          least one of indev or outdev need to be specified.
> @@ -4983,7 +4983,8 @@ SRST
>          packet to secondary from primary to keep secondary tcp
>          connection,and rewrite tcp packet to primary from secondary make
>          tcp packet can be handled by client.if it has the
> -        vnet\_hdr\_support flag, we can parse packet with vnet header.
> +        vnet\_hdr\_support flag, we can parse packet with vnet
> +        header(default: on).
>
>          usage: colo secondary: -object
>          filter-redirector,id=f1,netdev=hn0,queue=tx,indev=red0 -object
> @@ -5004,7 +5005,7 @@ SRST
>          checkpoint and send primary packet to out\_dev. In order to
>          improve efficiency, we need to put the task of comparison in
>          another iothread. If it has the vnet\_hdr\_support flag,
> -        colo compare will send/recv packet with vnet\_hdr\_len.
> +        colo compare will send/recv packet with vnet\_hdr\_len(default: on).
>          The compare\_timeout=@var{ms} determines the maximum time of the
>          colo-compare hold the packet. The expired\_scan\_cycle=@var{ms}
>          is to set the period of scanning expired primary node network packets.
> --
> 2.25.1
>



^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH V3 2/2] test/qtest/test-filter-mirror.c: Change the default vnet_hdr_support
  2021-11-19  5:35 ` [PATCH V3 2/2] test/qtest/test-filter-mirror.c: Change the default vnet_hdr_support Zhang Chen
@ 2021-11-22  3:58   ` Jason Wang
  0 siblings, 0 replies; 4+ messages in thread
From: Jason Wang @ 2021-11-22  3:58 UTC (permalink / raw)
  To: Zhang Chen; +Cc: qemu-dev, Li Zhijian

On Fri, Nov 19, 2021 at 1:45 PM Zhang Chen <chen.zhang@intel.com> wrote:
>
> As net filters changed default vnet_hdr_support=on.
> For this e1000 test case need to add vnet_hdr_support=off.
>
> Signed-off-by: Zhang Chen <chen.zhang@intel.com>
> ---

I squashed this into the previous patch to have a better bisection
behaviour and queue it for 7.0.

Thanks

>  tests/qtest/test-filter-mirror.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/tests/qtest/test-filter-mirror.c b/tests/qtest/test-filter-mirror.c
> index bc0dee64dd..7756f8cfc1 100644
> --- a/tests/qtest/test-filter-mirror.c
> +++ b/tests/qtest/test-filter-mirror.c
> @@ -45,7 +45,7 @@ static void test_mirror(void)
>          "-netdev socket,id=qtest-bn0,fd=%d "
>          "-device %s,netdev=qtest-bn0,id=qtest-e0 "
>          "-chardev socket,id=mirror0,fd=%d "
> -        "-object filter-mirror,id=qtest-f0,netdev=qtest-bn0,queue=tx,outdev=mirror0 "
> +        "-object filter-mirror,id=qtest-f0,netdev=qtest-bn0,queue=tx,outdev=mirror0,vnet_hdr_support=off "
>          , send_sock[1], devstr, recv_sock[1]);
>
>      struct iovec iov[] = {
> --
> 2.25.1
>



^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2021-11-22  3:59 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-11-19  5:35 [PATCH V3 1/2] net/filter: Enable the vnet_hdr_support by default Zhang Chen
2021-11-19  5:35 ` [PATCH V3 2/2] test/qtest/test-filter-mirror.c: Change the default vnet_hdr_support Zhang Chen
2021-11-22  3:58   ` Jason Wang
2021-11-22  3:57 ` [PATCH V3 1/2] net/filter: Enable the vnet_hdr_support by default Jason Wang

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).