[pve-devel] [PATCH v5 manager] ui: vm network: allow to override MTU for virtio devices

Thomas Lamprecht t.lamprecht at proxmox.com
Fri May 20 09:41:10 CEST 2022


On 19/05/2022 10:48, Oguz Bektas wrote:
> we already have the 'mtu' option in the API, so we can just expose
> that option inside the 'Advanced' menu for virtio network interfaces.
> 
> Reviewed-By: Aaron Lauterer <a.lauterer at proxmox.com>
> Tested-By: Aaron Lauterer <a.lauterer at proxmox.com>
> Tested-By: Dylan Whyte <d.whyte at proxmox.com>

aren't those from two version previous with some change in between, or
did they re-test / re-review this in private?
As IMO it's not really correct to let one believe that this exact version
was tested by two people.

Functionality wise it looks Ok, a few final layout and code style nits
I'd still like to see inline.

> Signed-off-by: Oguz Bektas <o.bektas at proxmox.com>
> ---
> 
> v4->v5:
> * changed default mtu from 1500 to empty (dominik's review on v4 caught
> a small bug where the mtu would be set to 1500 even without showing the
> advanced fields)
> 
> 
>  www/manager6/qemu/NetworkEdit.js | 34 ++++++++++++++++++++++++++++++++
>  1 file changed, 34 insertions(+)
> 
> diff --git a/www/manager6/qemu/NetworkEdit.js b/www/manager6/qemu/NetworkEdit.js
> index b39cffdc..91038de7 100644
> --- a/www/manager6/qemu/NetworkEdit.js
> +++ b/www/manager6/qemu/NetworkEdit.js
> @@ -19,6 +19,7 @@ Ext.define('PVE.qemu.NetworkInputPanel', {
>  	me.network.macaddr = values.macaddr;
>  	me.network.disconnect = values.disconnect;
>  	me.network.queues = values.queues;
> +	me.network.mtu = values.mtu;
>  
>  	if (values.rate) {
>  	    me.network.rate = values.rate;
> @@ -33,6 +34,17 @@ Ext.define('PVE.qemu.NetworkInputPanel', {
>  	return params;
>      },
>  
> +    viewModel: {
> +	data: {
> +	    network_model: '',

nit: please avoid introducing new snake_case in the gui, we normally use camelCase here.

> +	    mtu: '',
> +	},
> +	formulas: {
> +	    isVirtio: (get) => get('network_model') === 'virtio',

tip, single parameter arrow functions don't need the parenthesis,

isVirtio: get => get('networkModel') === 'virtio',

> +	    showMTUHint: (get) => get('mtu') === 1,

showMtuHint

> +	},
> +    },
> +
>      setNetwork: function(confid, data) {
>  	var me = this;
>  
> @@ -112,6 +124,7 @@ Ext.define('PVE.qemu.NetworkInputPanel', {
>  			    'macaddr',
>  			    'rate',
>  			    'queues',
> +			    'mtu',
>  			];
>  			fields.forEach(function(fieldname) {
>  			    me.down('field[name='+fieldname+']').setDisabled(value);
> @@ -130,6 +143,7 @@ Ext.define('PVE.qemu.NetworkInputPanel', {
>  		xtype: 'pveNetworkCardSelector',
>  		name: 'model',
>  		fieldLabel: gettext('Model'),
> +		bind: '{network_model}',
>  		value: PVE.qemu.OSDefaults.generic.networkCard,
>  		allowBlank: false,
>  	    },
> @@ -161,6 +175,26 @@ Ext.define('PVE.qemu.NetworkInputPanel', {
>  		value: '',
>  		allowBlank: true,
>  	    },

why not add the field to advancedColumn1 and the hint in advancedColumB, so that
the form is more balanced out and the hint isn't wrapping lines increasing the
height of the row its in (even if there wasn't anything _yet_ on the left side of
it to really notice).

> +	    {
> +		xtype: 'proxmoxintegerfield',
> +		name: 'mtu',
> +		fieldLabel: 'MTU',
> +		bind: {
> +		    disabled: '{!isVirtio}',
> +		    value: '{mtu}',
> +		},
> +		minValue: 1,
> +		maxValue: 65520,
> +		allowBlank: true,
> +	    },
> +	    {
> +		xtype: 'displayfield',
> +		userCls: 'pmx-hint',
> +		value: gettext("mtu=1 is a special value, the MTU value will be inherited from the current bridge"),

Maybe:

"Use the special value '1' to inherit the MTU from the underlying bridge"

> +		bind: {
> +		    hidden: '{!showMTUHint}',
> +		},
> +	    },
>  	];
>  
>  	me.callParent();





More information about the pve-devel mailing list