[ovs-dev] [PATCH 07/15] lib: add format_in6_addr and scan_in6_addr
Thadeu Lima de Souza Cascardo
cascardo at redhat.com
Thu Oct 22 17:29:00 UTC 2015
From: Jiri Benc <jbenc at redhat.com>
Add in6_addr counterparts to the existing format and scan functions.
Otherwise we'd need to recast all the time.
Signed-off-by: Jiri Benc <jbenc at redhat.com>
---
lib/odp-util.c | 28 ++++++++++++++++++++++------
1 file changed, 22 insertions(+), 6 deletions(-)
diff --git a/lib/odp-util.c b/lib/odp-util.c
index e131e36..752e2ea 100644
--- a/lib/odp-util.c
+++ b/lib/odp-util.c
@@ -1758,13 +1758,12 @@ format_ipv4(struct ds *ds, const char *name, ovs_be32 key,
}
static void
-format_ipv6(struct ds *ds, const char *name, const ovs_be32 key_[4],
- const ovs_be32 (*mask_)[4], bool verbose)
+format_in6_addr(struct ds *ds, const char *name,
+ const struct in6_addr *key,
+ const struct in6_addr *mask,
+ bool verbose)
{
char buf[INET6_ADDRSTRLEN];
- const struct in6_addr *key = (const struct in6_addr *)key_;
- const struct in6_addr *mask = mask_ ? (const struct in6_addr *)*mask_
- : NULL;
bool mask_empty = mask && ipv6_mask_is_any(mask);
if (verbose || !mask_empty) {
@@ -1781,6 +1780,16 @@ format_ipv6(struct ds *ds, const char *name, const ovs_be32 key_[4],
}
static void
+format_ipv6(struct ds *ds, const char *name, const ovs_be32 key_[4],
+ const ovs_be32 (*mask_)[4], bool verbose)
+{
+ format_in6_addr(ds, name,
+ (const struct in6_addr *)key_,
+ mask_ ? (const struct in6_addr *)*mask_ : NULL,
+ verbose);
+}
+
+static void
format_ipv6_label(struct ds *ds, const char *name, ovs_be32 key,
const ovs_be32 *mask, bool verbose)
{
@@ -2753,7 +2762,7 @@ scan_ipv4(const char *s, ovs_be32 *key, ovs_be32 *mask)
}
static int
-scan_ipv6(const char *s, ovs_be32 (*key)[4], ovs_be32 (*mask)[4])
+scan_in6_addr(const char *s, struct in6_addr *key, struct in6_addr *mask)
{
int n;
char ipv6_s[IPV6_SCAN_LEN + 1];
@@ -2776,6 +2785,13 @@ scan_ipv6(const char *s, ovs_be32 (*key)[4], ovs_be32 (*mask)[4])
}
static int
+scan_ipv6(const char *s, ovs_be32 (*key)[4], ovs_be32 (*mask)[4])
+{
+ return scan_in6_addr(s, key ? (struct in6_addr *) *key : NULL,
+ mask ? (struct in6_addr *) *mask : NULL);
+}
+
+static int
scan_ipv6_label(const char *s, ovs_be32 *key, ovs_be32 *mask)
{
int key_, mask_;
--
2.4.3
More information about the dev
mailing list