Signed-off-by: Hannes Laimer <h.lai...@proxmox.com>
---
 www/manager6/Parser.js           | 18 ++++++++++++++++++
 www/manager6/qemu/NetworkEdit.js | 27 ++++++++++++++++++++++++---
 2 files changed, 42 insertions(+), 3 deletions(-)

diff --git a/www/manager6/Parser.js b/www/manager6/Parser.js
index b793a28e..eac31f2f 100644
--- a/www/manager6/Parser.js
+++ b/www/manager6/Parser.js
@@ -131,6 +131,10 @@ Ext.define('PVE.Parser', { statics: {
                res.bridge = match_res[1];
            } else if ((match_res = p.match(/^rate=(\d+(\.\d+)?)$/)) !== null) {
                res.rate = match_res[1];
+           } else if ((match_res = p.match(/^outrate=(\d+(\.\d+)?)$/)) !== 
null) {
+               res.outrate = match_res[1];
+           } else if ((match_res = p.match(/^inrate=(\d+(\.\d+)?)$/)) !== 
null) {
+               res.inrate = match_res[1];
            } else if ((match_res = p.match(/^tag=(\d+(\.\d+)?)$/)) !== null) {
                res.tag = match_res[1];
            } else if ((match_res = p.match(/^firewall=(\d+)$/)) !== null) {
@@ -146,6 +150,14 @@ Ext.define('PVE.Parser', { statics: {
                return false; // break
            }
        });
+       if (res.rate) {
+           if (!res.inrate) {
+               res.inrate = res.rate;
+           }
+           if (!res.outrate) {
+               res.outrate = res.rate;
+           }
+       }
 
        if (errors || !res.model) {
            return;
@@ -172,6 +184,12 @@ Ext.define('PVE.Parser', { statics: {
        if (net.rate) {
            netstr += ",rate=" + net.rate;
        }
+       if (net.outrate) {
+           netstr += ",outrate=" + net.outrate;
+       }
+       if (net.inrate) {
+           netstr += ",inrate=" + net.inrate;
+       }
        if (net.queues) {
            netstr += ",queues=" + net.queues;
        }
diff --git a/www/manager6/qemu/NetworkEdit.js b/www/manager6/qemu/NetworkEdit.js
index 3b093b46..8428a2aa 100644
--- a/www/manager6/qemu/NetworkEdit.js
+++ b/www/manager6/qemu/NetworkEdit.js
@@ -25,7 +25,16 @@ Ext.define('PVE.qemu.NetworkInputPanel', {
        } else {
            delete me.network.rate;
        }
-
+       if (values.outrate) {
+           me.network.outrate = values.outrate;
+       } else {
+           delete me.network.outrate;
+       }
+       if (values.inrate) {
+           me.network.inrate = values.inrate;
+       } else {
+           delete me.network.inrate;
+       }
        var params = {};
 
        params[me.confid] = PVE.Parser.printQemuNetwork(me.network);
@@ -111,6 +120,8 @@ Ext.define('PVE.qemu.NetworkInputPanel', {
                            'model',
                            'macaddr',
                            'rate',
+                           'outrate',
+                           'inrate',
                            'queues'
                        ];
                        fields.forEach(function(fieldname) {
@@ -144,8 +155,18 @@ Ext.define('PVE.qemu.NetworkInputPanel', {
        me.advancedColumn2 = [
            {
                xtype: 'numberfield',
-               name: 'rate',
-               fieldLabel: gettext('Rate limit') + ' (MB/s)',
+               name: 'outrate',
+               fieldLabel: gettext('Upload limit') + ' (MB/s)',
+               minValue: 0,
+               maxValue: 10*1024,
+               value: '',
+               emptyText: 'unlimited',
+               allowBlank: true
+           },
+               {
+               xtype: 'numberfield',
+               name: 'inrate',
+               fieldLabel: gettext('Download limit') + ' (MB/s)',
                minValue: 0,
                maxValue: 10*1024,
                value: '',
-- 
2.20.1



_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel

Reply via email to