Move these helpers to utils so ovn-ic-nbctl can also use them.

Signed-off-by: Mairtin O'Loingsigh <[email protected]>
---
 lib/ovn-util.c        | 101 ++++++++++++++++++++++++++++++++++++++++++
 lib/ovn-util.h        |  14 ++++++
 utilities/ovn-nbctl.c |  98 ----------------------------------------
 3 files changed, 115 insertions(+), 98 deletions(-)

diff --git a/lib/ovn-util.c b/lib/ovn-util.c
index 910f67304..d27983d1e 100644
--- a/lib/ovn-util.c
+++ b/lib/ovn-util.c
@@ -1547,3 +1547,104 @@ ovn_is_valid_vni(int64_t vni)
 {
     return vni >= 0 && (vni <= (1 << 24) - 1);
 }
+
+struct sset *
+lrp_network_sset(const char **networks, int n_networks)
+{
+    struct sset *network_set = xzalloc(sizeof *network_set);
+    sset_init(network_set);
+    for (int i = 0; i < n_networks; i++) {
+        char *norm = normalize_prefix_str(networks[i]);
+        if (!norm) {
+            sset_destroy(network_set);
+            free(network_set);
+            return NULL;
+        }
+
+        sset_add_and_free(network_set, norm);
+    }
+
+    return network_set;
+}
+
+char *
+normalize_ipv4_prefix_str(const char *orig_prefix)
+{
+    unsigned int plen;
+    ovs_be32 ipv4;
+    char *error;
+
+    error = ip_parse_cidr(orig_prefix, &ipv4, &plen);
+    if (error) {
+        free(error);
+        return NULL;
+    }
+
+    return normalize_ipv4_prefix(ipv4, plen);
+}
+
+char *
+normalize_ipv6_prefix_str(const char *orig_prefix)
+{
+    unsigned int plen;
+    struct in6_addr ipv6;
+    char *error;
+
+    error = ipv6_parse_cidr(orig_prefix, &ipv6, &plen);
+    if (error) {
+        free(error);
+        return NULL;
+    }
+
+    return normalize_ipv6_prefix(&ipv6, plen);
+}
+
+char *
+normalize_prefix_str(const char *orig_prefix)
+{
+    char *ret;
+
+    ret = normalize_ipv4_prefix_str(orig_prefix);
+    if (!ret) {
+        ret = normalize_ipv6_prefix_str(orig_prefix);
+    }
+
+    return ret;
+}
+
+char *
+normalize_ipv4_addr_str(const char *orig_addr)
+{
+    ovs_be32 ipv4;
+
+    if (!ip_parse(orig_addr, &ipv4)) {
+        return NULL;
+    }
+
+    return normalize_ipv4_prefix(ipv4, 32);
+}
+
+char *
+normalize_ipv6_addr_str(const char *orig_addr)
+{
+    struct in6_addr ipv6;
+
+    if (!ipv6_parse(orig_addr, &ipv6)) {
+        return NULL;
+    }
+
+    return normalize_ipv6_prefix(&ipv6, 128);
+}
+
+char *
+normalize_addr_str(const char *orig_addr)
+{
+    char *ret;
+
+    ret = normalize_ipv4_addr_str(orig_addr);
+    if (!ret) {
+        ret = normalize_ipv6_addr_str(orig_addr);
+    }
+
+    return ret;
+}
diff --git a/lib/ovn-util.h b/lib/ovn-util.h
index 3aca4ca75..26b7e133d 100644
--- a/lib/ovn-util.h
+++ b/lib/ovn-util.h
@@ -672,4 +672,18 @@ bool datapath_get_nb_uuid(const struct 
sbrec_datapath_binding *sb,
 
 const char *datapath_get_nb_type(const struct sbrec_datapath_binding *sb);
 
+struct sset *lrp_network_sset(const char **networks, int n_networks);
+
+char *normalize_ipv4_prefix_str(const char *orig_prefix);
+
+char *normalize_ipv6_prefix_str(const char *orig_prefix);
+
+char *normalize_prefix_str(const char *orig_prefix);
+
+char *normalize_ipv4_addr_str(const char *orig_addr);
+
+char *normalize_ipv6_addr_str(const char *orig_addr);
+
+OVS_UNUSED char *normalize_addr_str(const char *orig_addr);
+
 #endif /* OVN_UTIL_H */
diff --git a/utilities/ovn-nbctl.c b/utilities/ovn-nbctl.c
index 058ad8968..fceb1a567 100644
--- a/utilities/ovn-nbctl.c
+++ b/utilities/ovn-nbctl.c
@@ -4534,87 +4534,6 @@ nbctl_dhcp_options_list(struct ctl_context *ctx)
     free(nodes);
 }
 
