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