[ovs-git] [openvswitch/ovs] c17fcc: flow: New function is_nd().

GitHub noreply at github.com
Sat Jul 2 18:42:11 UTC 2016


  Branch: refs/heads/master
  Home:   https://github.com/openvswitch/ovs
  Commit: c17fcc0aed0bfb1651a1343eb0762a428c905ff3
      https://github.com/openvswitch/ovs/commit/c17fcc0aed0bfb1651a1343eb0762a428c905ff3
  Author: Ben Pfaff <blp at ovn.org>
  Date:   2016-07-02 (Sat, 02 Jul 2016)

  Changed paths:
    M lib/flow.h
    M lib/meta-flow.c
    M lib/nx-match.c
    M lib/odp-util.c
    M lib/tnl-neigh-cache.c

  Log Message:
  -----------
  flow: New function is_nd().

This simplifies a few pieces of code and will acquire another user in an
upcoming commit.

Signed-off-by: Ben Pfaff <blp at ovn.org>


  Commit: e75451fef9899e986e33d0591fd925efa4ea4dc4
      https://github.com/openvswitch/ovs/commit/e75451fef9899e986e33d0591fd925efa4ea4dc4
  Author: Zong Kai LI <zealokii at gmail.com>
  Date:   2016-07-02 (Sat, 02 Jul 2016)

  Changed paths:
    M lib/packets.c
    M lib/packets.h
    M ovn/controller/pinctrl.c
    M ovn/lib/actions.c
    M ovn/lib/actions.h
    M ovn/northd/ovn-northd.c
    M ovn/ovn-sb.xml
    M tests/ovn.at
    M tutorial/OVN-Tutorial.md

  Log Message:
  -----------
  ovn: Add 'na' action and lflow for ND

This patch tries to support ND versus ARP for OVN.

It adds a new OVN action 'na' in ovn-controller side, and modify lflows
for 'na' action and relevant packets in ovn-northd.

First, for ovn-northd, it will generate lflows per each lport with its
IPv6 addresses and mac addresss, with 'na' action, such as:
  match=(icmp6 && icmp6.type == 135 &&
   (nd.target == fd81:ce49:a948:0:f816:3eff:fe46:8a42 ||
    nd.target == fd81:ce49:b123:0:f816:3eff:fe46:8a42)),
  action=(na { eth.src = fa:16:3e:46:8a:42; nd.tll = fa:16:3e:46:8a:42;
         outport = inport;
         inport = ""; /* Allow sending out inport. */ output; };)

and new lflows will be set in tabel ls_in_arp_nd_rsp, which is renamed
from previous ls_in_arp_rsp.

Later, for ovn-controller, when it received a ND packet, it frames a
template NA packet for reply. The NA packet will be initialized based on
ND packet, such as NA packet will use:
 - ND packet eth.src as eth.dst,
 - ND packet eth.dst as eth.src,
 - ND packet ip6.src as ip6.dst,
 - ND packet nd.target as ip6.src,
 - ND packet eth.dst as nd.tll.

Finally, nested actions in 'na' action will update necessary fileds
for NA packet, such as:
 - eth.src, nd.tll
 - inport, outport

Since patch port for IPv6 router interface is not ready yet, this
patch will only try to deal with ND from VM. This patch will set
RSO flags to 011 for NA packets.

This patch also modified current ACL lflows for ND, not to do conntrack
on ND and NA packets in following tables:
 - S_SWITCH_IN_PRE_ACL
 - S_SWITCH_OUT_PRE_ACL
 - S_SWITCH_IN_ACL
 - S_SWITCH_OUT_ACL

Signed-off-by: Zong Kai LI <zealokii at gmail.com>
[blp at ovn.org made several minor simplifications and improvements]
Signed-off-by: Ben Pfaff <blp at ovn.org>


Compare: https://github.com/openvswitch/ovs/compare/59ae5a6e4ed0...e75451fef989


More information about the git mailing list