On Thu, Jul 17, 2014 at 3:46 PM, Ansis Atteka <aatt...@nicira.com> wrote:
> diff --git a/datapath/flow_netlink.c b/datapath/flow_netlink.c
> index 5f975a1..a4108c0 100644
> --- a/datapath/flow_netlink.c
> +++ b/datapath/flow_netlink.c
> @@ -1034,7 +1034,7 @@ int ovs_nla_put_flow(struct datapath *dp, const struct 
> sw_flow_key *swkey,
>                         struct vport *in_port;
>
>                         in_port = ovs_vport_ovsl_rcu(dp, swkey->phy.in_port);
> -                       if (in_port->ops->type == OVS_VPORT_TYPE_GENEVE)
> +                       if (in_port && in_port->ops->type == 
> OVS_VPORT_TYPE_GENEVE)

I think is probably not only an issue for Geneve ports (since the
crash happens before we get to check the type) but for tunnel ports in
general. I also guess that the scenario is not that the port hasn't
been created yet but that the port has been deleted and the flow still
exists.

One thing that I worry about is that this has the possibility to
change how the flow is reported - before the flow deletion it has
Geneve options but immediately after the flow still exists but without
options. OVS will likely deal with this but it doesn't seem like a
great thing.
_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to