[ovs-dev] [PATCH] dpctl: Fix crash.

Madhu Challa challa at noironetworks.com
Fri Nov 14 21:40:52 UTC 2014


Verified the fix. Looks good.

Thanks.

On Fri, Nov 14, 2014 at 1:24 PM, Pravin B Shelar <pshelar at nicira.com> wrote:

> ovs-dpctl crashed due to uninitialized router classifier. To
> fix this issue move ovs router initialization to route table
> module.
>
> Reported-by: Madhu Challa <challa at noironetworks.com>
> Signed-off-by: Pravin B Shelar <pshelar at nicira.com>
> ---
>  lib/ovs-router.c       |    2 +-
>  lib/ovs-router.h       |    2 +-
>  lib/route-table.c      |    1 +
>  ofproto/ofproto-dpif.c |    1 -
>  4 files changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/lib/ovs-router.c b/lib/ovs-router.c
> index ba51614..5f02107 100644
> --- a/lib/ovs-router.c
> +++ b/lib/ovs-router.c
> @@ -268,7 +268,7 @@ ovs_router_flush(void)
>
>  /* May not be called more than once. */
>  void
> -ovs_router_unixctl_register(void)
> +ovs_router_init(void)
>  {
>      classifier_init(&cls, NULL);
>      unixctl_command_register("ovs/route/add", "ipv4_addr/prefix_len
> out_br_name gw", 2, 3,
> diff --git a/lib/ovs-router.h b/lib/ovs-router.h
> index 92d15c6..b0042cc 100644
> --- a/lib/ovs-router.h
> +++ b/lib/ovs-router.h
> @@ -24,7 +24,7 @@ extern "C" {
>  #endif
>
>  bool ovs_router_lookup(ovs_be32 ip_dst, char out_dev[], ovs_be32 *gw);
> -void ovs_router_unixctl_register(void);
> +void ovs_router_init(void);
>  #ifdef  __cplusplus
>  }
>  #endif
> diff --git a/lib/route-table.c b/lib/route-table.c
> index 6261954..63a9bd3 100644
> --- a/lib/route-table.c
> +++ b/lib/route-table.c
> @@ -96,6 +96,7 @@ route_table_register(void)
>          ovs_assert(!nln);
>          ovs_assert(!route_notifier);
>
> +        ovs_router_init();
>          nln = nln_create(NETLINK_ROUTE, RTNLGRP_IPV4_ROUTE,
>                           (nln_parse_func *) route_table_parse, &rtmsg);
>
> diff --git a/ofproto/ofproto-dpif.c b/ofproto/ofproto-dpif.c
> index a056a63..f438a83 100644
> --- a/ofproto/ofproto-dpif.c
> +++ b/ofproto/ofproto-dpif.c
> @@ -1251,7 +1251,6 @@ construct(struct ofproto *ofproto_)
>      guarded_list_init(&ofproto->pins);
>
>      ofproto_unixctl_init();
> -    ovs_router_unixctl_register();
>
>      hmap_init(&ofproto->vlandev_map);
>      hmap_init(&ofproto->realdev_vid_map);
> --
> 1.7.1
>
> _______________________________________________
> dev mailing list
> dev at openvswitch.org
> http://openvswitch.org/mailman/listinfo/dev
>



More information about the dev mailing list