-static char *
-normalize_ipv4_prefix_str(const char *orig_prefix)
-{
-    unsigned int plen;
-    ovs_be32 ipv4;
-    char *error;
-
-    error = ip_parse_cidr(orig_prefix, &ipv4, &plen);
-    if (error) {
-        free(error);
-        return NULL;
-    }
-    return normalize_ipv4_prefix(ipv4, plen);
-}
-
-static char *
-normalize_ipv6_prefix_str(const char *orig_prefix)
-{
-    unsigned int plen;
-    struct in6_addr ipv6;
-    char *error;
-
-    error = ipv6_parse_cidr(orig_prefix, &ipv6, &plen);
-    if (error) {
-        free(error);
-        return NULL;
-    }
-    return normalize_ipv6_prefix(&ipv6, plen);
-}
-
-/* The caller must free the returned string. */
-static char *
-normalize_prefix_str(const char *orig_prefix)
-{
-    char *ret;
-
-    ret = normalize_ipv4_prefix_str(orig_prefix);
-    if (!ret) {
-        ret = normalize_ipv6_prefix_str(orig_prefix);
-    }
-    return ret;
-}
-
-static char *
-normalize_ipv4_addr_str(const char *orig_addr)
-{
-    ovs_be32 ipv4;
-
-    if (!ip_parse(orig_addr, &ipv4)) {
-        return NULL;
-    }
-
-    return normalize_ipv4_prefix(ipv4, 32);
-}
-
-static char *
-normalize_ipv6_addr_str(const char *orig_addr)
-{
-    struct in6_addr ipv6;
-
-    if (!ipv6_parse(orig_addr, &ipv6)) {
-        return NULL;
-    }
-
-    return normalize_ipv6_prefix(&ipv6, 128);
-}
-
-/* Similar to normalize_prefix_str but must be an un-masked address.
- * The caller must free the returned string. */
-OVS_UNUSED static char *
-normalize_addr_str(const char *orig_addr)
-{
-    char *ret;
-
-    ret = normalize_ipv4_addr_str(orig_addr);
-    if (!ret) {
-        ret = normalize_ipv6_addr_str(orig_addr);
-    }
-    return ret;
-}
-
 static bool
 ip_in_lrp_networks(const struct nbrec_logical_router_port *lrp,
                    const char *ip_s);
@@ -6552,23 +6471,6 @@ nbctl_lrp_get_gateway_chassis(struct ctl_context *ctx)
     free(gcs);
 }
 
-static struct sset *
-lrp_network_sset(const char **networks, int n_networks)
-{
-    struct sset *network_set = xzalloc(sizeof *network_set);
-    sset_init(network_set);
-    for (int i = 0; i < n_networks; i++) {
-        char *norm = normalize_prefix_str(networks[i]);
-        if (!norm) {
-            sset_destroy(network_set);
-            free(network_set);
-            return NULL;
-        }
-        sset_add_and_free(network_set, norm);
-    }
-    return network_set;
-}
-
 static void
 nbctl_pre_lrp_add(struct ctl_context *ctx)
 {
-- 
2.51.0

_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to