[ovs-discuss] How to send all packets to userspace?

Ben Pfaff blp at nicira.com
Thu Jul 23 17:13:59 UTC 2015


On Thu, Jul 23, 2015 at 10:04:23AM -0700, Xuemei Liu wrote:
> I am new to ovs, and I am trying to send all packets from kernel space to
> user space. I comment the "unlikely(!flow)" in datapath/datapath.c.
> However, it seems I just receive the first packet of each flow (the first
> packet that match one forwarding rule in the bridge) in user space. Could
> anyone tell me why? and is there other way to achieve my goal?

You realize that this will be terrible for performance, right?

It's kind of a waste to modify the kernel module for this.  I'd just
modify userspace to send all packets to userspace, something like this:

diff --git a/ofproto/ofproto-dpif-xlate.c b/ofproto/ofproto-dpif-xlate.c
index 52395a7..a98406a 100644
--- a/ofproto/ofproto-dpif-xlate.c
+++ b/ofproto/ofproto-dpif-xlate.c
@@ -4777,7 +4777,7 @@ xlate_actions(struct xlate_in *xin, struct xlate_out *xout)
 
     ctx.xin = xin;
     ctx.xout = xout;
-    ctx.xout->slow = 0;
+    ctx.xout->slow = SLOW_ACTION;
     ctx.xout->has_learn = false;
     ctx.xout->has_normal = false;
     ctx.xout->has_fin_timeout = false;



More information about the discuss mailing list