Sorry, please ignore this one because the v3 change was missing by format-patch.
On Tue, Nov 24, 2015 at 1:23 PM, Han Zhou <zhou...@gmail.com> wrote: > For lswitch ports with known IPs, ARP is responded directly from > local ovn-controller to avoid flooding. > > Signed-off-by: Han Zhou <zhou...@gmail.com> > --- > > Notes: > v1->v2: remove the extra arg of xasprintf() > v2->v3: update ovn-northd.8.xml to describe the new flows > > ovn/northd/ovn-northd.c | 38 ++++++++++++++++++++++++++++++++++++++ > 1 file changed, 38 insertions(+) > > diff --git a/ovn/northd/ovn-northd.c b/ovn/northd/ovn-northd.c > index 8fe0c2c..ec13171 100644 > --- a/ovn/northd/ovn-northd.c > +++ b/ovn/northd/ovn-northd.c > @@ -1151,6 +1151,44 @@ build_lswitch_flows(struct hmap *datapaths, struct > hmap *ports, > ds_destroy(&match); > } > > + /* Ingress table 3: Destination lookup, ARP reply for known IPs. > + * (priority 150). */ > + HMAP_FOR_EACH (op, key_node, ports) { > + if (!op->nbs) { > + continue; > + } > + > + for (size_t i = 0; i < op->nbs->n_addresses; i++) { > + struct eth_addr ea; > + ovs_be32 ip; > + > + if (ovs_scan(op->nbs->addresses[i], > + ETH_ADDR_SCAN_FMT" "IP_SCAN_FMT, > + ETH_ADDR_SCAN_ARGS(ea), IP_SCAN_ARGS(&ip))) { > + char *match = xasprintf( > + "arp.tpa == "IP_FMT" && arp.op == 1", IP_ARGS(ip)); > + char *actions = xasprintf( > + "eth.dst = eth.src; " > + "eth.src = "ETH_ADDR_FMT"; " > + "arp.op = 2; /* ARP reply */ " > + "arp.tha = arp.sha; " > + "arp.sha = "ETH_ADDR_FMT"; " > + "arp.tpa = arp.spa; " > + "arp.spa = "IP_FMT"; " > + "outport = inport; " > + "inport = \"\"; /* Allow sending out inport. */ " > + "output;", > + ETH_ADDR_ARGS(ea), > + ETH_ADDR_ARGS(ea), > + IP_ARGS(ip)); > + ovn_lflow_add(lflows, op->od, S_SWITCH_IN_L2_LKUP, 150, > + match, actions); > + free(match); > + free(actions); > + } > + } > + } > + > /* Ingress table 3: Destination lookup, broadcast and multicast handling > * (priority 100). */ > HMAP_FOR_EACH (op, key_node, ports) { > -- > 2.1.0 > -- Best regards, Han _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev