[ovs-git] [openvswitch/ovs] 052676: dpif-netdev: Avoid sending probe packets

GitHub noreply at github.com
Tue Jan 24 06:59:51 UTC 2017


  Branch: refs/heads/master
  Home:   https://github.com/openvswitch/ovs
  Commit: 0526761391dbced4e5fa306cc68913b8ad050b38
      https://github.com/openvswitch/ovs/commit/0526761391dbced4e5fa306cc68913b8ad050b38
  Author: Andy Zhou <azhou at ovn.org>
  Date:   2017-01-23 (Mon, 23 Jan 2017)

  Changed paths:
    M lib/dpif-netdev.c

  Log Message:
  -----------
  dpif-netdev: Avoid sending probe packets

When ofproto probe for datapath features, no packets should actually
be sent to the network. This pactch fixes the userspace by dropping
probe packets before action execution.

Signed-off-by: Andy Zhou <azhou at ovn.org>
Acked-by: Jarno Rajahalme <jarno at ovn.org>


  Commit: bf6b1d052e793ebadd48b05b6595319caa08c026
      https://github.com/openvswitch/ovs/commit/bf6b1d052e793ebadd48b05b6595319caa08c026
  Author: Andy Zhou <azhou at ovn.org>
  Date:   2017-01-23 (Mon, 23 Jan 2017)

  Changed paths:
    M lib/netlink.c
    M lib/netlink.h

  Log Message:
  -----------
  lib: Add nl_msg_end_non_empty_nested()

Later patch will make use of nl_msg_end_non_empty_nested()

Signed-off-by: Andy Zhou <azhou at ovn.org>
Acked-by: Jarno Rajahalme <jarno at ovn.org>


  Commit: 535e3acfa70b1c1a44daf91de3a63b80d673dc33
      https://github.com/openvswitch/ovs/commit/535e3acfa70b1c1a44daf91de3a63b80d673dc33
  Author: Andy Zhou <azhou at ovn.org>
  Date:   2017-01-23 (Mon, 23 Jan 2017)

  Changed paths:
    M datapath/linux/compat/include/linux/openvswitch.h
    M lib/dpif-netdev.c
    M lib/dpif.c
    M lib/odp-execute.c
    M lib/odp-util.c
    M ofproto/ofproto-dpif-sflow.c
    M ofproto/ofproto-dpif.c
    M ofproto/ofproto-dpif.h

  Log Message:
  -----------
  dpif-netdev: Add clone action

Add support for userspace datapath clone action.  The clone action
provides an action envelope to enclose an action list.
For example, with actions A, B, C and D,  and an action list:
      A, clone(B, C), D

The clone action will ensure that:

- D will see the same packet, and any meta states, such as flow, as
  action B.

- D will be executed regardless whether B, or C drops a packet. They
  can only drop a clone.

- When B drops a packet, clone will skip all remaining actions
  within the clone envelope. This feature is useful when we add
  meter action later:  The meter action can be implemented as a
  simple action without its own envolop (unlike the sample action).
  When necessary, the flow translation layer can enclose a meter action
  in clone.

The clone action is very similar with the OpenFlow clone action.
This is by design to simplify vswitchd flow translation logic.

Without datapath clone, vswitchd simulate the effect by inserting
datapath actions to "undo" clone actions. The above flow will be
translated into   A, B, C, -C, -B, D.

However, there are two issues:
- The resulting datapath action list may be longer without using
  clone.

- Some actions, such as NAT may not be possible to reverse.

This patch implements clone() simply with packet copy. The performance
can be improved with later patches, for example, to delay or avoid
packet copy if possible.  It seems datapath should have enough context
to carry out such optimization without the userspace context.

Signed-off-by: Andy Zhou <azhou at ovn.org>
Acked-by: Jarno Rajahalme <jarno at ovn.org>


  Commit: bef503e8c094456ca82fefd044a8c3341d9d21ac
      https://github.com/openvswitch/ovs/commit/bef503e8c094456ca82fefd044a8c3341d9d21ac
  Author: Andy Zhou <azhou at ovn.org>
  Date:   2017-01-23 (Mon, 23 Jan 2017)

  Changed paths:
    M ofproto/ofproto-dpif-xlate.c
    M ofproto/ofproto-dpif-xlate.h
    M ofproto/ofproto-dpif.c
    M tests/ofproto-dpif.at

  Log Message:
  -----------
  xlate: Generate of datapath clone action when supported

Add logic to detect whether datapath support clone.
Enhance the xlate logic to make use of it.
Added logic to turn on/off clone support for testing.

Signed-off-by: Andy Zhou <azhou at ovn.org>
Acked-by: Jarno Rajahalme <jarno at ovn.org>


Compare: https://github.com/openvswitch/ovs/compare/ab979fd282b3...bef503e8c094


More information about the git mailing list