On Thu, Sep 29, 2016 at 7:31 PM, Ramu Ramamurthy <ramu.ramamur...@gmail.com> wrote:
> > Hello Ramu > > > > Can you describe your configuration for this test failure when logical > > switch > > arp responders are skipped for logical switch "router type" ports ? > > I know the existing OVN tests (both system and non-system) pass either > way. > > > > Thanks Darrell > > > > There is no test that failed. But, I found that when a VM boots, and > gets dhcp-ip, > it pings the default-gw IP address, and for this it arps the > gateway-ip. That arp > hits the arp-responder flows for the router-port. > There is a separate arp responder for logical-router-ports in the logical router pipeline /* ARP reply. These flows reply to ARP requests for the router's own * IP address. */ for (int i = 0; i < op->lrp_networks.n_ipv4_addrs; i++) { ds_clear(&match); ds_put_format(&match, "inport == %s && arp.tpa == %s && arp.op == 1", op->json_key, op->lrp_networks.ipv4_addrs[i].addr_s); ds_clear(&actions); ds_put_format(&actions, "eth.dst = eth.src; " "eth.src = %s; " "arp.op = 2; /* ARP reply */ " "arp.tha = arp.sha; " "arp.sha = %s; " "arp.tpa = arp.spa; " "arp.spa = %s; " "outport = %s; " "flags.loopback = 1; " "output;", op->lrp_networks.ea_s, op->lrp_networks.ea_s, op->lrp_networks.ipv4_addrs[i].addr_s, op->json_key); ovn_lflow_add(lflows, op->od, S_ROUTER_IN_IP_INPUT, 90, ds_cstr(&match), ds_cstr(&actions)); } could it be that you are hitting this type of arp responder rather than the one for the logical switch datapath "router type" arp responder ? /* Ingress table 9: ARP/ND responder, reply for known IPs. * (priority 50). */ HMAP_FOR_EACH (op, key_node, ports) { if (!op->nbsp) { continue; } /* * Add ARP/ND reply flows if either the * - port is up or * - port type is router */ if (!lsp_is_up(op->nbsp) && strcmp(op->nbsp->type, "router")) { continue; } for (size_t i = 0; i < op->n_lsp_addrs; i++) { for (size_t j = 0; j < op->lsp_addrs[i].n_ipv4_addrs; j++) { ds_clear(&match); ds_put_format(&match, "arp.tpa == %s && arp.op == 1", op->lsp_addrs[i].ipv4_addrs[j].addr_s); ds_clear(&actions); ds_put_format(&actions, "eth.dst = eth.src; " "eth.src = %s; " "arp.op = 2; /* ARP reply */ " "arp.tha = arp.sha; " "arp.sha = %s; " "arp.tpa = arp.spa; " "arp.spa = %s; " "outport = inport; " "flags.loopback = 1; " "output;", op->lsp_addrs[i].ea_s, op->lsp_addrs[i].ea_s, op->lsp_addrs[i].ipv4_addrs[j].addr_s); ovn_lflow_add(lflows, op->od, S_SWITCH_IN_ARP_ND_RSP, 50, ds_cstr(&match), ds_cstr(&actions)); } _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev