Hi Cheng,

On 4/21/23 03:09, Cheng Jiang wrote:
Similar to the port mirroring function on the switch or router, this
patch set implements such function on the Vhost lib. When
data is sent to a front-end, it will also send the data to its mirror
front-end. When data is received from a front-end, it will also send
the data to its mirror front-end.

Why not just keeping mirroring in the switch/router?
I am really not convinced this is the way to go:
1. API is too complex
2. It requires async support
3. There is too much code duplication, it increases  virtio-net.c by
   30%, and it is without packed ring support.
4. If mirror port is down for any reason, packets to/from the original
   port are dropped.
5. It seems to assume negotiated features of the two ports are
   identical, e.g. Virtio-net header length? If so, that's not a
   manageable solution.

Regards,
Maxime


Cheng Jiang (2):
   vhost: add ingress API for port mirroring datapath
   vhost: add egress API for port mirroring datapath

  lib/vhost/rte_vhost_async.h |   17 +
  lib/vhost/version.map       |    3 +
  lib/vhost/virtio_net.c      | 1266 +++++++++++++++++++++++++++++++++++
  3 files changed, 1286 insertions(+)

--
2.35.1


Reply via email to