[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <53FE2062.8060907@hp.com>
Date: Wed, 27 Aug 2014 11:16:02 -0700
From: Rick Jones <rick.jones2@...com>
To: Vlad Yasevich <vyasevich@...il.com>,
Cong Wang <cwang@...pensource.com>,
Martin Rusko <martin.rusko@...il.com>
CC: netdev <netdev@...r.kernel.org>
Subject: Re: Sending undersized ARP packets with VXLAN L3 interface
On 08/27/2014 10:52 AM, Vlad Yasevich wrote:
> I think vxlan needs something like this:
>
> From: Vladislav Yasevich <vyasevich@...il.com>
> Date: Wed, 27 Aug 2014 13:39:32 -0400
> Subject: [PATCH] vxlan: Pad short ethernet frames.
>
> If sending short ethernet frames from the vxlan device, pad
> them to minimum size so they can be forwarded after decapsulation.
>
> Reported-by: Martin Rusko <martin.rusko@...il.com>
> Signed-off-by: Vladislav Yasevich <vyasevich@...il.com>
> ---
> drivers/net/vxlan.c | 8 ++++++++
> 1 file changed, 8 insertions(+)
>
> diff --git a/drivers/net/vxlan.c b/drivers/net/vxlan.c
> index 1fb7b37..48267d4 100644
> --- a/drivers/net/vxlan.c
> +++ b/drivers/net/vxlan.c
> @@ -1939,6 +1939,14 @@ static netdev_tx_t vxlan_xmit(struct sk_buff *skb, struct
> net_device *dev)
> #endif
> }
>
> + /* Pad short frames so they can be forwarded after decapsulation */
> + if (skb->len < ETH_ZLEN) {
> + if (skb_pad(skb, ETH_ZLEN - skb->len))
> + return NETDEV_TX_OK;
> + skb->len = ETH_ZLEN;
> + skb_set_tail_pointer(skb, ETH_ZLEN);
> + }
> +
> f = vxlan_find_mac(vxlan, eth->h_dest);
> did_rsc = false;
>
It is perhaps putting a stripe on the bikeshed, but should that be an
"unlikely" on the length check? There seem to be examples both ways in
the handful of physical drivers I've checked.
rick jones
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists