From: David Ahern
Date: Wed, 26 Aug 2015 12:36:15 -0700
> As such all we need is to push an eth header to the front of the skb
> for 1 loop through the stack and eth_header via dev_hard_header with
> NULL daddr is the simplest path to accomplish that. Any other path is
> just extra overhead.
And
On 8/25/15 3:51 PM, David Miller wrote:
From: David Ahern
Date: Tue, 25 Aug 2015 15:37:55 -0700
On 8/25/15 2:02 PM, David Miller wrote:
From: David Ahern
Date: Sun, 23 Aug 2015 12:41:00 -0600
@@ -250,6 +253,17 @@ static netdev_tx_t vrf_xmit(struct sk_buff *skb,
struct net_device *dev)
From: David Ahern
Date: Tue, 25 Aug 2015 15:37:55 -0700
> On 8/25/15 2:02 PM, David Miller wrote:
>> From: David Ahern
>> Date: Sun, 23 Aug 2015 12:41:00 -0600
>>
>>> @@ -250,6 +253,17 @@ static netdev_tx_t vrf_xmit(struct sk_buff *skb,
>>> struct net_device *dev)
>>>
>>> static netdev_tx_t vr
On 8/25/15 2:02 PM, David Miller wrote:
From: David Ahern
Date: Sun, 23 Aug 2015 12:41:00 -0600
@@ -250,6 +253,17 @@ static netdev_tx_t vrf_xmit(struct sk_buff *skb, struct
net_device *dev)
static netdev_tx_t vrf_finish(struct sock *sk, struct sk_buff *skb)
{
+ int err;
+
+ _
From: David Ahern
Date: Sun, 23 Aug 2015 12:41:00 -0600
> @@ -250,6 +253,17 @@ static netdev_tx_t vrf_xmit(struct sk_buff *skb, struct
> net_device *dev)
>
> static netdev_tx_t vrf_finish(struct sock *sk, struct sk_buff *skb)
> {
> + int err;
> +
> + __skb_pull(skb, skb_network_offse
The change to use a custom dst broke tcpdump captures on the VRF device:
$ tcpdump -n -i vrf10
...
05:32:29.009362 IP 10.2.1.254 > 10.2.1.2: ICMP echo request, id 21989, seq 1,
length 64
05:32:29.009855 00:00:40:01:8d:36 > 45:00:00:54:d6:6f, ethertype Unknown
(0x0a02), length 84:
0x: