diff mbox series

[ovs-dev,v9,06/10] controller: use unsigned long long int for qos_max_rate/qos_min_rate/qos_burst

Message ID 639e2067615d4aff879d99c8c06dacbc480caa2c.1684403044.git.lorenzo.bianconi@redhat.com
State Accepted
Headers show
Series Configure OVN QoS thorugh OvS db | expand

Checks

Context Check Description
ovsrobot/apply-robot success apply and check: success
ovsrobot/github-robot-_ovn-kubernetes success github build: passed
ovsrobot/github-robot-_Build_and_Test fail github build: failed

Commit Message

Lorenzo Bianconi May 18, 2023, 9:48 a.m. UTC
This patch allow to configure max/min rate greater than 4Gbps

Acked-by: Numan Siddique <numans@ovn.org>
Acked-By: Ihar Hrachyshka <ihrachys@redhat.com>
Tested-by: Rodolfo Alonso <ralonsoh@redhat.com>
Signed-off-by: Lorenzo Bianconi <lorenzo.bianconi@redhat.com>
---
 controller/binding.c | 29 ++++++++++++++++-------------
 1 file changed, 16 insertions(+), 13 deletions(-)
diff mbox series

Patch

diff --git a/controller/binding.c b/controller/binding.c
index 99015b315..de89795ae 100644
--- a/controller/binding.c
+++ b/controller/binding.c
@@ -147,9 +147,9 @@  struct qos_queue {
     char *port;
 
     uint32_t queue_id;
-    uint32_t min_rate;
-    uint32_t max_rate;
-    uint32_t burst;
+    unsigned long long min_rate;
+    unsigned long long max_rate;
+    unsigned long long burst;
 };
 
 static struct qos_queue *
@@ -224,9 +224,10 @@  get_qos_egress_port_interface(struct shash *bridge_mappings,
 static void
 add_ovs_qos_table_entry(struct ovsdb_idl_txn *ovs_idl_txn,
                         const struct ovsrec_port *port,
-                        uint32_t min_rate, uint32_t max_rate,
-                        uint32_t burst, uint32_t queue_id,
-                        const char *ovn_port)
+                        unsigned long long min_rate,
+                        unsigned long long max_rate,
+                        unsigned long long burst,
+                        uint32_t queue_id, const char *ovn_port)
 {
     struct smap external_ids = SMAP_INITIALIZER(&external_ids);
     struct smap other_config = SMAP_INITIALIZER(&other_config);
@@ -266,9 +267,9 @@  add_ovs_qos_table_entry(struct ovsdb_idl_txn *ovs_idl_txn,
         ovsrec_qos_update_queues_setkey(qos, queue_id, queue);
     }
 
-    smap_add_format(&other_config, "max-rate", "%d", max_rate);
-    smap_add_format(&other_config, "min-rate", "%d", min_rate);
-    smap_add_format(&other_config, "burst", "%d", burst);
+    smap_add_format(&other_config, "max-rate", "%llu", max_rate);
+    smap_add_format(&other_config, "min-rate", "%llu", min_rate);
+    smap_add_format(&other_config, "burst", "%llu", burst);
     ovsrec_queue_verify_other_config(queue);
     ovsrec_queue_set_other_config(queue, &other_config);
     smap_destroy(&other_config);
@@ -336,10 +337,12 @@  configure_qos(const struct sbrec_port_binding *pb,
               struct binding_ctx_in *b_ctx_in,
               struct binding_ctx_out *b_ctx_out)
 {
-
-    uint32_t min_rate = smap_get_int(&pb->options, "qos_min_rate", 0);
-    uint32_t max_rate = smap_get_int(&pb->options, "qos_max_rate", 0);
-    uint32_t burst = smap_get_int(&pb->options, "qos_burst", 0);
+    unsigned long long min_rate = smap_get_ullong(
+            &pb->options, "qos_min_rate", 0);
+    unsigned long long max_rate = smap_get_ullong(
+            &pb->options, "qos_max_rate", 0);
+    unsigned long long burst = smap_get_ullong(
+            &pb->options, "qos_burst", 0);
     uint32_t queue_id = smap_get_int(&pb->options, "qdisc_queue_id", 0);
 
     if ((!min_rate && !max_rate && !burst) || !queue_id) {