Thread (8 messages) flat view 8 messages, 3 authors, 2017-09-22

Re: [PATCH net-next 3/3] virtio-net: support XDP_REDIRECT

From: Jason Wang <hidden>
Date: 2017-09-22 04:06:28
Also in: lkml


On 2017年09月21日 06:02, John Fastabend wrote:
On 09/19/2017 02:42 AM, Jason Wang wrote:
quoted
This patch tries to add XDP_REDIRECT for virtio-net. The changes are
not complex as we could use exist XDP_TX helpers for most of the
work. The rest is passing the XDP_TX to NAPI handler for implementing
batching.

Cc: John Fastabend <john.fastabend@gmail.com>
Signed-off-by: Jason Wang <redacted>
---
[...]
quoted
@@ -678,12 +711,20 @@ static struct sk_buff *receive_mergeable(struct net_device *dev,
  			}
  			break;
  		case XDP_TX:
-			if (unlikely(!virtnet_xdp_xmit(vi, &xdp)))
+			if (unlikely(!__virtnet_xdp_xmit(vi, &xdp)))
  				trace_xdp_exception(vi->dev, xdp_prog, act);
+			else
+				*xdp_xmit = true;
  			if (unlikely(xdp_page != page))
  				goto err_xdp;
  			rcu_read_unlock();
  			goto xdp_xmit;
+		case XDP_REDIRECT:
+			err = xdp_do_redirect(dev, &xdp, xdp_prog);
+			if (err)
+				*xdp_xmit = true;
Is this a typo? Should above be

			if (!err)
				*xdp_xmit = true;

this would match the pattern in receive_small and also make more sense.
Right, will post a fix.
quoted
+			rcu_read_unlock();
+			goto xdp_xmit;
  		default:
  			bpf_warn_invalid_xdp_action(act);
  		case XDP_ABORTED:
@@ -788,7 +829,7 @@ static struct sk_buff *receive_mergeable(struct net_device *dev,
  }
  
[...]

Otherwise looks good to me thanks for doing this.

.John
Thanks for the reviewing.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help