[ovs-dev] [question] How to invalidate a dp-flow which was generated by of-flow ?

Ben Pfaff blp at ovn.org
Wed Jul 13 04:21:43 UTC 2016


On Wed, Jul 06, 2016 at 11:09:47AM +0800, Zhang Haoyu wrote:
> 
> 
> On 7/6/16 01:11, Ben Pfaff wrote:
> > On Tue, Jul 05, 2016 at 02:57:11PM +0800, Zhang Haoyu wrote:
> >>
> >>
> >> On 7/5/16 13:26, Ben Pfaff wrote:
> >>> On Tue, Jul 05, 2016 at 11:09:26AM +0800, Zhang Haoyu wrote:
> >>>> How to invalidate a dp-flow which was generated by of-flow, like
> >>>> recirc_id(0),in_port(2),eth(src=50:1c:bf:71:13:22,dst=50:1c:bf:71:13:22),eth_type(0x9000), packets:27, bytes:1620, used:8.822s, actions:drop
> >>>
> >>> Datapath flows are an implementation detail, so you need not taken any
> >>> action.
> >>>
> >>
> >> I just want to replace this dp-flow with a static dp-flow added by dpctl add-flow, 
> >> then this flow will not be invalidated forever.
> > 
> > ovs-vswitchd doesn't support static datapath flows.
> > 
> 
> I add the dp-flow by ovs-dpctl add-flow <flow> <action> instead of auto-generating it from the open flow,
> and I made below test,
> 1) ovs-dpctl add-flow \
>    "recirc_id(0),in_port(2),eth(src=b0:00:b4:67:17:9b,dst=b0:00:b4:67:17:9b),eth_type(0x0800)" "drop"
> P.S., port(2) is connected by the physical nic
> 
> 2) send the packet which matching above flow to ovs from the other host in the interval of 60s
> 
> 3) then this dp-flow's used-time will continually growing, up to 60s
> 
> According to the description in the doc ovs-dpctl.8,
> "
> This program works only with datapaths that are implemented outside  of
> ovs-vswitchd  itself,  such as the Linux and Windows kernel-based data‐paths.
> "
> 
> So, I think the dp-flow added by ovs-dpctl add-flow will not be invalidated forever,
> 
> I use ovs-dpctl add-flow <flow> <action> to bypass the slow path for some special flows.

If it works for you with some particular OVS version, great.  As I said,
datapath flows are an implementation detail, so it might break when you
switch to a different version of OVS.  As the ovs-dpctl manpage says,

       If ovs-vswitchd(8) is in use, use ovs-vsctl(8) instead of ovs-dpctl.



More information about the dev mailing list