On Tue, Oct 21, 2014 at 3:20 PM, Thomas Graf <tg...@noironetworks.com> wrote: > On 10/16/14 at 11:38am, Pravin B Shelar wrote: >> Rather than using hmap for storing routing entries we can directly use >> classifier which has support for priority and wildcard entries. >> This makes route lookup lockless. This help when we use route lookup >> for native tunneling. >> >> Signed-off-by: Pravin B Shelar <pshe...@nicira.com> > > LGTM. Some minor comments belows. Nothing that should block this. > > Acked-by: Thomas Graf <tg...@noironetworks.com> > > >> +bool >> +ovs_router_lookup(ovs_be32 ip_dst, char output_bridge[], ovs_be32 *gw) >> +{ >> + const struct cls_rule *cr; >> + struct flow flow; >> + >> + memset(&flow, 0, sizeof(flow)); >> + flow.nw_dst = ip_dst; > > This could use c99 designated initializers at some point to avoid the > explicit memset(). > ok.
>> +static bool >> +rt_entry_delete(uint8_t priority, ovs_be32 ip_dst, uint8_t plen) >> +{ >> + struct cls_rule *cr; >> + struct cls_rule rule; >> + struct match match; >> + ovs_be32 mask = htonl(UINT32_MAX << (32 - plen)); >> + >> + ip_dst &= mask; /* Clear out insignificant bits. */ >> + >> + memset(&match, 0, sizeof match); >> + match.flow.nw_dst = ip_dst; >> + match.wc.masks.nw_dst = mask; >> + cls_rule_init(&rule, &match, priority); > > Maybe factor out the match init code of his and the insert() function > into a helper? > ok. >> +static void >> +ovs_router_add(struct unixctl_conn *conn, int argc, >> + const char *argv[], void *aux OVS_UNUSED) >> +{ >> + ovs_be32 ip, gw; >> + unsigned int plen; >> + >> + if (scan_ipv4_route(argv[1], &ip, &plen)) { >> + if (argc > 3) { >> + inet_aton(argv[3], (struct in_addr *)&gw); > > Use inet_pton() here? ok, I will update my patch. _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev