On Mar 21, 2014, at 2:28 PM, Pravin Shelar <pshe...@nicira.com> wrote:

> On Fri, Mar 21, 2014 at 1:55 PM, Thomas Graf <tg...@redhat.com> wrote:
>> On 03/21/2014 07:02 PM, Pravin wrote:
>>> 
>>> diff --git a/lib/automake.mk b/lib/automake.mk
>>> 
>>> @@ -1863,7 +1850,7 @@ dp_netdev_port_input(struct dp_netdev *dp, struct
>>> ofpbuf *packet,
>>>          dp_netdev_flow_used(netdev_flow, packet, &key);
>>> 
>>>          actions = dp_netdev_flow_get_actions(netdev_flow);
>>> -        dp_netdev_execute_actions(dp, &key, packet, md,
>>> +        dp_netdev_execute_actions(dp, &key, packet, true, md,
>>>                                    actions->actions, actions->size);
>> 
>> 
>> I am not 100% sure I understand who is responsible for deleting the
>> packet, e.g. if the actions are not terminated with an output or
>> userspace. Or is that never possible?
>> 
> I think it is not possible. Why vswitchd would generate such action if
> the packet is not going somewhere?

I think we used to install explicit “drop flows” to the datapath in the past. 
Also, even now, an upcall can find that the packet should be dropped, maybe due 
to an "ACL rule” in the flow classifier. In such case we would install a flow 
with an empty action list.

I agree with Thomas that dp_netdev_execute_actions() should return a value 
indicating the caller still has ownership of the packet. But I also agree that 
this can be worked on in follow-up patches.

  Jarno

_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to