[ovs-dev] [PATCH v1] ofproto: Fix OVS crash when packets hit Openflow rules with certain combinations of nested actions
Ilya Maximets
i.maximets at samsung.com
Wed Aug 28 11:56:26 UTC 2019
On 28.08.2019 13:24, Anil Kumar wrote:
> OVS crashes when a packet sent with action set to OFPP_TABLE hits Openflow
> rules with conntrack and learn actions.
>
> For example:
> The crash can be triggered by installing the following Open flow rules and
> sending packet with action set to OFPP_TABLE
>
> 1. ovs-ofctl -OOpenflow13 add-flow br-int "table=0, priority=50, \
> ct_state=-trk,ip, in_port=10 actions=ct(table=0)"
>
> 2. ovs-ofctl -OOpenflow13 add-flow br-int "table=0, priority=50, \
> ct_state=+trk,ip, in_port=10 actions=ct(commit),resubmit(,1)"
>
> 3. ovs-ofctl -OOpenflow13 add-flow br-int "table=1 \
> actions=learn(table=2,NXM_OF_ETH_DST[]=NXM_OF_ETH_SRC[],load:NXM_OF_IN_PORT[]->NXM_NX_REG0[0..15], \
> output:NXM_NX_REG0[0..15]),resubmit(,2)"
>
> 4. Send a packet with output as OFPP_TABLE
> ovs-ofctl -OOpenflow13 packet-out br-int 'in_port=10 \
> packet=505400000007101111111111080045000028000000004006f97cc0a80001c0a800020008000a0000000000000000500200002e7d0000, \
> actions=TABLE'
>
> The processing code path results in the same thread context attempting to
> acquire a mutex that it already holds. Since the mutex is of error checking
> type this situation is considered fatal and OVS aborts. The crash isn’t
> limited to only the above combination of actions
>
> Signed-off-by: Anil Kumar <anilkumar.k at altencalsoftlabs.com>
> ---
Hi. Thanks for the patch.
But I cannot reproduce the issue on current master using commands you provided.
Could you, please, provide also a stack trace of the asserted thread?
This should make it easier to understand the issue.
Best regards, Ilya Maximets.
More information about the dev
mailing list