diff mbox series

vmxnet3: Use correct minimum MTU value

Message ID 1508250823-1954-1-git-send-email-mgamal@redhat.com
State Rejected, archived
Delegated to: David Miller
Headers show
Series vmxnet3: Use correct minimum MTU value | expand

Commit Message

Mohammed Gamal Oct. 17, 2017, 2:33 p.m. UTC
Currently the vmxnet3 driver has a minimum MTU value of 60. Which
goes against the RFC791 spec which specifies it at 68.

Setting MTU to values between 60 <= MTU <= 67 causes the network
interface to lose its IP, and it fails to restart.

This sets the minimum value to ETH_MIN_MTU (68) which is compatible
with is according to spec.

Reported-by: Bo Yang <boyang@redhat.com>
Signed-off-by: Mohammed Gamal <mgamal@redhat.com>
---
 drivers/net/vmxnet3/vmxnet3_defs.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Andrew Lunn Oct. 18, 2017, 7:15 a.m. UTC | #1
On Tue, Oct 17, 2017 at 04:33:43PM +0200, Mohammed Gamal wrote:
> Currently the vmxnet3 driver has a minimum MTU value of 60. Which
> goes against the RFC791 spec which specifies it at 68.
> 
> Setting MTU to values between 60 <= MTU <= 67 causes the network
> interface to lose its IP, and it fails to restart.
> 
> This sets the minimum value to ETH_MIN_MTU (68) which is compatible
> with is according to spec.

Hi Mohammed

I'm not sure this is actually correct. Yes, IP sets a minimum of 68,
and the IP address will be removed if you set a smaller MTU. But the
interface should still usable for other protocols. It can still send
and receive frames.

Is the hardware happy to send 60 byte frames?

       Andrew

> 
> Reported-by: Bo Yang <boyang@redhat.com>
> Signed-off-by: Mohammed Gamal <mgamal@redhat.com>
> ---
>  drivers/net/vmxnet3/vmxnet3_defs.h | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/net/vmxnet3/vmxnet3_defs.h b/drivers/net/vmxnet3/vmxnet3_defs.h
> index c3a3164..4ad905a 100644
> --- a/drivers/net/vmxnet3/vmxnet3_defs.h
> +++ b/drivers/net/vmxnet3/vmxnet3_defs.h
> @@ -749,7 +749,7 @@ struct Vmxnet3_DriverShared {
>  	((vfTable[vid >> 5] & (1 << (vid & 31))) != 0)
>  
>  #define VMXNET3_MAX_MTU     9000
> -#define VMXNET3_MIN_MTU     60
> +#define VMXNET3_MIN_MTU     ETH_MIN_MTU
>  
>  #define VMXNET3_LINK_UP         (10000 << 16 | 1)    /* 10 Gbps, up */
>  #define VMXNET3_LINK_DOWN       0
> -- 
> 1.8.3.1
>
David Miller Oct. 20, 2017, 6:15 a.m. UTC | #2
From: Mohammed Gamal <mgamal@redhat.com>
Date: Tue, 17 Oct 2017 16:33:43 +0200

> Currently the vmxnet3 driver has a minimum MTU value of 60. Which
> goes against the RFC791 spec which specifies it at 68.
> 
> Setting MTU to values between 60 <= MTU <= 67 causes the network
> interface to lose its IP, and it fails to restart.
> 
> This sets the minimum value to ETH_MIN_MTU (68) which is compatible
> with is according to spec.
> 
> Reported-by: Bo Yang <boyang@redhat.com>
> Signed-off-by: Mohammed Gamal <mgamal@redhat.com>

There are protocols other than IPv4, and as Andrew mentioned
the ipv4 stack does the right thing by disabling ipv4 on
an interface when the MTU is too small.
diff mbox series

Patch

diff --git a/drivers/net/vmxnet3/vmxnet3_defs.h b/drivers/net/vmxnet3/vmxnet3_defs.h
index c3a3164..4ad905a 100644
--- a/drivers/net/vmxnet3/vmxnet3_defs.h
+++ b/drivers/net/vmxnet3/vmxnet3_defs.h
@@ -749,7 +749,7 @@  struct Vmxnet3_DriverShared {
 	((vfTable[vid >> 5] & (1 << (vid & 31))) != 0)
 
 #define VMXNET3_MAX_MTU     9000
-#define VMXNET3_MIN_MTU     60
+#define VMXNET3_MIN_MTU     ETH_MIN_MTU
 
 #define VMXNET3_LINK_UP         (10000 << 16 | 1)    /* 10 Gbps, up */
 #define VMXNET3_LINK_DOWN       0