]> git.proxmox.com Git - pve-manager.git/commitdiff
add support to change bond_xmit_hash_policy on linux bond devices
authorDietmar Maurer <dietmar@proxmox.com>
Mon, 30 Dec 2013 07:21:44 +0000 (08:21 +0100)
committerDietmar Maurer <dietmar@proxmox.com>
Mon, 30 Dec 2013 07:21:44 +0000 (08:21 +0100)
PVE/API2/Network.pm
www/manager/form/BondModeSelector.js
www/manager/node/NetworkEdit.js

index 68452e62d5a0ce3537ec391ccd567721cdfb421a..739ef874f766e212f2291d05b6c5e33ed75952a7 100644 (file)
@@ -81,6 +81,12 @@ my $confdesc = {
        optional => 1,
        type => 'string', enum => $bond_mode_enum,
     },
+    bond_xmit_hash_policy => {
+       description => "Selects the transmit hash policy to use for slave selection in balance-xor and 802.3ad modes.",
+       optional => 1,
+       type => 'string', 
+       enum => ['layer2', 'layer2+3', 'layer3+4' ],
+    },
     gateway => {
        description => 'Default gateway address.',
        type => 'string', format => 'ipv4',
index 4dc6564db5a15940f5e76b9c4d1203e2e5546427..4504e8bc7a41ba66ac89f50098baa313b12365b2 100644 (file)
@@ -20,7 +20,7 @@ Ext.define('PVE.form.BondModeSelector', {
                ['active-backup', 'active-backup'], 
                ['balance-xor', 'balance-xor'], 
                ['broadcast', 'broadcast'], 
-               ['802.3ad', 'LACP (layer2)'], 
+               ['802.3ad', 'LACP (802.3ad)'], 
                ['balance-tlb', 'balance-tlb'], 
                ['balance-alb', 'balance-alb']
            ];
@@ -29,3 +29,20 @@ Ext.define('PVE.form.BondModeSelector', {
        me.callParent();
     }
 });
+
+Ext.define('PVE.form.BondPolicySelector', {
+    extend: 'PVE.form.KVComboBox',
+    alias: ['widget.bondPolicySelector'],
+
+    initComponent: function() {
+       var me = this;
+        me.data = [
+           ['layer2', 'layer2'],
+           ['layer2+3', 'layer2+3'], 
+           ['layer3+4', 'layer3+4']
+       ];
+       me.callParent();
+    }
+});
+
index 993d92a3d1fb2da3cfbf2619ff80dcdd2f18505a..eae1bc04390614b2ccd05fc3d219c6a50f45e9fa 100644 (file)
@@ -90,13 +90,35 @@ Ext.define('PVE.node.NetworkEdit', {
                fieldLabel: gettext('Slaves'),
                name: 'slaves'
            });
+
+           var policySelector = Ext.createWidget('bondPolicySelector', {
+               fieldLabel: gettext('Hash policy'),
+               name: 'bond_xmit_hash_policy',
+               deleteEmpty: !me.create,
+               disabled: true
+           });
+
            column2.push({
                xtype: 'bondModeSelector',
                fieldLabel: gettext('Mode'),
                name: 'bond_mode',
                value: me.create ? 'balance-rr' : undefined,
+               listeners: {
+                   change: function(f, value) {
+                       if (value === 'balance-xor' ||
+                           value === '802.3ad') {
+                           policySelector.setDisabled(false);
+                       } else {
+                           policySelector.setDisabled(true);
+                           policySelector.setValue('');
+                       }
+                   }
+               },
                allowBlank: false
            });
+
+           column2.push(policySelector);
+
        } else if (me.iftype === 'OVSBond') {
            column2.push({
                xtype: me.create ? 'PVE.form.BridgeSelector' : 'displayfield',